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
23Arnaud Patard <arnaud.patard@rtp-net.org>23Arnaud Patard <arnaud.patard@rtp-net.org>
24Arnd Bergmann <arnd@arndb.de>24Arnd Bergmann <arnd@arndb.de>
25Axel Dyks <xl@xlsigned.net>25Axel Dyks <xl@xlsigned.net>
26Axel Lin <axel.lin@gmail.com>
26Ben Gardner <bgardner@wabtec.com>27Ben Gardner <bgardner@wabtec.com>
27Ben M Cahill <ben.m.cahill@intel.com>28Ben M Cahill <ben.m.cahill@intel.com>
28Björn Steinbrink <B.Steinbrink@gmx.de>29Björn Steinbrink <B.Steinbrink@gmx.de>
@@ -105,3 +106,4 @@ Uwe Kleine-König <ukleinek@informatik.uni-freiburg.de> · 76 unmodified lines
105Uwe Kleine-König <ukl@pengutronix.de>106Uwe Kleine-König <ukl@pengutronix.de>
106Uwe Kleine-König <Uwe.Kleine-Koenig@digi.com>107Uwe Kleine-König <Uwe.Kleine-Koenig@digi.com>
107Valdis Kletnieks <Valdis.Kletnieks@vt.edu>108Valdis Kletnieks <Valdis.Kletnieks@vt.edu>
109Takashi YOSHII <takashi.yoshii.zj@renesas.com>
CREDITS+2−4
@@ -2365,8 +2365,6 @@ E: acme@redhat.com · 2364 unmodified lines
2365W: http://oops.ghostprotocols.net:81/blog/2365W: http://oops.ghostprotocols.net:81/blog/
2366P: 1024D/9224DF01 D5DF E3BB E3C8 BCBB F8AD 841A B6AB 4681 9224 DF012366P: 1024D/9224DF01 D5DF E3BB E3C8 BCBB F8AD 841A B6AB 4681 9224 DF01
2367D: IPX, LLC, DCCP, cyc2x, wl3501_cs, net/ hacks2367D: IPX, LLC, DCCP, cyc2x, wl3501_cs, net/ hacks
2368S: R. Brasílio Itiberê, 4270/1010 - Água Verde
2369S: 80240-060 - Curitiba - Paraná
2370S: Brazil2368S: Brazil
2371 2369
2372N: Karsten Merker2370N: Karsten Merker
@@ -2813,8 +2811,8 @@ D: CDROM driver "sonycd535" (Sony CDU-535/531) · 440 unmodified lines
2813N: Stelian Pop2811N: Stelian Pop
2814E: stelian@popies.net2812E: stelian@popies.net
2815P: 1024D/EDBB6147 7B36 0E07 04BC 11DC A7A0 D3F7 7185 9E7A EDBB 61472813P: 1024D/EDBB6147 7B36 0E07 04BC 11DC A7A0 D3F7 7185 9E7A EDBB 6147
2816D: sonypi, meye drivers, mct_u232 usb serial hacks2814D: random kernel hacks
2817S: Paris, France2815S: Paimpont, France
2818 2816
2819N: Pete Popov2817N: Pete Popov
2820E: pete_popov@yahoo.com2818E: pete_popov@yahoo.com
Documentation/ABI/stable/thermal-notification+4−0
@@ -0,0 +1,4 @@
1What: A notification mechanism for thermal related events
2Description:
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
26 scheduler is chosen. Trigger specific parameters can appear in26 scheduler is chosen. Trigger specific parameters can appear in
27 /sys/class/leds/<led> once a given trigger is selected.27 /sys/class/leds/<led> once a given trigger is selected.
28 28
29What: /sys/class/leds/<led>/inverted
30Date: January 2011
31KernelVersion: 2.6.38
32Contact: Richard Purdie <rpurdie@rpsys.net>
33Description:
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
22 mesh will be fragmented or silently discarded if the22 mesh will be fragmented or silently discarded if the
23 packet size exceeds the outgoing interface MTU.23 packet size exceeds the outgoing interface MTU.
24 24
25What: /sys/class/net/<mesh_iface>/mesh/gw_bandwidth
26Date: October 2010
27Contact: Marek Lindner <lindner_marek@yahoo.de>
28Description:
29 Defines the bandwidth which is propagated by this
30 node if gw_mode was set to 'server'.
31
32What: /sys/class/net/<mesh_iface>/mesh/gw_mode
33Date: October 2010
34Contact: Marek Lindner <lindner_marek@yahoo.de>
35Description:
36 Defines the state of the gateway features. Can be
37 either 'off', 'client' or 'server'.
38
39What: /sys/class/net/<mesh_iface>/mesh/gw_sel_class
40Date: October 2010
41Contact: Marek Lindner <lindner_marek@yahoo.de>
42Description:
43 Defines the selection criteria this node will use
44 to choose a gateway if gw_mode was set to 'client'.
45
25What: /sys/class/net/<mesh_iface>/mesh/orig_interval46What: /sys/class/net/<mesh_iface>/mesh/orig_interval
26Date: May 201047Date: May 2010
27Contact: Marek Lindner <lindner_marek@yahoo.de>48Contact: Marek Lindner <lindner_marek@yahoo.de>
@@ -29,6 +50,13 @@ Description: · 1 unmodified line
29 Defines the interval in milliseconds in which batman50 Defines the interval in milliseconds in which batman
30 sends its protocol messages.51 sends its protocol messages.
31 52
53What: /sys/class/net/<mesh_iface>/mesh/hop_penalty
54Date: Oct 2010
55Contact: Linus Lüssing <linus.luessing@web.de>
56Description:
57 Defines the penalty which will be applied to an
58 originator message's tq-field on every hop.
59
32What: /sys/class/net/<mesh_iface>/mesh/vis_mode60What: /sys/class/net/<mesh_iface>/mesh/vis_mode
33Date: May 201061Date: May 2010
34Contact: Marek Lindner <lindner_marek@yahoo.de>62Contact: Marek Lindner <lindner_marek@yahoo.de>
Documentation/ABI/testing/sysfs-driver-hid-roccat-kone+8−8
@@ -1,4 +1,4 @@
1What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/actual_dpi1What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/kone/roccatkone<minor>/actual_dpi
2Date: March 20102Date: March 2010
3Contact: Stefan Achatz <erazor_de@users.sourceforge.net>3Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
4Description: It is possible to switch the dpi setting of the mouse with the4Description: 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
17 17
18 This file is readonly.18 This file is readonly.
19 19
20What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/actual_profile20What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/kone/roccatkone<minor>/actual_profile
21Date: March 201021Date: March 2010
22Contact: Stefan Achatz <erazor_de@users.sourceforge.net>22Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
23Description: When read, this file returns the number of the actual profile.23Description: When read, this file returns the number of the actual profile.
24 This file is readonly.24 This file is readonly.
25 25
26What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/firmware_version26What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/kone/roccatkone<minor>/firmware_version
27Date: March 201027Date: March 2010
28Contact: Stefan Achatz <erazor_de@users.sourceforge.net>28Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
29Description: When read, this file returns the raw integer version number of the29Description: 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
33 left. E.g. a returned value of 138 means 1.3833 left. E.g. a returned value of 138 means 1.38
34 This file is readonly.34 This file is readonly.
35 35
36What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/profile[1-5]36What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/kone/roccatkone<minor>/profile[1-5]
37Date: March 201037Date: March 2010
38Contact: Stefan Achatz <erazor_de@users.sourceforge.net>38Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
39Description: The mouse can store 5 profiles which can be switched by the39Description: 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
48 stored in the profile doesn't need to fit the number of the48 stored in the profile doesn't need to fit the number of the
49 store.49 store.
50 50
51What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/settings51What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/kone/roccatkone<minor>/settings
52Date: March 201052Date: March 2010
53Contact: Stefan Achatz <erazor_de@users.sourceforge.net>53Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
54Description: When read, this file returns the settings stored in the mouse.54Description: 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
58 The data has to be 36 bytes long. The mouse will reject invalid58 The data has to be 36 bytes long. The mouse will reject invalid
59 data.59 data.
60 60
61What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/startup_profile61What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/kone/roccatkone<minor>/startup_profile
62Date: March 201062Date: March 2010
63Contact: Stefan Achatz <erazor_de@users.sourceforge.net>63Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
64Description: The integer value of this attribute ranges from 1 to 5.64Description: 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
67 When written, this file sets the number of the startup profile67 When written, this file sets the number of the startup profile
68 and the mouse activates this profile immediately.68 and the mouse activates this profile immediately.
69 69
70What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/tcu70What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/kone/roccatkone<minor>/tcu
71Date: March 201071Date: March 2010
72Contact: Stefan Achatz <erazor_de@users.sourceforge.net>72Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
73Description: The mouse has a "Tracking Control Unit" which lets the user73Description: 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
78 Writing 1 in this file will start the calibration which takes78 Writing 1 in this file will start the calibration which takes
79 around 6 seconds to complete and activates the TCU.79 around 6 seconds to complete and activates the TCU.
80 80
81What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/weight81What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/kone/roccatkone<minor>/weight
82Date: March 201082Date: March 2010
83Contact: Stefan Achatz <erazor_de@users.sourceforge.net>83Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
84Description: The mouse can be equipped with one of four supplied weights84Description: 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 @@
1What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/actual_profile
2Date: October 2010
3Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
4Description: When read, this file returns the number of the actual profile in
5 range 0-4.
6 This file is readonly.
7
8What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/firmware_version
9Date: October 2010
10Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
11Description: 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
18What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/macro
19Date: October 2010
20Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
21Description: 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
28What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/profile_buttons
29Date: August 2010
30Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
31Description: 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
41What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/profile[1-5]_buttons
42Date: August 2010
43Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
44Description: 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
51What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/profile_settings
52Date: October 2010
53Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
54Description: 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
65What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/profile[1-5]_settings
66Date: August 2010
67Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
68Description: 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
76What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/sensor
77Date: October 2010
78Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
79Description: 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
84What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/startup_profile
85Date: October 2010
86Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
87Description: 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
93What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/tcu
94Date: October 2010
95Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
96Description: 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
101What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/tcu_image
102Date: October 2010
103Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
104Description: 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 @@
1What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/actual_cpi1What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/pyra/roccatpyra<minor>/actual_cpi
2Date: August 20102Date: August 2010
3Contact: Stefan Achatz <erazor_de@users.sourceforge.net>3Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
4Description: It is possible to switch the cpi setting of the mouse with the4Description: 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
14 14
15 This file is readonly.15 This file is readonly.
16 16
17What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/actual_profile17What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/pyra/roccatpyra<minor>/actual_profile
18Date: August 201018Date: August 2010
19Contact: Stefan Achatz <erazor_de@users.sourceforge.net>19Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
20Description: When read, this file returns the number of the actual profile in20Description: When read, this file returns the number of the actual profile in
21 range 0-4.21 range 0-4.
22 This file is readonly.22 This file is readonly.
23 23
24What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/firmware_version24What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/pyra/roccatpyra<minor>/firmware_version
25Date: August 201025Date: August 2010
26Contact: Stefan Achatz <erazor_de@users.sourceforge.net>26Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
27Description: When read, this file returns the raw integer version number of the27Description: 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
31 left. E.g. a returned value of 138 means 1.3831 left. E.g. a returned value of 138 means 1.38
32 This file is readonly.32 This file is readonly.
33 33
34What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/profile_settings34What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/pyra/roccatpyra<minor>/profile_settings
35Date: August 201035Date: August 2010
36Contact: Stefan Achatz <erazor_de@users.sourceforge.net>36Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
37Description: The mouse can store 5 profiles which can be switched by the37Description: 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
45 contained in the data.45 contained in the data.
46 This file is writeonly.46 This file is writeonly.
47 47
48What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/profile[1-5]_settings48What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/pyra/roccatpyra<minor>/profile[1-5]_settings
49Date: August 201049Date: August 2010
50Contact: Stefan Achatz <erazor_de@users.sourceforge.net>50Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
51Description: The mouse can store 5 profiles which can be switched by the51Description: 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
56 The returned data is 13 bytes in size.56 The returned data is 13 bytes in size.
57 This file is readonly.57 This file is readonly.
58 58
59What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/profile_buttons59What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/pyra/roccatpyra<minor>/profile_buttons
60Date: August 201060Date: August 2010
61Contact: Stefan Achatz <erazor_de@users.sourceforge.net>61Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
62Description: The mouse can store 5 profiles which can be switched by the62Description: 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
69 contained in the data.69 contained in the data.
70 This file is writeonly.70 This file is writeonly.
71 71
72What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/profile[1-5]_buttons72What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/pyra/roccatpyra<minor>/profile[1-5]_buttons
73Date: August 201073Date: August 2010
74Contact: Stefan Achatz <erazor_de@users.sourceforge.net>74Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
75Description: The mouse can store 5 profiles which can be switched by the75Description: 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
79 The returned data is 19 bytes in size.79 The returned data is 19 bytes in size.
80 This file is readonly.80 This file is readonly.
81 81
82What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/startup_profile82What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/pyra/roccatpyra<minor>/startup_profile
83Date: August 201083Date: August 2010
84Contact: Stefan Achatz <erazor_de@users.sourceforge.net>84Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
85Description: The integer value of this attribute ranges from 0-4.85Description: 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
87 that's active when the mouse is powered on.87 that's active when the mouse is powered on.
88 This file is readonly.88 This file is readonly.
89 89
90What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/settings90What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/pyra/roccatpyra<minor>/settings
91Date: August 201091Date: August 2010
92Contact: Stefan Achatz <erazor_de@users.sourceforge.net>92Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
93Description: When read, this file returns the settings stored in the mouse.93Description: When read, this file returns the settings stored in the mouse.
Documentation/ABI/testing/sysfs-platform-at91+25−0
@@ -0,0 +1,25 @@
1What: /sys/devices/platform/at91_can/net/<iface>/mb0_id
2Date: January 2011
3KernelVersion: 2.6.38
4Contact: Marc Kleine-Budde <kernel@pengutronix.de>
5Description:
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 @@
1What: /sys/devices/platform/ideapad/camera_power
2Date: Dec 2010
3KernelVersion: 2.6.37
4Contact: "Ike Panhc <ike.pan@canonical.com>"
5Description:
6 Control the power of camera module. 1 means on, 0 means off.
Documentation/ABI/testing/sysfs-tty+19−0
@@ -0,0 +1,19 @@
1What: /sys/class/tty/console/active
2Date: Nov 2010
3Contact: Kay Sievers <kay.sievers@vrfy.org>
4Description:
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
12What: /sys/class/tty/tty0/active
13Date: Nov 2010
14Contact: Kay Sievers <kay.sievers@vrfy.org>
15Description:
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
146!Finclude/net/cfg80211.h cfg80211_rx_mgmt146!Finclude/net/cfg80211.h cfg80211_rx_mgmt
147!Finclude/net/cfg80211.h cfg80211_mgmt_tx_status147!Finclude/net/cfg80211.h cfg80211_mgmt_tx_status
148!Finclude/net/cfg80211.h cfg80211_cqm_rssi_notify148!Finclude/net/cfg80211.h cfg80211_cqm_rssi_notify
149!Finclude/net/cfg80211.h cfg80211_cqm_pktloss_notify
149!Finclude/net/cfg80211.h cfg80211_michael_mic_failure150!Finclude/net/cfg80211.h cfg80211_michael_mic_failure
150 </chapter>151 </chapter>
151 <chapter>152 <chapter>
@@ -267,10 +268,6 @@ · 115 unmodified lines
267!Finclude/net/mac80211.h ieee80211_ops268!Finclude/net/mac80211.h ieee80211_ops
268!Finclude/net/mac80211.h ieee80211_alloc_hw269!Finclude/net/mac80211.h ieee80211_alloc_hw
269!Finclude/net/mac80211.h ieee80211_register_hw270!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
274!Finclude/net/mac80211.h ieee80211_unregister_hw271!Finclude/net/mac80211.h ieee80211_unregister_hw
275!Finclude/net/mac80211.h ieee80211_free_hw272!Finclude/net/mac80211.h ieee80211_free_hw
276 </chapter>273 </chapter>
@@ -332,10 +329,16 @@ · 55 unmodified lines
332 <title>functions/definitions</title>329 <title>functions/definitions</title>
333!Finclude/net/mac80211.h ieee80211_rx_status330!Finclude/net/mac80211.h ieee80211_rx_status
334!Finclude/net/mac80211.h mac80211_rx_flags331!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
335!Finclude/net/mac80211.h ieee80211_tx_info335!Finclude/net/mac80211.h ieee80211_tx_info
336!Finclude/net/mac80211.h ieee80211_tx_info_clear_status
336!Finclude/net/mac80211.h ieee80211_rx337!Finclude/net/mac80211.h ieee80211_rx
338!Finclude/net/mac80211.h ieee80211_rx_ni
337!Finclude/net/mac80211.h ieee80211_rx_irqsafe339!Finclude/net/mac80211.h ieee80211_rx_irqsafe
338!Finclude/net/mac80211.h ieee80211_tx_status340!Finclude/net/mac80211.h ieee80211_tx_status
341!Finclude/net/mac80211.h ieee80211_tx_status_ni
339!Finclude/net/mac80211.h ieee80211_tx_status_irqsafe342!Finclude/net/mac80211.h ieee80211_tx_status_irqsafe
340!Finclude/net/mac80211.h ieee80211_rts_get343!Finclude/net/mac80211.h ieee80211_rts_get
341!Finclude/net/mac80211.h ieee80211_rts_duration344!Finclude/net/mac80211.h ieee80211_rts_duration
@@ -346,6 +349,7 @@ · 4 unmodified lines
346!Finclude/net/mac80211.h ieee80211_stop_queue349!Finclude/net/mac80211.h ieee80211_stop_queue
347!Finclude/net/mac80211.h ieee80211_wake_queues350!Finclude/net/mac80211.h ieee80211_wake_queues
348!Finclude/net/mac80211.h ieee80211_stop_queues351!Finclude/net/mac80211.h ieee80211_stop_queues
352!Finclude/net/mac80211.h ieee80211_queue_stopped
349 </sect1>353 </sect1>
350 </chapter>354 </chapter>
351 355
@@ -354,6 +358,13 @@ · 2 unmodified lines
354!Pinclude/net/mac80211.h Frame filtering358!Pinclude/net/mac80211.h Frame filtering
355!Finclude/net/mac80211.h ieee80211_filter_flags359!Finclude/net/mac80211.h ieee80211_filter_flags
356 </chapter>360 </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>
357 </part>368 </part>
358 369
359 <part id="advanced">370 <part id="advanced">
@@ -367,6 +378,23 @@ · 7 unmodified lines
367 </para>378 </para>
368 </partintro>379 </partintro>
369 380
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
370 <chapter id="hardware-crypto-offload">398 <chapter id="hardware-crypto-offload">
371 <title>Hardware crypto acceleration</title>399 <title>Hardware crypto acceleration</title>
372!Pinclude/net/mac80211.h Hardware crypto acceleration400!Pinclude/net/mac80211.h Hardware crypto acceleration
@@ -374,6 +402,9 @@ · 1 unmodified line
374!Finclude/net/mac80211.h set_key_cmd402!Finclude/net/mac80211.h set_key_cmd
375!Finclude/net/mac80211.h ieee80211_key_conf403!Finclude/net/mac80211.h ieee80211_key_conf
376!Finclude/net/mac80211.h ieee80211_key_flags404!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
377 </chapter>408 </chapter>
378 409
379 <chapter id="powersave">410 <chapter id="powersave">
@@ -417,6 +448,18 @@ · 37 unmodified lines
417 supported by mac80211, add notes about supporting hw crypto448 supported by mac80211, add notes about supporting hw crypto
418 with it.449 with it.
419 </para>450 </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
420 </chapter>463 </chapter>
421 464
422 <chapter id="hardware-scan-offload">465 <chapter id="hardware-scan-offload">
@@ -424,6 +467,28 @@ · 1 unmodified line
424 <para>TBD</para>467 <para>TBD</para>
425!Finclude/net/mac80211.h ieee80211_scan_completed468!Finclude/net/mac80211.h ieee80211_scan_completed
426 </chapter>469 </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>
427 </part>492 </part>
428 493
429 <part id="rate-control">494 <part id="rate-control">
@@ -435,9 +500,16 @@ · 5 unmodified lines
435 interface and how it relates to mac80211 and drivers.500 interface and how it relates to mac80211 and drivers.
436 </para>501 </para>
437 </partintro>502 </partintro>
438 <chapter id="dummy">503 <chapter id="ratecontrol-api">
439 <title>dummy chapter</title>504 <title>Rate Control API</title>
440 <para>TBD</para>505 <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
441 </chapter>513 </chapter>
442 </part>514 </part>
443 515
@@ -485,6 +557,13 @@ · 41 unmodified lines
485 </sect1>557 </sect1>
486 </chapter>558 </chapter>
487 559
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
488 <chapter id="synchronisation">567 <chapter id="synchronisation">
489 <title>Synchronisation</title>568 <title>Synchronisation</title>
490 <para>TBD</para>569 <para>TBD</para>
Documentation/DocBook/device-drivers.tmpl+6−2
@@ -217,8 +217,8 @@ X!Isound/sound_firmware.c · 216 unmodified lines
217 <chapter id="uart16x50">217 <chapter id="uart16x50">
218 <title>16x50 UART Driver</title>218 <title>16x50 UART Driver</title>
219!Iinclude/linux/serial_core.h219!Iinclude/linux/serial_core.h
220!Edrivers/serial/serial_core.c220!Edrivers/tty/serial/serial_core.c
221!Edrivers/serial/8250.c221!Edrivers/tty/serial/8250.c
222 </chapter>222 </chapter>
223 223
224 <chapter id="fbdev">224 <chapter id="fbdev">
@@ -303,6 +303,10 @@ X!Idrivers/video/console/fonts.c · 78 unmodified lines
303!Edrivers/input/input.c303!Edrivers/input/input.c
304!Edrivers/input/ff-core.c304!Edrivers/input/ff-core.c
305!Edrivers/input/ff-memless.c305!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
306 </sect1>310 </sect1>
307 <sect1><title>Polled input devices</title>311 <sect1><title>Polled input devices</title>
308!Iinclude/linux/input-polldev.h312!Iinclude/linux/input-polldev.h
Documentation/DocBook/drm.tmpl+3−3
@@ -73,8 +73,8 @@ · 72 unmodified lines
73 services.73 services.
74 </para>74 </para>
75 <para>75 <para>
76 The core of every DRM driver is struct drm_device. Drivers76 The core of every DRM driver is struct drm_driver. Drivers
77 will typically statically initialize a drm_device structure,77 will typically statically initialize a drm_driver structure,
78 then pass it to drm_init() at load time.78 then pass it to drm_init() at load time.
79 </para>79 </para>
80 80
@@ -84,7 +84,7 @@ · 3 unmodified lines
84 <title>Driver initialization</title>84 <title>Driver initialization</title>
85 <para>85 <para>
86 Before calling the DRM initialization routines, the driver must86 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.
88 </para>88 </para>
89 <programlisting>89 <programlisting>
90 static struct drm_driver driver = {90 static struct drm_driver driver = {
Documentation/DocBook/dvb/dvbapi.xml+1−1
@@ -28,7 +28,7 @@ · 27 unmodified lines
28 <holder>Convergence GmbH</holder>28 <holder>Convergence GmbH</holder>
29</copyright>29</copyright>
30<copyright>30<copyright>
31 <year>2009-2010</year>31 <year>2009-2011</year>
32 <holder>Mauro Carvalho Chehab</holder>32 <holder>Mauro Carvalho Chehab</holder>
33</copyright>33</copyright>
34 34
Documentation/DocBook/filesystems.tmpl+5−0
@@ -82,6 +82,11 @@ · 81 unmodified lines
82 </sect1>82 </sect1>
83 </chapter>83 </chapter>
84 84
85 <chapter id="fs_events">
86 <title>Events based on file descriptors</title>
87!Efs/eventfd.c
88 </chapter>
89
85 <chapter id="sysfs">90 <chapter id="sysfs">
86 <title>The Filesystem for Exporting Kernel Objects</title>91 <title>The Filesystem for Exporting Kernel Objects</title>
87!Efs/sysfs/file.c92!Efs/sysfs/file.c
Documentation/DocBook/media.tmpl+2−2
@@ -28,7 +28,7 @@ · 27 unmodified lines
28<title>LINUX MEDIA INFRASTRUCTURE API</title>28<title>LINUX MEDIA INFRASTRUCTURE API</title>
29 29
30<copyright>30<copyright>
31 <year>2009-2010</year>31 <year>2009-2011</year>
32 <holder>LinuxTV Developers</holder>32 <holder>LinuxTV Developers</holder>
33</copyright>33</copyright>
34 34
@@ -86,7 +86,7 @@ Foundation. A copy of the license is included in the chapter entitled · 51 unmodified lines
86</author>86</author>
87</authorgroup>87</authorgroup>
88<copyright>88<copyright>
89 <year>2009-2010</year>89 <year>2009-2011</year>
90 <holder>Mauro Carvalho Chehab</holder>90 <holder>Mauro Carvalho Chehab</holder>
91</copyright>91</copyright>
92 92
Documentation/DocBook/mtdnand.tmpl+1−1
@@ -250,7 +250,7 @@ static void board_hwcontrol(struct mtd_info *mtd, int cmd) · 249 unmodified lines
250 <title>Device ready function</title>250 <title>Device ready function</title>
251 <para>251 <para>
252 If the hardware interface has the ready busy pin of the NAND chip connected to a252 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 the253 GPIO or other accessible I/O pin, this function is used to read back the state of the
254 pin. The function has no arguments and should return 0, if the device is busy (R/B pin 254 pin. The function has no arguments and should return 0, if the device is busy (R/B pin
255 is low) and 1, if the device is ready (R/B pin is high).255 is low) and 1, if the device is ready (R/B pin is high).
256 If the hardware interface does not give access to the ready busy pin, then256 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
75 </section>75 </section>
76 76
77 <section>77 <section>
78 <title>RDS datastructures</title>
78 <table frame="none" pgwide="1" id="v4l2-rds-data">79 <table frame="none" pgwide="1" id="v4l2-rds-data">
79 <title>struct80 <title>struct
80<structname>v4l2_rds_data</structname></title>81<structname>v4l2_rds_data</structname></title>
@@ -129,10 +130,11 @@ as follows:</para> · 48 unmodified lines
129 130
130 <table frame="none" pgwide="1" id="v4l2-rds-block-codes">131 <table frame="none" pgwide="1" id="v4l2-rds-block-codes">
131 <title>Block defines</title>132 <title>Block defines</title>
132 <tgroup cols="3">133 <tgroup cols="4">
133 <colspec colname="c1" colwidth="1*" />134 <colspec colname="c1" colwidth="1*" />
134 <colspec colname="c2" colwidth="1*" />135 <colspec colname="c2" colwidth="1*" />
135 <colspec colname="c3" colwidth="5*" />136 <colspec colname="c3" colwidth="1*" />
137 <colspec colname="c4" colwidth="5*" />
136 <tbody valign="top">138 <tbody valign="top">
137 <row>139 <row>
138 <entry>V4L2_RDS_BLOCK_MSK</entry>140 <entry>V4L2_RDS_BLOCK_MSK</entry>
Documentation/DocBook/v4l/func-ioctl.xml+2−3
@@ -34,8 +34,7 @@ · 33 unmodified lines
34 <varlistentry>34 <varlistentry>
35 <term><parameter>request</parameter></term>35 <term><parameter>request</parameter></term>
36 <listitem>36 <listitem>
37 <para>V4L2 ioctl request code as defined in the <link37 <para>V4L2 ioctl request code as defined in the <filename>videodev2.h</filename> header file, for example
38linkend="videodev">videodev.h</link> header file, for example
39VIDIOC_QUERYCAP.</para>38VIDIOC_QUERYCAP.</para>
40 </listitem>39 </listitem>
41 </varlistentry>40 </varlistentry>
@@ -57,7 +56,7 @@ file descriptor. An ioctl <parameter>request</parameter> has encoded · 15 unmodified lines
57in it whether the argument is an input, output or read/write56in it whether the argument is an input, output or read/write
58parameter, and the size of the argument <parameter>argp</parameter> in57parameter, and the size of the argument <parameter>argp</parameter> in
59bytes. Macros and defines specifying V4L2 ioctl requests are located58bytes. Macros and defines specifying V4L2 ioctl requests are located
60in the <link linkend="videodev">videodev.h</link> header file.59in the <filename>videodev2.h</filename> header file.
61Applications should use their own copy, not include the version in the60Applications should use their own copy, not include the version in the
62kernel sources on the system they compile on. All V4L2 ioctl requests,61kernel sources on the system they compile on. All V4L2 ioctl requests,
63their respective function and parameters are specified in <xref62their 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
142has just as many pad bytes after it as the other rows.</para>142has just as many pad bytes after it as the other rows.</para>
143 143
144 <para>In V4L2 each format has an identifier which looks like144 <para>In V4L2 each format has an identifier which looks like
145<constant>PIX_FMT_XXX</constant>, defined in the <link145<constant>PIX_FMT_XXX</constant>, defined in the <filename>videodev2.h</filename>
146linkend="videodev">videodev.h</link> header file. These identifiers146header file. These identifiers
147represent <link linkend="v4l2-fourcc">four character codes</link>147represent <link linkend="v4l2-fourcc">four character codes</link>
148which are also listed below, however they are not the same as those148which are also listed below, however they are not the same as those
149used in the Windows world.</para>149used in the Windows world.</para>
Documentation/DocBook/v4l/v4l2.xml+2−1
@@ -100,6 +100,7 @@ Remote Controller chapter.</contrib> · 99 unmodified lines
100 <year>2008</year>100 <year>2008</year>
101 <year>2009</year>101 <year>2009</year>
102 <year>2010</year>102 <year>2010</year>
103 <year>2011</year>
103 <holder>Bill Dirks, Michael H. Schimek, Hans Verkuil, Martin104 <holder>Bill Dirks, Michael H. Schimek, Hans Verkuil, Martin
104Rubli, Andy Walls, Muralidharan Karicheri, Mauro Carvalho Chehab</holder>105Rubli, Andy Walls, Muralidharan Karicheri, Mauro Carvalho Chehab</holder>
105 </copyright>106 </copyright>
@@ -381,7 +382,7 @@ and discussions on the V4L mailing list.</revremark> · 275 unmodified lines
381</partinfo>382</partinfo>
382 383
383<title>Video for Linux Two API Specification</title>384<title>Video for Linux Two API Specification</title>
384 <subtitle>Revision 2.6.33</subtitle>385 <subtitle>Revision 2.6.38</subtitle>
385 386
386 <chapter id="common">387 <chapter id="common">
387 &sub-common;388 &sub-common;
Documentation/IPMI.txt+27−0
@@ -533,6 +533,33 @@ completion during sending a panic event. · 532 unmodified lines
533Other Pieces533Other Pieces
534------------534------------
535 535
536Get the detailed info related with the IPMI device
537--------------------------------------------------
538
539Some users need more detailed information about a device, like where
540the address came from or the raw base device for the IPMI interface.
541You can use the IPMI smi_watcher to catch the IPMI interfaces as they
542come or go, and to grab the information, you can use the function
543ipmi_get_smi_info(), which returns the following structure:
544
545struct 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
555Currently special info for only for SI_ACPI address sources is
556returned. Others may be added as necessary.
557
558Note that the dev pointer is included in the above structure, and
559assuming ipmi_smi_get_info returns success, you must call put_device
560on the dev pointer.
561
562
536Watchdog563Watchdog
537--------564--------
538 565
Documentation/Makefile+1−1
@@ -1,3 +1,3 @@
1obj-m := DocBook/ accounting/ auxdisplay/ connector/ \1obj-m := DocBook/ accounting/ auxdisplay/ connector/ \
2 filesystems/ filesystems/configfs/ ia64/ laptops/ networking/ \2 filesystems/ filesystems/configfs/ ia64/ laptops/ networking/ \
3 pcmcia/ spi/ timers/ video4linux/ vm/ watchdog/src/3 pcmcia/ spi/ timers/ vm/ watchdog/src/
Documentation/RCU/trace.txt+128−16
@@ -1,18 +1,22 @@
1CONFIG_RCU_TRACE debugfs Files and Formats1CONFIG_RCU_TRACE debugfs Files and Formats
2 2
3 3
4The rcutree implementation of RCU provides debugfs trace output that4The rcutree and rcutiny implementations of RCU provide debugfs trace
5summarizes counters and state. This information is useful for debugging5output that summarizes counters and state. This information is useful for
6RCU itself, and can sometimes also help to debug abuses of RCU.6debugging RCU itself, and can sometimes also help to debug abuses of RCU.
7The following sections describe the debugfs files and formats.7The following sections describe the debugfs files and formats, first
8for rcutree and next for rcutiny.
8 9
9 10
10Hierarchical RCU debugfs Files and Formats11CONFIG_TREE_RCU and CONFIG_TREE_PREEMPT_RCU debugfs Files and Formats
11 12
12This implementation of RCU provides three debugfs files under the13These implementations of RCU provides five debugfs files under the
13top-level directory RCU: rcu/rcudata (which displays fields in struct14top-level directory RCU: rcu/rcudata (which displays fields in struct
14rcu_data), rcu/rcugp (which displays grace-period counters), and15rcu_data), rcu/rcudata.csv (which is a .csv spreadsheet version of
15rcu/rcuhier (which displays the struct rcu_node hierarchy).16rcu/rcudata), rcu/rcugp (which displays grace-period counters),
17rcu/rcuhier (which displays the struct rcu_node hierarchy), and
18rcu/rcu_pending (which displays counts of the reasons that the
19rcu_pending() function decided that there was core RCU work to do).
16 20
17The output of "cat rcu/rcudata" looks as follows:21The output of "cat rcu/rcudata" looks as follows:
18 22
@@ -130,7 +134,8 @@ o "ci" is the number of RCU callbacks that have been invoked for · 111 unmodified lines
130 been registered in absence of CPU-hotplug activity.134 been registered in absence of CPU-hotplug activity.
131 135
132o "co" is the number of RCU callbacks that have been orphaned due to136o "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.
134 139
135o "ca" is the number of RCU callbacks that have been adopted due to140o "ca" is the number of RCU callbacks that have been adopted due to
136 other CPUs going offline. Note that ci+co-ca+ql is the number of141 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
168 173
169The output of "cat rcu/rcuhier" looks as follows, with very long lines:174The output of "cat rcu/rcuhier" looks as follows, with very long lines:
170 175
171c=6902 g=6903 s=2 jfq=3 j=72c7 nfqs=13142/nfqsng=0(13142) fqlh=6 oqlen=0176c=6902 g=6903 s=2 jfq=3 j=72c7 nfqs=13142/nfqsng=0(13142) fqlh=6
1721/1 .>. 0:127 ^0 1771/1 .>. 0:127 ^0
1733/3 .>. 0:35 ^0 0/0 .>. 36:71 ^1 0/0 .>. 72:107 ^2 0/0 .>. 108:127 ^3 1783/3 .>. 0:35 ^0 0/0 .>. 36:71 ^1 0/0 .>. 72:107 ^2 0/0 .>. 108:127 ^3
1743/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 1793/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
175rcu_bh:180rcu_bh:
176c=-226 g=-226 s=1 jfq=-5701 j=72c7 nfqs=88/nfqsng=0(88) fqlh=0 oqlen=0181c=-226 g=-226 s=1 jfq=-5701 j=72c7 nfqs=88/nfqsng=0(88) fqlh=0
1770/1 .>. 0:127 ^0 1820/1 .>. 0:127 ^0
1780/3 .>. 0:35 ^0 0/0 .>. 36:71 ^1 0/0 .>. 72:107 ^2 0/0 .>. 108:127 ^3 1830/3 .>. 0:35 ^0 0/0 .>. 36:71 ^1 0/0 .>. 72:107 ^2 0/0 .>. 108:127 ^3
1790/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 ^31840/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
212 exited immediately (without even being counted in nfqs above)217 exited immediately (without even being counted in nfqs above)
213 due to contention on ->fqslock.218 due to contention on ->fqslock.
214 219
215o "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
220o Each element of the form "1/1 0:127 ^0" represents one struct220o Each element of the form "1/1 0:127 ^0" represents one struct
221 rcu_node. Each line represents one level of the hierarchy, from221 rcu_node. Each line represents one level of the hierarchy, from
222 root to leaves. It is best to think of the rcu_data structures222 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
326 readers will note that the rcu "nn" number for a given CPU very326 readers will note that the rcu "nn" number for a given CPU very
327 closely matches the rcu_bh "np" number for that same CPU. This327 closely matches the rcu_bh "np" number for that same CPU. This
328 is due to short-circuit evaluation in rcu_pending().328 is due to short-circuit evaluation in rcu_pending().
329
330
331CONFIG_TINY_RCU and CONFIG_TINY_PREEMPT_RCU debugfs Files and Formats
332
333These implementations of RCU provides a single debugfs file under the
334top-level directory RCU, namely rcu/rcudata, which displays fields in
335rcu_bh_ctrlblk, rcu_sched_ctrlblk and, for CONFIG_TINY_PREEMPT_RCU,
336rcu_preempt_ctrlblk.
337
338The output of "cat rcu/rcudata" is as follows:
339
340rcu_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
344rcu_sched: qlen: 0
345rcu_bh: qlen: 0
346
347This is split into rcu_preempt, rcu_sched, and rcu_bh sections, with the
348rcu_preempt section appearing only in CONFIG_TINY_PREEMPT_RCU builds.
349The last three lines of the rcu_preempt section appear only in
350CONFIG_RCU_BOOST kernel builds. The fields are as follows:
351
352o "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
357o "gp" is the number of grace periods that have completed.
358
359o "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
369o "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
377o "ttb" is a single bit. It is "B" if any of the blocked tasks
378 need to be priority boosted and "." otherwise.
379
380o "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
388o "ntb" is the total number of tasks subjected to RCU priority boosting
389 periods since boot.
390
391o "neb" is the number of expedited grace periods that have had
392 to resort to RCU priority boosting since boot.
393
394o "nnb" is the number of normal grace periods that have had
395 to resort to RCU priority boosting since boot.
396
397o "j" is the low-order 12 bits of the jiffies counter in hexadecimal.
398
399o "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
402o 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
433o 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
4APEI uses printk as hardware error reporting interface, the output
5format is as follow.
6
7<error record> :=
8APEI generic hardware error status
9severity: <integer>, <severity string>
10section: <integer>, severity: <integer>, <severity string>
11flags: <integer>
12<section flags strings>
13fru_id: <uuid string>
14fru_text: <string>
15section_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 | \
25PCIe 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 | \
55instruction 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>* :=
78unknown | no error | single-bit ECC | multi-bit ECC | \
79single-symbol chipkill ECC | multi-symbol chipkill ECC | master abort | \
80target abort | parity error | watchdog timeout | invalid address | \
81mirror Broken | memory sparing | scrub corrected error | \
82scrub 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>
89slot: <integer>
90secondary_bus: <integer>
91vendor_id: <integer>, device_id: <integer>
92class_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 | \
97unknown | unknown | root port | upstream switch port | \
98downstream switch port | PCIe to PCI/PCI-X bridge | \
99PCI/PCI-X to PCIe bridge | root complex integrated endpoint device | \
100root complex event collector
101
102Where, [] designate corresponding content is optional
103
104All <field string> description with * has the following format:
105
106field: <integer>, <field string>
107
108Where value of <integer> should be the position of "string" in <field
109string> description. Otherwise, <field string> will be "unknown".
110
111All <field strings> description with # has the following format:
112
113field: <integer>
114<field strings>
115
116Where each string in <fields strings> corresponding to one set bit of
117<integer>. The bit position is the position of "string" in <field
118strings> description.
119
120For more detailed explanation of every field, please refer to UEFI
121specification version 2.3 or later, section Appendix N: Common
122Platform Error Record.
Documentation/arm/00-INDEX+2−0
@@ -34,3 +34,5 @@ memory.txt · 33 unmodified lines
34 - description of the virtual memory layout34 - description of the virtual memory layout
35nwfpe/35nwfpe/
36 - NWFPE floating point emulator documentation36 - NWFPE floating point emulator documentation
37swp_emulation
38 - SWP/SWPB emulation handler/logging description
Documentation/arm/OMAP/omap_pm+25−0
@@ -127,3 +127,28 @@ implementation needs: · 126 unmodified lines
12710. (*pdata->cpu_set_freq)(unsigned long f)12710. (*pdata->cpu_set_freq)(unsigned long f)
128 128
12911. (*pdata->cpu_get_freq)(void)12911. (*pdata->cpu_get_freq)(void)
130
131Customizing OPP for platform
132============================
133Defining CONFIG_PM should enable OPP layer for the silicon
134and the registration of OPP table should take place automatically.
135However, in special cases, the default OPP table may need to be
136tweaked, 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
141in these cases, the board file needs to do additional steps as follows:
142arch/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 }
153NOTE: omapx_opp_init will be omap3_opp_init or as required
154based on the omap family.
Documentation/arm/swp_emulation+27−0
@@ -0,0 +1,27 @@
1Software emulation of deprecated SWP instruction (CONFIG_SWP_EMULATE)
2---------------------------------------------------------------------
3
4ARMv6 architecture deprecates use of the SWP/SWPB instructions, and recommeds
5moving to the load-locked/store-conditional instructions LDREX and STREX.
6
7ARMv7 multiprocessing extensions introduce the ability to disable these
8instructions, triggering an undefined instruction exception when executed.
9Trapped instructions are emulated using an LDREX/STREX or LDREXB/STREXB
10sequence. If a memory access fault (an abort) occurs, a segmentation fault is
11signalled to the triggering process.
12
13/proc/cpu/swp_emulation holds some statistics/information, including the PID of
14the last process to trigger the emulation to be invocated. For example:
15---
16Emulated SWP: 12
17Emulated SWPB: 0
18Aborted SWP{B}: 1
19Last process: 314
20---
21
22NOTE: when accessing uncached shared regions, LDREX/STREX rely on an external
23transaction monitoring block called a global monitor to maintain update
24atomicity. If your system does not implement a global monitor, this option can
25cause programs that perform SWP operations to uncached memory to deadlock, as
26the STREX operation will always fail.
27
Documentation/cgroups/blkio-controller.txt+27−0
@@ -89,6 +89,33 @@ Throttling/Upper Limit policy · 88 unmodified lines
89 89
90 Limits for writes can be put using blkio.write_bps_device file.90 Limits for writes can be put using blkio.write_bps_device file.
91 91
92Hierarchical 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
92Various user visible config options119Various user visible config options
93===================================120===================================
94CONFIG_BLK_CGROUP121CONFIG_BLK_CGROUP
Documentation/cgroups/cgroup_event_listener.c+1−1
@@ -91,7 +91,7 @@ int main(int argc, char **argv) · 90 unmodified lines
91 91
92 if (ret == -1) {92 if (ret == -1) {
93 perror("cgroup.event_control "93 perror("cgroup.event_control "
94 "is not accessable any more");94 "is not accessible any more");
95 break;95 break;
96 }96 }
97 97
Documentation/cgroups/cgroups.txt+4−4
@@ -355,13 +355,13 @@ subsystems, type: · 354 unmodified lines
355 355
356To change the set of subsystems bound to a mounted hierarchy, just356To change the set of subsystems bound to a mounted hierarchy, just
357remount with different options:357remount with different options:
358# mount -o remount,cpuset,ns hier1 /dev/cgroup358# mount -o remount,cpuset,blkio hier1 /dev/cgroup
359 359
360Now memory is removed from the hierarchy and ns is added.360Now memory is removed from the hierarchy and blkio is added.
361 361
362Note this will add ns to the hierarchy but won't remove memory or362Note this will add blkio to the hierarchy but won't remove memory or
363cpuset, because the new options are appended to the old ones:363cpuset, because the new options are appended to the old ones:
364# mount -o remount,ns /dev/cgroup364# mount -o remount,blkio /dev/cgroup
365 365
366To Specify a hierarchy's release_agent:366To Specify a hierarchy's release_agent:
367# mount -t cgroup -o cpuset,release_agent="/sbin/cpuset_release_agent" \367# 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
398 written to move_charge_at_immigrate.398 written to move_charge_at_immigrate.
399 399
400 9.10 Memory thresholds400 9.10 Memory thresholds
401 Memory controler implements memory thresholds using cgroups notification401 Memory controller implements memory thresholds using cgroups notification
402 API. You can use Documentation/cgroups/cgroup_event_listener.c to test402 API. You can use Documentation/cgroups/cgroup_event_listener.c to test
403 it.403 it.
404 404
Documentation/coccinelle.txt+4−0
@@ -36,6 +36,10 @@ as a regular user, and install it with · 35 unmodified lines
36 36
37 sudo make install37 sudo make install
38 38
39The semantic patches in the kernel will work best with Coccinelle version
400.2.4 or later. Using earlier versions may incur some parse errors in the
41semantic patch code, but any results that are obtained should still be
42correct.
39 43
40 Using Coccinelle on the Linux kernel44 Using Coccinelle on the Linux kernel
41~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~45~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Documentation/device-mapper/dm-crypt.txt+6−1
@@ -8,7 +8,7 @@ Parameters: <cipher> <key> <iv_offset> <device path> <offset> · 7 unmodified lines
8 8
9<cipher>9<cipher>
10 Encryption cipher and an optional IV generation mode.10 Encryption cipher and an optional IV generation mode.
11 (In format cipher-chainmode-ivopts:ivmode).11 (In format cipher[:keycount]-chainmode-ivopts:ivmode).
12 Examples:12 Examples:
13 des13 des
14 aes-cbc-essiv:sha25614 aes-cbc-essiv:sha256
@@ -20,6 +20,11 @@ Parameters: <cipher> <key> <iv_offset> <device path> <offset> · 5 unmodified lines
20 Key used for encryption. It is encoded as a hexadecimal number.20 Key used for encryption. It is encoded as a hexadecimal number.
21 You can only use key sizes that are valid for the selected cipher.21 You can only use key sizes that are valid for the selected cipher.
22 22
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
23<iv_offset>28<iv_offset>
24 The IV offset is a sector count that is added to the sector number29 The IV offset is a sector count that is added to the sector number
25 before creating the IV.30 before creating the IV.
Documentation/device-mapper/dm-raid.txt+70−0
@@ -0,0 +1,70 @@
1Device-mapper RAID (dm-raid) is a bridge from DM to MD. It
2provides a way to use device-mapper interfaces to access the MD RAID
3drivers.
4
5As with all device-mapper targets, the nominal public interfaces are the
6constructor (CTR) tables and the status outputs (both STATUSTYPE_INFO
7and STATUSTYPE_TABLE). The CTR table looks like the following:
8
91: <s> <l> raid \
102: <raid_type> <#raid_params> <raid_params> \
113: <#raid_devs> <meta_dev1> <dev1> .. <meta_devN> <devN>
12
13Line 1 contains the standard first three arguments to any device-mapper
14target - the start, length, and target type fields. The target type in
15this case is "raid".
16
17Line 2 contains the arguments that define the particular raid
18type/personality/level, the required arguments for that raid type, and
19any optional arguments. Possible raid types include: raid4, raid5_la,
20raid5_ls, raid5_rs, raid6_zr, raid6_nr, and raid6_nc. (raid1 is
21planned for the future.) The list of required and optional parameters
22is the same for all the current raid types. The required parameters are
23positional, while the optional parameters are given as key/value pairs.
24The 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
34Line 3 contains the list of devices that compose the array in
35metadata/data device pairs. If the metadata is stored separately, a '-'
36is given for the metadata device position. If a drive has failed or is
37missing at creation time, a '-' can be given for both the metadata and
38data drives for a given position.
39
40NB. Currently all metadata devices must be specified as '-'.
41
42Examples:
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)
470 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
540 1960893648 raid \
55 raid4 4 2048 min_recovery_rate 20 sync\
56 5 - 8:17 - 8:33 - 8:49 - 8:65 - 8:81
57
58Performing a 'dmsetup table' should display the CTR table used to
59construct the mapping (with possible reordering of optional
60parameters).
61
62Performing a 'dmsetup status' will yield information on the state and
63health of the array. The output is as follows:
641: <s> <l> raid \
652: <raid_type> <#devices> <1 health char for each dev> <resync_ratio>
66
67Line 1 is standard DM output. Line 2 is best shown by example:
68 0 1960893648 raid raid4 5 AAAAA 2/490221568
69Here we can see the RAID type is raid4, there are 5 devices - all of
70which 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 @@
1EEPROMs (I2C)
2
3Required 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
13Optional 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
22Example:
23
24eeprom@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 @@
1PPC4xx Clock Power Management (CPM) node
2
3Required properties:
4 - compatible : compatible list, currently only "ibm,cpm"
5 - dcr-access-method : "native"
6 - dcr-reg : < DCR register range >
7
8Optional 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
42Example:
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
13 13
14 I - Introduction14 I - Introduction
15 1) Entry point for arch/powerpc15 1) Entry point for arch/powerpc
16 2) Board support
17 16
18 II - The DT block format17 II - The DT block format
19 1) Header18 1) Header
@@ -41,13 +40,6 @@ Table of Contents · 21 unmodified lines
41 VI - System-on-a-chip devices and nodes40 VI - System-on-a-chip devices and nodes
42 1) Defining child nodes of an SOC41 1) Defining child nodes of an SOC
43 2) Representing devices without a current OF specification42 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
51 43
52 VII - Specifying interrupt information for devices44 VII - Specifying interrupt information for devices
53 1) interrupts property45 1) interrupts property
@@ -123,7 +115,7 @@ Revision Information · 69 unmodified lines
123I - Introduction115I - Introduction
124================116================
125 117
126During the recent development of the Linux/ppc64 kernel, and more118During the development of the Linux/ppc64 kernel, and more
127specifically, the addition of new platform types outside of the old119specifically, the addition of new platform types outside of the old
128IBM pSeries/iSeries pair, it was decided to enforce some strict rules120IBM pSeries/iSeries pair, it was decided to enforce some strict rules
129regarding the kernel entry and bootloader <-> kernel interfaces, in121regarding 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
131point and the way a new platform should be added to the kernel. The123point and the way a new platform should be added to the kernel. The
132legacy iSeries platform breaks those rules as it predates this scheme,124legacy iSeries platform breaks those rules as it predates this scheme,
133but no new board support will be accepted in the main tree that125but no new board support will be accepted in the main tree that
134doesn't follows them properly. In addition, since the advent of the126doesn't follow them properly. In addition, since the advent of the
135arch/powerpc merged architecture for ppc32 and ppc64, new 32-bit127arch/powerpc merged architecture for ppc32 and ppc64, new 32-bit
136platforms and 32-bit platforms which move into arch/powerpc will be128platforms and 32-bit platforms which move into arch/powerpc will be
137required to use these rules as well.129required 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
146create a node for every PCI device in the system. It is a requirement138create a node for every PCI device in the system. It is a requirement
147to have a node for PCI host bridges in order to provide interrupt139to have a node for PCI host bridges in order to provide interrupt
148routing informations and memory/IO ranges, among others. It is also140routing informations and memory/IO ranges, among others. It is also
149recommended to define nodes for on chip devices and other busses that141recommended to define nodes for on chip devices and other buses that
150don't specifically fit in an existing OF specification. This creates a142don't specifically fit in an existing OF specification. This creates a
151great flexibility in the way the kernel can then probe those and match143great flexibility in the way the kernel can then probe those and match
152drivers to device, without having to hard code all sorts of tables. It144drivers to device, without having to hard code all sorts of tables. It
@@ -158,7 +150,7 @@ it with special cases. · 5 unmodified lines
1581) Entry point for arch/powerpc1501) Entry point for arch/powerpc
159-------------------------------151-------------------------------
160 152
161 There is one and one single entry point to the kernel, at the start153 There is one single entry point to the kernel, at the start
162 of the kernel image. That entry point supports two calling154 of the kernel image. That entry point supports two calling
163 conventions:155 conventions:
164 156
@@ -210,12 +202,6 @@ it with special cases. · 45 unmodified lines
210 with all CPUs. The way to do that with method b) will be202 with all CPUs. The way to do that with method b) will be
211 described in a later revision of this document.203 described in a later revision of this document.
212 204
213
2142) Board support
215----------------
216
21764-bit kernels:
218
219 Board supports (platforms) are not exclusive config options. An205 Board supports (platforms) are not exclusive config options. An
220 arbitrary set of board supports can be built in a single kernel206 arbitrary set of board supports can be built in a single kernel
221 image. The kernel will "know" what set of functions to use for a207 image. The kernel will "know" what set of functions to use for a
@@ -234,48 +220,11 @@ it with special cases. · 12 unmodified lines
234 containing the various callbacks that the generic code will220 containing the various callbacks that the generic code will
235 use to get to your platform specific code221 use to get to your platform specific code
236 222
237 c) Add a reference to your "ppc_md" structure in the223 A kernel image may support multiple platforms, but only if 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
24432-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
251 platforms feature the same core architecture. A single kernel build224 platforms feature the same core architecture. A single kernel build
252 cannot support both configurations with Book E and configurations225 cannot support both configurations with Book E and configurations
253 with classic Powerpc architectures.226 with classic Powerpc architectures.
254 227
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
262NOTE: I believe the above will be true once Ben's done with the merge
263of 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
272NOTE: If Ben doesn't merge the setup files, may need to change this to
273point to setup_32.c
274
275
276 I will describe later the boot process and various callbacks that
277 your platform should implement.
278
279 228
280II - The DT block format229II - The DT block format
281========================230========================
@@ -300,8 +249,8 @@ the block to RAM before passing it to the kernel. · 18 unmodified lines
3001) Header2491) Header
301---------250---------
302 251
303 The kernel is entered with r3 pointing to an area of memory that is252 The kernel is passed the physical address pointing to an area of memory
304 roughly described in arch/powerpc/include/asm/prom.h by the structure253 that is roughly described in include/linux/of_fdt.h by the structure
305 boot_param_header:254 boot_param_header:
306 255
307struct boot_param_header {256struct boot_param_header {
@@ -339,7 +288,7 @@ struct boot_param_header { · 31 unmodified lines
339 All values in this header are in big endian format, the various288 All values in this header are in big endian format, the various
340 fields in this header are defined more precisely below. All289 fields in this header are defined more precisely below. All
341 "offset" values are in bytes from the start of the header; that is290 "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.
343 292
344 - magic293 - magic
345 294
@@ -437,7 +386,7 @@ struct boot_param_header { · 91 unmodified lines
437 386
438 387
439 ------------------------------388 ------------------------------
440 r3 -> | struct boot_param_header |389 base -> | struct boot_param_header |
441 ------------------------------390 ------------------------------
442 | (alignment gap) (*) |391 | (alignment gap) (*) |
443 ------------------------------392 ------------------------------
@@ -457,7 +406,7 @@ struct boot_param_header { · 13 unmodified lines
457 -----> ------------------------------406 -----> ------------------------------
458 |407 |
459 |408 |
460 --- (r3 + totalsize)409 --- (base + totalsize)
461 410
462 (*) The alignment gaps are not necessarily present; their presence411 (*) The alignment gaps are not necessarily present; their presence
463 and size are dependent on the various alignment requirements of412 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
500the device-tree. More details about the actual format of these will be449the device-tree. More details about the actual format of these will be
501below.450below.
502 451
503The kernel powerpc generic code does not make any formal use of the452The kernel generic code does not make any formal use of the
504unit address (though some board support code may do) so the only real453unit address (though some board support code may do) so the only real
505requirement here for the unit address is to ensure uniqueness of454requirement here for the unit address is to ensure uniqueness of
506the node unit name at a given level of the tree. Nodes with no notion455the 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
518 467
519Every node which actually represents an actual device (that is, a node468Every node which actually represents an actual device (that is, a node
520which isn't only a virtual "container" for more nodes, like "/cpus"469which isn't only a virtual "container" for more nodes, like "/cpus"
521is) is also required to have a "device_type" property indicating the470is) is also required to have a "compatible" property indicating the
522type of node .471specific hardware and an optional list of devices it is fully
472backwards compatible with.
523 473
524Finally, every node that can be referenced from a property in another474Finally, every node that can be referenced from a property in another
525node is required to have a "linux,phandle" property. Real open475node is required to have either a "phandle" or a "linux,phandle"
526firmware implementations provide a unique "phandle" value for every476property. Real Open Firmware implementations provide a unique
527node that the "prom_init()" trampoline code turns into477"phandle" value for every node that the "prom_init()" trampoline code
528"linux,phandle" properties. However, this is made optional if the478turns into "linux,phandle" properties. However, this is made optional
529flattened device tree is used directly. An example of a node479if the flattened device tree is used directly. An example of a node
530referencing another node via "phandle" is when laying out the480referencing another node via "phandle" is when laying out the
531interrupt tree which will be described in a further version of this481interrupt tree which will be described in a further version of this
532document.482document.
533 483
534This "linux, phandle" property is a 32-bit value that uniquely484The "phandle" property is a 32-bit value that uniquely
535identifies a node. You are free to use whatever values or system of485identifies a node. You are free to use whatever values or system of
536values, internal pointers, or whatever to generate these, the only486values, internal pointers, or whatever to generate these, the only
537requirement is that every node for which you provide that property has487requirement 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
694while the top cell contains address space indication, flags, and pci644while the top cell contains address space indication, flags, and pci
695bus & device numbers.645bus & device numbers.
696 646
697For busses that support dynamic allocation, it's the accepted practice647For buses that support dynamic allocation, it's the accepted practice
698to then not provide the address in "reg" (keep it 0) though while648to then not provide the address in "reg" (keep it 0) though while
699providing a flag indicating the address is dynamically allocated, and649providing a flag indicating the address is dynamically allocated, and
700then, to provide a separate "assigned-addresses" property that650then, 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
711The "reg" property only defines addresses and sizes (if #size-cells is661The "reg" property only defines addresses and sizes (if #size-cells is
712non-0) within a given bus. In order to translate addresses upward662non-0) within a given bus. In order to translate addresses upward
713(that is into parent bus addresses, and possibly into CPU physical663(that is into parent bus addresses, and possibly into CPU physical
714addresses), all busses must contain a "ranges" property. If the664addresses), all buses must contain a "ranges" property. If the
715"ranges" property is missing at a given level, it's assumed that665"ranges" property is missing at a given level, it's assumed that
716translation isn't possible, i.e., the registers are not visible on the666translation isn't possible, i.e., the registers are not visible on the
717parent bus. The format of the "ranges" property for a bus is a list667parent 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
727PCI<->ISA bridge, that would be a PCI address. It defines the base677PCI<->ISA bridge, that would be a PCI address. It defines the base
728address in the parent bus where the beginning of that range is mapped.678address in the parent bus where the beginning of that range is mapped.
729 679
730For a new 64-bit powerpc board, I recommend either the 2/2 format or680For new 64-bit board support, I recommend either the 2/2 format or
731Apple's 2/1 format which is slightly more compact since sizes usually681Apple's 2/1 format which is slightly more compact since sizes usually
732fit in a single 32-bit word. New 32-bit powerpc boards should use a682fit in a single 32-bit word. New 32-bit board support should use a
7331/1 format, unless the processor supports physical addresses greater6831/1 format, unless the processor supports physical addresses greater
734than 32-bits, in which case a 2/1 format is recommended.684than 32-bits, in which case a 2/1 format is recommended.
735 685
@@ -754,7 +704,7 @@ of their actual names. · 18 unmodified lines
754While earlier users of Open Firmware like OldWorld macintoshes tended704While earlier users of Open Firmware like OldWorld macintoshes tended
755to use the actual device name for the "name" property, it's nowadays705to use the actual device name for the "name" property, it's nowadays
756considered a good practice to use a name that is closer to the device706considered a good practice to use a name that is closer to the device
757class (often equal to device_type). For example, nowadays, ethernet707class (often equal to device_type). For example, nowadays, Ethernet
758controllers are named "ethernet", an additional "model" property708controllers are named "ethernet", an additional "model" property
759defining precisely the chip type/model, and "compatible" property709defining precisely the chip type/model, and "compatible" property
760defining the family in case a single driver can driver more than one710defining the family in case a single driver can driver more than one
@@ -772,7 +722,7 @@ is present). · 11 unmodified lines
7724) Note about node and property names and character set7224) Note about node and property names and character set
773-------------------------------------------------------723-------------------------------------------------------
774 724
775While open firmware provides more flexible usage of 8859-1, this725While Open Firmware provides more flexible usage of 8859-1, this
776specification enforces more strict rules. Nodes and properties should726specification enforces more strict rules. Nodes and properties should
777be comprised only of ASCII characters 'a' to 'z', '0' to727be comprised only of ASCII characters 'a' to 'z', '0' to
778'9', ',', '.', '_', '+', '#', '?', and '-'. Node names additionally728'9', ',', '.', '_', '+', '#', '?', and '-'. Node names additionally
@@ -792,7 +742,7 @@ address which can extend beyond that limit. · 13 unmodified lines
792--------------------------------742--------------------------------
793 These are all that are currently required. However, it is strongly743 These are all that are currently required. However, it is strongly
794 recommended that you expose PCI host bridges as documented in the744 recommended that you expose PCI host bridges as documented in the
795 PCI binding to open firmware, and your interrupt tree as documented745 PCI binding to Open Firmware, and your interrupt tree as documented
796 in OF interrupt tree specification.746 in OF interrupt tree specification.
797 747
798 a) The root node748 a) The root node
@@ -802,20 +752,12 @@ address which can extend beyond that limit. · 3 unmodified lines
802 - model : this is your board name/model752 - model : this is your board name/model
803 - #address-cells : address representation for "root" devices753 - #address-cells : address representation for "root" devices
804 - #size-cells: the size representation for "root" devices754 - #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
813 - compatible : the board "family" generally finds its way here,755 - compatible : the board "family" generally finds its way here,
814 for example, if you have 2 board models with a similar layout,756 for example, if you have 2 board models with a similar layout,
815 that typically get driven by the same platform code in the757 that typically get driven by the same platform code in the
816 kernel, you would use a different "model" property but put a758 kernel, you would specify the exact board model in the
817 value in "compatible". The kernel doesn't directly use that759 compatible property followed by an entry that represents the SoC
818 value but it is generally useful.760 model.
819 761
820 The root node is also generally where you add additional properties762 The root node is also generally where you add additional properties
821 specific to your board like the serial number if any, that sort of763 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
841 783
842 So under /cpus, you are supposed to create a node for every CPU on784 So under /cpus, you are supposed to create a node for every CPU on
843 the machine. There is no specific restriction on the name of the785 the machine. There is no specific restriction on the name of the
844 CPU, though It's common practice to call it PowerPC,<name>. For786 CPU, though it's common to call it <architecture>,<core>. For
845 example, Apple uses PowerPC,G5 while IBM uses PowerPC,970FX.787 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.
846 791
847 Required properties:792 Required properties:
848 793
@@ -923,7 +868,7 @@ compatibility. · 74 unmodified lines
923 868
924 e) The /chosen node869 e) The /chosen node
925 870
926 This node is a bit "special". Normally, that's where open firmware871 This node is a bit "special". Normally, that's where Open Firmware
927 puts some variable environment information, like the arguments, or872 puts some variable environment information, like the arguments, or
928 the default input/output devices.873 the default input/output devices.
929 874
@@ -940,11 +885,7 @@ compatibility. · 10 unmodified lines
940 console device if any. Typically, if you have serial devices on885 console device if any. Typically, if you have serial devices on
941 your board, you may want to put the full path to the one set as886 your board, you may want to put the full path to the one set as
942 the default console in the firmware here, for the kernel to pick887 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 function888 it up as its own default console.
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.
948 889
949 Note that u-boot creates and fills in the chosen node for platforms890 Note that u-boot creates and fills in the chosen node for platforms
950 that use it.891 that use it.
@@ -955,23 +896,23 @@ compatibility. · 4 unmodified lines
955 896
956 f) the /soc<SOCname> node897 f) the /soc<SOCname> node
957 898
958 This node is used to represent a system-on-a-chip (SOC) and must be899 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 contains900 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 name901 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 address902 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 soc903 of the memory-mapped register set for the SoC. The name of an SoC
963 node should start with "soc", and the remainder of the name should904 node should start with "soc", and the remainder of the name should
964 represent the part number for the soc. For example, the MPC8540's905 represent the part number for the soc. For example, the MPC8540's
965 soc node would be called "soc8540".906 soc node would be called "soc8540".
966 907
967 Required properties:908 Required properties:
968 909
969 - device_type : Should be "soc"
970 - ranges : Should be defined as specified in 1) to describe the910 - ranges : Should be defined as specified in 1) to describe the
971 translation of SOC addresses for memory mapped SOC registers.911 translation of SoC addresses for memory mapped SoC registers.
972 - bus-frequency: Contains the bus frequency for the SOC node.912 - bus-frequency: Contains the bus frequency for the SoC node.
973 Typically, the value of this field is filled in by the boot913 Typically, the value of this field is filled in by the boot
974 loader.914 loader.
915 - compatible : Exact model of the SoC
975 916
976 917
977 Recommended properties:918 Recommended properties:
@@ -1025,7 +966,7 @@ dtc source code can be found at · 47 unmodified lines
1025 966
1026WARNING: This version is still in early development stage; the967WARNING: This version is still in early development stage; the
1027resulting device-tree "blobs" have not yet been validated with the968resulting device-tree "blobs" have not yet been validated with the
1028kernel. The current generated bloc lacks a useful reserve map (it will969kernel. The current generated block lacks a useful reserve map (it will
1029be fixed to generate an empty one, it's up to the bootloader to fill970be fixed to generate an empty one, it's up to the bootloader to fill
1030it up) among others. The error handling needs work, bugs are lurking,971it up) among others. The error handling needs work, bugs are lurking,
1031etc...972etc...
@@ -1098,7 +1039,7 @@ supported currently at the toplevel. · 66 unmodified lines
1098 * an arbitrary array of bytes1039 * an arbitrary array of bytes
1099 */1040 */
1100 1041
1101 childnode@addresss { /* define a child node named "childnode"1042 childnode@address { /* define a child node named "childnode"
1102 * whose unit name is "childnode at1043 * whose unit name is "childnode at
1103 * address"1044 * address"
1104 */1045 */
@@ -1155,12 +1096,13 @@ while all this has been defined and implemented. · 50 unmodified lines
1155 1096
1156 - An example of code for iterating nodes & retrieving properties1097 - An example of code for iterating nodes & retrieving properties
1157 directly from the flattened tree format can be found in the kernel1098 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,
1159 its usage in early_init_devtree(), and the corresponding various1100 its usage in early_init_devtree(), and the corresponding various
1160 early_init_dt_scan_*() callbacks. That code can be re-used in a1101 early_init_dt_scan_*() callbacks. That code can be re-used in a
1161 GPL bootloader, and as the author of that code, I would be happy1102 GPL bootloader, and as the author of that code, I would be happy
1162 to discuss possible free licensing to any vendor who wishes to1103 to discuss possible free licensing to any vendor who wishes to
1163 integrate all or part of this code into a non-GPL bootloader.1104 integrate all or part of this code into a non-GPL bootloader.
1105 (reference needed; who is 'I' here? ---gcl Jan 31, 2011)
1164 1106
1165 1107
1166 1108
@@ -1203,18 +1145,19 @@ MPC8540. · 36 unmodified lines
12032) Representing devices without a current OF specification11452) Representing devices without a current OF specification
1204----------------------------------------------------------1146----------------------------------------------------------
1205 1147
1206Currently, there are many devices on SOCs that do not have a standard1148Currently, there are many devices on SoCs that do not have a standard
1207representation pre-defined as part of the open firmware1149representation defined as part of the Open Firmware specifications,
1208specifications, mainly because the boards that contain these SOCs are1150mainly because the boards that contain these SoCs are not currently
1209not currently booted using open firmware. This section contains1151booted using Open Firmware. Binding documentation for new devices
1210descriptions for the SOC devices for which new nodes have been1152should be added to the Documentation/devicetree/bindings directory.
1211defined; this list will expand as more and more SOC-containing1153That directory will expand as device tree support is added to more and
1212platforms are moved over to use the flattened-device-tree model.1154more SoCs.
1155
1213 1156
1214VII - Specifying interrupt information for devices1157VII - Specifying interrupt information for devices
1215===================================================1158===================================================
1216 1159
1217The device tree represents the busses and devices of a hardware1160The device tree represents the buses and devices of a hardware
1218system in a form similar to the physical bus topology of the1161system in a form similar to the physical bus topology of the
1219hardware.1162hardware.
1220 1163
Documentation/dontdiff+26−0
@@ -62,6 +62,10 @@ aic7*reg_print.c* · 61 unmodified lines
62aic7*seq.h*62aic7*seq.h*
63aicasm63aicasm
64aicdb.h*64aicdb.h*
65altivec1.c
66altivec2.c
67altivec4.c
68altivec8.c
65asm-offsets.h69asm-offsets.h
66asm_offsets.h70asm_offsets.h
67autoconf.h*71autoconf.h*
@@ -76,6 +80,7 @@ btfixupprep · 8 unmodified lines
76build80build
77bvmlinux81bvmlinux
78bzImage*82bzImage*
83capflags.c
79classlist.h*84classlist.h*
80comp*.log85comp*.log
81compile.h*86compile.h*
@@ -94,6 +99,7 @@ devlist.h* · 12 unmodified lines
94docproc99docproc
95elf2ecoff100elf2ecoff
96elfconfig.h*101elfconfig.h*
102evergreen_reg_safe.h
97fixdep103fixdep
98flask.h104flask.h
99fore200e_mkfirm105fore200e_mkfirm
@@ -108,9 +114,16 @@ genksyms · 8 unmodified lines
108*_gray256.c114*_gray256.c
109ihex2fw115ihex2fw
110ikconfig.h*116ikconfig.h*
117inat-tables.c
111initramfs_data.cpio118initramfs_data.cpio
112initramfs_data.cpio.gz119initramfs_data.cpio.gz
113initramfs_list120initramfs_list
121int16.c
122int1.c
123int2.c
124int32.c
125int4.c
126int8.c
114kallsyms127kallsyms
115kconfig128kconfig
116keywords.c129keywords.c
@@ -140,6 +153,7 @@ mkprep · 23 unmodified lines
140mktables153mktables
141mktree154mktree
142modpost155modpost
156modules.builtin
143modules.order157modules.order
144modversions.h*158modversions.h*
145ncscope.*159ncscope.*
@@ -153,14 +167,23 @@ pca200e.bin · 7 unmodified lines
153pca200e_ecd.bin2167pca200e_ecd.bin2
154piggy.gz168piggy.gz
155piggyback169piggyback
170piggy.S
156pnmtologo171pnmtologo
157ppc_defs.h*172ppc_defs.h*
158pss_boot.h173pss_boot.h
159qconf174qconf
175r100_reg_safe.h
176r200_reg_safe.h
177r300_reg_safe.h
178r420_reg_safe.h
179r600_reg_safe.h
160raid6altivec*.c180raid6altivec*.c
161raid6int*.c181raid6int*.c
162raid6tables.c182raid6tables.c
163relocs183relocs
184rn50_reg_safe.h
185rs600_reg_safe.h
186rv515_reg_safe.h
164series187series
165setup188setup
166setup.bin189setup.bin
@@ -169,6 +192,7 @@ sImage · 2 unmodified lines
169sm_tbl*192sm_tbl*
170split-include193split-include
171syscalltab.h194syscalltab.h
195tables.c
172tags196tags
173tftpboot.img197tftpboot.img
174timeconst.h198timeconst.h
@@ -190,6 +214,7 @@ vmlinux · 15 unmodified lines
190vmlinux-*214vmlinux-*
191vmlinux.aout215vmlinux.aout
192vmlinux.lds216vmlinux.lds
217voffset.h
193vsyscall.lds218vsyscall.lds
194vsyscall_32.lds219vsyscall_32.lds
195wanxlfw.inc220wanxlfw.inc
@@ -200,3 +225,4 @@ wakeup.elf · 4 unmodified lines
200wakeup.lds225wakeup.lds
201zImage*226zImage*
202zconf.hash.c227zconf.hash.c
228zoffset.h
Documentation/dvb/lmedm04.txt+1−1
@@ -46,7 +46,7 @@ and run · 45 unmodified lines
46Other LG firmware can be extracted manually from US280D.sys46Other LG firmware can be extracted manually from US280D.sys
47only found in windows/system32/driver.47only found in windows/system32/driver.
48 48
49dd if=US280D.sys ibs=1 skip=42616 count=3668 of=dvb-usb-lme2510-lg.fw49dd if=US280D.sys ibs=1 skip=42360 count=3924 of=dvb-usb-lme2510-lg.fw
50 50
51for DM04 LME2510C (LG Tuner)51for DM04 LME2510C (LG Tuner)
52---------------------------52---------------------------
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
104As an added bonus you can customise the message creation toolbar menu104As an added bonus you can customise the message creation toolbar menu
105and put the "insert file" icon there.105and put the "insert file" icon there.
106 106
107Make the the composer window wide enough so that no lines wrap. As of
108KMail 1.13.5 (KDE 4.5.4), KMail will apply word wrapping when sending
109the email if the lines wrap in the composer window. Having word wrapping
110disabled in the Options menu isn't enough. Thus, if your patch has very
111long lines, you must make the composer window very wide before sending
112the email. See: https://bugs.kde.org/show_bug.cgi?id=174034
113
107You can safely GPG sign attachments, but inlined text is preferred for114You can safely GPG sign attachments, but inlined text is preferred for
108patches so do not GPG sign them. Signing patches that have been inserted115patches so do not GPG sign them. Signing patches that have been inserted
109as inlined text will make them tricky to extract from their 7-bit encoding.116as inlined text will make them tricky to extract from their 7-bit encoding.
@@ -179,26 +186,8 @@ Sylpheed (GUI) · 69 unmodified lines
179~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~186~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
180Thunderbird (GUI)187Thunderbird (GUI)
181 188
182By default, thunderbird likes to mangle text, but there are ways to189Thunderbird is an Outlook clone that likes to mangle text, but there are ways
183coerce it into being nice.190to coerce it into behaving.
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.
202 191
203- Allows use of an external editor:192- Allows use of an external editor:
204 The easiest thing to do with Thunderbird and patches is to use an193 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
208 View->Toolbars->Customize... and finally just click on it when in the197 View->Toolbars->Customize... and finally just click on it when in the
209 Compose dialog.198 Compose dialog.
210 199
200To 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
211~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~221~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
212TkRat (GUI)222TkRat (GUI)
213 223
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
97 97
98---------------------------98---------------------------
99 99
100What: Video4Linux API 1 ioctls and from Video devices.
101When: kernel 2.6.38
102Files: include/linux/videodev.h
103Check: include/linux/videodev.h
104Why: 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.
115Who: Mauro Carvalho Chehab <mchehab@infradead.org>
116
117---------------------------
118
119What: Video4Linux obsolete drivers using V4L1 API100What: Video4Linux obsolete drivers using V4L1 API
120When: kernel 2.6.38101When: kernel 2.6.39
121Files: drivers/staging/cpia/* drivers/staging/stradis/*102Files: drivers/staging/se401/* drivers/staging/usbvideo/*
122Check: drivers/staging/cpia/cpia.c drivers/staging/stradis/stradis.c103Check: drivers/staging/se401/se401.c drivers/staging/usbvideo/usbvideo.c
123Why: There are some drivers still using V4L1 API, despite all efforts we've done104Why: There are some drivers still using V4L1 API, despite all efforts we've done
124 to migrate. Those drivers are for obsolete hardware that the old maintainer105 to migrate. Those drivers are for obsolete hardware that the old maintainer
125 didn't care (or not have the hardware anymore), and that no other developer106 didn't care (or not have the hardware anymore), and that no other developer
126 could find any hardware to buy. They probably have no practical usage today,107 could find any hardware to buy. They probably have no practical usage today,
127 and people with such old hardware could probably keep using an older version108 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 nobody109 of the kernel. Those drivers will be moved to staging on 2.6.38 and, if nobody
129 care enough to port and test them with V4L2 API, they'll be removed on 2.6.38.110 cares enough to port and test them with V4L2 API, they'll be removed on 2.6.39.
111Who: Mauro Carvalho Chehab <mchehab@infradead.org>
112
113---------------------------
114
115What: Video4Linux: Remove obsolete ioctl's
116When: kernel 2.6.39
117Files: include/media/videodev2.h
118Why: 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
130Who: Mauro Carvalho Chehab <mchehab@infradead.org>132Who: Mauro Carvalho Chehab <mchehab@infradead.org>
131 133
132---------------------------134---------------------------
@@ -191,6 +193,20 @@ Why: /proc/<pid>/oom_adj allows userspace to influence the oom killer's · 58 unmodified lines
191 193
192---------------------------194---------------------------
193 195
196What: CS5535/CS5536 obsolete GPIO driver
197When: June 2011
198Files: drivers/staging/cs5535_gpio/*
199Check: drivers/staging/cs5535_gpio/cs5535_gpio.c
200Why: 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.
206Who: Andres Salomon <dilinger@queued.net>
207
208--------------------------
209
194What: remove EXPORT_SYMBOL(kernel_thread)210What: remove EXPORT_SYMBOL(kernel_thread)
195When: August 2006211When: August 2006
196Files: arch/*/kernel/*_ksyms.c212Files: arch/*/kernel/*_ksyms.c
@@ -232,6 +248,17 @@ Who: Zhang Rui <rui.zhang@intel.com> · 35 unmodified lines
232 248
233---------------------------249---------------------------
234 250
251What: CONFIG_ACPI_PROCFS_POWER
252When: 2.6.39
253Why: 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.
258Who: Zhang Rui <rui.zhang@intel.com>
259
260---------------------------
261
235What: /proc/acpi/button262What: /proc/acpi/button
236When: August 2007263When: August 2007
237Why: /proc/acpi/button has been replaced by events to the input layer264Why: /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
330 357
331-----------------------------358-----------------------------
332 359
333What: __do_IRQ all in one fits nothing interrupt handler
334When: 2.6.32
335Why: __do_IRQ was kept for easy migration to the type flow handlers.
336 More than two years of migration time is enough.
337Who: Thomas Gleixner <tglx@linutronix.de>
338
339-----------------------------
340
341What: fakephp and associated sysfs files in /sys/bus/pci/slots/360What: fakephp and associated sysfs files in /sys/bus/pci/slots/
342When: 2011361When: 2011
343Why: In 2.6.27, the semantics of /sys/bus/pci/slots was redefined to362Why: 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
564Who: Jean Delvare <khali@linux-fr.org>583Who: Jean Delvare <khali@linux-fr.org>
565 584
566----------------------------585----------------------------
586
587What: cancel_rearming_delayed_work[queue]()
588When: 2.6.39
589
590Why: 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.
593Who: Tejun Heo <tj@kernel.org>
594
595----------------------------
596
597What: Legacy, non-standard chassis intrusion detection interface.
598When: June 2011
599Why: 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.
603Who: Jean Delvare <khali@linux-fr.org>
604
605----------------------------
606
607What: noswapaccount kernel command line parameter
608When: 2.6.40
609Why: 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 ().
619Who: 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
9 9
10--------------------------- dentry_operations --------------------------10--------------------------- dentry_operations --------------------------
11prototypes:11prototypes:
12 int (*d_revalidate)(struct dentry *, int);12 int (*d_revalidate)(struct dentry *, struct nameidata *);
13 int (*d_hash) (struct dentry *, struct qstr *);13 int (*d_hash)(const struct dentry *, const struct inode *,
14 int (*d_compare) (struct dentry *, struct qstr *, struct qstr *);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 *);
15 int (*d_delete)(struct dentry *);18 int (*d_delete)(struct dentry *);
16 void (*d_release)(struct dentry *);19 void (*d_release)(struct dentry *);
17 void (*d_iput)(struct dentry *, struct inode *);20 void (*d_iput)(struct dentry *, struct inode *);
18 char *(*d_dname)((struct dentry *dentry, char *buffer, int buflen);21 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);
19 24
20locking rules:25locking rules:
21 dcache_lock rename_lock ->d_lock may block26 rename_lock ->d_lock may block rcu-walk
22d_revalidate: no no no yes27d_revalidate: no no yes (ref-walk) maybe
23d_hash no no no yes28d_hash no no no maybe
24d_compare: no yes no no 29d_compare: yes no no maybe
25d_delete: yes no yes no30d_delete: no yes no no
26d_release: no no no yes31d_release: no no yes no
27d_iput: no no no yes32d_iput: no no yes no
28d_dname: no no no no33d_dname: no no no no
34d_automount: no no yes no
35d_manage: no no yes (ref-walk) maybe
29 36
30--------------------------- inode_operations --------------------------- 37--------------------------- inode_operations ---------------------------
31prototypes:38prototypes:
@@ -44,8 +51,8 @@ ata *); · 12 unmodified lines
44 void * (*follow_link) (struct dentry *, struct nameidata *);51 void * (*follow_link) (struct dentry *, struct nameidata *);
45 void (*put_link) (struct dentry *, struct nameidata *, void *);52 void (*put_link) (struct dentry *, struct nameidata *, void *);
46 void (*truncate) (struct inode *);53 void (*truncate) (struct inode *);
47 int (*permission) (struct inode *, int, struct nameidata *);54 int (*permission) (struct inode *, int, unsigned int);
48 int (*check_acl)(struct inode *, int);55 int (*check_acl)(struct inode *, int, unsigned int);
49 int (*setattr) (struct dentry *, struct iattr *);56 int (*setattr) (struct dentry *, struct iattr *);
50 int (*getattr) (struct vfsmount *, struct dentry *, struct kstat *);57 int (*getattr) (struct vfsmount *, struct dentry *, struct kstat *);
51 int (*setxattr) (struct dentry *, const char *,const void *,size_t,int);58 int (*setxattr) (struct dentry *, const char *,const void *,size_t,int);
@@ -53,7 +60,6 @@ ata *); · 1 unmodified line
53 ssize_t (*listxattr) (struct dentry *, char *, size_t);60 ssize_t (*listxattr) (struct dentry *, char *, size_t);
54 int (*removexattr) (struct dentry *, const char *);61 int (*removexattr) (struct dentry *, const char *);
55 void (*truncate_range)(struct inode *, loff_t, loff_t);62 void (*truncate_range)(struct inode *, loff_t, loff_t);
56 long (*fallocate)(struct inode *inode, int mode, loff_t offset, loff_t len);
57 int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64 start, u64 len);63 int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64 start, u64 len);
58 64
59locking rules:65locking rules:
@@ -73,7 +79,7 @@ follow_link: no · 13 unmodified lines
73put_link: no79put_link: no
74truncate: yes (see below)80truncate: yes (see below)
75setattr: yes81setattr: yes
76permission: no82permission: no (may not block if called in rcu-walk mode)
77check_acl: no83check_acl: no
78getattr: no84getattr: no
79setxattr: yes85setxattr: yes
@@ -81,7 +87,6 @@ getxattr: no · 1 unmodified line
81listxattr: no87listxattr: no
82removexattr: yes88removexattr: yes
83truncate_range: yes89truncate_range: yes
84fallocate: no
85fiemap: no90fiemap: no
86 Additionally, ->rmdir(), ->unlink() and ->rename() have ->i_mutex on91 Additionally, ->rmdir(), ->unlink() and ->rename() have ->i_mutex on
87victim.92victim.
@@ -340,7 +345,6 @@ prototypes: · 252 unmodified lines
340 int (*fl_grant)(struct file_lock *, struct file_lock *, int);345 int (*fl_grant)(struct file_lock *, struct file_lock *, int);
341 void (*fl_release_private)(struct file_lock *);346 void (*fl_release_private)(struct file_lock *);
342 void (*fl_break)(struct file_lock *); /* break_lease callback */347 void (*fl_break)(struct file_lock *); /* break_lease callback */
343 int (*fl_mylease)(struct file_lock *, struct file_lock *);
344 int (*fl_change)(struct file_lock **, int);348 int (*fl_change)(struct file_lock **, int);
345 349
346locking rules:350locking rules:
@@ -350,7 +354,6 @@ fl_notify: yes no · 3 unmodified lines
350fl_grant: no no354fl_grant: no no
351fl_release_private: maybe no355fl_release_private: maybe no
352fl_break: yes no356fl_break: yes no
353fl_mylease: yes no
354fl_change yes no357fl_change yes no
355 358
356--------------------------- buffer_head -----------------------------------359--------------------------- buffer_head -----------------------------------
@@ -432,6 +435,7 @@ prototypes: · 75 unmodified lines
432 ssize_t (*splice_read)(struct file *, loff_t *, struct pipe_inode_info *,435 ssize_t (*splice_read)(struct file *, loff_t *, struct pipe_inode_info *,
433 size_t, unsigned int);436 size_t, unsigned int);
434 int (*setlease)(struct file *, long, struct file_lock **);437 int (*setlease)(struct file *, long, struct file_lock **);
438 long (*fallocate)(struct file *, int, loff_t, loff_t);
435};439};
436 440
437locking rules:441locking rules:
Documentation/filesystems/dentry-locking.txt+0−174
@@ -1,174 +0,0 @@
1RCU-based dcache locking model
2==============================
3
4On many workloads, the most common operation on dcache is to look up a
5dentry, given a parent dentry and the name of the child. Typically,
6for every open(), stat() etc., the dentry corresponding to the
7pathname will be looked up by walking the tree starting with the first
8component of the pathname and using that dentry along with the next
9component to look up the next level and so on. Since it is a frequent
10operation for workloads like multiuser environments and web servers,
11it is important to optimize this path.
12
13Prior to 2.5.10, dcache_lock was acquired in d_lookup and thus in
14every component during path look-up. Since 2.5.10 onwards, fast-walk
15algorithm changed this by holding the dcache_lock at the beginning and
16walking as many cached path component dentries as possible. This
17significantly decreases the number of acquisition of
18dcache_lock. However it also increases the lock hold time
19significantly and affects performance in large SMP machines. Since
202.5.62 kernel, dcache has been using a new locking model that uses RCU
21to make dcache look-up lock-free.
22
23The current dcache locking model is not very different from the
24existing dcache locking model. Prior to 2.5.62 kernel, dcache_lock
25protected the hash chain, d_child, d_alias, d_lru lists as well as
26d_inode and several other things like mount look-up. RCU-based changes
27affect only the way the hash chain is protected. For everything else
28the dcache_lock must be taken for both traversing as well as
29updating. The hash chain updates too take the dcache_lock. The
30significant change is the way d_lookup traverses the hash chain, it
31doesn't acquire the dcache_lock for this and rely on RCU to ensure
32that the dentry has not been *freed*.
33
34
35Dcache locking details
36======================
37
38For many multi-user workloads, open() and stat() on files are very
39frequently occurring operations. Both involve walking of path names to
40find the dentry corresponding to the concerned file. In 2.4 kernel,
41dcache_lock was held during look-up of each path component. Contention
42and cache-line bouncing of this global lock caused significant
43scalability problems. With the introduction of RCU in Linux kernel,
44this was worked around by making the look-up of path components during
45path walking lock-free.
46
47
48Safe lock-free look-up of dcache hash table
49===========================================
50
51Dcache is a complex data structure with the hash table entries also
52linked together in other lists. In 2.4 kernel, dcache_lock protected
53all the lists. We applied RCU only on hash chain walking. The rest of
54the lists are still protected by dcache_lock. Some of the important
55changes are :
56
571. 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
622. 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
733. 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
834. 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
895. 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
946. 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
108Maintaining POSIX rename semantics
109==================================
110
111Since look-up of dentries is lock-free, it can race against a
112concurrent rename operation. For example, during rename of file A to
113B, look-up of either A or B must succeed. So, if look-up of B happens
114after A has been removed from the hash chain but not added to the new
115hash chain, it may fail. Also, a comparison while the name is being
116written concurrently by a rename may result in false positive matches
117violating rename semantics. Issues related to race with rename are
118handled as described below :
119
1201. 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
1272. 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
1343. 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
1434. 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
150Important guidelines for filesystem developers related to dcache_rcu
151====================================================================
152
1531. 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
1592. d_flags is now protected by a per-dentry lock (d_lock). All access
160 to d_flags must be protected by it.
161
1623. For a hashed dentry, checking of d_count needs to be protected by
163 d_lock.
164
165
166Papers and other documentation on dcache locking
167================================================
168
1691. Scaling dcache with RCU (http://linuxjournal.com/article.php?sid=7124).
170
1712. 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
457 457
458Note, a technical ChangeLog aimed at kernel hackers is in fs/ntfs/ChangeLog.458Note, a technical ChangeLog aimed at kernel hackers is in fs/ntfs/ChangeLog.
459 459
4602.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.
4602.1.29:4652.1.29:
461 - Fix a deadlock when mounting read-write.466 - Fix a deadlock when mounting read-write.
4622.1.28:4672.1.28:
Documentation/filesystems/path-lookup.txt+382−0
@@ -0,0 +1,382 @@
1Path walking and name lookup locking
2====================================
3
4Path resolution is the finding a dentry corresponding to a path name string, by
5performing a path walk. Typically, for every open(), stat() etc., the path name
6will be resolved. Paths are resolved by walking the namespace tree, starting
7with the first component of the pathname (eg. root or cwd) with a known dentry,
8then finding the child of that dentry, which is named the next component in the
9path string. Then repeating the lookup from the child dentry and finding its
10child with the next element, and so on.
11
12Since it is a frequent operation for workloads like multiuser environments and
13web servers, it is important to optimize this code.
14
15Path walking synchronisation history:
16Prior to 2.5.10, dcache_lock was acquired in d_lookup (dcache hash lookup) and
17thus in every component during path look-up. Since 2.5.10 onwards, fast-walk
18algorithm changed this by holding the dcache_lock at the beginning and walking
19as many cached path component dentries as possible. This significantly
20decreases the number of acquisition of dcache_lock. However it also increases
21the lock hold time significantly and affects performance in large SMP machines.
22Since 2.5.62 kernel, dcache has been using a new locking model that uses RCU to
23make dcache look-up lock-free.
24
25All the above algorithms required taking a lock and reference count on the
26dentry that was looked up, so that may be used as the basis for walking the
27next path element. This is inefficient and unscalable. It is inefficient
28because of the locks and atomic operations required for every dentry element
29slows things down. It is not scalable because many parallel applications that
30are 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
32common path elements causes lock and cacheline queueing.
33
34Since 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
36even stores into cachelines of common dentries). This is known as "rcu-walk"
37path walking.
38
39Path walking overview
40=====================
41
42A name string specifies a start (root directory, cwd, fd-relative) and a
43sequence of elements (directory entry names), which together refer to a path in
44the namespace. A path is represented as a (dentry, vfsmount) tuple. The name
45elements are sub-strings, seperated by '/'.
46
47Name 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
49the path given by the name's starting point (which we know in advance -- eg.
50current->fs->cwd or current->fs->root) as the first parent of the lookup. Then
51iteratively for each subsequent name element, look up the child of the current
52parent with the given name and if it is not the desired entry, make it the
53parent for the next lookup.
54
55A parent, of course, must be a directory, and we must have appropriate
56permissions on the parent inode to be able to walk into it.
57
58Turning the child into a parent for the next lookup requires more checks and
59procedures. Symlinks essentially substitute the symlink name for the target
60name in the name string, and require some recursive path walking. Mount points
61must be followed into (thus changing the vfsmount that subsequent path elements
62refer to), switching from the mount point path to the root of the particular
63mounted vfsmount. These behaviours are variously modified depending on the
64exact path walking flags.
65
66Path 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
74Safe store-free look-up of dcache hash table
75============================================
76
77Dcache name lookup
78------------------
79In order to lookup a dcache (parent, name) tuple, we take a hash on the tuple
80and use that to select a bucket in the dcache-hash table. The list of entries
81in that bucket is then walked, and we do a full comparison of each entry
82against our (parent, name) tuple.
83
84The hash lists are RCU protected, so list walking is not serialised with
85concurrent updates (insertion, deletion from the hash). This is a standard RCU
86list application with the exception of renames, which will be covered below.
87
88Parent and name members of a dentry, as well as its membership in the dcache
89hash, and its inode are protected by the per-dentry d_lock spinlock. A
90reference is taken on the dentry (while the fields are verified under d_lock),
91and this stabilises its d_inode pointer and actual inode. This gives a stable
92point to perform the next step of our path walk against.
93
94These members are also protected by d_seq seqlock, although this offers
95read-only protection and no durability of results, so care must be taken when
96using d_seq for synchronisation (see seqcount based lookups, below).
97
98Renames
99-------
100Back to the rename case. In usual RCU protected lists, the only operations that
101will happen to an object is insertion, and then eventually removal from the
102list. The object will not be reused until an RCU grace period is complete.
103This ensures the RCU list traversal primitives can run over the object without
104problems (see RCU documentation for how this works).
105
106However when a dentry is renamed, its hash value can change, requiring it to be
107moved to a new hash list. Allocating and inserting a new alias would be
108expensive and also problematic for directory dentries. Latency would be far to
109high to wait for a grace period after removing the dentry and before inserting
110it in the new hash bucket. So what is done is to insert the dentry into the
111new list immediately.
112
113However, when the dentry's list pointers are updated to point to objects in the
114new list before waiting for a grace period, this can result in a concurrent RCU
115lookup of the old list veering off into the new (incorrect) list and missing
116the remaining dentries on the list.
117
118There is no fundamental problem with walking down the wrong list, because the
119dentry comparisons will never match. However it is fatal to miss a matching
120dentry. So a seqlock is used to detect when a rename has occurred, and so the
121lookup can be retried.
122
123 1 2 3
124 +---+ +---+ +---+
125hlist-->| N-+->| N-+->| N-+->
126head <--+-P |<-+-P |<-+-P |
127 +---+ +---+ +---+
128
129Rename of dentry 2 may require it deleted from the above list, and inserted
130into a new list. Deleting 2 gives the following list.
131
132 1 3
133 +---+ +---+ (don't worry, the longer pointers do not
134hlist-->| N-+-------->| N-+-> impose a measurable performance overhead
135head <--+-P |<--------+-P | on modern CPUs)
136 +---+ +---+
137 ^ 2 ^
138 | +---+ |
139 | | N-+----+
140 +----+-P |
141 +---+
142
143This is a standard RCU-list deletion, which leaves the deleted object's
144pointers intact, so a concurrent list walker that is currently looking at
145object 2 will correctly continue to object 3 when it is time to traverse the
146next object.
147
148However, when inserting object 2 onto a new list, we end up with this:
149
150 1 3
151 +---+ +---+
152hlist-->| N-+-------->| N-+->
153head <--+-P |<--------+-P |
154 +---+ +---+
155 2
156 +---+
157 | N-+---->
158 <----+-P |
159 +---+
160
161Because we didn't wait for a grace period, there may be a concurrent lookup
162still at 2. Now when it follows 2's 'next' pointer, it will walk off into
163another list without ever having checked object 3.
164
165A related, but distinctly different, issue is that of rename atomicity versus
166lookup operations. If a file is renamed from 'A' to 'B', a lookup must only
167find either 'A' or 'B'. So if a lookup of 'A' returns NULL, a subsequent lookup
168of 'B' must succeed (note the reverse is not true).
169
170Between deleting the dentry from the old hash list, and inserting it on the new
171hash list, a lookup may find neither 'A' nor 'B' matching the dentry. The same
172rename seqlock is also used to cover this race in much the same way, by
173retrying a negative lookup result if a rename was in progress.
174
175Seqcount based lookups
176----------------------
177In refcount based dcache lookups, d_lock is used to serialise access to
178the dentry, stabilising it while comparing its name and parent and then
179taking a reference count (the reference count then gives a stable place to
180start the next part of the path walk from).
181
182As explained above, we would like to do path walking without taking locks or
183reference counts on intermediate dentries along the path. To do this, a per
184dentry seqlock (d_seq) is used to take a "coherent snapshot" of what the dentry
185looks like (its name, parent, and inode). That snapshot is then used to start
186the next part of the path walk. When loading the coherent snapshot under d_seq,
187care must be taken to load the members up-front, and use those pointers rather
188than reloading from the dentry later on (otherwise we'd have interesting things
189like d_inode going NULL underneath us, if the name was unlinked).
190
191Also important is to avoid performing any destructive operations (pretty much:
192no 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.
194Avoiding destructive or changing operations means we can easily unwind from
195failure.
196
197What this means is that a caller, provided they are holding RCU lock to
198protect the dentry object from disappearing, can perform a seqcount based
199lookup which does not increment the refcount on the dentry or write to
200it in any way. This returned dentry can be used for subsequent operations,
201provided that d_seq is rechecked after that operation is complete.
202
203Inodes are also rcu freed, so the seqcount lookup dentry's inode may also be
204queried for permissions.
205
206With this two parts of the puzzle, we can do path lookups without taking
207locks or refcounts on dentry elements.
208
209RCU-walk path walking design
210============================
211
212Path walking code now has two distinct modes, ref-walk and rcu-walk. ref-walk
213is the traditional[*] way of performing dcache lookups using d_lock to
214serialise concurrent modifications to the dentry and take a reference count on
215it. ref-walk is simple and obvious, and may sleep, take locks, etc while path
216walking is operating on each dentry. rcu-walk uses seqcount based dentry
217lookups, and can perform lookup of intermediate elements without any stores to
218shared data in the dentry or inode. rcu-walk can not be applied to all cases,
219eg. if the filesystem must sleep or perform non trivial operations, rcu-walk
220must 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
225Where ref-walk uses a stable, refcounted ``parent'' to walk the remaining
226path string, rcu-walk uses a d_seq protected snapshot. When looking up a
227child of this parent snapshot, we open d_seq critical section on the child
228before closing d_seq critical section on the parent. This gives an interlocking
229ladder 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
240So when vi wants to open("/home/npiggin/test.c", O_RDWR), then it will
241start 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
243the 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
273Taking a refcount on a dentry from rcu-walk mode, by taking its d_lock,
274re-checking its d_seq, and then incrementing its refcount is called
275"dropping rcu" or dropping from rcu-walk into ref-walk mode.
276
277It is, in some sense, a bit of a house of cards. If the seqcount check of the
278parent snapshot fails, the house comes down, because we had closed the d_seq
279section on the grandparent, so we have nothing left to stand on. In that case,
280the path walk must be fully restarted (which we do in ref-walk mode, to avoid
281live locks). It is costly to have a full restart, but fortunately they are
282quite rare.
283
284When we reach a point where sleeping is required, or a filesystem callout
285requires ref-walk, then instead of restarting the walk, we attempt to drop rcu
286at the last known good dentry we have. Avoiding a full restart in ref-walk in
287these cases is fundamental for performance and scalability because blocking
288operations such as creates and unlinks are not uncommon.
289
290The 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
317The cases where rcu-walk cannot continue are:
318* NULL dentry (ie. any uncached path element)
319* Following links
320
321It may be possible eventually to make following links rcu-walk aware.
322
323Uncached path elements will always require dropping to ref-walk mode, at the
324very least because i_mutex needs to be grabbed, and objects allocated.
325
326Final note:
327"store-free" path walking is not strictly store free. We take vfsmount lock
328and refcounts (both of which can be made per-cpu), and we also store to the
329stack (which is essentially CPU-local), and we also have to take locks and
330refcount on final dentry.
331
332The point is that shared data, where practically possible, is not locked
333or stored into. The result is massive improvements in performance and
334scalability of path resolution.
335
336
337Interesting statistics
338======================
339
340The following table gives rcu lookup statistics for a few simple workloads
341(2s12c24t Westmere, debian non-graphical system). Ungraceful are attempts to
342drop rcu that fail due to d_seq failure and requiring the entire path lookup
343again. Other cases are successful rcu-drops that are required before the final
344element, nodentry for missing dentry, revalidate for filesystem revalidate
345routine requiring rcu drop, permission for permission check requiring drop,
346and link for symlink traversal requiring drop.
347
348 rcu-lookups restart nodentry link revalidate permission
349bootup 47121 0 4624 1010 10283 7852
350dbench 25386793 0 6778659(26.7%) 55 549 1156
351kbuild 2696672 10 64442(2.3%) 108764(4.0%) 1 1590
352git diff 39605 0 28 2 0 106
353vfstest 24185492 4945 708725(2.9%) 1076136(4.4%) 0 2651
354
355What this shows is that failed rcu-walk lookups, ie. ones that are restarted
356entirely with ref-walk, are quite rare. Even the "vfstest" case which
357specifically has concurrent renames/mkdir/rmdir/ creat/unlink/etc to excercise
358such races is not showing a huge amount of restarts.
359
360Dropping from rcu-walk to ref-walk mean that we have encountered a dentry where
361the reference count needs to be taken for some reason. This is either because
362we have reached the target of the path walk, or because we have encountered a
363condition that can't be resolved in rcu-walk mode. Ideally, we drop rcu-walk
364only when we have reached the target dentry, so the other statistics show where
365this does not happen.
366
367Note that a graceful drop from rcu-walk mode due to something such as the
368dentry not existing (which can be common) is not necessarily a failure of
369rcu-walk scheme, because some elements of the path may have been walked in
370rcu-walk mode. The further we get from common path elements (such as cwd or
371root), the less contended the dentry is likely to be. The closer we are to
372common path elements, the more likely they will exist in dentry cache.
373
374
375Papers and other documentation on dcache locking
376================================================
377
3781. Scaling dcache with RCU (http://linuxjournal.com/article.php?sid=7124).
379
3802. 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
216->d_parent changes are not protected by BKL anymore. Read access is safe216->d_parent changes are not protected by BKL anymore. Read access is safe
217if at least one of the following is true:217if at least one of the following is true:
218 * filesystem has no cross-directory rename()218 * filesystem has no cross-directory rename()
219 * dcache_lock is held
220 * we know that parent had been locked (e.g. we are looking at219 * we know that parent had been locked (e.g. we are looking at
221->d_parent of ->lookup() argument).220->d_parent of ->lookup() argument).
222 * we are called from ->rename().221 * 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
318may happen while the inode is in the middle of ->write_inode(); e.g. if you blindly317may happen while the inode is in the middle of ->write_inode(); e.g. if you blindly
319free the on-disk inode, you may end up doing that while ->write_inode() is writing318free the on-disk inode, you may end up doing that while ->write_inode() is writing
320to it.319to it.
320
321---
322[mandatory]
323
324 .d_delete() now only advises the dcache as to whether or not to cache
325unreferenced dentries, and is now only called when the dentry refcount goes to
3260. Even on 0 refcount transition, it must be able to tolerate being called 0,
3271, or more times (eg. constant, idempotent).
328
329---
330[mandatory]
331
332 .d_compare() calling convention and locking rules are significantly
333changed. Read updated documentation in Documentation/filesystems/vfs.txt (and
334look at examples of other filesystems) for guidance.
335
336---
337[mandatory]
338
339 .d_hash() calling convention and locking rules are significantly
340changed. Read updated documentation in Documentation/filesystems/vfs.txt (and
341look 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
346for details of what locks to replace dcache_lock with in order to protect
347particular things. Most of the time, a filesystem only needs ->d_lock, which
348protects *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
354via rcu-walk path walk (basically, if the file can have had a path name in the
355vfs namespace).
356
357 i_dentry and i_rcu share storage in a union, and the vfs expects
358i_dentry to be reinitialized before it is freed, so an:
359
360 INIT_LIST_HEAD(&inode->i_dentry);
361
362must be done in the RCU callback.
363
364--
365[recommended]
366 vfs now tries to do path walking in "rcu-walk mode", which avoids
367atomic operations and scalability hazards on dentries and inodes (see
368Documentation/filesystems/path-lookup.txt). d_hash and d_compare changes
369(above) are examples of the changes required to support this. For more complex
370filesystem callbacks, the vfs drops out of rcu-walk mode before the fs call, so
371no changes are required to the filesystem. However, this is costly and loses
372the benefits of rcu-walk mode. We will begin to add filesystem callbacks that
373are rcu-walk aware, shown below. Filesystems should take advantage of this
374where possible.
375
376--
377[mandatory]
378 d_revalidate is a callback that is made on every path element (if
379the filesystem provides it), which requires dropping out of rcu-walk mode. This
380may now be called in rcu-walk mode (nd->flags & LOOKUP_RCU). -ECHILD should be
381returned if the filesystem cannot handle rcu-walk. See
382Documentation/filesystems/vfs.txt for more details.
383
384 permission and check_acl are inode permission checks that are called
385on many or all directory inodes on the way down a path walk (to check for
386exec permission). These must now be rcu-walk aware (flags & IPERM_FLAG_RCU).
387See Documentation/filesystems/vfs.txt for more details.
388
389--
390[mandatory]
391 In ->fallocate() you must check the mode option passed in. If your
392filesystem does not support hole punching (deallocating space in the middle of a
393file) you must return -EOPNOTSUPP if FALLOC_FL_PUNCH_HOLE is set in mode.
394Currently you can only have FALLOC_FL_PUNCH_HOLE with FALLOC_FL_KEEP_SIZE set,
395so the i_size should not change when hole punching, even when puching the end of
396a file off.
Documentation/filesystems/proc.txt+31−0
@@ -375,6 +375,7 @@ Anonymous: 0 kB · 374 unmodified lines
375Swap: 0 kB375Swap: 0 kB
376KernelPageSize: 4 kB376KernelPageSize: 4 kB
377MMUPageSize: 4 kB377MMUPageSize: 4 kB
378Locked: 374 kB
378 379
379The first of these lines shows the same information as is displayed for the380The first of these lines shows the same information as is displayed for the
380mapping in /proc/PID/maps. The remaining lines show the size of the mapping381mapping 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
670 671
671> cat /proc/meminfo672> cat /proc/meminfo
672 673
674The "Locked" indicates whether the mapping is locked in memory or not.
675
673 676
674MemTotal: 16344972 kB677MemTotal: 16344972 kB
675MemFree: 13634064 kB678MemFree: 13634064 kB
@@ -1181,6 +1184,30 @@ Table 1-12: Files in /proc/fs/ext4/<devname> · 505 unmodified lines
1181 mb_groups details of multiblock allocator buddy cache of free blocks1184 mb_groups details of multiblock allocator buddy cache of free blocks
1182..............................................................................1185..............................................................................
1183 1186
11872.0 /proc/consoles
1188------------------
1189Shows registered system console lines.
1190
1191To 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
1198The 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
1184 1211
1185------------------------------------------------------------------------------1212------------------------------------------------------------------------------
1186Summary1213Summary
@@ -1296,6 +1323,10 @@ scaled linearly with /proc/<pid>/oom_score_adj. · 109 unmodified lines
1296Writing to /proc/<pid>/oom_score_adj or /proc/<pid>/oom_adj will change the1323Writing to /proc/<pid>/oom_score_adj or /proc/<pid>/oom_adj will change the
1297other with its scaled value.1324other with its scaled value.
1298 1325
1326The value of /proc/<pid>/oom_score_adj may be reduced no lower than the last
1327value set by a CAP_SYS_RESOURCE process. To reduce the value any lower
1328requires CAP_SYS_RESOURCE.
1329
1299NOTICE: /proc/<pid>/oom_adj is deprecated and will be removed, please see1330NOTICE: /proc/<pid>/oom_adj is deprecated and will be removed, please see
1300Documentation/feature-removal-schedule.txt.1331Documentation/feature-removal-schedule.txt.
1301 1332
Documentation/filesystems/vfs.txt+100−17
@@ -325,7 +325,8 @@ struct inode_operations { · 324 unmodified lines
325 void * (*follow_link) (struct dentry *, struct nameidata *);325 void * (*follow_link) (struct dentry *, struct nameidata *);
326 void (*put_link) (struct dentry *, struct nameidata *, void *);326 void (*put_link) (struct dentry *, struct nameidata *, void *);
327 void (*truncate) (struct inode *);327 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);
329 int (*setattr) (struct dentry *, struct iattr *);330 int (*setattr) (struct dentry *, struct iattr *);
330 int (*getattr) (struct vfsmount *mnt, struct dentry *, struct kstat *);331 int (*getattr) (struct vfsmount *mnt, struct dentry *, struct kstat *);
331 int (*setxattr) (struct dentry *, const char *,const void *,size_t,int);332 int (*setxattr) (struct dentry *, const char *,const void *,size_t,int);
@@ -414,6 +415,13 @@ otherwise noted. · 82 unmodified lines
414 permission: called by the VFS to check for access rights on a POSIX-like415 permission: called by the VFS to check for access rights on a POSIX-like
415 filesystem.416 filesystem.
416 417
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
417 setattr: called by the VFS to set attributes for a file. This method425 setattr: called by the VFS to set attributes for a file. This method
418 is called by chmod(2) and related system calls.426 is called by chmod(2) and related system calls.
419 427
@@ -847,12 +855,17 @@ defined: · 427 unmodified lines
847 855
848struct dentry_operations {856struct dentry_operations {
849 int (*d_revalidate)(struct dentry *, struct nameidata *);857 int (*d_revalidate)(struct dentry *, struct nameidata *);
850 int (*d_hash) (struct dentry *, struct qstr *);858 int (*d_hash)(const struct dentry *, const struct inode *,
851 int (*d_compare) (struct dentry *, struct qstr *, struct qstr *);859 struct qstr *);
852 int (*d_delete)(struct dentry *);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 *);
853 void (*d_release)(struct dentry *);864 void (*d_release)(struct dentry *);
854 void (*d_iput)(struct dentry *, struct inode *);865 void (*d_iput)(struct dentry *, struct inode *);
855 char *(*d_dname)(struct dentry *, char *, int);866 char *(*d_dname)(struct dentry *, char *, int);
867 struct vfsmount *(*d_automount)(struct path *);
868 int (*d_manage)(struct dentry *, bool, bool);
856};869};
857 870
858 d_revalidate: called when the VFS needs to revalidate a dentry. This871 d_revalidate: called when the VFS needs to revalidate a dentry. This
@@ -860,13 +873,45 @@ struct dentry_operations { · 1 unmodified line
860 dcache. Most filesystems leave this as NULL, because all their873 dcache. Most filesystems leave this as NULL, because all their
861 dentries in the dcache are valid874 dentries in the dcache are valid
862 875
863 d_hash: called when the VFS adds a dentry to the hash table876 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.
864 891
865 d_compare: called when a dentry should be compared with another892 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.
866 897
867 d_delete: called when the last reference to a dentry is898 Must be constant and idempotent, and should not take locks if
868 deleted. This means no-one is using the dentry, however it is899 possible, and should not or store into the dentry or inodes.
869 still valid and in the dcache900 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.
870 915
871 d_release: called when a dentry is really deallocated916 d_release: called when a dentry is really deallocated
872 917
@@ -887,6 +932,47 @@ struct dentry_operations { · 14 unmodified lines
887 at the end of the buffer, and returns a pointer to the first char.932 at the end of the buffer, and returns a pointer to the first char.
888 dynamic_dname() helper function is provided to take care of this.933 dynamic_dname() helper function is provided to take care of this.
889 934
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
890Example :976Example :
891 977
892static char *pipefs_dname(struct dentry *dent, char *buffer, int buflen)978static char *pipefs_dname(struct dentry *dent, char *buffer, int buflen)
@@ -910,14 +996,11 @@ manipulate dentries: · 17 unmodified lines
910 the usage count)996 the usage count)
911 997
912 dput: close a handle for a dentry (decrements the usage count). If998 dput: close a handle for a dentry (decrements the usage count). If
913 the usage count drops to 0, the "d_delete" method is called999 the usage count drops to 0, and the dentry is still in its
914 and the dentry is placed on the unused list if the dentry is1000 parent's hash, the "d_delete" method is called to check whether
915 still in its parents hash list. Putting the dentry on the1001 it should be cached. If it should not be cached, or if the dentry
916 unused list just means that if the system needs some RAM, it1002 is not hashed, it is deleted. Otherwise cached dentries are put
917 goes through the unused list of dentries and deallocates them.1003 into an LRU list to be reclaimed on memory shortage.
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
921 1004
922 d_drop: this unhashes a dentry from its parents hash list. A1005 d_drop: this unhashes a dentry from its parents hash list. A
923 subsequent call to dput() will deallocate the dentry if its1006 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
155The ADM9240 provides an internal open drain on this line, and may output155The ADM9240 provides an internal open drain on this line, and may output
156a 20 ms active low pulse to reset an external Chassis Intrusion latch.156a 20 ms active low pulse to reset an external Chassis Intrusion latch.
157 157
158Clear the CI latch by writing value 1 to the sysfs chassis_clear file.158Clear the CI latch by writing value 0 to the sysfs intrusion0_alarm file.
159 159
160Alarm flags reported as 16-bit word160Alarm flags reported as 16-bit word
161 161
Documentation/hwmon/ads7828+1−1
@@ -9,7 +9,7 @@ Supported chips: · 8 unmodified lines
9 http://focus.ti.com/lit/ds/symlink/ads7828.pdf9 http://focus.ti.com/lit/ds/symlink/ads7828.pdf
10 10
11Authors:11Authors:
12 Steve Hardy <steve@linuxrealtime.co.uk>12 Steve Hardy <shardy@redhat.com>
13 13
14Module Parameters14Module Parameters
15-----------------15-----------------
Documentation/hwmon/dme1737+7−5
@@ -42,7 +42,7 @@ Description · 41 unmodified lines
42This driver implements support for the hardware monitoring capabilities of the42This driver implements support for the hardware monitoring capabilities of the
43SMSC DME1737 and Asus A8000 (which are the same), SMSC SCH5027, SCH311x,43SMSC DME1737 and Asus A8000 (which are the same), SMSC SCH5027, SCH311x,
44and SCH5127 Super-I/O chips. These chips feature monitoring of 3 temp sensors44and SCH5127 Super-I/O chips. These chips feature monitoring of 3 temp sensors
45temp[1-3] (2 remote diodes and 1 internal), 7 voltages in[0-6] (6 external and45temp[1-3] (2 remote diodes and 1 internal), 8 voltages in[0-7] (7 external and
461 internal) and up to 6 fan speeds fan[1-6]. Additionally, the chips implement461 internal) and up to 6 fan speeds fan[1-6]. Additionally, the chips implement
47up to 5 PWM outputs pwm[1-3,5-6] for controlling fan speeds both manually and47up to 5 PWM outputs pwm[1-3,5-6] for controlling fan speeds both manually and
48automatically.48automatically.
@@ -105,6 +105,7 @@ SCH5127: · 56 unmodified lines
105 in4: V1_IN 0V - 1.5V105 in4: V1_IN 0V - 1.5V
106 in5: VTR (+3.3V standby) 0V - 4.38V106 in5: VTR (+3.3V standby) 0V - 4.38V
107 in6: Vbat (+3.0V) 0V - 4.38V107 in6: Vbat (+3.0V) 0V - 4.38V
108 in7: Vtrip (+1.5V) 0V - 1.99V
108 109
109Each voltage input has associated min and max limits which trigger an alarm110Each voltage input has associated min and max limits which trigger an alarm
110when crossed.111when crossed.
@@ -217,10 +218,10 @@ cpu0_vid RO CPU core reference voltage in · 106 unmodified lines
217vrm RW Voltage regulator module version218vrm RW Voltage regulator module version
218 number.219 number.
219 220
220in[0-6]_input RO Measured voltage in millivolts.221in[0-7]_input RO Measured voltage in millivolts.
221in[0-6]_min RW Low limit for voltage input.222in[0-7]_min RW Low limit for voltage input.
222in[0-6]_max RW High limit for voltage input.223in[0-7]_max RW High limit for voltage input.
223in[0-6]_alarm RO Voltage input alarm. Returns 1 if224in[0-7]_alarm RO Voltage input alarm. Returns 1 if
224 voltage input is or went outside the225 voltage input is or went outside the
225 associated min-max range, 0 otherwise.226 associated min-max range, 0 otherwise.
226 227
@@ -324,3 +325,4 @@ fan5 opt opt · 97 unmodified lines
324pwm5 opt opt325pwm5 opt opt
325fan6 opt opt326fan6 opt opt
326pwm6 opt opt327pwm6 opt opt
328in7 yes
Documentation/hwmon/ds620+34−0
@@ -0,0 +1,34 @@
1Kernel driver ds620
2===================
3
4Supported chips:
5 * Dallas Semiconductor DS620
6 Prefix: 'ds620'
7 Datasheet: Publicly available at the Dallas Semiconductor website
8 http://www.dalsemi.com/
9
10Authors:
11 Roland Stigge <stigge@antcom.de>
12 based on ds1621.c by
13 Christian W. Zuckschwerdt <zany@triq.net>
14
15Description
16-----------
17
18The DS620 is a (one instance) digital thermometer and thermostat. It has both
19high and low temperature limits which can be user defined (i.e. programmed
20into non-volatile on-chip registers). Temperature range is -55 degree Celsius
21to +125. Between 0 and 70 degree Celsius, accuracy is 0.5 Kelvin. The value
22returned via sysfs displays post decimal positions.
23
24The thermostat function works as follows: When configured via platform_data
25(struct ds620_platform_data) .pomode == 0 (default), the thermostat output pin
26PO is always low. If .pomode == 1, the thermostat is in PO_LOW mode. I.e., the
27output pin PO becomes active when the temperature falls below temp1_min and
28stays active until the temperature goes above temp1_max.
29
30Likewise, with .pomode == 2, the thermostat is in PO_HIGH mode. I.e., the PO
31output pin becomes active when the temperature goes above temp1_max and stays
32active until the temperature falls below temp1_min.
33
34The PO output pin of the DS620 operates active-low.
Documentation/hwmon/jc42+15−6
@@ -51,7 +51,8 @@ Supported chips: · 50 unmodified lines
51 * JEDEC JC 42.4 compliant temperature sensor chips51 * JEDEC JC 42.4 compliant temperature sensor chips
52 Prefix: 'jc42'52 Prefix: 'jc42'
53 Addresses scanned: I2C 0x18 - 0x1f53 Addresses scanned: I2C 0x18 - 0x1f
54 Datasheet: -54 Datasheet:
55 http://www.jedec.org/sites/default/files/docs/4_01_04R19.pdf
55 56
56Author:57Author:
57 Guenter Roeck <guenter.roeck@ericsson.com>58 Guenter Roeck <guenter.roeck@ericsson.com>
@@ -60,7 +61,11 @@ Author: · 2 unmodified lines
60Description61Description
61-----------62-----------
62 63
63This driver implements support for JEDEC JC 42.4 compliant temperature sensors.64This driver implements support for JEDEC JC 42.4 compliant temperature sensors,
65which are used on many DDR3 memory modules for mobile devices and servers. Some
66systems use the sensor to prevent memory overheating by automatically throttling
67the memory controller.
68
64The driver auto-detects the chips listed above, but can be manually instantiated69The driver auto-detects the chips listed above, but can be manually instantiated
65to support other JC 42.4 compliant chips.70to support other JC 42.4 compliant chips.
66 71
@@ -81,15 +86,19 @@ limits. The chip supports only a single register to configure the hysteresis, · 14 unmodified lines
81which applies to all limits. This register can be written by writing into86which applies to all limits. This register can be written by writing into
82temp1_crit_hyst. Other hysteresis attributes are read-only.87temp1_crit_hyst. Other hysteresis attributes are read-only.
83 88
89If the BIOS has configured the sensor for automatic temperature management, it
90is likely that it has locked the registers, i.e., that the temperature limits
91cannot be changed.
92
84Sysfs entries93Sysfs entries
85-------------94-------------
86 95
87temp1_input Temperature (RO)96temp1_input Temperature (RO)
88temp1_min Minimum temperature (RW)97temp1_min Minimum temperature (RO or RW)
89temp1_max Maximum temperature (RW)98temp1_max Maximum temperature (RO or RW)
90temp1_crit Critical high temperature (RW)99temp1_crit Critical high temperature (RO or RW)
91 100
92temp1_crit_hyst Critical hysteresis temperature (RW)101temp1_crit_hyst Critical hysteresis temperature (RO or RW)
93temp1_max_hyst Maximum hysteresis temperature (RO)102temp1_max_hyst Maximum hysteresis temperature (RO)
94 103
95temp1_min_alarm Temperature low alarm104temp1_min_alarm Temperature low alarm
Documentation/hwmon/k10temp+7−1
@@ -9,6 +9,8 @@ Supported chips: · 8 unmodified lines
9 Socket S1G3: Athlon II, Sempron, Turion II9 Socket S1G3: Athlon II, Sempron, Turion II
10* AMD Family 11h processors:10* AMD Family 11h processors:
11 Socket S1G2: Athlon (X2), Sempron (X2), Turion X2 (Ultra)11 Socket S1G2: Athlon (X2), Sempron (X2), Turion X2 (Ultra)
12* AMD Family 12h processors: "Llano"
13* AMD Family 14h processors: "Brazos" (C/E/G-Series)
12 14
13 Prefix: 'k10temp'15 Prefix: 'k10temp'
14 Addresses scanned: PCI space16 Addresses scanned: PCI space
@@ -17,10 +19,14 @@ Supported chips: · 2 unmodified lines
17 http://support.amd.com/us/Processor_TechDocs/31116.pdf19 http://support.amd.com/us/Processor_TechDocs/31116.pdf
18 BIOS and Kernel Developer's Guide (BKDG) for AMD Family 11h Processors:20 BIOS and Kernel Developer's Guide (BKDG) for AMD Family 11h Processors:
19 http://support.amd.com/us/Processor_TechDocs/41256.pdf21 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
20 Revision Guide for AMD Family 10h Processors:24 Revision Guide for AMD Family 10h Processors:
21 http://support.amd.com/us/Processor_TechDocs/41322.pdf25 http://support.amd.com/us/Processor_TechDocs/41322.pdf
22 Revision Guide for AMD Family 11h Processors:26 Revision Guide for AMD Family 11h Processors:
23 http://support.amd.com/us/Processor_TechDocs/41788.pdf27 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
24 AMD Family 11h Processor Power and Thermal Data Sheet for Notebooks:30 AMD Family 11h Processor Power and Thermal Data Sheet for Notebooks:
25 http://support.amd.com/us/Processor_TechDocs/43373.pdf31 http://support.amd.com/us/Processor_TechDocs/43373.pdf
26 AMD Family 10h Server and Workstation Processor Power and Thermal Data Sheet:32 AMD Family 10h Server and Workstation Processor Power and Thermal Data Sheet:
@@ -34,7 +40,7 @@ Description · 7 unmodified lines
34-----------40-----------
35 41
36This driver permits reading of the internal temperature sensor of AMD42This driver permits reading of the internal temperature sensor of AMD
37Family 10h and 11h processors.43Family 10h/11h/12h/14h processors.
38 44
39All these processors have a sensor, but on those for Socket F or AM2+,45All these processors have a sensor, but on those for Socket F or AM2+,
40the sensor may return inconsistent values (erratum 319). The driver46the sensor may return inconsistent values (erratum 319). The driver
Documentation/hwmon/lm93+7−0
@@ -6,6 +6,10 @@ Supported chips: · 5 unmodified lines
6 Prefix 'lm93'6 Prefix 'lm93'
7 Addresses scanned: I2C 0x2c-0x2e7 Addresses scanned: I2C 0x2c-0x2e
8 Datasheet: http://www.national.com/ds.cgi/LM/LM93.pdf8 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
9 13
10Authors:14Authors:
11 Mark M. Hoffman <mhoffman@lightlink.com>15 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
56for dynamic Vccp monitoring and PROCHOT. It is designed to monitor a dual60for dynamic Vccp monitoring and PROCHOT. It is designed to monitor a dual
57processor Xeon class motherboard with a minimum of external components.61processor Xeon class motherboard with a minimum of external components.
58 62
63LM94 is also supported in LM93 compatible mode. Extra sensors and features of
64LM94 are not supported.
65
59 66
60User Interface67User Interface
61--------------68--------------
Documentation/hwmon/sht21+49−0
@@ -0,0 +1,49 @@
1Kernel driver sht21
2===================
3
4Supported 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
17Author:
18 Urs Fleisch <urs.fleisch@sensirion.com>
19
20Description
21-----------
22
23The SHT21 and SHT25 are humidity and temperature sensors in a DFN package of
24only 3 x 3 mm footprint and 1.1 mm height. The difference between the two
25devices is the higher level of precision of the SHT25 (1.8% relative humidity,
260.2 degree Celsius) compared with the SHT21 (2.0% relative humidity,
270.3 degree Celsius).
28
29The devices communicate with the I2C protocol. All sensors are set to the same
30I2C address 0x40, so an entry with I2C_BOARD_INFO("sht21", 0x40) can be used
31in the board setup code.
32
33sysfs-Interface
34---------------
35
36temp1_input - temperature input
37humidity1_input - humidity input
38
39Notes
40-----
41
42The driver uses the default resolution settings of 12 bit for humidity and 14
43bit for temperature, which results in typical measurement times of 22 ms for
44humidity and 66 ms for temperature. To keep self heating below 0.1 degree
45Celsius, the device should not be active for more than 10% of the time,
46e.g. maximum two measurements per second at the given resolution.
47
48Different resolutions, the on-chip heater, using the CRC checksum and reading
49the 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
384 Unit: milliampere384 Unit: milliampere
385 RW385 RW
386 386
387curr[1-*]_lcrit Current critical low value
388 Unit: milliampere
389 RW
390
391curr[1-*]_crit Current critical high value.
392 Unit: milliampere
393 RW
394
387curr[1-*]_input Current input value395curr[1-*]_input Current input value
388 Unit: milliampere396 Unit: milliampere
389 RO397 RO
390 398
399Also see the Alarms section for status flags associated with currents.
400
391*********401*********
392* Power *402* Power *
393*********403*********
@@ -450,13 +460,6 @@ power[1-*]_accuracy Accuracy of the power meter. · 56 unmodified lines
450 Unit: Percent460 Unit: Percent
451 RO461 RO
452 462
453power[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
460power[1-*]_cap If power use rises above this limit, the463power[1-*]_cap If power use rises above this limit, the
461 system should take action to reduce power use.464 system should take action to reduce power use.
462 A poll notification is sent to this file if the465 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
479 Unit: microWatt482 Unit: microWatt
480 RO483 RO
481 484
485power[1-*]_max Maximum power.
486 Unit: microWatt
487 RW
488
489power[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
497Also see the Alarms section for status flags associated with power readings.
498
482**********499**********
483* Energy *500* Energy *
484**********501**********
@@ -488,6 +505,15 @@ energy[1-*]_input Cumulative energy use · 3 unmodified lines
488 RO505 RO
489 506
490 507
508************
509* Humidity *
510************
511
512humidity[1-*]_input Humidity
513 Unit: milli-percent (per cent mille, pcm)
514 RO
515
516
491**********517**********
492* Alarms *518* Alarms *
493**********519**********
@@ -501,6 +527,7 @@ implementation. · 7 unmodified lines
501 527
502in[0-*]_alarm528in[0-*]_alarm
503curr[1-*]_alarm529curr[1-*]_alarm
530power[1-*]_alarm
504fan[1-*]_alarm531fan[1-*]_alarm
505temp[1-*]_alarm532temp[1-*]_alarm
506 Channel alarm533 Channel alarm
@@ -512,12 +539,20 @@ OR · 5 unmodified lines
512 539
513in[0-*]_min_alarm540in[0-*]_min_alarm
514in[0-*]_max_alarm541in[0-*]_max_alarm
542in[0-*]_lcrit_alarm
543in[0-*]_crit_alarm
515curr[1-*]_min_alarm544curr[1-*]_min_alarm
516curr[1-*]_max_alarm545curr[1-*]_max_alarm
546curr[1-*]_lcrit_alarm
547curr[1-*]_crit_alarm
548power[1-*]_cap_alarm
549power[1-*]_max_alarm
550power[1-*]_crit_alarm
517fan[1-*]_min_alarm551fan[1-*]_min_alarm
518fan[1-*]_max_alarm552fan[1-*]_max_alarm
519temp[1-*]_min_alarm553temp[1-*]_min_alarm
520temp[1-*]_max_alarm554temp[1-*]_max_alarm
555temp[1-*]_lcrit_alarm
521temp[1-*]_crit_alarm556temp[1-*]_crit_alarm
522temp[1-*]_emergency_alarm557temp[1-*]_emergency_alarm
523 Limit alarm558 Limit alarm
Documentation/hwmon/w83627hf+22−0
@@ -91,3 +91,25 @@ isaset -y -f 0x2e 0xaa · 90 unmodified lines
91 91
92The above sequence assumes a Super-I/O config space at 0x2e/0x2f, but92The above sequence assumes a Super-I/O config space at 0x2e/0x2f, but
930x4e/0x4f is also possible.930x4e/0x4f is also possible.
94
95Voltage pin mapping
96-------------------
97
98Here is a summary of the voltage pin mapping for the W83627THF. This
99can be useful to convert data provided by board manufacturers into
100working 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
113For other supported devices, you'll have to take the hard path and
114look up the information in the datasheet yourself (and then add it
115to this document please.)
Documentation/hwmon/w83793+1−1
@@ -92,7 +92,7 @@ This driver implements support for Winbond W83793G/W83793R chips. · 91 unmodified lines
92 92
93* Chassis93* Chassis
94 If the case open alarm triggers, it will stay in this state unless cleared94 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".
96 96
97* VID and VRM97* VID and VRM
98 The VRM version is detected automatically, don't modify the it unless you98 The VRM version is detected automatically, don't modify the it unless you
Documentation/i2c/muxes/gpio-i2cmux+65−0
@@ -0,0 +1,65 @@
1Kernel driver gpio-i2cmux
2
3Author: Peter Korsgaard <peter.korsgaard@barco.com>
4
5Description
6-----------
7
8gpio-i2cmux is an i2c mux driver providing access to I2C bus segments
9from a master I2C bus and a hardware MUX controlled through GPIO pins.
10
11E.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
23SCL/SDA of the master I2C bus is multiplexed to bus segment 1..M
24according to the settings of the GPIO pins 1..N.
25
26Usage
27-----
28
29gpio-i2cmux uses the platform bus, so you need to provide a struct
30platform_device with the platform_data pointing to a struct
31gpio_i2cmux_platform_data with the I2C adapter number of the master
32bus, the number of bus segments to create and the GPIO pins used
33to control it. See include/linux/gpio-i2cmux.h for details.
34
35E.G. something like this for a MUX providing 4 bus segments
36controlled through 3 GPIO pins:
37
38#include <linux/gpio-i2cmux.h>
39#include <linux/platform_device.h>
40
41static const unsigned myboard_gpiomux_gpios[] = {
42 AT91_PIN_PC26, AT91_PIN_PC25, AT91_PIN_PC24
43};
44
45static const unsigned myboard_gpiomux_values[] = {
46 0, 1, 2, 3
47};
48
49static 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
59static 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 @@
1Kernel driver for CMA3000-D0x
2============================
3
4Supported chips:
5* VTI CMA3000-D0x
6Datasheet:
7 CMA3000-D0X Product Family Specification 8281000A.02.pdf
8 <http://www.vti.fi/en/>
9
10Author: Hemanth V <hemanthv@ti.com>
11
12
13Description
14-----------
15CMA3000 Tri-axis accelerometer supports Motion detect, Measurement and
16Free fall modes.
17
18Motion Detect Mode: Its the low power mode where interrupts are generated only
19when motion exceeds the defined thresholds.
20
21Measurement Mode: This mode is used to read the acceleration data on X,Y,Z
22axis and supports 400, 100, 40 Hz sample frequency.
23
24Free fall Mode: This mode is intended to save system resources.
25
26Threshold values: Chip supports defining threshold values for above modes
27which includes time and g value. Refer product specifications for more details.
28
29CMA3000 chip supports mutually exclusive I2C and SPI interfaces for
30communication, currently the driver supports I2C based communication only.
31Initial configuration for bus mode is set in non volatile memory and can later
32be modified through bus interface command.
33
34Driver reports acceleration data through input subsystem. It generates ABS_MISC
35event with value 1 when free fall is detected.
36
37Platform data need to be configured for initial default values.
38
39Platform Data
40-------------
41fuzz_x: Noise on X Axis
42
43fuzz_y: Noise on Y Axis
44
45fuzz_z: Noise on Z Axis
46
47g_range: G range in milli g i.e 2000 or 8000
48
49mode: Default Operating mode
50
51mdthr: Motion detect g range threshold value
52
53mdfftmr: Motion detect and free fall time threshold value
54
55ffthr: Free fall g range threshold value
56
57Input Interface
58--------------
59Input driver version is 1.0.0
60Input device ID: bus 0x18 vendor 0x0 product 0x0 version 0x0
61Input device name: "cma3000-accelerometer"
62Supported 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
87Register/Platform parameters Description
88----------------------------------------
89
90mode:
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
100grange:
101 2000: 2000 mg or 2G Range
102 8000: 8000 mg or 8G Range
103
104mdthr:
105 X: X * 71mg (8G Range)
106 X: X * 18mg (2G Range)
107
108mdfftmr:
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
113ffthr:
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
49#include <linux/input.h>49#include <linux/input.h>
50#include <sys/ioctl.h>50#include <sys/ioctl.h>
51 51
52unsigned 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)))
54unsigned long features[BITS_TO_LONGS(FF_CNT)];
53int ioctl(int file_descriptor, int request, unsigned long *features);55int ioctl(int file_descriptor, int request, unsigned long *features);
54 56
55"request" must be EVIOCGBIT(EV_FF, size of features array in bytes )57"request" must be EVIOCGBIT(EV_FF, size of features array in bytes )
Documentation/input/multi-touch-protocol.txt+34−19
@@ -1,6 +1,6 @@
1Multi-touch (MT) Protocol1Multi-touch (MT) Protocol
2-------------------------2-------------------------
3 Copyright (C) 2009 Henrik Rydberg <rydberg@euromail.se>3 Copyright (C) 2009-2010 Henrik Rydberg <rydberg@euromail.se>
4 4
5 5
6Introduction6Introduction
@@ -161,19 +161,24 @@ against the glass. The inner region will increase, and in general, the · 154 unmodified lines
161ratio ABS_MT_TOUCH_MAJOR / ABS_MT_WIDTH_MAJOR, which is always smaller than161ratio ABS_MT_TOUCH_MAJOR / ABS_MT_WIDTH_MAJOR, which is always smaller than
162unity, is related to the contact pressure. For pressure-based devices,162unity, is related to the contact pressure. For pressure-based devices,
163ABS_MT_PRESSURE may be used to provide the pressure on the contact area163ABS_MT_PRESSURE may be used to provide the pressure on the contact area
164instead.164instead. Devices capable of contact hovering can use ABS_MT_DISTANCE to
165indicate the distance between the contact and the surface.
165 166
166In addition to the MAJOR parameters, the oval shape of the contact can be167In addition to the MAJOR parameters, the oval shape of the contact can be
167described by adding the MINOR parameters, such that MAJOR and MINOR are the168described by adding the MINOR parameters, such that MAJOR and MINOR are the
168major and minor axis of an ellipse. Finally, the orientation of the oval169major and minor axis of an ellipse. Finally, the orientation of the oval
169shape can be describe with the ORIENTATION parameter.170shape can be describe with the ORIENTATION parameter.
170 171
172For type A devices, further specification of the touch shape is possible
173via ABS_MT_BLOB_ID.
174
171The ABS_MT_TOOL_TYPE may be used to specify whether the touching tool is a175The ABS_MT_TOOL_TYPE may be used to specify whether the touching tool is a
172contact or a pen or something else. Devices with more granular information176finger or a pen or something else. Finally, the ABS_MT_TRACKING_ID event
173may specify general shapes as blobs, i.e., as a sequence of rectangular177may be used to track identified contacts over time [5].
174shapes grouped together by an ABS_MT_BLOB_ID. Finally, for the few devices178
175that currently support it, the ABS_MT_TRACKING_ID event may be used to179In the type B protocol, ABS_MT_TOOL_TYPE and ABS_MT_TRACKING_ID are
176report contact tracking from hardware [5].180implicitly handled by input core; drivers should instead call
181input_mt_report_slot_state().
177 182
178 183
179Event Semantics184Event Semantics
@@ -213,6 +218,12 @@ The pressure, in arbitrary units, on the contact area. May be used instead · 33 unmodified lines
213of TOUCH and WIDTH for pressure-based devices or any device with a spatial218of TOUCH and WIDTH for pressure-based devices or any device with a spatial
214signal intensity distribution.219signal intensity distribution.
215 220
221ABS_MT_DISTANCE
222
223The distance, in surface units, between the contact and the surface. Zero
224distance means the contact is touching the surface. A positive number means
225the contact is hovering above the surface.
226
216ABS_MT_ORIENTATION227ABS_MT_ORIENTATION
217 228
218The orientation of the ellipse. The value should describe a signed quarter229The orientation of the ellipse. The value should describe a signed quarter
@@ -240,21 +251,24 @@ ABS_MT_TOOL_TYPE · 21 unmodified lines
240The type of approaching tool. A lot of kernel drivers cannot distinguish251The type of approaching tool. A lot of kernel drivers cannot distinguish
241between different tool types, such as a finger or a pen. In such cases, the252between different tool types, such as a finger or a pen. In such cases, the
242event should be omitted. The protocol currently supports MT_TOOL_FINGER and253event should be omitted. The protocol currently supports MT_TOOL_FINGER and
243MT_TOOL_PEN [2].254MT_TOOL_PEN [2]. For type B devices, this event is handled by input core;
255drivers should instead use input_mt_report_slot_state().
244 256
245ABS_MT_BLOB_ID257ABS_MT_BLOB_ID
246 258
247The BLOB_ID groups several packets together into one arbitrarily shaped259The BLOB_ID groups several packets together into one arbitrarily shaped
248contact. This is a low-level anonymous grouping for type A devices, and260contact. The sequence of points forms a polygon which defines the shape of
261the contact. This is a low-level anonymous grouping for type A devices, and
249should not be confused with the high-level trackingID [5]. Most type A262should not be confused with the high-level trackingID [5]. Most type A
250devices do not have blob capability, so drivers can safely omit this event.263devices do not have blob capability, so drivers can safely omit this event.
251 264
252ABS_MT_TRACKING_ID265ABS_MT_TRACKING_ID
253 266
254The TRACKING_ID identifies an initiated contact throughout its life cycle267The TRACKING_ID identifies an initiated contact throughout its life cycle
255[5]. This event is mandatory for type B devices. The value range of the268[5]. The value range of the TRACKING_ID should be large enough to ensure
256TRACKING_ID should be large enough to ensure unique identification of a269unique identification of a contact maintained over an extended period of
257contact maintained over an extended period of time.270time. For type B devices, this event is handled by input core; drivers
271should instead use input_mt_report_slot_state().
258 272
259 273
260Event Computation274Event Computation
@@ -301,18 +315,19 @@ and with ORIENTATION, one can detect twisting of fingers. · 40 unmodified lines
301Notes315Notes
302-----316-----
303 317
304In order to stay compatible with existing applications, the data318In order to stay compatible with existing applications, the data reported
305reported in a finger packet must not be recognized as single-touch319in a finger packet must not be recognized as single-touch events.
306events. In addition, all finger data must bypass input filtering,320
307since subsequent events of the same type refer to different fingers.321For type A devices, all finger data bypasses input filtering, since
322subsequent events of the same type refer to different fingers.
308 323
309The first kernel driver to utilize the MT protocol is the bcm5974 driver,324For example usage of the type A protocol, see the bcm5974 driver. For
310where examples can be found.325example usage of the type B protocol, see the hid-egalax driver.
311 326
312[1] With the extension ABS_MT_APPROACH_X and ABS_MT_APPROACH_Y, the327[1] With the extension ABS_MT_APPROACH_X and ABS_MT_APPROACH_Y, the
313difference between the contact position and the approaching tool position328difference between the contact position and the approaching tool position
314could be used to derive tilt.329could be used to derive tilt.
315[2] The list can of course be extended.330[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/.
317[4] See the section on event computation.332[4] See the section on event computation.
318[5] See the section on finger tracking.333[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
155'Q' all linux/soundcard.h155'Q' all linux/soundcard.h
156'R' 00-1F linux/random.h conflict!156'R' 00-1F linux/random.h conflict!
157'R' 01 linux/rfkill.h conflict!157'R' 01 linux/rfkill.h conflict!
158'R' 01-0F media/rds.h conflict!
159'R' C0-DF net/bluetooth/rfcomm.h158'R' C0-DF net/bluetooth/rfcomm.h
160'S' all linux/cdrom.h conflict!159'S' all linux/cdrom.h conflict!
161'S' 80-81 scsi/scsi_ioctl.h conflict!160'S' 80-81 scsi/scsi_ioctl.h conflict!
@@ -194,7 +193,6 @@ Code Seq#(hex) Include File Comments · 32 unmodified lines
194 <http://lrcwww.epfl.ch/>193 <http://lrcwww.epfl.ch/>
195'b' 00-FF conflict! bit3 vme host bridge194'b' 00-FF conflict! bit3 vme host bridge
196 <mailto:natalia@nikhefk.nikhef.nl>195 <mailto:natalia@nikhefk.nikhef.nl>
197'b' 00-0F media/bt819.h conflict!
198'c' all linux/cm4000_cs.h conflict!196'c' all linux/cm4000_cs.h conflict!
199'c' 00-7F linux/comstats.h conflict!197'c' 00-7F linux/comstats.h conflict!
200'c' 00-7F linux/coda.h conflict!198'c' 00-7F linux/coda.h conflict!
@@ -249,7 +247,7 @@ Code Seq#(hex) Include File Comments · 48 unmodified lines
249'p' 40-7F linux/nvram.h247'p' 40-7F linux/nvram.h
250'p' 80-9F linux/ppdev.h user-space parport248'p' 80-9F linux/ppdev.h user-space parport
251 <mailto:tim@cyberelk.net>249 <mailto:tim@cyberelk.net>
252'p' A1-A4 linux/pps.h LinuxPPS250'p' A1-A5 linux/pps.h LinuxPPS
253 <mailto:giometti@linux.it>251 <mailto:giometti@linux.it>
254'q' 00-1F linux/serio.h252'q' 00-1F linux/serio.h
255'q' 80-FF linux/telephony.h Internet PhoneJACK, Internet LineJACK253'q' 80-FF linux/telephony.h Internet PhoneJACK, Internet LineJACK
@@ -260,14 +258,11 @@ Code Seq#(hex) Include File Comments · 4 unmodified lines
260't' 80-8F linux/isdn_ppp.h258't' 80-8F linux/isdn_ppp.h
261't' 90 linux/toshiba.h259't' 90 linux/toshiba.h
262'u' 00-1F linux/smb_fs.h gone260'u' 00-1F linux/smb_fs.h gone
263'v' all linux/videodev.h conflict!
264'v' 00-1F linux/ext2_fs.h conflict!261'v' 00-1F linux/ext2_fs.h conflict!
265'v' 00-1F linux/fs.h conflict!262'v' 00-1F linux/fs.h conflict!
266'v' 00-0F linux/sonypi.h conflict!263'v' 00-0F linux/sonypi.h conflict!
267'v' C0-CF drivers/media/video/ov511.h conflict!
268'v' C0-DF media/pwc-ioctl.h conflict!264'v' C0-DF media/pwc-ioctl.h conflict!
269'v' C0-FF linux/meye.h conflict!265'v' C0-FF linux/meye.h conflict!
270'v' C0-CF drivers/media/video/zoran/zoran.h conflict!
271'v' D0-DF drivers/media/video/cpia2/cpia2dev.h conflict!266'v' D0-DF drivers/media/video/cpia2/cpia2dev.h conflict!
272'w' all CERN SCI driver267'w' all CERN SCI driver
273'y' 00-1F packet based user level communications268'y' 00-1F packet based user level communications
@@ -278,7 +273,6 @@ Code Seq#(hex) Include File Comments · 4 unmodified lines
278 <mailto:oe@port.de>273 <mailto:oe@port.de>
279'z' 10-4F drivers/s390/crypto/zcrypt_api.h conflict!274'z' 10-4F drivers/s390/crypto/zcrypt_api.h conflict!
2800x80 00-1F linux/fb.h2750x80 00-1F linux/fb.h
2810x88 00-3F media/ovcamchip.h
2820x89 00-06 arch/x86/include/asm/sockios.h2760x89 00-06 arch/x86/include/asm/sockios.h
2830x89 0B-DF linux/sockios.h2770x89 0B-DF linux/sockios.h
2840x89 E0-EF linux/sockios.h SIOCPROTOPRIVATE range2780x89 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
81 The only field that should go to zero. Incremented as requests are81 The only field that should go to zero. Incremented as requests are
82 given to appropriate struct request_queue and decremented as they finish.82 given to appropriate struct request_queue and decremented as they finish.
83Field 10 -- # of milliseconds spent doing I/Os83Field 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.
85Field 11 -- weighted # of milliseconds spent doing I/Os85Field 11 -- weighted # of milliseconds spent doing I/Os
86 This field is incremented at each I/O start, I/O completion, I/O86 This field is incremented at each I/O start, I/O completion, I/O
87 merge, or read of these stats by the number of I/Os in progress87 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
73The output directory can also be specified using "O=...".73The output directory can also be specified using "O=...".
74Setting "O=..." takes precedence over KBUILD_OUTPUT.74Setting "O=..." takes precedence over KBUILD_OUTPUT.
75 75
76KBUILD_DEBARCH
77--------------------------------------------------
78For the deb-pkg target, allows overriding the normal heuristics deployed by
79deb-pkg. Normally deb-pkg attempts to guess the right architecture based on
80the UTS_MACHINE variable, and on some architectures also the kernel config.
81The value of KBUILD_DEBARCH is assumed (not checked) to be a valid Debian
82architecture.
83
76ARCH84ARCH
77--------------------------------------------------85--------------------------------------------------
78Set ARCH to the architecture to be built.86Set 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
112 (no prompts anywhere) and for symbols with no dependencies.112 (no prompts anywhere) and for symbols with no dependencies.
113 That will limit the usefulness but on the other hand avoid113 That will limit the usefulness but on the other hand avoid
114 the illegal configurations all over.114 the illegal configurations all over.
115 kconfig should one day warn about such things.
116 115
117- numerical ranges: "range" <symbol> <symbol> ["if" <expr>]116- numerical ranges: "range" <symbol> <symbol> ["if" <expr>]
118 This allows to limit the range of possible input values for int117 This allows to limit the range of possible input values for int
@@ -268,7 +267,7 @@ separate list of options. · 149 unmodified lines
268 267
269choices:268choices:
270 269
271 "choice"270 "choice" [symbol]
272 <choice options>271 <choice options>
273 <choice block>272 <choice block>
274 "endchoice"273 "endchoice"
@@ -282,6 +281,10 @@ single driver can be compiled/loaded into the kernel, but all drivers · 7 unmodified lines
282can be compiled as modules.281can be compiled as modules.
283A choice accepts another option "optional", which allows to set the282A choice accepts another option "optional", which allows to set the
284choice to 'n' and no entry needs to be selected.283choice to 'n' and no entry needs to be selected.
284If no [symbol] is associated with a choice, then you can not have multiple
285definitions of that choice. If a [symbol] is associated to the choice,
286then you may define the same choice (ie. with the same entries) in another
287place.
285 288
286comment:289comment:
287 290
Documentation/kbuild/makefiles.txt+15−0
@@ -1136,6 +1136,21 @@ When kbuild executes, the following steps are followed (roughly): · 1135 unmodified lines
1136 resulting in the target file being recompiled for no1136 resulting in the target file being recompiled for no
1137 obvious reason.1137 obvious reason.
1138 1138
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)
1139 1154
1140--- 6.7 Custom kbuild commands1155--- 6.7 Custom kbuild commands
1141 1156
Documentation/kdump/kdump.txt+9−6
@@ -65,18 +65,21 @@ Install kexec-tools · 64 unmodified lines
65 65
662) Download the kexec-tools user-space package from the following URL:662) Download the kexec-tools user-space package from the following URL:
67 67
68http://www.kernel.org/pub/linux/kernel/people/horms/kexec-tools/kexec-tools.tar.gz68http://kernel.org/pub/linux/utils/kernel/kexec/kexec-tools.tar.gz
69 69
70This is a symlink to the latest version.70This is a symlink to the latest version.
71 71
72The latest kexec-tools git tree is available at:72The latest kexec-tools git tree is available at:
73 73
74git://git.kernel.org/pub/scm/linux/kernel/git/horms/kexec-tools.git74git://git.kernel.org/pub/scm/utils/kernel/kexec/kexec-tools.git
75or75and
76http://www.kernel.org/git/?p=linux/kernel/git/horms/kexec-tools.git76http://www.kernel.org/pub/scm/utils/kernel/kexec/kexec-tools.git
77
78There is also a gitweb interface available at
79http://www.kernel.org/git/?p=utils/kernel/kexec/kexec-tools.git
77 80
78More information about kexec-tools can be found at81More information about kexec-tools can be found at
79http://www.kernel.org/pub/linux/kernel/people/horms/kexec-tools/README.html82http://www.kernel.org/pub/linux/utils/kernel/kexec/README.html
80 83
813) Unpack the tarball with the tar command, as follows:843) Unpack the tarball with the tar command, as follows:
82 85
@@ -439,6 +442,6 @@ To Do · 356 unmodified lines
439Contact442Contact
440=======443=======
441 444
442Vivek Goyal (vgoyal@in.ibm.com)445Vivek Goyal (vgoyal@redhat.com)
443Maneesh Soni (maneesh@in.ibm.com)446Maneesh Soni (maneesh@in.ibm.com)
444 447
Documentation/kernel-docs.txt+2−25
@@ -537,7 +537,7 @@ · 536 unmodified lines
537 Notes: Further information in537 Notes: Further information in
538 http://www.oreilly.com/catalog/linuxdrive2/538 http://www.oreilly.com/catalog/linuxdrive2/
539 539
540 * Title: "Linux Device Drivers, 3nd Edition"540 * Title: "Linux Device Drivers, 3rd Edition"
541 Authors: Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman541 Authors: Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman
542 Publisher: O'Reilly & Associates.542 Publisher: O'Reilly & Associates.
543 Date: 2005.543 Date: 2005.
@@ -592,14 +592,6 @@ · 48 unmodified lines
592 Pages: 600.592 Pages: 600.
593 ISBN: 0-13-101908-2593 ISBN: 0-13-101908-2
594 594
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
603 * Title: "Programming for the real world - POSIX.4"595 * Title: "Programming for the real world - POSIX.4"
604 Author: Bill O. Gallmeister.596 Author: Bill O. Gallmeister.
605 Publisher: O'Reilly & Associates, Inc..597 Publisher: O'Reilly & Associates, Inc..
@@ -610,28 +602,13 @@ · 4 unmodified lines
610 POSIX. Good reference.602 POSIX. Good reference.
611 603
612 * Title: "UNIX Systems for Modern Architectures: Symmetric604 * Title: "UNIX Systems for Modern Architectures: Symmetric
613 Multiprocesssing and Caching for Kernel Programmers"605 Multiprocessing and Caching for Kernel Programmers"
614 Author: Curt Schimmel.606 Author: Curt Schimmel.
615 Publisher: Addison Wesley.607 Publisher: Addison Wesley.
616 Date: June, 1994.608 Date: June, 1994.
617 Pages: 432.609 Pages: 432.
618 ISBN: 0-201-63338-8610 ISBN: 0-201-63338-8
619 611
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
635 MISCELLANEOUS:612 MISCELLANEOUS:
636 613
637 * Name: linux/Documentation614 * Name: linux/Documentation
Documentation/kernel-parameters.txt+38−33
@@ -43,11 +43,11 @@ parameter is applicable: · 42 unmodified lines
43 AVR32 AVR32 architecture is enabled.43 AVR32 AVR32 architecture is enabled.
44 AX25 Appropriate AX.25 support is enabled.44 AX25 Appropriate AX.25 support is enabled.
45 BLACKFIN Blackfin architecture is enabled.45 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
46 EDD BIOS Enhanced Disk Drive Services (EDD) is enabled48 EDD BIOS Enhanced Disk Drive Services (EDD) is enabled
47 EFI EFI Partitioning (GPT) is enabled49 EFI EFI Partitioning (GPT) is enabled
48 EIDE EIDE/ATAPI support is enabled.50 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
51 FB The frame buffer device is enabled.51 FB The frame buffer device is enabled.
52 GCOV GCOV profiling is enabled.52 GCOV GCOV profiling is enabled.
53 HW Appropriate hardware is enabled.53 HW Appropriate hardware is enabled.
@@ -144,6 +144,11 @@ a fixed number of characters. This limit depends on the architecture · 90 unmodified lines
144and is between 256 and 4096 characters. It is defined in the file144and is between 256 and 4096 characters. It is defined in the file
145./include/asm/setup.h as COMMAND_LINE_SIZE.145./include/asm/setup.h as COMMAND_LINE_SIZE.
146 146
147Finally, the [KMG] suffix is commonly described after a number of kernel
148parameter values. These 'K', 'M', and 'G' letters represent the _binary_
149multipliers 'Kilo', 'Mega', and 'Giga', equalling 2^10, 2^20, and 2^30
150bytes respectively. Such letter suffixes can also be entirely omitted.
151
147 152
148 acpi= [HW,ACPI,X86]153 acpi= [HW,ACPI,X86]
149 Advanced Configuration and Power Interface154 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
199 unusable. The "log_buf_len" parameter may be useful204 unusable. The "log_buf_len" parameter may be useful
200 if you need to capture more output.205 if you need to capture more output.
201 206
202 acpi_display_output= [HW,ACPI]
203 acpi_display_output=vendor
204 acpi_display_output=video
205 See above.
206
207 acpi_irq_balance [HW,ACPI]207 acpi_irq_balance [HW,ACPI]
208 ACPI will balance active IRQs208 ACPI will balance active IRQs
209 default in APIC mode209 default in APIC mode
@@ -403,6 +403,10 @@ and is between 256 and 4096 characters. It is defined in the file · 193 unmodified lines
403 bttv.pll= See Documentation/video4linux/bttv/Insmod-options403 bttv.pll= See Documentation/video4linux/bttv/Insmod-options
404 bttv.tuner= and Documentation/video4linux/bttv/CARDLIST404 bttv.tuner= and Documentation/video4linux/bttv/CARDLIST
405 405
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
406 c101= [NET] Moxa C101 synchronous serial card410 c101= [NET] Moxa C101 synchronous serial card
407 411
408 cachesize= [BUGS=X86-32] Override level 2 CPU cache size detection.412 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
546 Format:550 Format:
547 <first_slot>,<last_slot>,<port>,<enum_bit>[,<debug>]551 <first_slot>,<last_slot>,<port>,<enum_bit>[,<debug>]
548 552
549 crashkernel=nn[KMG]@ss[KMG]553 crashkernel=size[KMG][@offset[KMG]]
550 [KNL] Reserve a chunk of physical memory to554 [KNL] Using kexec, Linux can switch to a 'crash kernel'
551 hold a kernel to switch to with kexec on panic.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.
552 560
553 crashkernel=range1:size1[,range2:size2,...][@offset]561 crashkernel=range1:size1[,range2:size2,...][@offset]
554 [KNL] Same as above, but depends on the memory562 [KNL] Same as above, but depends on the memory
555 in the running system. The syntax of range is563 in the running system. The syntax of range is
556 start-[end] where start and end are both564 start-[end] where start and end are both
557 a memory unit (amount[KMG]). See also565 a memory unit (amount[KMG]). See also
558 Documentation/kdump/kdump.txt for a example.566 Documentation/kdump/kdump.txt for an example.
559 567
560 cs89x0_dma= [HW,NET]568 cs89x0_dma= [HW,NET]
561 Format: <dma>569 Format: <dma>
@@ -655,11 +663,6 @@ and is between 256 and 4096 characters. It is defined in the file · 93 unmodified lines
655 663
656 dscc4.setup= [NET]664 dscc4.setup= [NET]
657 665
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
663 earlycon= [KNL] Output early console device and options.666 earlycon= [KNL] Output early console device and options.
664 uart[8250],io,<addr>[,options]667 uart[8250],io,<addr>[,options]
665 uart[8250],mmio,<addr>[,options]668 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
884 controller887 controller
885 i8042.nopnp [HW] Don't use ACPIPnP / PnPBIOS to discover KBD/AUX888 i8042.nopnp [HW] Don't use ACPIPnP / PnPBIOS to discover KBD/AUX
886 controllers889 controllers
890 i8042.notimeout [HW] Ignore timeout condition signalled by conroller
887 i8042.reset [HW] Reset the controller during init and cleanup891 i8042.reset [HW] Reset the controller during init and cleanup
888 i8042.unlock [HW] Unlock (ignore) the keylock892 i8042.unlock [HW] Unlock (ignore) the keylock
889 893
@@ -1267,10 +1271,9 @@ and is between 256 and 4096 characters. It is defined in the file · 377 unmodified lines
1267 6 (KERN_INFO) informational1271 6 (KERN_INFO) informational
1268 7 (KERN_DEBUG) debug-level messages1272 7 (KERN_DEBUG) debug-level messages
1269 1273
1270 log_buf_len=n Sets the size of the printk ring buffer, in bytes.1274 log_buf_len=n[KMG] Sets the size of the printk ring buffer,
1271 Format: { n | nk | nM }1275 in bytes. n must be a power of two. The default
1272 n must be a power of two. The default size1276 size is set in the kernel config file.
1273 is set in the kernel config file.
1274 1277
1275 logo.nologo [FB] Disables display of the built-in Linux logo.1278 logo.nologo [FB] Disables display of the built-in Linux logo.
1276 This may be used to provide more screen space for1279 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
1490 mtdparts= [MTD]1493 mtdparts= [MTD]
1491 See drivers/mtd/cmdlinepart.c.1494 See drivers/mtd/cmdlinepart.c.
1492 1495
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
1493 onenand.bdry= [HW,MTD] Flex-OneNAND Boundary Configuration1500 onenand.bdry= [HW,MTD] Flex-OneNAND Boundary Configuration
1494 1501
1495 Format: [die0_boundary][,die0_lock][,die1_boundary][,die1_lock]1502 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
1579 1586
1580 nmi_watchdog= [KNL,BUGS=X86] Debugging features for SMP kernels1587 nmi_watchdog= [KNL,BUGS=X86] Debugging features for SMP kernels
1581 Format: [panic,][num]1588 Format: [panic,][num]
1582 Valid num: 0,1,21589 Valid num: 0
1583 0 - turn nmi_watchdog off1590 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.
1589 When panic is specified, panic when an NMI watchdog1591 When panic is specified, panic when an NMI watchdog
1590 timeout occurs.1592 timeout occurs.
1591 This is useful when you use a panic=... timeout and1593 This is useful when you use a panic=... timeout and
1592 need the box quickly up again.1594 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
1596 1595
1597 netpoll.carrier_timeout=1596 netpoll.carrier_timeout=
1598 [NET] Specifies amount of time (in seconds) that1597 [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
1622 noapic [SMP,APIC] Tells the kernel to not make use of any1621 noapic [SMP,APIC] Tells the kernel to not make use of any
1623 IOAPICs that may be present in the system.1622 IOAPICs that may be present in the system.
1624 1623
1624 noautogroup Disable scheduler automatic task group creation.
1625
1625 nobats [PPC] Do not use BATs for mapping kernel lowmem1626 nobats [PPC] Do not use BATs for mapping kernel lowmem
1626 on "Classic" PPC cores.1627 on "Classic" PPC cores.
1627 1628
@@ -1707,6 +1708,9 @@ and is between 256 and 4096 characters. It is defined in the file · 79 unmodified lines
1707 1708
1708 no-kvmclock [X86,KVM] Disable paravirtualized KVM clock driver1709 no-kvmclock [X86,KVM] Disable paravirtualized KVM clock driver
1709 1710
1711 no-kvmapf [X86,KVM] Disable paravirtualized asynchronous page
1712 fault handling.
1713
1710 nolapic [X86-32,APIC] Do not enable or use the local APIC.1714 nolapic [X86-32,APIC] Do not enable or use the local APIC.
1711 1715
1712 nolapic_timer [X86-32,APIC] Do not use the local APIC timer.1716 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
2467 to facilitate early boot debugging.2471 to facilitate early boot debugging.
2468 See also Documentation/trace/events.txt2472 See also Documentation/trace/events.txt
2469 2473
2470 tsc= Disable clocksource-must-verify flag for TSC.2474 tsc= Disable clocksource stability checks for TSC.
2471 Format: <string>2475 Format: <string>
2472 [x86] reliable: mark tsc clocksource as reliable, this2476 [x86] reliable: mark tsc clocksource as reliable, this
2473 disables clocksource verification at runtime.2477 disables clocksource verification at runtime, as well
2474 Used to enable high-resolution timer mode on older2478 as the stability checks done at bootup. Used to enable
2475 hardware, and in virtualized environment.2479 high-resolution timer mode on older hardware, and in
2480 virtualized environment.
2476 [x86] noirqtime: Do not use TSC to do irq accounting.2481 [x86] noirqtime: Do not use TSC to do irq accounting.
2477 Used to run time disable IRQ_TIME_ACCOUNTING on any2482 Used to run time disable IRQ_TIME_ACCOUNTING on any
2478 platforms where RDTSC is slow and this accounting2483 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
3Trusted and Encrypted Keys are two new key types added to the existing kernel
4key ring service. Both of these new types are variable length symmetic keys,
5and in both cases all keys are created in the kernel, and user space sees,
6stores, and loads only encrypted blobs. Trusted Keys require the availability
7of a Trusted Platform Module (TPM) chip for greater security, while Encrypted
8Keys can be used on any system. All user level blobs, are displayed and loaded
9in hex ascii for convenience, and are integrity verified.
10
11Trusted Keys use a TPM both to generate and to seal the keys. Keys are sealed
12under 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
14integrity 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
16when the kernel and initramfs are updated. The same key can have many saved
17blobs under different PCR values, so multiple boots are easily supported.
18
19By default, trusted keys are sealed under the SRK, which has the default
20authorization value (20 zeros). This can be set at takeownership time with the
21trouser's utility: "tpm_takeownership -u -z".
22
23Usage:
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
43TPM_STORED_DATA format. The key length for new keys are always in bytes.
44Trusted Keys can be 32 - 128 bytes (256 - 1024 bits), the upper limit is to fit
45within the 2048 bit SRK (RSA) keylength, with all necessary structure/padding.
46
47Encrypted keys do not depend on a TPM, and are faster, as they use AES for
48encryption/decryption. New keys are created from kernel generated random
49numbers, 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
51disadvantage of encrypted keys is that if they are not rooted in a trusted key,
52they are only as secure as the user key encrypting them. The master user key
53should therefore be loaded in as secure a way as possible, preferably early in
54boot.
55
56Usage:
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
61where 'key-type' is either 'trusted' or 'user'.
62
63Examples of trusted and encrypted key usage:
64
65Create 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
88Load 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
103Reseal 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
117Create 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
129Load 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
140The initial consumer of trusted keys is EVM, which at boot time needs a high
141quality symmetric key for HMAC protection of file metadata. The use of a
142trusted key provides strong guarantees that the EVM key has not been
143compromised by a user level problem, and when sealed to specific boot PCR
144values, protects against boot and offline attacks. Other uses for trusted and
145encrypted 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
391bugme-janitor 메일링 리스트(bugzilla에 모든 변화들이 여기서 메일로 전해진다)391bugme-janitor 메일링 리스트(bugzilla에 모든 변화들이 여기서 메일로 전해진다)
392에 등록하면 된다.392에 등록하면 된다.
393 393
394 http://lists.osdl.org/mailman/listinfo/bugme-new394 https://lists.linux-foundation.org/mailman/listinfo/bugme-new
395 http://lists.osdl.org/mailman/listinfo/bugme-janitors395 https://lists.linux-foundation.org/mailman/listinfo/bugme-janitors
396 396
397 397
398 398
Documentation/kprobes.txt+1−1
@@ -598,7 +598,7 @@ a 5-byte jump instruction. So there are several limitations. · 597 unmodified lines
598a) The instructions in DCR must be relocatable.598a) The instructions in DCR must be relocatable.
599b) The instructions in DCR must not include a call instruction.599b) The instructions in DCR must not include a call instruction.
600c) JTPR must not be targeted by any jump or call instruction.600c) JTPR must not be targeted by any jump or call instruction.
601d) DCR must not straddle the border betweeen functions.601d) DCR must not straddle the border between functions.
602 602
603Anyway, these limitations are checked by the in-kernel instruction603Anyway, these limitations are checked by the in-kernel instruction
604decoder, so you don't need to worry about that.604decoder, 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
874 - KVM_MP_STATE_HALTED: the vcpu has executed a HLT instruction and874 - KVM_MP_STATE_HALTED: the vcpu has executed a HLT instruction and
875 is waiting for an interrupt875 is waiting for an interrupt
876 - KVM_MP_STATE_SIPI_RECEIVED: the vcpu has just received a SIPI (vector876 - 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)
878 878
879This ioctl is only useful after KVM_CREATE_IRQCHIP. Without an in-kernel879This ioctl is only useful after KVM_CREATE_IRQCHIP. Without an in-kernel
880irqchip, the multiprocessing state must be maintained by userspace.880irqchip, the multiprocessing state must be maintained by userspace.
@@ -1085,6 +1085,184 @@ of 4 instructions that make up a hypercall. · 204 unmodified lines
1085If any additional field gets added to this structure later on, a bit for that1085If any additional field gets added to this structure later on, a bit for that
1086additional piece of information will be set in the flags bitmap.1086additional piece of information will be set in the flags bitmap.
1087 1087
10884.47 KVM_ASSIGN_PCI_DEVICE
1089
1090Capability: KVM_CAP_DEVICE_ASSIGNMENT
1091Architectures: x86 ia64
1092Type: vm ioctl
1093Parameters: struct kvm_assigned_pci_dev (in)
1094Returns: 0 on success, -1 on error
1095
1096Assigns a host PCI device to the VM.
1097
1098struct 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
1109The PCI device is specified by the triple segnr, busnr, and devfn.
1110Identification in succeeding service requests is done via assigned_dev_id. The
1111following flags are specified:
1112
1113/* Depends on KVM_CAP_IOMMU */
1114#define KVM_DEV_ASSIGN_ENABLE_IOMMU (1 << 0)
1115
11164.48 KVM_DEASSIGN_PCI_DEVICE
1117
1118Capability: KVM_CAP_DEVICE_DEASSIGNMENT
1119Architectures: x86 ia64
1120Type: vm ioctl
1121Parameters: struct kvm_assigned_pci_dev (in)
1122Returns: 0 on success, -1 on error
1123
1124Ends PCI device assignment, releasing all associated resources.
1125
1126See KVM_CAP_DEVICE_ASSIGNMENT for the data structure. Only assigned_dev_id is
1127used in kvm_assigned_pci_dev to identify the device.
1128
11294.49 KVM_ASSIGN_DEV_IRQ
1130
1131Capability: KVM_CAP_ASSIGN_DEV_IRQ
1132Architectures: x86 ia64
1133Type: vm ioctl
1134Parameters: struct kvm_assigned_irq (in)
1135Returns: 0 on success, -1 on error
1136
1137Assigns an IRQ to a passed-through device.
1138
1139struct 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
1154The 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
1164It is not valid to specify multiple types per host or guest IRQ. However, the
1165IRQ type of host and guest can differ or can even be null.
1166
11674.50 KVM_DEASSIGN_DEV_IRQ
1168
1169Capability: KVM_CAP_ASSIGN_DEV_IRQ
1170Architectures: x86 ia64
1171Type: vm ioctl
1172Parameters: struct kvm_assigned_irq (in)
1173Returns: 0 on success, -1 on error
1174
1175Ends an IRQ assignment to a passed-through device.
1176
1177See KVM_ASSIGN_DEV_IRQ for the data structure. The target device is specified
1178by assigned_dev_id, flags must correspond to the IRQ type specified on
1179KVM_ASSIGN_DEV_IRQ. Partial deassignment of host or guest IRQ is allowed.
1180
11814.51 KVM_SET_GSI_ROUTING
1182
1183Capability: KVM_CAP_IRQ_ROUTING
1184Architectures: x86 ia64
1185Type: vm ioctl
1186Parameters: struct kvm_irq_routing (in)
1187Returns: 0 on success, -1 on error
1188
1189Sets the GSI routing table entries, overwriting any previously set entries.
1190
1191struct kvm_irq_routing {
1192 __u32 nr;
1193 __u32 flags;
1194 struct kvm_irq_routing_entry entries[0];
1195};
1196
1197No flags are specified so far, the corresponding field must be set to zero.
1198
1199struct 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
1215No flags are specified so far, the corresponding field must be set to zero.
1216
1217struct kvm_irq_routing_irqchip {
1218 __u32 irqchip;
1219 __u32 pin;
1220};
1221
1222struct kvm_irq_routing_msi {
1223 __u32 address_lo;
1224 __u32 address_hi;
1225 __u32 data;
1226 __u32 pad;
1227};
1228
12294.52 KVM_ASSIGN_SET_MSIX_NR
1230
1231Capability: KVM_CAP_DEVICE_MSIX
1232Architectures: x86 ia64
1233Type: vm ioctl
1234Parameters: struct kvm_assigned_msix_nr (in)
1235Returns: 0 on success, -1 on error
1236
1237Set the number of MSI-X interrupts for an assigned device. This service can
1238only be called once in the lifetime of an assigned device.
1239
1240struct 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
12484.53 KVM_ASSIGN_SET_MSIX_ENTRY
1249
1250Capability: KVM_CAP_DEVICE_MSIX
1251Architectures: x86 ia64
1252Type: vm ioctl
1253Parameters: struct kvm_assigned_msix_entry (in)
1254Returns: 0 on success, -1 on error
1255
1256Specifies the routing of an MSI-X assigned device interrupt to a GSI. Setting
1257the GSI vector to zero means disabling the interrupt.
1258
1259struct 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
10885. The kvm_run structure12665. The kvm_run structure
1089 1267
1090Application code obtains a pointer to the kvm_run structure by1268Application 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
36KVM_FEATURE_CLOCKSOURCE2 || 3 || kvmclock available at msrs36KVM_FEATURE_CLOCKSOURCE2 || 3 || kvmclock available at msrs
37 || || 0x4b564d00 and 0x4b564d0137 || || 0x4b564d00 and 0x4b564d01
38------------------------------------------------------------------------------38------------------------------------------------------------------------------
39KVM_FEATURE_ASYNC_PF || 4 || async pf can be enabled by
40 || || writing to msr 0x4b564d02
41------------------------------------------------------------------------------
39KVM_FEATURE_CLOCKSOURCE_STABLE_BIT || 24 || host will warn if no guest-side42KVM_FEATURE_CLOCKSOURCE_STABLE_BIT || 24 || host will warn if no guest-side
40 || || per-cpu warps are expected in43 || || per-cpu warps are expected in
41 || || kvmclock.44 || || kvmclock.
Documentation/kvm/msr.txt+35−1
@@ -3,7 +3,6 @@ Glauber Costa <glommer@redhat.com>, Red Hat Inc, 2010 · 2 unmodified lines
3=====================================================3=====================================================
4 4
5KVM makes use of some custom MSRs to service some requests.5KVM makes use of some custom MSRs to service some requests.
6At present, this facility is only used by kvmclock.
7 6
8Custom MSRs have a range reserved for them, that goes from7Custom MSRs have a range reserved for them, that goes from
90x4b564d00 to 0x4b564dff. There are MSRs outside this area,80x4b564d00 to 0x4b564dff. There are MSRs outside this area,
@@ -151,3 +150,38 @@ MSR_KVM_SYSTEM_TIME: 0x12 · 141 unmodified lines
151 return PRESENT;150 return PRESENT;
152 } else151 } else
153 return NON_PRESENT;152 return NON_PRESENT;
153
154MSR_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
39#include <limits.h>39#include <limits.h>
40#include <stddef.h>40#include <stddef.h>
41#include <signal.h>41#include <signal.h>
42#include <pwd.h>
43#include <grp.h>
44
42#include <linux/virtio_config.h>45#include <linux/virtio_config.h>
43#include <linux/virtio_net.h>46#include <linux/virtio_net.h>
44#include <linux/virtio_blk.h>47#include <linux/virtio_blk.h>
@@ -298,20 +301,27 @@ static void *map_zeroed_pages(unsigned int num) · 253 unmodified lines
298 301
299 /*302 /*
300 * We use a private mapping (ie. if we write to the page, it will be303 * 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.
302 */306 */
303 addr = mmap(NULL, getpagesize() * num,307 addr = mmap(NULL, getpagesize() * (num+2),
304 PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE, fd, 0);308 PROT_NONE, MAP_PRIVATE, fd, 0);
309
305 if (addr == MAP_FAILED)310 if (addr == MAP_FAILED)
306 err(1, "Mmapping %u pages of /dev/zero", num);311 err(1, "Mmapping %u pages of /dev/zero", num);
307 312
313 if (mprotect(addr + getpagesize(), getpagesize() * num,
314 PROT_READ|PROT_WRITE) == -1)
315 err(1, "mprotect rw %u pages failed", num);
316
308 /*317 /*
309 * One neat mmap feature is that you can close the fd, and it318 * One neat mmap feature is that you can close the fd, and it
310 * stays mapped.319 * stays mapped.
311 */320 */
312 close(fd);321 close(fd);
313 322
314 return addr;323 /* Return address after PROT_NONE page */
324 return addr + getpagesize();
315}325}
316 326
317/* Get some more pages for a device. */327/* 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
343 * done to it. This allows us to share untouched memory between353 * done to it. This allows us to share untouched memory between
344 * Guests.354 * Guests.
345 */355 */
346 if (mmap(addr, len, PROT_READ|PROT_WRITE|PROT_EXEC,356 if (mmap(addr, len, PROT_READ|PROT_WRITE,
347 MAP_FIXED|MAP_PRIVATE, fd, offset) != MAP_FAILED)357 MAP_FIXED|MAP_PRIVATE, fd, offset) != MAP_FAILED)
348 return;358 return;
349 359
@@ -573,10 +583,10 @@ static void *_check_pointer(unsigned long addr, unsigned int size, · 223 unmodified lines
573 unsigned int line)583 unsigned int line)
574{584{
575 /*585 /*
576 * We have to separately check addr and addr+size, because size could586 * Check if the requested address and size exceeds the allocated memory,
577 * be huge and addr + size might wrap around.587 * or addr + size wraps around.
578 */588 */
579 if (addr >= guest_limit || addr + size >= guest_limit)589 if ((addr + size) > guest_limit || (addr + size) < addr)
580 errx(1, "%s:%i: Invalid address %#lx", __FILE__, line, addr);590 errx(1, "%s:%i: Invalid address %#lx", __FILE__, line, addr);
581 /*591 /*
582 * We return a pointer for the caller's convenience, now we know it's592 * 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
1872 { "block", 1, NULL, 'b' },1882 { "block", 1, NULL, 'b' },
1873 { "rng", 0, NULL, 'r' },1883 { "rng", 0, NULL, 'r' },
1874 { "initrd", 1, NULL, 'i' },1884 { "initrd", 1, NULL, 'i' },
1885 { "username", 1, NULL, 'u' },
1886 { "chroot", 1, NULL, 'c' },
1875 { NULL },1887 { NULL },
1876};1888};
1877static void usage(void)1889static void usage(void)
@@ -1894,6 +1906,12 @@ int main(int argc, char *argv[]) · 16 unmodified lines
1894 /* If they specify an initrd file to load. */1906 /* If they specify an initrd file to load. */
1895 const char *initrd_name = NULL;1907 const char *initrd_name = NULL;
1896 1908
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
1897 /* Save the args: we "reboot" by execing ourselves again. */1915 /* Save the args: we "reboot" by execing ourselves again. */
1898 main_args = argv;1916 main_args = argv;
1899 1917
@@ -1950,6 +1968,14 @@ int main(int argc, char *argv[]) · 50 unmodified lines
1950 case 'i':1968 case 'i':
1951 initrd_name = optarg;1969 initrd_name = optarg;
1952 break;1970 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;
1953 default:1979 default:
1954 warnx("Unknown argument %s", argv[optind]);1980 warnx("Unknown argument %s", argv[optind]);
1955 usage();1981 usage();
@@ -2021,6 +2047,37 @@ int main(int argc, char *argv[]) · 65 unmodified lines
2021 /* If we exit via err(), this kills all the threads, restores tty. */2047 /* If we exit via err(), this kills all the threads, restores tty. */
2022 atexit(cleanup_devices);2048 atexit(cleanup_devices);
2023 2049
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
2024 /* Finally, run the Guest. This doesn't return. */2081 /* Finally, run the Guest. This doesn't return. */
2025 run_guest();2082 run_guest();
2026}2083}
Documentation/lguest/lguest.txt+10−2
@@ -111,8 +111,16 @@ Running Lguest: · 110 unmodified lines
111 111
112 Then use --tunnet=bridge:lg0 when launching the guest.112 Then use --tunnet=bridge:lg0 when launching the guest.
113 113
114 See http://linux-net.osdl.org/index.php/Bridge for general information114 See:
115 on how to get bridging working.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.
116 124
117There is a helpful mailing list at http://ozlabs.org/mailman/listinfo/lguest125There is a helpful mailing list at http://ozlabs.org/mailman/listinfo/lguest
118 126
Documentation/magic-number.txt+1−1
@@ -150,7 +150,7 @@ NBD_REPLY_MAGIC 0x96744668 nbd_reply include/linux/nbd.h · 149 unmodified lines
150STL_BOARDMAGIC 0xa2267f52 stlbrd include/linux/stallion.h150STL_BOARDMAGIC 0xa2267f52 stlbrd include/linux/stallion.h
151ENI155_MAGIC 0xa54b872d midway_eprom drivers/atm/eni.h151ENI155_MAGIC 0xa54b872d midway_eprom drivers/atm/eni.h
152SCI_MAGIC 0xbabeface gs_port drivers/char/sh-sci.h152SCI_MAGIC 0xbabeface gs_port drivers/char/sh-sci.h
153CODA_MAGIC 0xC0DAC0DA coda_file_info include/linux/coda_fs_i.h153CODA_MAGIC 0xC0DAC0DA coda_file_info fs/coda/coda_fs_i.h
154DPMEM_MAGIC 0xc0ffee11 gdt_pci_sram drivers/scsi/gdth.h154DPMEM_MAGIC 0xc0ffee11 gdt_pci_sram drivers/scsi/gdth.h
155STLI_PORTMAGIC 0xe671c7a1 stliport include/linux/istallion.h155STLI_PORTMAGIC 0xe671c7a1 stliport include/linux/istallion.h
156YAM_MAGIC 0xF10A7654 yam_port drivers/net/hamradio/yam.c156YAM_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
39The command "make headers_install_all" exports headers for all architectures39The command "make headers_install_all" exports headers for all architectures
40simultaneously. (This is mostly of interest to distribution maintainers,40simultaneously. (This is mostly of interest to distribution maintainers,
41who create an architecture-independent tarball from the resulting include41who create an architecture-independent tarball from the resulting include
42directory.) Remember to provide the appropriate linux/asm directory via "mv"42directory.) You also can use HDR_ARCH_LIST to specify list of architectures.
43or "ln -s" before building a C library with headers exported this way.43Remember to provide the appropriate linux/asm directory via "mv" or "ln -s"
44before building a C library with headers exported this way.
44 45
45The kernel header export infrastructure is maintained by David Woodhouse46The kernel header export infrastructure is maintained by David Woodhouse
46<dwmw2@infradead.org>.47<dwmw2@infradead.org>.
Documentation/networking/LICENSE.qlcnic+327−0
@@ -0,0 +1,327 @@
1Copyright (c) 2009-2010 QLogic Corporation
2QLogic Linux qlcnic NIC Driver
3
4This program includes a device driver for Linux 2.6 that may be
5distributed with QLogic hardware specific firmware binary file.
6You may modify and redistribute the device driver code under the
7GNU General Public License (a copy of which is attached hereto as
8Exhibit A) published by the Free Software Foundation (version 2).
9
10You may redistribute the hardware specific firmware binary file
11under 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
26REGARDLESS OF WHAT LICENSING MECHANISM IS USED OR APPLICABLE,
27THIS PROGRAM IS PROVIDED BY QLOGIC CORPORATION "AS IS'' AND ANY
28EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
29IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
30PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR
31BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
32EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
33TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
34DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
35ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
36OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
37OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
38POSSIBILITY OF SUCH DAMAGE.
39
40USER ACKNOWLEDGES AND AGREES THAT USE OF THIS PROGRAM WILL NOT
41CREATE OR GIVE GROUNDS FOR A LICENSE BY IMPLICATION, ESTOPPEL, OR
42OTHERWISE IN ANY INTELLECTUAL PROPERTY RIGHTS (PATENT, COPYRIGHT,
43TRADE SECRET, MASK WORK, OR OTHER PROPRIETARY RIGHT) EMBODIED IN
44ANY OTHER QLOGIC HARDWARE OR SOFTWARE EITHER SOLELY OR IN
45COMBINATION WITH THIS PROGRAM.
46
47
48EXHIBIT 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
61freedom to share and change it. By contrast, the GNU General Public
62License is intended to guarantee your freedom to share and change free
63software--to make sure the software is free for all its users. This
64General Public License applies to most of the Free Software
65Foundation's software and to any other program whose authors commit to
66using it. (Some other Free Software Foundation software is covered by
67the GNU Lesser General Public License instead.) You can apply it to
68your programs, too.
69
70 When we speak of free software, we are referring to freedom, not
71price. Our General Public Licenses are designed to make sure that you
72have the freedom to distribute copies of free software (and charge for
73this service if you wish), that you receive source code or can get it
74if you want it, that you can change the software or use pieces of it
75in 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
78anyone to deny you these rights or to ask you to surrender the rights.
79These restrictions translate to certain responsibilities for you if you
80distribute copies of the software, or if you modify it.
81
82 For example, if you distribute copies of such a program, whether
83gratis or for a fee, you must give the recipients all the rights that
84you have. You must make sure that they, too, receive or can get the
85source code. And you must show them these terms so they know their
86rights.
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,
90distribute and/or modify the software.
91
92 Also, for each author's protection and ours, we want to make certain
93that everyone understands that there is no warranty for this free
94software. If the software is modified by someone else and passed on, we
95want its recipients to know that what they have is not the original, so
96that any problems introduced by others will not reflect on the original
97authors' reputations.
98
99 Finally, any free program is threatened constantly by software
100patents. We wish to avoid the danger that redistributors of a free
101program will individually obtain patent licenses, in effect making the
102program proprietary. To prevent this, we have made it clear that any
103patent must be licensed for everyone's free use or not licensed at all.
104
105 The precise terms and conditions for copying, distribution and
106modification 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
112a notice placed by the copyright holder saying it may be distributed
113under the terms of this General Public License. The "Program", below,
114refers to any such program or work, and a "work based on the Program"
115means either the Program or any derivative work under copyright law:
116that is to say, a work containing the Program or a portion of it,
117either verbatim or with modifications and/or translated into another
118language. (Hereinafter, translation is included without limitation in
119the term "modification".) Each licensee is addressed as "you".
120
121Activities other than copying, distribution and modification are not
122covered by this License; they are outside its scope. The act of
123running the Program is not restricted, and the output from the Program
124is covered only if its contents constitute a work based on the
125Program (independent of having been made by running the Program).
126Whether that is true depends on what the Program does.
127
128 1. You may copy and distribute verbatim copies of the Program's
129source code as you receive it, in any medium, provided that you
130conspicuously and appropriately publish on each copy an appropriate
131copyright notice and disclaimer of warranty; keep intact all the
132notices that refer to this License and to the absence of any warranty;
133and give any other recipients of the Program a copy of this License
134along with the Program.
135
136You may charge a fee for the physical act of transferring a copy, and
137you 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
140of it, thus forming a work based on the Program, and copy and
141distribute such modifications or work under the terms of Section 1
142above, 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
163These requirements apply to the modified work as a whole. If
164identifiable sections of that work are not derived from the Program,
165and can be reasonably considered independent and separate works in
166themselves, then this License, and its terms, do not apply to those
167sections when you distribute them as separate works. But when you
168distribute the same sections as part of a whole which is a work based
169on the Program, the distribution of the whole must be on the terms of
170this License, whose permissions for other licensees extend to the
171entire whole, and thus to each and every part regardless of who wrote it.
172
173Thus, it is not the intent of this section to claim rights or contest
174your rights to work written entirely by you; rather, the intent is to
175exercise the right to control the distribution of derivative or
176collective works based on the Program.
177
178In addition, mere aggregation of another work not based on the Program
179with the Program (or with a work based on the Program) on a volume of
180a storage or distribution medium does not bring the other work under
181the scope of this License.
182
183 3. You may copy and distribute the Program (or a work based on it,
184under Section 2) in object code or executable form under the terms of
185Sections 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
204The source code for a work means the preferred form of the work for
205making modifications to it. For an executable work, complete source
206code means all the source code for all modules it contains, plus any
207associated interface definition files, plus the scripts used to
208control compilation and installation of the executable. However, as a
209special exception, the source code distributed need not include
210anything that is normally distributed (in either source or binary
211form) with the major components (compiler, kernel, and so on) of the
212operating system on which the executable runs, unless that component
213itself accompanies the executable.
214
215If distribution of executable or object code is made by offering
216access to copy from a designated place, then offering equivalent
217access to copy the source code from the same place counts as
218distribution of the source code, even though third parties are not
219compelled to copy the source along with the object code.
220
221 4. You may not copy, modify, sublicense, or distribute the Program
222except as expressly provided under this License. Any attempt
223otherwise to copy, modify, sublicense or distribute the Program is
224void, and will automatically terminate your rights under this License.
225However, parties who have received copies, or rights, from you under
226this License will not have their licenses terminated so long as such
227parties remain in full compliance.
228
229 5. You are not required to accept this License, since you have not
230signed it. However, nothing else grants you permission to modify or
231distribute the Program or its derivative works. These actions are
232prohibited by law if you do not accept this License. Therefore, by
233modifying or distributing the Program (or any work based on the
234Program), you indicate your acceptance of this License to do so, and
235all its terms and conditions for copying, distributing or modifying
236the Program or works based on it.
237
238 6. Each time you redistribute the Program (or any work based on the
239Program), the recipient automatically receives a license from the
240original licensor to copy, distribute or modify the Program subject to
241these terms and conditions. You may not impose any further
242restrictions on the recipients' exercise of the rights granted herein.
243You are not responsible for enforcing compliance by third parties to
244this License.
245
246 7. If, as a consequence of a court judgment or allegation of patent
247infringement or for any other reason (not limited to patent issues),
248conditions are imposed on you (whether by court order, agreement or
249otherwise) that contradict the conditions of this License, they do not
250excuse you from the conditions of this License. If you cannot
251distribute so as to satisfy simultaneously your obligations under this
252License and any other pertinent obligations, then as a consequence you
253may not distribute the Program at all. For example, if a patent
254license would not permit royalty-free redistribution of the Program by
255all those who receive copies directly or indirectly through you, then
256the only way you could satisfy both it and this License would be to
257refrain entirely from distribution of the Program.
258
259If any portion of this section is held invalid or unenforceable under
260any particular circumstance, the balance of the section is intended to
261apply and the section as a whole is intended to apply in other
262circumstances.
263
264It is not the purpose of this section to induce you to infringe any
265patents or other property right claims or to contest validity of any
266such claims; this section has the sole purpose of protecting the
267integrity of the free software distribution system, which is
268implemented by public license practices. Many people have made
269generous contributions to the wide range of software distributed
270through that system in reliance on consistent application of that
271system; it is up to the author/donor to decide if he or she is willing
272to distribute software through any other system and a licensee cannot
273impose that choice.
274
275This section is intended to make thoroughly clear what is believed to
276be a consequence of the rest of this License.
277
278 8. If the distribution and/or use of the Program is restricted in
279certain countries either by patents or by copyrighted interfaces, the
280original copyright holder who places the Program under this License
281may add an explicit geographical distribution limitation excluding
282those countries, so that distribution is permitted only in or among
283countries not thus excluded. In such case, this License incorporates
284the limitation as if written in the body of this License.
285
286 9. The Free Software Foundation may publish revised and/or new versions
287of the General Public License from time to time. Such new versions will
288be similar in spirit to the present version, but may differ in detail to
289address new problems or concerns.
290
291Each version is given a distinguishing version number. If the Program
292specifies a version number of this License which applies to it and "any
293later version", you have the option of following the terms and conditions
294either of that version or of any later version published by the Free
295Software Foundation. If the Program does not specify a version number of
296this License, you may choose any version ever published by the Free Software
297Foundation.
298
299 10. If you wish to incorporate parts of the Program into other free
300programs whose distribution conditions are different, write to the author
301to ask for permission. For software which is copyrighted by the Free
302Software Foundation, write to the Free Software Foundation; we sometimes
303make exceptions for this. Our decision will be guided by the two goals
304of preserving the free status of all derivatives of our free software and
305of 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
310FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
311OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
312PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
313OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
314MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
315TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
316PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
317REPAIR OR CORRECTION.
318
319 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
320WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
321REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
322INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
323OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
324TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
325YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
326PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
327POSSIBILITY OF SUCH DAMAGES.
Documentation/networking/Makefile+2−0
@@ -4,6 +4,8 @@ obj- := dummy.o · 3 unmodified lines
4# List of programs to build4# List of programs to build
5hostprogs-y := ifenslave5hostprogs-y := ifenslave
6 6
7HOSTCFLAGS_ifenslave.o += -I$(objtree)/usr/include
8
7# Tell kbuild to always build the programs9# Tell kbuild to always build the programs
8always := $(hostprogs-y)10always := $(hostprogs-y)
9 11
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]
2 2
3BATMAN-ADV3BATMAN-ADV
4----------4----------
@@ -67,7 +67,8 @@ All mesh wide settings can be found in batman's own interface · 62 unmodified lines
67folder:67folder:
68 68
69# ls /sys/class/net/bat0/mesh/69# ls /sys/class/net/bat0/mesh/
70# aggregated_ogms bonding orig_interval vis_mode70# aggregated_ogms bonding fragmentation orig_interval
71# vis_mode
71 72
72 73
73There is a special folder for debugging informations:74There is a special folder for debugging informations:
@@ -237,4 +238,3 @@ You can also contact the Authors: · 163 unmodified lines
237 238
238Marek Lindner <lindner_marek@yahoo.de>239Marek Lindner <lindner_marek@yahoo.de>
239Simon Wunderlich <siwu@hrz.tu-chemnitz.de>240Simon Wunderlich <siwu@hrz.tu-chemnitz.de>
240
Documentation/networking/bonding.txt+71−12
@@ -49,7 +49,8 @@ Table of Contents · 48 unmodified lines
493.3 Configuring Bonding Manually with Ifenslave493.3 Configuring Bonding Manually with Ifenslave
503.3.1 Configuring Multiple Bonds Manually503.3.1 Configuring Multiple Bonds Manually
513.4 Configuring Bonding Manually via Sysfs513.4 Configuring Bonding Manually via Sysfs
523.5 Overriding Configuration for Special Cases523.5 Configuration with Interfaces Support
533.6 Overriding Configuration for Special Cases
53 54
544. Querying Bonding Configuration554. Querying Bonding Configuration
554.1 Bonding Configuration564.1 Bonding Configuration
@@ -161,8 +162,8 @@ onwards) do not have /usr/include/linux symbolically linked to the · 105 unmodified lines
161default kernel source include directory.162default kernel source include directory.
162 163
163SECOND IMPORTANT NOTE:164SECOND IMPORTANT NOTE:
164 If you plan to configure bonding using sysfs, you do not need165 If you plan to configure bonding using sysfs or using the
165to use ifenslave.166/etc/network/interfaces file, you do not need to use ifenslave.
166 167
1672. Bonding Driver Options1682. Bonding Driver Options
168=========================169=========================
@@ -779,22 +780,26 @@ resend_igmp · 610 unmodified lines
779 780
780 You can configure bonding using either your distro's network781 You can configure bonding using either your distro's network
781initialization scripts, or manually using either ifenslave or the782initialization scripts, or manually using either ifenslave or the
782sysfs interface. Distros generally use one of two packages for the783sysfs interface. Distros generally use one of three packages for the
783network initialization scripts: initscripts or sysconfig. Recent784network initialization scripts: initscripts, sysconfig or interfaces.
784versions of these packages have support for bonding, while older785Recent versions of these packages have support for bonding, while older
785versions do not.786versions do not.
786 787
787 We will first describe the options for configuring bonding for788 We will first describe the options for configuring bonding for
788distros using versions of initscripts and sysconfig with full or789distros using versions of initscripts, sysconfig and interfaces with full
789partial support for bonding, then provide information on enabling790or partial support for bonding, then provide information on enabling
790bonding without support from the network initialization scripts (i.e.,791bonding without support from the network initialization scripts (i.e.,
791older versions of initscripts or sysconfig).792older versions of initscripts or sysconfig).
792 793
793 If you're unsure whether your distro uses sysconfig or794 If you're unsure whether your distro uses sysconfig,
794initscripts, or don't know if it's new enough, have no fear.795initscripts or interfaces, or don't know if it's new enough, have no fear.
795Determining this is fairly straightforward.796Determining this is fairly straightforward.
796 797
797 First, issue the command:798 First, look for a file called interfaces in /etc/network directory.
799If this file is present in your system, then your system use interfaces. See
800Configuration with Interfaces Support.
801
802 Else, issue the command:
798 803
799$ rpm -qf /sbin/ifup804$ rpm -qf /sbin/ifup
800 805
@@ -1327,8 +1332,62 @@ echo 2000 > /sys/class/net/bond1/bonding/arp_interval · 526 unmodified lines
1327echo +eth2 > /sys/class/net/bond1/bonding/slaves1332echo +eth2 > /sys/class/net/bond1/bonding/slaves
1328echo +eth3 > /sys/class/net/bond1/bonding/slaves1333echo +eth3 > /sys/class/net/bond1/bonding/slaves
1329 1334
13303.5 Overriding Configuration for Special Cases13353.5 Configuration with Interfaces Support
1336-----------------------------------------
1337
1338 This section applies to distros which use /etc/network/interfaces file
1339to describe network interface configuration, most notably Debian and it's
1340derivatives.
1341
1342 The ifup and ifdown commands on Debian don't support bonding out of
1343the box. The ifenslave-2.6 package should be installed to provide bonding
1344support. Once installed, this package will provide bond-* options to be used
1345into /etc/network/interfaces.
1346
1347 Note that ifenslave-2.6 package will load the bonding module and use
1348the ifenslave command when appropriate.
1349
1350Example Configurations
1351----------------------
1352
1353In /etc/network/interfaces, the following stanza will configure bond0, in
1354active-backup mode, with eth0 and eth1 as slaves.
1355
1356auto bond0
1357iface bond0 inet dhcp
1358 bond-slaves eth0 eth1
1359 bond-mode active-backup
1360 bond-miimon 100
1361 bond-primary eth0 eth1
1362
1363If the above configuration doesn't work, you might have a system using
1364upstart for system startup. This is most notably true for recent
1365Ubuntu versions. The following stanza in /etc/network/interfaces will
1366produce the same result on those systems.
1367
1368auto bond0
1369iface bond0 inet dhcp
1370 bond-slaves none
1371 bond-mode active-backup
1372 bond-miimon 100
1373
1374auto eth0
1375iface eth0 inet manual
1376 bond-master bond0
1377 bond-primary eth0 eth1
1378
1379auto eth1
1380iface eth1 inet manual
1381 bond-master bond0
1382 bond-primary eth0 eth1
1383
1384For a full list of bond-* supported options in /etc/network/interfaces and some
1385more advanced examples tailored to you particular distros, see the files in
1386/usr/share/doc/ifenslave-2.6.
1387
13883.6 Overriding Configuration for Special Cases
1331----------------------------------------------1389----------------------------------------------
1390
1332When using the bonding driver, the physical port which transmits a frame is1391When using the bonding driver, the physical port which transmits a frame is
1333typically selected by the bonding driver, and is not relevant to the user or1392typically selected by the bonding driver, and is not relevant to the user or
1334system administrator. The output port is simply selected using the policies of1393system administrator. The output port is simply selected using the policies of
Documentation/networking/bridge.txt+2−2
@@ -1,8 +1,8 @@
1In order to use the Ethernet bridging functionality, you'll need the1In order to use the Ethernet bridging functionality, you'll need the
2userspace tools. These programs and documentation are available2userspace tools. These programs and documentation are available
3at http://www.linux-foundation.org/en/Net:Bridge. The download page is3at http://www.linuxfoundation.org/en/Net:Bridge. The download page is
4http://prdownloads.sourceforge.net/bridge.4http://prdownloads.sourceforge.net/bridge.
5 5
6If you still have questions, don't hesitate to post to the mailing list 6If 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).
8 8
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
32 This function is called by the CAIF SPI interface to give32 This function is called by the CAIF SPI interface to give
33 you a chance to set up your hardware to be ready to receive33 you a chance to set up your hardware to be ready to receive
34 a stream of data from the master. The xfer structure contains34 a stream of data from the master. The xfer structure contains
35 both physical and logical adresses, as well as the total length35 both physical and logical addresses, as well as the total length
36 of the transfer in both directions.The dev parameter can be used36 of the transfer in both directions.The dev parameter can be used
37 to map to different CAIF SPI slave devices.37 to map to different CAIF SPI slave devices.
38 38
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
38specified in RFCs 4340...42.38specified in RFCs 4340...42.
39 39
40The known bugs are at:40The known bugs are at:
41 http://linux-net.osdl.org/index.php/TODO#DCCP41 http://www.linuxfoundation.org/collaborate/workgroups/networking/todo#DCCP
42 42
43For more up-to-date versions of the DCCP implementation, please consider using43For more up-to-date versions of the DCCP implementation, please consider using
44the experimental DCCP test tree; instructions for checking this out are on:44the experimental DCCP test tree; instructions for checking this out are on:
45http://linux-net.osdl.org/index.php/DCCP_Testing#Experimental_DCCP_source_tree45http://www.linuxfoundation.org/collaborate/workgroups/networking/dccp_testing#Experimental_DCCP_source_tree
46 46
47 47
48Socket options48Socket options
49==============49==============
50DCCP_SOCKOPT_QPOLICY_ID sets the dequeuing policy for outgoing packets. It takes
51a policy ID as argument and can only be set before the connection (i.e. changes
52during an established connection are not supported). Currently, two policies are
53defined: the "simple" policy (DCCPQ_POLICY_SIMPLE), which does nothing special,
54and a priority-based variant (DCCPQ_POLICY_PRIO). The latter allows to pass an
55u32 priority value as ancillary data to sendmsg(), where higher numbers indicate
56a higher packet priority (similar to SO_PRIORITY). This ancillary data needs to
57be 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
62DCCP_SOCKOPT_QPOLICY_TXQLEN sets the maximum length of the output queue. A zero
63value is always interpreted as unbounded queue length. If different from zero,
64the interpretation of this parameter depends on the current dequeuing policy
65(see above): the "simple" policy will enforce a fixed queue size by returning
66EAGAIN, whereas the "prio" policy enforces a fixed queue length by dropping the
67lowest-priority packet first. The default value for this parameter is
68initialised from /proc/sys/net/dccp/default/tx_qlen.
69
50DCCP_SOCKOPT_SERVICE sets the service. The specification mandates use of70DCCP_SOCKOPT_SERVICE sets the service. The specification mandates use of
51service codes (RFC 4340, sec. 8.1.2); if this socket option is not set,71service codes (RFC 4340, sec. 8.1.2); if this socket option is not set,
52the socket will fall back to 0 (which means that no meaningful service code72the socket will fall back to 0 (which means that no meaningful service code
@@ -147,6 +167,7 @@ rx_ccid = 2 · 94 unmodified lines
147seq_window = 100167seq_window = 100
148 The initial sequence window (sec. 7.5.2) of the sender. This influences168 The initial sequence window (sec. 7.5.2) of the sender. This influences
149 the local ackno validity and the remote seqno validity windows (7.5.1).169 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.
150 171
151tx_qlen = 5172tx_qlen = 5
152 The size of the transmit buffer in packets. A value of 0 corresponds173 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
72 ethtool -G eth? tx n, where n is the number of desired tx descriptors.72 ethtool -G eth? tx n, where n is the number of desired tx descriptors.
73 73
74Speed/Duplex: The driver auto-negotiates the link speed and duplex settings by74Speed/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.
76 76
77 ethtool -s eth? autoneg off speed {10|100} duplex {full|half}77 ethtool -s eth? autoneg off speed {10|100} duplex {full|half}
78 78
@@ -126,30 +126,21 @@ Additional Configurations · 47 unmodified lines
126 -------126 -------
127 127
128 The driver utilizes the ethtool interface for driver configuration and128 The driver utilizes the ethtool interface for driver configuration and
129 diagnostics, as well as displaying statistical information. Ethtool129 diagnostics, as well as displaying statistical information. The ethtool
130 version 1.6 or later is required for this functionality.130 version 1.6 or later is required for this functionality.
131 131
132 The latest release of ethtool can be found from132 The latest release of ethtool can be found from
133 http://sourceforge.net/projects/gkernel.133 http://ftp.kernel.org/pub/software/network/ethtool/
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
139 134
140 Enabling Wake on LAN* (WoL)135 Enabling Wake on LAN* (WoL)
141 ---------------------------136 ---------------------------
142 WoL is provided through the Ethtool* utility. Ethtool is included with Red137 WoL is provided through the ethtool* utility. For instructions on enabling
143 Hat* 8.0. For other Linux distributions, download and install Ethtool from138 WoL with ethtool, refer to the ethtool man page.
144 the following website: http://sourceforge.net/projects/gkernel.
145
146 For instructions on enabling WoL with Ethtool, refer to the Ethtool man page.
147 139
148 WoL will be enabled on the system during the next shut down or reboot. For140 WoL will be enabled on the system during the next shut down or reboot. For
149 this driver version, in order to enable WoL, the e100 driver must be141 this driver version, in order to enable WoL, the e100 driver must be
150 loaded when shutting down or rebooting the system.142 loaded when shutting down or rebooting the system.
151 143
152
153 NAPI144 NAPI
154 ----145 ----
155 146
Documentation/networking/e1000.txt+8−8
@@ -79,7 +79,7 @@ InterruptThrottleRate · 78 unmodified lines
79---------------------79---------------------
80(not supported on Intel(R) 82542, 82543 or 82544-based adapters)80(not supported on Intel(R) 82542, 82543 or 82544-based adapters)
81Valid Range: 0,1,3,4,100-100000 (0=off, 1=dynamic, 3=dynamic conservative,81Valid Range: 0,1,3,4,100-100000 (0=off, 1=dynamic, 3=dynamic conservative,
82 4=simplified balancing)82 4=simplified balancing)
83Default Value: 383Default Value: 3
84 84
85The driver can limit the amount of interrupts per second that the adapter85The 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
124the same as mode 3, the InterruptThrottleRate will be increased stepwise to124the same as mode 3, the InterruptThrottleRate will be increased stepwise to
12570000 for traffic in class "Lowest latency".12570000 for traffic in class "Lowest latency".
126 126
127In simplified mode the interrupt rate is based on the ratio of Tx and127In simplified mode the interrupt rate is based on the ratio of TX and
128Rx traffic. If the bytes per second rate is approximately equal, the128RX traffic. If the bytes per second rate is approximately equal, the
129interrupt rate will drop as low as 2000 interrupts per second. If the129interrupt rate will drop as low as 2000 interrupts per second. If the
130traffic is mostly transmit or mostly receive, the interrupt rate could130traffic is mostly transmit or mostly receive, the interrupt rate could
131be as high as 8000.131be as high as 8000.
@@ -245,7 +245,7 @@ NOTE: Depending on the available system resources, the request for a · 113 unmodified lines
245TxDescriptorStep245TxDescriptorStep
246----------------246----------------
247Valid Range: 1 (use every Tx Descriptor)247Valid Range: 1 (use every Tx Descriptor)
248 4 (use every 4th Tx Descriptor)248 4 (use every 4th Tx Descriptor)
249 249
250Default Value: 1 (use every Tx Descriptor)250Default Value: 1 (use every Tx Descriptor)
251 251
@@ -312,7 +312,7 @@ Valid Range: 0-xxxxxxx (0=off) · 60 unmodified lines
312Default Value: 256312Default Value: 256
313Usage: insmod e1000.ko copybreak=128313Usage: insmod e1000.ko copybreak=128
314 314
315Driver copies all packets below or equaling this size to a fresh Rx315Driver copies all packets below or equaling this size to a fresh RX
316buffer before handing it up the stack.316buffer before handing it up the stack.
317 317
318This parameter is different than other parameters, in that it is a318This parameter is different than other parameters, in that it is a
@@ -431,15 +431,15 @@ Additional Configurations · 112 unmodified lines
431 Ethtool431 Ethtool
432 -------432 -------
433 The driver utilizes the ethtool interface for driver configuration and433 The driver utilizes the ethtool interface for driver configuration and
434 diagnostics, as well as displaying statistical information. Ethtool434 diagnostics, as well as displaying statistical information. The ethtool
435 version 1.6 or later is required for this functionality.435 version 1.6 or later is required for this functionality.
436 436
437 The latest release of ethtool can be found from437 The latest release of ethtool can be found from
438 http://sourceforge.net/projects/gkernel.438 http://ftp.kernel.org/pub/software/network/ethtool/
439 439
440 Enabling Wake on LAN* (WoL)440 Enabling Wake on LAN* (WoL)
441 ---------------------------441 ---------------------------
442 WoL is configured through the Ethtool* utility.442 WoL is configured through the ethtool* utility.
443 443
444 WoL will be enabled on the system during the next shut down or reboot.444 WoL will be enabled on the system during the next shut down or reboot.
445 For this driver version, in order to enable WoL, the e1000 driver must be445 For this driver version, in order to enable WoL, the e1000 driver must be
Documentation/networking/e1000e.txt+28−24
@@ -1,5 +1,5 @@
1Linux* Driver for Intel(R) Network Connection1Linux* Driver for Intel(R) Network Connection
2===============================================================2=============================================
3 3
4Intel Gigabit Linux driver.4Intel Gigabit Linux driver.
5Copyright(c) 1999 - 2010 Intel Corporation.5Copyright(c) 1999 - 2010 Intel Corporation.
@@ -61,6 +61,12 @@ per second, even if more packets have come in. This reduces interrupt · 55 unmodified lines
61load on the system and can lower CPU utilization under heavy load,61load on the system and can lower CPU utilization under heavy load,
62but will increase latency as packets are not processed as quickly.62but will increase latency as packets are not processed as quickly.
63 63
64The default behaviour of the driver previously assumed a static
65InterruptThrottleRate value of 8000, providing a good fallback value for
66all traffic types, but lacking in small packet performance and latency.
67The hardware can handle many more small packets per second however, and
68for this reason an adaptive interrupt moderation algorithm was implemented.
69
64The driver has two adaptive modes (setting 1 or 3) in which70The driver has two adaptive modes (setting 1 or 3) in which
65it dynamically adjusts the InterruptThrottleRate value based on the traffic71it dynamically adjusts the InterruptThrottleRate value based on the traffic
66that it receives. After determining the type of incoming traffic in the last72that 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
86the same as mode 3, the InterruptThrottleRate will be increased stepwise to92the same as mode 3, the InterruptThrottleRate will be increased stepwise to
8770000 for traffic in class "Lowest latency".9370000 for traffic in class "Lowest latency".
88 94
89In simplified mode the interrupt rate is based on the ratio of Tx and95In simplified mode the interrupt rate is based on the ratio of TX and
90Rx traffic. If the bytes per second rate is approximately equal the96RX traffic. If the bytes per second rate is approximately equal, the
91interrupt rate will drop as low as 2000 interrupts per second. If the97interrupt rate will drop as low as 2000 interrupts per second. If the
92traffic is mostly transmit or mostly receive, the interrupt rate could98traffic is mostly transmit or mostly receive, the interrupt rate could
93be as high as 8000.99be as high as 8000.
@@ -177,7 +183,7 @@ Copybreak · 83 unmodified lines
177Valid Range: 0-xxxxxxx (0=off)183Valid Range: 0-xxxxxxx (0=off)
178Default Value: 256184Default Value: 256
179 185
180Driver copies all packets below or equaling this size to a fresh Rx186Driver copies all packets below or equaling this size to a fresh RX
181buffer before handing it up the stack.187buffer before handing it up the stack.
182 188
183This parameter is different than other parameters, in that it is a189This 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
223 229
224WriteProtectNVM230WriteProtectNVM
225---------------231---------------
226Valid Range: 0-1232Valid Range: 0,1
227Default Value: 1 (enabled)233Default Value: 1
228 234
229Set the hardware to ignore all write/erase cycles to the GbE region in the235If set to 1, configure the hardware to ignore all write/erase cycles to the
230ICHx NVM (non-volatile memory). This feature can be disabled by the236GbE region in the ICHx NVM (in order to prevent accidental corruption of the
231WriteProtectNVM module parameter (enabled by default) only after a hardware237NVM). This feature can be disabled by setting the parameter to 0 during initial
232reset, but the machine must be power cycled before trying to enable writes.238driver load.
233 239NOTE: The machine must be power cycled (full off/on) when enabling NVM writes
234Note: the kernel boot option iomem=relaxed may need to be set if the kernel240via setting the parameter to zero. Once the NVM has been locked (via the
235config option CONFIG_STRICT_DEVMEM=y, if the root user wants to write the241parameter at 1 when the driver loads) it cannot be unlocked except via power
236NVM from user space via ethtool.242cycle.
237 243
238Additional Configurations244Additional Configurations
239=========================245=========================
@@ -259,32 +265,30 @@ Additional Configurations · 19 unmodified lines
259 - Some adapters limit Jumbo Frames sized packets to a maximum of265 - Some adapters limit Jumbo Frames sized packets to a maximum of
260 4096 bytes and some adapters do not support Jumbo Frames.266 4096 bytes and some adapters do not support Jumbo Frames.
261 267
262
263 Ethtool268 Ethtool
264 -------269 -------
265 The driver utilizes the ethtool interface for driver configuration and270 The driver utilizes the ethtool interface for driver configuration and
266 diagnostics, as well as displaying statistical information. We271 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:
268 273
269 http://sourceforge.net/projects/gkernel.274 http://ftp.kernel.org/pub/software/network/ethtool/
270 275
271 Speed and Duplex276 Speed and Duplex
272 ----------------277 ----------------
273 Speed and Duplex are configured through the Ethtool* utility. For278 Speed and Duplex are configured through the ethtool* utility. For
274 instructions, refer to the Ethtool man page.279 instructions, refer to the ethtool man page.
275 280
276 Enabling Wake on LAN* (WoL)281 Enabling Wake on LAN* (WoL)
277 ---------------------------282 ---------------------------
278 WoL is configured through the Ethtool* utility. For instructions on283 WoL is configured through the ethtool* utility. For instructions on
279 enabling WoL with Ethtool, refer to the Ethtool man page.284 enabling WoL with ethtool, refer to the ethtool man page.
280 285
281 WoL will be enabled on the system during the next shut down or reboot.286 WoL will be enabled on the system during the next shut down or reboot.
282 For this driver version, in order to enable WoL, the e1000e driver must be287 For this driver version, in order to enable WoL, the e1000e driver must be
283 loaded when shutting down or rebooting the system.288 loaded when shutting down or rebooting the system.
284 289
285 In most cases Wake On LAN is only supported on port A for multiple port290 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>.291 adapters. To verify if a port supports Wake on Lan run ethtool eth<X>.
287
288 292
289Support293Support
290=======294=======
Documentation/networking/generic_netlink.txt+1−1
@@ -1,3 +1,3 @@
1A wiki document on how to use Generic Netlink can be found here:1A wiki document on how to use Generic Netlink can be found here:
2 2
3 * http://linux-net.osdl.org/index.php/Generic_Netlink_HOWTO3 * 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
36This parameter adds support for SR-IOV. It causes the driver to spawn up to36This parameter adds support for SR-IOV. It causes the driver to spawn up to
37max_vfs worth of virtual function.37max_vfs worth of virtual function.
38 38
39
39Additional Configurations40Additional Configurations
40=========================41=========================
41 42
@@ -60,15 +61,16 @@ Additional Configurations · 18 unmodified lines
60 Ethtool61 Ethtool
61 -------62 -------
62 The driver utilizes the ethtool interface for driver configuration and63 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:
64 66
65 http://sourceforge.net/projects/gkernel.67 http://ftp.kernel.org/pub/software/network/ethtool/
66 68
67 Enabling Wake on LAN* (WoL)69 Enabling Wake on LAN* (WoL)
68 ---------------------------70 ---------------------------
69 WoL is configured through the Ethtool* utility.71 WoL is configured through the ethtool* utility.
70 72
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.
72 74
73 WoL will be enabled on the system during the next shut down or reboot.75 WoL will be enabled on the system during the next shut down or reboot.
74 For this driver version, in order to enable WoL, the igb driver must be76 For this driver version, in order to enable WoL, the igb driver must be
@@ -91,31 +93,6 @@ Additional Configurations · 16 unmodified lines
91 REQUIREMENTS: MSI-X support is required for Multiqueue. If MSI-X is not93 REQUIREMENTS: MSI-X support is required for Multiqueue. If MSI-X is not
92 found, the system will fallback to MSI or to Legacy interrupts.94 found, the system will fallback to MSI or to Legacy interrupts.
93 95
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
119Support96Support
120=======97=======
121 98
Documentation/networking/igbvf.txt+4−2
@@ -58,9 +58,11 @@ Additional Configurations · 57 unmodified lines
58 Ethtool58 Ethtool
59 -------59 -------
60 The driver utilizes the ethtool interface for driver configuration and60 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:
62 64
63 http://sourceforge.net/projects/gkernel.65 http://ftp.kernel.org/pub/software/network/ethtool/
64 66
65Support67Support
66=======68=======
Documentation/networking/ip-sysctl.txt+25−5
@@ -11,7 +11,9 @@ ip_forward - BOOLEAN · 10 unmodified lines
11 for routers)11 for routers)
12 12
13ip_default_ttl - INTEGER13ip_default_ttl - INTEGER
14 default 6414 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)
15 17
16ip_no_pmtu_disc - BOOLEAN18ip_no_pmtu_disc - BOOLEAN
17 Disable Path MTU Discovery.19 Disable Path MTU Discovery.
@@ -185,7 +187,7 @@ tcp_cookie_size - INTEGER · 167 unmodified lines
185tcp_dsack - BOOLEAN187tcp_dsack - BOOLEAN
186 Allows TCP to send "duplicate" SACKs.188 Allows TCP to send "duplicate" SACKs.
187 189
188tcp_ecn - BOOLEAN190tcp_ecn - INTEGER
189 Enable Explicit Congestion Notification (ECN) in TCP. ECN is only191 Enable Explicit Congestion Notification (ECN) in TCP. ECN is only
190 used when both ends of the TCP flow support it. It is useful to192 used when both ends of the TCP flow support it. It is useful to
191 avoid losses due to congestion (when the bottleneck router supports193 avoid losses due to congestion (when the bottleneck router supports
@@ -708,10 +710,28 @@ igmp_max_memberships - INTEGER · 516 unmodified lines
708 Change the maximum number of multicast groups we can subscribe to.710 Change the maximum number of multicast groups we can subscribe to.
709 Default: 20711 Default: 20
710 712
711conf/interface/* changes special settings per interface (where "interface" is713 Theoretical maximum value is bounded by having to send a membership
712 the name of your network interface)714 report in a single datagram (i.e. the report can't span multiple
713conf/all/* is special, changes the settings for all interfaces715 datagrams, or risk confusing the switch and leaving groups you don't
716 intend to).
714 717
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
715 735
716log_martians - BOOLEAN736log_martians - BOOLEAN
717 Log packets with impossible addresses to kernel log.737 Log packets with impossible addresses to kernel log.
Documentation/networking/ixgb.txt+5−5
@@ -309,15 +309,15 @@ Additional Configurations · 308 unmodified lines
309 Ethtool309 Ethtool
310 -------310 -------
311 The driver utilizes the ethtool interface for driver configuration and311 The driver utilizes the ethtool interface for driver configuration and
312 diagnostics, as well as displaying statistical information. Ethtool312 diagnostics, as well as displaying statistical information. The ethtool
313 version 1.6 or later is required for this functionality.313 version 1.6 or later is required for this functionality.
314 314
315 The latest release of ethtool can be found from315 The latest release of ethtool can be found from
316 http://sourceforge.net/projects/gkernel316 http://ftp.kernel.org/pub/software/network/ethtool/
317 317
318 NOTE: Ethtool 1.6 only supports a limited set of ethtool options. Support318 NOTE: The ethtool version 1.6 only supports a limited set of ethtool options.
319 for a more complete ethtool feature set can be enabled by upgrading319 Support for a more complete ethtool feature set can be enabled by
320 to the latest version.320 upgrading to the latest version.
321 321
322 322
323 NAPI323 NAPI
Documentation/networking/ixgbe.txt+137−76
@@ -1,107 +1,126 @@
1Linux Base Driver for 10 Gigabit PCI Express Intel(R) Network Connection1Linux Base Driver for 10 Gigabit PCI Express Intel(R) Network Connection
2========================================================================2========================================================================
3 3
4March 10, 20094Intel Gigabit Linux driver.
5 5Copyright(c) 1999 - 2010 Intel Corporation.
6 6
7Contents7Contents
8========8========
9 9
10- In This Release
11- Identifying Your Adapter10- Identifying Your Adapter
12- Building and Installation
13- Additional Configurations11- Additional Configurations
12- Performance Tuning
13- Known Issues
14- Support14- Support
15 15
16Identifying Your Adapter
17========================
16 18
19The driver in this release is compatible with 82598 and 82599-based Intel
20Network Connections.
17 21
18In This Release22For more information on how to identify your adapter, go to the Adapter &
19===============23Driver ID Guide at:
20 24
21This file describes the ixgbe Linux Base Driver for the 10 Gigabit PCI25 http://support.intel.com/support/network/sb/CS-012904.htm
22Express Intel(R) Network Connection. This driver includes support for
23Itanium(R)2-based systems.
24 26
25For questions related to hardware requirements, refer to the documentation27SFP+ Devices with Pluggable Optics
26supplied with your 10 Gigabit adapter. All hardware requirements listed apply28----------------------------------
27to use with Linux.
28 29
29The following features are available in this kernel:3082599-BASED ADAPTERS
30 - Native VLANs
31 - Channel Bonding (teaming)
32 - SNMP
33 - Generic Receive Offload
34 - Data Center Bridging
35 31
36Channel Bonding documentation can be found in the Linux kernel source:32NOTES: If your 82599-based Intel(R) Network Adapter came with Intel optics, or
37/Documentation/networking/bonding.txt33is an Intel(R) Ethernet Server Adapter X520-2, then it only supports Intel
34optics and/or the direct attach cables listed below.
38 35
39Ethtool, lspci, and ifconfig can be used to display device and driver36When 82599-based SFP+ devices are connected back to back, they should be set to
40specific information.37the same Speed setting via ethtool. Results may vary if you mix speed settings.
3882598-based adapters support all passive direct attach cables that comply
39with SFF-8431 v4.1 and SFF-8472 v10.4 specifications. Active direct attach
40cables are not supported.
41 41
42Supplier Type Part Numbers
42 43
43Identifying Your Adapter44SR Modules
44========================45Intel DUAL RATE 1G/10G SFP+ SR (bailed) FTLX8571D3BCV-IT
46Intel DUAL RATE 1G/10G SFP+ SR (bailed) AFBR-703SDDZ-IN1
47Intel DUAL RATE 1G/10G SFP+ SR (bailed) AFBR-703SDZ-IN2
48LR Modules
49Intel DUAL RATE 1G/10G SFP+ LR (bailed) FTLX1471D3BCV-IT
50Intel DUAL RATE 1G/10G SFP+ LR (bailed) AFCT-701SDDZ-IN1
51Intel DUAL RATE 1G/10G SFP+ LR (bailed) AFCT-701SDZ-IN2
45 52
46This driver supports devices based on the 82598 controller and the 8259953The following is a list of 3rd party SFP+ modules and direct attach cables that
47controller.54have received some testing. Not all modules are applicable to all devices.
48 55
49For specific information on identifying which adapter you have, please visit:56Supplier Type Part Numbers
50 57
51 http://support.intel.com/support/network/sb/CS-008441.htm58Finisar SFP+ SR bailed, 10g single rate FTLX8571D3BCL
59Avago SFP+ SR bailed, 10g single rate AFBR-700SDZ
60Finisar SFP+ LR bailed, 10g single rate FTLX1471D3BCL
52 61
62Finisar DUAL RATE 1G/10G SFP+ SR (No Bail) FTLX8571D3QCV-IT
63Avago DUAL RATE 1G/10G SFP+ SR (No Bail) AFBR-703SDZ-IN1
64Finisar DUAL RATE 1G/10G SFP+ LR (No Bail) FTLX1471D3QCV-IT
65Avago DUAL RATE 1G/10G SFP+ LR (No Bail) AFCT-701SDZ-IN1
66Finistar 1000BASE-T SFP FCLF8522P2BTL
67Avago 1000BASE-T SFP ABCU-5710RZ
53 68
54Building and Installation6982599-based adapters support all passive and active limiting direct attach
55=========================70cables that comply with SFF-8431 v4.1 and SFF-8472 v10.4 specifications.
56 71
57select m for "Intel(R) 10GbE PCI Express adapters support" located at:72Laser turns off for SFP+ when ifconfig down
58 Location:73-------------------------------------------
59 -> Device Drivers74"ifconfig down" turns off the laser for 82599-based SFP+ fiber adapters.
60 -> Network device support (NETDEVICES [=y])75"ifconfig up" turns on the later.
61 -> Ethernet (10000 Mbit) (NETDEV_10000 [=y])
62 76
631. make modules & make modules_install
64 77
652. Load the module:7882598-BASED ADAPTERS
66 79
67# modprobe ixgbe80NOTES 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.
68 89
69 The insmod command can be used if the full90The following is a list of 3rd party SFP+ modules and direct attach cables that
70 path to the driver module is specified. For example:91have received some testing. Not all modules are applicable to all devices.
71 92
72 insmod /lib/modules/<KERNEL VERSION>/kernel/drivers/net/ixgbe/ixgbe.ko93Supplier Type Part Numbers
73 94
74 With 2.6 based kernels also make sure that older ixgbe drivers are95Finisar SFP+ SR bailed, 10g single rate FTLX8571D3BCL
75 removed from the kernel, before loading the new module:96Avago SFP+ SR bailed, 10g single rate AFBR-700SDZ
97Finisar SFP+ LR bailed, 10g single rate FTLX1471D3BCL
76 98
77 rmmod ixgbe; modprobe ixgbe9982598-based adapters support all passive direct attach cables that comply
100with SFF-8431 v4.1 and SFF-8472 v10.4 specifications. Active direct attach
101cables are not supported.
78 102
793. Assign an IP address to the interface by entering the following, where
80 x is the interface number:
81 103
82 ifconfig ethx <IP_address>104Flow Control
105------------
106Ethernet Flow Control (IEEE 802.3x) can be configured with ethtool to enable
107receiving and transmitting pause frames for ixgbe. When TX is enabled, PAUSE
108frames are generated when the receive packet buffer crosses a predefined
109threshold. When rx is enabled, the transmit unit will halt for the time delay
110specified when a PAUSE frame is received.
83 111
844. Verify that the interface works. Enter the following, where <IP_address>112Flow Control is enabled by default. If you want to disable a flow control
85 is the IP address for another machine on the same subnet as the interface113capable link partner, use ethtool:
86 that is being tested:
87 114
88 ping <IP_address>115 ethtool -A eth? autoneg off RX off TX off
89 116
117NOTE: For 82598 backplane cards entering 1 gig mode, flow control default
118behavior is changed to off. Flow control in 1 gig mode on these devices can
119lead to Tx hangs.
90 120
91Additional Configurations121Additional Configurations
92=========================122=========================
93 123
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
105 Jumbo Frames124 Jumbo Frames
106 ------------125 ------------
107 The driver supports Jumbo Frames for all adapters. Jumbo Frames support is126 The driver supports Jumbo Frames for all adapters. Jumbo Frames support is
@@ -123,13 +142,8 @@ Additional Configurations · 15 unmodified lines
123 other protocols besides TCP. It's also safe to use with configurations that142 other protocols besides TCP. It's also safe to use with configurations that
124 are problematic for LRO, namely bridging and iSCSI.143 are problematic for LRO, namely bridging and iSCSI.
125 144
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
130 Data Center Bridging, aka DCB145 Data Center Bridging, aka DCB
131 -----------------------------146 -----------------------------
132
133 DCB is a configuration Quality of Service implementation in hardware.147 DCB is a configuration Quality of Service implementation in hardware.
134 It uses the VLAN priority tag (802.1p) to filter traffic. That means148 It uses the VLAN priority tag (802.1p) to filter traffic. That means
135 that there are 8 different priorities that traffic can be filtered into.149 that there are 8 different priorities that traffic can be filtered into.
@@ -163,24 +177,71 @@ Additional Configurations · 27 unmodified lines
163 177
164 http://e1000.sf.net178 http://e1000.sf.net
165 179
166
167 Ethtool180 Ethtool
168 -------181 -------
169 The driver utilizes the ethtool interface for driver configuration and182 The driver utilizes the ethtool interface for driver configuration and
170 diagnostics, as well as displaying statistical information. Ethtool183 diagnostics, as well as displaying statistical information. The latest
171 version 3.0 or later is required for this functionality.184 ethtool version is required for this functionality.
172 185
173 The latest release of ethtool can be found from186 The latest release of ethtool can be found from
174 http://sourceforge.net/projects/gkernel.187 http://ftp.kernel.org/pub/software/network/ethtool/
175 188
176 189 FCoE
177 NAPI
178 ----190 ----
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
213Performance Tuning
214==================
215
216An excellent article on performance tuning can be found at:
217
218http://www.redhat.com/promo/summit/2008/downloads/pdf/Thursday/Mark_Wagner.pdf
219
220
221Known 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.
179 238
180 NAPI (Rx polling mode) is supported in the ixgbe driver. NAPI is enabled239 If you wish to use the Intel 82576 or 82599-based controllers in SR-IOV mode
181 by default in the driver.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:
182 243
183 See www.cyberus.ca/~hadi/usenix-paper.tgz for more information on NAPI.244 "-cpu qemu64,model=13"
184 245
185 246
186Support247Support
Documentation/networking/ixgbevf.txt+0−4
@@ -35,10 +35,6 @@ Driver ID Guide at: · 34 unmodified lines
35Known Issues/Troubleshooting35Known Issues/Troubleshooting
36============================36============================
37 37
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.
42 38
43Support39Support
44=======40=======
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
7(Synopsys IP blocks); it has been fully tested on STLinux platforms.7(Synopsys IP blocks); it has been fully tested on STLinux platforms.
8 8
9Currently this network device driver is for all STM embedded MAC/GMAC9Currently this network device driver is for all STM embedded MAC/GMAC
10(7xxx SoCs).10(7xxx SoCs). Other platforms start using it i.e. ARM SPEAr.
11 11
12DWC Ether MAC 10/100/1000 Universal version 3.41a and DWC Ether MAC 10/10012DWC Ether MAC 10/100/1000 Universal version 3.41a and DWC Ether MAC 10/100
13Universal version 4.0 have been used for developing the first code13Universal 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
95driver's Header file in include/linux directory.95driver's Header file in include/linux directory.
96 96
97struct plat_stmmacenet_data {97struct plat_stmmacenet_data {
98 int bus_id;98 int bus_id;
99 int pbl;99 int pbl;
100 int has_gmac;100 int clk_csr;
101 int has_gmac;
102 int enh_desc;
103 int tx_coe;
104 int bugged_jumbo;
105 int pmt;
101 void (*fix_mac_speed)(void *priv, unsigned int speed);106 void (*fix_mac_speed)(void *priv, unsigned int speed);
102 void (*bus_setup)(unsigned long ioaddr);107 void (*bus_setup)(unsigned long ioaddr);
103#ifdef CONFIG_STM_DRIVERS108#ifdef CONFIG_STM_DRIVERS
@@ -114,6 +119,12 @@ Where: · 10 unmodified lines
114 registers (on STM platforms);119 registers (on STM platforms);
115- has_gmac: GMAC core is on board (get it at run-time in the next step);120- has_gmac: GMAC core is on board (get it at run-time in the next step);
116- bus_id: bus identifier.121- 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.
117 128
118struct plat_stmmacphy_data {129struct plat_stmmacphy_data {
119 int bus_id;130 int bus_id;
@@ -131,13 +142,28 @@ Where: · 11 unmodified lines
131- interface: physical MII interface mode;142- interface: physical MII interface mode;
132- phy_reset: hook to reset HW function.143- phy_reset: hook to reset HW function.
133 144
145SOURCES:
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
134TODO:166TODO:
135- Continue to make the driver more generic and suitable for other Synopsys167- XGMAC controller is not supported.
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.
142- Review the timer optimisation code to use an embedded device that seems to be168- Review the timer optimisation code to use an embedded device that seems to be
143 available in new chip generations.169 available in new chip generations.
Documentation/nfc/nfc-pn544.txt+114−0
@@ -0,0 +1,114 @@
1Kernel driver for the NXP Semiconductors PN544 Near Field
2Communication chip
3
4Author: Jari Vanhala
5Contact: Matti Aaltonen (matti.j.aaltonen at nokia.com)
6
7General
8-------
9
10The PN544 is an integrated transmission module for contactless
11communication. The driver goes under drives/nfc/ and is compiled as a
12module named "pn544". It registers a misc device and creates a device
13file named "/dev/pn544".
14
15Host Interfaces: I2C, SPI and HSU, this driver supports currently only I2C.
16
17The Interface
18-------------
19
20The driver offers a sysfs interface for a hardware test and an IOCTL
21interface for selecting between two operating modes. There are read,
22write and poll functions for transferring messages. The two operating
23modes are the normal (HCI) mode and the firmware update mode.
24
25PN544 is controlled by sending messages from the userspace to the
26chip. The main function of the driver is just to pass those messages
27without caring about the message content.
28
29
30Protocols
31---------
32
33In the normal (HCI) mode and in the firmware update mode read and
34write functions behave a bit differently because the message formats
35or the protocols are different.
36
37In the normal (HCI) mode the protocol used is derived from the ETSI
38HCI specification. The firmware is updated using a specific protocol,
39which is different from HCI.
40
41HCI messages consist of an eight bit header and the message body. The
42header contains the message length. Maximum size for an HCI message is
4333. In HCI mode sent messages are tested for a correct
44checksum. Firmware update messages have the length in the second (MSB)
45and third (LSB) bytes of the message. The maximum FW message length is
461024 bytes.
47
48For the ETSI HCI specification see
49http://www.etsi.org/WebSite/Technologies/ProtocolSpecification.aspx
50
51The Hardware Test
52-----------------
53
54The idea of the test is that it can performed by reading from the
55corresponding sysfs file. The test is implemented in the board file
56and it should test that PN544 can be put into the firmware update
57mode. If the test is not implemented the sysfs file does not get
58created.
59
60Example:
61> cat /sys/module/pn544/drivers/i2c\:pn544/3-002b/nfc_test
621
63
64Normal Operation
65----------------
66
67PN544 is powered up when the device file is opened, otherwise it's
68turned off. Only one instance can use the device at a time.
69
70Userspace applications control PN544 with HCI messages. The hardware
71sends an interrupt when data is available for reading. Data is
72physically read when the read function is called by a userspace
73application. Poll() checks the read interrupt state. Configuration and
74self testing are also done from the userspace using read and write.
75
76Example platform data:
77
78static int rx71_pn544_nfc_request_resources(struct i2c_client *client)
79{
80 /* Get and setup the HW resources for the device */
81}
82
83static void rx71_pn544_nfc_free_resources(void)
84{
85 /* Release the HW resources */
86}
87
88static void rx71_pn544_nfc_enable(int fw)
89{
90 /* Turn the device on */
91}
92
93static 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
103static void rx71_pn544_nfc_disable(void)
104{
105 /* turn the power off */
106}
107
108static 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
23without the new driver, you are ready to test it:23without the new driver, you are ready to test it:
24 24
25a) Build the driver as a module, load it and try the test modes of hibernation25a) 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).
27 27
28b) Load the driver and attempt to hibernate in the "reboot", "shutdown" and28b) 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).
30 30
31c) Compile the driver directly into the kernel and try the test modes of31c) Compile the driver directly into the kernel and try the test modes of
32 hibernation.32 hibernation.
@@ -34,12 +34,12 @@ c) Compile the driver directly into the kernel and try the test modes of · 1 unmodified line
34d) Attempt to hibernate with the driver compiled directly into the kernel34d) Attempt to hibernate with the driver compiled directly into the kernel
35 in the "reboot", "shutdown" and "platform" modes.35 in the "reboot", "shutdown" and "platform" modes.
36 36
37e) Try the test modes of suspend (see: Documents/power/basic-pm-debugging.txt,37e) Try the test modes of suspend (see: Documentation/power/basic-pm-debugging.txt,
38 2). [As far as the STR tests are concerned, it should not matter whether or38 2). [As far as the STR tests are concerned, it should not matter whether or
39 not the driver is built as a module.]39 not the driver is built as a module.]
40 40
41f) Attempt to suspend to RAM using the s2ram tool with the driver loaded41f) 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).
43 43
44Each of the above tests should be repeated several times and the STD tests44Each of the above tests should be repeated several times and the STD tests
45should be mixed with the STR tests. If any of them fails, the driver cannot be45should 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
50and device class callbacks are referred to as subsystem-level callbacks in what50and device class callbacks are referred to as subsystem-level callbacks in what
51follows.51follows.
52 52
53By default, the callbacks are always invoked in process context with interrupts
54enabled. However, subsystems can use the pm_runtime_irq_safe() helper function
55to tell the PM core that a device's ->runtime_suspend() and ->runtime_resume()
56callbacks should be invoked in atomic context with interrupts disabled
57(->runtime_idle() is still invoked the default way). This implies that these
58callback routines must not block or sleep, but it also means that the
59synchronous helper functions listed at the end of Section 4 can be used within
60an interrupt handler or in an atomic context.
61
53The subsystem-level suspend callback is _entirely_ _responsible_ for handling62The subsystem-level suspend callback is _entirely_ _responsible_ for handling
54the suspend of the device as appropriate, which may, but need not include63the suspend of the device as appropriate, which may, but need not include
55executing the device driver's own ->runtime_suspend() callback (from the64executing the device driver's own ->runtime_suspend() callback (from the
@@ -237,6 +246,10 @@ defined in include/linux/pm.h: · 181 unmodified lines
237 Section 8); it may be modified only by the pm_runtime_no_callbacks()246 Section 8); it may be modified only by the pm_runtime_no_callbacks()
238 helper function247 helper function
239 248
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
240 unsigned int use_autosuspend;253 unsigned int use_autosuspend;
241 - indicates that the device's driver supports delayed autosuspend (see254 - indicates that the device's driver supports delayed autosuspend (see
242 Section 9); it may be modified only by the255 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
344 - decrement the device's usage counter; if the result is 0 then run357 - decrement the device's usage counter; if the result is 0 then run
345 pm_runtime_idle(dev) and return its result358 pm_runtime_idle(dev) and return its result
346 359
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
347 int pm_runtime_put_sync_autosuspend(struct device *dev);364 int pm_runtime_put_sync_autosuspend(struct device *dev);
348 - decrement the device's usage counter; if the result is 0 then run365 - decrement the device's usage counter; if the result is 0 then run
349 pm_runtime_autosuspend(dev) and return its result366 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
397 PM attributes from /sys/devices/.../power (or prevent them from being414 PM attributes from /sys/devices/.../power (or prevent them from being
398 added when the device is registered)415 added when the device is registered)
399 416
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
400 void pm_runtime_mark_last_busy(struct device *dev);422 void pm_runtime_mark_last_busy(struct device *dev);
401 - set the power.last_busy field to the current time423 - set the power.last_busy field to the current time
402 424
@@ -438,6 +460,15 @@ pm_runtime_suspended() · 35 unmodified lines
438pm_runtime_mark_last_busy()460pm_runtime_mark_last_busy()
439pm_runtime_autosuspend_expiration()461pm_runtime_autosuspend_expiration()
440 462
463If pm_runtime_irq_safe() has been called for a device then the following helper
464functions may also be used in interrupt context:
465
466pm_runtime_suspend()
467pm_runtime_autosuspend()
468pm_runtime_resume()
469pm_runtime_get_sync()
470pm_runtime_put_sync_suspend()
471
4415. Run-time PM Initialization, Device Probing and Removal4725. Run-time PM Initialization, Device Probing and Removal
442 473
443Initially, the run-time PM is disabled for all devices, which means that the474Initially, 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
170 170
171Please, note that to compile userland programs you need the file timepps.h171Please, note that to compile userland programs you need the file timepps.h
172(see Documentation/pps/).172(see Documentation/pps/).
173
174
175Generators
176----------
177
178Sometimes one needs to be able not only to catch PPS signals but to produce
179them also. For example, running a distributed simulation, which requires
180computers' clock to be synchronized very tightly. One way to do this is to
181invent some complicated hardware solutions but it may be neither necessary
182nor affordable. The cheap way is to load a PPS generator on one of the
183computers (master) and PPS clients on others (slaves), and use very simple
184cables to deliver signals using parallel ports, for example.
185
186Parallel port cable pinout:
187pin name master slave
1881 STROBE *------ *
1892 D0 * | *
1903 D1 * | *
1914 D2 * | *
1925 D3 * | *
1936 D4 * | *
1947 D5 * | *
1958 D6 * | *
1969 D7 * | *
19710 ACK * ------*
19811 BUSY * *
19912 PE * *
20013 SEL * *
20114 AUTOFD * *
20215 ERROR * *
20316 INIT * *
20417 SELIN * *
20518-25 GND *-----------*
206
207Please note that parallel port interrupt occurs only on high->low transition,
208so it is used for PPS assert edge. PPS clear edge can be determined only
209using polling in the interrupt handler which actually can be done way more
210precisely because interrupt handling delays can be quite big and random. So
211current parport PPS generator implementation (pps_gen_parport module) is
212geared towards using the clear edge for time synchronization.
213
214Clear edge polling is done with disabled interrupts so it's better to select
215delay between assert and clear edge as small as possible to reduce system
216latencies. But if it is too small slave won't be able to capture clear edge
217transition. The default of 30us should be good enough in most situations.
218The delay can be selected using 'delay' pps_gen_parport module parameter.
Documentation/scheduler/00-INDEX+1−1
@@ -3,7 +3,7 @@ · 2 unmodified lines
3sched-arch.txt3sched-arch.txt
4 - CPU Scheduler implementation hints for architecture specific code.4 - CPU Scheduler implementation hints for architecture specific code.
5sched-design-CFS.txt5sched-design-CFS.txt
6 - goals, design and implementation of the Complete Fair Scheduler.6 - goals, design and implementation of the Completely Fair Scheduler.
7sched-domains.txt7sched-domains.txt
8 - information on scheduling domains.8 - information on scheduling domains.
9sched-nice-design.txt9sched-nice-design.txt
Documentation/scheduler/sched-stats.txt+15−18
@@ -1,3 +1,7 @@
1Version 15 of schedstats dropped counters for some sched_yield:
2yld_exp_empty, yld_act_empty and yld_both_empty. Otherwise, it is
3identical to version 14.
4
1Version 14 of schedstats includes support for sched_domains, which hit the5Version 14 of schedstats includes support for sched_domains, which hit the
2mainline kernel in 2.6.20 although it is identical to the stats from version6mainline kernel in 2.6.20 although it is identical to the stats from version
312 which was in the kernel from 2.6.13-2.6.19 (version 13 never saw a kernel712 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
28 32
29CPU statistics33CPU statistics
30--------------34--------------
31cpu<N> 1 2 3 4 5 6 7 8 9 10 11 1235cpu<N> 1 2 3 4 5 6 7 8 9
32
33NOTE: 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.
36 36
37First four fields are sched_yield() statistics:37First field is a sched_yield() statistic:
38 1) # of times both the active and the expired queue were empty38 1) # of times sched_yield() was called
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
42 39
43Next three are schedule() statistics:40Next three are schedule() statistics:
44 5) # of times we switched to the expired queue and reused it41 2) # of times we switched to the expired queue and reused it
45 6) # of times schedule() was called42 3) # of times schedule() was called
46 7) # of times schedule() left the processor idle43 4) # of times schedule() left the processor idle
47 44
48Next two are try_to_wake_up() statistics:45Next two are try_to_wake_up() statistics:
49 8) # of times try_to_wake_up() was called46 5) # of times try_to_wake_up() was called
50 9) # of times try_to_wake_up() was called to wake up the local cpu47 6) # of times try_to_wake_up() was called to wake up the local cpu
51 48
52Next three are statistics describing scheduling latency:49Next three are statistics describing scheduling latency:
53 10) sum of all time spent running by tasks on this processor (in jiffies)50 7) 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 (in51 8) sum of all time spent waiting to run by tasks on this processor (in
55 jiffies)52 jiffies)
56 12) # of timeslices run on this cpu53 9) # of timeslices run on this cpu
57 54
58 55
59Domain statistics56Domain statistics
Documentation/scsi/ChangeLog.lpfc+1−1
@@ -573,7 +573,7 @@ Changes from 20041018 to 20041123 · 572 unmodified lines
573 * Backround nodev_timeout processing to DPC This enables us to573 * Backround nodev_timeout processing to DPC This enables us to
574 unblock (stop dev_loss_tmo) when appopriate.574 unblock (stop dev_loss_tmo) when appopriate.
575 * Fix array discovery with multiple luns. The max_luns was 0 at575 * Fix array discovery with multiple luns. The max_luns was 0 at
576 the time the host structure was intialized. lpfc_cfg_params576 the time the host structure was initialized. lpfc_cfg_params
577 then set the max_luns to the correct value afterwards.577 then set the max_luns to the correct value afterwards.
578 * Remove unused define LPFC_MAX_LUN and set the default value of578 * Remove unused define LPFC_MAX_LUN and set the default value of
579 lpfc_max_lun parameter to 512.579 lpfc_max_lun parameter to 512.
Documentation/scsi/ChangeLog.megaraid_sas+22−0
@@ -1,3 +1,25 @@
1Release Date : Tues. Dec 14, 2010 17:00:00 PST 2010 -
2 (emaild-id:megaraidlinux@lsi.com)
3 Adam Radford
4Current Version : 00.00.05.29-rc1
5Old 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-------------------------------------------------------------------------------
11 Release Date : Thur. May 03, 2010 09:12:45 PST 2009 -231 Release Date : Thur. May 03, 2010 09:12:45 PST 2009 -
2 (emaild-id:megaraidlinux@lsi.com)24 (emaild-id:megaraidlinux@lsi.com)
3 Bo Yang25 Bo Yang
Documentation/serial/00-INDEX+2−0
@@ -14,6 +14,8 @@ riscom8.txt · 13 unmodified lines
14 - notes on using the RISCom/8 multi-port serial driver.14 - notes on using the RISCom/8 multi-port serial driver.
15rocket.txt15rocket.txt
16 - info on the Comtrol RocketPort multiport serial driver.16 - info on the Comtrol RocketPort multiport serial driver.
17serial-rs485.txt
18 - info about RS485 structures and support in the kernel.
17specialix.txt19specialix.txt
18 - info on hardware/driver for specialix IO8+ multiport serial card.20 - info on hardware/driver for specialix IO8+ multiport serial card.
19stallion.txt21stallion.txt
Documentation/serial/serial-rs485.txt+120−0
@@ -0,0 +1,120 @@
1 RS485 SERIAL COMMUNICATIONS
2
31. 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
122. 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
253. 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
774. 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
1185. 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
107 107
108dcd_change() - Report to the tty line the current DCD pin status108dcd_change() - Report to the tty line the current DCD pin status
109 changes and the relative timestamp. The timestamp109 changes and the relative timestamp. The timestamp
110 can be NULL.110 cannot be NULL.
111 111
112 112
113Driver Access113Driver 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
974 974
975 See hdspm.txt for details.975 See hdspm.txt for details.
976 976
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
984 Module snd-ice1712977 Module snd-ice1712
985 ------------------978 ------------------
986 979
@@ -1531,15 +1524,20 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. · 544 unmodified lines
1531 Module snd-oxygen1524 Module snd-oxygen
1532 -----------------1525 -----------------
1533 1526
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:
1535 * Asound A-87881528 * Asound A-8788
1529 * Asus Xonar DG
1536 * AuzenTech X-Meridian1530 * AuzenTech X-Meridian
1531 * AuzenTech X-Meridian 2G
1537 * Bgears b-Enspirer1532 * Bgears b-Enspirer
1538 * Club3D Theatron DTS1533 * Club3D Theatron DTS
1539 * HT-Omega Claro (plus)1534 * HT-Omega Claro (plus)
1540 * HT-Omega Claro halo (XT)1535 * HT-Omega Claro halo (XT)
1536 * Kuroutoshikou CMI8787-HG2PCI
1541 * Razer Barracuda AC-11537 * Razer Barracuda AC-1
1542 * Sondigo Inferno1538 * Sondigo Inferno
1539 * TempoTec HiFier Fantasia
1540 * TempoTec HiFier Serenade
1543 1541
1544 This module supports autoprobe and multiple cards.1542 This module supports autoprobe and multiple cards.
1545 1543
@@ -2006,9 +2004,9 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. · 460 unmodified lines
2006 Module snd-virtuoso2004 Module snd-virtuoso
2007 -------------------2005 -------------------
2008 2006
2009 Module for sound cards based on the Asus AV100/AV200 chips,2007 Module for sound cards based on the Asus AV66/AV100/AV200 chips,
2010 i.e., Xonar D1, DX, D2, D2X, DS, HDAV1.3 (Deluxe), Essence ST2008 i.e., Xonar D1, DX, D2, D2X, DS, Essence ST (Deluxe), Essence STX,
2011 (Deluxe) and Essence STX.2009 HDAV1.3 (Deluxe), and HDAV1.3 Slim.
2012 2010
2013 This module supports autoprobe and multiple cards.2011 This module supports autoprobe and multiple cards.
2014 2012
Documentation/sound/alsa/HD-Audio-Models.txt+1−1
@@ -149,7 +149,6 @@ ALC882/883/885/888/889 · 148 unmodified lines
149 acer-aspire-7730g Acer Aspire 7730G149 acer-aspire-7730g Acer Aspire 7730G
150 acer-aspire-8930g Acer Aspire 8930G150 acer-aspire-8930g Acer Aspire 8930G
151 medion Medion Laptops151 medion Medion Laptops
152 medion-md2 Medion MD2
153 targa-dig Targa/MSI152 targa-dig Targa/MSI
154 targa-2ch-dig Targa/MSI with 2-channel153 targa-2ch-dig Targa/MSI with 2-channel
155 targa-8ch-dig Targa/MSI with 8-channel (MSI GX620)154 targa-8ch-dig Targa/MSI with 8-channel (MSI GX620)
@@ -297,6 +296,7 @@ Conexant 5066 · 141 unmodified lines
297=============296=============
298 laptop Basic Laptop config (default)297 laptop Basic Laptop config (default)
299 hp-laptop HP laptops, e g G60298 hp-laptop HP laptops, e g G60
299 asus Asus K52JU, Lenovo G560
300 dell-laptop Dell laptops300 dell-laptop Dell laptops
301 dell-vostro Dell Vostro301 dell-vostro Dell Vostro
302 olpc-xo-1_5 OLPC XO 1.5302 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
27 27
281 - Codec DAI and PCM configuration281 - Codec DAI and PCM configuration
29-----------------------------------29-----------------------------------
30Each codec driver must have a struct snd_soc_codec_dai to define its DAI and30Each codec driver must have a struct snd_soc_dai_driver to define its DAI and
31PCM capabilities and operations. This struct is exported so that it can be31PCM capabilities and operations. This struct is exported so that it can be
32registered with the core by your machine driver.32registered with the core by your machine driver.
33 33
34e.g.34e.g.
35 35
36struct snd_soc_codec_dai wm8731_dai = {36static struct snd_soc_dai_ops wm8731_dai_ops = {
37 .name = "WM8731",37 .prepare = wm8731_pcm_prepare,
38 /* playback capabilities */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
45struct snd_soc_dai_driver wm8731_dai = {
46 .name = "wm8731-hifi",
39 .playback = {47 .playback = {
40 .stream_name = "Playback",48 .stream_name = "Playback",
41 .channels_min = 1,49 .channels_min = 1,
42 .channels_max = 2,50 .channels_max = 2,
43 .rates = WM8731_RATES,51 .rates = WM8731_RATES,
44 .formats = WM8731_FORMATS,},52 .formats = WM8731_FORMATS,},
45 /* capture capabilities */
46 .capture = {53 .capture = {
47 .stream_name = "Capture",54 .stream_name = "Capture",
48 .channels_min = 1,55 .channels_min = 1,
49 .channels_max = 2,56 .channels_max = 2,
50 .rates = WM8731_RATES,57 .rates = WM8731_RATES,
51 .formats = WM8731_FORMATS,},58 .formats = WM8731_FORMATS,},
52 /* pcm operations - see section 4 below */59 .ops = &wm8731_dai_ops,
53 .ops = {60 .symmetric_rates = 1,
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 }
64};61};
65EXPORT_SYMBOL_GPL(wm8731_dai);
66 62
67 63
682 - Codec control IO642 - Codec control IO
@@ -186,13 +182,14 @@ when the mute is applied or freed. · 117 unmodified lines
186 182
187i.e.183i.e.
188 184
189static int wm8974_mute(struct snd_soc_codec *codec,185static int wm8974_mute(struct snd_soc_dai *dai, int mute)
190 struct snd_soc_codec_dai *dai, int mute)
191{186{
192 u16 mute_reg = wm8974_read_reg_cache(codec, WM8974_DAC) & 0xffbf;187 struct snd_soc_codec *codec = dai->codec;
193 if(mute)188 u16 mute_reg = snd_soc_read(codec, WM8974_DAC) & 0xffbf;
194 wm8974_write(codec, WM8974_DAC, mute_reg | 0x40);189
190 if (mute)
191 snd_soc_write(codec, WM8974_DAC, mute_reg | 0x40);
195 else192 else
196 wm8974_write(codec, WM8974_DAC, mute_reg);193 snd_soc_write(codec, WM8974_DAC, mute_reg);
197 return 0;194 return 0;
198}195}
Documentation/sound/alsa/soc/machine.txt+9−29
@@ -12,6 +12,8 @@ the following struct:- · 11 unmodified lines
12struct snd_soc_card {12struct snd_soc_card {
13 char *name;13 char *name;
14 14
15 ...
16
15 int (*probe)(struct platform_device *pdev);17 int (*probe)(struct platform_device *pdev);
16 int (*remove)(struct platform_device *pdev);18 int (*remove)(struct platform_device *pdev);
17 19
@@ -22,12 +24,13 @@ struct snd_soc_card { · 4 unmodified lines
22 int (*resume_pre)(struct platform_device *pdev);24 int (*resume_pre)(struct platform_device *pdev);
23 int (*resume_post)(struct platform_device *pdev);25 int (*resume_post)(struct platform_device *pdev);
24 26
25 /* machine stream operations */27 ...
26 struct snd_soc_ops *ops;
27 28
28 /* CPU <--> Codec DAI links */29 /* CPU <--> Codec DAI links */
29 struct snd_soc_dai_link *dai_link;30 struct snd_soc_dai_link *dai_link;
30 int num_links;31 int num_links;
32
33 ...
31};34};
32 35
33probe()/remove()36probe()/remove()
@@ -42,11 +45,6 @@ of any machine audio tasks that have to be done before or after the codec, DAIs · 8 unmodified lines
42and DMA is suspended and resumed. Optional.45and DMA is suspended and resumed. Optional.
43 46
44 47
45Machine operations
46------------------
47The machine specific audio operations can be set here. Again this is optional.
48
49
50Machine DAI Configuration48Machine DAI Configuration
51-------------------------49-------------------------
52The machine DAI configuration glues all the codec and CPU DAIs together. It can50The 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
61static struct snd_soc_dai_link corgi_dai = {59static struct snd_soc_dai_link corgi_dai = {
62 .name = "WM8731",60 .name = "WM8731",
63 .stream_name = "WM8731",61 .stream_name = "WM8731",
64 .cpu_dai = &pxa_i2s_dai,62 .cpu_dai_name = "pxa-is2-dai",
65 .codec_dai = &wm8731_dai,63 .codec_dai_name = "wm8731-hifi",
64 .platform_name = "pxa-pcm-audio",
65 .codec_name = "wm8713-codec.0-001a",
66 .init = corgi_wm8731_init,66 .init = corgi_wm8731_init,
67 .ops = &corgi_ops,67 .ops = &corgi_ops,
68};68};
@@ -77,26 +77,6 @@ static struct snd_soc_card snd_soc_corgi = { · 8 unmodified lines
77};77};
78 78
79 79
80Machine Audio Subsystem
81-----------------------
82
83The machine soc device glues the platform, machine and codec driver together.
84Private data can also be set here. e.g.
85
86/* corgi audio private data */
87static struct wm8731_setup_data corgi_wm8731_setup = {
88 .i2c_address = 0x1b,
89};
90
91/* corgi audio subsystem */
92static 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
100Machine Power Map80Machine Power Map
101-----------------81-----------------
102 82
Documentation/sound/alsa/soc/platform.txt+10−2
@@ -20,9 +20,10 @@ struct snd_soc_ops { · 19 unmodified lines
20 int (*trigger)(struct snd_pcm_substream *, int);20 int (*trigger)(struct snd_pcm_substream *, int);
21};21};
22 22
23The platform driver exports its DMA functionality via struct snd_soc_platform:-23The platform driver exports its DMA functionality via struct
24snd_soc_platform_driver:-
24 25
25struct snd_soc_platform {26struct snd_soc_platform_driver {
26 char *name;27 char *name;
27 28
28 int (*probe)(struct platform_device *pdev);29 int (*probe)(struct platform_device *pdev);
@@ -34,6 +35,13 @@ struct snd_soc_platform { · 5 unmodified lines
34 int (*pcm_new)(struct snd_card *, struct snd_soc_codec_dai *, struct snd_pcm *);35 int (*pcm_new)(struct snd_card *, struct snd_soc_codec_dai *, struct snd_pcm *);
35 void (*pcm_free)(struct snd_pcm *);36 void (*pcm_free)(struct snd_pcm *);
36 37
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
37 /* platform stream ops */45 /* platform stream ops */
38 struct snd_pcm_ops *pcm_ops;46 struct snd_pcm_ops *pcm_ops;
39};47};
Documentation/spi/pxa2xx+2−2
@@ -19,7 +19,7 @@ Declaring PXA2xx Master Controllers · 18 unmodified lines
19-----------------------------------19-----------------------------------
20Typically a SPI master is defined in the arch/.../mach-*/board-*.c as a20Typically a SPI master is defined in the arch/.../mach-*/board-*.c as a
21"platform device". The master configuration is passed to the driver via a table21"platform device". The master configuration is passed to the driver via a table
22found in arch/arm/mach-pxa/include/mach/pxa2xx_spi.h:22found in include/linux/spi/pxa2xx_spi.h:
23 23
24struct pxa2xx_spi_master {24struct pxa2xx_spi_master {
25 enum pxa_ssp_type ssp_type;25 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
94 94
95Each slave device attached to the PXA must provide slave specific configuration95Each slave device attached to the PXA must provide slave specific configuration
96information via the structure "pxa2xx_spi_chip" found in96information via the structure "pxa2xx_spi_chip" found in
97"arch/arm/mach-pxa/include/mach/pxa2xx_spi.h". The pxa2xx_spi master controller driver97"include/linux/spi/pxa2xx_spi.h". The pxa2xx_spi master controller driver
98will uses the configuration whenever the driver communicates with the slave98will uses the configuration whenever the driver communicates with the slave
99device. All fields are optional.99device. All fields are optional.
100 100
Documentation/sysctl/00-INDEX+0−2
@@ -4,8 +4,6 @@ README · 3 unmodified lines
4 - general information about /proc/sys/ sysctl files.4 - general information about /proc/sys/ sysctl files.
5abi.txt5abi.txt
6 - documentation for /proc/sys/abi/*.6 - documentation for /proc/sys/abi/*.
7ctl_unnumbered.txt
8 - explanation of why one should not add new binary sysctl numbers.
9fs.txt7fs.txt
10 - documentation for /proc/sys/fs/*.8 - documentation for /proc/sys/fs/*.
11kernel.txt9kernel.txt
Documentation/sysctl/kernel.txt+15−1
@@ -34,6 +34,7 @@ show up in /proc/sys/kernel: · 33 unmodified lines
34- hotplug34- hotplug
35- java-appletviewer [ binfmt_java, obsolete ]35- java-appletviewer [ binfmt_java, obsolete ]
36- java-interpreter [ binfmt_java, obsolete ]36- java-interpreter [ binfmt_java, obsolete ]
37- kptr_restrict
37- kstack_depth_to_print [ X86 only ]38- kstack_depth_to_print [ X86 only ]
38- l2cr [ PPC only ]39- l2cr [ PPC only ]
39- modprobe ==> Documentation/debugging-modules.txt40- modprobe ==> Documentation/debugging-modules.txt
@@ -219,7 +220,7 @@ dmesg_restrict: · 179 unmodified lines
219This toggle indicates whether unprivileged users are prevented from using220This toggle indicates whether unprivileged users are prevented from using
220dmesg(8) to view messages from the kernel's log buffer. When221dmesg(8) to view messages from the kernel's log buffer. When
221dmesg_restrict is set to (0) there are no restrictions. When222dmesg_restrict is set to (0) there are no restrictions. When
222dmesg_restrict is set set to (1), users must have CAP_SYS_ADMIN to use223dmesg_restrict is set set to (1), users must have CAP_SYSLOG to use
223dmesg(8).224dmesg(8).
224 225
225The kernel config option CONFIG_SECURITY_DMESG_RESTRICT sets the default226The 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
261 262
262==============================================================263==============================================================
263 264
265kptr_restrict:
266
267This toggle indicates whether restrictions are placed on
268exposing kernel addresses via /proc and other interfaces. When
269kptr_restrict is set to (0), there are no restrictions. When
270kptr_restrict is set to (1), the default, kernel pointers
271printed using the %pK format specifier will be replaced with 0's
272unless the user has CAP_SYSLOG. When kptr_restrict is set to
273(2), kernel pointers printed using %pK will be replaced with 0's
274regardless of privileges.
275
276==============================================================
277
264kstack_depth_to_print: (X86 only)278kstack_depth_to_print: (X86 only)
265 279
266Controls the number of words to print when dumping the raw280Controls 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#
9import os, sys
10import subprocess as sub
11import string
12import re
13import optparse
14
15tcm_dir = ""
16
17fabric_ops = []
18fabric_mod_dir = ""
19fabric_mod_port = ""
20fabric_mod_init_port = ""
21
22def tcm_mod_err(msg):
23 print msg
24 sys.exit(1)
25
26def 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
38def 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
93def 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
146def 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
195def 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
209def 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
514def 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
549def 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
973def 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
995def 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
1019def 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
1028def 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
1037def 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
1077parser = optparse.OptionParser()
1078parser.add_option('-m', '--modulename', help='Module name', dest='modname',
1079 action='store', nargs=1, type='string')
1080parser.add_option('-p', '--protoident', help='Protocol Ident', dest='protoident',
1081 action='store', nargs=1, type='string')
1082
1083(opts, args) = parser.parse_args()
1084
1085mandatories = ['modname', 'protoident']
1086for m in mandatories:
1087 if not opts.__dict__[m]:
1088 print "mandatory option is missing\n"
1089 parser.print_help()
1090 exit(-1)
1091
1092if __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
3Greetings all,
4
5This document is intended to be a mini-HOWTO for using the tcm_mod_builder.py
6script to generate a brand new functional TCM v4 fabric .ko module of your very own,
7that once built can be immediately be loaded to start access the new TCM/ConfigFS
8fabric skeleton, by simply using:
9
10 modprobe $TCM_NEW_MOD
11 mkdir -p /sys/kernel/config/target/$TCM_NEW_MOD
12
13This 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
27tcm_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
30target:/mnt/sdb/lio-core-2.6.git/Documentation/target# python tcm_mod_builder.py -p iSCSI -m tcm_nab5000
31tcm_dir: /mnt/sdb/lio-core-2.6.git/Documentation/target/../../
32Set fabric_mod_name: tcm_nab5000
33Set fabric_mod_dir:
34/mnt/sdb/lio-core-2.6.git/Documentation/target/../../drivers/target/tcm_nab5000
35Using proto_ident: iSCSI
36Creating fabric_mod_dir:
37/mnt/sdb/lio-core-2.6.git/Documentation/target/../../drivers/target/tcm_nab5000
38Writing file:
39/mnt/sdb/lio-core-2.6.git/Documentation/target/../../drivers/target/tcm_nab5000/tcm_nab5000_base.h
40Using tcm_mod_scan_fabric_ops:
41/mnt/sdb/lio-core-2.6.git/Documentation/target/../../include/target/target_core_fabric_ops.h
42Writing file:
43/mnt/sdb/lio-core-2.6.git/Documentation/target/../../drivers/target/tcm_nab5000/tcm_nab5000_fabric.c
44Writing file:
45/mnt/sdb/lio-core-2.6.git/Documentation/target/../../drivers/target/tcm_nab5000/tcm_nab5000_fabric.h
46Writing file:
47/mnt/sdb/lio-core-2.6.git/Documentation/target/../../drivers/target/tcm_nab5000/tcm_nab5000_configfs.c
48Writing file:
49/mnt/sdb/lio-core-2.6.git/Documentation/target/../../drivers/target/tcm_nab5000/Kbuild
50Writing file:
51/mnt/sdb/lio-core-2.6.git/Documentation/target/../../drivers/target/tcm_nab5000/Kconfig
52Would you like to add tcm_nab5000to drivers/target/Kbuild..? [yes,no]: yes
53Would you like to add tcm_nab5000to drivers/target/Kconfig..? [yes,no]: yes
54
55At the end of tcm_mod_builder.py. the script will ask to add the following
56line to drivers/target/Kbuild:
57
58 obj-$(CONFIG_TCM_NAB5000) += tcm_nab5000/
59
60and 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
70target:/mnt/sdb/lio-core-2.6.git# ls -la drivers/target/tcm_nab5000/
71total 1348
72drwxr-xr-x 2 root root 4096 2010-10-05 03:23 .
73drwxr-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
96target:/mnt/sdb/lio-core-2.6.git# insmod drivers/target/tcm_nab5000.ko
97target:/mnt/sdb/lio-core-2.6.git# mkdir -p /sys/kernel/config/target/nab5000/iqn.foo/tpgt_1/lun/lun_0
98target:/mnt/sdb/lio-core-2.6.git# cd /sys/kernel/config/target/nab5000/iqn.foo/tpgt_1/lun/lun_0/
99target:/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
101target:/sys/kernel/config/target/nab5000/iqn.foo/tpgt_1/lun/lun_0# cd -
102target:/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
120target:/mnt/sdb/lio-core-2.6.git# lsmod
121Module Size Used by
122tcm_nab5000 3935 4
123iscsi_target_mod 193211 0
124target_core_stgt 8090 0
125target_core_pscsi 11122 1
126target_core_file 9172 2
127target_core_iblock 9280 1
128target_core_mod 228575 31
129tcm_nab5000,iscsi_target_mod,target_core_stgt,target_core_pscsi,target_core_file,target_core_iblock
130libfc 73681 0
131scsi_debug 56265 0
132scsi_tgt 8666 1 target_core_stgt
133configfs 20644 2 target_core_mod
134
135----------------------------------------------------------------------
136
137Future 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
144October 5th, 2010
145Nicholas 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
278 |---name: acpitz278 |---name: acpitz
279 |---temp1_input: 37000279 |---temp1_input: 37000
280 |---temp1_crit: 100000280 |---temp1_crit: 100000
281
2824. Event Notification
283
284The framework includes a simple notification mechanism, in the form of a
285netlink event. Netlink socket initialization is done during the _init_
286of the framework. Drivers which intend to use the notification mechanism
287just need to call generate_netlink_event() with two arguments viz
288(originator, event). Typically the originator will be an integer assigned
289to a thermal_zone_device when it registers itself with the framework. The
290event will be one of:{THERMAL_AUX0, THERMAL_AUX1, THERMAL_CRITICAL,
291THERMAL_DEV_FAULT}. Notification can be sent when the current temperature
292crosses 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
19 19
20- the pid of the task(process) which initialized the timer20- the pid of the task(process) which initialized the timer
21- the name of the process which initialized the timer21- the name of the process which initialized the timer
22- the function where the timer was intialized22- the function where the timer was initialized
23- the callback function which is associated to the timer23- the callback function which is associated to the timer
24- the number of events (callbacks)24- the number of events (callbacks)
25 25
Documentation/trace/events-power.txt+90−0
@@ -0,0 +1,90 @@
1
2 Subsystem Trace Points: power
3
4The power tracing system captures events related to power transitions
5within 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
12This document describes what each of the tracepoints is and why they
13might be useful.
14
15Cf. include/trace/events/power.h for the events definitions.
16
171. Power state switch events
18============================
19
201.1 New trace API
21-----------------
22
23A 'cpu' event class gathers the CPU-related events: cpuidle and
24cpufreq.
25
26cpu_idle "state=%lu cpu_id=%lu"
27cpu_frequency "state=%lu cpu_id=%lu"
28
29A suspend event is used to indicate the system going in and out of the
30suspend mode:
31
32machine_suspend "state=%lu"
33
34
35Note: the value of '-1' or '4294967295' for state means an exit from the current state,
36i.e. trace_cpu_idle(4, smp_processor_id()) means that the system
37enters the idle state 4, while trace_cpu_idle(PWR_EVENT_EXIT, smp_processor_id())
38means that the system exits the previous idle state.
39
40The event which has 'state=4294967295' in the trace is very important to the user
41space tools which are using it to detect the end of the current state, and so to
42correctly draw the states diagrams and to calculate accurate statistics etc.
43
441.2 DEPRECATED trace API
45------------------------
46
47A 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
49with the new trace API.
50The Kconfig option, the old trace API (in include/trace/events/power.h) and the
51old trace points will disappear in a future release (namely 2.6.41).
52
53power_start "type=%lu state=%lu cpu_id=%lu"
54power_frequency "type=%lu state=%lu cpu_id=%lu"
55power_end "cpu_id=%lu"
56
57The '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
62The 'state' parameter is set depending on the type:
63 . Target C-state for type=POWER_CSTATE,
64 . Target frequency for type=POWER_PSTATE,
65
66power_end is used to indicate the exit of a state, corresponding to the latest
67power_start event.
68
692. Clocks events
70================
71The clock events are used for clock enable/disable and for
72clock rate change.
73
74clock_enable "%s state=%lu cpu_id=%lu"
75clock_disable "%s state=%lu cpu_id=%lu"
76clock_set_rate "%s state=%lu cpu_id=%lu"
77
78The first parameter gives the clock name (e.g. "gpio1_iclk").
79The second parameter is '1' for enable, '0' for disable, the target
80clock rate for set_rate.
81
823. Power domains events
83=======================
84The power domain events are used for power domains transitions
85
86power_domain_target "%s state=%lu cpu_id=%lu"
87
88The first parameter gives the power domain name (e.g. "mpu_pwrdm").
89The 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
125For example, here's the information displayed for the 'sched_wakeup'125For example, here's the information displayed for the 'sched_wakeup'
126event:126event:
127 127
128# cat /debug/tracing/events/sched/sched_wakeup/format128# cat /sys/kernel/debug/tracing/events/sched/sched_wakeup/format
129 129
130name: sched_wakeup130name: sched_wakeup
131ID: 60131ID: 60
@@ -201,19 +201,19 @@ to the 'filter' file for the given event. · 69 unmodified lines
201 201
202For example:202For example:
203 203
204# cd /debug/tracing/events/sched/sched_wakeup204# cd /sys/kernel/debug/tracing/events/sched/sched_wakeup
205# echo "common_preempt_count > 4" > filter205# echo "common_preempt_count > 4" > filter
206 206
207A slightly more involved example:207A slightly more involved example:
208 208
209# cd /debug/tracing/events/sched/sched_signal_send209# cd /sys/kernel/debug/tracing/events/signal/signal_generate
210# echo "((sig >= 10 && sig < 15) || sig == 17) && comm != bash" > filter210# echo "((sig >= 10 && sig < 15) || sig == 17) && comm != bash" > filter
211 211
212If there is an error in the expression, you'll get an 'Invalid212If there is an error in the expression, you'll get an 'Invalid
213argument' error when setting it, and the erroneous string along with213argument' error when setting it, and the erroneous string along with
214an error message can be seen by looking at the filter e.g.:214an error message can be seen by looking at the filter e.g.:
215 215
216# cd /debug/tracing/events/sched/sched_signal_send216# cd /sys/kernel/debug/tracing/events/signal/signal_generate
217# echo "((sig >= 10 && sig < 15) || dsig == 17) && comm != bash" > filter217# echo "((sig >= 10 && sig < 15) || dsig == 17) && comm != bash" > filter
218-bash: echo: write error: Invalid argument218-bash: echo: write error: Invalid argument
219# cat filter219# cat filter
Documentation/usb/power-management.txt+58−55
@@ -2,7 +2,7 @@ · 1 unmodified line
2 2
3 Alan Stern <stern@rowland.harvard.edu>3 Alan Stern <stern@rowland.harvard.edu>
4 4
5 December 11, 20095 October 28, 2010
6 6
7 7
8 8
@@ -107,9 +107,14 @@ allowed to issue dynamic suspends. · 98 unmodified lines
107The user interface for controlling dynamic PM is located in the power/107The user interface for controlling dynamic PM is located in the power/
108subdirectory of each USB device's sysfs directory, that is, in108subdirectory of each USB device's sysfs directory, that is, in
109/sys/bus/usb/devices/.../power/ where "..." is the device's ID. The109/sys/bus/usb/devices/.../power/ where "..." is the device's ID. The
110relevant attribute files are: wakeup, control, and autosuspend.110relevant attribute files are: wakeup, control, and
111(There may also be a file named "level"; this file was deprecated111autosuspend_delay_ms. (There may also be a file named "level"; this
112as of the 2.6.35 kernel and replaced by the "control" file.)112file 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
114and replaced by the "autosuspend_delay_ms" file. The only difference
115is that the newer file expresses the delay in milliseconds whereas the
116older file uses seconds. Confusingly, both files are present in 2.6.37
117but only "autosuspend" works.)
113 118
114 power/wakeup119 power/wakeup
115 120
@@ -140,33 +145,36 @@ as of the 2.6.35 kernel and replaced by the "control" file.) · 24 unmodified lines
140 suspended and autoresume was not allowed. This145 suspended and autoresume was not allowed. This
141 setting is no longer supported.)146 setting is no longer supported.)
142 147
143 power/autosuspend148 power/autosuspend_delay_ms
144 149
145 This file contains an integer value, which is the150 This file contains an integer value, which is the
146 number of seconds the device should remain idle before151 number of milliseconds the device should remain idle
147 the kernel will autosuspend it (the idle-delay time).152 before the kernel will autosuspend it (the idle-delay
148 The default is 2. 0 means to autosuspend as soon as153 time). The default is 2000. 0 means to autosuspend
149 the device becomes idle, and negative values mean154 as soon as the device becomes idle, and negative
150 never to autosuspend. You can write a number to the155 values mean never to autosuspend. You can write a
151 file to change the autosuspend idle-delay time.156 number to the file to change the autosuspend
152 157 idle-delay time.
153Writing "-1" to power/autosuspend and writing "on" to power/control do158
154essentially the same thing -- they both prevent the device from being159Writing "-1" to power/autosuspend_delay_ms and writing "on" to
155autosuspended. Yes, this is a redundancy in the API.160power/control do essentially the same thing -- they both prevent the
161device from being autosuspended. Yes, this is a redundancy in the
162API.
156 163
157(In 2.6.21 writing "0" to power/autosuspend would prevent the device164(In 2.6.21 writing "0" to power/autosuspend would prevent the device
158from being autosuspended; the behavior was changed in 2.6.22. The165from being autosuspended; the behavior was changed in 2.6.22. The
159power/autosuspend attribute did not exist prior to 2.6.21, and the166power/autosuspend attribute did not exist prior to 2.6.21, and the
160power/level attribute did not exist prior to 2.6.22. power/control167power/level attribute did not exist prior to 2.6.22. power/control
161was added in 2.6.34.)168was added in 2.6.34, and power/autosuspend_delay_ms was added in
1692.6.37 but did not become functional until 2.6.38.)
162 170
163 171
164 Changing the default idle-delay time172 Changing the default idle-delay time
165 ------------------------------------173 ------------------------------------
166 174
167The default autosuspend idle-delay time is controlled by a module175The default autosuspend idle-delay time (in seconds) is controlled by
168parameter in usbcore. You can specify the value when usbcore is176a module parameter in usbcore. You can specify the value when usbcore
169loaded. For example, to set it to 5 seconds instead of 2 you would177is loaded. For example, to set it to 5 seconds instead of 2 you would
170do:178do:
171 179
172 modprobe usbcore autosuspend=5180 modprobe usbcore autosuspend=5
@@ -234,25 +242,23 @@ every device. · 61 unmodified lines
234 242
235If a driver knows that its device has proper suspend/resume support,243If a driver knows that its device has proper suspend/resume support,
236it can enable autosuspend all by itself. For example, the video244it can enable autosuspend all by itself. For example, the video
237driver for a laptop's webcam might do this, since these devices are245driver for a laptop's webcam might do this (in recent kernels they
238rarely used and so should normally be autosuspended.246do), since these devices are rarely used and so should normally be
247autosuspended.
239 248
240Sometimes it turns out that even when a device does work okay with249Sometimes it turns out that even when a device does work okay with
241autosuspend there are still problems. For example, there are250autosuspend there are still problems. For example, the usbhid driver,
242experimental patches adding autosuspend support to the usbhid driver,251which manages keyboards and mice, has autosuspend support. Tests with
243which manages keyboards and mice, among other things. Tests with a252a number of keyboards show that typing on a suspended keyboard, while
244number of keyboards showed that typing on a suspended keyboard, while253causing the keyboard to do a remote wakeup all right, will nonetheless
245causing the keyboard to do a remote wakeup all right, would254frequently result in lost keystrokes. Tests with mice show that some
246nonetheless frequently result in lost keystrokes. Tests with mice255of them will issue a remote-wakeup request in response to button
247showed that some of them would issue a remote-wakeup request in256presses but not to motion, and some in response to neither.
248response to button presses but not to motion, and some in response to
249neither.
250 257
251The kernel will not prevent you from enabling autosuspend on devices258The kernel will not prevent you from enabling autosuspend on devices
252that can't handle it. It is even possible in theory to damage a259that can't handle it. It is even possible in theory to damage a
253device by suspending it at the wrong time -- for example, suspending a260device by suspending it at the wrong time. (Highly unlikely, but
254USB hard disk might cause it to spin down without parking the heads.261possible.) Take care.
255(Highly unlikely, but possible.) Take care.
256 262
257 263
258 The driver interface for Power Management264 The driver interface for Power Management
@@ -336,10 +342,6 @@ autosuspend the interface's device. When the usage counter is = 0 · 77 unmodified lines
336then the interface is considered to be idle, and the kernel may342then the interface is considered to be idle, and the kernel may
337autosuspend the device.343autosuspend the device.
338 344
339(There is a similar usage counter field in struct usb_device,
340associated with the device itself rather than any of its interfaces.
341This counter is used only by the USB core.)
342
343Drivers need not be concerned about balancing changes to the usage345Drivers need not be concerned about balancing changes to the usage
344counter; the USB core will undo any remaining "get"s when a driver346counter; the USB core will undo any remaining "get"s when a driver
345is unbound from its interface. As a corollary, drivers must not call347is 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
409autosuspending a keyboard if the user can't cause the keyboard to do a411autosuspending a keyboard if the user can't cause the keyboard to do a
410remote wakeup by typing on it. If the driver sets412remote wakeup by typing on it. If the driver sets
411intf->needs_remote_wakeup to 1, the kernel won't autosuspend the413intf->needs_remote_wakeup to 1, the kernel won't autosuspend the
412device if remote wakeup isn't available or has been disabled through414device if remote wakeup isn't available. (If the device is already
413the power/wakeup attribute. (If the device is already autosuspended,415autosuspended, though, setting this flag won't cause the kernel to
414though, setting this flag won't cause the kernel to autoresume it.416autoresume it. Normally a driver would set this flag in its probe
415Normally a driver would set this flag in its probe method, at which417method, at which time the device is guaranteed not to be
416time the device is guaranteed not to be autosuspended.)418autosuspended.)
417 419
418If a driver does its I/O asynchronously in interrupt context, it420If a driver does its I/O asynchronously in interrupt context, it
419should call usb_autopm_get_interface_async() before starting output and421should 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
422 424
423 usb_mark_last_busy(struct usb_device *udev);425 usb_mark_last_busy(struct usb_device *udev);
424 426
425in the event handler. This sets udev->last_busy to the current time.427in the event handler. This tells the PM core that the device was just
426udev->last_busy is the field used for idle-delay calculations;428busy and therefore the next autosuspend idle-delay expiration should
427updating it will cause any pending autosuspend to be moved back. Most429be pushed back. Many of the usb_autopm_* routines also make this call,
428of the usb_autopm_* routines will also set the last_busy field to the430so drivers need to worry only when interrupt-driven input arrives.
429current time.
430 431
431Asynchronous operation is always subject to races. For example, a432Asynchronous operation is always subject to races. For example, a
432driver may call one of the usb_autopm_*_interface_async() routines at433driver may call the usb_autopm_get_interface_async() routine at a time
433a time when the core has just finished deciding the device has been434when the core has just finished deciding the device has been idle for
434idle for long enough but not yet gotten around to calling the driver's435long enough but not yet gotten around to calling the driver's suspend
435suspend method. The suspend method must be responsible for436method. The suspend method must be responsible for synchronizing with
436synchronizing with the output request routine and the URB completion437the I/O request routine and the URB completion handler; it should
437handler; it should cause autosuspends to fail with -EBUSY if the438cause autosuspends to fail with -EBUSY if the driver needs to use the
438driver needs to use the device.439device.
439 440
440External suspend calls should never be allowed to fail in this way,441External suspend calls should never be allowed to fail in this way,
441only autosuspend calls. The driver can tell them apart by checking442only 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
472occurs. Since system suspends are supposed to be as transparent as473occurs. Since system suspends are supposed to be as transparent as
473possible, the device should remain suspended following the system474possible, the device should remain suspended following the system
474resume. But this theory may not work out well in practice; over time475resume. But this theory may not work out well in practice; over time
475the kernel's behavior in this regard has changed.476the kernel's behavior in this regard has changed. As of 2.6.37 the
477policy is to resume all devices during a system resume and let them
478handle their own runtime suspends afterward.
476 479
477Secondly, a dynamic power-management event may occur as a system480Secondly, a dynamic power-management event may occur as a system
478suspend is underway. The window for this is short, since system481suspend is underway. The window for this is short, since system
Documentation/video4linux/CARDLIST.em28xx+3−3
@@ -1,5 +1,5 @@
1 0 -> Unknown EM2800 video grabber (em2800) [eb1a:2800]1 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]
3 2 -> Terratec Cinergy 250 USB (em2820/em2840) [0ccd:0036]3 2 -> Terratec Cinergy 250 USB (em2820/em2840) [0ccd:0036]
4 3 -> Pinnacle PCTV USB 2 (em2820/em2840) [2304:0208]4 3 -> Pinnacle PCTV USB 2 (em2820/em2840) [2304:0208]
5 4 -> Hauppauge WinTV USB 2 (em2820/em2840) [2040:4200,2040:4201]5 4 -> Hauppauge WinTV USB 2 (em2820/em2840) [2040:4200,2040:4201]
@@ -9,7 +9,7 @@ · 3 unmodified lines
9 8 -> Kworld USB2800 (em2800)9 8 -> Kworld USB2800 (em2800)
10 9 -> Pinnacle Dazzle DVC 90/100/101/107 / Kaiser Baas Video to DVD maker (em2820/em2840) [1b80:e302,1b80:e304,2304:0207,2304:021a]10 9 -> Pinnacle Dazzle DVC 90/100/101/107 / Kaiser Baas Video to DVD maker (em2820/em2840) [1b80:e302,1b80:e304,2304:0207,2304:021a]
11 10 -> Hauppauge WinTV HVR 900 (em2880) [2040:6500]11 10 -> Hauppauge WinTV HVR 900 (em2880) [2040:6500]
12 11 -> Terratec Hybrid XS (em2880) [0ccd:0042]12 11 -> Terratec Hybrid XS (em2880)
13 12 -> Kworld PVR TV 2800 RF (em2820/em2840)13 12 -> Kworld PVR TV 2800 RF (em2820/em2840)
14 13 -> Terratec Prodigy XS (em2880) [0ccd:0047]14 13 -> Terratec Prodigy XS (em2880) [0ccd:0047]
15 14 -> SIIG AVTuner-PVR / Pixelview Prolink PlayTV USB 2.0 (em2820/em2840)15 14 -> SIIG AVTuner-PVR / Pixelview Prolink PlayTV USB 2.0 (em2820/em2840)
@@ -53,7 +53,7 @@ · 37 unmodified lines
53 52 -> DNT DA2 Hybrid (em2881)53 52 -> DNT DA2 Hybrid (em2881)
54 53 -> Pinnacle Hybrid Pro (em2881)54 53 -> Pinnacle Hybrid Pro (em2881)
55 54 -> Kworld VS-DVB-T 323UR (em2882) [eb1a:e323]55 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]
57 56 -> Pinnacle Hybrid Pro (2) (em2882) [2304:0226]57 56 -> Pinnacle Hybrid Pro (2) (em2882) [2304:0226]
58 57 -> Kworld PlusTV HD Hybrid 330 (em2883) [eb1a:a316]58 57 -> Kworld PlusTV HD Hybrid 330 (em2883) [eb1a:a316]
59 58 -> Compro VideoMate ForYou/Stereo (em2820/em2840) [185b:2041]59 58 -> Compro VideoMate ForYou/Stereo (em2820/em2840) [185b:2041]
Documentation/video4linux/CARDLIST.saa7134+2−0
@@ -180,3 +180,5 @@ · 179 unmodified lines
180179 -> Beholder BeholdTV A7 [5ace:7090]180179 -> Beholder BeholdTV A7 [5ace:7090]
181180 -> Avermedia PCI M733A [1461:4155,1461:4255]181180 -> Avermedia PCI M733A [1461:4155,1461:4255]
182181 -> TechoTrend TT-budget T-3000 [13c2:2804]182181 -> TechoTrend TT-budget T-3000 [13c2:2804]
183182 -> Kworld PCI SBTVD/ISDB-T Full-Seg Hybrid [17de:b136]
184183 -> 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.
2obj- := dummy.o
3
4# List of programs to build
5hostprogs-y := v4lgrab
6
7# Tell kbuild to always build the programs
8always := $(hostprogs-y)
Documentation/video4linux/README.cpia+0−191
@@ -1,191 +0,0 @@
1This is a driver for the CPiA PPC2 driven parallel connected
2Camera. For example the Creative WebcamII is CPiA driven.
3
4 ) [1]Peter Pregler, Linz 2000, published under the [2]GNU GPL
5
6---------------------------------------------------------------------------
7
8USAGE:
9
10General:
11========
12
131) 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
18cd /dev
19mknod video0 c 81 0
20ln -s video0 video
21
222) Compile the kernel (see below for the list of options to use),
23 configure your parport and reboot.
24
253) If all worked well you should get messages similar
26 to the following (your versions may be different) on the console:
27
28V4L-Driver for Vision CPiA based cameras v0.7.4
29parport0: read2 timeout.
30parport0: Multimedia device, VLSI Vision Ltd PPC2
31Parallel 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
38As modules:
39===========
40
41Make sure you have selected the following kernel options (you can
42select all stuff as modules):
43
44The cpia-stuff is in the section 'Character devices -> Video For Linux'.
45
46CONFIG_PARPORT=m
47CONFIG_PARPORT_PC=m
48CONFIG_PARPORT_PC_FIFO=y
49CONFIG_PARPORT_1284=y
50CONFIG_VIDEO_DEV=m
51CONFIG_VIDEO_CPIA=m
52CONFIG_VIDEO_CPIA_PP=m
53
54For autoloading of all those modules you need to tell module-init-tools
55some 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
57stuff):
58
59options parport_pc io=0x378 irq=7 dma=3
60alias char-major-81 cpia_pp
61
62The first line tells the dma/irq channels to use. Those _must_ match
63the settings of your BIOS. Do NOT simply use the values above. See
64Documentation/parport.txt for more information about this. The second
65line associates the video-device file with the driver. Of cause you
66can also load the modules once upon boot (usually done in /etc/modules).
67
68Linked into the kernel:
69=======================
70
71Make sure you have selected the following kernel options. Note that
72you cannot compile the parport-stuff as modules and the cpia-driver
73statically (the other way round is okay though).
74
75The cpia-stuff is in the section 'Character devices -> Video For Linux'.
76
77CONFIG_PARPORT=y
78CONFIG_PARPORT_PC=y
79CONFIG_PARPORT_PC_FIFO=y
80CONFIG_PARPORT_1284=y
81CONFIG_VIDEO_DEV=y
82CONFIG_VIDEO_CPIA=y
83CONFIG_VIDEO_CPIA_PP=y
84
85To use DMA/irq you will need to tell the kernel upon boot time the
86hardware configuration of the parport. You can give the boot-parameter
87at the LILO-prompt or specify it in lilo.conf. I use the following
88append-line in lilo.conf:
89
90 append="parport=0x378,7,3"
91
92See Documentation/parport.txt for more information about the
93configuration of the parport and the values given above. Do not simply
94use the values given above.
95
96---------------------------------------------------------------------------
97FEATURES:
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---------------------------------------------------------------------------
115TESTED 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
129See [3] for pointers to v4l-applications.
130
131---------------------------------------------------------------------------
132KNOWN 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---------------------------------------------------------------------------
148TODO:
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---------------------------------------------------------------------------
158IMPLEMENTATION NOTES:
159
160The camera can act in two modes, streaming or grabbing. Right now a
161polling grab-scheme is used. Maybe interrupt driven streaming will be
162used for a asynchronous mmap interface in the next major release of the
163driver. This might give a better frame rate.
164
165---------------------------------------------------------------------------
166THANKS (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---------------------------------------------------------------------------
186REFERENCES
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
322 322
3234. Programming interface3234. Programming interface
324 324
325This driver conforms to video4linux and video4linux2, both can be used to325This driver conforms to video4linux2. Support for V4L1 and for the custom
326use the driver. Since video4linux didn't provide adequate calls to fully326zoran ioctls has been removed in kernel 2.6.38.
327use the cards' features, we've introduced several programming extensions,
328which are currently officially accepted in the 2.4.x branch of the kernel.
329These extensions are known as the v4l/mjpeg extensions. See zoran.h for
330details (structs/ioctls).
331
332Information - video4linux:
333http://linux.bytesex.org/v4l2/API.html
334Documentation/video4linux/API.html
335/usr/include/linux/videodev.h
336
337Information - video4linux/mjpeg extensions:
338./zoran.h
339(also see below)
340
341Information - video4linux2:
342http://linuxtv.org
343http://v4l2spec.bytesex.org/
344/usr/include/linux/videodev2.h
345
346More information on the video4linux/mjpeg extensions, by Serguei
347Miridonovi and Rainer Johanni:
348--
349The ioctls for that interface are as follows:
350
351BUZIOC_G_PARAMS
352BUZIOC_S_PARAMS
353
354Get and set the parameters of the buz. The user should always do a
355BUZIOC_G_PARAMS (with a struct buz_params) to obtain the default
356settings, change what he likes and then make a BUZIOC_S_PARAMS call.
357
358BUZIOC_REQBUFS
359
360Before being able to capture/playback, the user has to request
361the buffers he is wanting to use. Fill the structure
362zoran_requestbuffers with the size (recommended: 256*1024) and
363the number (recommended 32 up to 256). There are no such restrictions
364as for the Video for Linux buffers, you should LEAVE SUFFICIENT
365MEMORY for your system however, else strange things will happen ....
366On return, the zoran_requestbuffers structure contains number and
367size of the actually allocated buffers.
368You should use these numbers for doing a mmap of the buffers
369into the user space.
370The BUZIOC_REQBUFS ioctl also makes it happen, that the next mmap
371maps the MJPEG buffer instead of the V4L buffers.
372
373BUZIOC_QBUF_CAPT
374BUZIOC_QBUF_PLAY
375
376Queue a buffer for capture or playback. The first call also starts
377streaming capture. When streaming capture is going on, you may
378only queue further buffers or issue syncs until streaming
379capture is switched off again with a argument of -1 to
380a BUZIOC_QBUF_CAPT/BUZIOC_QBUF_PLAY ioctl.
381
382BUZIOC_SYNC
383
384Issue this ioctl when all buffers are queued. This ioctl will
385block until the first buffer becomes free for saving its
386data to disk (after BUZIOC_QBUF_CAPT) or for reuse (after BUZIOC_QBUF_PLAY).
387
388BUZIOC_G_STATUS
389
390Get the status of the input lines (video source connected/norm).
391 327
392For programming example, please, look at lavrec.c and lavplay.c code in328For programming example, please, look at lavrec.c and lavplay.c code in
393lavtools-1.2p2 package (URL: http://www.cicese.mx/)329the MJPEG-tools (http://mjpeg.sf.net/).
394and the 'examples' directory in the original Buz driver distribution.
395 330
396Additional notes for software developers:331Additional notes for software developers:
397 332
@@ -402,9 +337,6 @@ Additional notes for software developers: · 4 unmodified lines
402 standard is "more constant" for current country than geometry337 standard is "more constant" for current country than geometry
403 settings of a variety of TV capture cards which may work in ITU or338 settings of a variety of TV capture cards which may work in ITU or
404 square pixel format.339 square pixel format.
405--
406Please note that lavplay/lavrec are also included in the MJPEG-tools
407(http://mjpeg.sf.net/).
408 340
409===========================341===========================
410 342
Documentation/video4linux/bttv/Cards+0−4
@@ -464,10 +464,6 @@ Siemens · 463 unmodified lines
464-------464-------
465 Multimedia eXtension Board (MXB) (SAA7146, SAA7111)465 Multimedia eXtension Board (MXB) (SAA7146, SAA7111)
466 466
467Stradis
468-------
469 SDM275,SDM250,SDM026,SDM025 (SAA7146, IBMMPEG2): MPEG2 decoder only
470
471Powercolor467Powercolor
472----------468----------
473 MTV878469 MTV878
Documentation/video4linux/gspca.txt+1−0
@@ -366,6 +366,7 @@ t613 17a1:0128 TASCORP JPEG Webcam, NGS Cyclops · 365 unmodified lines
366vc032x 17ef:4802 Lenovo Vc0323+MI1310_SOC366vc032x 17ef:4802 Lenovo Vc0323+MI1310_SOC
367pac207 2001:f115 D-Link DSB-C120367pac207 2001:f115 D-Link DSB-C120
368sq905c 2770:9050 Disney pix micro (CIF)368sq905c 2770:9050 Disney pix micro (CIF)
369sq905c 2770:9051 Lego Bionicle
369sq905c 2770:9052 Disney pix micro 2 (VGA)370sq905c 2770:9052 Disney pix micro 2 (VGA)
370sq905c 2770:905c All 11 known cameras with this ID371sq905c 2770:905c All 11 known cameras with this ID
371sq905 2770:9120 All 24 known cameras with this ID372sq905 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
45module or meye.<param>=<value> on the kernel boot line when meye is45module or meye.<param>=<value> on the kernel boot line when meye is
46statically linked into the kernel). Those options are:46statically linked into the kernel). Those options are:
47 47
48 forcev4l1: force use of V4L1 API instead of V4L2
49
50 gbuffers: number of capture buffers, default is 2 (32 max)48 gbuffers: number of capture buffers, default is 2 (32 max)
51 49
52 gbufsize: size of each capture buffer, default is 61440050 gbufsize: size of each capture buffer, default is 614400
@@ -79,9 +77,8 @@ Usage: · 26 unmodified lines
79Private API:77Private API:
80------------78------------
81 79
82 The driver supports frame grabbing with the video4linux API80 The driver supports frame grabbing with the video4linux API,
83 (either v4l1 or v4l2), so all video4linux tools (like xawtv)81 so all video4linux tools (like xawtv) should work with this driver.
84 should work with this driver.
85 82
86 Besides the video4linux interface, the driver has a private interface83 Besides the video4linux interface, the driver has a private interface
87 for accessing the Motion Eye extended parameters (camera sharpness,84 for accessing the Motion Eye extended parameters (camera sharpness,
@@ -123,7 +120,4 @@ Private API: · 35 unmodified lines
123Bugs / Todo:120Bugs / Todo:
124------------121------------
125 122
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
129 - 'motioneye' still uses the meye private v4l1 API extensions.123 - '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
285The 'new value' union is not used in g_volatile_ctrl. In general controls285The 'new value' union is not used in g_volatile_ctrl. In general controls
286that need to implement g_volatile_ctrl are read-only controls.286that need to implement g_volatile_ctrl are read-only controls.
287 287
288Note that if one or more controls in a control cluster are marked as volatile,
289then all the controls in the cluster are seen as volatile.
290
288To mark a control as volatile you have to set the is_volatile flag:291To mark a control as volatile you have to set the is_volatile flag:
289 292
290 ctrl = v4l2_ctrl_new_std(&sd->ctrl_handler, ...);293 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
462Obviously, all controls in the cluster array must be initialized to either465Obviously, all controls in the cluster array must be initialized to either
463a valid control or to NULL.466a valid control or to NULL.
464 467
468In rare cases you might want to know which controls of a cluster actually
469were set explicitly by the user. For this you can check the 'is_new' flag of
470each control. For example, in the case of a volume/mute cluster the 'is_new'
471flag of the mute control would be set if the user called VIDIOC_S_CTRL for
472mute only. If the user would call VIDIOC_S_EXT_CTRLS for both mute and volume
473controls, then the 'is_new' flag would be 1 for both controls.
474
475The 'is_new' flag is always 1 when called from v4l2_ctrl_handler_setup().
476
465 477
466VIDIOC_LOG_STATUS Support478VIDIOC_LOG_STATUS Support
467=========================479=========================
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
92static 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
100int 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
247 int nonblocking);247 int nonblocking);
248 int videobuf_streamon(struct videobuf_queue *q);248 int videobuf_streamon(struct videobuf_queue *q);
249 int videobuf_streamoff(struct videobuf_queue *q);249 int videobuf_streamoff(struct videobuf_queue *q);
250 int videobuf_cgmbuf(struct videobuf_queue *q, struct video_mbuf *mbuf,
251 int count);
252 250
253So, for example, a VIDIOC_REQBUFS call turns into a call to the driver's251So, for example, a VIDIOC_REQBUFS call turns into a call to the driver's
254vidioc_reqbufs() callback which, in turn, usually only needs to locate the252vidioc_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
258 256
259The vidioc_streamon() and vidioc_streamoff() functions will be a bit more257The vidioc_streamon() and vidioc_streamoff() functions will be a bit more
260complex, of course, since they will also need to deal with starting and258complex, of course, since they will also need to deal with starting and
261stopping the capture engine. videobuf_cgmbuf(), called from the driver's259stopping the capture engine.
262vidiocgmbuf() function, only exists if the V4L1 compatibility module has
263been selected with CONFIG_VIDEO_V4L1_COMPAT, so its use must be surrounded
264with #ifdef directives.
265 260
266Buffer allocation261Buffer allocation
267 262
Documentation/vm/Makefile+1−1
@@ -2,7 +2,7 @@ · 1 unmodified line
2obj- := dummy.o2obj- := dummy.o
3 3
4# List of programs to build4# List of programs to build
5hostprogs-y := slabinfo page-types hugepage-mmap hugepage-shm map_hugetlb5hostprogs-y := page-types hugepage-mmap hugepage-shm map_hugetlb
6 6
7# Tell kbuild to always build the programs7# Tell kbuild to always build the programs
8always := $(hostprogs-y)8always := $(hostprogs-y)
Documentation/vm/transhuge.txt+298−0
@@ -0,0 +1,298 @@
1= Transparent Hugepage Support =
2
3== Objective ==
4
5Performance critical computing applications dealing with large memory
6working sets are already running on top of libhugetlbfs and in turn
7hugetlbfs. Transparent Hugepage Support is an alternative means of
8using huge pages for the backing of virtual memory with huge pages
9that supports the automatic promotion and demotion of page sizes and
10without the shortcomings of hugetlbfs.
11
12Currently it only works for anonymous memory mappings but in the
13future it can expand over the pagecache layer starting with tmpfs.
14
15The reason applications are running faster is because of two
16factors. The first factor is almost completely irrelevant and it's not
17of significant interest because it'll also have the downside of
18requiring larger clear-page copy-page in page faults which is a
19potentially negative effect. The first factor consists in taking a
20single page fault for each 2M virtual region touched by userland (so
21reducing the enter/exit kernel frequency by a 512 times factor). This
22only matters the first time the memory is accessed for the lifetime of
23a memory mapping. The second long lasting and much more important
24factor will affect all subsequent accesses to the memory for the whole
25runtime of the application. The second factor consist of two
26components: 1) the TLB miss will run faster (especially with
27virtualization using nested pagetables but almost always also on bare
28metal without virtualization) and 2) a single TLB entry will be
29mapping a much larger amount of virtual memory in turn reducing the
30number of TLB misses. With virtualization and nested pagetables the
31TLB can be mapped of larger size only if both KVM and the Linux guest
32are using hugepages but a significant speedup already happens if only
33one of the two is using hugepages just because of the fact the TLB
34miss 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
64Transparent Hugepage Support maximizes the usefulness of free memory
65if compared to the reservation approach of hugetlbfs by allowing all
66unused memory to be used as cache or other movable (or even unmovable
67entities). It doesn't require reservation to prevent hugepage
68allocation failures to be noticeable from userland. It allows paging
69and all other advanced VM features to be available on the
70hugepages. It requires no modifications for applications to take
71advantage of it.
72
73Applications however can be further optimized to take advantage of
74this feature, like for example they've been optimized before to avoid
75a flood of mmap system calls for every malloc(4k). Optimizing userland
76is by far not mandatory and khugepaged already can take care of long
77lived page allocations even for hugepage unaware applications that
78deals with large amounts of memory.
79
80In certain cases when hugepages are enabled system wide, application
81may end up allocating more memory resources. An application may mmap a
82large region but only touch 1 byte of it, in that case a 2M page might
83be allocated instead of a 4k page for no good. This is why it's
84possible to disable hugepages system-wide and to only have them inside
85MADV_HUGEPAGE madvise regions.
86
87Embedded systems should enable hugepages only inside madvise regions
88to eliminate any risk of wasting any precious byte of memory and to
89only run faster.
90
91Applications that gets a lot of benefit from hugepages and that don't
92risk to lose memory by using hugepages, should use
93madvise(MADV_HUGEPAGE) on their critical mmapped regions.
94
95== sysfs ==
96
97Transparent Hugepage Support can be entirely disabled (mostly for
98debugging purposes) or only enabled inside MADV_HUGEPAGE regions (to
99avoid the risk of consuming more memory resources) or enabled system
100wide. This can be achieved with one of:
101
102echo always >/sys/kernel/mm/transparent_hugepage/enabled
103echo madvise >/sys/kernel/mm/transparent_hugepage/enabled
104echo never >/sys/kernel/mm/transparent_hugepage/enabled
105
106It's also possible to limit defrag efforts in the VM to generate
107hugepages in case they're not immediately free to madvise regions or
108to never try to defrag memory and simply fallback to regular pages
109unless hugepages are immediately available. Clearly if we spend CPU
110time to defrag memory, we would expect to gain even more by the fact
111we use hugepages later instead of regular pages. This isn't always
112guaranteed, but it may be more likely in case the allocation is for a
113MADV_HUGEPAGE region.
114
115echo always >/sys/kernel/mm/transparent_hugepage/defrag
116echo madvise >/sys/kernel/mm/transparent_hugepage/defrag
117echo never >/sys/kernel/mm/transparent_hugepage/defrag
118
119khugepaged will be automatically started when
120transparent_hugepage/enabled is set to "always" or "madvise, and it'll
121be automatically shutdown if it's set to "never".
122
123khugepaged runs usually at low frequency so while one may not want to
124invoke defrag algorithms synchronously during the page faults, it
125should be worth invoking defrag at least in khugepaged. However it's
126also possible to disable defrag in khugepaged:
127
128echo yes >/sys/kernel/mm/transparent_hugepage/khugepaged/defrag
129echo no >/sys/kernel/mm/transparent_hugepage/khugepaged/defrag
130
131You can also control how many pages khugepaged should scan at each
132pass:
133
134/sys/kernel/mm/transparent_hugepage/khugepaged/pages_to_scan
135
136and how many milliseconds to wait in khugepaged between each pass (you
137can 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
141and how many milliseconds to wait in khugepaged if there's an hugepage
142allocation failure to throttle the next allocation attempt.
143
144/sys/kernel/mm/transparent_hugepage/khugepaged/alloc_sleep_millisecs
145
146The khugepaged progress can be seen in the number of pages collapsed:
147
148/sys/kernel/mm/transparent_hugepage/khugepaged/pages_collapsed
149
150for each pass:
151
152/sys/kernel/mm/transparent_hugepage/khugepaged/full_scans
153
154== Boot parameter ==
155
156You can change the sysfs boot time defaults of Transparent Hugepage
157Support 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
163The transparent_hugepage/enabled values only affect future
164behavior. So to make them effective you need to restart any
165application that could have been using hugepages. This also applies to
166the regions registered in khugepaged.
167
168== get_user_pages and follow_page ==
169
170get_user_pages and follow_page if run on a hugepage, will return the
171head or tail pages as usual (exactly as they would do on
172hugetlbfs). Most gup users will only care about the actual physical
173address of the page and its temporary pinning to release after the I/O
174is complete, so they won't ever notice the fact the page is huge. But
175if any driver is going to mangle over the page structure of the tail
176page (like for checking page->mapping or other bits that are relevant
177for the head page and not the tail page), it should be updated to jump
178to check head page instead (while serializing properly against
179split_huge_page() to avoid the head and tail pages to disappear from
180under it, see the futex code to see an example of that, hugetlbfs also
181needed special handling in futex code for similar reasons).
182
183NOTE: these aren't new constraints to the GUP API, and they match the
184same constrains that applies to hugetlbfs too, so any driver capable
185of handling GUP on hugetlbfs will also work fine on transparent
186hugepage backed mappings.
187
188In case you can't handle compound pages if they're returned by
189follow_page, the FOLL_SPLIT bit can be specified as parameter to
190follow_page, so that it will split the hugepages before returning
191them. Migration for example passes FOLL_SPLIT as parameter to
192follow_page because it's not hugepage aware and in fact it can't work
193at all on hugetlbfs (but it instead works fine on transparent
194hugepages thanks to FOLL_SPLIT). migration simply can't deal with
195hugepages being returned (as it's not only checking the pfn of the
196page and pinning it during the copy but it pretends to migrate the
197memory in regular page sizes and with regular pte/pmd mappings).
198
199== Optimizing the applications ==
200
201To be guaranteed that the kernel will map a 2M page immediately in any
202memory region, the mmap region has to be hugepage naturally
203aligned. posix_memalign() can provide that guarantee.
204
205== Hugetlbfs ==
206
207You can use hugetlbfs on a kernel that has transparent hugepage
208support enabled just fine as always. No difference can be noted in
209hugetlbfs other than there will be less overall fragmentation. All
210usual features belonging to hugetlbfs are preserved and
211unaffected. libhugetlbfs will also work fine as usual.
212
213== Graceful fallback ==
214
215Code walking pagetables but unware about huge pmds can simply call
216split_huge_page_pmd(mm, pmd) where the pmd is the one returned by
217pmd_offset. It's trivial to make the code transparent hugepage aware
218by just grepping for "pmd_offset" and adding split_huge_page_pmd where
219missing after pmd_offset returns the pmd. Thanks to the graceful
220fallback design, with a one liner change, you can avoid to write
221hundred if not thousand of lines of complex code to make your code
222hugepage aware.
223
224If you're not walking pagetables but you run into a physical hugepage
225but you can't handle it natively in your code, you can split it by
226calling split_huge_page(page). This is what the Linux VM does before
227it tries to swapout the hugepage for example.
228
229Example to make mremap.c transparent hugepage aware with a one liner
230change:
231
232diff --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
245We want as much code as possible hugepage aware, as calling
246split_huge_page() or split_huge_page_pmd() has a cost.
247
248To make pagetable walks huge pmd aware, all you need to do is to call
249pmd_trans_huge() on the pmd returned by pmd_offset. You must hold the
250mmap_sem in read (or write) mode to be sure an huge pmd cannot be
251created from under you by khugepaged (khugepaged collapse_huge_page
252takes the mmap_sem in write mode in addition to the anon_vma lock). If
253pmd_trans_huge returns false, you just fallback in the old code
254paths. If instead pmd_trans_huge returns true, you have to take the
255mm->page_table_lock and re-run pmd_trans_huge. Taking the
256page_table_lock will prevent the huge pmd to be converted into a
257regular pmd from under you (split_huge_page can run in parallel to the
258pagetable walk). If the second pmd_trans_huge returns false, you
259should just drop the page_table_lock and fallback to the old code as
260before. Otherwise you should run pmd_trans_splitting on the pmd. In
261case pmd_trans_splitting returns true, it means split_huge_page is
262already in the middle of splitting the page. So if pmd_trans_splitting
263returns true it's enough to drop the page_table_lock and call
264wait_split_huge_page and then fallback the old code paths. You are
265guaranteed by the time wait_split_huge_page returns, the pmd isn't
266huge anymore. If pmd_trans_splitting returns false, you can proceed to
267process the huge pmd and the hugepage natively. Once finished you can
268drop the page_table_lock.
269
270== compound_lock, get_user_pages and put_page ==
271
272split_huge_page internally has to distribute the refcounts in the head
273page to the tail pages before clearing all PG_head/tail bits from the
274page structures. It can do that easily for refcounts taken by huge pmd
275mappings. But the GUI API as created by hugetlbfs (that returns head
276and tail pages if running get_user_pages on an address backed by any
277hugepage), requires the refcount to be accounted on the tail pages and
278not only in the head pages, if we want to be able to run
279split_huge_page while there are gup pins established on any tail
280page. Failure to be able to run split_huge_page if there's any gup pin
281on any tail page, would mean having to split all hugepages upfront in
282get_user_pages which is unacceptable as too many gup users are
283performance critical and they must work natively on hugepages like
284they work natively on hugetlbfs already (hugetlbfs is simpler because
285hugetlbfs pages cannot be splitted so there wouldn't be requirement of
286accounting the pins on the tail pages for hugetlbfs). If we wouldn't
287account the gup refcounts on the tail pages during gup, we won't know
288anymore which tail page is pinned by gup and which is not while we run
289split_huge_page. But we still have to add the gup pin to the head page
290too, to know when we can free the compound page in case it's never
291splitted during its lifetime. That requires changing not just
292get_page, but put_page as well so that when put_page runs on a tail
293page (and only on a tail page) it will find its respective head page,
294and then it will decrease the head page refcount in addition to the
295tail page refcount. To obtain a head page reliably and to decrease its
296refcount without race conditions, put_page has to serialize against
297__split_huge_page_refcount using a special per-page lock called
298compound_lock.
Documentation/w1/slaves/00-INDEX+2−0
@@ -2,3 +2,5 @@ · 1 unmodified line
2 - This file2 - This file
3w1_therm3w1_therm
4 - The Maxim/Dallas Semiconductor ds18*20 temperature sensor.4 - The Maxim/Dallas Semiconductor ds18*20 temperature sensor.
5w1_ds2423
6 - The Maxim/Dallas Semiconductor ds2423 counter device.
Documentation/w1/slaves/w1_ds2423+47−0
@@ -0,0 +1,47 @@
1Kernel driver w1_ds2423
2=======================
3
4Supported chips:
5 * Maxim DS2423 based counter devices.
6
7supported family codes:
8 W1_THERM_DS2423 0x1D
9
10Author: Mika Laitio <lamikr@pilppa.org>
11
12Description
13-----------
14
15Support is provided through the sysfs w1_slave file. Each opening and
16read sequence of w1_slave file initiates the read of counters and ram
17available in DS2423 pages 12 - 15.
18
19Result of each page is provided as an ASCII output where each counter
20value and associated ram buffer is outpputed to own line.
21
22Each lines will contain the values of 42 bytes read from the counter and
23memory page along the crc=YES or NO for indicating whether the read operation
24was successfull and CRC matched.
25If the operation was successfull, there is also in the end of each line
26a counter value expressed as an integer after c=
27
28Meaning 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
37example from the successfull read:
3800 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
3900 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
4000 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
4100 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
43example from the read with crc errors:
4400 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
4500 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
4600 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
4700 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
190 * Long running CPU intensive workloads which can be better190 * Long running CPU intensive workloads which can be better
191 managed by the system scheduler.191 managed by the system scheduler.
192 192
193 WQ_FREEZEABLE193 WQ_FREEZABLE
194 194
195 A freezeable wq participates in the freeze phase of the system195 A freezable wq participates in the freeze phase of the system
196 suspend operations. Work items on the wq are drained and no196 suspend operations. Work items on the wq are drained and no
197 new work item starts execution until thawed.197 new work item starts execution until thawed.
198 198
Documentation/x86/boot.txt+4−3
@@ -600,6 +600,7 @@ Protocol: 2.07+ · 599 unmodified lines
600 0x00000001 lguest600 0x00000001 lguest
601 0x00000002 Xen601 0x00000002 Xen
602 0x00000003 Moorestown MID602 0x00000003 Moorestown MID
603 0x00000004 CE4100 TV Platform
603 604
604Field name: hardware_subarch_data605Field name: hardware_subarch_data
605Type: write (subarch-dependent)606Type: write (subarch-dependent)
@@ -621,9 +622,9 @@ Protocol: 2.08+ · 15 unmodified lines
621 The payload may be compressed. The format of both the compressed and622 The payload may be compressed. The format of both the compressed and
622 uncompressed data should be determined using the standard magic623 uncompressed data should be determined using the standard magic
623 numbers. The currently supported compression formats are gzip624 numbers. The currently supported compression formats are gzip
624 (magic numbers 1F 8B or 1F 9E), bzip2 (magic number 42 5A) and LZMA625 (magic numbers 1F 8B or 1F 9E), bzip2 (magic number 42 5A), LZMA
625 (magic number 5D 00). The uncompressed payload is currently always ELF626 (magic number 5D 00), and XZ (magic number FD 37). The uncompressed
626 (magic number 7F 45 4C 46).627 payload is currently always ELF (magic number 7F 45 4C 46).
627 628
628Field name: payload_length629Field name: payload_length
629Type: read630Type: read
Documentation/xz.txt+121−0
@@ -0,0 +1,121 @@
1
2XZ data compression in Linux
3============================
4
5Introduction
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
24XZ 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
54Notes 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
87Future 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
99Conformance 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
107Reporting 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
347最新bug的通知,可以订阅bugme-new邮件列表(只有新的bug报告会被寄到这里)347最新bug的通知,可以订阅bugme-new邮件列表(只有新的bug报告会被寄到这里)
348或者订阅bugme-janitor邮件列表(所有bugzilla的变动都会被寄到这里)。348或者订阅bugme-janitor邮件列表(所有bugzilla的变动都会被寄到这里)。
349 349
350 http://lists.osdl.org/mailman/listinfo/bugme-new350 https://lists.linux-foundation.org/mailman/listinfo/bugme-new
351 http://lists.osdl.org/mailman/listinfo/bugme-janitors351 https://lists.linux-foundation.org/mailman/listinfo/bugme-janitors
352 352
353 353
354邮件列表354邮件列表
Documentation/zh_CN/SubmittingDrivers+1−1
@@ -61,7 +61,7 @@ Linux 2.4: · 60 unmodified lines
61Linux 2.6:61Linux 2.6:
62 除了遵循和 2.4 版内核同样的规则外,你还需要在 linux-kernel 邮件62 除了遵循和 2.4 版内核同样的规则外,你还需要在 linux-kernel 邮件
63 列表上跟踪最新的 API 变化。向 Linux 2.6 内核提交驱动的顶级联系人63 列表上跟踪最新的 API 变化。向 Linux 2.6 内核提交驱动的顶级联系人
64 是 Andrew Morton <akpm@osdl.org>。64 是 Andrew Morton <akpm@linux-foundation.org>。
65 65
66决定设备驱动能否被接受的条件66决定设备驱动能否被接受的条件
67----------------------------67----------------------------
MAINTAINERS+332−88
@@ -162,13 +162,12 @@ L: linux-serial@vger.kernel.org · 161 unmodified lines
162W: http://serial.sourceforge.net162W: http://serial.sourceforge.net
163S: Maintained163S: Maintained
164T: git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6.git164T: git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6.git
165F: drivers/serial/8250*165F: drivers/tty/serial/8250*
166F: include/linux/serial_8250.h166F: include/linux/serial_8250.h
167 167
1688390 NETWORK DRIVERS [WD80x3/SMC-ELITE, SMC-ULTRA, NE2000, 3C503, etc.]1688390 NETWORK DRIVERS [WD80x3/SMC-ELITE, SMC-ULTRA, NE2000, 3C503, etc.]
169M: Paul Gortmaker <p_gortmaker@yahoo.com>
170L: netdev@vger.kernel.org169L: netdev@vger.kernel.org
171S: Maintained170S: Orphan / Obsolete
172F: drivers/net/*8390*171F: drivers/net/*8390*
173F: drivers/net/ax88796.c172F: drivers/net/ax88796.c
174 173
@@ -286,6 +285,41 @@ L: linux-parisc@vger.kernel.org · 111 unmodified lines
286S: Maintained285S: Maintained
287F: sound/pci/ad1889.*286F: sound/pci/ad1889.*
288 287
288AD525X ANALOG DEVICES DIGITAL POTENTIOMETERS DRIVER
289M: Michael Hennerich <michael.hennerich@analog.com>
290L: device-driver-devel@blackfin.uclinux.org
291W: http://wiki-analog.com/AD5254
292S: Supported
293F: drivers/misc/ad525x_dpot.c
294
295AD5398 CURRENT REGULATOR DRIVER (AD5398/AD5821)
296M: Michael Hennerich <michael.hennerich@analog.com>
297L: device-driver-devel@blackfin.uclinux.org
298W: http://wiki-analog.com/AD5398
299S: Supported
300F: drivers/regulator/ad5398.c
301
302AD714X CAPACITANCE TOUCH SENSOR DRIVER (AD7142/3/7/8/7A)
303M: Michael Hennerich <michael.hennerich@analog.com>
304L: device-driver-devel@blackfin.uclinux.org
305W: http://wiki-analog.com/AD7142
306S: Supported
307F: drivers/input/misc/ad714x.c
308
309AD7877 TOUCHSCREEN DRIVER
310M: Michael Hennerich <michael.hennerich@analog.com>
311L: device-driver-devel@blackfin.uclinux.org
312W: http://wiki-analog.com/AD7877
313S: Supported
314F: drivers/input/touchscreen/ad7877.c
315
316AD7879 TOUCHSCREEN DRIVER (AD7879/AD7889)
317M: Michael Hennerich <michael.hennerich@analog.com>
318L: device-driver-devel@blackfin.uclinux.org
319W: http://wiki-analog.com/AD7879
320S: Supported
321F: drivers/input/touchscreen/ad7879.c
322
289ADM1025 HARDWARE MONITOR DRIVER323ADM1025 HARDWARE MONITOR DRIVER
290M: Jean Delvare <khali@linux-fr.org>324M: Jean Delvare <khali@linux-fr.org>
291L: lm-sensors@lm-sensors.org325L: lm-sensors@lm-sensors.org
@@ -305,6 +339,32 @@ W: http://linuxwireless.org/ · 13 unmodified lines
305S: Orphan339S: Orphan
306F: drivers/net/wireless/adm8211.*340F: drivers/net/wireless/adm8211.*
307 341
342ADP5520 BACKLIGHT DRIVER WITH IO EXPANDER (ADP5520/ADP5501)
343M: Michael Hennerich <michael.hennerich@analog.com>
344L: device-driver-devel@blackfin.uclinux.org
345W: http://wiki-analog.com/ADP5520
346S: Supported
347F: drivers/mfd/adp5520.c
348F: drivers/video/backlight/adp5520_bl.c
349F: drivers/led/leds-adp5520.c
350F: drivers/gpio/adp5520-gpio.c
351F: drivers/input/keyboard/adp5520-keys.c
352
353ADP5588 QWERTY KEYPAD AND IO EXPANDER DRIVER (ADP5588/ADP5587)
354M: Michael Hennerich <michael.hennerich@analog.com>
355L: device-driver-devel@blackfin.uclinux.org
356W: http://wiki-analog.com/ADP5588
357S: Supported
358F: drivers/input/keyboard/adp5588-keys.c
359F: drivers/gpio/adp5588-gpio.c
360
361ADP8860 BACKLIGHT DRIVER (ADP8860/ADP8861/ADP8863)
362M: Michael Hennerich <michael.hennerich@analog.com>
363L: device-driver-devel@blackfin.uclinux.org
364W: http://wiki-analog.com/ADP8860
365S: Supported
366F: drivers/video/backlight/adp8860_bl.c
367
308ADT746X FAN DRIVER368ADT746X FAN DRIVER
309M: Colin Leroy <colin@colino.net>369M: Colin Leroy <colin@colino.net>
310S: Maintained370S: Maintained
@@ -317,6 +377,13 @@ S: Maintained · 6 unmodified lines
317F: Documentation/hwmon/adt7475377F: Documentation/hwmon/adt7475
318F: drivers/hwmon/adt7475.c378F: drivers/hwmon/adt7475.c
319 379
380ADXL34X THREE-AXIS DIGITAL ACCELEROMETER DRIVER (ADXL345/ADXL346)
381M: Michael Hennerich <michael.hennerich@analog.com>
382L: device-driver-devel@blackfin.uclinux.org
383W: http://wiki-analog.com/ADXL345
384S: Supported
385F: drivers/input/misc/adxl34x.c
386
320ADVANSYS SCSI DRIVER387ADVANSYS SCSI DRIVER
321M: Matthew Wilcox <matthew@wil.cx>388M: Matthew Wilcox <matthew@wil.cx>
322L: linux-scsi@vger.kernel.org389L: linux-scsi@vger.kernel.org
@@ -429,7 +496,6 @@ S: Supported · 106 unmodified lines
429F: arch/x86/kernel/microcode_amd.c496F: arch/x86/kernel/microcode_amd.c
430 497
431AMS (Apple Motion Sensor) DRIVER498AMS (Apple Motion Sensor) DRIVER
432M: Stelian Pop <stelian@popies.net>
433M: Michael Hanselmann <linux-kernel@hansmi.ch>499M: Michael Hanselmann <linux-kernel@hansmi.ch>
434S: Supported500S: Supported
435F: drivers/macintosh/ams/501F: drivers/macintosh/ams/
@@ -441,17 +507,23 @@ L: linux-rdma@vger.kernel.org · 5 unmodified lines
441S: Maintained507S: Maintained
442F: drivers/infiniband/hw/amso1100/508F: drivers/infiniband/hw/amso1100/
443 509
444ANALOG DEVICES INC ASOC DRIVERS510ANALOG DEVICES INC ASOC CODEC DRIVERS
445L: uclinux-dist-devel@blackfin.uclinux.org511L: device-driver-devel@blackfin.uclinux.org
446L: alsa-devel@alsa-project.org (moderated for non-subscribers)512L: alsa-devel@alsa-project.org (moderated for non-subscribers)
447W: http://blackfin.uclinux.org/513W: http://wiki-analog.com/
448S: Supported514S: Supported
449F: sound/soc/blackfin/*
450F: sound/soc/codecs/ad1*515F: sound/soc/codecs/ad1*
451F: sound/soc/codecs/adau*516F: sound/soc/codecs/adau*
452F: sound/soc/codecs/adav*517F: sound/soc/codecs/adav*
453F: sound/soc/codecs/ssm*518F: sound/soc/codecs/ssm*
454 519
520ANALOG DEVICES INC ASOC DRIVERS
521L: uclinux-dist-devel@blackfin.uclinux.org
522L: alsa-devel@alsa-project.org (moderated for non-subscribers)
523W: http://blackfin.uclinux.org/
524S: Supported
525F: sound/soc/blackfin/*
526
455AOA (Apple Onboard Audio) ALSA DRIVER527AOA (Apple Onboard Audio) ALSA DRIVER
456M: Johannes Berg <johannes@sipsolutions.net>528M: Johannes Berg <johannes@sipsolutions.net>
457L: linuxppc-dev@lists.ozlabs.org529L: linuxppc-dev@lists.ozlabs.org
@@ -552,11 +624,15 @@ M: Lennert Buytenhek <kernel@wantstofly.org> · 94 unmodified lines
552L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)624L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
553S: Maintained625S: Maintained
554 626
555ARM/ATMEL AT91RM9200 ARM ARCHITECTURE627ARM/ATMEL AT91RM9200 AND AT91SAM ARM ARCHITECTURES
556M: Andrew Victor <linux@maxim.org.za>628M: Andrew Victor <linux@maxim.org.za>
629M: Nicolas Ferre <nicolas.ferre@atmel.com>
630M: Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>
557L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)631L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
558W: http://maxim.org.za/at91_26.html632W: http://maxim.org.za/at91_26.html
559S: Maintained633W: http://www.linux4sam.org
634S: Supported
635F: arch/arm/mach-at91/
560 636
561ARM/BCMRING ARM ARCHITECTURE637ARM/BCMRING ARM ARCHITECTURE
562M: Jiandong Zheng <jdzheng@broadcom.com>638M: Jiandong Zheng <jdzheng@broadcom.com>
@@ -809,15 +885,15 @@ S: Supported · 246 unmodified lines
809 885
810ARM/QUALCOMM MSM MACHINE SUPPORT886ARM/QUALCOMM MSM MACHINE SUPPORT
811M: David Brown <davidb@codeaurora.org>887M: David Brown <davidb@codeaurora.org>
812M: Daniel Walker <dwalker@codeaurora.org>888M: Daniel Walker <dwalker@fifo99.com>
813M: Bryan Huntsman <bryanh@codeaurora.org>889M: Bryan Huntsman <bryanh@codeaurora.org>
814L: linux-arm-msm@vger.kernel.org890L: linux-arm-msm@vger.kernel.org
815F: arch/arm/mach-msm/891F: arch/arm/mach-msm/
816F: drivers/video/msm/892F: drivers/video/msm/
817F: drivers/mmc/host/msm_sdcc.c893F: drivers/mmc/host/msm_sdcc.c
818F: drivers/mmc/host/msm_sdcc.h894F: drivers/mmc/host/msm_sdcc.h
819F: drivers/serial/msm_serial.h895F: drivers/tty/serial/msm_serial.h
820F: drivers/serial/msm_serial.c896F: drivers/tty/serial/msm_serial.c
821T: git git://codeaurora.org/quic/kernel/davidb/linux-msm.git897T: git git://codeaurora.org/quic/kernel/davidb/linux-msm.git
822S: Maintained898S: Maintained
823 899
@@ -902,6 +978,8 @@ S: Maintained · 78 unmodified lines
902F: arch/arm/plat-samsung/978F: arch/arm/plat-samsung/
903F: arch/arm/plat-s3c24xx/979F: arch/arm/plat-s3c24xx/
904F: arch/arm/plat-s5p/980F: arch/arm/plat-s5p/
981F: drivers/*/*s3c2410*
982F: drivers/*/*/*s3c2410*
905 983
906ARM/S3C2410 ARM ARCHITECTURE984ARM/S3C2410 ARM ARCHITECTURE
907M: Ben Dooks <ben-linux@fluff.org>985M: Ben Dooks <ben-linux@fluff.org>
@@ -1095,6 +1173,12 @@ S: Supported · 187 unmodified lines
1095F: Documentation/aoe/1173F: Documentation/aoe/
1096F: drivers/block/aoe/1174F: drivers/block/aoe/
1097 1175
1176ATHEROS ATH GENERIC UTILITIES
1177M: "Luis R. Rodriguez" <lrodriguez@atheros.com>
1178L: linux-wireless@vger.kernel.org
1179S: Supported
1180F: drivers/net/wireless/ath/*
1181
1098ATHEROS ATH5K WIRELESS DRIVER1182ATHEROS ATH5K WIRELESS DRIVER
1099M: Jiri Slaby <jirislaby@gmail.com>1183M: Jiri Slaby <jirislaby@gmail.com>
1100M: Nick Kossifidis <mickflemm@gmail.com>1184M: Nick Kossifidis <mickflemm@gmail.com>
@@ -1178,7 +1262,7 @@ F: drivers/mmc/host/atmel-mci-regs.h · 77 unmodified lines
1178ATMEL AT91 / AT32 SERIAL DRIVER1262ATMEL AT91 / AT32 SERIAL DRIVER
1179M: Nicolas Ferre <nicolas.ferre@atmel.com>1263M: Nicolas Ferre <nicolas.ferre@atmel.com>
1180S: Supported1264S: Supported
1181F: drivers/serial/atmel_serial.c1265F: drivers/tty/serial/atmel_serial.c
1182 1266
1183ATMEL LCDFB DRIVER1267ATMEL LCDFB DRIVER
1184M: Nicolas Ferre <nicolas.ferre@atmel.com>1268M: Nicolas Ferre <nicolas.ferre@atmel.com>
@@ -1273,6 +1357,15 @@ S: Maintained · 88 unmodified lines
1273F: drivers/video/backlight/1357F: drivers/video/backlight/
1274F: include/linux/backlight.h1358F: include/linux/backlight.h
1275 1359
1360BATMAN ADVANCED
1361M: Marek Lindner <lindner_marek@yahoo.de>
1362M: Simon Wunderlich <siwu@hrz.tu-chemnitz.de>
1363M: Sven Eckelmann <sven@narfation.org>
1364L: b.a.t.m.a.n@lists.open-mesh.org
1365W: http://www.open-mesh.org/
1366S: Maintained
1367F: net/batman-adv/
1368
1276BAYCOM/HDLCDRV DRIVERS FOR AX.251369BAYCOM/HDLCDRV DRIVERS FOR AX.25
1277M: Thomas Sailer <t.sailer@alumni.ethz.ch>1370M: Thomas Sailer <t.sailer@alumni.ethz.ch>
1278L: linux-hams@vger.kernel.org1371L: linux-hams@vger.kernel.org
@@ -1325,7 +1418,7 @@ M: Sonic Zhang <sonic.zhang@analog.com> · 46 unmodified lines
1325L: uclinux-dist-devel@blackfin.uclinux.org1418L: uclinux-dist-devel@blackfin.uclinux.org
1326W: http://blackfin.uclinux.org1419W: http://blackfin.uclinux.org
1327S: Supported1420S: Supported
1328F: drivers/serial/bfin_5xx.c1421F: drivers/tty/serial/bfin_5xx.c
1329 1422
1330BLACKFIN WATCHDOG DRIVER1423BLACKFIN WATCHDOG DRIVER
1331M: Mike Frysinger <vapier.adi@gmail.com>1424M: Mike Frysinger <vapier.adi@gmail.com>
@@ -1409,7 +1502,9 @@ F: drivers/net/tg3.* · 77 unmodified lines
1409BROADCOM BRCM80211 IEEE802.11n WIRELESS DRIVER1502BROADCOM BRCM80211 IEEE802.11n WIRELESS DRIVER
1410M: Brett Rudley <brudley@broadcom.com>1503M: Brett Rudley <brudley@broadcom.com>
1411M: Henry Ptasinski <henryp@broadcom.com>1504M: Henry Ptasinski <henryp@broadcom.com>
1412M: Nohee Ko <noheek@broadcom.com>1505M: Dowan Kim <dowan@broadcom.com>
1506M: Roland Vossen <rvossen@broadcom.com>
1507M: Arend van Spriel <arend@broadcom.com>
1413L: linux-wireless@vger.kernel.org1508L: linux-wireless@vger.kernel.org
1414S: Supported1509S: Supported
1415F: drivers/staging/brcm80211/1510F: drivers/staging/brcm80211/
@@ -1434,6 +1529,14 @@ S: Supported · 18 unmodified lines
1434F: block/bsg.c1529F: block/bsg.c
1435F: include/linux/bsg.h1530F: include/linux/bsg.h
1436 1531
1532BT87X AUDIO DRIVER
1533M: Clemens Ladisch <clemens@ladisch.de>
1534L: alsa-devel@alsa-project.org (moderated for non-subscribers)
1535T: git git://git.alsa-project.org/alsa-kernel.git
1536S: Maintained
1537F: Documentation/sound/alsa/Bt87x.txt
1538F: sound/pci/bt87x.c
1539
1437BT8XXGPIO DRIVER1540BT8XXGPIO DRIVER
1438M: Michael Buesch <mb@bu3sch.de>1541M: Michael Buesch <mb@bu3sch.de>
1439W: http://bu3sch.de/btgpio.php1542W: http://bu3sch.de/btgpio.php
@@ -1459,6 +1562,13 @@ S: Maintained · 19 unmodified lines
1459F: Documentation/video4linux/bttv/1562F: Documentation/video4linux/bttv/
1460F: drivers/media/video/bt8xx/bttv*1563F: drivers/media/video/bt8xx/bttv*
1461 1564
1565C-MEDIA CMI8788 DRIVER
1566M: Clemens Ladisch <clemens@ladisch.de>
1567L: alsa-devel@alsa-project.org (moderated for non-subscribers)
1568T: git git://git.alsa-project.org/alsa-kernel.git
1569S: Maintained
1570F: sound/pci/oxygen/
1571
1462CACHEFILES: FS-CACHE BACKEND FOR CACHING ON MOUNTED FILESYSTEMS1572CACHEFILES: FS-CACHE BACKEND FOR CACHING ON MOUNTED FILESYSTEMS
1463M: David Howells <dhowells@redhat.com>1573M: David Howells <dhowells@redhat.com>
1464L: linux-cachefs@redhat.com1574L: linux-cachefs@redhat.com
@@ -1695,7 +1805,8 @@ S: Maintained · 230 unmodified lines
1695F: drivers/usb/atm/cxacru.c1805F: drivers/usb/atm/cxacru.c
1696 1806
1697CONFIGFS1807CONFIGFS
1698M: Joel Becker <joel.becker@oracle.com>1808M: Joel Becker <jlbec@evilplan.org>
1809T: git git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/configfs.git
1699S: Supported1810S: Supported
1700F: fs/configfs/1811F: fs/configfs/
1701F: include/linux/configfs.h1812F: include/linux/configfs.h
@@ -1772,7 +1883,7 @@ L: linux-cris-kernel@axis.com · 70 unmodified lines
1772W: http://developer.axis.com1883W: http://developer.axis.com
1773S: Maintained1884S: Maintained
1774F: arch/cris/1885F: arch/cris/
1775F: drivers/serial/crisv10.*1886F: drivers/tty/serial/crisv10.*
1776 1887
1777CRYPTO API1888CRYPTO API
1778M: Herbert Xu <herbert@gondor.apana.org.au>1889M: Herbert Xu <herbert@gondor.apana.org.au>
@@ -1917,7 +2028,7 @@ F: drivers/scsi/dc395x.* · 138 unmodified lines
1917DCCP PROTOCOL2028DCCP PROTOCOL
1918M: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>2029M: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
1919L: dccp@vger.kernel.org2030L: dccp@vger.kernel.org
1920W: http://linux-net.osdl.org/index.php/DCCP2031W: http://www.linuxfoundation.org/collaborate/workgroups/networking/dccp
1921S: Maintained2032S: Maintained
1922F: include/linux/dccp.h2033F: include/linux/dccp.h
1923F: include/linux/tfrc.h2034F: include/linux/tfrc.h
@@ -2015,6 +2126,7 @@ S: Supported · 91 unmodified lines
2015F: fs/dlm/2126F: fs/dlm/
2016 2127
2017DMA GENERIC OFFLOAD ENGINE SUBSYSTEM2128DMA GENERIC OFFLOAD ENGINE SUBSYSTEM
2129M: Vinod Koul <vinod.koul@intel.com>
2018M: Dan Williams <dan.j.williams@intel.com>2130M: Dan Williams <dan.j.williams@intel.com>
2019S: Supported2131S: Supported
2020F: drivers/dma/2132F: drivers/dma/
@@ -2111,7 +2223,7 @@ F: drivers/net/wan/dscc4.c · 90 unmodified lines
2111DZ DECSTATION DZ11 SERIAL DRIVER2223DZ DECSTATION DZ11 SERIAL DRIVER
2112M: "Maciej W. Rozycki" <macro@linux-mips.org>2224M: "Maciej W. Rozycki" <macro@linux-mips.org>
2113S: Maintained2225S: Maintained
2114F: drivers/serial/dz.*2226F: drivers/tty/serial/dz.*
2115 2227
2116EATA-DMA SCSI DRIVER2228EATA-DMA SCSI DRIVER
2117M: Michael Neuffer <mike@i-Connect.Net>2229M: Michael Neuffer <mike@i-Connect.Net>
@@ -2249,6 +2361,13 @@ W: bluesmoke.sourceforge.net · 131 unmodified lines
2249S: Maintained2361S: Maintained
2250F: drivers/edac/r82600_edac.c2362F: drivers/edac/r82600_edac.c
2251 2363
2364EDIROL UA-101/UA-1000 DRIVER
2365M: Clemens Ladisch <clemens@ladisch.de>
2366L: alsa-devel@alsa-project.org (moderated for non-subscribers)
2367T: git git://git.alsa-project.org/alsa-kernel.git
2368S: Maintained
2369F: sound/usb/misc/ua101.c
2370
2252EEEPC LAPTOP EXTRAS DRIVER2371EEEPC LAPTOP EXTRAS DRIVER
2253M: Corentin Chary <corentincj@iksaif.net>2372M: Corentin Chary <corentincj@iksaif.net>
2254L: acpi4asus-user@lists.sourceforge.net2373L: acpi4asus-user@lists.sourceforge.net
@@ -2257,6 +2376,14 @@ W: http://acpi4asus.sf.net · 2 unmodified lines
2257S: Maintained2376S: Maintained
2258F: drivers/platform/x86/eeepc-laptop.c2377F: drivers/platform/x86/eeepc-laptop.c
2259 2378
2379EEEPC WMI EXTRAS DRIVER
2380M: Corentin Chary <corentincj@iksaif.net>
2381L: acpi4asus-user@lists.sourceforge.net
2382L: platform-driver-x86@vger.kernel.org
2383W: http://acpi4asus.sf.net
2384S: Maintained
2385F: drivers/platform/x86/eeepc-wmi.c
2386
2260EFIFB FRAMEBUFFER DRIVER2387EFIFB FRAMEBUFFER DRIVER
2261L: linux-fbdev@vger.kernel.org2388L: linux-fbdev@vger.kernel.org
2262M: Peter Jones <pjones@redhat.com>2389M: Peter Jones <pjones@redhat.com>
@@ -2331,7 +2458,7 @@ ETHERNET BRIDGE · 68 unmodified lines
2331M: Stephen Hemminger <shemminger@linux-foundation.org>2458M: Stephen Hemminger <shemminger@linux-foundation.org>
2332L: bridge@lists.linux-foundation.org2459L: bridge@lists.linux-foundation.org
2333L: netdev@vger.kernel.org2460L: netdev@vger.kernel.org
2334W: http://www.linux-foundation.org/en/Net:Bridge2461W: http://www.linuxfoundation.org/en/Net:Bridge
2335S: Maintained2462S: Maintained
2336F: include/linux/netfilter_bridge/2463F: include/linux/netfilter_bridge/
2337F: net/bridge/2464F: net/bridge/
@@ -2523,7 +2650,7 @@ FREESCALE QUICC ENGINE UCC UART DRIVER · 185 unmodified lines
2523M: Timur Tabi <timur@freescale.com>2650M: Timur Tabi <timur@freescale.com>
2524L: linuxppc-dev@lists.ozlabs.org2651L: linuxppc-dev@lists.ozlabs.org
2525S: Supported2652S: Supported
2526F: drivers/serial/ucc_uart.c2653F: drivers/tty/serial/ucc_uart.c
2527 2654
2528FREESCALE SOC SOUND DRIVERS2655FREESCALE SOC SOUND DRIVERS
2529M: Timur Tabi <timur@freescale.com>2656M: Timur Tabi <timur@freescale.com>
@@ -2594,6 +2721,14 @@ S: Supported · 64 unmodified lines
2594F: drivers/i2c/busses/i2c-gpio.c2721F: drivers/i2c/busses/i2c-gpio.c
2595F: include/linux/i2c-gpio.h2722F: include/linux/i2c-gpio.h
2596 2723
2724GENERIC GPIO I2C MULTIPLEXER DRIVER
2725M: Peter Korsgaard <peter.korsgaard@barco.com>
2726L: linux-i2c@vger.kernel.org
2727S: Supported
2728F: drivers/i2c/muxes/gpio-i2cmux.c
2729F: include/linux/gpio-i2cmux.h
2730F: Documentation/i2c/muxes/gpio-i2cmux
2731
2597GENERIC HDLC (WAN) DRIVERS2732GENERIC HDLC (WAN) DRIVERS
2598M: Krzysztof Halasa <khc@pm.waw.pl>2733M: Krzysztof Halasa <khc@pm.waw.pl>
2599W: http://www.kernel.org/pub/linux/utils/net/hdlc/2734W: http://www.kernel.org/pub/linux/utils/net/hdlc/
@@ -2640,6 +2775,15 @@ F: Documentation/isdn/README.gigaset · 40 unmodified lines
2640F: drivers/isdn/gigaset/2775F: drivers/isdn/gigaset/
2641F: include/linux/gigaset_dev.h2776F: include/linux/gigaset_dev.h
2642 2777
2778GPIO SUBSYSTEM
2779M: Grant Likely <grant.likely@secretlab.ca>
2780L: linux-kernel@vger.kernel.org
2781S: Maintained
2782T: git git://git.secretlab.ca/git/linux-2.6.git
2783F: Documentation/gpio/gpio.txt
2784F: drivers/gpio/
2785F: include/linux/gpio*
2786
2643GRETH 10/100/1G Ethernet MAC device driver2787GRETH 10/100/1G Ethernet MAC device driver
2644M: Kristoffer Glembo <kristoffer@gaisler.com>2788M: Kristoffer Glembo <kristoffer@gaisler.com>
2645L: netdev@vger.kernel.org2789L: netdev@vger.kernel.org
@@ -2729,7 +2873,6 @@ M: Guenter Roeck <guenter.roeck@ericsson.com> · 83 unmodified lines
2729L: lm-sensors@lm-sensors.org2873L: lm-sensors@lm-sensors.org
2730W: http://www.lm-sensors.org/2874W: http://www.lm-sensors.org/
2731T: quilt kernel.org/pub/linux/kernel/people/jdelvare/linux-2.6/jdelvare-hwmon/2875T: quilt kernel.org/pub/linux/kernel/people/jdelvare/linux-2.6/jdelvare-hwmon/
2732T: quilt kernel.org/pub/linux/kernel/people/groeck/linux-staging/
2733T: git git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging.git2876T: git git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging.git
2734S: Maintained2877S: Maintained
2735F: Documentation/hwmon/2878F: Documentation/hwmon/
@@ -2812,6 +2955,10 @@ M: Thomas Gleixner <tglx@linutronix.de> · 76 unmodified lines
2812S: Maintained2955S: Maintained
2813F: Documentation/timers/2956F: Documentation/timers/
2814F: kernel/hrtimer.c2957F: kernel/hrtimer.c
2958F: kernel/time/clockevents.c
2959F: kernel/time/tick*.*
2960F: kernel/time/timer_*.c
2961F include/linux/clockevents.h
2815F: include/linux/hrtimer.h2962F: include/linux/hrtimer.h
2816 2963
2817HIGH-SPEED SCC DRIVER FOR AX.252964HIGH-SPEED SCC DRIVER FOR AX.25
@@ -3003,6 +3150,12 @@ S: Maintained · 185 unmodified lines
3003F: net/ieee802154/3150F: net/ieee802154/
3004F: drivers/ieee802154/3151F: drivers/ieee802154/
3005 3152
3153IKANOS/ADI EAGLE ADSL USB DRIVER
3154M: Matthieu Castet <castet.matthieu@free.fr>
3155M: Stanislaw Gruszka <stf_xl@wp.pl>
3156S: Maintained
3157F: drivers/usb/atm/ueagle-atm.c
3158
3006INTEGRITY MEASUREMENT ARCHITECTURE (IMA)3159INTEGRITY MEASUREMENT ARCHITECTURE (IMA)
3007M: Mimi Zohar <zohar@us.ibm.com>3160M: Mimi Zohar <zohar@us.ibm.com>
3008S: Supported3161S: Supported
@@ -3014,7 +3167,7 @@ S: Orphan · 5 unmodified lines
3014F: drivers/video/imsttfb.c3167F: drivers/video/imsttfb.c
3015 3168
3016INFINIBAND SUBSYSTEM3169INFINIBAND SUBSYSTEM
3017M: Roland Dreier <rolandd@cisco.com>3170M: Roland Dreier <roland@kernel.org>
3018M: Sean Hefty <sean.hefty@intel.com>3171M: Sean Hefty <sean.hefty@intel.com>
3019M: Hal Rosenstock <hal.rosenstock@gmail.com>3172M: Hal Rosenstock <hal.rosenstock@gmail.com>
3020L: linux-rdma@vger.kernel.org3173L: linux-rdma@vger.kernel.org
@@ -3047,8 +3200,10 @@ F: drivers/input/ · 26 unmodified lines
3047INPUT MULTITOUCH (MT) PROTOCOL3200INPUT MULTITOUCH (MT) PROTOCOL
3048M: Henrik Rydberg <rydberg@euromail.se>3201M: Henrik Rydberg <rydberg@euromail.se>
3049L: linux-input@vger.kernel.org3202L: linux-input@vger.kernel.org
3203T: git git://git.kernel.org/pub/scm/linux/kernel/git/rydberg/input-mt.git
3050S: Maintained3204S: Maintained
3051F: Documentation/input/multi-touch-protocol.txt3205F: Documentation/input/multi-touch-protocol.txt
3206F: drivers/input/input-mt.c
3052K: \b(ABS|SYN)_MT_3207K: \b(ABS|SYN)_MT_
3053 3208
3054INTEL IDLE DRIVER3209INTEL IDLE DRIVER
@@ -3135,6 +3290,8 @@ M: Alex Duyck <alexander.h.duyck@intel.com> · 80 unmodified lines
3135M: John Ronciak <john.ronciak@intel.com>3290M: John Ronciak <john.ronciak@intel.com>
3136L: e1000-devel@lists.sourceforge.net3291L: e1000-devel@lists.sourceforge.net
3137W: http://e1000.sourceforge.net/3292W: http://e1000.sourceforge.net/
3293T: git git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-2.6.git
3294T: git git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next-2.6.git
3138S: Supported3295S: Supported
3139F: Documentation/networking/e100.txt3296F: Documentation/networking/e100.txt
3140F: Documentation/networking/e1000.txt3297F: Documentation/networking/e1000.txt
@@ -3187,7 +3344,6 @@ F: drivers/net/wimax/i2400m/ · 46 unmodified lines
3187F: include/linux/wimax/i2400m.h3344F: include/linux/wimax/i2400m.h
3188 3345
3189INTEL WIRELESS WIFI LINK (iwlwifi)3346INTEL WIRELESS WIFI LINK (iwlwifi)
3190M: Reinette Chatre <reinette.chatre@intel.com>
3191M: Wey-Yi Guy <wey-yi.w.guy@intel.com>3347M: Wey-Yi Guy <wey-yi.w.guy@intel.com>
3192M: Intel Linux Wireless <ilw@linux.intel.com>3348M: Intel Linux Wireless <ilw@linux.intel.com>
3193L: linux-wireless@vger.kernel.org3349L: linux-wireless@vger.kernel.org
@@ -3214,7 +3370,7 @@ IOC3 SERIAL DRIVER · 20 unmodified lines
3214M: Pat Gefre <pfg@sgi.com>3370M: Pat Gefre <pfg@sgi.com>
3215L: linux-serial@vger.kernel.org3371L: linux-serial@vger.kernel.org
3216S: Maintained3372S: Maintained
3217F: drivers/serial/ioc3_serial.c3373F: drivers/tty/serial/ioc3_serial.c
3218 3374
3219IP MASQUERADING3375IP MASQUERADING
3220M: Juanjo Ciarlante <jjciarla@raiz.uncu.edu.ar>3376M: Juanjo Ciarlante <jjciarla@raiz.uncu.edu.ar>
@@ -3391,7 +3547,14 @@ JSM Neo PCI based serial card · 170 unmodified lines
3391M: Breno Leitao <leitao@linux.vnet.ibm.com>3547M: Breno Leitao <leitao@linux.vnet.ibm.com>
3392L: linux-serial@vger.kernel.org3548L: linux-serial@vger.kernel.org
3393S: Maintained3549S: Maintained
3394F: drivers/serial/jsm/3550F: drivers/tty/serial/jsm/
3551
3552K10TEMP HARDWARE MONITORING DRIVER
3553M: Clemens Ladisch <clemens@ladisch.de>
3554L: lm-sensors@lm-sensors.org
3555S: Maintained
3556F: Documentation/hwmon/k10temp
3557F: drivers/hwmon/k10temp.c
3395 3558
3396K8TEMP HARDWARE MONITORING DRIVER3559K8TEMP HARDWARE MONITORING DRIVER
3397M: Rudolf Marek <r.marek@assembler.cz>3560M: Rudolf Marek <r.marek@assembler.cz>
@@ -3527,6 +3690,28 @@ F: include/linux/key-type.h · 129 unmodified lines
3527F: include/keys/3690F: include/keys/
3528F: security/keys/3691F: security/keys/
3529 3692
3693KEYS-TRUSTED
3694M: David Safford <safford@watson.ibm.com>
3695M: Mimi Zohar <zohar@us.ibm.com>
3696L: linux-security-module@vger.kernel.org
3697L: keyrings@linux-nfs.org
3698S: Supported
3699F: Documentation/keys-trusted-encrypted.txt
3700F: include/keys/trusted-type.h
3701F: security/keys/trusted.c
3702F: security/keys/trusted.h
3703
3704KEYS-ENCRYPTED
3705M: Mimi Zohar <zohar@us.ibm.com>
3706M: David Safford <safford@watson.ibm.com>
3707L: linux-security-module@vger.kernel.org
3708L: keyrings@linux-nfs.org
3709S: Supported
3710F: Documentation/keys-trusted-encrypted.txt
3711F: include/keys/encrypted-type.h
3712F: security/keys/encrypted.c
3713F: security/keys/encrypted.h
3714
3530KGDB / KDB /debug_core3715KGDB / KDB /debug_core
3531M: Jason Wessel <jason.wessel@windriver.com>3716M: Jason Wessel <jason.wessel@windriver.com>
3532W: http://kgdb.wiki.kernel.org/3717W: http://kgdb.wiki.kernel.org/
@@ -3534,14 +3719,14 @@ L: kgdb-bugreport@lists.sourceforge.net · 1 unmodified line
3534S: Maintained3719S: Maintained
3535F: Documentation/DocBook/kgdb.tmpl3720F: Documentation/DocBook/kgdb.tmpl
3536F: drivers/misc/kgdbts.c3721F: drivers/misc/kgdbts.c
3537F: drivers/serial/kgdboc.c3722F: drivers/tty/serial/kgdboc.c
3538F: include/linux/kdb.h3723F: include/linux/kdb.h
3539F: include/linux/kgdb.h3724F: include/linux/kgdb.h
3540F: kernel/debug/3725F: kernel/debug/
3541 3726
3542KMEMCHECK3727KMEMCHECK
3543M: Vegard Nossum <vegardno@ifi.uio.no>3728M: Vegard Nossum <vegardno@ifi.uio.no>
3544M: Pekka Enberg <penberg@cs.helsinki.fi>3729M: Pekka Enberg <penberg@kernel.org>
3545S: Maintained3730S: Maintained
3546F: Documentation/kmemcheck.txt3731F: Documentation/kmemcheck.txt
3547F: arch/x86/include/asm/kmemcheck.h3732F: arch/x86/include/asm/kmemcheck.h
@@ -3978,9 +4163,8 @@ F: include/linux/module.h · 430 unmodified lines
3978F: kernel/module.c4163F: kernel/module.c
3979 4164
3980MOTION EYE VAIO PICTUREBOOK CAMERA DRIVER4165MOTION EYE VAIO PICTUREBOOK CAMERA DRIVER
3981M: Stelian Pop <stelian@popies.net>
3982W: http://popies.net/meye/4166W: http://popies.net/meye/
3983S: Maintained4167S: Orphan
3984F: Documentation/video4linux/meye.txt4168F: Documentation/video4linux/meye.txt
3985F: drivers/media/video/meye.*4169F: drivers/media/video/meye.*
3986F: include/linux/meye.h4170F: include/linux/meye.h
@@ -4246,6 +4430,7 @@ NILFS2 FILESYSTEM · 259 unmodified lines
4246M: KONISHI Ryusuke <konishi.ryusuke@lab.ntt.co.jp>4430M: KONISHI Ryusuke <konishi.ryusuke@lab.ntt.co.jp>
4247L: linux-nilfs@vger.kernel.org4431L: linux-nilfs@vger.kernel.org
4248W: http://www.nilfs.org/en/4432W: http://www.nilfs.org/en/
4433T: git git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2.git
4249S: Supported4434S: Supported
4250F: Documentation/filesystems/nilfs2.txt4435F: Documentation/filesystems/nilfs2.txt
4251F: fs/nilfs2/4436F: fs/nilfs2/
@@ -4267,11 +4452,11 @@ F: Documentation/scsi/NinjaSCSI.txt · 15 unmodified lines
4267F: drivers/scsi/nsp32*4452F: drivers/scsi/nsp32*
4268 4453
4269NTFS FILESYSTEM4454NTFS FILESYSTEM
4270M: Anton Altaparmakov <aia21@cantab.net>4455M: Anton Altaparmakov <anton@tuxera.com>
4271L: linux-ntfs-dev@lists.sourceforge.net4456L: linux-ntfs-dev@lists.sourceforge.net
4272W: http://www.linux-ntfs.org/4457W: http://www.tuxera.com/
4273T: git git://git.kernel.org/pub/scm/linux/kernel/git/aia21/ntfs-2.6.git4458T: git git://git.kernel.org/pub/scm/linux/kernel/git/aia21/ntfs-2.6.git
4274S: Maintained4459S: Supported
4275F: Documentation/filesystems/ntfs.txt4460F: Documentation/filesystems/ntfs.txt
4276F: fs/ntfs/4461F: fs/ntfs/
4277 4462
@@ -4343,6 +4528,20 @@ M: Deepak Saxena <dsaxena@plexity.net> · 65 unmodified lines
4343S: Maintained4528S: Maintained
4344F: drivers/char/hw_random/omap-rng.c4529F: drivers/char/hw_random/omap-rng.c
4345 4530
4531OMAP HWMOD SUPPORT
4532M: Benoît Cousson <b-cousson@ti.com>
4533M: Paul Walmsley <paul@pwsan.com>
4534L: linux-omap@vger.kernel.org
4535S: Maintained
4536F: arch/arm/mach-omap2/omap_hwmod.c
4537F: arch/arm/plat-omap/include/plat/omap_hwmod.h
4538
4539OMAP HWMOD DATA FOR OMAP4-BASED DEVICES
4540M: Benoît Cousson <b-cousson@ti.com>
4541L: linux-omap@vger.kernel.org
4542S: Maintained
4543F: arch/arm/mach-omap2/omap_hwmod_44xx_data.c
4544
4346OMAP USB SUPPORT4545OMAP USB SUPPORT
4347M: Felipe Balbi <balbi@ti.com>4546M: Felipe Balbi <balbi@ti.com>
4348M: David Brownell <dbrownell@users.sourceforge.net>4547M: David Brownell <dbrownell@users.sourceforge.net>
@@ -4401,7 +4600,7 @@ F: drivers/i2c/busses/i2c-ocores.c · 52 unmodified lines
4401 4600
4402OPEN FIRMWARE AND FLATTENED DEVICE TREE4601OPEN FIRMWARE AND FLATTENED DEVICE TREE
4403M: Grant Likely <grant.likely@secretlab.ca>4602M: Grant Likely <grant.likely@secretlab.ca>
4404L: devicetree-discuss@lists.ozlabs.org4603L: devicetree-discuss@lists.ozlabs.org (moderated for non-subscribers)
4405W: http://fdt.secretlab.ca4604W: http://fdt.secretlab.ca
4406T: git git://git.secretlab.ca/git/linux-2.6.git4605T: git git://git.secretlab.ca/git/linux-2.6.git
4407S: Maintained4606S: Maintained
@@ -4409,6 +4608,13 @@ F: drivers/of · 1 unmodified line
4409F: include/linux/of*.h4608F: include/linux/of*.h
4410K: of_get_property4609K: of_get_property
4411 4610
4611OPL4 DRIVER
4612M: Clemens Ladisch <clemens@ladisch.de>
4613L: alsa-devel@alsa-project.org (moderated for non-subscribers)
4614T: git git://git.alsa-project.org/alsa-kernel.git
4615S: Maintained
4616F: sound/drivers/opl4/
4617
4412OPROFILE4618OPROFILE
4413M: Robert Richter <robert.richter@amd.com>4619M: Robert Richter <robert.richter@amd.com>
4414L: oprofile-list@lists.sf.net4620L: oprofile-list@lists.sf.net
@@ -4420,7 +4626,7 @@ F: include/linux/oprofile.h · 5 unmodified lines
4420 4626
4421ORACLE CLUSTER FILESYSTEM 2 (OCFS2)4627ORACLE CLUSTER FILESYSTEM 2 (OCFS2)
4422M: Mark Fasheh <mfasheh@suse.com>4628M: Mark Fasheh <mfasheh@suse.com>
4423M: Joel Becker <joel.becker@oracle.com>4629M: Joel Becker <jlbec@evilplan.org>
4424L: ocfs2-devel@oss.oracle.com (moderated for non-subscribers)4630L: ocfs2-devel@oss.oracle.com (moderated for non-subscribers)
4425W: http://oss.oracle.com/projects/ocfs2/4631W: http://oss.oracle.com/projects/ocfs2/
4426T: git git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2.git4632T: 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
4505M: Chris Wright <chrisw@sous-sol.org>4711M: Chris Wright <chrisw@sous-sol.org>
4506M: Alok Kataria <akataria@vmware.com>4712M: Alok Kataria <akataria@vmware.com>
4507M: Rusty Russell <rusty@rustcorp.com.au>4713M: Rusty Russell <rusty@rustcorp.com.au>
4508L: virtualization@lists.osdl.org4714L: virtualization@lists.linux-foundation.org
4509S: Supported4715S: Supported
4510F: Documentation/ia64/paravirt_ops.txt4716F: Documentation/ia64/paravirt_ops.txt
4511F: arch/*/kernel/paravirt*4717F: arch/*/kernel/paravirt*
@@ -4617,6 +4823,16 @@ S: Maintained · 105 unmodified lines
4617F: crypto/pcrypt.c4823F: crypto/pcrypt.c
4618F: include/crypto/pcrypt.h4824F: include/crypto/pcrypt.h
4619 4825
4826PER-CPU MEMORY ALLOCATOR
4827M: Tejun Heo <tj@kernel.org>
4828M: Christoph Lameter <cl@linux-foundation.org>
4829L: linux-kernel@vger.kernel.org
4830T: git git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu.git
4831S: Maintained
4832F: include/linux/percpu*.h
4833F: mm/percpu*.c
4834F: arch/*/include/asm/percpu.h
4835
4620PER-TASK DELAY ACCOUNTING4836PER-TASK DELAY ACCOUNTING
4621M: Balbir Singh <balbir@linux.vnet.ibm.com>4837M: Balbir Singh <balbir@linux.vnet.ibm.com>
4622S: Maintained4838S: Maintained
@@ -4627,7 +4843,7 @@ PERFORMANCE EVENTS SUBSYSTEM · 4 unmodified lines
4627M: Peter Zijlstra <a.p.zijlstra@chello.nl>4843M: Peter Zijlstra <a.p.zijlstra@chello.nl>
4628M: Paul Mackerras <paulus@samba.org>4844M: Paul Mackerras <paulus@samba.org>
4629M: Ingo Molnar <mingo@elte.hu>4845M: Ingo Molnar <mingo@elte.hu>
4630M: Arnaldo Carvalho de Melo <acme@redhat.com>4846M: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
4631S: Supported4847S: Supported
4632F: kernel/perf_event*.c4848F: kernel/perf_event*.c
4633F: include/linux/perf_event.h4849F: include/linux/perf_event.h
@@ -4993,11 +5209,6 @@ F: kernel/rcu* · 359 unmodified lines
4993F: kernel/srcu*5209F: kernel/srcu*
4994X: kernel/rcutorture.c5210X: kernel/rcutorture.c
4995 5211
4996REAL TIME CLOCK DRIVER (LEGACY)
4997M: Paul Gortmaker <p_gortmaker@yahoo.com>
4998S: Maintained
4999F: drivers/char/rtc.c
5000
5001REAL TIME CLOCK (RTC) SUBSYSTEM5212REAL TIME CLOCK (RTC) SUBSYSTEM
5002M: Alessandro Zummo <a.zummo@towertech.it>5213M: Alessandro Zummo <a.zummo@towertech.it>
5003L: rtc-linux@googlegroups.com5214L: rtc-linux@googlegroups.com
@@ -5052,7 +5263,7 @@ L: linux-wireless@vger.kernel.org · 48 unmodified lines
5052W: http://linuxwireless.org/5263W: http://linuxwireless.org/
5053T: git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git5264T: git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git
5054S: Maintained5265S: Maintained
5055F: drivers/net/wireless/rtl818x/rtl8180*5266F: drivers/net/wireless/rtl818x/rtl8180/
5056 5267
5057RTL8187 WIRELESS DRIVER5268RTL8187 WIRELESS DRIVER
5058M: Herton Ronaldo Krzesinski <herton@mandriva.com.br>5269M: Herton Ronaldo Krzesinski <herton@mandriva.com.br>
@@ -5062,7 +5273,17 @@ L: linux-wireless@vger.kernel.org · 3 unmodified lines
5062W: http://linuxwireless.org/5273W: http://linuxwireless.org/
5063T: git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git5274T: git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git
5064S: Maintained5275S: Maintained
5065F: drivers/net/wireless/rtl818x/rtl8187*5276F: drivers/net/wireless/rtl818x/rtl8187/
5277
5278RTL8192CE WIRELESS DRIVER
5279M: Larry Finger <Larry.Finger@lwfinger.net>
5280M: Chaoming Li <chaoming_li@realsil.com.cn>
5281L: linux-wireless@vger.kernel.org
5282W: http://linuxwireless.org/
5283T: git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git
5284S: Maintained
5285F: drivers/net/wireless/rtlwifi/
5286F: drivers/net/wireless/rtlwifi/rtl8192ce/
5066 5287
5067S3 SAVAGE FRAMEBUFFER DRIVER5288S3 SAVAGE FRAMEBUFFER DRIVER
5068M: Antonino Daplas <adaplas@gmail.com>5289M: Antonino Daplas <adaplas@gmail.com>
@@ -5093,8 +5314,7 @@ S: Supported · 24 unmodified lines
5093F: drivers/s390/net/5314F: drivers/s390/net/
5094 5315
5095S390 ZCRYPT DRIVER5316S390 ZCRYPT DRIVER
5096M: Felix Beck <felix.beck@de.ibm.com>5317M: Holger Dengler <hd@linux.vnet.ibm.com>
5097M: Ralph Wuerthner <ralph.wuerthner@de.ibm.com>
5098M: linux390@de.ibm.com5318M: linux390@de.ibm.com
5099L: linux-s390@vger.kernel.org5319L: linux-s390@vger.kernel.org
5100W: http://www.ibm.com/developerworks/linux/linux390/5320W: http://www.ibm.com/developerworks/linux/linux390/
@@ -5140,7 +5360,19 @@ SAMSUNG AUDIO (ASoC) DRIVERS · 39 unmodified lines
5140M: Jassi Brar <jassi.brar@samsung.com>5360M: Jassi Brar <jassi.brar@samsung.com>
5141L: alsa-devel@alsa-project.org (moderated for non-subscribers)5361L: alsa-devel@alsa-project.org (moderated for non-subscribers)
5142S: Supported5362S: Supported
5143F: sound/soc/s3c24xx5363F: sound/soc/samsung
5364
5365TIMEKEEPING, NTP
5366M: John Stultz <johnstul@us.ibm.com>
5367M: Thomas Gleixner <tglx@linutronix.de>
5368S: Supported
5369F: include/linux/clocksource.h
5370F: include/linux/time.h
5371F: include/linux/timex.h
5372F: include/linux/timekeeping.h
5373F: kernel/time/clocksource.c
5374F: kernel/time/time*.c
5375F: kernel/time/ntp.c
5144 5376
5145TLG2300 VIDEO4LINUX-2 DRIVER5377TLG2300 VIDEO4LINUX-2 DRIVER
5146M: Huang Shijie <shijie8@gmail.com>5378M: Huang Shijie <shijie8@gmail.com>
@@ -5328,12 +5560,11 @@ S: Supported · 181 unmodified lines
5328F: drivers/scsi/be2iscsi/5560F: drivers/scsi/be2iscsi/
5329 5561
5330SERVER ENGINES 10Gbps NIC - BladeEngine 2 DRIVER5562SERVER ENGINES 10Gbps NIC - BladeEngine 2 DRIVER
5331M: Sathya Perla <sathyap@serverengines.com>5563M: Sathya Perla <sathya.perla@emulex.com>
5332M: Subbu Seetharaman <subbus@serverengines.com>5564M: Subbu Seetharaman <subbu.seetharaman@emulex.com>
5333M: Sarveshwar Bandi <sarveshwarb@serverengines.com>5565M: Ajit Khaparde <ajit.khaparde@emulex.com>
5334M: Ajit Khaparde <ajitk@serverengines.com>
5335L: netdev@vger.kernel.org5566L: netdev@vger.kernel.org
5336W: http://www.serverengines.com5567W: http://www.emulex.com
5337S: Supported5568S: Supported
5338F: drivers/net/benet/5569F: drivers/net/benet/
5339 5570
@@ -5355,7 +5586,7 @@ M: Pat Gefre <pfg@sgi.com> · 15 unmodified lines
5355L: linux-ia64@vger.kernel.org5586L: linux-ia64@vger.kernel.org
5356S: Supported5587S: Supported
5357F: Documentation/ia64/serial.txt5588F: Documentation/ia64/serial.txt
5358F: drivers/serial/ioc?_serial.c5589F: drivers/tty/serial/ioc?_serial.c
5359F: include/linux/ioc?.h5590F: include/linux/ioc?.h
5360 5591
5361SGI VISUAL WORKSTATION 320 AND 5405592SGI VISUAL WORKSTATION 320 AND 540
@@ -5377,7 +5608,7 @@ L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) · 15 unmodified lines
5377S: Maintained5608S: Maintained
5378F: Documentation/arm/Sharp-LH/ADC-LH7-Touchscreen5609F: Documentation/arm/Sharp-LH/ADC-LH7-Touchscreen
5379F: arch/arm/mach-lh7a40x/5610F: arch/arm/mach-lh7a40x/
5380F: drivers/serial/serial_lh7a40x.c5611F: drivers/tty/serial/serial_lh7a40x.c
5381F: drivers/usb/gadget/lh7a40*5612F: drivers/usb/gadget/lh7a40*
5382F: drivers/usb/host/ohci-lh7a40*5613F: drivers/usb/host/ohci-lh7a40*
5383 5614
@@ -5393,18 +5624,20 @@ F: include/linux/sfi*.h · 9 unmodified lines
5393 5624
5394SIMTEC EB110ATX (Chalice CATS)5625SIMTEC EB110ATX (Chalice CATS)
5395P: Ben Dooks5626P: Ben Dooks
5396M: Vincent Sanders <support@simtec.co.uk>5627P: Vincent Sanders <vince@simtec.co.uk>
5628M: Simtec Linux Team <linux@simtec.co.uk>
5397W: http://www.simtec.co.uk/products/EB110ATX/5629W: http://www.simtec.co.uk/products/EB110ATX/
5398S: Supported5630S: Supported
5399 5631
5400SIMTEC EB2410ITX (BAST)5632SIMTEC EB2410ITX (BAST)
5401P: Ben Dooks5633P: Ben Dooks
5402M: Vincent Sanders <support@simtec.co.uk>5634P: Vincent Sanders <vince@simtec.co.uk>
5635M: Simtec Linux Team <linux@simtec.co.uk>
5403W: http://www.simtec.co.uk/products/EB2410ITX/5636W: http://www.simtec.co.uk/products/EB2410ITX/
5404S: Supported5637S: Supported
5405F: arch/arm/mach-s3c2410/5638F: arch/arm/mach-s3c2410/mach-bast.c
5406F: drivers/*/*s3c2410*5639F: arch/arm/mach-s3c2410/bast-ide.c
5407F: drivers/*/*/*s3c2410*5640F: arch/arm/mach-s3c2410/bast-irq.c
5408 5641
5409TI DAVINCI MACHINE SUPPORT5642TI DAVINCI MACHINE SUPPORT
5410M: Kevin Hilman <khilman@deeprootsystems.com>5643M: Kevin Hilman <khilman@deeprootsystems.com>
@@ -5456,7 +5689,7 @@ F: drivers/net/sky2.* · 45 unmodified lines
5456 5689
5457SLAB ALLOCATOR5690SLAB ALLOCATOR
5458M: Christoph Lameter <cl@linux-foundation.org>5691M: Christoph Lameter <cl@linux-foundation.org>
5459M: Pekka Enberg <penberg@cs.helsinki.fi>5692M: Pekka Enberg <penberg@kernel.org>
5460M: Matt Mackall <mpm@selenic.com>5693M: Matt Mackall <mpm@selenic.com>
5461L: linux-mm@kvack.org5694L: linux-mm@kvack.org
5462S: Maintained5695S: Maintained
@@ -5597,14 +5830,14 @@ L: sparclinux@vger.kernel.org · 134 unmodified lines
5597T: git git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6.git5830T: git git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6.git
5598T: git git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next-2.6.git5831T: git git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next-2.6.git
5599S: Maintained5832S: Maintained
5600F: drivers/serial/suncore.c5833F: drivers/tty/serial/suncore.c
5601F: drivers/serial/suncore.h5834F: drivers/tty/serial/suncore.h
5602F: drivers/serial/sunhv.c5835F: drivers/tty/serial/sunhv.c
5603F: drivers/serial/sunsab.c5836F: drivers/tty/serial/sunsab.c
5604F: drivers/serial/sunsab.h5837F: drivers/tty/serial/sunsab.h
5605F: drivers/serial/sunsu.c5838F: drivers/tty/serial/sunsu.c
5606F: drivers/serial/sunzilog.c5839F: drivers/tty/serial/sunzilog.c
5607F: drivers/serial/sunzilog.h5840F: drivers/tty/serial/sunzilog.h
5608 5841
5609SPEAR PLATFORM SUPPORT5842SPEAR PLATFORM SUPPORT
5610M: Viresh Kumar <viresh.kumar@st.com>5843M: Viresh Kumar <viresh.kumar@st.com>
@@ -5712,12 +5945,6 @@ M: Ion Badulescu <ionut@badula.org> · 101 unmodified lines
5712S: Odd Fixes5945S: Odd Fixes
5713F: drivers/net/starfire*5946F: drivers/net/starfire*
5714 5947
5715STRADIS MPEG-2 DECODER DRIVER
5716M: Nathan Laredo <laredo@gnu.org>
5717W: http://www.stradis.com/
5718S: Maintained
5719F: drivers/media/video/stradis.c
5720
5721SUN3/3X5948SUN3/3X
5722M: Sam Creasey <sammy@sammy.net>5949M: Sam Creasey <sammy@sammy.net>
5723W: http://sammy.net/sun3/5950W: http://sammy.net/sun3/
@@ -5867,7 +6094,8 @@ F: drivers/net/tlan.* · 143 unmodified lines
5867TOMOYO SECURITY MODULE6094TOMOYO SECURITY MODULE
5868M: Kentaro Takeda <takedakn@nttdata.co.jp>6095M: Kentaro Takeda <takedakn@nttdata.co.jp>
5869M: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>6096M: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
5870L: tomoyo-users-en@lists.sourceforge.jp (subscribers-only, for developers and users in English)6097L: tomoyo-dev-en@lists.sourceforge.jp (subscribers-only, for developers in English)
6098L: tomoyo-users-en@lists.sourceforge.jp (subscribers-only, for users in English)
5871L: tomoyo-dev@lists.sourceforge.jp (subscribers-only, for developers in Japanese)6099L: tomoyo-dev@lists.sourceforge.jp (subscribers-only, for developers in Japanese)
5872L: tomoyo-users@lists.sourceforge.jp (subscribers-only, for users in Japanese)6100L: tomoyo-users@lists.sourceforge.jp (subscribers-only, for users in Japanese)
5873W: http://tomoyo.sourceforge.jp/6101W: http://tomoyo.sourceforge.jp/
@@ -5939,8 +6167,8 @@ TTY LAYER · 65 unmodified lines
5939M: Greg Kroah-Hartman <gregkh@suse.de>6167M: Greg Kroah-Hartman <gregkh@suse.de>
5940S: Maintained6168S: Maintained
5941T: git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6.git6169T: git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6.git
5942F: drivers/char/tty_*6170F: drivers/tty/*
5943F: drivers/serial/serial_core.c6171F: drivers/tty/serial/serial_core.c
5944F: include/linux/serial_core.h6172F: include/linux/serial_core.h
5945F: include/linux/serial.h6173F: include/linux/serial.h
5946F: include/linux/tty.h6174F: include/linux/tty.h
@@ -6141,6 +6369,13 @@ S: Maintained · 194 unmodified lines
6141W: http://www.one-eyed-alien.net/~mdharm/linux-usb/6369W: http://www.one-eyed-alien.net/~mdharm/linux-usb/
6142F: drivers/usb/storage/6370F: drivers/usb/storage/
6143 6371
6372USB MIDI DRIVER
6373M: Clemens Ladisch <clemens@ladisch.de>
6374L: alsa-devel@alsa-project.org (moderated for non-subscribers)
6375T: git git://git.alsa-project.org/alsa-kernel.git
6376S: Maintained
6377F: sound/usb/midi.*
6378
6144USB OHCI DRIVER6379USB OHCI DRIVER
6145M: David Brownell <dbrownell@users.sourceforge.net>6380M: David Brownell <dbrownell@users.sourceforge.net>
6146L: linux-usb@vger.kernel.org6381L: linux-usb@vger.kernel.org
@@ -6377,10 +6612,20 @@ S: Maintained · 230 unmodified lines
6377F: drivers/char/virtio_console.c6612F: drivers/char/virtio_console.c
6378F: include/linux/virtio_console.h6613F: include/linux/virtio_console.h
6379 6614
6615VIRTIO CORE, NET AND BLOCK DRIVERS
6616M: Rusty Russell <rusty@rustcorp.com.au>
6617M: "Michael S. Tsirkin" <mst@redhat.com>
6618L: virtualization@lists.linux-foundation.org
6619S: Maintained
6620F: drivers/virtio/
6621F: drivers/net/virtio_net.c
6622F: drivers/block/virtio_blk.c
6623F: include/linux/virtio_*.h
6624
6380VIRTIO HOST (VHOST)6625VIRTIO HOST (VHOST)
6381M: "Michael S. Tsirkin" <mst@redhat.com>6626M: "Michael S. Tsirkin" <mst@redhat.com>
6382L: kvm@vger.kernel.org6627L: kvm@vger.kernel.org
6383L: virtualization@lists.osdl.org6628L: virtualization@lists.linux-foundation.org
6384L: netdev@vger.kernel.org6629L: netdev@vger.kernel.org
6385S: Maintained6630S: Maintained
6386F: drivers/vhost/6631F: drivers/vhost/
@@ -6399,13 +6644,12 @@ F: Documentation/i2c/busses/i2c-viapro · 12 unmodified lines
6399F: drivers/i2c/busses/i2c-viapro.c6644F: drivers/i2c/busses/i2c-viapro.c
6400 6645
6401VIA SD/MMC CARD CONTROLLER DRIVER6646VIA SD/MMC CARD CONTROLLER DRIVER
6402M: Joseph Chan <JosephChan@via.com.tw>6647M: Bruce Chang <brucechang@via.com.tw>
6403M: Harald Welte <HaraldWelte@viatech.com>6648M: Harald Welte <HaraldWelte@viatech.com>
6404S: Maintained6649S: Maintained
6405F: drivers/mmc/host/via-sdmmc.c6650F: drivers/mmc/host/via-sdmmc.c
6406 6651
6407VIA UNICHROME(PRO)/CHROME9 FRAMEBUFFER DRIVER6652VIA UNICHROME(PRO)/CHROME9 FRAMEBUFFER DRIVER
6408M: Joseph Chan <JosephChan@via.com.tw>
6409M: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>6653M: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
6410L: linux-fbdev@vger.kernel.org6654L: linux-fbdev@vger.kernel.org
6411S: Maintained6655S: Maintained
@@ -6430,7 +6674,7 @@ F: net/8021q/ · 18 unmodified lines
6430 6674
6431VLYNQ BUS6675VLYNQ BUS
6432M: Florian Fainelli <florian@openwrt.org>6676M: Florian Fainelli <florian@openwrt.org>
6433L: openwrt-devel@lists.openwrt.org6677L: openwrt-devel@lists.openwrt.org (subscribers-only)
6434S: Maintained6678S: Maintained
6435F: drivers/vlynq/vlynq.c6679F: drivers/vlynq/vlynq.c
6436F: include/linux/vlynq.h6680F: include/linux/vlynq.h
@@ -6551,12 +6795,12 @@ S: Maintained · 114 unmodified lines
6551F: drivers/net/wireless/wl1251/*6795F: drivers/net/wireless/wl1251/*
6552 6796
6553WL1271 WIRELESS DRIVER6797WL1271 WIRELESS DRIVER
6554M: Luciano Coelho <luciano.coelho@nokia.com>6798M: Luciano Coelho <coelho@ti.com>
6555L: linux-wireless@vger.kernel.org6799L: linux-wireless@vger.kernel.org
6556W: http://wireless.kernel.org6800W: http://wireless.kernel.org/en/users/Drivers/wl12xx
6557T: git git://git.kernel.org/pub/scm/linux/kernel/git/luca/wl12xx.git6801T: git git://git.kernel.org/pub/scm/linux/kernel/git/luca/wl12xx.git
6558S: Maintained6802S: Maintained
6559F: drivers/net/wireless/wl12xx/wl1271*6803F: drivers/net/wireless/wl12xx/
6560F: include/linux/wl12xx.h6804F: include/linux/wl12xx.h
6561 6805
6562WL3501 WIRELESS PCMCIA CARD DRIVER6806WL3501 WIRELESS PCMCIA CARD DRIVER
@@ -6650,7 +6894,7 @@ XEN HYPERVISOR INTERFACE · 87 unmodified lines
6650M: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>6894M: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
6651M: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>6895M: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
6652L: xen-devel@lists.xensource.com (moderated for non-subscribers)6896L: xen-devel@lists.xensource.com (moderated for non-subscribers)
6653L: virtualization@lists.osdl.org6897L: virtualization@lists.linux-foundation.org
6654S: Supported6898S: Supported
6655F: arch/x86/xen/6899F: arch/x86/xen/
6656F: drivers/*/xen-*front.c6900F: drivers/*/xen-*front.c
@@ -6679,7 +6923,7 @@ XILINX UARTLITE SERIAL DRIVER · 22 unmodified lines
6679M: Peter Korsgaard <jacmet@sunsite.dk>6923M: Peter Korsgaard <jacmet@sunsite.dk>
6680L: linux-serial@vger.kernel.org6924L: linux-serial@vger.kernel.org
6681S: Maintained6925S: Maintained
6682F: drivers/serial/uartlite.c6926F: drivers/tty/serial/uartlite.c
6683 6927
6684YAM DRIVER FOR AX.256928YAM DRIVER FOR AX.25
6685M: Jean-Paul Roubelat <jpr@f6fbb.org>6929M: Jean-Paul Roubelat <jpr@f6fbb.org>
@@ -6725,7 +6969,7 @@ F: drivers/media/video/zoran/ · 39 unmodified lines
6725ZS DECSTATION Z85C30 SERIAL DRIVER6969ZS DECSTATION Z85C30 SERIAL DRIVER
6726M: "Maciej W. Rozycki" <macro@linux-mips.org>6970M: "Maciej W. Rozycki" <macro@linux-mips.org>
6727S: Maintained6971S: Maintained
6728F: drivers/serial/zs.*6972F: drivers/tty/serial/zs.*
6729 6973
6730GRE DEMULTIPLEXER DRIVER6974GRE DEMULTIPLEXER DRIVER
6731M: Dmitry Kozlov <xeb@mail.ru>6975M: Dmitry Kozlov <xeb@mail.ru>
Makefile+3−2
@@ -1,7 +1,7 @@
1VERSION = 21VERSION = 2
2PATCHLEVEL = 62PATCHLEVEL = 6
3SUBLEVEL = 373SUBLEVEL = 38
4EXTRAVERSION =4EXTRAVERSION = -rc6
5NAME = Flesh-Eating Bats with Fangs5NAME = Flesh-Eating Bats with Fangs
6 6
7# *DOCUMENTATION*7# *DOCUMENTATION*
@@ -224,6 +224,7 @@ ifeq ($(ARCH),m68knommu) · 216 unmodified lines
224endif224endif
225 225
226KCONFIG_CONFIG ?= .config226KCONFIG_CONFIG ?= .config
227export KCONFIG_CONFIG
227 228
228# SHELL used by kbuild229# SHELL used by kbuild
229CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \230CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
arch/Kconfig+3−0
@@ -175,4 +175,7 @@ config HAVE_PERF_EVENTS_NMI · 174 unmodified lines
175config HAVE_ARCH_JUMP_LABEL175config HAVE_ARCH_JUMP_LABEL
176 bool176 bool
177 177
178config HAVE_ARCH_MUTEX_CPU_RELAX
179 bool
180
178source "kernel/gcov/Kconfig"181source "kernel/gcov/Kconfig"
arch/alpha/Kconfig+3−13
@@ -8,6 +8,9 @@ config ALPHA · 7 unmodified lines
8 select HAVE_IRQ_WORK8 select HAVE_IRQ_WORK
9 select HAVE_PERF_EVENTS9 select HAVE_PERF_EVENTS
10 select HAVE_DMA_ATTRS10 select HAVE_DMA_ATTRS
11 select HAVE_GENERIC_HARDIRQS
12 select GENERIC_IRQ_PROBE
13 select AUTO_IRQ_AFFINITY if SMP
11 help14 help
12 The Alpha is a 64-bit general-purpose processor designed and15 The Alpha is a 64-bit general-purpose processor designed and
13 marketed by the Digital Equipment Corporation of blessed memory,16 marketed by the Digital Equipment Corporation of blessed memory,
@@ -68,19 +71,6 @@ config GENERIC_IOMAP · 54 unmodified lines
68 bool71 bool
69 default n72 default n
70 73
71config GENERIC_HARDIRQS
72 bool
73 default y
74
75config GENERIC_IRQ_PROBE
76 bool
77 default y
78
79config AUTO_IRQ_AFFINITY
80 bool
81 depends on SMP
82 default y
83
84source "init/Kconfig"74source "init/Kconfig"
85source "kernel/Kconfig.freezer"75source "kernel/Kconfig.freezer"
86 76
arch/alpha/include/asm/io.h+5−3
@@ -37,8 +37,9 @@ · 36 unmodified lines
37 */37 */
38extern inline void __set_hae(unsigned long new_hae)38extern inline void __set_hae(unsigned long new_hae)
39{39{
40 unsigned long flags;40 unsigned long flags = swpipl(IPL_MAX);
41 local_irq_save(flags);41
42 barrier();
42 43
43 alpha_mv.hae_cache = new_hae;44 alpha_mv.hae_cache = new_hae;
44 *alpha_mv.hae_register = new_hae;45 *alpha_mv.hae_register = new_hae;
@@ -46,7 +47,8 @@ extern inline void __set_hae(unsigned long new_hae) · 1 unmodified line
46 /* Re-read to make sure it was written. */47 /* Re-read to make sure it was written. */
47 new_hae = *alpha_mv.hae_register;48 new_hae = *alpha_mv.hae_register;
48 49
49 local_irq_restore(flags);50 setipl(flags);
51 barrier();
50}52}
51 53
52extern inline void set_hae(unsigned long new_hae)54extern inline void set_hae(unsigned long new_hae)
arch/alpha/include/asm/ioctls.h+1−0
@@ -92,6 +92,7 @@ · 91 unmodified lines
92#define TIOCGSID 0x5429 /* Return the session ID of FD */92#define TIOCGSID 0x5429 /* Return the session ID of FD */
93#define TIOCGPTN _IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */93#define TIOCGPTN _IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */
94#define TIOCSPTLCK _IOW('T',0x31, int) /* Lock/unlock Pty */94#define TIOCSPTLCK _IOW('T',0x31, int) /* Lock/unlock Pty */
95#define TIOCGDEV _IOR('T',0x32, unsigned int) /* Get primary device node of /dev/console */
95#define TIOCSIG _IOW('T',0x36, int) /* Generate signal on Pty slave */96#define TIOCSIG _IOW('T',0x36, int) /* Generate signal on Pty slave */
96 97
97#define TIOCSERCONFIG 0x545398#define TIOCSERCONFIG 0x5453
arch/alpha/include/asm/mman.h+3−0
@@ -53,6 +53,9 @@ · 52 unmodified lines
53#define MADV_MERGEABLE 12 /* KSM may merge identical pages */53#define MADV_MERGEABLE 12 /* KSM may merge identical pages */
54#define MADV_UNMERGEABLE 13 /* KSM may not merge identical pages */54#define MADV_UNMERGEABLE 13 /* KSM may not merge identical pages */
55 55
56#define MADV_HUGEPAGE 14 /* Worth backing with hugepages */
57#define MADV_NOHUGEPAGE 15 /* Not worth backing with hugepages */
58
56/* compatibility flags */59/* compatibility flags */
57#define MAP_FILE 060#define MAP_FILE 0
58 61
arch/alpha/include/asm/perf_event.h+0−6
@@ -1,10 +1,4 @@
1#ifndef __ASM_ALPHA_PERF_EVENT_H1#ifndef __ASM_ALPHA_PERF_EVENT_H
2#define __ASM_ALPHA_PERF_EVENT_H2#define __ASM_ALPHA_PERF_EVENT_H
3 3
4#ifdef CONFIG_PERF_EVENTS
5extern void init_hw_perf_events(void);
6#else
7static inline void init_hw_perf_events(void) { }
8#endif
9
10#endif /* __ASM_ALPHA_PERF_EVENT_H */4#endif /* __ASM_ALPHA_PERF_EVENT_H */
arch/alpha/kernel/Makefile+2−2
@@ -3,8 +3,8 @@ · 2 unmodified lines
3#3#
4 4
5extra-y := head.o vmlinux.lds5extra-y := head.o vmlinux.lds
6EXTRA_AFLAGS := $(KBUILD_CFLAGS)6asflags-y := $(KBUILD_CFLAGS)
7EXTRA_CFLAGS := -Werror -Wno-sign-compare7ccflags-y := -Werror -Wno-sign-compare
8 8
9obj-y := entry.o traps.o process.o init_task.o osf_sys.o irq.o \9obj-y := entry.o traps.o process.o init_task.o osf_sys.o irq.o \
10 irq_alpha.o signal.o setup.o ptrace.o time.o \10 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
44 44
45int irq_select_affinity(unsigned int irq)45int irq_select_affinity(unsigned int irq)
46{46{
47 struct irq_desc *desc = irq_to_desc[irq];
47 static int last_cpu;48 static int last_cpu;
48 int cpu = last_cpu + 1;49 int cpu = last_cpu + 1;
49 50
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])
51 return 1;52 return 1;
52 53
53 while (!cpu_possible(cpu) ||54 while (!cpu_possible(cpu) ||
@@ -55,8 +56,8 @@ int irq_select_affinity(unsigned int irq) · 1 unmodified line
55 cpu = (cpu < (NR_CPUS-1) ? cpu + 1 : 0);56 cpu = (cpu < (NR_CPUS-1) ? cpu + 1 : 0);
56 last_cpu = cpu;57 last_cpu = cpu;
57 58
58 cpumask_copy(irq_desc[irq].affinity, cpumask_of(cpu));59 cpumask_copy(desc->affinity, cpumask_of(cpu));
59 irq_desc[irq].chip->set_affinity(irq, cpumask_of(cpu));60 get_irq_desc_chip(desc)->set_affinity(irq, cpumask_of(cpu));
60 return 0;61 return 0;
61}62}
62#endif /* CONFIG_SMP */63#endif /* CONFIG_SMP */
@@ -67,6 +68,7 @@ show_interrupts(struct seq_file *p, void *v) · 4 unmodified lines
67 int j;68 int j;
68 int irq = *(loff_t *) v;69 int irq = *(loff_t *) v;
69 struct irqaction * action;70 struct irqaction * action;
71 struct irq_desc *desc;
70 unsigned long flags;72 unsigned long flags;
71 73
72#ifdef CONFIG_SMP74#ifdef CONFIG_SMP
@@ -79,8 +81,13 @@ show_interrupts(struct seq_file *p, void *v) · 6 unmodified lines
79#endif81#endif
80 82
81 if (irq < ACTUAL_NR_IRQS) {83 if (irq < ACTUAL_NR_IRQS) {
82 raw_spin_lock_irqsave(&irq_desc[irq].lock, flags);84 desc = irq_to_desc(irq);
83 action = irq_desc[irq].action;85
86 if (!desc)
87 return 0;
88
89 raw_spin_lock_irqsave(&desc->lock, flags);
90 action = desc->action;
84 if (!action) 91 if (!action)
85 goto unlock;92 goto unlock;
86 seq_printf(p, "%3d: ", irq);93 seq_printf(p, "%3d: ", irq);
@@ -90,7 +97,7 @@ show_interrupts(struct seq_file *p, void *v) · 3 unmodified lines
90 for_each_online_cpu(j)97 for_each_online_cpu(j)
91 seq_printf(p, "%10u ", kstat_irqs_cpu(irq, j));98 seq_printf(p, "%10u ", kstat_irqs_cpu(irq, j));
92#endif99#endif
93 seq_printf(p, " %14s", irq_desc[irq].chip->name);100 seq_printf(p, " %14s", get_irq_desc_chip(desc)->name);
94 seq_printf(p, " %c%s",101 seq_printf(p, " %c%s",
95 (action->flags & IRQF_DISABLED)?'+':' ',102 (action->flags & IRQF_DISABLED)?'+':' ',
96 action->name);103 action->name);
@@ -103,7 +110,7 @@ show_interrupts(struct seq_file *p, void *v) · 6 unmodified lines
103 110
104 seq_putc(p, '\n');111 seq_putc(p, '\n');
105unlock:112unlock:
106 raw_spin_unlock_irqrestore(&irq_desc[irq].lock, flags);113 raw_spin_unlock_irqrestore(&desc->lock, flags);
107 } else if (irq == ACTUAL_NR_IRQS) {114 } else if (irq == ACTUAL_NR_IRQS) {
108#ifdef CONFIG_SMP115#ifdef CONFIG_SMP
109 seq_puts(p, "IPI: ");116 seq_puts(p, "IPI: ");
@@ -142,8 +149,10 @@ handle_irq(int irq) · 32 unmodified lines
142 * handled by some other CPU. (or is disabled)149 * handled by some other CPU. (or is disabled)
143 */150 */
144 static unsigned int illegal_count=0;151 static unsigned int illegal_count=0;
152 struct irq_desc *desc = irq_to_desc(irq);
145 153
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)) {
147 irq_err_count++;156 irq_err_count++;
148 illegal_count++;157 illegal_count++;
149 printk(KERN_CRIT "device_interrupt: invalid interrupt %d\n",158 printk(KERN_CRIT "device_interrupt: invalid interrupt %d\n",
@@ -151,14 +160,14 @@ handle_irq(int irq) · 1 unmodified line
151 return;160 return;
152 }161 }
153 162
154 irq_enter();
155 /*163 /*
156 * __do_IRQ() must be called with IPL_MAX. Note that we do not164 * From here we must proceed with IPL_MAX. Note that we do not
157 * explicitly enable interrupts afterwards - some MILO PALcode165 * explicitly enable interrupts afterwards - some MILO PALcode
158 * (namely LX164 one) seems to have severe problems with RTI166 * (namely LX164 one) seems to have severe problems with RTI
159 * at IPL 0.167 * at IPL 0.
160 */168 */
161 local_irq_disable();169 local_irq_disable();
162 __do_IRQ(irq);170 irq_enter();
171 generic_handle_irq_desc(irq, desc);
163 irq_exit();172 irq_exit();
164}173}
arch/alpha/kernel/irq_alpha.c+8−18
@@ -112,8 +112,6 @@ init_IRQ(void) · 111 unmodified lines
112 wrent(entInt, 0);112 wrent(entInt, 0);
113 113
114 alpha_mv.init_irq();114 alpha_mv.init_irq();
115
116 init_hw_perf_events();
117}115}
118 116
119/*117/*
@@ -221,31 +219,23 @@ process_mcheck_info(unsigned long vector, unsigned long la_ptr, · 101 unmodified lines
221 * processed by PALcode, and comes in via entInt vector 1.219 * processed by PALcode, and comes in via entInt vector 1.
222 */220 */
223 221
224static void rtc_enable_disable(unsigned int irq) { }
225static unsigned int rtc_startup(unsigned int irq) { return 0; }
226
227struct irqaction timer_irqaction = {222struct irqaction timer_irqaction = {
228 .handler = timer_interrupt,223 .handler = timer_interrupt,
229 .flags = IRQF_DISABLED,224 .flags = IRQF_DISABLED,
230 .name = "timer",225 .name = "timer",
231};226};
232 227
233static 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
243void __init228void __init
244init_rtc_irq(void)229init_rtc_irq(void)
245{230{
246 irq_desc[RTC_IRQ].status = IRQ_DISABLED;231 struct irq_desc *desc = irq_to_desc(RTC_IRQ);
247 irq_desc[RTC_IRQ].chip = &rtc_irq_type;232
248 setup_irq(RTC_IRQ, &timer_irqaction);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 }
249}239}
250 240
251/* Dummy irqactions. */241/* 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
69 spin_unlock(&i8259_irq_lock);69 spin_unlock(&i8259_irq_lock);
70}70}
71 71
72unsigned int
73i8259a_startup_irq(unsigned int irq)
74{
75 i8259a_enable_irq(irq);
76 return 0; /* never anything pending */
77}
78
79void
80i8259a_end_irq(unsigned int irq)
81{
82 if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
83 i8259a_enable_irq(irq);
84}
85
86struct irq_chip i8259a_irq_type = {72struct irq_chip i8259a_irq_type = {
87 .name = "XT-PIC",73 .name = "XT-PIC",
88 .startup = i8259a_startup_irq,74 .unmask = i8259a_enable_irq,
89 .shutdown = i8259a_disable_irq,75 .mask = i8259a_disable_irq,
90 .enable = i8259a_enable_irq,76 .mask_ack = i8259a_mask_and_ack_irq,
91 .disable = i8259a_disable_irq,
92 .ack = i8259a_mask_and_ack_irq,
93 .end = i8259a_end_irq,
94};77};
95 78
96void __init79void __init
@@ -107,8 +90,7 @@ init_i8259a_irqs(void) · 10 unmodified lines
107 outb(0xff, 0xA1); /* mask all of 8259A-2 */90 outb(0xff, 0xA1); /* mask all of 8259A-2 */
108 91
109 for (i = 0; i < 16; i++) {92 for (i = 0; i < 16; i++) {
110 irq_desc[i].status = IRQ_DISABLED;93 set_irq_chip_and_handler(i, &i8259a_irq_type, handle_level_irq);
111 irq_desc[i].chip = &i8259a_irq_type;
112 }94 }
113 95
114 setup_irq(2, &cascade);96 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
40 pyxis_update_irq_hw(cached_irq_mask &= ~(1UL << (irq - 16)));40 pyxis_update_irq_hw(cached_irq_mask &= ~(1UL << (irq - 16)));
41}41}
42 42
43static unsigned int
44pyxis_startup_irq(unsigned int irq)
45{
46 pyxis_enable_irq(irq);
47 return 0;
48}
49
50static void
51pyxis_end_irq(unsigned int irq)
52{
53 if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
54 pyxis_enable_irq(irq);
55}
56
57static void43static void
58pyxis_mask_and_ack_irq(unsigned int irq)44pyxis_mask_and_ack_irq(unsigned int irq)
59{45{
@@ -72,12 +58,9 @@ pyxis_mask_and_ack_irq(unsigned int irq) · 12 unmodified lines
72 58
73static struct irq_chip pyxis_irq_type = {59static struct irq_chip pyxis_irq_type = {
74 .name = "PYXIS",60 .name = "PYXIS",
75 .startup = pyxis_startup_irq,61 .mask_ack = pyxis_mask_and_ack_irq,
76 .shutdown = pyxis_disable_irq,62 .mask = pyxis_disable_irq,
77 .enable = pyxis_enable_irq,63 .unmask = pyxis_enable_irq,
78 .disable = pyxis_disable_irq,
79 .ack = pyxis_mask_and_ack_irq,
80 .end = pyxis_end_irq,
81};64};
82 65
83void 66void
@@ -119,8 +102,8 @@ init_pyxis_irqs(unsigned long ignore_mask) · 35 unmodified lines
119 for (i = 16; i < 48; ++i) {102 for (i = 16; i < 48; ++i) {
120 if ((ignore_mask >> i) & 1)103 if ((ignore_mask >> i) & 1)
121 continue;104 continue;
122 irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL;105 set_irq_chip_and_handler(i, &pyxis_irq_type, handle_level_irq);
123 irq_desc[i].chip = &pyxis_irq_type;106 irq_to_desc(i)->status |= IRQ_LEVEL;
124 }107 }
125 108
126 setup_irq(16+7, &isa_cascade_irqaction);109 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
33 spin_unlock(&srm_irq_lock);33 spin_unlock(&srm_irq_lock);
34}34}
35 35
36static unsigned int
37srm_startup_irq(unsigned int irq)
38{
39 srm_enable_irq(irq);
40 return 0;
41}
42
43static void
44srm_end_irq(unsigned int irq)
45{
46 if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
47 srm_enable_irq(irq);
48}
49
50/* Handle interrupts from the SRM, assuming no additional weirdness. */36/* Handle interrupts from the SRM, assuming no additional weirdness. */
51static struct irq_chip srm_irq_type = {37static struct irq_chip srm_irq_type = {
52 .name = "SRM",38 .name = "SRM",
53 .startup = srm_startup_irq,39 .unmask = srm_enable_irq,
54 .shutdown = srm_disable_irq,40 .mask = srm_disable_irq,
55 .enable = srm_enable_irq,41 .mask_ack = srm_disable_irq,
56 .disable = srm_disable_irq,
57 .ack = srm_disable_irq,
58 .end = srm_end_irq,
59};42};
60 43
61void __init44void __init
@@ -68,8 +51,8 @@ init_srm_irqs(long max, unsigned long ignore_mask) · 6 unmodified lines
68 for (i = 16; i < max; ++i) {51 for (i = 16; i < max; ++i) {
69 if (i < 64 && ((ignore_mask >> i) & 1))52 if (i < 64 && ((ignore_mask >> i) & 1))
70 continue;53 continue;
71 irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL;54 set_irq_chip_and_handler(i, &srm_irq_type, handle_level_irq);
72 irq_desc[i].chip = &srm_irq_type;55 irq_to_desc(i)->status |= IRQ_LEVEL;
73 }56 }
74}57}
75 58
arch/alpha/kernel/osf_sys.c+0−3
@@ -951,9 +951,6 @@ SYSCALL_DEFINE2(osf_utimes, const char __user *, filename, · 950 unmodified lines
951 return do_utimes(AT_FDCWD, filename, tvs ? tv : NULL, 0);951 return do_utimes(AT_FDCWD, filename, tvs ? tv : NULL, 0);
952}952}
953 953
954#define MAX_SELECT_SECONDS \
955 ((unsigned long) (MAX_SCHEDULE_TIMEOUT / HZ)-1)
956
957SYSCALL_DEFINE5(osf_select, int, n, fd_set __user *, inp, fd_set __user *, outp,954SYSCALL_DEFINE5(osf_select, int, n, fd_set __user *, inp, fd_set __user *, outp,
958 fd_set __user *, exp, struct timeval32 __user *, tvp)955 fd_set __user *, exp, struct timeval32 __user *, tvp)
959{956{
arch/alpha/kernel/perf_event.c+7−4
@@ -14,6 +14,7 @@ · 13 unmodified lines
14#include <linux/kernel.h>14#include <linux/kernel.h>
15#include <linux/kdebug.h>15#include <linux/kdebug.h>
16#include <linux/mutex.h>16#include <linux/mutex.h>
17#include <linux/init.h>
17 18
18#include <asm/hwrpb.h>19#include <asm/hwrpb.h>
19#include <asm/atomic.h>20#include <asm/atomic.h>
@@ -863,13 +864,13 @@ static void alpha_perf_event_irq_handler(unsigned long la_ptr, · 843 unmodified lines
863/*864/*
864 * Init call to initialise performance events at kernel startup.865 * Init call to initialise performance events at kernel startup.
865 */866 */
866void __init init_hw_perf_events(void)867int __init init_hw_perf_events(void)
867{868{
868 pr_info("Performance events: ");869 pr_info("Performance events: ");
869 870
870 if (!supported_cpu()) {871 if (!supported_cpu()) {
871 pr_cont("No support for your CPU.\n");872 pr_cont("No support for your CPU.\n");
872 return;873 return 0;
873 }874 }
874 875
875 pr_cont("Supported CPU type!\n");876 pr_cont("Supported CPU type!\n");
@@ -881,6 +882,8 @@ void __init init_hw_perf_events(void) · 5 unmodified lines
881 /* And set up PMU specification */882 /* And set up PMU specification */
882 alpha_pmu = &ev67_pmu;883 alpha_pmu = &ev67_pmu;
883 884
884 perf_pmu_register(&pmu);885 perf_pmu_register(&pmu, "cpu", PERF_TYPE_RAW);
885}
886 886
887 return 0;
888}
889early_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
65 *(vuip)GRU_INT_CLEAR = 0; mb();65 *(vuip)GRU_INT_CLEAR = 0; mb();
66}66}
67 67
68static unsigned int
69alcor_startup_irq(unsigned int irq)
70{
71 alcor_enable_irq(irq);
72 return 0;
73}
74
75static void68static void
76alcor_isa_mask_and_ack_irq(unsigned int irq)69alcor_isa_mask_and_ack_irq(unsigned int irq)
77{70{
@@ -82,21 +75,11 @@ alcor_isa_mask_and_ack_irq(unsigned int irq) · 4 unmodified lines
82 *(vuip)GRU_INT_CLEAR = 0; mb();75 *(vuip)GRU_INT_CLEAR = 0; mb();
83}76}
84 77
85static void
86alcor_end_irq(unsigned int irq)
87{
88 if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
89 alcor_enable_irq(irq);
90}
91
92static struct irq_chip alcor_irq_type = {78static struct irq_chip alcor_irq_type = {
93 .name = "ALCOR",79 .name = "ALCOR",
94 .startup = alcor_startup_irq,80 .unmask = alcor_enable_irq,
95 .shutdown = alcor_disable_irq,81 .mask = alcor_disable_irq,
96 .enable = alcor_enable_irq,82 .mask_ack = alcor_mask_and_ack_irq,
97 .disable = alcor_disable_irq,
98 .ack = alcor_mask_and_ack_irq,
99 .end = alcor_end_irq,
100};83};
101 84
102static void85static void
@@ -142,8 +125,8 @@ alcor_init_irq(void) · 39 unmodified lines
142 on while IRQ probing. */125 on while IRQ probing. */
143 if (i >= 16+20 && i <= 16+30)126 if (i >= 16+20 && i <= 16+30)
144 continue;127 continue;
145 irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL;128 set_irq_chip_and_handler(i, &alcor_irq_type, handle_level_irq);
146 irq_desc[i].chip = &alcor_irq_type;129 irq_to_desc(i)->status |= IRQ_LEVEL;
147 }130 }
148 i8259a_irq_type.ack = alcor_isa_mask_and_ack_irq;131 i8259a_irq_type.ack = alcor_isa_mask_and_ack_irq;
149 132
arch/alpha/kernel/sys_cabriolet.c+6−22
@@ -57,28 +57,11 @@ cabriolet_disable_irq(unsigned int irq) · 56 unmodified lines
57 cabriolet_update_irq_hw(irq, cached_irq_mask |= 1UL << irq);57 cabriolet_update_irq_hw(irq, cached_irq_mask |= 1UL << irq);
58}58}
59 59
60static unsigned int
61cabriolet_startup_irq(unsigned int irq)
62{
63 cabriolet_enable_irq(irq);
64 return 0; /* never anything pending */
65}
66
67static void
68cabriolet_end_irq(unsigned int irq)
69{
70 if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
71 cabriolet_enable_irq(irq);
72}
73
74static struct irq_chip cabriolet_irq_type = {60static struct irq_chip cabriolet_irq_type = {
75 .name = "CABRIOLET",61 .name = "CABRIOLET",
76 .startup = cabriolet_startup_irq,62 .unmask = cabriolet_enable_irq,
77 .shutdown = cabriolet_disable_irq,63 .mask = cabriolet_disable_irq,
78 .enable = cabriolet_enable_irq,64 .mask_ack = cabriolet_disable_irq,
79 .disable = cabriolet_disable_irq,
80 .ack = cabriolet_disable_irq,
81 .end = cabriolet_end_irq,
82};65};
83 66
84static void 67static void
@@ -122,8 +105,9 @@ common_init_irq(void (*srm_dev_int)(unsigned long v)) · 37 unmodified lines
122 outb(0xff, 0x806);105 outb(0xff, 0x806);
123 106
124 for (i = 16; i < 35; ++i) {107 for (i = 16; i < 35; ++i) {
125 irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL;108 set_irq_chip_and_handler(i, &cabriolet_irq_type,
126 irq_desc[i].chip = &cabriolet_irq_type;109 handle_level_irq);
110 irq_to_desc(i)->status |= IRQ_LEVEL;
127 }111 }
128 }112 }
129 113
arch/alpha/kernel/sys_dp264.c+8−42
@@ -115,20 +115,6 @@ dp264_disable_irq(unsigned int irq) · 114 unmodified lines
115 spin_unlock(&dp264_irq_lock);115 spin_unlock(&dp264_irq_lock);
116}116}
117 117
118static unsigned int
119dp264_startup_irq(unsigned int irq)
120{
121 dp264_enable_irq(irq);
122 return 0; /* never anything pending */
123}
124
125static void
126dp264_end_irq(unsigned int irq)
127{
128 if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
129 dp264_enable_irq(irq);
130}
131
132static void118static void
133clipper_enable_irq(unsigned int irq)119clipper_enable_irq(unsigned int irq)
134{120{
@@ -147,20 +133,6 @@ clipper_disable_irq(unsigned int irq) · 12 unmodified lines
147 spin_unlock(&dp264_irq_lock);133 spin_unlock(&dp264_irq_lock);
148}134}
149 135
150static unsigned int
151clipper_startup_irq(unsigned int irq)
152{
153 clipper_enable_irq(irq);
154 return 0; /* never anything pending */
155}
156
157static void
158clipper_end_irq(unsigned int irq)
159{
160 if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
161 clipper_enable_irq(irq);
162}
163
164static void136static void
165cpu_set_irq_affinity(unsigned int irq, cpumask_t affinity)137cpu_set_irq_affinity(unsigned int irq, cpumask_t affinity)
166{138{
@@ -200,23 +172,17 @@ clipper_set_affinity(unsigned int irq, const struct cpumask *affinity) · 33 unmodified lines
200 172
201static struct irq_chip dp264_irq_type = {173static struct irq_chip dp264_irq_type = {
202 .name = "DP264",174 .name = "DP264",
203 .startup = dp264_startup_irq,175 .unmask = dp264_enable_irq,
204 .shutdown = dp264_disable_irq,176 .mask = dp264_disable_irq,
205 .enable = dp264_enable_irq,177 .mask_ack = dp264_disable_irq,
206 .disable = dp264_disable_irq,
207 .ack = dp264_disable_irq,
208 .end = dp264_end_irq,
209 .set_affinity = dp264_set_affinity,178 .set_affinity = dp264_set_affinity,
210};179};
211 180
212static struct irq_chip clipper_irq_type = {181static struct irq_chip clipper_irq_type = {
213 .name = "CLIPPER",182 .name = "CLIPPER",
214 .startup = clipper_startup_irq,183 .unmask = clipper_enable_irq,
215 .shutdown = clipper_disable_irq,184 .mask = clipper_disable_irq,
216 .enable = clipper_enable_irq,185 .mask_ack = clipper_disable_irq,
217 .disable = clipper_disable_irq,
218 .ack = clipper_disable_irq,
219 .end = clipper_end_irq,
220 .set_affinity = clipper_set_affinity,186 .set_affinity = clipper_set_affinity,
221};187};
222 188
@@ -302,8 +268,8 @@ init_tsunami_irqs(struct irq_chip * ops, int imin, int imax) · 79 unmodified lines
302{268{
303 long i;269 long i;
304 for (i = imin; i <= imax; ++i) {270 for (i = imin; i <= imax; ++i) {
305 irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL;271 irq_to_desc(i)->status |= IRQ_LEVEL;
306 irq_desc[i].chip = ops;272 set_irq_chip_and_handler(i, ops, handle_level_irq);
307 }273 }
308}274}
309 275
arch/alpha/kernel/sys_eb64p.c+5−22
@@ -55,28 +55,11 @@ eb64p_disable_irq(unsigned int irq) · 54 unmodified lines
55 eb64p_update_irq_hw(irq, cached_irq_mask |= 1 << irq);55 eb64p_update_irq_hw(irq, cached_irq_mask |= 1 << irq);
56}56}
57 57
58static unsigned int
59eb64p_startup_irq(unsigned int irq)
60{
61 eb64p_enable_irq(irq);
62 return 0; /* never anything pending */
63}
64
65static void
66eb64p_end_irq(unsigned int irq)
67{
68 if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
69 eb64p_enable_irq(irq);
70}
71
72static struct irq_chip eb64p_irq_type = {58static struct irq_chip eb64p_irq_type = {
73 .name = "EB64P",59 .name = "EB64P",
74 .startup = eb64p_startup_irq,60 .unmask = eb64p_enable_irq,
75 .shutdown = eb64p_disable_irq,61 .mask = eb64p_disable_irq,
76 .enable = eb64p_enable_irq,62 .mask_ack = eb64p_disable_irq,
77 .disable = eb64p_disable_irq,
78 .ack = eb64p_disable_irq,
79 .end = eb64p_end_irq,
80};63};
81 64
82static void 65static void
@@ -135,8 +118,8 @@ eb64p_init_irq(void) · 52 unmodified lines
135 init_i8259a_irqs();118 init_i8259a_irqs();
136 119
137 for (i = 16; i < 32; ++i) {120 for (i = 16; i < 32; ++i) {
138 irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL;121 irq_to_desc(i)->status |= IRQ_LEVEL;
139 irq_desc[i].chip = &eb64p_irq_type;122 set_irq_chip_and_handler(i, &eb64p_irq_type, handle_level_irq);
140 } 123 }
141 124
142 common_init_isa_dma();125 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
66 eiger_update_irq_hw(irq, mask);66 eiger_update_irq_hw(irq, mask);
67}67}
68 68
69static unsigned int
70eiger_startup_irq(unsigned int irq)
71{
72 eiger_enable_irq(irq);
73 return 0; /* never anything pending */
74}
75
76static void
77eiger_end_irq(unsigned int irq)
78{
79 if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
80 eiger_enable_irq(irq);
81}
82
83static struct irq_chip eiger_irq_type = {69static struct irq_chip eiger_irq_type = {
84 .name = "EIGER",70 .name = "EIGER",
85 .startup = eiger_startup_irq,71 .unmask = eiger_enable_irq,
86 .shutdown = eiger_disable_irq,72 .mask = eiger_disable_irq,
87 .enable = eiger_enable_irq,73 .mask_ack = eiger_disable_irq,
88 .disable = eiger_disable_irq,
89 .ack = eiger_disable_irq,
90 .end = eiger_end_irq,
91};74};
92 75
93static void76static void
@@ -153,8 +136,8 @@ eiger_init_irq(void) · 59 unmodified lines
153 init_i8259a_irqs();136 init_i8259a_irqs();
154 137
155 for (i = 16; i < 128; ++i) {138 for (i = 16; i < 128; ++i) {
156 irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL;139 irq_to_desc(i)->status |= IRQ_LEVEL;
157 irq_desc[i].chip = &eiger_irq_type;140 set_irq_chip_and_handler(i, &eiger_irq_type, handle_level_irq);
158 }141 }
159}142}
160 143
arch/alpha/kernel/sys_jensen.c+10−45
@@ -62,30 +62,6 @@ · 61 unmodified lines
62 * world.62 * world.
63 */63 */
64 64
65static unsigned int
66jensen_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
81static void
82jensen_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
89static void65static void
90jensen_local_enable(unsigned int irq)66jensen_local_enable(unsigned int irq)
91{67{
@@ -103,29 +79,18 @@ jensen_local_disable(unsigned int irq) · 11 unmodified lines
103}79}
104 80
105static void81static void
106jensen_local_ack(unsigned int irq)82jensen_local_mask_ack(unsigned int irq)
107{83{
108 /* the parport is really hw IRQ 1, silly Jensen. */84 /* the parport is really hw IRQ 1, silly Jensen. */
109 if (irq == 7)85 if (irq == 7)
110 i8259a_mask_and_ack_irq(1);86 i8259a_mask_and_ack_irq(1);
111}87}
112 88
113static void
114jensen_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
121static struct irq_chip jensen_local_irq_type = {89static struct irq_chip jensen_local_irq_type = {
122 .name = "LOCAL",90 .name = "LOCAL",
123 .startup = jensen_local_startup,91 .unmask = jensen_local_enable,
124 .shutdown = jensen_local_shutdown,92 .mask = jensen_local_disable,
125 .enable = jensen_local_enable,93 .mask_ack = jensen_local_mask_ack,
126 .disable = jensen_local_disable,
127 .ack = jensen_local_ack,
128 .end = jensen_local_end,
129};94};
130 95
131static void 96static void
@@ -158,7 +123,7 @@ jensen_device_interrupt(unsigned long vector) · 26 unmodified lines
158 }123 }
159 124
160 /* If there is no handler yet... */125 /* If there is no handler yet... */
161 if (irq_desc[irq].action == NULL) {126 if (!irq_has_action(irq)) {
162 /* If it is a local interrupt that cannot be masked... */127 /* If it is a local interrupt that cannot be masked... */
163 if (vector >= 0x900)128 if (vector >= 0x900)
164 {129 {
@@ -206,11 +171,11 @@ jensen_init_irq(void) · 41 unmodified lines
206{171{
207 init_i8259a_irqs();172 init_i8259a_irqs();
208 173
209 irq_desc[1].chip = &jensen_local_irq_type;174 set_irq_chip_and_handler(1, &jensen_local_irq_type, handle_level_irq);
210 irq_desc[4].chip = &jensen_local_irq_type;175 set_irq_chip_and_handler(4, &jensen_local_irq_type, handle_level_irq);
211 irq_desc[3].chip = &jensen_local_irq_type;176 set_irq_chip_and_handler(3, &jensen_local_irq_type, handle_level_irq);
212 irq_desc[7].chip = &jensen_local_irq_type;177 set_irq_chip_and_handler(7, &jensen_local_irq_type, handle_level_irq);
213 irq_desc[9].chip = &jensen_local_irq_type;178 set_irq_chip_and_handler(9, &jensen_local_irq_type, handle_level_irq);
214 179
215 common_init_isa_dma();180 common_init_isa_dma();
216}181}
arch/alpha/kernel/sys_marvel.c+13−37
@@ -143,20 +143,6 @@ io7_disable_irq(unsigned int irq) · 142 unmodified lines
143 spin_unlock(&io7->irq_lock);143 spin_unlock(&io7->irq_lock);
144}144}
145 145
146static unsigned int
147io7_startup_irq(unsigned int irq)
148{
149 io7_enable_irq(irq);
150 return 0; /* never anything pending */
151}
152
153static void
154io7_end_irq(unsigned int irq)
155{
156 if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
157 io7_enable_irq(irq);
158}
159
160static void146static void
161marvel_irq_noop(unsigned int irq) 147marvel_irq_noop(unsigned int irq)
162{ 148{
@@ -171,32 +157,22 @@ marvel_irq_noop_return(unsigned int irq) · 8 unmodified lines
171 157
172static struct irq_chip marvel_legacy_irq_type = {158static struct irq_chip marvel_legacy_irq_type = {
173 .name = "LEGACY",159 .name = "LEGACY",
174 .startup = marvel_irq_noop_return,160 .mask = marvel_irq_noop,
175 .shutdown = marvel_irq_noop,161 .unmask = marvel_irq_noop,
176 .enable = marvel_irq_noop,
177 .disable = marvel_irq_noop,
178 .ack = marvel_irq_noop,
179 .end = marvel_irq_noop,
180};162};
181 163
182static struct irq_chip io7_lsi_irq_type = {164static struct irq_chip io7_lsi_irq_type = {
183 .name = "LSI",165 .name = "LSI",
184 .startup = io7_startup_irq,166 .unmask = io7_enable_irq,
185 .shutdown = io7_disable_irq,167 .mask = io7_disable_irq,
186 .enable = io7_enable_irq,168 .mask_ack = io7_disable_irq,
187 .disable = io7_disable_irq,
188 .ack = io7_disable_irq,
189 .end = io7_end_irq,
190};169};
191 170
192static struct irq_chip io7_msi_irq_type = {171static struct irq_chip io7_msi_irq_type = {
193 .name = "MSI",172 .name = "MSI",
194 .startup = io7_startup_irq,173 .unmask = io7_enable_irq,
195 .shutdown = io7_disable_irq,174 .mask = io7_disable_irq,
196 .enable = io7_enable_irq,
197 .disable = io7_disable_irq,
198 .ack = marvel_irq_noop,175 .ack = marvel_irq_noop,
199 .end = io7_end_irq,
200};176};
201 177
202static void178static void
@@ -304,8 +280,8 @@ init_io7_irqs(struct io7 *io7, · 101 unmodified lines
304 280
305 /* Set up the lsi irqs. */281 /* Set up the lsi irqs. */
306 for (i = 0; i < 128; ++i) {282 for (i = 0; i < 128; ++i) {
307 irq_desc[base + i].status = IRQ_DISABLED | IRQ_LEVEL;283 irq_to_desc(base + i)->status |= IRQ_LEVEL;
308 irq_desc[base + i].chip = lsi_ops;284 set_irq_chip_and_handler(base + i, lsi_ops, handle_level_irq);
309 }285 }
310 286
311 /* Disable the implemented irqs in hardware. */287 /* Disable the implemented irqs in hardware. */
@@ -318,8 +294,8 @@ init_io7_irqs(struct io7 *io7, · 6 unmodified lines
318 294
319 /* Set up the msi irqs. */295 /* Set up the msi irqs. */
320 for (i = 128; i < (128 + 512); ++i) {296 for (i = 128; i < (128 + 512); ++i) {
321 irq_desc[base + i].status = IRQ_DISABLED | IRQ_LEVEL;297 irq_to_desc(base + i)->status |= IRQ_LEVEL;
322 irq_desc[base + i].chip = msi_ops;298 set_irq_chip_and_handler(base + i, msi_ops, handle_level_irq);
323 }299 }
324 300
325 for (i = 0; i < 16; ++i)301 for (i = 0; i < 16; ++i)
@@ -336,8 +312,8 @@ marvel_init_irq(void) · 10 unmodified lines
336 312
337 /* Reserve the legacy irqs. */313 /* Reserve the legacy irqs. */
338 for (i = 0; i < 16; ++i) {314 for (i = 0; i < 16; ++i) {
339 irq_desc[i].status = IRQ_DISABLED;315 set_irq_chip_and_handler(i, &marvel_legacy_irq_type,
340 irq_desc[i].chip = &marvel_legacy_irq_type;316 handle_level_irq);
341 }317 }
342 318
343 /* Init the io7 irqs. */319 /* 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
54 mikasa_update_irq_hw(cached_irq_mask &= ~(1 << (irq - 16)));54 mikasa_update_irq_hw(cached_irq_mask &= ~(1 << (irq - 16)));
55}55}
56 56
57static unsigned int
58mikasa_startup_irq(unsigned int irq)
59{
60 mikasa_enable_irq(irq);
61 return 0;
62}
63
64static void
65mikasa_end_irq(unsigned int irq)
66{
67 if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
68 mikasa_enable_irq(irq);
69}
70
71static struct irq_chip mikasa_irq_type = {57static struct irq_chip mikasa_irq_type = {
72 .name = "MIKASA",58 .name = "MIKASA",
73 .startup = mikasa_startup_irq,59 .unmask = mikasa_enable_irq,
74 .shutdown = mikasa_disable_irq,60 .mask = mikasa_disable_irq,
75 .enable = mikasa_enable_irq,61 .mask_ack = mikasa_disable_irq,
76 .disable = mikasa_disable_irq,
77 .ack = mikasa_disable_irq,
78 .end = mikasa_end_irq,
79};62};
80 63
81static void 64static void
@@ -115,8 +98,8 @@ mikasa_init_irq(void) · 33 unmodified lines
115 mikasa_update_irq_hw(0);98 mikasa_update_irq_hw(0);
116 99
117 for (i = 16; i < 32; ++i) {100 for (i = 16; i < 32; ++i) {
118 irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL;101 irq_to_desc(i)->status |= IRQ_LEVEL;
119 irq_desc[i].chip = &mikasa_irq_type;102 set_irq_chip_and_handler(i, &mikasa_irq_type, handle_level_irq);
120 }103 }
121 104
122 init_i8259a_irqs();105 init_i8259a_irqs();
arch/alpha/kernel/sys_noritake.c+5−22
@@ -59,28 +59,11 @@ noritake_disable_irq(unsigned int irq) · 58 unmodified lines
59 noritake_update_irq_hw(irq, cached_irq_mask &= ~(1 << (irq - 16)));59 noritake_update_irq_hw(irq, cached_irq_mask &= ~(1 << (irq - 16)));
60}60}
61 61
62static unsigned int
63noritake_startup_irq(unsigned int irq)
64{
65 noritake_enable_irq(irq);
66 return 0;
67}
68
69static void
70noritake_end_irq(unsigned int irq)
71{
72 if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
73 noritake_enable_irq(irq);
74}
75
76static struct irq_chip noritake_irq_type = {62static struct irq_chip noritake_irq_type = {
77 .name = "NORITAKE",63 .name = "NORITAKE",
78 .startup = noritake_startup_irq,64 .unmask = noritake_enable_irq,
79 .shutdown = noritake_disable_irq,65 .mask = noritake_disable_irq,
80 .enable = noritake_enable_irq,66 .mask_ack = noritake_disable_irq,
81 .disable = noritake_disable_irq,
82 .ack = noritake_disable_irq,
83 .end = noritake_end_irq,
84};67};
85 68
86static void 69static void
@@ -144,8 +127,8 @@ noritake_init_irq(void) · 57 unmodified lines
144 outw(0, 0x54c);127 outw(0, 0x54c);
145 128
146 for (i = 16; i < 48; ++i) {129 for (i = 16; i < 48; ++i) {
147 irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL;130 irq_to_desc(i)->status |= IRQ_LEVEL;
148 irq_desc[i].chip = &noritake_irq_type;131 set_irq_chip_and_handler(i, &noritake_irq_type, handle_level_irq);
149 }132 }
150 133
151 init_i8259a_irqs();134 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
121 spin_unlock(&rawhide_irq_lock);121 spin_unlock(&rawhide_irq_lock);
122}122}
123 123
124static unsigned int
125rawhide_startup_irq(unsigned int irq)
126{
127 rawhide_enable_irq(irq);
128 return 0;
129}
130
131static void
132rawhide_end_irq(unsigned int irq)
133{
134 if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
135 rawhide_enable_irq(irq);
136}
137
138static struct irq_chip rawhide_irq_type = {124static struct irq_chip rawhide_irq_type = {
139 .name = "RAWHIDE",125 .name = "RAWHIDE",
140 .startup = rawhide_startup_irq,126 .unmask = rawhide_enable_irq,
141 .shutdown = rawhide_disable_irq,127 .mask = rawhide_disable_irq,
142 .enable = rawhide_enable_irq,128 .mask_ack = rawhide_mask_and_ack_irq,
143 .disable = rawhide_disable_irq,
144 .ack = rawhide_mask_and_ack_irq,
145 .end = rawhide_end_irq,
146};129};
147 130
148static void 131static void
@@ -194,8 +177,8 @@ rawhide_init_irq(void) · 45 unmodified lines
194 }177 }
195 178
196 for (i = 16; i < 128; ++i) {179 for (i = 16; i < 128; ++i) {
197 irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL;180 irq_to_desc(i)->status |= IRQ_LEVEL;
198 irq_desc[i].chip = &rawhide_irq_type;181 set_irq_chip_and_handler(i, &rawhide_irq_type, handle_level_irq);
199 }182 }
200 183
201 init_i8259a_irqs();184 init_i8259a_irqs();
arch/alpha/kernel/sys_rx164.c+5−22
@@ -58,28 +58,11 @@ rx164_disable_irq(unsigned int irq) · 57 unmodified lines
58 rx164_update_irq_hw(cached_irq_mask &= ~(1UL << (irq - 16)));58 rx164_update_irq_hw(cached_irq_mask &= ~(1UL << (irq - 16)));
59}59}
60 60
61static unsigned int
62rx164_startup_irq(unsigned int irq)
63{
64 rx164_enable_irq(irq);
65 return 0;
66}
67
68static void
69rx164_end_irq(unsigned int irq)
70{
71 if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
72 rx164_enable_irq(irq);
73}
74
75static struct irq_chip rx164_irq_type = {61static struct irq_chip rx164_irq_type = {
76 .name = "RX164",62 .name = "RX164",
77 .startup = rx164_startup_irq,63 .unmask = rx164_enable_irq,
78 .shutdown = rx164_disable_irq,64 .mask = rx164_disable_irq,
79 .enable = rx164_enable_irq,65 .mask_ack = rx164_disable_irq,
80 .disable = rx164_disable_irq,
81 .ack = rx164_disable_irq,
82 .end = rx164_end_irq,
83};66};
84 67
85static void 68static void
@@ -116,8 +99,8 @@ rx164_init_irq(void) · 30 unmodified lines
116 99
117 rx164_update_irq_hw(0);100 rx164_update_irq_hw(0);
118 for (i = 16; i < 40; ++i) {101 for (i = 16; i < 40; ++i) {
119 irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL;102 irq_to_desc(i)->status |= IRQ_LEVEL;
120 irq_desc[i].chip = &rx164_irq_type;103 set_irq_chip_and_handler(i, &rx164_irq_type, handle_level_irq);
121 }104 }
122 105
123 init_i8259a_irqs();106 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
474#endif474#endif
475}475}
476 476
477static unsigned int
478sable_lynx_startup_irq(unsigned int irq)
479{
480 sable_lynx_enable_irq(irq);
481 return 0;
482}
483
484static void
485sable_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
491static void477static void
492sable_lynx_mask_and_ack_irq(unsigned int irq)478sable_lynx_mask_and_ack_irq(unsigned int irq)
493{479{
@@ -503,12 +489,9 @@ sable_lynx_mask_and_ack_irq(unsigned int irq) · 9 unmodified lines
503 489
504static struct irq_chip sable_lynx_irq_type = {490static struct irq_chip sable_lynx_irq_type = {
505 .name = "SABLE/LYNX",491 .name = "SABLE/LYNX",
506 .startup = sable_lynx_startup_irq,492 .unmask = sable_lynx_enable_irq,
507 .shutdown = sable_lynx_disable_irq,493 .mask = sable_lynx_disable_irq,
508 .enable = sable_lynx_enable_irq,494 .mask_ack = sable_lynx_mask_and_ack_irq,
509 .disable = sable_lynx_disable_irq,
510 .ack = sable_lynx_mask_and_ack_irq,
511 .end = sable_lynx_end_irq,
512};495};
513 496
514static void 497static void
@@ -535,8 +518,9 @@ sable_lynx_init_irq(int nr_of_irqs) · 20 unmodified lines
535 long i;518 long i;
536 519
537 for (i = 0; i < nr_of_irqs; ++i) {520 for (i = 0; i < nr_of_irqs; ++i) {
538 irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL;521 irq_to_desc(i)->status |= IRQ_LEVEL;
539 irq_desc[i].chip = &sable_lynx_irq_type;522 set_irq_chip_and_handler(i, &sable_lynx_irq_type,
523 handle_level_irq);
540 }524 }
541 525
542 common_init_isa_dma();526 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
60 takara_update_irq_hw(irq, mask);60 takara_update_irq_hw(irq, mask);
61}61}
62 62
63static unsigned int
64takara_startup_irq(unsigned int irq)
65{
66 takara_enable_irq(irq);
67 return 0; /* never anything pending */
68}
69
70static void
71takara_end_irq(unsigned int irq)
72{
73 if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
74 takara_enable_irq(irq);
75}
76
77static struct irq_chip takara_irq_type = {63static struct irq_chip takara_irq_type = {
78 .name = "TAKARA",64 .name = "TAKARA",
79 .startup = takara_startup_irq,65 .unmask = takara_enable_irq,
80 .shutdown = takara_disable_irq,66 .mask = takara_disable_irq,
81 .enable = takara_enable_irq,67 .mask_ack = takara_disable_irq,
82 .disable = takara_disable_irq,
83 .ack = takara_disable_irq,
84 .end = takara_end_irq,
85};68};
86 69
87static void70static void
@@ -153,8 +136,8 @@ takara_init_irq(void) · 65 unmodified lines
153 takara_update_irq_hw(i, -1);136 takara_update_irq_hw(i, -1);
154 137
155 for (i = 16; i < 128; ++i) {138 for (i = 16; i < 128; ++i) {
156 irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL;139 irq_to_desc(i)->status |= IRQ_LEVEL;
157 irq_desc[i].chip = &takara_irq_type;140 set_irq_chip_and_handler(i, &takara_irq_type, handle_level_irq);
158 }141 }
159 142
160 common_init_isa_dma();143 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
129 spin_unlock(&titan_irq_lock);129 spin_unlock(&titan_irq_lock);
130}130}
131 131
132static unsigned int
133titan_startup_irq(unsigned int irq)
134{
135 titan_enable_irq(irq);
136 return 0; /* never anything pending */
137}
138
139static void
140titan_end_irq(unsigned int irq)
141{
142 if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
143 titan_enable_irq(irq);
144}
145
146static void132static void
147titan_cpu_set_irq_affinity(unsigned int irq, cpumask_t affinity)133titan_cpu_set_irq_affinity(unsigned int irq, cpumask_t affinity)
148{134{
@@ -189,20 +175,17 @@ init_titan_irqs(struct irq_chip * ops, int imin, int imax) · 40 unmodified lines
189{175{
190 long i;176 long i;
191 for (i = imin; i <= imax; ++i) {177 for (i = imin; i <= imax; ++i) {
192 irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL;178 irq_to_desc(i)->status |= IRQ_LEVEL;
193 irq_desc[i].chip = ops;179 set_irq_chip_and_handler(i, ops, handle_level_irq);
194 }180 }
195}181}
196 182
197static struct irq_chip titan_irq_type = {183static struct irq_chip titan_irq_type = {
198 .name = "TITAN",184 .name = "TITAN",
199 .startup = titan_startup_irq,185 .unmask = titan_enable_irq,
200 .shutdown = titan_disable_irq,186 .mask = titan_disable_irq,
201 .enable = titan_enable_irq,187 .mask_ack = titan_disable_irq,
202 .disable = titan_disable_irq,188 .set_affinity = titan_set_irq_affinity,
203 .ack = titan_disable_irq,
204 .end = titan_end_irq,
205 .set_affinity = titan_set_irq_affinity,
206};189};
207 190
208static irqreturn_t191static 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
139 spin_unlock(&wildfire_irq_lock);139 spin_unlock(&wildfire_irq_lock);
140}140}
141 141
142static unsigned int
143wildfire_startup_irq(unsigned int irq)
144{
145 wildfire_enable_irq(irq);
146 return 0; /* never anything pending */
147}
148
149static void
150wildfire_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
160static struct irq_chip wildfire_irq_type = {142static struct irq_chip wildfire_irq_type = {
161 .name = "WILDFIRE",143 .name = "WILDFIRE",
162 .startup = wildfire_startup_irq,144 .unmask = wildfire_enable_irq,
163 .shutdown = wildfire_disable_irq,145 .mask = wildfire_disable_irq,
164 .enable = wildfire_enable_irq,146 .mask_ack = wildfire_mask_and_ack_irq,
165 .disable = wildfire_disable_irq,
166 .ack = wildfire_mask_and_ack_irq,
167 .end = wildfire_end_irq,
168};147};
169 148
170static void __init149static void __init
@@ -198,15 +177,18 @@ wildfire_init_irq_per_pca(int qbbno, int pcano) · 27 unmodified lines
198 for (i = 0; i < 16; ++i) {177 for (i = 0; i < 16; ++i) {
199 if (i == 2)178 if (i == 2)
200 continue;179 continue;
201 irq_desc[i+irq_bias].status = IRQ_DISABLED | IRQ_LEVEL;180 irq_to_desc(i+irq_bias)->status |= IRQ_LEVEL;
202 irq_desc[i+irq_bias].chip = &wildfire_irq_type;181 set_irq_chip_and_handler(i+irq_bias, &wildfire_irq_type,
182 handle_level_irq);
203 }183 }
204 184
205 irq_desc[36+irq_bias].status = IRQ_DISABLED | IRQ_LEVEL;185 irq_to_desc(36+irq_bias)->status |= IRQ_LEVEL;
206 irq_desc[36+irq_bias].chip = &wildfire_irq_type;186 set_irq_chip_and_handler(36+irq_bias, &wildfire_irq_type,
187 handle_level_irq);
207 for (i = 40; i < 64; ++i) {188 for (i = 40; i < 64; ++i) {
208 irq_desc[i+irq_bias].status = IRQ_DISABLED | IRQ_LEVEL;189 irq_to_desc(i+irq_bias)->status |= IRQ_LEVEL;
209 irq_desc[i+irq_bias].chip = &wildfire_irq_type;190 set_irq_chip_and_handler(i+irq_bias, &wildfire_irq_type,
191 handle_level_irq);
210 }192 }
211 193
212 setup_irq(32+irq_bias, &isa_enable); 194 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
506 CMOS_WRITE(real_seconds,RTC_SECONDS);506 CMOS_WRITE(real_seconds,RTC_SECONDS);
507 CMOS_WRITE(real_minutes,RTC_MINUTES);507 CMOS_WRITE(real_minutes,RTC_MINUTES);
508 } else {508 } else {
509 printk(KERN_WARNING509 printk_once(KERN_NOTICE
510 "set_rtc_mmss: can't update from %d to %d\n",510 "set_rtc_mmss: can't update from %d to %d\n",
511 cmos_minutes, real_minutes);511 cmos_minutes, real_minutes);
512 retval = -1;512 retval = -1;
arch/alpha/lib/Makefile+2−2
@@ -2,8 +2,8 @@ · 1 unmodified line
2# Makefile for alpha-specific library files..2# Makefile for alpha-specific library files..
3#3#
4 4
5EXTRA_AFLAGS := $(KBUILD_CFLAGS)5asflags-y := $(KBUILD_CFLAGS)
6EXTRA_CFLAGS := -Werror6ccflags-y := -Werror
7 7
8# Many of these routines have implementations tuned for ev6.8# Many of these routines have implementations tuned for ev6.
9# Choose them iff we're targeting ev6 specifically.9# Choose them iff we're targeting ev6 specifically.
arch/alpha/math-emu/Makefile+1−1
@@ -2,7 +2,7 @@ · 1 unmodified line
2# Makefile for the FPU instruction emulation.2# Makefile for the FPU instruction emulation.
3#3#
4 4
5EXTRA_CFLAGS := -w5ccflags-y := -w
6 6
7obj-$(CONFIG_MATHEMU) += math-emu.o7obj-$(CONFIG_MATHEMU) += math-emu.o
8 8
arch/alpha/mm/Makefile+1−1
@@ -2,7 +2,7 @@ · 1 unmodified line
2# Makefile for the linux alpha-specific parts of the memory manager.2# Makefile for the linux alpha-specific parts of the memory manager.
3#3#
4 4
5EXTRA_CFLAGS := -Werror5ccflags-y := -Werror
6 6
7obj-y := init.o fault.o extable.o7obj-y := init.o fault.o extable.o
8 8
arch/alpha/oprofile/Makefile+1−1
@@ -1,4 +1,4 @@
1EXTRA_CFLAGS := -Werror -Wno-sign-compare1ccflags-y := -Werror -Wno-sign-compare
2 2
3obj-$(CONFIG_OPROFILE) += oprofile.o3obj-$(CONFIG_OPROFILE) += oprofile.o
4 4
arch/arm/Kconfig+131−51
@@ -2,6 +2,7 @@ config ARM · 1 unmodified line
2 bool2 bool
3 default y3 default y
4 select HAVE_AOUT4 select HAVE_AOUT
5 select HAVE_DMA_API_DEBUG
5 select HAVE_IDE6 select HAVE_IDE
6 select HAVE_MEMBLOCK7 select HAVE_MEMBLOCK
7 select RTC_LIB8 select RTC_LIB
@@ -14,6 +15,7 @@ config ARM · 6 unmodified lines
14 select HAVE_FUNCTION_TRACER if (!XIP_KERNEL)15 select HAVE_FUNCTION_TRACER if (!XIP_KERNEL)
15 select HAVE_FTRACE_MCOUNT_RECORD if (!XIP_KERNEL)16 select HAVE_FTRACE_MCOUNT_RECORD if (!XIP_KERNEL)
16 select HAVE_DYNAMIC_FTRACE if (!XIP_KERNEL)17 select HAVE_DYNAMIC_FTRACE if (!XIP_KERNEL)
18 select HAVE_FUNCTION_GRAPH_TRACER if (!THUMB2_KERNEL)
17 select HAVE_GENERIC_DMA_COHERENT19 select HAVE_GENERIC_DMA_COHERENT
18 select HAVE_KERNEL_GZIP20 select HAVE_KERNEL_GZIP
19 select HAVE_KERNEL_LZO21 select HAVE_KERNEL_LZO
@@ -23,6 +25,9 @@ config ARM · 3 unmodified lines
23 select PERF_USE_VMALLOC25 select PERF_USE_VMALLOC
24 select HAVE_REGS_AND_STACK_ACCESS_API26 select HAVE_REGS_AND_STACK_ACCESS_API
25 select HAVE_HW_BREAKPOINT if (PERF_EVENTS && (CPU_V6 || CPU_V7))27 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
26 help31 help
27 The ARM series is a line of low-power-consumption RISC chip designs32 The ARM series is a line of low-power-consumption RISC chip designs
28 licensed by ARM Ltd and targeted at embedded applications and33 licensed by ARM Ltd and targeted at embedded applications and
@@ -34,9 +39,15 @@ config ARM · 5 unmodified lines
34config HAVE_PWM39config HAVE_PWM
35 bool40 bool
36 41
42config MIGHT_HAVE_PCI
43 bool
44
37config SYS_SUPPORTS_APM_EMULATION45config SYS_SUPPORTS_APM_EMULATION
38 bool46 bool
39 47
48config HAVE_SCHED_CLOCK
49 bool
50
40config GENERIC_GPIO51config GENERIC_GPIO
41 bool52 bool
42 53
@@ -88,10 +99,6 @@ config MCA · 45 unmodified lines
88 <file:Documentation/mca.txt> (and especially the web page given99 <file:Documentation/mca.txt> (and especially the web page given
89 there) before attempting to build an MCA bus kernel.100 there) before attempting to build an MCA bus kernel.
90 101
91config GENERIC_HARDIRQS
92 bool
93 default y
94
95config STACKTRACE_SUPPORT102config STACKTRACE_SUPPORT
96 bool103 bool
97 default y104 default y
@@ -171,9 +178,6 @@ config FIQ · 73 unmodified lines
171config ARCH_MTD_XIP178config ARCH_MTD_XIP
172 bool179 bool
173 180
174config GENERIC_HARDIRQS_NO__DO_IRQ
175 def_bool y
176
177config ARM_L1_CACHE_SHIFT_6181config ARM_L1_CACHE_SHIFT_6
178 bool182 bool
179 help183 help
@@ -221,7 +225,7 @@ config ARCH_INTEGRATOR · 41 unmodified lines
221 bool "ARM Ltd. Integrator family"225 bool "ARM Ltd. Integrator family"
222 select ARM_AMBA226 select ARM_AMBA
223 select ARCH_HAS_CPUFREQ227 select ARCH_HAS_CPUFREQ
224 select COMMON_CLKDEV228 select CLKDEV_LOOKUP
225 select ICST229 select ICST
226 select GENERIC_CLOCKEVENTS230 select GENERIC_CLOCKEVENTS
227 select PLAT_VERSATILE231 select PLAT_VERSATILE
@@ -231,7 +235,8 @@ config ARCH_INTEGRATOR · 3 unmodified lines
231config ARCH_REALVIEW235config ARCH_REALVIEW
232 bool "ARM Ltd. RealView family"236 bool "ARM Ltd. RealView family"
233 select ARM_AMBA237 select ARM_AMBA
234 select COMMON_CLKDEV238 select CLKDEV_LOOKUP
239 select HAVE_SCHED_CLOCK
235 select ICST240 select ICST
236 select GENERIC_CLOCKEVENTS241 select GENERIC_CLOCKEVENTS
237 select ARCH_WANT_OPTIONAL_GPIOLIB242 select ARCH_WANT_OPTIONAL_GPIOLIB
@@ -245,7 +250,8 @@ config ARCH_VERSATILE · 7 unmodified lines
245 bool "ARM Ltd. Versatile family"250 bool "ARM Ltd. Versatile family"
246 select ARM_AMBA251 select ARM_AMBA
247 select ARM_VIC252 select ARM_VIC
248 select COMMON_CLKDEV253 select CLKDEV_LOOKUP
254 select HAVE_SCHED_CLOCK
249 select ICST255 select ICST
250 select GENERIC_CLOCKEVENTS256 select GENERIC_CLOCKEVENTS
251 select ARCH_WANT_OPTIONAL_GPIOLIB257 select ARCH_WANT_OPTIONAL_GPIOLIB
@@ -259,9 +265,10 @@ config ARCH_VEXPRESS · 7 unmodified lines
259 select ARCH_WANT_OPTIONAL_GPIOLIB265 select ARCH_WANT_OPTIONAL_GPIOLIB
260 select ARM_AMBA266 select ARM_AMBA
261 select ARM_TIMER_SP804267 select ARM_TIMER_SP804
262 select COMMON_CLKDEV268 select CLKDEV_LOOKUP
263 select GENERIC_CLOCKEVENTS269 select GENERIC_CLOCKEVENTS
264 select HAVE_CLK270 select HAVE_CLK
271 select HAVE_SCHED_CLOCK
265 select ICST272 select ICST
266 select PLAT_VERSATILE273 select PLAT_VERSATILE
267 help274 help
@@ -280,7 +287,7 @@ config ARCH_BCMRING · 12 unmodified lines
280 depends on MMU287 depends on MMU
281 select CPU_V6288 select CPU_V6
282 select ARM_AMBA289 select ARM_AMBA
283 select COMMON_CLKDEV290 select CLKDEV_LOOKUP
284 select GENERIC_CLOCKEVENTS291 select GENERIC_CLOCKEVENTS
285 select ARCH_WANT_OPTIONAL_GPIOLIB292 select ARCH_WANT_OPTIONAL_GPIOLIB
286 help293 help
@@ -298,6 +305,7 @@ config ARCH_CNS3XXX · 11 unmodified lines
298 select CPU_V6305 select CPU_V6
299 select GENERIC_CLOCKEVENTS306 select GENERIC_CLOCKEVENTS
300 select ARM_GIC307 select ARM_GIC
308 select MIGHT_HAVE_PCI
301 select PCI_DOMAINS if PCI309 select PCI_DOMAINS if PCI
302 help310 help
303 Support for Cavium Networks CNS3XXX platform.311 Support for Cavium Networks CNS3XXX platform.
@@ -327,7 +335,7 @@ config ARCH_EP93XX · 23 unmodified lines
327 select CPU_ARM920T335 select CPU_ARM920T
328 select ARM_AMBA336 select ARM_AMBA
329 select ARM_VIC337 select ARM_VIC
330 select COMMON_CLKDEV338 select CLKDEV_LOOKUP
331 select ARCH_REQUIRE_GPIOLIB339 select ARCH_REQUIRE_GPIOLIB
332 select ARCH_HAS_HOLES_MEMORYMODEL340 select ARCH_HAS_HOLES_MEMORYMODEL
333 select ARCH_USES_GETTIMEOFFSET341 select ARCH_USES_GETTIMEOFFSET
@@ -347,14 +355,22 @@ config ARCH_MXC · 13 unmodified lines
347 bool "Freescale MXC/iMX-based"355 bool "Freescale MXC/iMX-based"
348 select GENERIC_CLOCKEVENTS356 select GENERIC_CLOCKEVENTS
349 select ARCH_REQUIRE_GPIOLIB357 select ARCH_REQUIRE_GPIOLIB
350 select COMMON_CLKDEV358 select CLKDEV_LOOKUP
351 help359 help
352 Support for Freescale MXC/iMX-based family of processors360 Support for Freescale MXC/iMX-based family of processors
353 361
362config 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
354config ARCH_STMP3XXX370config ARCH_STMP3XXX
355 bool "Freescale STMP3xxx"371 bool "Freescale STMP3xxx"
356 select CPU_ARM926T372 select CPU_ARM926T
357 select COMMON_CLKDEV373 select CLKDEV_LOOKUP
358 select ARCH_REQUIRE_GPIOLIB374 select ARCH_REQUIRE_GPIOLIB
359 select GENERIC_CLOCKEVENTS375 select GENERIC_CLOCKEVENTS
360 select USB_ARCH_HAS_EHCI376 select USB_ARCH_HAS_EHCI
@@ -433,6 +449,8 @@ config ARCH_IXP4XX · 72 unmodified lines
433 select CPU_XSCALE449 select CPU_XSCALE
434 select GENERIC_GPIO450 select GENERIC_GPIO
435 select GENERIC_CLOCKEVENTS451 select GENERIC_CLOCKEVENTS
452 select HAVE_SCHED_CLOCK
453 select MIGHT_HAVE_PCI
436 select DMABOUNCE if PCI454 select DMABOUNCE if PCI
437 help455 help
438 Support for Intel's IXP4XX (XScale) family of processors.456 Support for Intel's IXP4XX (XScale) family of processors.
@@ -472,7 +490,7 @@ config ARCH_LPC32XX · 33 unmodified lines
472 select HAVE_IDE490 select HAVE_IDE
473 select ARM_AMBA491 select ARM_AMBA
474 select USB_ARCH_HAS_OHCI492 select USB_ARCH_HAS_OHCI
475 select COMMON_CLKDEV493 select CLKDEV_LOOKUP
476 select GENERIC_TIME494 select GENERIC_TIME
477 select GENERIC_CLOCKEVENTS495 select GENERIC_CLOCKEVENTS
478 help496 help
@@ -506,8 +524,9 @@ config ARCH_MMP · 27 unmodified lines
506 bool "Marvell PXA168/910/MMP2"524 bool "Marvell PXA168/910/MMP2"
507 depends on MMU525 depends on MMU
508 select ARCH_REQUIRE_GPIOLIB526 select ARCH_REQUIRE_GPIOLIB
509 select COMMON_CLKDEV527 select CLKDEV_LOOKUP
510 select GENERIC_CLOCKEVENTS528 select GENERIC_CLOCKEVENTS
529 select HAVE_SCHED_CLOCK
511 select TICK_ONESHOT530 select TICK_ONESHOT
512 select PLAT_PXA531 select PLAT_PXA
513 select SPARSE_IRQ532 select SPARSE_IRQ
@@ -539,7 +558,7 @@ config ARCH_W90X900 · 25 unmodified lines
539 bool "Nuvoton W90X900 CPU"558 bool "Nuvoton W90X900 CPU"
540 select CPU_ARM926T559 select CPU_ARM926T
541 select ARCH_REQUIRE_GPIOLIB560 select ARCH_REQUIRE_GPIOLIB
542 select COMMON_CLKDEV561 select CLKDEV_LOOKUP
543 select GENERIC_CLOCKEVENTS562 select GENERIC_CLOCKEVENTS
544 help563 help
545 Support for Nuvoton (Winbond logic dept.) ARM9 processor,564 Support for Nuvoton (Winbond logic dept.) ARM9 processor,
@@ -553,18 +572,19 @@ config ARCH_W90X900 · 7 unmodified lines
553config ARCH_NUC93X572config ARCH_NUC93X
554 bool "Nuvoton NUC93X CPU"573 bool "Nuvoton NUC93X CPU"
555 select CPU_ARM926T574 select CPU_ARM926T
556 select COMMON_CLKDEV575 select CLKDEV_LOOKUP
557 help576 help
558 Support for Nuvoton (Winbond logic dept.) NUC93X MCU,The NUC93X is a577 Support for Nuvoton (Winbond logic dept.) NUC93X MCU,The NUC93X is a
559 low-power and high performance MPEG-4/JPEG multimedia controller chip.578 low-power and high performance MPEG-4/JPEG multimedia controller chip.
560 579
561config ARCH_TEGRA580config ARCH_TEGRA
562 bool "NVIDIA Tegra"581 bool "NVIDIA Tegra"
582 select CLKDEV_LOOKUP
563 select GENERIC_TIME583 select GENERIC_TIME
564 select GENERIC_CLOCKEVENTS584 select GENERIC_CLOCKEVENTS
565 select GENERIC_GPIO585 select GENERIC_GPIO
566 select HAVE_CLK586 select HAVE_CLK
567 select COMMON_CLKDEV587 select HAVE_SCHED_CLOCK
568 select ARCH_HAS_BARRIERS if CACHE_L2X0588 select ARCH_HAS_BARRIERS if CACHE_L2X0
569 select ARCH_HAS_CPUFREQ589 select ARCH_HAS_CPUFREQ
570 help590 help
@@ -574,7 +594,7 @@ config ARCH_TEGRA · 3 unmodified lines
574config ARCH_PNX4008594config ARCH_PNX4008
575 bool "Philips Nexperia PNX4008 Mobile"595 bool "Philips Nexperia PNX4008 Mobile"
576 select CPU_ARM926T596 select CPU_ARM926T
577 select COMMON_CLKDEV597 select CLKDEV_LOOKUP
578 select ARCH_USES_GETTIMEOFFSET598 select ARCH_USES_GETTIMEOFFSET
579 help599 help
580 This enables support for Philips PNX4008 mobile platform.600 This enables support for Philips PNX4008 mobile platform.
@@ -584,9 +604,10 @@ config ARCH_PXA · 3 unmodified lines
584 depends on MMU604 depends on MMU
585 select ARCH_MTD_XIP605 select ARCH_MTD_XIP
586 select ARCH_HAS_CPUFREQ606 select ARCH_HAS_CPUFREQ
587 select COMMON_CLKDEV607 select CLKDEV_LOOKUP
588 select ARCH_REQUIRE_GPIOLIB608 select ARCH_REQUIRE_GPIOLIB
589 select GENERIC_CLOCKEVENTS609 select GENERIC_CLOCKEVENTS
610 select HAVE_SCHED_CLOCK
590 select TICK_ONESHOT611 select TICK_ONESHOT
591 select PLAT_PXA612 select PLAT_PXA
592 select SPARSE_IRQ613 select SPARSE_IRQ
@@ -606,9 +627,15 @@ config ARCH_MSM · 13 unmodified lines
606 (clock and power control, etc).627 (clock and power control, etc).
607 628
608config ARCH_SHMOBILE629config 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
610 help637 help
611 Support for Renesas's SH-Mobile ARM platforms638 Support for Renesas's SH-Mobile and R-Mobile ARM platforms.
612 639
613config ARCH_RPC640config ARCH_RPC
614 bool "RiscPC"641 bool "RiscPC"
@@ -635,6 +662,7 @@ config ARCH_SA1100 · 20 unmodified lines
635 select CPU_FREQ662 select CPU_FREQ
636 select GENERIC_CLOCKEVENTS663 select GENERIC_CLOCKEVENTS
637 select HAVE_CLK664 select HAVE_CLK
665 select HAVE_SCHED_CLOCK
638 select TICK_ONESHOT666 select TICK_ONESHOT
639 select ARCH_REQUIRE_GPIOLIB667 select ARCH_REQUIRE_GPIOLIB
640 help668 help
@@ -738,6 +766,7 @@ config ARCH_S5PV310 · 97 unmodified lines
738 select ARCH_SPARSEMEM_ENABLE766 select ARCH_SPARSEMEM_ENABLE
739 select GENERIC_GPIO767 select GENERIC_GPIO
740 select HAVE_CLK768 select HAVE_CLK
769 select ARCH_HAS_CPUFREQ
741 select GENERIC_CLOCKEVENTS770 select GENERIC_CLOCKEVENTS
742 select HAVE_S3C_RTC if RTC_CLASS771 select HAVE_S3C_RTC if RTC_CLASS
743 select HAVE_S3C2410_I2C if I2C772 select HAVE_S3C2410_I2C if I2C
@@ -761,7 +790,7 @@ config ARCH_TCC_926 · 17 unmodified lines
761 bool "Telechips TCC ARM926-based systems"790 bool "Telechips TCC ARM926-based systems"
762 select CPU_ARM926T791 select CPU_ARM926T
763 select HAVE_CLK792 select HAVE_CLK
764 select COMMON_CLKDEV793 select CLKDEV_LOOKUP
765 select GENERIC_CLOCKEVENTS794 select GENERIC_CLOCKEVENTS
766 help795 help
767 Support for Telechips TCC ARM926-based systems.796 Support for Telechips TCC ARM926-based systems.
@@ -781,11 +810,12 @@ config ARCH_U300 · 13 unmodified lines
781 bool "ST-Ericsson U300 Series"810 bool "ST-Ericsson U300 Series"
782 depends on MMU811 depends on MMU
783 select CPU_ARM926T812 select CPU_ARM926T
813 select HAVE_SCHED_CLOCK
784 select HAVE_TCM814 select HAVE_TCM
785 select ARM_AMBA815 select ARM_AMBA
786 select ARM_VIC816 select ARM_VIC
787 select GENERIC_CLOCKEVENTS817 select GENERIC_CLOCKEVENTS
788 select COMMON_CLKDEV818 select CLKDEV_LOOKUP
789 select GENERIC_GPIO819 select GENERIC_GPIO
790 help820 help
791 Support for ST-Ericsson U300 series mobile platforms.821 Support for ST-Ericsson U300 series mobile platforms.
@@ -795,8 +825,9 @@ config ARCH_U8500 · 3 unmodified lines
795 select CPU_V7825 select CPU_V7
796 select ARM_AMBA826 select ARM_AMBA
797 select GENERIC_CLOCKEVENTS827 select GENERIC_CLOCKEVENTS
798 select COMMON_CLKDEV828 select CLKDEV_LOOKUP
799 select ARCH_REQUIRE_GPIOLIB829 select ARCH_REQUIRE_GPIOLIB
830 select ARCH_HAS_CPUFREQ
800 help831 help
801 Support for ST-Ericsson's Ux500 architecture832 Support for ST-Ericsson's Ux500 architecture
802 833
@@ -805,7 +836,7 @@ config ARCH_NOMADIK · 2 unmodified lines
805 select ARM_AMBA836 select ARM_AMBA
806 select ARM_VIC837 select ARM_VIC
807 select CPU_ARM926T838 select CPU_ARM926T
808 select COMMON_CLKDEV839 select CLKDEV_LOOKUP
809 select GENERIC_CLOCKEVENTS840 select GENERIC_CLOCKEVENTS
810 select ARCH_REQUIRE_GPIOLIB841 select ARCH_REQUIRE_GPIOLIB
811 help842 help
@@ -817,7 +848,7 @@ config ARCH_DAVINCI · 5 unmodified lines
817 select ARCH_REQUIRE_GPIOLIB848 select ARCH_REQUIRE_GPIOLIB
818 select ZONE_DMA849 select ZONE_DMA
819 select HAVE_IDE850 select HAVE_IDE
820 select COMMON_CLKDEV851 select CLKDEV_LOOKUP
821 select GENERIC_ALLOCATOR852 select GENERIC_ALLOCATOR
822 select ARCH_HAS_HOLES_MEMORYMODEL853 select ARCH_HAS_HOLES_MEMORYMODEL
823 help854 help
@@ -829,6 +860,7 @@ config ARCH_OMAP · 5 unmodified lines
829 select ARCH_REQUIRE_GPIOLIB860 select ARCH_REQUIRE_GPIOLIB
830 select ARCH_HAS_CPUFREQ861 select ARCH_HAS_CPUFREQ
831 select GENERIC_CLOCKEVENTS862 select GENERIC_CLOCKEVENTS
863 select HAVE_SCHED_CLOCK
832 select ARCH_HAS_HOLES_MEMORYMODEL864 select ARCH_HAS_HOLES_MEMORYMODEL
833 help865 help
834 Support for TI's OMAP platform (OMAP1/2/3/4).866 Support for TI's OMAP platform (OMAP1/2/3/4).
@@ -837,7 +869,7 @@ config PLAT_SPEAR · 2 unmodified lines
837 bool "ST SPEAr"869 bool "ST SPEAr"
838 select ARM_AMBA870 select ARM_AMBA
839 select ARCH_REQUIRE_GPIOLIB871 select ARCH_REQUIRE_GPIOLIB
840 select COMMON_CLKDEV872 select CLKDEV_LOOKUP
841 select GENERIC_CLOCKEVENTS873 select GENERIC_CLOCKEVENTS
842 select HAVE_CLK874 select HAVE_CLK
843 help875 help
@@ -902,6 +934,8 @@ source "arch/arm/mach-mv78xx0/Kconfig" · 58 unmodified lines
902 934
903source "arch/arm/plat-mxc/Kconfig"935source "arch/arm/plat-mxc/Kconfig"
904 936
937source "arch/arm/mach-mxs/Kconfig"
938
905source "arch/arm/mach-netx/Kconfig"939source "arch/arm/mach-netx/Kconfig"
906 940
907source "arch/arm/mach-nomadik/Kconfig"941source "arch/arm/mach-nomadik/Kconfig"
@@ -982,9 +1016,11 @@ config ARCH_ACORN · 74 unmodified lines
982config PLAT_IOP1016config PLAT_IOP
983 bool1017 bool
984 select GENERIC_CLOCKEVENTS1018 select GENERIC_CLOCKEVENTS
1019 select HAVE_SCHED_CLOCK
985 1020
986config PLAT_ORION1021config PLAT_ORION
987 bool1022 bool
1023 select HAVE_SCHED_CLOCK
988 1024
989config PLAT_PXA1025config PLAT_PXA
990 bool1026 bool
@@ -999,8 +1035,8 @@ source arch/arm/mm/Kconfig · 8 unmodified lines
999 1035
1000config IWMMXT1036config IWMMXT
1001 bool "Enable iWMMXt support"1037 bool "Enable iWMMXt support"
1002 depends on CPU_XSCALE || CPU_XSC3 || CPU_MOHAWK1038 depends on CPU_XSCALE || CPU_XSC3 || CPU_MOHAWK || CPU_PJ4
1003 default y if PXA27x || PXA3xx || ARCH_MMP1039 default y if PXA27x || PXA3xx || PXA95x || ARCH_MMP
1004 help1040 help
1005 Enable support for iWMMXt context switching at run time if1041 Enable support for iWMMXt context switching at run time if
1006 running on a CPU that supports it.1042 running on a CPU that supports it.
@@ -1017,6 +1053,11 @@ config CPU_HAS_PMU · 10 unmodified lines
1017 default y1053 default y
1018 bool1054 bool
1019 1055
1056config MULTI_IRQ_HANDLER
1057 bool
1058 help
1059 Allow each machine to specify it's own IRQ handler at run time.
1060
1020if !MMU1061if !MMU
1021source "arch/arm/Kconfig-nommu"1062source "arch/arm/Kconfig-nommu"
1022endif1063endif
@@ -1136,6 +1177,31 @@ config ARM_ERRATA_743622 · 113 unmodified lines
1136 visible impact on the overall performance or power consumption of the1177 visible impact on the overall performance or power consumption of the
1137 processor.1178 processor.
1138 1179
1180config 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
1190config 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
1139endmenu1205endmenu
1140 1206
1141source "arch/arm/common/Kconfig"1207source "arch/arm/common/Kconfig"
@@ -1164,7 +1230,7 @@ config ISA_DMA_API · 22 unmodified lines
1164 bool1230 bool
1165 1231
1166config PCI1232config PCI
1167 bool "PCI support" if ARCH_INTEGRATOR_AP || ARCH_VERSATILE_PB || ARCH_IXP4XX || ARCH_KS8695 || MACH_ARMCORE || ARCH_CNS3XXX1233 bool "PCI support" if MIGHT_HAVE_PCI
1168 help1234 help
1169 Find out whether you have a PCI motherboard. PCI is the name of a1235 Find out whether you have a PCI motherboard. PCI is the name of a
1170 bus system, i.e. the way the CPU talks to the other stuff inside1236 bus system, i.e. the way the CPU talks to the other stuff inside
@@ -1175,6 +1241,12 @@ config PCI_DOMAINS · 4 unmodified lines
1175 bool1241 bool
1176 depends on PCI1242 depends on PCI
1177 1243
1244config PCI_NANOENGINE
1245 bool "BSE nanoEngine PCI support"
1246 depends on SA1100_NANOENGINE
1247 help
1248 Enable PCI on the BSE nanoEngine board.
1249
1178config PCI_SYSCALL1250config PCI_SYSCALL
1179 def_bool PCI1251 def_bool PCI
1180 1252
@@ -1205,10 +1277,11 @@ config SMP · 24 unmodified lines
1205 depends on EXPERIMENTAL1277 depends on EXPERIMENTAL
1206 depends on GENERIC_CLOCKEVENTS1278 depends on GENERIC_CLOCKEVENTS
1207 depends on REALVIEW_EB_ARM11MP || REALVIEW_EB_A9MP || \1279 depends on REALVIEW_EB_ARM11MP || REALVIEW_EB_A9MP || \
1208 MACH_REALVIEW_PB11MP || MACH_REALVIEW_PBX || ARCH_OMAP4 ||\1280 MACH_REALVIEW_PB11MP || MACH_REALVIEW_PBX || ARCH_OMAP4 || \
1209 ARCH_S5PV310 || ARCH_TEGRA || ARCH_U8500 || ARCH_VEXPRESS_CA9X41281 ARCH_S5PV310 || ARCH_TEGRA || ARCH_U8500 || ARCH_VEXPRESS_CA9X4 || \
1282 ARCH_MSM_SCORPIONMP || ARCH_SHMOBILE
1210 select USE_GENERIC_SMP_HELPERS1283 select USE_GENERIC_SMP_HELPERS
1211 select HAVE_ARM_SCU1284 select HAVE_ARM_SCU if !ARCH_MSM_SCORPIONMP
1212 help1285 help
1213 This enables support for systems with more than one CPU. If you have1286 This enables support for systems with more than one CPU. If you have
1214 a system with only one CPU, like most personal computers, say N. If1287 a system with only one CPU, like most personal computers, say N. If
@@ -1229,7 +1302,7 @@ config SMP · 14 unmodified lines
1229config SMP_ON_UP1302config SMP_ON_UP
1230 bool "Allow booting SMP kernel on uniprocessor systems (EXPERIMENTAL)"1303 bool "Allow booting SMP kernel on uniprocessor systems (EXPERIMENTAL)"
1231 depends on EXPERIMENTAL1304 depends on EXPERIMENTAL
1232 depends on SMP && !XIP && !THUMB2_KERNEL1305 depends on SMP && !XIP_KERNEL
1233 default y1306 default y
1234 help1307 help
1235 SMP kernels contain instructions which fail on non-SMP processors.1308 SMP kernels contain instructions which fail on non-SMP processors.
@@ -1248,6 +1321,7 @@ config HAVE_ARM_SCU · 12 unmodified lines
1248config HAVE_ARM_TWD1321config HAVE_ARM_TWD
1249 bool1322 bool
1250 depends on SMP1323 depends on SMP
1324 select TICK_ONESHOT
1251 help1325 help
1252 This options enables support for the ARM timer and watchdog unit1326 This options enables support for the ARM timer and watchdog unit
1253 1327
@@ -1283,6 +1357,7 @@ config NR_CPUS · 29 unmodified lines
1283config HOTPLUG_CPU1357config HOTPLUG_CPU
1284 bool "Support for hot-pluggable CPUs (EXPERIMENTAL)"1358 bool "Support for hot-pluggable CPUs (EXPERIMENTAL)"
1285 depends on SMP && HOTPLUG && EXPERIMENTAL1359 depends on SMP && HOTPLUG && EXPERIMENTAL
1360 depends on !ARCH_MSM
1286 help1361 help
1287 Say Y here to experiment with turning CPUs off and on. CPUs1362 Say Y here to experiment with turning CPUs off and on. CPUs
1288 can be controlled through /sys/devices/system/cpu.1363 can be controlled through /sys/devices/system/cpu.
@@ -1291,7 +1366,7 @@ config LOCAL_TIMERS · 2 unmodified lines
1291 bool "Use local timer interrupts"1366 bool "Use local timer interrupts"
1292 depends on SMP1367 depends on SMP
1293 default y1368 default y
1294 select HAVE_ARM_TWD1369 select HAVE_ARM_TWD if !ARCH_MSM_SCORPIONMP
1295 help1370 help
1296 Enable support for local timers on SMP platforms, rather then the1371 Enable support for local timers on SMP platforms, rather then the
1297 legacy IPI broadcast method. Local timers allows the system1372 legacy IPI broadcast method. Local timers allows the system
@@ -1310,7 +1385,7 @@ config HZ · 12 unmodified lines
1310 default 1001385 default 100
1311 1386
1312config THUMB2_KERNEL1387config THUMB2_KERNEL
1313 bool "Compile the kernel in Thumb-2 mode"1388 bool "Compile the kernel in Thumb-2 mode (EXPERIMENTAL)"
1314 depends on CPU_V7 && !CPU_V6 && EXPERIMENTAL1389 depends on CPU_V7 && !CPU_V6 && EXPERIMENTAL
1315 select AEABI1390 select AEABI
1316 select ARM_ASM_UNIFIED1391 select ARM_ASM_UNIFIED
@@ -1341,7 +1416,7 @@ config AEABI · 24 unmodified lines
1341 1416
1342config OABI_COMPAT1417config OABI_COMPAT
1343 bool "Allow old ABI binaries to run with this kernel (EXPERIMENTAL)"1418 bool "Allow old ABI binaries to run with this kernel (EXPERIMENTAL)"
1344 depends on AEABI && EXPERIMENTAL1419 depends on AEABI && EXPERIMENTAL && !THUMB2_KERNEL
1345 default y1420 default y
1346 help1421 help
1347 This option preserves the old syscall interface along with the1422 This option preserves the old syscall interface along with the
@@ -1398,15 +1473,6 @@ config HW_PERF_EVENTS · 50 unmodified lines
1398 Enable hardware performance counter support for perf events. If1473 Enable hardware performance counter support for perf events. If
1399 disabled, perf events will use software events only.1474 disabled, perf events will use software events only.
1400 1475
1401config 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
1410source "mm/Kconfig"1476source "mm/Kconfig"
1411 1477
1412config FORCE_MAX_ZONEORDER1478config FORCE_MAX_ZONEORDER
@@ -1524,6 +1590,7 @@ config SECCOMP · 111 unmodified lines
1524 1590
1525config CC_STACKPROTECTOR1591config CC_STACKPROTECTOR
1526 bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)"1592 bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)"
1593 depends on EXPERIMENTAL
1527 help1594 help
1528 This option turns on the -fstack-protector GCC feature. This1595 This option turns on the -fstack-protector GCC feature. This
1529 feature puts, at the beginning of functions, a canary value on1596 feature puts, at the beginning of functions, a canary value on
@@ -1650,6 +1717,19 @@ config ATAGS_PROC · 120 unmodified lines
1650 Should the atags used to boot the kernel be exported in an "atags"1717 Should the atags used to boot the kernel be exported in an "atags"
1651 file in procfs. Useful with kexec.1718 file in procfs. Useful with kexec.
1652 1719
1720config 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
1653config AUTO_ZRELADDR1733config AUTO_ZRELADDR
1654 bool "Auto calculation of the decompressed kernel image address"1734 bool "Auto calculation of the decompressed kernel image address"
1655 depends on !ZBOOT_ROM && !ARCH_U3001735 depends on !ZBOOT_ROM && !ARCH_U300
@@ -1707,7 +1787,7 @@ config CPU_FREQ_S3C · 51 unmodified lines
1707 Internal configuration node for common cpufreq on Samsung SoC1787 Internal configuration node for common cpufreq on Samsung SoC
1708 1788
1709config CPU_FREQ_S3C24XX1789config CPU_FREQ_S3C24XX
1710 bool "CPUfreq driver for Samsung S3C24XX series CPUs"1790 bool "CPUfreq driver for Samsung S3C24XX series CPUs (EXPERIMENTAL)"
1711 depends on ARCH_S3C2410 && CPU_FREQ && EXPERIMENTAL1791 depends on ARCH_S3C2410 && CPU_FREQ && EXPERIMENTAL
1712 select CPU_FREQ_S3C1792 select CPU_FREQ_S3C
1713 help1793 help
@@ -1719,7 +1799,7 @@ config CPU_FREQ_S3C24XX · 5 unmodified lines
1719 If in doubt, say N.1799 If in doubt, say N.
1720 1800
1721config CPU_FREQ_S3C24XX_PLL1801config CPU_FREQ_S3C24XX_PLL
1722 bool "Support CPUfreq changing of PLL frequency"1802 bool "Support CPUfreq changing of PLL frequency (EXPERIMENTAL)"
1723 depends on CPU_FREQ_S3C24XX && EXPERIMENTAL1803 depends on CPU_FREQ_S3C24XX && EXPERIMENTAL
1724 help1804 help
1725 Compile in support for changing the PLL frequency from the1805 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
23config FRAME_POINTER23config FRAME_POINTER
24 bool24 bool
25 depends on !THUMB2_KERNEL25 depends on !THUMB2_KERNEL
26 default y if !ARM_UNWIND26 default y if !ARM_UNWIND || FUNCTION_GRAPH_TRACER
27 help27 help
28 If you say N here, the resulting kernel will be slightly smaller and28 If you say N here, the resulting kernel will be slightly smaller and
29 faster. However, if neither FRAME_POINTER nor ARM_UNWIND are enabled,29 faster. However, if neither FRAME_POINTER nor ARM_UNWIND are enabled,
@@ -31,7 +31,7 @@ config FRAME_POINTER · 1 unmodified line
31 reported is severely limited.31 reported is severely limited.
32 32
33config ARM_UNWIND33config ARM_UNWIND
34 bool "Enable stack unwinding support"34 bool "Enable stack unwinding support (EXPERIMENTAL)"
35 depends on AEABI && EXPERIMENTAL35 depends on AEABI && EXPERIMENTAL
36 default y36 default y
37 help37 help
arch/arm/Makefile+3−2
@@ -15,7 +15,7 @@ ifeq ($(CONFIG_CPU_ENDIAN_BE8),y) · 14 unmodified lines
15LDFLAGS_vmlinux += --be815LDFLAGS_vmlinux += --be8
16endif16endif
17 17
18OBJCOPYFLAGS :=-O binary -R .note -R .note.gnu.build-id -R .comment -S18OBJCOPYFLAGS :=-O binary -R .comment -S
19GZFLAGS :=-919GZFLAGS :=-9
20#KBUILD_CFLAGS +=-pipe20#KBUILD_CFLAGS +=-pipe
21# Explicitly specifiy 32-bit ARM ISA since toolchain default can be -mthumb:21# Explicitly specifiy 32-bit ARM ISA since toolchain default can be -mthumb:
@@ -154,10 +154,11 @@ machine-$(CONFIG_ARCH_MSM) := msm · 132 unmodified lines
154machine-$(CONFIG_ARCH_MV78XX0) := mv78xx0154machine-$(CONFIG_ARCH_MV78XX0) := mv78xx0
155machine-$(CONFIG_ARCH_MX1) := imx155machine-$(CONFIG_ARCH_MX1) := imx
156machine-$(CONFIG_ARCH_MX2) := imx156machine-$(CONFIG_ARCH_MX2) := imx
157machine-$(CONFIG_ARCH_MX25) := mx25157machine-$(CONFIG_ARCH_MX25) := imx
158machine-$(CONFIG_ARCH_MX3) := mx3158machine-$(CONFIG_ARCH_MX3) := mx3
159machine-$(CONFIG_ARCH_MX5) := mx5159machine-$(CONFIG_ARCH_MX5) := mx5
160machine-$(CONFIG_ARCH_MXC91231) := mxc91231160machine-$(CONFIG_ARCH_MXC91231) := mxc91231
161machine-$(CONFIG_ARCH_MXS) := mxs
161machine-$(CONFIG_ARCH_NETX) := netx162machine-$(CONFIG_ARCH_NETX) := netx
162machine-$(CONFIG_ARCH_NOMADIK) := nomadik163machine-$(CONFIG_ARCH_NOMADIK) := nomadik
163machine-$(CONFIG_ARCH_NS9XXX) := ns9xxx164machine-$(CONFIG_ARCH_NS9XXX) := ns9xxx
arch/arm/boot/compressed/.gitignore+5−1
@@ -1,3 +1,7 @@
1font.c1font.c
2piggy.gz2lib1funcs.S
3piggy.gzip
4piggy.lzo
5piggy.lzma
6vmlinux
3vmlinux.lds7vmlinux.lds
arch/arm/boot/compressed/Makefile+4−0
@@ -45,6 +45,10 @@ else · 44 unmodified lines
45endif45endif
46endif46endif
47 47
48ifeq ($(CONFIG_ARCH_SHMOBILE),y)
49OBJS += head-shmobile.o
50endif
51
48#52#
49# We now have a PIC decompressor implementation. Decompressors running53# We now have a PIC decompressor implementation. Decompressors running
50# from RAM should not define ZTEXTADDR. Decompressors running directly54# 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;
431:
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
501 : .long MACH_TYPE
512 :
52
53#endif /* CONFIG_ZBOOT_ROM */
arch/arm/common/Kconfig+0−4
@@ -37,7 +37,3 @@ config SHARP_PARAM · 36 unmodified lines
37 37
38config SHARP_SCOOP38config SHARP_SCOOP
39 bool39 bool
40
41config 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
17obj-$(CONFIG_ARCH_IXP23XX) += uengine.o17obj-$(CONFIG_ARCH_IXP23XX) += uengine.o
18obj-$(CONFIG_PCI_HOST_ITE8152) += it8152.o18obj-$(CONFIG_PCI_HOST_ITE8152) += it8152.o
19obj-$(CONFIG_COMMON_CLKDEV) += clkdev.o19obj-$(CONFIG_COMMON_CLKDEV) += clkdev.o
20obj-$(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
328 * substitute the safe buffer for the unsafe one.328 * substitute the safe buffer for the unsafe one.
329 * (basically move the buffer from an unsafe area to a safe one)329 * (basically move the buffer from an unsafe area to a safe one)
330 */330 */
331dma_addr_t dma_map_single(struct device *dev, void *ptr, size_t size,331dma_addr_t __dma_map_single(struct device *dev, void *ptr, size_t size,
332 enum dma_data_direction dir)332 enum dma_data_direction dir)
333{333{
334 dev_dbg(dev, "%s(ptr=%p,size=%d,dir=%x)\n",334 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
338 338
339 return map_single(dev, ptr, size, dir);339 return map_single(dev, ptr, size, dir);
340}340}
341EXPORT_SYMBOL(dma_map_single);341EXPORT_SYMBOL(__dma_map_single);
342 342
343/*343/*
344 * see if a mapped address was really a "safe" buffer and if so, copy344 * 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
346 * the safe buffer. (basically return things back to the way they346 * the safe buffer. (basically return things back to the way they
347 * should be)347 * should be)
348 */348 */
349void dma_unmap_single(struct device *dev, dma_addr_t dma_addr, size_t size,349void __dma_unmap_single(struct device *dev, dma_addr_t dma_addr, size_t size,
350 enum dma_data_direction dir)350 enum dma_data_direction dir)
351{351{
352 dev_dbg(dev, "%s(ptr=%p,size=%d,dir=%x)\n",352 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
354 354
355 unmap_single(dev, dma_addr, size, dir);355 unmap_single(dev, dma_addr, size, dir);
356}356}
357EXPORT_SYMBOL(dma_unmap_single);357EXPORT_SYMBOL(__dma_unmap_single);
358 358
359dma_addr_t dma_map_page(struct device *dev, struct page *page,359dma_addr_t __dma_map_page(struct device *dev, struct page *page,
360 unsigned long offset, size_t size, enum dma_data_direction dir)360 unsigned long offset, size_t size, enum dma_data_direction dir)
361{361{
362 dev_dbg(dev, "%s(page=%p,off=%#lx,size=%zx,dir=%x)\n",362 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
372 372
373 return map_single(dev, page_address(page) + offset, size, dir);373 return map_single(dev, page_address(page) + offset, size, dir);
374}374}
375EXPORT_SYMBOL(dma_map_page);375EXPORT_SYMBOL(__dma_map_page);
376 376
377/*377/*
378 * see if a mapped address was really a "safe" buffer and if so, copy378 * 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
380 * the safe buffer. (basically return things back to the way they380 * the safe buffer. (basically return things back to the way they
381 * should be)381 * should be)
382 */382 */
383void dma_unmap_page(struct device *dev, dma_addr_t dma_addr, size_t size,383void __dma_unmap_page(struct device *dev, dma_addr_t dma_addr, size_t size,
384 enum dma_data_direction dir)384 enum dma_data_direction dir)
385{385{
386 dev_dbg(dev, "%s(ptr=%p,size=%d,dir=%x)\n",386 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
388 388
389 unmap_single(dev, dma_addr, size, dir);389 unmap_single(dev, dma_addr, size, dir);
390}390}
391EXPORT_SYMBOL(dma_unmap_page);391EXPORT_SYMBOL(__dma_unmap_page);
392 392
393int dmabounce_sync_for_cpu(struct device *dev, dma_addr_t addr,393int dmabounce_sync_for_cpu(struct device *dev, dma_addr_t addr,
394 unsigned long off, size_t sz, enum dma_data_direction dir)394 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
35 35
36static DEFINE_SPINLOCK(irq_controller_lock);36static DEFINE_SPINLOCK(irq_controller_lock);
37 37
38/* Address of GIC 0 CPU interface */
39void __iomem *gic_cpu_base_addr __read_mostly;
40
38struct gic_chip_data {41struct gic_chip_data {
39 unsigned int irq_offset;42 unsigned int irq_offset;
40 void __iomem *dist_base;43 void __iomem *dist_base;
@@ -45,59 +48,58 @@ struct gic_chip_data { · 4 unmodified lines
45#define MAX_GIC_NR 148#define MAX_GIC_NR 1
46#endif49#endif
47 50
48static struct gic_chip_data gic_data[MAX_GIC_NR];51static struct gic_chip_data gic_data[MAX_GIC_NR] __read_mostly;
49 52
50static inline void __iomem *gic_dist_base(unsigned int irq)53static inline void __iomem *gic_dist_base(struct irq_data *d)
51{54{
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);
53 return gic_data->dist_base;56 return gic_data->dist_base;
54}57}
55 58
56static inline void __iomem *gic_cpu_base(unsigned int irq)59static inline void __iomem *gic_cpu_base(struct irq_data *d)
57{60{
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);
59 return gic_data->cpu_base;62 return gic_data->cpu_base;
60}63}
61 64
62static inline unsigned int gic_irq(unsigned int irq)65static inline unsigned int gic_irq(struct irq_data *d)
63{66{
64 struct gic_chip_data *gic_data = get_irq_chip_data(irq);67 struct gic_chip_data *gic_data = irq_data_get_irq_chip_data(d);
65 return irq - gic_data->irq_offset;68 return d->irq - gic_data->irq_offset;
66}69}
67 70
68/*71/*
69 * Routines to acknowledge, disable and enable interrupts72 * Routines to acknowledge, disable and enable interrupts
70 */73 */
71static void gic_ack_irq(unsigned int irq)74static void gic_ack_irq(struct irq_data *d)
72{75{
73
74 spin_lock(&irq_controller_lock);76 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);
76 spin_unlock(&irq_controller_lock);78 spin_unlock(&irq_controller_lock);
77}79}
78 80
79static void gic_mask_irq(unsigned int irq)81static void gic_mask_irq(struct irq_data *d)
80{82{
81 u32 mask = 1 << (irq % 32);83 u32 mask = 1 << (d->irq % 32);
82 84
83 spin_lock(&irq_controller_lock);85 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);
85 spin_unlock(&irq_controller_lock);87 spin_unlock(&irq_controller_lock);
86}88}
87 89
88static void gic_unmask_irq(unsigned int irq)90static void gic_unmask_irq(struct irq_data *d)
89{91{
90 u32 mask = 1 << (irq % 32);92 u32 mask = 1 << (d->irq % 32);
91 93
92 spin_lock(&irq_controller_lock);94 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);
94 spin_unlock(&irq_controller_lock);96 spin_unlock(&irq_controller_lock);
95}97}
96 98
97static int gic_set_type(unsigned int irq, unsigned int type)99static int gic_set_type(struct irq_data *d, unsigned int type)
98{100{
99 void __iomem *base = gic_dist_base(irq);101 void __iomem *base = gic_dist_base(d);
100 unsigned int gicirq = gic_irq(irq);102 unsigned int gicirq = gic_irq(d);
101 u32 enablemask = 1 << (gicirq % 32);103 u32 enablemask = 1 << (gicirq % 32);
102 u32 enableoff = (gicirq / 32) * 4;104 u32 enableoff = (gicirq / 32) * 4;
103 u32 confmask = 0x2 << ((gicirq % 16) * 2);105 u32 confmask = 0x2 << ((gicirq % 16) * 2);
@@ -140,21 +142,22 @@ static int gic_set_type(unsigned int irq, unsigned int type) · 36 unmodified lines
140}142}
141 143
142#ifdef CONFIG_SMP144#ifdef CONFIG_SMP
143static int gic_set_cpu(unsigned int irq, const struct cpumask *mask_val)145static int
146gic_set_cpu(struct irq_data *d, const struct cpumask *mask_val, bool force)
144{147{
145 void __iomem *reg = gic_dist_base(irq) + GIC_DIST_TARGET + (gic_irq(irq) & ~3);148 void __iomem *reg = gic_dist_base(d) + GIC_DIST_TARGET + (gic_irq(d) & ~3);
146 unsigned int shift = (irq % 4) * 8;149 unsigned int shift = (d->irq % 4) * 8;
147 unsigned int cpu = cpumask_first(mask_val);150 unsigned int cpu = cpumask_first(mask_val);
148 u32 val;151 u32 val;
149 struct irq_desc *desc;152 struct irq_desc *desc;
150 153
151 spin_lock(&irq_controller_lock);154 spin_lock(&irq_controller_lock);
152 desc = irq_to_desc(irq);155 desc = irq_to_desc(d->irq);
153 if (desc == NULL) {156 if (desc == NULL) {
154 spin_unlock(&irq_controller_lock);157 spin_unlock(&irq_controller_lock);
155 return -EINVAL;158 return -EINVAL;
156 }159 }
157 desc->node = cpu;160 d->node = cpu;
158 val = readl(reg) & ~(0xff << shift);161 val = readl(reg) & ~(0xff << shift);
159 val |= 1 << (cpu + shift);162 val |= 1 << (cpu + shift);
160 writel(val, reg);163 writel(val, reg);
@@ -172,7 +175,7 @@ static void gic_handle_cascade_irq(unsigned int irq, struct irq_desc *desc) · 11 unmodified lines
172 unsigned long status;175 unsigned long status;
173 176
174 /* primary controller ack'ing */177 /* primary controller ack'ing */
175 chip->ack(irq);178 chip->irq_ack(&desc->irq_data);
176 179
177 spin_lock(&irq_controller_lock);180 spin_lock(&irq_controller_lock);
178 status = readl(chip_data->cpu_base + GIC_CPU_INTACK);181 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
190 193
191 out:194 out:
192 /* primary controller unmasking */195 /* primary controller unmasking */
193 chip->unmask(irq);196 chip->irq_unmask(&desc->irq_data);
194}197}
195 198
196static struct irq_chip gic_chip = {199static struct irq_chip gic_chip = {
197 .name = "GIC",200 .name = "GIC",
198 .ack = gic_ack_irq,201 .irq_ack = gic_ack_irq,
199 .mask = gic_mask_irq,202 .irq_mask = gic_mask_irq,
200 .unmask = gic_unmask_irq,203 .irq_unmask = gic_unmask_irq,
201 .set_type = gic_set_type,204 .irq_set_type = gic_set_type,
202#ifdef CONFIG_SMP205#ifdef CONFIG_SMP
203 .set_affinity = gic_set_cpu,206 .irq_set_affinity = gic_set_cpu,
204#endif207#endif
205};208};
206 209
@@ -213,21 +216,16 @@ void __init gic_cascade_irq(unsigned int gic_nr, unsigned int irq) · 6 unmodified lines
213 set_irq_chained_handler(irq, gic_handle_cascade_irq);216 set_irq_chained_handler(irq, gic_handle_cascade_irq);
214}217}
215 218
216void __init gic_dist_init(unsigned int gic_nr, void __iomem *base,219static void __init gic_dist_init(struct gic_chip_data *gic,
217 unsigned int irq_start)220 unsigned int irq_start)
218{221{
219 unsigned int gic_irqs, irq_limit, i;222 unsigned int gic_irqs, irq_limit, i;
223 void __iomem *base = gic->dist_base;
220 u32 cpumask = 1 << smp_processor_id();224 u32 cpumask = 1 << smp_processor_id();
221 225
222 if (gic_nr >= MAX_GIC_NR)
223 BUG();
224
225 cpumask |= cpumask << 8;226 cpumask |= cpumask << 8;
226 cpumask |= cpumask << 16;227 cpumask |= cpumask << 16;
227 228
228 gic_data[gic_nr].dist_base = base;
229 gic_data[gic_nr].irq_offset = (irq_start - 1) & ~31;
230
231 writel(0, base + GIC_DIST_CTRL);229 writel(0, base + GIC_DIST_CTRL);
232 230
233 /*231 /*
@@ -267,7 +265,7 @@ void __init gic_dist_init(unsigned int gic_nr, void __iomem *base, · 33 unmodified lines
267 /*265 /*
268 * Limit number of interrupts registered to the platform maximum266 * Limit number of interrupts registered to the platform maximum
269 */267 */
270 irq_limit = gic_data[gic_nr].irq_offset + gic_irqs;268 irq_limit = gic->irq_offset + gic_irqs;
271 if (WARN_ON(irq_limit > NR_IRQS))269 if (WARN_ON(irq_limit > NR_IRQS))
272 irq_limit = NR_IRQS;270 irq_limit = NR_IRQS;
273 271
@@ -276,7 +274,7 @@ void __init gic_dist_init(unsigned int gic_nr, void __iomem *base, · 2 unmodified lines
276 */274 */
277 for (i = irq_start; i < irq_limit; i++) {275 for (i = irq_start; i < irq_limit; i++) {
278 set_irq_chip(i, &gic_chip);276 set_irq_chip(i, &gic_chip);
279 set_irq_chip_data(i, &gic_data[gic_nr]);277 set_irq_chip_data(i, gic);
280 set_irq_handler(i, handle_level_irq);278 set_irq_handler(i, handle_level_irq);
281 set_irq_flags(i, IRQF_VALID | IRQF_PROBE);279 set_irq_flags(i, IRQF_VALID | IRQF_PROBE);
282 }280 }
@@ -284,19 +282,12 @@ void __init gic_dist_init(unsigned int gic_nr, void __iomem *base, · 1 unmodified line
284 writel(1, base + GIC_DIST_CTRL);282 writel(1, base + GIC_DIST_CTRL);
285}283}
286 284
287void __cpuinit gic_cpu_init(unsigned int gic_nr, void __iomem *base)285static void __cpuinit gic_cpu_init(struct gic_chip_data *gic)
288{286{
289 void __iomem *dist_base;287 void __iomem *dist_base = gic->dist_base;
288 void __iomem *base = gic->cpu_base;
290 int i;289 int i;
291 290
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
300 /*291 /*
301 * Deal with the banked PPI and SGI interrupts - disable all292 * Deal with the banked PPI and SGI interrupts - disable all
302 * PPI interrupts, ensure all SGI interrupts are enabled.293 * 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
314 writel(1, base + GIC_CPU_CTRL);305 writel(1, base + GIC_CPU_CTRL);
315}306}
316 307
308void __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
327void __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
334void __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
317#ifdef CONFIG_SMP344#ifdef CONFIG_SMP
318void gic_raise_softirq(const struct cpumask *mask, unsigned int irq)345void gic_raise_softirq(const struct cpumask *mask, unsigned int irq)
319{346{
arch/arm/common/it8152.c+10−6
@@ -31,8 +31,10 @@ · 30 unmodified lines
31 31
32#define MAX_SLOTS 2132#define MAX_SLOTS 21
33 33
34static void it8152_mask_irq(unsigned int irq)34static void it8152_mask_irq(struct irq_data *d)
35{35{
36 unsigned int irq = d->irq;
37
36 if (irq >= IT8152_LD_IRQ(0)) {38 if (irq >= IT8152_LD_IRQ(0)) {
37 __raw_writel((__raw_readl(IT8152_INTC_LDCNIMR) |39 __raw_writel((__raw_readl(IT8152_INTC_LDCNIMR) |
38 (1 << (irq - IT8152_LD_IRQ(0)))),40 (1 << (irq - IT8152_LD_IRQ(0)))),
@@ -48,8 +50,10 @@ static void it8152_mask_irq(unsigned int irq) · 9 unmodified lines
48 }50 }
49}51}
50 52
51static void it8152_unmask_irq(unsigned int irq)53static void it8152_unmask_irq(struct irq_data *d)
52{54{
55 unsigned int irq = d->irq;
56
53 if (irq >= IT8152_LD_IRQ(0)) {57 if (irq >= IT8152_LD_IRQ(0)) {
54 __raw_writel((__raw_readl(IT8152_INTC_LDCNIMR) &58 __raw_writel((__raw_readl(IT8152_INTC_LDCNIMR) &
55 ~(1 << (irq - IT8152_LD_IRQ(0)))),59 ~(1 << (irq - IT8152_LD_IRQ(0)))),
@@ -67,9 +71,9 @@ static void it8152_unmask_irq(unsigned int irq) · 11 unmodified lines
67 71
68static struct irq_chip it8152_irq_chip = {72static struct irq_chip it8152_irq_chip = {
69 .name = "it8152",73 .name = "it8152",
70 .ack = it8152_mask_irq,74 .irq_ack = it8152_mask_irq,
71 .mask = it8152_mask_irq,75 .irq_mask = it8152_mask_irq,
72 .unmask = it8152_unmask_irq,76 .irq_unmask = it8152_unmask_irq,
73};77};
74 78
75void it8152_init_irq(void)79void it8152_init_irq(void)
@@ -236,7 +240,7 @@ static struct resource it8152_mem = { · 160 unmodified lines
236 240
237/*241/*
238 * The following functions are needed for DMA bouncing.242 * The following functions are needed for DMA bouncing.
239 * ITE8152 chip can addrees up to 64MByte, so all the devices243 * ITE8152 chip can address up to 64MByte, so all the devices
240 * connected to ITE8152 (PCI and USB) should have limited DMA window244 * connected to ITE8152 (PCI and USB) should have limited DMA window
241 */245 */
242 246
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
144 int req, i;144 int req, i;
145 145
146 /* Acknowledge the parent IRQ */146 /* Acknowledge the parent IRQ */
147 desc->chip->ack(irq);147 desc->irq_data.chip->irq_ack(&desc->irq_data);
148 148
149 /* check why this interrupt was generated */149 /* check why this interrupt was generated */
150 req = locomo_readl(lchip->base + LOCOMO_ICR) & 0x0f00;150 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
161 }161 }
162}162}
163 163
164static void locomo_ack_irq(unsigned int irq)164static void locomo_ack_irq(struct irq_data *d)
165{165{
166}166}
167 167
168static void locomo_mask_irq(unsigned int irq)168static void locomo_mask_irq(struct irq_data *d)
169{169{
170 struct locomo *lchip = get_irq_chip_data(irq);170 struct locomo *lchip = irq_data_get_irq_chip_data(d);
171 unsigned int r;171 unsigned int r;
172 r = locomo_readl(lchip->base + LOCOMO_ICR);172 r = locomo_readl(lchip->base + LOCOMO_ICR);
173 r &= ~(0x0010 << (irq - lchip->irq_base));173 r &= ~(0x0010 << (d->irq - lchip->irq_base));
174 locomo_writel(r, lchip->base + LOCOMO_ICR);174 locomo_writel(r, lchip->base + LOCOMO_ICR);
175}175}
176 176
177static void locomo_unmask_irq(unsigned int irq)177static void locomo_unmask_irq(struct irq_data *d)
178{178{
179 struct locomo *lchip = get_irq_chip_data(irq);179 struct locomo *lchip = irq_data_get_irq_chip_data(d);
180 unsigned int r;180 unsigned int r;
181 r = locomo_readl(lchip->base + LOCOMO_ICR);181 r = locomo_readl(lchip->base + LOCOMO_ICR);
182 r |= (0x0010 << (irq - lchip->irq_base));182 r |= (0x0010 << (d->irq - lchip->irq_base));
183 locomo_writel(r, lchip->base + LOCOMO_ICR);183 locomo_writel(r, lchip->base + LOCOMO_ICR);
184}184}
185 185
186static struct irq_chip locomo_chip = {186static struct irq_chip locomo_chip = {
187 .name = "LOCOMO",187 .name = "LOCOMO",
188 .ack = locomo_ack_irq,188 .irq_ack = locomo_ack_irq,
189 .mask = locomo_mask_irq,189 .irq_mask = locomo_mask_irq,
190 .unmask = locomo_unmask_irq,190 .irq_unmask = locomo_unmask_irq,
191};191};
192 192
193static void locomo_setup_irq(struct locomo *lchip)193static 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
210 210
211 sa1111_writel(stat0, mapbase + SA1111_INTSTATCLR0);211 sa1111_writel(stat0, mapbase + SA1111_INTSTATCLR0);
212 212
213 desc->chip->ack(irq);213 desc->irq_data.chip->irq_ack(&desc->irq_data);
214 214
215 sa1111_writel(stat1, mapbase + SA1111_INTSTATCLR1);215 sa1111_writel(stat1, mapbase + SA1111_INTSTATCLR1);
216 216
@@ -228,35 +228,35 @@ sa1111_irq_handler(unsigned int irq, struct irq_desc *desc) · 11 unmodified lines
228 generic_handle_irq(i + sachip->irq_base);228 generic_handle_irq(i + sachip->irq_base);
229 229
230 /* For level-based interrupts */230 /* For level-based interrupts */
231 desc->chip->unmask(irq);231 desc->irq_data.chip->irq_unmask(&desc->irq_data);
232}232}
233 233
234#define SA1111_IRQMASK_LO(x) (1 << (x - sachip->irq_base))234#define SA1111_IRQMASK_LO(x) (1 << (x - sachip->irq_base))
235#define SA1111_IRQMASK_HI(x) (1 << (x - sachip->irq_base - 32))235#define SA1111_IRQMASK_HI(x) (1 << (x - sachip->irq_base - 32))
236 236
237static void sa1111_ack_irq(unsigned int irq)237static void sa1111_ack_irq(struct irq_data *d)
238{238{
239}239}
240 240
241static void sa1111_mask_lowirq(unsigned int irq)241static void sa1111_mask_lowirq(struct irq_data *d)
242{242{
243 struct sa1111 *sachip = get_irq_chip_data(irq);243 struct sa1111 *sachip = irq_data_get_irq_chip_data(d);
244 void __iomem *mapbase = sachip->base + SA1111_INTC;244 void __iomem *mapbase = sachip->base + SA1111_INTC;
245 unsigned long ie0;245 unsigned long ie0;
246 246
247 ie0 = sa1111_readl(mapbase + SA1111_INTEN0);247 ie0 = sa1111_readl(mapbase + SA1111_INTEN0);
248 ie0 &= ~SA1111_IRQMASK_LO(irq);248 ie0 &= ~SA1111_IRQMASK_LO(d->irq);
249 writel(ie0, mapbase + SA1111_INTEN0);249 writel(ie0, mapbase + SA1111_INTEN0);
250}250}
251 251
252static void sa1111_unmask_lowirq(unsigned int irq)252static void sa1111_unmask_lowirq(struct irq_data *d)
253{253{
254 struct sa1111 *sachip = get_irq_chip_data(irq);254 struct sa1111 *sachip = irq_data_get_irq_chip_data(d);
255 void __iomem *mapbase = sachip->base + SA1111_INTC;255 void __iomem *mapbase = sachip->base + SA1111_INTC;
256 unsigned long ie0;256 unsigned long ie0;
257 257
258 ie0 = sa1111_readl(mapbase + SA1111_INTEN0);258 ie0 = sa1111_readl(mapbase + SA1111_INTEN0);
259 ie0 |= SA1111_IRQMASK_LO(irq);259 ie0 |= SA1111_IRQMASK_LO(d->irq);
260 sa1111_writel(ie0, mapbase + SA1111_INTEN0);260 sa1111_writel(ie0, mapbase + SA1111_INTEN0);
261}261}
262 262
@@ -267,11 +267,11 @@ static void sa1111_unmask_lowirq(unsigned int irq) · 4 unmodified lines
267 * be triggered. In fact, its very difficult, if not impossible to get267 * be triggered. In fact, its very difficult, if not impossible to get
268 * INTSET to re-trigger the interrupt.268 * INTSET to re-trigger the interrupt.
269 */269 */
270static int sa1111_retrigger_lowirq(unsigned int irq)270static int sa1111_retrigger_lowirq(struct irq_data *d)
271{271{
272 struct sa1111 *sachip = get_irq_chip_data(irq);272 struct sa1111 *sachip = irq_data_get_irq_chip_data(d);
273 void __iomem *mapbase = sachip->base + SA1111_INTC;273 void __iomem *mapbase = sachip->base + SA1111_INTC;
274 unsigned int mask = SA1111_IRQMASK_LO(irq);274 unsigned int mask = SA1111_IRQMASK_LO(d->irq);
275 unsigned long ip0;275 unsigned long ip0;
276 int i;276 int i;
277 277
@@ -279,21 +279,21 @@ static int sa1111_retrigger_lowirq(unsigned int irq) · 1 unmodified line
279 for (i = 0; i < 8; i++) {279 for (i = 0; i < 8; i++) {
280 sa1111_writel(ip0 ^ mask, mapbase + SA1111_INTPOL0);280 sa1111_writel(ip0 ^ mask, mapbase + SA1111_INTPOL0);
281 sa1111_writel(ip0, mapbase + SA1111_INTPOL0);281 sa1111_writel(ip0, mapbase + SA1111_INTPOL0);
282 if (sa1111_readl(mapbase + SA1111_INTSTATCLR1) & mask)282 if (sa1111_readl(mapbase + SA1111_INTSTATCLR0) & mask)
283 break;283 break;
284 }284 }
285 285
286 if (i == 8)286 if (i == 8)
287 printk(KERN_ERR "Danger Will Robinson: failed to "287 printk(KERN_ERR "Danger Will Robinson: failed to "
288 "re-trigger IRQ%d\n", irq);288 "re-trigger IRQ%d\n", d->irq);
289 return i == 8 ? -1 : 0;289 return i == 8 ? -1 : 0;
290}290}
291 291
292static int sa1111_type_lowirq(unsigned int irq, unsigned int flags)292static int sa1111_type_lowirq(struct irq_data *d, unsigned int flags)
293{293{
294 struct sa1111 *sachip = get_irq_chip_data(irq);294 struct sa1111 *sachip = irq_data_get_irq_chip_data(d);
295 void __iomem *mapbase = sachip->base + SA1111_INTC;295 void __iomem *mapbase = sachip->base + SA1111_INTC;
296 unsigned int mask = SA1111_IRQMASK_LO(irq);296 unsigned int mask = SA1111_IRQMASK_LO(d->irq);
297 unsigned long ip0;297 unsigned long ip0;
298 298
299 if (flags == IRQ_TYPE_PROBE)299 if (flags == IRQ_TYPE_PROBE)
@@ -313,11 +313,11 @@ static int sa1111_type_lowirq(unsigned int irq, unsigned int flags) · 13 unmodified lines
313 return 0;313 return 0;
314}314}
315 315
316static int sa1111_wake_lowirq(unsigned int irq, unsigned int on)316static int sa1111_wake_lowirq(struct irq_data *d, unsigned int on)
317{317{
318 struct sa1111 *sachip = get_irq_chip_data(irq);318 struct sa1111 *sachip = irq_data_get_irq_chip_data(d);
319 void __iomem *mapbase = sachip->base + SA1111_INTC;319 void __iomem *mapbase = sachip->base + SA1111_INTC;
320 unsigned int mask = SA1111_IRQMASK_LO(irq);320 unsigned int mask = SA1111_IRQMASK_LO(d->irq);
321 unsigned long we0;321 unsigned long we0;
322 322
323 we0 = sa1111_readl(mapbase + SA1111_WAKEEN0);323 we0 = sa1111_readl(mapbase + SA1111_WAKEEN0);
@@ -332,33 +332,33 @@ static int sa1111_wake_lowirq(unsigned int irq, unsigned int on) · 8 unmodified lines
332 332
333static struct irq_chip sa1111_low_chip = {333static struct irq_chip sa1111_low_chip = {
334 .name = "SA1111-l",334 .name = "SA1111-l",
335 .ack = sa1111_ack_irq,335 .irq_ack = sa1111_ack_irq,
336 .mask = sa1111_mask_lowirq,336 .irq_mask = sa1111_mask_lowirq,
337 .unmask = sa1111_unmask_lowirq,337 .irq_unmask = sa1111_unmask_lowirq,
338 .retrigger = sa1111_retrigger_lowirq,338 .irq_retrigger = sa1111_retrigger_lowirq,
339 .set_type = sa1111_type_lowirq,339 .irq_set_type = sa1111_type_lowirq,
340 .set_wake = sa1111_wake_lowirq,340 .irq_set_wake = sa1111_wake_lowirq,
341};341};
342 342
343static void sa1111_mask_highirq(unsigned int irq)343static void sa1111_mask_highirq(struct irq_data *d)
344{344{
345 struct sa1111 *sachip = get_irq_chip_data(irq);345 struct sa1111 *sachip = irq_data_get_irq_chip_data(d);
346 void __iomem *mapbase = sachip->base + SA1111_INTC;346 void __iomem *mapbase = sachip->base + SA1111_INTC;
347 unsigned long ie1;347 unsigned long ie1;
348 348
349 ie1 = sa1111_readl(mapbase + SA1111_INTEN1);349 ie1 = sa1111_readl(mapbase + SA1111_INTEN1);
350 ie1 &= ~SA1111_IRQMASK_HI(irq);350 ie1 &= ~SA1111_IRQMASK_HI(d->irq);
351 sa1111_writel(ie1, mapbase + SA1111_INTEN1);351 sa1111_writel(ie1, mapbase + SA1111_INTEN1);
352}352}
353 353
354static void sa1111_unmask_highirq(unsigned int irq)354static void sa1111_unmask_highirq(struct irq_data *d)
355{355{
356 struct sa1111 *sachip = get_irq_chip_data(irq);356 struct sa1111 *sachip = irq_data_get_irq_chip_data(d);
357 void __iomem *mapbase = sachip->base + SA1111_INTC;357 void __iomem *mapbase = sachip->base + SA1111_INTC;
358 unsigned long ie1;358 unsigned long ie1;
359 359
360 ie1 = sa1111_readl(mapbase + SA1111_INTEN1);360 ie1 = sa1111_readl(mapbase + SA1111_INTEN1);
361 ie1 |= SA1111_IRQMASK_HI(irq);361 ie1 |= SA1111_IRQMASK_HI(d->irq);
362 sa1111_writel(ie1, mapbase + SA1111_INTEN1);362 sa1111_writel(ie1, mapbase + SA1111_INTEN1);
363}363}
364 364
@@ -369,11 +369,11 @@ static void sa1111_unmask_highirq(unsigned int irq) · 4 unmodified lines
369 * be triggered. In fact, its very difficult, if not impossible to get369 * be triggered. In fact, its very difficult, if not impossible to get
370 * INTSET to re-trigger the interrupt.370 * INTSET to re-trigger the interrupt.
371 */371 */
372static int sa1111_retrigger_highirq(unsigned int irq)372static int sa1111_retrigger_highirq(struct irq_data *d)
373{373{
374 struct sa1111 *sachip = get_irq_chip_data(irq);374 struct sa1111 *sachip = irq_data_get_irq_chip_data(d);
375 void __iomem *mapbase = sachip->base + SA1111_INTC;375 void __iomem *mapbase = sachip->base + SA1111_INTC;
376 unsigned int mask = SA1111_IRQMASK_HI(irq);376 unsigned int mask = SA1111_IRQMASK_HI(d->irq);
377 unsigned long ip1;377 unsigned long ip1;
378 int i;378 int i;
379 379
@@ -387,15 +387,15 @@ static int sa1111_retrigger_highirq(unsigned int irq) · 7 unmodified lines
387 387
388 if (i == 8)388 if (i == 8)
389 printk(KERN_ERR "Danger Will Robinson: failed to "389 printk(KERN_ERR "Danger Will Robinson: failed to "
390 "re-trigger IRQ%d\n", irq);390 "re-trigger IRQ%d\n", d->irq);
391 return i == 8 ? -1 : 0;391 return i == 8 ? -1 : 0;
392}392}
393 393
394static int sa1111_type_highirq(unsigned int irq, unsigned int flags)394static int sa1111_type_highirq(struct irq_data *d, unsigned int flags)
395{395{
396 struct sa1111 *sachip = get_irq_chip_data(irq);396 struct sa1111 *sachip = irq_data_get_irq_chip_data(d);
397 void __iomem *mapbase = sachip->base + SA1111_INTC;397 void __iomem *mapbase = sachip->base + SA1111_INTC;
398 unsigned int mask = SA1111_IRQMASK_HI(irq);398 unsigned int mask = SA1111_IRQMASK_HI(d->irq);
399 unsigned long ip1;399 unsigned long ip1;
400 400
401 if (flags == IRQ_TYPE_PROBE)401 if (flags == IRQ_TYPE_PROBE)
@@ -415,11 +415,11 @@ static int sa1111_type_highirq(unsigned int irq, unsigned int flags) · 13 unmodified lines
415 return 0;415 return 0;
416}416}
417 417
418static int sa1111_wake_highirq(unsigned int irq, unsigned int on)418static int sa1111_wake_highirq(struct irq_data *d, unsigned int on)
419{419{
420 struct sa1111 *sachip = get_irq_chip_data(irq);420 struct sa1111 *sachip = irq_data_get_irq_chip_data(d);
421 void __iomem *mapbase = sachip->base + SA1111_INTC;421 void __iomem *mapbase = sachip->base + SA1111_INTC;
422 unsigned int mask = SA1111_IRQMASK_HI(irq);422 unsigned int mask = SA1111_IRQMASK_HI(d->irq);
423 unsigned long we1;423 unsigned long we1;
424 424
425 we1 = sa1111_readl(mapbase + SA1111_WAKEEN1);425 we1 = sa1111_readl(mapbase + SA1111_WAKEEN1);
@@ -434,12 +434,12 @@ static int sa1111_wake_highirq(unsigned int irq, unsigned int on) · 8 unmodified lines
434 434
435static struct irq_chip sa1111_high_chip = {435static struct irq_chip sa1111_high_chip = {
436 .name = "SA1111-h",436 .name = "SA1111-h",
437 .ack = sa1111_ack_irq,437 .irq_ack = sa1111_ack_irq,
438 .mask = sa1111_mask_highirq,438 .irq_mask = sa1111_mask_highirq,
439 .unmask = sa1111_unmask_highirq,439 .irq_unmask = sa1111_unmask_highirq,
440 .retrigger = sa1111_retrigger_highirq,440 .irq_retrigger = sa1111_retrigger_highirq,
441 .set_type = sa1111_type_highirq,441 .irq_set_type = sa1111_type_highirq,
442 .set_wake = sa1111_wake_highirq,442 .irq_set_wake = sa1111_wake_highirq,
443};443};
444 444
445static void sa1111_setup_irq(struct sa1111 *sachip)445static 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 @@
1/*1/*
2 * linux/arch/arm/plat-versatile/timer-sp.c2 * linux/arch/arm/common/timer-sp.c
3 *3 *
4 * Copyright (C) 1999 - 2003 ARM Limited4 * Copyright (C) 1999 - 2003 ARM Limited
5 * Copyright (C) 2000 Deep Blue Solutions Ltd5 * Copyright (C) 2000 Deep Blue Solutions Ltd
@@ -26,8 +26,6 @@ · 20 unmodified lines
26 26
27#include <asm/hardware/arm_timer.h>27#include <asm/hardware/arm_timer.h>
28 28
29#include <plat/timer-sp.h>
30
31/*29/*
32 * These timers are currently always setup to be clocked at 1MHz.30 * These timers are currently always setup to be clocked at 1MHz.
33 */31 */
@@ -46,7 +44,6 @@ static struct clocksource clocksource_sp804 = { · 12 unmodified lines
46 .rating = 200,44 .rating = 200,
47 .read = sp804_read,45 .read = sp804_read,
48 .mask = CLOCKSOURCE_MASK(32),46 .mask = CLOCKSOURCE_MASK(32),
49 .shift = 20,
50 .flags = CLOCK_SOURCE_IS_CONTINUOUS,47 .flags = CLOCK_SOURCE_IS_CONTINUOUS,
51};48};
52 49
@@ -63,8 +60,7 @@ void __init sp804_clocksource_init(void __iomem *base) · 10 unmodified lines
63 writel(TIMER_CTRL_32BIT | TIMER_CTRL_ENABLE | TIMER_CTRL_PERIODIC,60 writel(TIMER_CTRL_32BIT | TIMER_CTRL_ENABLE | TIMER_CTRL_PERIODIC,
64 clksrc_base + TIMER_CTRL);61 clksrc_base + TIMER_CTRL);
65 62
66 cs->mult = clocksource_khz2mult(TIMER_FREQ_KHZ, cs->shift);63 clocksource_register_khz(cs, TIMER_FREQ_KHZ);
67 clocksource_register(cs);
68}64}
69 65
70 66
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
70 * vic_init2 - common initialisation code70 * vic_init2 - common initialisation code
71 * @base: Base of the VIC.71 * @base: Base of the VIC.
72 *72 *
73 * Common initialisation code for registeration73 * Common initialisation code for registration
74 * and resume.74 * and resume.
75*/75*/
76static void vic_init2(void __iomem *base)76static 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
204static inline void vic_pm_register(void __iomem *base, unsigned int irq, u32 arg1) { }204static inline void vic_pm_register(void __iomem *base, unsigned int irq, u32 arg1) { }
205#endif /* CONFIG_PM */205#endif /* CONFIG_PM */
206 206
207static void vic_ack_irq(unsigned int irq)207static void vic_ack_irq(struct irq_data *d)
208{208{
209 void __iomem *base = get_irq_chip_data(irq);209 void __iomem *base = irq_data_get_irq_chip_data(d);
210 irq &= 31;210 unsigned int irq = d->irq & 31;
211 writel(1 << irq, base + VIC_INT_ENABLE_CLEAR);211 writel(1 << irq, base + VIC_INT_ENABLE_CLEAR);
212 /* moreover, clear the soft-triggered, in case it was the reason */212 /* moreover, clear the soft-triggered, in case it was the reason */
213 writel(1 << irq, base + VIC_INT_SOFT_CLEAR);213 writel(1 << irq, base + VIC_INT_SOFT_CLEAR);
214}214}
215 215
216static void vic_mask_irq(unsigned int irq)216static void vic_mask_irq(struct irq_data *d)
217{217{
218 void __iomem *base = get_irq_chip_data(irq);218 void __iomem *base = irq_data_get_irq_chip_data(d);
219 irq &= 31;219 unsigned int irq = d->irq & 31;
220 writel(1 << irq, base + VIC_INT_ENABLE_CLEAR);220 writel(1 << irq, base + VIC_INT_ENABLE_CLEAR);
221}221}
222 222
223static void vic_unmask_irq(unsigned int irq)223static void vic_unmask_irq(struct irq_data *d)
224{224{
225 void __iomem *base = get_irq_chip_data(irq);225 void __iomem *base = irq_data_get_irq_chip_data(d);
226 irq &= 31;226 unsigned int irq = d->irq & 31;
227 writel(1 << irq, base + VIC_INT_ENABLE);227 writel(1 << irq, base + VIC_INT_ENABLE);
228}228}
229 229
@@ -242,10 +242,10 @@ static struct vic_device *vic_from_irq(unsigned int irq) · 12 unmodified lines
242 return NULL;242 return NULL;
243}243}
244 244
245static int vic_set_wake(unsigned int irq, unsigned int on)245static int vic_set_wake(struct irq_data *d, unsigned int on)
246{246{
247 struct vic_device *v = vic_from_irq(irq);247 struct vic_device *v = vic_from_irq(d->irq);
248 unsigned int off = irq & 31;248 unsigned int off = d->irq & 31;
249 u32 bit = 1 << off;249 u32 bit = 1 << off;
250 250
251 if (!v)251 if (!v)
@@ -267,10 +267,10 @@ static int vic_set_wake(unsigned int irq, unsigned int on) · 15 unmodified lines
267 267
268static struct irq_chip vic_chip = {268static struct irq_chip vic_chip = {
269 .name = "VIC",269 .name = "VIC",
270 .ack = vic_ack_irq,270 .irq_ack = vic_ack_irq,
271 .mask = vic_mask_irq,271 .irq_mask = vic_mask_irq,
272 .unmask = vic_unmask_irq,272 .irq_unmask = vic_unmask_irq,
273 .set_wake = vic_set_wake,273 .irq_set_wake = vic_set_wake,
274};274};
275 275
276static void __init vic_disable(void __iomem *base)276static void __init vic_disable(void __iomem *base)
arch/arm/configs/ag5evm_defconfig+83−0
@@ -0,0 +1,83 @@
1CONFIG_EXPERIMENTAL=y
2CONFIG_SYSVIPC=y
3CONFIG_IKCONFIG=y
4CONFIG_IKCONFIG_PROC=y
5CONFIG_LOG_BUF_SHIFT=16
6CONFIG_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
11CONFIG_BLK_DEV_INITRD=y
12CONFIG_INITRAMFS_SOURCE=""
13CONFIG_EXPERT=y
14CONFIG_SLAB=y
15# CONFIG_BLK_DEV_BSG is not set
16# CONFIG_IOSCHED_DEADLINE is not set
17# CONFIG_IOSCHED_CFQ is not set
18CONFIG_ARCH_SHMOBILE=y
19CONFIG_ARCH_SH73A0=y
20CONFIG_MACH_AG5EVM=y
21CONFIG_MEMORY_SIZE=0x10000000
22CONFIG_CPU_BPREDICT_DISABLE=y
23CONFIG_ARM_ERRATA_430973=y
24CONFIG_ARM_ERRATA_458693=y
25CONFIG_NO_HZ=y
26CONFIG_AEABI=y
27# CONFIG_OABI_COMPAT is not set
28CONFIG_HIGHMEM=y
29CONFIG_ZBOOT_ROM_TEXT=0x0
30CONFIG_ZBOOT_ROM_BSS=0x0
31CONFIG_CMDLINE="console=tty0 console=ttySC2,115200 earlyprintk=sh-sci.2,115200 ignore_loglevel"
32CONFIG_CMDLINE_FORCE=y
33CONFIG_KEXEC=y
34# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
35CONFIG_PM=y
36# CONFIG_SUSPEND is not set
37CONFIG_PM_RUNTIME=y
38CONFIG_NET=y
39CONFIG_PACKET=y
40CONFIG_UNIX=y
41CONFIG_INET=y
42# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
43# CONFIG_INET_XFRM_MODE_TUNNEL is not set
44# CONFIG_INET_XFRM_MODE_BEET is not set
45# CONFIG_INET_LRO is not set
46# CONFIG_INET_DIAG is not set
47# CONFIG_IPV6 is not set
48# CONFIG_WIRELESS is not set
49CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
50# CONFIG_BLK_DEV is not set
51CONFIG_NETDEVICES=y
52CONFIG_NET_ETHERNET=y
53CONFIG_SMSC911X=y
54# CONFIG_NETDEV_1000 is not set
55# CONFIG_NETDEV_10000 is not set
56# CONFIG_WLAN is not set
57CONFIG_INPUT_SPARSEKMAP=y
58# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
59CONFIG_INPUT_EVDEV=y
60# CONFIG_INPUT_KEYBOARD is not set
61# CONFIG_INPUT_MOUSE is not set
62CONFIG_SERIAL_SH_SCI=y
63CONFIG_SERIAL_SH_SCI_NR_UARTS=9
64CONFIG_SERIAL_SH_SCI_CONSOLE=y
65# CONFIG_LEGACY_PTYS is not set
66# CONFIG_HW_RANDOM is not set
67CONFIG_I2C=y
68CONFIG_I2C_SH_MOBILE=y
69# CONFIG_HWMON is not set
70# CONFIG_MFD_SUPPORT is not set
71CONFIG_FB=y
72CONFIG_FB_SH_MOBILE_LCDC=y
73CONFIG_FRAMEBUFFER_CONSOLE=y
74CONFIG_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
79CONFIG_TMPFS=y
80# CONFIG_MISC_FILESYSTEMS is not set
81CONFIG_MAGIC_SYSRQ=y
82CONFIG_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
3# CONFIG_SWAP is not set3# CONFIG_SWAP is not set
4CONFIG_SYSVIPC=y4CONFIG_SYSVIPC=y
5CONFIG_SYSFS_DEPRECATED_V2=y5CONFIG_SYSFS_DEPRECATED_V2=y
6CONFIG_EMBEDDED=y6CONFIG_EXPERT=y
7# CONFIG_SYSCTL_SYSCALL is not set7# CONFIG_SYSCTL_SYSCALL is not set
8# CONFIG_EPOLL is not set8# CONFIG_EPOLL is not set
9# CONFIG_SHMEM is not set9# CONFIG_SHMEM is not set
arch/arm/configs/ams_delta_defconfig+0−121
@@ -1,121 +0,0 @@
1CONFIG_EXPERIMENTAL=y
2# CONFIG_SWAP is not set
3CONFIG_SYSVIPC=y
4CONFIG_TREE_PREEMPT_RCU=y
5CONFIG_LOG_BUF_SHIFT=14
6CONFIG_BLK_DEV_INITRD=y
7CONFIG_EMBEDDED=y
8# CONFIG_KALLSYMS is not set
9CONFIG_SLAB=y
10CONFIG_MODULES=y
11CONFIG_MODULE_UNLOAD=y
12CONFIG_MODULE_FORCE_UNLOAD=y
13# CONFIG_LBDAF is not set
14CONFIG_ARCH_OMAP=y
15CONFIG_ARCH_OMAP1=y
16CONFIG_OMAP_MBOX_FWK=m
17CONFIG_MACH_AMS_DELTA=y
18CONFIG_OMAP_ARM_150MHZ=y
19# CONFIG_OMAP_ARM_60MHZ is not set
20CONFIG_PREEMPT=y
21CONFIG_AEABI=y
22CONFIG_ZBOOT_ROM_TEXT=0x0
23CONFIG_ZBOOT_ROM_BSS=0x0
24CONFIG_CMDLINE="mem=32M console=ttyS0,115200n8 root=/dev/ram0 initrd=0x11c00000,4M"
25CONFIG_FPE_NWFPE=y
26CONFIG_PM=y
27# CONFIG_SUSPEND is not set
28CONFIG_PM_RUNTIME=y
29CONFIG_NET=y
30CONFIG_PACKET=y
31CONFIG_UNIX=y
32CONFIG_INET=y
33CONFIG_IP_MULTICAST=y
34CONFIG_IPV6=y
35# CONFIG_FW_LOADER is not set
36CONFIG_MTD=y
37CONFIG_MTD_PARTITIONS=y
38CONFIG_MTD_CHAR=y
39CONFIG_MTD_BLOCK=y
40CONFIG_MTD_NAND=y
41CONFIG_MTD_NAND_AMS_DELTA=y
42CONFIG_BLK_DEV_LOOP=y
43CONFIG_BLK_DEV_RAM=y
44CONFIG_BLK_DEV_RAM_SIZE=8192
45CONFIG_SCSI=y
46CONFIG_BLK_DEV_SD=y
47CONFIG_NETDEVICES=y
48CONFIG_NET_ETHERNET=y
49CONFIG_USB_CATC=y
50CONFIG_USB_KAWETH=y
51CONFIG_USB_PEGASUS=y
52CONFIG_USB_RTL8150=y
53CONFIG_USB_USBNET=y
54CONFIG_PPP=y
55CONFIG_PPP_MULTILINK=y
56CONFIG_INPUT_EVDEV=y
57CONFIG_KEYBOARD_OMAP=y
58# CONFIG_INPUT_MOUSE is not set
59CONFIG_SERIAL_8250=y
60CONFIG_SERIAL_8250_CONSOLE=y
61# CONFIG_LEGACY_PTYS is not set
62CONFIG_HW_RANDOM=y
63CONFIG_I2C=y
64CONFIG_I2C_CHARDEV=y
65CONFIG_I2C_OMAP=y
66CONFIG_GPIO_SYSFS=y
67# CONFIG_HWMON is not set
68CONFIG_FB=y
69CONFIG_FIRMWARE_EDID=y
70CONFIG_FB_OMAP=y
71CONFIG_BACKLIGHT_LCD_SUPPORT=y
72CONFIG_LCD_CLASS_DEVICE=y
73# CONFIG_VGA_CONSOLE is not set
74CONFIG_FRAMEBUFFER_CONSOLE=y
75CONFIG_FONTS=y
76CONFIG_FONT_6x11=y
77CONFIG_LOGO=y
78# CONFIG_LOGO_LINUX_MONO is not set
79# CONFIG_LOGO_LINUX_VGA16 is not set
80CONFIG_SOUND=y
81CONFIG_SND=y
82CONFIG_SND_MIXER_OSS=y
83CONFIG_SND_PCM_OSS=y
84CONFIG_SND_SOC=y
85CONFIG_SND_OMAP_SOC=y
86CONFIG_SND_OMAP_SOC_AMS_DELTA=y
87CONFIG_USB=y
88CONFIG_USB_DEVICEFS=y
89# CONFIG_USB_DEVICE_CLASS is not set
90CONFIG_USB_MON=y
91CONFIG_USB_OHCI_HCD=y
92CONFIG_USB_STORAGE=y
93CONFIG_NEW_LEDS=y
94CONFIG_LEDS_CLASS=y
95CONFIG_LEDS_AMS_DELTA=y
96CONFIG_LEDS_TRIGGERS=y
97CONFIG_LEDS_TRIGGER_TIMER=y
98CONFIG_LEDS_TRIGGER_HEARTBEAT=y
99CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
100CONFIG_RTC_CLASS=y
101CONFIG_RTC_DRV_OMAP=y
102CONFIG_EXT2_FS=y
103CONFIG_EXT3_FS=y
104CONFIG_INOTIFY=y
105CONFIG_AUTOFS_FS=y
106CONFIG_AUTOFS4_FS=y
107CONFIG_MSDOS_FS=y
108CONFIG_VFAT_FS=y
109CONFIG_TMPFS=y
110CONFIG_JFFS2_FS=y
111CONFIG_JFFS2_SUMMARY=y
112CONFIG_NFS_FS=y
113CONFIG_PARTITION_ADVANCED=y
114CONFIG_NLS_CODEPAGE_437=y
115CONFIG_NLS_CODEPAGE_850=y
116CONFIG_NLS_CODEPAGE_852=y
117CONFIG_NLS_ISO8859_1=y
118CONFIG_NLS_ISO8859_2=y
119CONFIG_MAGIC_SYSRQ=y
120CONFIG_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
17CONFIG_RELAY=y17CONFIG_RELAY=y
18CONFIG_BLK_DEV_INITRD=y18CONFIG_BLK_DEV_INITRD=y
19# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set19# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
20CONFIG_EMBEDDED=y20CONFIG_EXPERT=y
21CONFIG_SLAB=y21CONFIG_SLAB=y
22CONFIG_PROFILING=y22CONFIG_PROFILING=y
23CONFIG_OPROFILE=m23CONFIG_OPROFILE=m
arch/arm/configs/badge4_defconfig+1−1
@@ -1,6 +1,6 @@
1CONFIG_EXPERIMENTAL=y1CONFIG_EXPERIMENTAL=y
2CONFIG_LOG_BUF_SHIFT=142CONFIG_LOG_BUF_SHIFT=14
3CONFIG_EMBEDDED=y3CONFIG_EXPERT=y
4CONFIG_MODULES=y4CONFIG_MODULES=y
5CONFIG_MODVERSIONS=y5CONFIG_MODVERSIONS=y
6CONFIG_ARCH_SA1100=y6CONFIG_ARCH_SA1100=y
arch/arm/configs/bcmring_defconfig+1−1
@@ -2,7 +2,7 @@ CONFIG_EXPERIMENTAL=y · 1 unmodified line
2# CONFIG_LOCALVERSION_AUTO is not set2# CONFIG_LOCALVERSION_AUTO is not set
3# CONFIG_SWAP is not set3# CONFIG_SWAP is not set
4CONFIG_SYSVIPC=y4CONFIG_SYSVIPC=y
5CONFIG_EMBEDDED=y5CONFIG_EXPERT=y
6CONFIG_KALLSYMS_EXTRA_PASS=y6CONFIG_KALLSYMS_EXTRA_PASS=y
7# CONFIG_HOTPLUG is not set7# CONFIG_HOTPLUG is not set
8# CONFIG_ELF_CORE is not set8# 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
6CONFIG_LOG_BUF_SHIFT=146CONFIG_LOG_BUF_SHIFT=14
7CONFIG_SYSFS_DEPRECATED_V2=y7CONFIG_SYSFS_DEPRECATED_V2=y
8CONFIG_BLK_DEV_INITRD=y8CONFIG_BLK_DEV_INITRD=y
9CONFIG_EMBEDDED=y9CONFIG_EXPERT=y
10# CONFIG_VM_EVENT_COUNTERS is not set10# CONFIG_VM_EVENT_COUNTERS is not set
11# CONFIG_SLUB_DEBUG is not set11# CONFIG_SLUB_DEBUG is not set
12# CONFIG_COMPAT_BRK is not set12# 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
8CONFIG_LOG_BUF_SHIFT=148CONFIG_LOG_BUF_SHIFT=14
9CONFIG_SYSFS_DEPRECATED_V2=y9CONFIG_SYSFS_DEPRECATED_V2=y
10CONFIG_BLK_DEV_INITRD=y10CONFIG_BLK_DEV_INITRD=y
11CONFIG_EMBEDDED=y11CONFIG_EXPERT=y
12CONFIG_KALLSYMS_EXTRA_PASS=y12CONFIG_KALLSYMS_EXTRA_PASS=y
13CONFIG_SLAB=y13CONFIG_SLAB=y
14CONFIG_MODULES=y14CONFIG_MODULES=y
arch/arm/configs/collie_defconfig+1−1
@@ -4,7 +4,7 @@ CONFIG_SYSVIPC=y · 3 unmodified lines
4CONFIG_LOG_BUF_SHIFT=144CONFIG_LOG_BUF_SHIFT=14
5CONFIG_BLK_DEV_INITRD=y5CONFIG_BLK_DEV_INITRD=y
6# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set6# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
7CONFIG_EMBEDDED=y7CONFIG_EXPERT=y
8# CONFIG_BASE_FULL is not set8# CONFIG_BASE_FULL is not set
9# CONFIG_EPOLL is not set9# CONFIG_EPOLL is not set
10CONFIG_SLOB=y10CONFIG_SLOB=y
arch/arm/configs/corgi_defconfig+1−1
@@ -4,7 +4,7 @@ CONFIG_BSD_PROCESS_ACCT=y · 3 unmodified lines
4CONFIG_LOG_BUF_SHIFT=144CONFIG_LOG_BUF_SHIFT=14
5CONFIG_SYSFS_DEPRECATED_V2=y5CONFIG_SYSFS_DEPRECATED_V2=y
6# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set6# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
7CONFIG_EMBEDDED=y7CONFIG_EXPERT=y
8CONFIG_PROFILING=y8CONFIG_PROFILING=y
9CONFIG_OPROFILE=m9CONFIG_OPROFILE=m
10CONFIG_MODULES=y10CONFIG_MODULES=y
arch/arm/configs/da8xx_omapl_defconfig+1−1
@@ -6,7 +6,7 @@ CONFIG_IKCONFIG=y · 5 unmodified lines
6CONFIG_IKCONFIG_PROC=y6CONFIG_IKCONFIG_PROC=y
7CONFIG_LOG_BUF_SHIFT=147CONFIG_LOG_BUF_SHIFT=14
8CONFIG_BLK_DEV_INITRD=y8CONFIG_BLK_DEV_INITRD=y
9CONFIG_EMBEDDED=y9CONFIG_EXPERT=y
10CONFIG_MODULES=y10CONFIG_MODULES=y
11CONFIG_MODULE_UNLOAD=y11CONFIG_MODULE_UNLOAD=y
12CONFIG_MODULE_FORCE_UNLOAD=y12CONFIG_MODULE_FORCE_UNLOAD=y
arch/arm/configs/davinci_all_defconfig+1−1
@@ -6,7 +6,7 @@ CONFIG_IKCONFIG=y · 5 unmodified lines
6CONFIG_IKCONFIG_PROC=y6CONFIG_IKCONFIG_PROC=y
7CONFIG_LOG_BUF_SHIFT=147CONFIG_LOG_BUF_SHIFT=14
8CONFIG_BLK_DEV_INITRD=y8CONFIG_BLK_DEV_INITRD=y
9CONFIG_EMBEDDED=y9CONFIG_EXPERT=y
10CONFIG_MODULES=y10CONFIG_MODULES=y
11CONFIG_MODULE_UNLOAD=y11CONFIG_MODULE_UNLOAD=y
12CONFIG_MODULE_FORCE_UNLOAD=y12CONFIG_MODULE_FORCE_UNLOAD=y
arch/arm/configs/dove_defconfig+1−1
@@ -1,7 +1,7 @@
1CONFIG_EXPERIMENTAL=y1CONFIG_EXPERIMENTAL=y
2CONFIG_SYSVIPC=y2CONFIG_SYSVIPC=y
3CONFIG_LOG_BUF_SHIFT=143CONFIG_LOG_BUF_SHIFT=14
4CONFIG_EMBEDDED=y4CONFIG_EXPERT=y
5CONFIG_SLAB=y5CONFIG_SLAB=y
6CONFIG_MODULES=y6CONFIG_MODULES=y
7CONFIG_MODULE_UNLOAD=y7CONFIG_MODULE_UNLOAD=y
arch/arm/configs/ebsa110_defconfig+1−1
@@ -2,7 +2,7 @@ CONFIG_EXPERIMENTAL=y · 1 unmodified line
2CONFIG_SYSVIPC=y2CONFIG_SYSVIPC=y
3CONFIG_BSD_PROCESS_ACCT=y3CONFIG_BSD_PROCESS_ACCT=y
4CONFIG_LOG_BUF_SHIFT=144CONFIG_LOG_BUF_SHIFT=14
5CONFIG_EMBEDDED=y5CONFIG_EXPERT=y
6CONFIG_MODULES=y6CONFIG_MODULES=y
7CONFIG_ARCH_EBSA110=y7CONFIG_ARCH_EBSA110=y
8CONFIG_PCCARD=m8CONFIG_PCCARD=m
arch/arm/configs/edb7211_defconfig+1−1
@@ -2,7 +2,7 @@ CONFIG_EXPERIMENTAL=y · 1 unmodified line
2CONFIG_SYSVIPC=y2CONFIG_SYSVIPC=y
3CONFIG_LOG_BUF_SHIFT=143CONFIG_LOG_BUF_SHIFT=14
4CONFIG_BLK_DEV_INITRD=y4CONFIG_BLK_DEV_INITRD=y
5CONFIG_EMBEDDED=y5CONFIG_EXPERT=y
6# CONFIG_HOTPLUG is not set6# CONFIG_HOTPLUG is not set
7CONFIG_ARCH_CLPS711X=y7CONFIG_ARCH_CLPS711X=y
8CONFIG_ARCH_EDB7211=y8CONFIG_ARCH_EDB7211=y
arch/arm/configs/em_x270_defconfig+1−1
@@ -6,7 +6,7 @@ CONFIG_IKCONFIG_PROC=y · 5 unmodified lines
6CONFIG_LOG_BUF_SHIFT=146CONFIG_LOG_BUF_SHIFT=14
7CONFIG_SYSFS_DEPRECATED_V2=y7CONFIG_SYSFS_DEPRECATED_V2=y
8CONFIG_BLK_DEV_INITRD=y8CONFIG_BLK_DEV_INITRD=y
9CONFIG_EMBEDDED=y9CONFIG_EXPERT=y
10# CONFIG_VM_EVENT_COUNTERS is not set10# CONFIG_VM_EVENT_COUNTERS is not set
11# CONFIG_SLUB_DEBUG is not set11# CONFIG_SLUB_DEBUG is not set
12# CONFIG_COMPAT_BRK is not set12# CONFIG_COMPAT_BRK is not set
arch/arm/configs/ep93xx_defconfig+1−1
@@ -4,7 +4,7 @@ CONFIG_IKCONFIG=y · 3 unmodified lines
4CONFIG_IKCONFIG_PROC=y4CONFIG_IKCONFIG_PROC=y
5CONFIG_LOG_BUF_SHIFT=145CONFIG_LOG_BUF_SHIFT=14
6CONFIG_SYSFS_DEPRECATED_V2=y6CONFIG_SYSFS_DEPRECATED_V2=y
7CONFIG_EMBEDDED=y7CONFIG_EXPERT=y
8CONFIG_SLAB=y8CONFIG_SLAB=y
9CONFIG_MODULES=y9CONFIG_MODULES=y
10CONFIG_MODULE_UNLOAD=y10CONFIG_MODULE_UNLOAD=y
arch/arm/configs/eseries_pxa_defconfig+1−1
@@ -2,7 +2,7 @@ CONFIG_EXPERIMENTAL=y · 1 unmodified line
2CONFIG_SYSVIPC=y2CONFIG_SYSVIPC=y
3CONFIG_LOG_BUF_SHIFT=143CONFIG_LOG_BUF_SHIFT=14
4# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set4# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
5CONFIG_EMBEDDED=y5CONFIG_EXPERT=y
6# CONFIG_KALLSYMS is not set6# CONFIG_KALLSYMS is not set
7# CONFIG_COMPAT_BRK is not set7# CONFIG_COMPAT_BRK is not set
8CONFIG_SLAB=y8CONFIG_SLAB=y
arch/arm/configs/ezx_defconfig+1−1
@@ -7,7 +7,7 @@ CONFIG_SYSFS_DEPRECATED_V2=y · 6 unmodified lines
7CONFIG_BLK_DEV_INITRD=y7CONFIG_BLK_DEV_INITRD=y
8CONFIG_RD_BZIP2=y8CONFIG_RD_BZIP2=y
9CONFIG_RD_LZMA=y9CONFIG_RD_LZMA=y
10CONFIG_EMBEDDED=y10CONFIG_EXPERT=y
11# CONFIG_COMPAT_BRK is not set11# CONFIG_COMPAT_BRK is not set
12CONFIG_SLAB=y12CONFIG_SLAB=y
13CONFIG_MODULES=y13CONFIG_MODULES=y
arch/arm/configs/footbridge_defconfig+1−1
@@ -3,7 +3,7 @@ CONFIG_SYSVIPC=y · 2 unmodified lines
3CONFIG_BSD_PROCESS_ACCT=y3CONFIG_BSD_PROCESS_ACCT=y
4CONFIG_LOG_BUF_SHIFT=144CONFIG_LOG_BUF_SHIFT=14
5CONFIG_BLK_DEV_INITRD=y5CONFIG_BLK_DEV_INITRD=y
6CONFIG_EMBEDDED=y6CONFIG_EXPERT=y
7# CONFIG_HOTPLUG is not set7# CONFIG_HOTPLUG is not set
8CONFIG_MODULES=y8CONFIG_MODULES=y
9CONFIG_ARCH_FOOTBRIDGE=y9CONFIG_ARCH_FOOTBRIDGE=y
arch/arm/configs/fortunet_defconfig+1−1
@@ -2,7 +2,7 @@ CONFIG_EXPERIMENTAL=y · 1 unmodified line
2CONFIG_SYSVIPC=y2CONFIG_SYSVIPC=y
3CONFIG_LOG_BUF_SHIFT=143CONFIG_LOG_BUF_SHIFT=14
4CONFIG_BLK_DEV_INITRD=y4CONFIG_BLK_DEV_INITRD=y
5CONFIG_EMBEDDED=y5CONFIG_EXPERT=y
6# CONFIG_HOTPLUG is not set6# CONFIG_HOTPLUG is not set
7CONFIG_ARCH_CLPS711X=y7CONFIG_ARCH_CLPS711X=y
8CONFIG_ARCH_FORTUNET=y8CONFIG_ARCH_FORTUNET=y
arch/arm/configs/h5000_defconfig+1−1
@@ -4,7 +4,7 @@ CONFIG_IKCONFIG=y · 3 unmodified lines
4CONFIG_IKCONFIG_PROC=y4CONFIG_IKCONFIG_PROC=y
5CONFIG_LOG_BUF_SHIFT=165CONFIG_LOG_BUF_SHIFT=16
6# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set6# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
7CONFIG_EMBEDDED=y7CONFIG_EXPERT=y
8# CONFIG_UID16 is not set8# CONFIG_UID16 is not set
9CONFIG_SLAB=y9CONFIG_SLAB=y
10CONFIG_MODULES=y10CONFIG_MODULES=y
arch/arm/configs/htcherald_defconfig+0−73
@@ -1,73 +0,0 @@
1CONFIG_EXPERIMENTAL=y
2CONFIG_SYSVIPC=y
3CONFIG_LOG_BUF_SHIFT=14
4CONFIG_BLK_DEV_INITRD=y
5CONFIG_SLAB=y
6CONFIG_MODULES=y
7CONFIG_MODULE_UNLOAD=y
8# CONFIG_BLK_DEV_BSG is not set
9CONFIG_ARCH_OMAP=y
10CONFIG_ARCH_OMAP1=y
11CONFIG_ARCH_OMAP850=y
12# CONFIG_ARCH_OMAP15XX is not set
13CONFIG_MACH_HERALD=y
14CONFIG_OMAP_ARM_195MHZ=y
15# CONFIG_OMAP_ARM_60MHZ is not set
16CONFIG_CPU_ARM925T=y
17CONFIG_PREEMPT=y
18CONFIG_AEABI=y
19CONFIG_LEDS=y
20CONFIG_ZBOOT_ROM_TEXT=0x0
21CONFIG_ZBOOT_ROM_BSS=0x0
22CONFIG_CMDLINE="mem=32M console=ttyS0,115200 ip=dhcp"
23CONFIG_FPE_NWFPE=y
24CONFIG_PM=y
25CONFIG_NET=y
26CONFIG_PACKET=y
27CONFIG_UNIX=y
28CONFIG_INET=y
29CONFIG_IP_MULTICAST=y
30CONFIG_IP_PNP=y
31CONFIG_IP_PNP_DHCP=y
32CONFIG_IP_PNP_BOOTP=y
33# CONFIG_IPV6 is not set
34CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
35CONFIG_BLK_DEV_LOOP=y
36CONFIG_BLK_DEV_RAM=y
37CONFIG_BLK_DEV_RAM_SIZE=8192
38CONFIG_NETDEVICES=y
39CONFIG_NET_ETHERNET=y
40CONFIG_SMC91X=y
41# CONFIG_KEYBOARD_ATKBD is not set
42CONFIG_KEYBOARD_OMAP=y
43# CONFIG_INPUT_MOUSE is not set
44CONFIG_SERIAL_8250=m
45# CONFIG_LEGACY_PTYS is not set
46CONFIG_VIDEO_OUTPUT_CONTROL=m
47CONFIG_FB=y
48CONFIG_FB_MODE_HELPERS=y
49CONFIG_FB_OMAP=y
50# CONFIG_VGA_CONSOLE is not set
51CONFIG_FRAMEBUFFER_CONSOLE=y
52CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
53CONFIG_FONTS=y
54CONFIG_FONT_MINI_4x6=y
55CONFIG_USB_GADGET=y
56CONFIG_USB_ETH=m
57# CONFIG_USB_ETH_RNDIS is not set
58CONFIG_MMC=y
59CONFIG_MMC_SDHCI=y
60CONFIG_MMC_SDHCI_PLTFM=y
61CONFIG_MMC_OMAP=y
62CONFIG_RTC_CLASS=y
63CONFIG_EXT2_FS=y
64CONFIG_EXT3_FS=y
65CONFIG_INOTIFY=y
66CONFIG_TMPFS=y
67CONFIG_NFS_FS=y
68CONFIG_ROOT_NFS=y
69# CONFIG_RCU_CPU_STALL_DETECTOR is not set
70CONFIG_CRYPTO_DEFLATE=y
71CONFIG_CRYPTO_ZLIB=y
72CONFIG_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
6CONFIG_BLK_DEV_INITRD=y6CONFIG_BLK_DEV_INITRD=y
7CONFIG_RD_BZIP2=y7CONFIG_RD_BZIP2=y
8CONFIG_RD_LZMA=y8CONFIG_RD_LZMA=y
9CONFIG_EMBEDDED=y9CONFIG_EXPERT=y
10# CONFIG_COMPAT_BRK is not set10# CONFIG_COMPAT_BRK is not set
11CONFIG_SLAB=y11CONFIG_SLAB=y
12CONFIG_MODULES=y12CONFIG_MODULES=y
arch/arm/configs/ixp2000_defconfig+1−1
@@ -3,7 +3,7 @@ CONFIG_SYSVIPC=y · 2 unmodified lines
3CONFIG_BSD_PROCESS_ACCT=y3CONFIG_BSD_PROCESS_ACCT=y
4CONFIG_LOG_BUF_SHIFT=144CONFIG_LOG_BUF_SHIFT=14
5CONFIG_BLK_DEV_INITRD=y5CONFIG_BLK_DEV_INITRD=y
6CONFIG_EMBEDDED=y6CONFIG_EXPERT=y
7# CONFIG_HOTPLUG is not set7# CONFIG_HOTPLUG is not set
8CONFIG_SLAB=y8CONFIG_SLAB=y
9CONFIG_MODULES=y9CONFIG_MODULES=y
arch/arm/configs/ixp23xx_defconfig+1−1
@@ -3,7 +3,7 @@ CONFIG_SYSVIPC=y · 2 unmodified lines
3CONFIG_BSD_PROCESS_ACCT=y3CONFIG_BSD_PROCESS_ACCT=y
4CONFIG_LOG_BUF_SHIFT=144CONFIG_LOG_BUF_SHIFT=14
5CONFIG_BLK_DEV_INITRD=y5CONFIG_BLK_DEV_INITRD=y
6CONFIG_EMBEDDED=y6CONFIG_EXPERT=y
7CONFIG_SLAB=y7CONFIG_SLAB=y
8CONFIG_MODULES=y8CONFIG_MODULES=y
9CONFIG_MODULE_UNLOAD=y9CONFIG_MODULE_UNLOAD=y
arch/arm/configs/ixp4xx_defconfig+1−1
@@ -3,7 +3,7 @@ CONFIG_SYSVIPC=y · 2 unmodified lines
3CONFIG_BSD_PROCESS_ACCT=y3CONFIG_BSD_PROCESS_ACCT=y
4CONFIG_LOG_BUF_SHIFT=144CONFIG_LOG_BUF_SHIFT=14
5CONFIG_BLK_DEV_INITRD=y5CONFIG_BLK_DEV_INITRD=y
6CONFIG_EMBEDDED=y6CONFIG_EXPERT=y
7CONFIG_MODULES=y7CONFIG_MODULES=y
8CONFIG_MODVERSIONS=y8CONFIG_MODVERSIONS=y
9# CONFIG_BLK_DEV_BSG is not set9# CONFIG_BLK_DEV_BSG is not set
arch/arm/configs/loki_defconfig+1−1
@@ -1,7 +1,7 @@
1CONFIG_EXPERIMENTAL=y1CONFIG_EXPERIMENTAL=y
2CONFIG_SYSVIPC=y2CONFIG_SYSVIPC=y
3CONFIG_LOG_BUF_SHIFT=143CONFIG_LOG_BUF_SHIFT=14
4CONFIG_EMBEDDED=y4CONFIG_EXPERT=y
5CONFIG_SLAB=y5CONFIG_SLAB=y
6CONFIG_MODULES=y6CONFIG_MODULES=y
7CONFIG_MODULE_UNLOAD=y7CONFIG_MODULE_UNLOAD=y
arch/arm/configs/lpd7a400_defconfig+1−1
@@ -3,7 +3,7 @@ CONFIG_EXPERIMENTAL=y · 2 unmodified lines
3CONFIG_SYSVIPC=y3CONFIG_SYSVIPC=y
4CONFIG_IKCONFIG=y4CONFIG_IKCONFIG=y
5CONFIG_LOG_BUF_SHIFT=145CONFIG_LOG_BUF_SHIFT=14
6CONFIG_EMBEDDED=y6CONFIG_EXPERT=y
7# CONFIG_HOTPLUG is not set7# CONFIG_HOTPLUG is not set
8# CONFIG_EPOLL is not set8# CONFIG_EPOLL is not set
9# CONFIG_IOSCHED_DEADLINE is not set9# CONFIG_IOSCHED_DEADLINE is not set
arch/arm/configs/lpd7a404_defconfig+1−1
@@ -3,7 +3,7 @@ CONFIG_EXPERIMENTAL=y · 2 unmodified lines
3CONFIG_SYSVIPC=y3CONFIG_SYSVIPC=y
4CONFIG_IKCONFIG=y4CONFIG_IKCONFIG=y
5CONFIG_LOG_BUF_SHIFT=165CONFIG_LOG_BUF_SHIFT=16
6CONFIG_EMBEDDED=y6CONFIG_EXPERT=y
7# CONFIG_HOTPLUG is not set7# CONFIG_HOTPLUG is not set
8# CONFIG_EPOLL is not set8# CONFIG_EPOLL is not set
9CONFIG_SLAB=y9CONFIG_SLAB=y
arch/arm/configs/mackerel_defconfig+138−0
@@ -0,0 +1,138 @@
1CONFIG_EXPERIMENTAL=y
2CONFIG_SYSVIPC=y
3CONFIG_IKCONFIG=y
4CONFIG_IKCONFIG_PROC=y
5CONFIG_LOG_BUF_SHIFT=16
6# CONFIG_UTS_NS is not set
7# CONFIG_IPC_NS is not set
8# CONFIG_USER_NS is not set
9# CONFIG_PID_NS is not set
10# CONFIG_NET_NS is not set
11CONFIG_SLAB=y
12CONFIG_MODULES=y
13CONFIG_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
17CONFIG_ARCH_SHMOBILE=y
18CONFIG_ARCH_SH7372=y
19CONFIG_MACH_MACKEREL=y
20CONFIG_MEMORY_SIZE=0x10000000
21CONFIG_AEABI=y
22# CONFIG_OABI_COMPAT is not set
23CONFIG_FORCE_MAX_ZONEORDER=15
24CONFIG_ZBOOT_ROM_TEXT=0x0
25CONFIG_ZBOOT_ROM_BSS=0x0
26CONFIG_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"
27CONFIG_KEXEC=y
28# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
29CONFIG_PM=y
30CONFIG_PM_RUNTIME=y
31CONFIG_NET=y
32CONFIG_PACKET=y
33CONFIG_UNIX=y
34CONFIG_INET=y
35CONFIG_IP_MULTICAST=y
36CONFIG_IP_PNP=y
37CONFIG_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
43CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
44# CONFIG_FIRMWARE_IN_KERNEL is not set
45CONFIG_MTD=y
46CONFIG_MTD_CONCAT=y
47CONFIG_MTD_PARTITIONS=y
48CONFIG_MTD_CHAR=y
49CONFIG_MTD_BLOCK=y
50CONFIG_MTD_CFI=y
51CONFIG_MTD_CFI_ADV_OPTIONS=y
52CONFIG_MTD_CFI_INTELEXT=y
53CONFIG_MTD_PHYSMAP=y
54CONFIG_MTD_ARM_INTEGRATOR=y
55CONFIG_MTD_BLOCK2MTD=y
56CONFIG_SCSI=y
57CONFIG_BLK_DEV_SD=y
58# CONFIG_SCSI_LOWLEVEL is not set
59CONFIG_NETDEVICES=y
60CONFIG_NET_ETHERNET=y
61CONFIG_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
68CONFIG_SERIAL_SH_SCI=y
69CONFIG_SERIAL_SH_SCI_NR_UARTS=8
70CONFIG_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
75CONFIG_FB=y
76CONFIG_FB_MODE_HELPERS=y
77CONFIG_FB_SH_MOBILE_LCDC=y
78CONFIG_FRAMEBUFFER_CONSOLE=y
79CONFIG_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
84CONFIG_EXT2_FS=y
85CONFIG_EXT2_FS_XATTR=y
86CONFIG_EXT2_FS_POSIX_ACL=y
87CONFIG_EXT2_FS_SECURITY=y
88CONFIG_EXT2_FS_XIP=y
89CONFIG_EXT3_FS=y
90# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
91CONFIG_EXT3_FS_POSIX_ACL=y
92CONFIG_EXT3_FS_SECURITY=y
93# CONFIG_DNOTIFY is not set
94# CONFIG_INOTIFY_USER is not set
95CONFIG_MSDOS_FS=y
96CONFIG_VFAT_FS=y
97CONFIG_TMPFS=y
98# CONFIG_MISC_FILESYSTEMS is not set
99CONFIG_NFS_FS=y
100CONFIG_NFS_V3=y
101CONFIG_NFS_V3_ACL=y
102CONFIG_NFS_V4=y
103CONFIG_NFS_V4_1=y
104CONFIG_ROOT_NFS=y
105CONFIG_NLS_CODEPAGE_437=y
106CONFIG_NLS_CODEPAGE_737=y
107CONFIG_NLS_CODEPAGE_775=y
108CONFIG_NLS_CODEPAGE_850=y
109CONFIG_NLS_CODEPAGE_852=y
110CONFIG_NLS_CODEPAGE_855=y
111CONFIG_NLS_CODEPAGE_857=y
112CONFIG_NLS_CODEPAGE_860=y
113CONFIG_NLS_CODEPAGE_861=y
114CONFIG_NLS_CODEPAGE_862=y
115CONFIG_NLS_CODEPAGE_863=y
116CONFIG_NLS_CODEPAGE_864=y
117CONFIG_NLS_CODEPAGE_865=y
118CONFIG_NLS_CODEPAGE_866=y
119CONFIG_NLS_CODEPAGE_869=y
120CONFIG_NLS_ISO8859_1=y
121CONFIG_NLS_ISO8859_2=y
122CONFIG_NLS_ISO8859_3=y
123CONFIG_NLS_ISO8859_4=y
124CONFIG_NLS_ISO8859_5=y
125CONFIG_NLS_ISO8859_6=y
126CONFIG_NLS_ISO8859_7=y
127CONFIG_NLS_ISO8859_9=y
128CONFIG_NLS_ISO8859_13=y
129CONFIG_NLS_ISO8859_14=y
130CONFIG_NLS_ISO8859_15=y
131CONFIG_NLS_KOI8_R=y
132CONFIG_NLS_KOI8_U=y
133CONFIG_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
137CONFIG_CRYPTO=y
138CONFIG_CRYPTO_ANSI_CPRNG=y
arch/arm/configs/magician_defconfig+1−1
@@ -4,7 +4,7 @@ CONFIG_IKCONFIG=y · 3 unmodified lines
4CONFIG_IKCONFIG_PROC=y4CONFIG_IKCONFIG_PROC=y
5CONFIG_LOG_BUF_SHIFT=165CONFIG_LOG_BUF_SHIFT=16
6CONFIG_BLK_DEV_INITRD=y6CONFIG_BLK_DEV_INITRD=y
7CONFIG_EMBEDDED=y7CONFIG_EXPERT=y
8# CONFIG_UID16 is not set8# CONFIG_UID16 is not set
9CONFIG_SLAB=y9CONFIG_SLAB=y
10CONFIG_MODULES=y10CONFIG_MODULES=y
arch/arm/configs/mv78xx0_defconfig+1−1
@@ -2,7 +2,7 @@ CONFIG_EXPERIMENTAL=y · 1 unmodified line
2CONFIG_SYSVIPC=y2CONFIG_SYSVIPC=y
3CONFIG_LOG_BUF_SHIFT=143CONFIG_LOG_BUF_SHIFT=14
4CONFIG_SYSFS_DEPRECATED_V2=y4CONFIG_SYSFS_DEPRECATED_V2=y
5CONFIG_EMBEDDED=y5CONFIG_EXPERT=y
6CONFIG_KALLSYMS_ALL=y6CONFIG_KALLSYMS_ALL=y
7# CONFIG_SLUB_DEBUG is not set7# CONFIG_SLUB_DEBUG is not set
8CONFIG_PROFILING=y8CONFIG_PROFILING=y
arch/arm/configs/mx1_defconfig+1−1
@@ -4,7 +4,7 @@ CONFIG_IKCONFIG=y · 3 unmodified lines
4CONFIG_IKCONFIG_PROC=y4CONFIG_IKCONFIG_PROC=y
5CONFIG_LOG_BUF_SHIFT=145CONFIG_LOG_BUF_SHIFT=14
6CONFIG_SYSFS_DEPRECATED_V2=y6CONFIG_SYSFS_DEPRECATED_V2=y
7CONFIG_EMBEDDED=y7CONFIG_EXPERT=y
8CONFIG_SLAB=y8CONFIG_SLAB=y
9CONFIG_MODULES=y9CONFIG_MODULES=y
10CONFIG_MODULE_UNLOAD=y10CONFIG_MODULE_UNLOAD=y
arch/arm/configs/mx21_defconfig+1−1
@@ -4,7 +4,7 @@ CONFIG_SYSVIPC=y · 3 unmodified lines
4CONFIG_LOG_BUF_SHIFT=144CONFIG_LOG_BUF_SHIFT=14
5CONFIG_SYSFS_DEPRECATED_V2=y5CONFIG_SYSFS_DEPRECATED_V2=y
6# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set6# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
7CONFIG_EMBEDDED=y7CONFIG_EXPERT=y
8CONFIG_KALLSYMS_EXTRA_PASS=y8CONFIG_KALLSYMS_EXTRA_PASS=y
9CONFIG_SLAB=y9CONFIG_SLAB=y
10CONFIG_MODULES=y10CONFIG_MODULES=y
arch/arm/configs/mx27_defconfig+1−1
@@ -4,7 +4,7 @@ CONFIG_SYSVIPC=y · 3 unmodified lines
4CONFIG_POSIX_MQUEUE=y4CONFIG_POSIX_MQUEUE=y
5CONFIG_LOG_BUF_SHIFT=145CONFIG_LOG_BUF_SHIFT=14
6# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set6# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
7CONFIG_EMBEDDED=y7CONFIG_EXPERT=y
8CONFIG_KALLSYMS_EXTRA_PASS=y8CONFIG_KALLSYMS_EXTRA_PASS=y
9# CONFIG_COMPAT_BRK is not set9# CONFIG_COMPAT_BRK is not set
10CONFIG_SLAB=y10CONFIG_SLAB=y
arch/arm/configs/mx3_defconfig+2−1
@@ -4,7 +4,7 @@ CONFIG_IKCONFIG=y · 3 unmodified lines
4CONFIG_IKCONFIG_PROC=y4CONFIG_IKCONFIG_PROC=y
5CONFIG_LOG_BUF_SHIFT=145CONFIG_LOG_BUF_SHIFT=14
6CONFIG_SYSFS_DEPRECATED_V2=y6CONFIG_SYSFS_DEPRECATED_V2=y
7CONFIG_EMBEDDED=y7CONFIG_EXPERT=y
8CONFIG_SLAB=y8CONFIG_SLAB=y
9CONFIG_MODULES=y9CONFIG_MODULES=y
10CONFIG_MODULE_UNLOAD=y10CONFIG_MODULE_UNLOAD=y
@@ -84,6 +84,7 @@ CONFIG_SERIAL_IMX_CONSOLE=y · 73 unmodified lines
84CONFIG_I2C=y84CONFIG_I2C=y
85CONFIG_I2C_CHARDEV=y85CONFIG_I2C_CHARDEV=y
86CONFIG_I2C_IMX=y86CONFIG_I2C_IMX=y
87CONFIG_SPI=y
87CONFIG_W1=y88CONFIG_W1=y
88CONFIG_W1_MASTER_MXC=y89CONFIG_W1_MASTER_MXC=y
89CONFIG_W1_SLAVE_THERM=y90CONFIG_W1_SLAVE_THERM=y
arch/arm/configs/mx51_defconfig+1−1
@@ -3,7 +3,7 @@ CONFIG_EXPERIMENTAL=y · 2 unmodified lines
3CONFIG_SYSVIPC=y3CONFIG_SYSVIPC=y
4CONFIG_LOG_BUF_SHIFT=184CONFIG_LOG_BUF_SHIFT=18
5CONFIG_RELAY=y5CONFIG_RELAY=y
6CONFIG_EMBEDDED=y6CONFIG_EXPERT=y
7# CONFIG_SLUB_DEBUG is not set7# CONFIG_SLUB_DEBUG is not set
8# CONFIG_COMPAT_BRK is not set8# CONFIG_COMPAT_BRK is not set
9CONFIG_MODULES=y9CONFIG_MODULES=y
arch/arm/configs/n770_defconfig+0−138
@@ -1,138 +0,0 @@
1CONFIG_EXPERIMENTAL=y
2CONFIG_SYSVIPC=y
3CONFIG_POSIX_MQUEUE=y
4CONFIG_LOG_BUF_SHIFT=14
5CONFIG_SLAB=y
6CONFIG_MODULES=y
7CONFIG_MODULE_UNLOAD=y
8# CONFIG_BLK_DEV_BSG is not set
9# CONFIG_IOSCHED_DEADLINE is not set
10CONFIG_ARCH_OMAP=y
11CONFIG_ARCH_OMAP1=y
12CONFIG_OMAP_RESET_CLOCKS=y
13# CONFIG_OMAP_MUX is not set
14CONFIG_OMAP_MBOX_FWK=y
15CONFIG_OMAP_32K_TIMER=y
16CONFIG_OMAP_DM_TIMER=y
17# CONFIG_ARCH_OMAP15XX is not set
18CONFIG_ARCH_OMAP16XX=y
19CONFIG_MACH_NOKIA770=y
20CONFIG_OMAP_CLOCKS_SET_BY_BOOTLOADER=y
21CONFIG_OMAP_ARM_216MHZ=y
22# CONFIG_OMAP_ARM_60MHZ is not set
23CONFIG_ZBOOT_ROM_TEXT=0x0
24CONFIG_ZBOOT_ROM_BSS=0x0
25CONFIG_CMDLINE="root=1f03 rootfstype=jffs2 time"
26CONFIG_FPE_NWFPE=y
27CONFIG_PM=y
28CONFIG_PM_RUNTIME=y
29CONFIG_NET=y
30CONFIG_PACKET=y
31CONFIG_UNIX=y
32CONFIG_INET=y
33CONFIG_IP_MULTICAST=y
34CONFIG_IP_PNP=y
35CONFIG_IP_PNP_DHCP=y
36CONFIG_IP_PNP_BOOTP=y
37# CONFIG_INET_LRO is not set
38# CONFIG_INET_DIAG is not set
39# CONFIG_IPV6 is not set
40CONFIG_NETFILTER=y
41CONFIG_BT=y
42CONFIG_BT_L2CAP=y
43CONFIG_BT_SCO=y
44CONFIG_BT_RFCOMM=y
45CONFIG_BT_RFCOMM_TTY=y
46CONFIG_BT_BNEP=y
47CONFIG_BT_HIDP=y
48CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
49CONFIG_CONNECTOR=y
50# CONFIG_PROC_EVENTS is not set
51CONFIG_MTD=y
52CONFIG_MTD_PARTITIONS=y
53CONFIG_MTD_CMDLINE_PARTS=y
54CONFIG_MTD_CHAR=y
55CONFIG_MTD_BLOCK=y
56CONFIG_MTD_NAND=y
57CONFIG_BLK_DEV_LOOP=y
58CONFIG_SCSI=y
59# CONFIG_SCSI_PROC_FS is not set
60CONFIG_BLK_DEV_SD=y
61CONFIG_NETDEVICES=y
62CONFIG_TUN=y
63CONFIG_NET_ETHERNET=y
64CONFIG_USB_USBNET=y
65# CONFIG_USB_NET_AX8817X is not set
66# CONFIG_USB_NET_CDC_SUBSET is not set
67CONFIG_PPP=y
68CONFIG_PPP_FILTER=y
69CONFIG_PPP_ASYNC=y
70CONFIG_PPP_DEFLATE=y
71CONFIG_PPP_BSDCOMP=y
72# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
73CONFIG_INPUT_EVDEV=y
74# CONFIG_KEYBOARD_ATKBD is not set
75CONFIG_KEYBOARD_OMAP=y
76# CONFIG_INPUT_MOUSE is not set
77CONFIG_INPUT_TOUCHSCREEN=y
78CONFIG_TOUCHSCREEN_ADS7846=y
79CONFIG_SERIAL_8250=y
80CONFIG_SERIAL_8250_CONSOLE=y
81# CONFIG_LEGACY_PTYS is not set
82CONFIG_I2C=y
83CONFIG_I2C_OMAP=y
84CONFIG_SPI=y
85CONFIG_SPI_OMAP_UWIRE=y
86# CONFIG_HWMON is not set
87CONFIG_WATCHDOG=y
88CONFIG_WATCHDOG_NOWAYOUT=y
89CONFIG_OMAP_WATCHDOG=y
90CONFIG_FB=y
91CONFIG_FB_OMAP=y
92CONFIG_FB_OMAP_LCDC_EXTERNAL=y
93CONFIG_FB_OMAP_LCDC_HWA742=y
94CONFIG_FB_OMAP_MANUAL_UPDATE=y
95CONFIG_FB_OMAP_LCD_MIPID=y
96# CONFIG_VGA_CONSOLE is not set
97CONFIG_SOUND=y
98CONFIG_SND=y
99# CONFIG_SND_SUPPORT_OLD_API is not set
100CONFIG_SND_DUMMY=y
101CONFIG_SND_USB_AUDIO=y
102CONFIG_USB=y
103CONFIG_USB_DEVICEFS=y
104CONFIG_USB_SUSPEND=y
105CONFIG_USB_OTG=y
106# CONFIG_USB_OTG_WHITELIST is not set
107CONFIG_USB_OHCI_HCD=y
108CONFIG_USB_STORAGE=y
109CONFIG_USB_SERIAL=y
110CONFIG_USB_SERIAL_CONSOLE=y
111CONFIG_USB_SERIAL_PL2303=y
112CONFIG_USB_GADGET=y
113CONFIG_USB_ETH=m
114CONFIG_USB_FILE_STORAGE=m
115CONFIG_USB_FILE_STORAGE_TEST=y
116CONFIG_MMC=y
117CONFIG_MMC_OMAP=y
118CONFIG_EXT2_FS=y
119CONFIG_EXT3_FS=y
120CONFIG_MSDOS_FS=y
121CONFIG_VFAT_FS=y
122CONFIG_TMPFS=y
123CONFIG_JFFS2_FS=y
124CONFIG_JFFS2_SUMMARY=y
125CONFIG_JFFS2_COMPRESSION_OPTIONS=y
126CONFIG_NFS_FS=y
127CONFIG_NFS_V3=y
128CONFIG_PARTITION_ADVANCED=y
129CONFIG_NLS_CODEPAGE_437=y
130CONFIG_NLS_CODEPAGE_852=y
131CONFIG_NLS_ISO8859_1=y
132CONFIG_NLS_ISO8859_15=y
133CONFIG_NLS_UTF8=y
134CONFIG_MAGIC_SYSRQ=y
135CONFIG_DEBUG_KERNEL=y
136CONFIG_DEBUG_MUTEXES=y
137CONFIG_DEBUG_ERRORS=y
138CONFIG_SECURITY=y
arch/arm/configs/nhk8815_defconfig+1−1
@@ -7,7 +7,7 @@ CONFIG_IKCONFIG_PROC=y · 6 unmodified lines
7CONFIG_LOG_BUF_SHIFT=147CONFIG_LOG_BUF_SHIFT=14
8CONFIG_SYSFS_DEPRECATED_V2=y8CONFIG_SYSFS_DEPRECATED_V2=y
9CONFIG_BLK_DEV_INITRD=y9CONFIG_BLK_DEV_INITRD=y
10CONFIG_EMBEDDED=y10CONFIG_EXPERT=y
11CONFIG_KALLSYMS_ALL=y11CONFIG_KALLSYMS_ALL=y
12CONFIG_SLAB=y12CONFIG_SLAB=y
13CONFIG_MODULES=y13CONFIG_MODULES=y
arch/arm/configs/omap1_defconfig+286−0
@@ -0,0 +1,286 @@
1CONFIG_EXPERIMENTAL=y
2# CONFIG_SWAP is not set
3CONFIG_SYSVIPC=y
4CONFIG_POSIX_MQUEUE=y
5CONFIG_BSD_PROCESS_ACCT=y
6CONFIG_IKCONFIG=y
7CONFIG_LOG_BUF_SHIFT=14
8CONFIG_BLK_DEV_INITRD=y
9CONFIG_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
15CONFIG_SLOB=y
16CONFIG_PROFILING=y
17CONFIG_OPROFILE=y
18CONFIG_MODULES=y
19CONFIG_MODULE_UNLOAD=y
20CONFIG_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
25CONFIG_ARCH_OMAP=y
26CONFIG_ARCH_OMAP1=y
27CONFIG_OMAP_RESET_CLOCKS=y
28# CONFIG_OMAP_MUX is not set
29CONFIG_OMAP_MBOX_FWK=y
30CONFIG_OMAP_32K_TIMER=y
31CONFIG_OMAP_DM_TIMER=y
32CONFIG_ARCH_OMAP730=y
33CONFIG_ARCH_OMAP850=y
34CONFIG_ARCH_OMAP16XX=y
35CONFIG_MACH_OMAP_INNOVATOR=y
36CONFIG_MACH_OMAP_H2=y
37CONFIG_MACH_OMAP_H3=y
38CONFIG_MACH_OMAP_HTCWIZARD=y
39CONFIG_MACH_HERALD=y
40CONFIG_MACH_OMAP_OSK=y
41CONFIG_MACH_OMAP_PERSEUS2=y
42CONFIG_MACH_OMAP_FSAMPLE=y
43CONFIG_MACH_VOICEBLUE=y
44CONFIG_MACH_OMAP_PALMTE=y
45CONFIG_MACH_OMAP_PALMZ71=y
46CONFIG_MACH_OMAP_PALMTT=y
47CONFIG_MACH_SX1=y
48CONFIG_MACH_NOKIA770=y
49CONFIG_MACH_AMS_DELTA=y
50CONFIG_MACH_OMAP_GENERIC=y
51CONFIG_OMAP_CLOCKS_SET_BY_BOOTLOADER=y
52CONFIG_OMAP_ARM_216MHZ=y
53CONFIG_OMAP_ARM_195MHZ=y
54CONFIG_OMAP_ARM_192MHZ=y
55CONFIG_OMAP_ARM_182MHZ=y
56CONFIG_OMAP_ARM_168MHZ=y
57# CONFIG_OMAP_ARM_60MHZ is not set
58# CONFIG_ARM_THUMB is not set
59CONFIG_PCCARD=y
60CONFIG_OMAP_CF=y
61CONFIG_NO_HZ=y
62CONFIG_HIGH_RES_TIMERS=y
63CONFIG_PREEMPT=y
64CONFIG_AEABI=y
65CONFIG_LEDS=y
66CONFIG_LEDS_CPU=y
67CONFIG_ZBOOT_ROM_TEXT=0x0
68CONFIG_ZBOOT_ROM_BSS=0x0
69CONFIG_CMDLINE="root=1f03 rootfstype=jffs2"
70CONFIG_FPE_NWFPE=y
71CONFIG_BINFMT_MISC=y
72CONFIG_PM=y
73# CONFIG_SUSPEND is not set
74CONFIG_PM_RUNTIME=y
75CONFIG_NET=y
76CONFIG_PACKET=y
77CONFIG_UNIX=y
78CONFIG_NET_KEY=y
79CONFIG_INET=y
80CONFIG_IP_MULTICAST=y
81CONFIG_IP_PNP=y
82CONFIG_IP_PNP_DHCP=y
83CONFIG_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
89CONFIG_IPV6=y
90CONFIG_NETFILTER=y
91CONFIG_BT=y
92CONFIG_BT_L2CAP=y
93CONFIG_BT_SCO=y
94CONFIG_BT_RFCOMM=y
95CONFIG_BT_RFCOMM_TTY=y
96CONFIG_BT_BNEP=y
97CONFIG_BT_HIDP=y
98CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
99# CONFIG_STANDALONE is not set
100# CONFIG_PREVENT_FIRMWARE_BUILD is not set
101CONFIG_CONNECTOR=y
102# CONFIG_PROC_EVENTS is not set
103CONFIG_MTD=y
104CONFIG_MTD_DEBUG=y
105CONFIG_MTD_DEBUG_VERBOSE=3
106CONFIG_MTD_PARTITIONS=y
107CONFIG_MTD_CMDLINE_PARTS=y
108CONFIG_MTD_CHAR=y
109CONFIG_MTD_BLOCK=y
110CONFIG_MTD_CFI=y
111CONFIG_MTD_CFI_INTELEXT=y
112CONFIG_MTD_NAND=y
113CONFIG_BLK_DEV_LOOP=y
114CONFIG_BLK_DEV_RAM=y
115CONFIG_BLK_DEV_RAM_COUNT=2
116CONFIG_BLK_DEV_RAM_SIZE=8192
117CONFIG_IDE=m
118CONFIG_BLK_DEV_IDECS=m
119CONFIG_SCSI=y
120# CONFIG_SCSI_PROC_FS is not set
121CONFIG_BLK_DEV_SD=y
122CONFIG_CHR_DEV_ST=y
123CONFIG_BLK_DEV_SR=y
124CONFIG_CHR_DEV_SG=y
125CONFIG_SCSI_MULTI_LUN=y
126CONFIG_NETDEVICES=y
127CONFIG_TUN=y
128CONFIG_PHYLIB=y
129CONFIG_NET_ETHERNET=y
130CONFIG_SMC91X=y
131CONFIG_USB_CATC=y
132CONFIG_USB_KAWETH=y
133CONFIG_USB_PEGASUS=y
134CONFIG_USB_RTL8150=y
135CONFIG_USB_USBNET=y
136# CONFIG_USB_NET_AX8817X is not set
137# CONFIG_USB_NET_CDC_SUBSET is not set
138CONFIG_PPP=y
139CONFIG_PPP_MULTILINK=y
140CONFIG_PPP_FILTER=y
141CONFIG_PPP_ASYNC=y
142CONFIG_PPP_DEFLATE=y
143CONFIG_PPP_BSDCOMP=y
144CONFIG_SLIP=y
145CONFIG_SLIP_COMPRESSED=y
146# CONFIG_INPUT_MOUSEDEV is not set
147CONFIG_INPUT_EVDEV=y
148CONFIG_INPUT_EVBUG=y
149# CONFIG_INPUT_KEYBOARD is not set
150# CONFIG_INPUT_MOUSE is not set
151CONFIG_INPUT_TOUCHSCREEN=y
152CONFIG_TOUCHSCREEN_ADS7846=y
153CONFIG_INPUT_MISC=y
154CONFIG_INPUT_UINPUT=y
155# CONFIG_SERIO is not set
156CONFIG_SERIAL_8250=y
157CONFIG_SERIAL_8250_CONSOLE=y
158CONFIG_SERIAL_8250_NR_UARTS=3
159CONFIG_SERIAL_8250_RUNTIME_UARTS=3
160# CONFIG_LEGACY_PTYS is not set
161CONFIG_HW_RANDOM=y
162CONFIG_I2C=y
163CONFIG_I2C_CHARDEV=y
164CONFIG_SPI=y
165CONFIG_SPI_OMAP_UWIRE=y
166# CONFIG_HWMON is not set
167CONFIG_WATCHDOG=y
168CONFIG_WATCHDOG_NOWAYOUT=y
169CONFIG_OMAP_WATCHDOG=y
170CONFIG_VIDEO_OUTPUT_CONTROL=y
171CONFIG_FB=y
172CONFIG_FIRMWARE_EDID=y
173CONFIG_FB_MODE_HELPERS=y
174CONFIG_FB_VIRTUAL=y
175CONFIG_FB_OMAP=y
176CONFIG_FB_OMAP_LCDC_EXTERNAL=y
177CONFIG_FB_OMAP_LCDC_HWA742=y
178CONFIG_FB_OMAP_MANUAL_UPDATE=y
179CONFIG_FB_OMAP_LCD_MIPID=y
180CONFIG_FB_OMAP_BOOTLOADER_INIT=y
181CONFIG_BACKLIGHT_LCD_SUPPORT=y
182CONFIG_LCD_CLASS_DEVICE=y
183CONFIG_FRAMEBUFFER_CONSOLE=y
184CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
185CONFIG_FONTS=y
186CONFIG_FONT_8x8=y
187CONFIG_FONT_8x16=y
188CONFIG_FONT_6x11=y
189CONFIG_FONT_MINI_4x6=y
190CONFIG_LOGO=y
191# CONFIG_LOGO_LINUX_MONO is not set
192# CONFIG_LOGO_LINUX_VGA16 is not set
193CONFIG_SOUND=y
194CONFIG_SND=y
195CONFIG_SND_MIXER_OSS=y
196CONFIG_SND_PCM_OSS=y
197# CONFIG_SND_SUPPORT_OLD_API is not set
198# CONFIG_SND_VERBOSE_PROCFS is not set
199CONFIG_SND_DUMMY=y
200CONFIG_SND_USB_AUDIO=y
201CONFIG_SND_SOC=y
202CONFIG_SND_OMAP_SOC=y
203# CONFIG_USB_HID is not set
204CONFIG_USB=y
205CONFIG_USB_DEBUG=y
206CONFIG_USB_DEVICEFS=y
207# CONFIG_USB_DEVICE_CLASS is not set
208CONFIG_USB_SUSPEND=y
209CONFIG_USB_MON=y
210CONFIG_USB_OHCI_HCD=y
211CONFIG_USB_STORAGE=y
212CONFIG_USB_STORAGE_DATAFAB=y
213CONFIG_USB_STORAGE_FREECOM=y
214CONFIG_USB_STORAGE_SDDR09=y
215CONFIG_USB_STORAGE_SDDR55=y
216CONFIG_USB_STORAGE_JUMPSHOT=y
217CONFIG_USB_SERIAL=y
218CONFIG_USB_SERIAL_CONSOLE=y
219CONFIG_USB_SERIAL_PL2303=y
220CONFIG_USB_TEST=y
221CONFIG_USB_GADGET=y
222CONFIG_USB_ETH=m
223# CONFIG_USB_ETH_RNDIS is not set
224CONFIG_USB_FILE_STORAGE=m
225CONFIG_USB_FILE_STORAGE_TEST=y
226CONFIG_MMC=y
227CONFIG_MMC_SDHCI=y
228CONFIG_MMC_SDHCI_PLTFM=y
229CONFIG_MMC_OMAP=y
230CONFIG_NEW_LEDS=y
231CONFIG_LEDS_CLASS=y
232CONFIG_LEDS_TRIGGERS=y
233CONFIG_LEDS_TRIGGER_TIMER=y
234CONFIG_LEDS_TRIGGER_HEARTBEAT=y
235CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
236CONFIG_RTC_CLASS=y
237CONFIG_RTC_DRV_OMAP=y
238CONFIG_EXT2_FS=y
239CONFIG_EXT3_FS=y
240# CONFIG_DNOTIFY is not set
241CONFIG_AUTOFS4_FS=y
242CONFIG_ISO9660_FS=y
243CONFIG_JOLIET=y
244CONFIG_MSDOS_FS=y
245CONFIG_VFAT_FS=y
246CONFIG_FAT_DEFAULT_CODEPAGE=866
247CONFIG_FAT_DEFAULT_IOCHARSET="koi8-r"
248CONFIG_JFFS2_FS=y
249CONFIG_JFFS2_SUMMARY=y
250CONFIG_JFFS2_COMPRESSION_OPTIONS=y
251CONFIG_CRAMFS=y
252CONFIG_ROMFS_FS=y
253CONFIG_NFS_FS=y
254CONFIG_NFS_V3=y
255CONFIG_NFS_V4=y
256CONFIG_ROOT_NFS=y
257CONFIG_PARTITION_ADVANCED=y
258CONFIG_NLS_CODEPAGE_437=y
259CONFIG_NLS_CODEPAGE_850=y
260CONFIG_NLS_CODEPAGE_852=y
261CONFIG_NLS_CODEPAGE_866=y
262CONFIG_NLS_CODEPAGE_1251=y
263CONFIG_NLS_ISO8859_1=y
264CONFIG_NLS_ISO8859_2=y
265CONFIG_NLS_ISO8859_5=y
266CONFIG_NLS_ISO8859_15=y
267CONFIG_NLS_KOI8_R=y
268CONFIG_NLS_UTF8=y
269# CONFIG_ENABLE_MUST_CHECK is not set
270CONFIG_MAGIC_SYSRQ=y
271CONFIG_DEBUG_KERNEL=y
272CONFIG_DEBUG_SPINLOCK=y
273CONFIG_DEBUG_MUTEXES=y
274# CONFIG_DEBUG_BUGVERBOSE is not set
275CONFIG_DEBUG_INFO=y
276# CONFIG_RCU_CPU_STALL_DETECTOR is not set
277CONFIG_DEBUG_USER=y
278CONFIG_DEBUG_ERRORS=y
279CONFIG_SECURITY=y
280CONFIG_CRYPTO_ECB=y
281CONFIG_CRYPTO_PCBC=y
282CONFIG_CRYPTO_DEFLATE=y
283CONFIG_CRYPTO_ZLIB=y
284CONFIG_CRYPTO_LZO=y
285# CONFIG_CRYPTO_ANSI_CPRNG is not set
286CONFIG_LIBCRC32C=y
arch/arm/configs/omap2plus_defconfig+1−1
@@ -6,7 +6,7 @@ CONFIG_IKCONFIG=y · 5 unmodified lines
6CONFIG_IKCONFIG_PROC=y6CONFIG_IKCONFIG_PROC=y
7CONFIG_LOG_BUF_SHIFT=167CONFIG_LOG_BUF_SHIFT=16
8CONFIG_BLK_DEV_INITRD=y8CONFIG_BLK_DEV_INITRD=y
9CONFIG_EMBEDDED=y9CONFIG_EXPERT=y
10# CONFIG_SYSCTL_SYSCALL is not set10# CONFIG_SYSCTL_SYSCALL is not set
11CONFIG_KALLSYMS_EXTRA_PASS=y11CONFIG_KALLSYMS_EXTRA_PASS=y
12CONFIG_SLAB=y12CONFIG_SLAB=y
arch/arm/configs/omap_generic_1510_defconfig+0−84
@@ -1,84 +0,0 @@
1CONFIG_EXPERIMENTAL=y
2CONFIG_SYSVIPC=y
3CONFIG_LOG_BUF_SHIFT=14
4CONFIG_BLK_DEV_INITRD=y
5CONFIG_SLAB=y
6CONFIG_MODULES=y
7CONFIG_MODULE_UNLOAD=y
8CONFIG_MODULE_FORCE_UNLOAD=y
9# CONFIG_BLK_DEV_BSG is not set
10CONFIG_ARCH_OMAP=y
11CONFIG_ARCH_OMAP1=y
12CONFIG_MACH_OMAP_GENERIC=y
13CONFIG_OMAP_ARM_168MHZ=y
14# CONFIG_OMAP_ARM_60MHZ is not set
15# CONFIG_ARM_THUMB is not set
16CONFIG_PREEMPT=y
17CONFIG_ZBOOT_ROM_TEXT=0x0
18CONFIG_ZBOOT_ROM_BSS=0x0
19CONFIG_CMDLINE="mem=64M console=ttyS2,115200 root=0803 ro init=/bin/sh"
20CONFIG_FPE_NWFPE=y
21CONFIG_PM=y
22CONFIG_NET=y
23CONFIG_PACKET=y
24CONFIG_UNIX=y
25CONFIG_INET=y
26CONFIG_IP_MULTICAST=y
27CONFIG_IP_PNP=y
28CONFIG_IP_PNP_DHCP=y
29CONFIG_IP_PNP_BOOTP=y
30# CONFIG_IPV6 is not set
31CONFIG_BLK_DEV_LOOP=y
32CONFIG_BLK_DEV_RAM=y
33CONFIG_BLK_DEV_RAM_SIZE=8192
34CONFIG_SCSI=y
35CONFIG_BLK_DEV_SD=y
36CONFIG_BLK_DEV_SR=y
37CONFIG_CHR_DEV_SG=y
38CONFIG_SCSI_MULTI_LUN=y
39CONFIG_NETDEVICES=y
40CONFIG_NET_ETHERNET=y
41CONFIG_USB_RTL8150=y
42CONFIG_USB_USBNET=y
43CONFIG_USB_AN2720=y
44CONFIG_USB_EPSON2888=y
45CONFIG_PPP=y
46CONFIG_PPP_MULTILINK=y
47CONFIG_KEYBOARD_OMAP=y
48# CONFIG_INPUT_MOUSE is not set
49CONFIG_SERIAL_8250=y
50CONFIG_SERIAL_8250_CONSOLE=y
51# CONFIG_LEGACY_PTYS is not set
52CONFIG_I2C=y
53CONFIG_I2C_CHARDEV=y
54CONFIG_VIDEO_OUTPUT_CONTROL=m
55# CONFIG_VGA_CONSOLE is not set
56CONFIG_USB=y
57CONFIG_USB_DEBUG=y
58CONFIG_USB_DEVICEFS=y
59# CONFIG_USB_DEVICE_CLASS is not set
60CONFIG_USB_MON=y
61CONFIG_USB_OHCI_HCD=y
62CONFIG_USB_STORAGE=y
63CONFIG_USB_STORAGE_DATAFAB=y
64CONFIG_USB_STORAGE_FREECOM=y
65CONFIG_USB_STORAGE_SDDR09=y
66CONFIG_USB_STORAGE_SDDR55=y
67CONFIG_USB_STORAGE_JUMPSHOT=y
68CONFIG_MMC=y
69CONFIG_MMC_OMAP=y
70CONFIG_RTC_CLASS=y
71CONFIG_RTC_DRV_OMAP=y
72CONFIG_EXT2_FS=y
73CONFIG_EXT3_FS=y
74CONFIG_INOTIFY=y
75CONFIG_AUTOFS_FS=y
76CONFIG_AUTOFS4_FS=y
77CONFIG_ISO9660_FS=y
78CONFIG_JOLIET=y
79CONFIG_MSDOS_FS=m
80CONFIG_VFAT_FS=m
81CONFIG_NFS_FS=y
82CONFIG_PARTITION_ADVANCED=y
83CONFIG_MAGIC_SYSRQ=y
84CONFIG_DEBUG_KERNEL=y
arch/arm/configs/omap_generic_1610_defconfig+0−87
@@ -1,87 +0,0 @@
1CONFIG_EXPERIMENTAL=y
2CONFIG_SYSVIPC=y
3CONFIG_LOG_BUF_SHIFT=14
4CONFIG_BLK_DEV_INITRD=y
5CONFIG_SLAB=y
6CONFIG_MODULES=y
7CONFIG_MODULE_UNLOAD=y
8CONFIG_MODULE_FORCE_UNLOAD=y
9# CONFIG_BLK_DEV_BSG is not set
10CONFIG_ARCH_OMAP=y
11CONFIG_ARCH_OMAP1=y
12# CONFIG_ARCH_OMAP15XX is not set
13CONFIG_ARCH_OMAP16XX=y
14CONFIG_MACH_OMAP_GENERIC=y
15CONFIG_OMAP_ARM_192MHZ=y
16# CONFIG_OMAP_ARM_60MHZ is not set
17# CONFIG_ARM_THUMB is not set
18CONFIG_PREEMPT=y
19CONFIG_ZBOOT_ROM_TEXT=0x0
20CONFIG_ZBOOT_ROM_BSS=0x0
21CONFIG_CMDLINE="mem=64M console=ttyS2,115200 root=0803 ro init=/bin/sh"
22CONFIG_FPE_NWFPE=y
23CONFIG_PM=y
24CONFIG_NET=y
25CONFIG_PACKET=y
26CONFIG_UNIX=y
27CONFIG_INET=y
28CONFIG_IP_MULTICAST=y
29CONFIG_IP_PNP=y
30CONFIG_IP_PNP_DHCP=y
31CONFIG_IP_PNP_BOOTP=y
32# CONFIG_IPV6 is not set
33CONFIG_BLK_DEV_LOOP=y
34CONFIG_BLK_DEV_RAM=y
35CONFIG_BLK_DEV_RAM_SIZE=8192
36CONFIG_SCSI=y
37CONFIG_BLK_DEV_SD=y
38CONFIG_BLK_DEV_SR=y
39CONFIG_CHR_DEV_SG=y
40CONFIG_SCSI_MULTI_LUN=y
41CONFIG_NETDEVICES=y
42CONFIG_NET_ETHERNET=y
43CONFIG_USB_RTL8150=y
44CONFIG_USB_USBNET=y
45CONFIG_USB_ALI_M5632=y
46CONFIG_USB_AN2720=y
47CONFIG_USB_EPSON2888=y
48CONFIG_PPP=y
49CONFIG_PPP_MULTILINK=y
50CONFIG_KEYBOARD_OMAP=y
51# CONFIG_INPUT_MOUSE is not set
52CONFIG_SERIAL_8250=y
53CONFIG_SERIAL_8250_CONSOLE=y
54# CONFIG_LEGACY_PTYS is not set
55CONFIG_I2C=y
56CONFIG_I2C_CHARDEV=y
57CONFIG_VIDEO_OUTPUT_CONTROL=m
58# CONFIG_VGA_CONSOLE is not set
59CONFIG_USB=y
60CONFIG_USB_DEBUG=y
61CONFIG_USB_DEVICEFS=y
62# CONFIG_USB_DEVICE_CLASS is not set
63CONFIG_USB_MON=y
64CONFIG_USB_OHCI_HCD=y
65CONFIG_USB_STORAGE=y
66CONFIG_USB_STORAGE_DATAFAB=y
67CONFIG_USB_STORAGE_FREECOM=y
68CONFIG_USB_STORAGE_SDDR09=y
69CONFIG_USB_STORAGE_SDDR55=y
70CONFIG_USB_STORAGE_JUMPSHOT=y
71CONFIG_MMC=y
72CONFIG_MMC_OMAP=y
73CONFIG_RTC_CLASS=y
74CONFIG_RTC_DRV_OMAP=y
75CONFIG_EXT2_FS=y
76CONFIG_EXT3_FS=y
77CONFIG_INOTIFY=y
78CONFIG_AUTOFS_FS=y
79CONFIG_AUTOFS4_FS=y
80CONFIG_ISO9660_FS=y
81CONFIG_JOLIET=y
82CONFIG_MSDOS_FS=m
83CONFIG_VFAT_FS=m
84CONFIG_NFS_FS=y
85CONFIG_PARTITION_ADVANCED=y
86CONFIG_MAGIC_SYSRQ=y
87CONFIG_DEBUG_KERNEL=y
arch/arm/configs/omap_generic_1710_defconfig+0−75
@@ -1,75 +0,0 @@
1CONFIG_EXPERIMENTAL=y
2CONFIG_SYSVIPC=y
3CONFIG_LOG_BUF_SHIFT=14
4CONFIG_BLK_DEV_INITRD=y
5# CONFIG_BLK_DEV_BSG is not set
6CONFIG_ARCH_OMAP=y
7CONFIG_ARCH_OMAP1=y
8# CONFIG_OMAP_MUX is not set
9# CONFIG_ARCH_OMAP15XX is not set
10CONFIG_ARCH_OMAP16XX=y
11CONFIG_MACH_OMAP_GENERIC=y
12CONFIG_OMAP_ARM_192MHZ=y
13# CONFIG_OMAP_ARM_60MHZ is not set
14# CONFIG_ARM_THUMB is not set
15CONFIG_ZBOOT_ROM_TEXT=0x0
16CONFIG_ZBOOT_ROM_BSS=0x0
17CONFIG_CMDLINE="mem=64M console=tty0 console=ttyS2,115200 root=0801"
18CONFIG_FPE_NWFPE=y
19CONFIG_ARTHUR=y
20CONFIG_PM=y
21CONFIG_NET=y
22CONFIG_PACKET=y
23CONFIG_UNIX=y
24CONFIG_INET=y
25CONFIG_IP_MULTICAST=y
26CONFIG_IP_PNP=y
27CONFIG_IP_PNP_DHCP=y
28CONFIG_IP_PNP_BOOTP=y
29# CONFIG_IPV6 is not set
30CONFIG_BLK_DEV_LOOP=y
31CONFIG_BLK_DEV_RAM=y
32CONFIG_BLK_DEV_RAM_SIZE=8192
33CONFIG_SCSI=y
34CONFIG_BLK_DEV_SD=y
35CONFIG_NETDEVICES=y
36CONFIG_NET_ETHERNET=y
37CONFIG_USB_USBNET=y
38CONFIG_USB_ALI_M5632=y
39# CONFIG_USB_BELKIN is not set
40# CONFIG_USB_ARMLINUX is not set
41CONFIG_PPP=y
42CONFIG_INPUT_EVDEV=y
43CONFIG_KEYBOARD_OMAP=y
44# CONFIG_INPUT_MOUSE is not set
45CONFIG_SERIAL_8250=y
46CONFIG_SERIAL_8250_CONSOLE=y
47CONFIG_VIDEO_OUTPUT_CONTROL=y
48# CONFIG_VGA_CONSOLE is not set
49CONFIG_USB=y
50CONFIG_USB_DEBUG=y
51CONFIG_USB_DEVICEFS=y
52CONFIG_USB_MON=y
53CONFIG_USB_OHCI_HCD=y
54CONFIG_USB_STORAGE=y
55CONFIG_MMC=y
56CONFIG_MMC_OMAP=y
57CONFIG_EXT2_FS=y
58CONFIG_EXT3_FS=y
59CONFIG_INOTIFY=y
60CONFIG_TMPFS=y
61CONFIG_NFS_FS=y
62CONFIG_NFS_V3=y
63CONFIG_NFS_V4=y
64CONFIG_PARTITION_ADVANCED=y
65CONFIG_NLS_CODEPAGE_437=y
66CONFIG_NLS_CODEPAGE_852=y
67CONFIG_NLS_ISO8859_1=y
68CONFIG_NLS_ISO8859_15=y
69CONFIG_MAGIC_SYSRQ=y
70CONFIG_DEBUG_KERNEL=y
71CONFIG_DEBUG_SPINLOCK=y
72CONFIG_DEBUG_ERRORS=y
73CONFIG_SECURITY=y
74CONFIG_CRYPTO_ECB=y
75CONFIG_CRYPTO_PCBC=y
arch/arm/configs/omap_h2_1610_defconfig+0−109
@@ -1,109 +0,0 @@
1CONFIG_EXPERIMENTAL=y
2CONFIG_SYSVIPC=y
3CONFIG_LOG_BUF_SHIFT=14
4CONFIG_BLK_DEV_INITRD=y
5CONFIG_SLAB=y
6CONFIG_MODULES=y
7CONFIG_MODULE_UNLOAD=y
8# CONFIG_BLK_DEV_BSG is not set
9CONFIG_ARCH_OMAP=y
10CONFIG_ARCH_OMAP1=y
11CONFIG_OMAP_MUX_DEBUG=y
12CONFIG_OMAP_32K_TIMER=y
13CONFIG_OMAP_DM_TIMER=y
14# CONFIG_ARCH_OMAP15XX is not set
15CONFIG_ARCH_OMAP16XX=y
16CONFIG_MACH_OMAP_H2=y
17CONFIG_NO_HZ=y
18CONFIG_HIGH_RES_TIMERS=y
19CONFIG_LEDS=y
20CONFIG_ZBOOT_ROM_TEXT=0x0
21CONFIG_ZBOOT_ROM_BSS=0x0
22CONFIG_CMDLINE="mem=32M console=ttyS0,115200n8 root=/dev/ram0 rw initrd=0x10600000,8M ramdisk_size=8192"
23CONFIG_FPE_NWFPE=y
24CONFIG_PM=y
25CONFIG_PM_RUNTIME=y
26CONFIG_NET=y
27CONFIG_PACKET=y
28CONFIG_UNIX=y
29CONFIG_INET=y
30CONFIG_IP_PNP=y
31CONFIG_IP_PNP_DHCP=y
32CONFIG_IP_PNP_BOOTP=y
33# CONFIG_INET_LRO is not set
34# CONFIG_IPV6 is not set
35CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
36CONFIG_DEBUG_DRIVER=y
37CONFIG_MTD=y
38CONFIG_MTD_DEBUG=y
39CONFIG_MTD_DEBUG_VERBOSE=3
40CONFIG_MTD_PARTITIONS=y
41CONFIG_MTD_CMDLINE_PARTS=y
42CONFIG_MTD_CHAR=y
43CONFIG_MTD_BLOCK=y
44CONFIG_MTD_CFI=y
45CONFIG_MTD_CFI_INTELEXT=y
46CONFIG_BLK_DEV_LOOP=y
47CONFIG_BLK_DEV_RAM=y
48CONFIG_BLK_DEV_RAM_SIZE=8192
49CONFIG_NETDEVICES=y
50CONFIG_NET_ETHERNET=y
51CONFIG_SMC91X=y
52CONFIG_PPP=y
53CONFIG_SLIP=y
54CONFIG_SLIP_COMPRESSED=y
55CONFIG_INPUT_EVDEV=y
56CONFIG_INPUT_EVBUG=y
57# CONFIG_INPUT_KEYBOARD is not set
58# CONFIG_INPUT_MOUSE is not set
59CONFIG_INPUT_MISC=y
60CONFIG_INPUT_UINPUT=y
61CONFIG_SERIAL_8250=y
62CONFIG_SERIAL_8250_CONSOLE=y
63# CONFIG_LEGACY_PTYS is not set
64CONFIG_I2C=y
65CONFIG_I2C_OMAP=y
66CONFIG_SPI=y
67CONFIG_SPI_OMAP_UWIRE=y
68CONFIG_WATCHDOG=y
69CONFIG_WATCHDOG_NOWAYOUT=y
70CONFIG_VIDEO_OUTPUT_CONTROL=m
71CONFIG_FB=y
72CONFIG_FIRMWARE_EDID=y
73CONFIG_FB_MODE_HELPERS=y
74CONFIG_FB_OMAP=y
75# CONFIG_VGA_CONSOLE is not set
76CONFIG_FRAMEBUFFER_CONSOLE=y
77CONFIG_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
81CONFIG_USB=y
82CONFIG_USB_DEVICEFS=y
83# CONFIG_USB_DEVICE_CLASS is not set
84CONFIG_USB_SUSPEND=y
85CONFIG_USB_OTG=y
86CONFIG_USB_MON=y
87CONFIG_USB_OHCI_HCD=y
88CONFIG_USB_TEST=y
89CONFIG_USB_GADGET=y
90CONFIG_USB_ETH=m
91CONFIG_MMC=y
92CONFIG_MMC_OMAP=y
93CONFIG_RTC_CLASS=y
94CONFIG_RTC_DRV_OMAP=y
95CONFIG_EXT2_FS=y
96CONFIG_INOTIFY=y
97CONFIG_MSDOS_FS=y
98CONFIG_VFAT_FS=y
99CONFIG_JFFS2_FS=y
100CONFIG_CRAMFS=y
101CONFIG_ROMFS_FS=y
102CONFIG_NFS_FS=y
103CONFIG_ROOT_NFS=y
104CONFIG_NLS_CODEPAGE_437=y
105CONFIG_NLS_ISO8859_1=y
106CONFIG_DEBUG_KERNEL=y
107CONFIG_DEBUG_INFO=y
108CONFIG_DEBUG_USER=y
109CONFIG_DEBUG_ERRORS=y
arch/arm/configs/omap_innovator_1510_defconfig+0−102
@@ -1,102 +0,0 @@
1CONFIG_EXPERIMENTAL=y
2CONFIG_SYSVIPC=y
3CONFIG_LOG_BUF_SHIFT=14
4CONFIG_BLK_DEV_INITRD=y
5CONFIG_SLAB=y
6CONFIG_MODULES=y
7CONFIG_MODULE_UNLOAD=y
8# CONFIG_BLK_DEV_BSG is not set
9CONFIG_ARCH_OMAP=y
10CONFIG_ARCH_OMAP1=y
11CONFIG_MACH_OMAP_INNOVATOR=y
12CONFIG_OMAP_ARM_168MHZ=y
13# CONFIG_OMAP_ARM_60MHZ is not set
14CONFIG_PREEMPT=y
15CONFIG_LEDS=y
16CONFIG_ZBOOT_ROM_TEXT=0x0
17CONFIG_ZBOOT_ROM_BSS=0x0
18CONFIG_CMDLINE="console=ttyS0,115200n8 root=/dev/nfs ip=bootp noinitrd"
19CONFIG_FPE_NWFPE=y
20CONFIG_PM=y
21CONFIG_NET=y
22CONFIG_PACKET=y
23CONFIG_UNIX=y
24CONFIG_INET=y
25CONFIG_IP_MULTICAST=y
26CONFIG_IP_PNP=y
27CONFIG_IP_PNP_DHCP=y
28CONFIG_IP_PNP_BOOTP=y
29# CONFIG_IPV6 is not set
30CONFIG_BLK_DEV_LOOP=y
31CONFIG_BLK_DEV_RAM=y
32CONFIG_BLK_DEV_RAM_SIZE=8192
33CONFIG_SCSI=y
34CONFIG_BLK_DEV_SD=y
35CONFIG_CHR_DEV_ST=y
36CONFIG_BLK_DEV_SR=y
37CONFIG_CHR_DEV_SG=y
38CONFIG_SCSI_MULTI_LUN=y
39CONFIG_NETDEVICES=y
40CONFIG_NET_ETHERNET=y
41CONFIG_SMC91X=y
42CONFIG_USB_RTL8150=y
43CONFIG_USB_USBNET=y
44# CONFIG_USB_NET_CDC_SUBSET is not set
45CONFIG_PPP=y
46CONFIG_PPP_MULTILINK=y
47CONFIG_PPP_ASYNC=y
48CONFIG_PPP_DEFLATE=y
49CONFIG_PPP_BSDCOMP=y
50CONFIG_INPUT_MOUSEDEV_SCREEN_X=240
51CONFIG_INPUT_MOUSEDEV_SCREEN_Y=320
52# CONFIG_KEYBOARD_ATKBD is not set
53CONFIG_KEYBOARD_OMAP=y
54# CONFIG_INPUT_MOUSE is not set
55CONFIG_SERIAL_8250=y
56CONFIG_SERIAL_8250_CONSOLE=y
57# CONFIG_LEGACY_PTYS is not set
58CONFIG_I2C=y
59CONFIG_VIDEO_OUTPUT_CONTROL=m
60CONFIG_FB=y
61CONFIG_FB_OMAP=y
62# CONFIG_VGA_CONSOLE is not set
63CONFIG_FRAMEBUFFER_CONSOLE=y
64CONFIG_FONTS=y
65CONFIG_FONT_8x8=y
66CONFIG_FONT_8x16=y
67CONFIG_LOGO=y
68CONFIG_USB=y
69CONFIG_USB_DEBUG=y
70CONFIG_USB_DEVICEFS=y
71# CONFIG_USB_DEVICE_CLASS is not set
72CONFIG_USB_MON=y
73CONFIG_USB_OHCI_HCD=y
74CONFIG_USB_STORAGE=y
75CONFIG_USB_STORAGE_DATAFAB=y
76CONFIG_USB_STORAGE_FREECOM=y
77CONFIG_USB_STORAGE_SDDR09=y
78CONFIG_USB_STORAGE_SDDR55=y
79CONFIG_USB_STORAGE_JUMPSHOT=y
80CONFIG_MMC=y
81CONFIG_MMC_OMAP=y
82CONFIG_RTC_CLASS=y
83CONFIG_RTC_DRV_OMAP=y
84CONFIG_EXT2_FS=y
85CONFIG_EXT3_FS=y
86CONFIG_INOTIFY=y
87CONFIG_AUTOFS_FS=y
88CONFIG_AUTOFS4_FS=y
89CONFIG_ISO9660_FS=y
90CONFIG_JOLIET=y
91CONFIG_MSDOS_FS=m
92CONFIG_VFAT_FS=m
93CONFIG_TMPFS=y
94CONFIG_NFS_FS=y
95CONFIG_NFS_V3=y
96CONFIG_NFS_V4=y
97CONFIG_ROOT_NFS=y
98CONFIG_PARTITION_ADVANCED=y
99CONFIG_MAGIC_SYSRQ=y
100CONFIG_DEBUG_KERNEL=y
101CONFIG_CRYPTO_ECB=m
102CONFIG_CRYPTO_PCBC=m
arch/arm/configs/omap_innovator_1610_defconfig+0−58
@@ -1,58 +0,0 @@
1CONFIG_EXPERIMENTAL=y
2CONFIG_SYSVIPC=y
3CONFIG_LOG_BUF_SHIFT=14
4CONFIG_BLK_DEV_INITRD=y
5CONFIG_MODULES=y
6CONFIG_MODULE_UNLOAD=y
7# CONFIG_BLK_DEV_BSG is not set
8CONFIG_ARCH_OMAP=y
9CONFIG_ARCH_OMAP1=y
10# CONFIG_ARCH_OMAP15XX is not set
11CONFIG_ARCH_OMAP16XX=y
12CONFIG_MACH_OMAP_INNOVATOR=y
13CONFIG_OMAP_ARM_192MHZ=y
14# CONFIG_OMAP_ARM_60MHZ is not set
15# CONFIG_ARM_THUMB is not set
16CONFIG_CPU_DCACHE_WRITETHROUGH=y
17CONFIG_ZBOOT_ROM_TEXT=0x0
18CONFIG_ZBOOT_ROM_BSS=0x0
19CONFIG_CMDLINE="mem=32M console=tty0 console=ttyS0,115200 initrd=0x10200000,8M root=/dev/ram0 rw"
20CONFIG_FPE_NWFPE=y
21CONFIG_NET=y
22CONFIG_PACKET=m
23CONFIG_UNIX=y
24CONFIG_INET=y
25CONFIG_IP_MULTICAST=y
26CONFIG_IP_PNP=y
27CONFIG_IP_PNP_DHCP=y
28CONFIG_IP_PNP_BOOTP=y
29# CONFIG_IPV6 is not set
30CONFIG_BLK_DEV_LOOP=y
31CONFIG_BLK_DEV_RAM=y
32CONFIG_BLK_DEV_RAM_SIZE=8192
33CONFIG_NETDEVICES=y
34CONFIG_NET_ETHERNET=y
35CONFIG_SMC91X=y
36CONFIG_PPP=y
37CONFIG_PPP_MULTILINK=y
38# CONFIG_KEYBOARD_ATKBD is not set
39CONFIG_KEYBOARD_OMAP=y
40# CONFIG_INPUT_MOUSE is not set
41CONFIG_SERIAL_8250=y
42CONFIG_SERIAL_8250_CONSOLE=y
43CONFIG_VIDEO_OUTPUT_CONTROL=m
44CONFIG_FB=y
45CONFIG_FB_MODE_HELPERS=y
46CONFIG_FB_OMAP=y
47# CONFIG_VGA_CONSOLE is not set
48CONFIG_FRAMEBUFFER_CONSOLE=y
49CONFIG_FONTS=y
50CONFIG_FONT_8x8=y
51CONFIG_FONT_8x16=y
52CONFIG_LOGO=y
53CONFIG_EXT2_FS=y
54CONFIG_INOTIFY=y
55CONFIG_AUTOFS_FS=y
56CONFIG_AUTOFS4_FS=y
57CONFIG_NFS_FS=y
58CONFIG_NFS_V3=y
arch/arm/configs/omap_osk_5912_defconfig+0−87
@@ -1,87 +0,0 @@
1CONFIG_EXPERIMENTAL=y
2CONFIG_SYSVIPC=y
3CONFIG_LOG_BUF_SHIFT=14
4CONFIG_BLK_DEV_INITRD=y
5CONFIG_MODULES=y
6CONFIG_MODULE_UNLOAD=y
7# CONFIG_BLK_DEV_BSG is not set
8CONFIG_ARCH_OMAP=y
9CONFIG_ARCH_OMAP1=y
10CONFIG_OMAP_RESET_CLOCKS=y
11CONFIG_OMAP_32K_TIMER=y
12# CONFIG_ARCH_OMAP15XX is not set
13CONFIG_ARCH_OMAP16XX=y
14CONFIG_MACH_OMAP_OSK=y
15CONFIG_OMAP_ARM_192MHZ=y
16# CONFIG_OMAP_ARM_60MHZ is not set
17# CONFIG_ARM_THUMB is not set
18CONFIG_PCCARD=y
19CONFIG_OMAP_CF=y
20CONFIG_NO_HZ=y
21CONFIG_ZBOOT_ROM_TEXT=0x0
22CONFIG_ZBOOT_ROM_BSS=0x0
23CONFIG_CMDLINE="mem=32M console=ttyS0,115200 initrd=0x10400000,8M root=/dev/ram0 rw"
24CONFIG_FPE_NWFPE=y
25CONFIG_PM=y
26CONFIG_NET=y
27CONFIG_PACKET=m
28CONFIG_UNIX=y
29CONFIG_INET=y
30CONFIG_IP_MULTICAST=y
31CONFIG_IP_PNP=y
32CONFIG_IP_PNP_DHCP=y
33CONFIG_IP_PNP_BOOTP=y
34# CONFIG_INET_LRO is not set
35# CONFIG_IPV6 is not set
36CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
37CONFIG_MTD=y
38CONFIG_MTD_PARTITIONS=y
39CONFIG_MTD_CMDLINE_PARTS=y
40CONFIG_MTD_CHAR=y
41CONFIG_MTD_BLOCK=y
42CONFIG_MTD_CFI=y
43CONFIG_MTD_CFI_INTELEXT=y
44CONFIG_BLK_DEV_LOOP=y
45CONFIG_BLK_DEV_RAM=y
46CONFIG_BLK_DEV_RAM_SIZE=8192
47CONFIG_IDE=m
48CONFIG_BLK_DEV_IDECS=m
49CONFIG_NETDEVICES=y
50CONFIG_NET_ETHERNET=y
51CONFIG_SMC91X=y
52CONFIG_PPP=y
53CONFIG_PPP_MULTILINK=y
54# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
55CONFIG_INPUT_EVDEV=y
56# CONFIG_KEYBOARD_ATKBD is not set
57CONFIG_KEYBOARD_OMAP=y
58# CONFIG_INPUT_MOUSE is not set
59CONFIG_INPUT_TOUCHSCREEN=y
60# CONFIG_SERIO is not set
61CONFIG_SERIAL_8250=y
62CONFIG_SERIAL_8250_CONSOLE=y
63CONFIG_I2C=y
64CONFIG_I2C_CHARDEV=y
65CONFIG_VIDEO_OUTPUT_CONTROL=m
66CONFIG_FB=y
67CONFIG_FB_MODE_HELPERS=y
68CONFIG_FB_OMAP=y
69# CONFIG_VGA_CONSOLE is not set
70CONFIG_FRAMEBUFFER_CONSOLE=y
71CONFIG_FONTS=y
72CONFIG_FONT_8x8=y
73CONFIG_LOGO=y
74# CONFIG_LOGO_LINUX_MONO is not set
75# CONFIG_LOGO_LINUX_VGA16 is not set
76CONFIG_EXT2_FS=y
77CONFIG_INOTIFY=y
78CONFIG_AUTOFS_FS=y
79CONFIG_AUTOFS4_FS=y
80CONFIG_MSDOS_FS=m
81CONFIG_VFAT_FS=m
82CONFIG_JFFS2_FS=y
83CONFIG_NFS_FS=y
84CONFIG_NFS_V3=y
85CONFIG_ROOT_NFS=y
86CONFIG_NLS_CODEPAGE_437=m
87CONFIG_NLS_ISO8859_1=m
arch/arm/configs/omap_perseus2_730_defconfig+0−65
@@ -1,65 +0,0 @@
1CONFIG_EXPERIMENTAL=y
2CONFIG_SYSVIPC=y
3CONFIG_LOG_BUF_SHIFT=14
4CONFIG_BLK_DEV_INITRD=y
5CONFIG_SLAB=y
6CONFIG_MODULES=y
7CONFIG_MODULE_UNLOAD=y
8# CONFIG_BLK_DEV_BSG is not set
9CONFIG_ARCH_OMAP=y
10CONFIG_ARCH_OMAP1=y
11CONFIG_ARCH_OMAP730=y
12# CONFIG_ARCH_OMAP15XX is not set
13CONFIG_MACH_OMAP_PERSEUS2=y
14CONFIG_OMAP_ARM_182MHZ=y
15# CONFIG_OMAP_ARM_60MHZ is not set
16# CONFIG_ARM_THUMB is not set
17CONFIG_PREEMPT=y
18CONFIG_LEDS=y
19CONFIG_LEDS_CPU=y
20CONFIG_ZBOOT_ROM_TEXT=0x0
21CONFIG_ZBOOT_ROM_BSS=0x0
22CONFIG_CMDLINE="mem=32M console=ttyS0,115200 ip=dhcp"
23CONFIG_FPE_NWFPE=y
24CONFIG_PM=y
25CONFIG_NET=y
26CONFIG_PACKET=y
27CONFIG_UNIX=y
28CONFIG_INET=y
29CONFIG_IP_MULTICAST=y
30CONFIG_IP_PNP=y
31CONFIG_IP_PNP_DHCP=y
32CONFIG_IP_PNP_BOOTP=y
33# CONFIG_IPV6 is not set
34CONFIG_MTD=y
35CONFIG_MTD_PARTITIONS=y
36CONFIG_MTD_CMDLINE_PARTS=y
37CONFIG_MTD_CHAR=y
38CONFIG_MTD_BLOCK=y
39CONFIG_MTD_CFI=y
40CONFIG_MTD_CFI_INTELEXT=y
41CONFIG_MTD_NAND=y
42CONFIG_BLK_DEV_LOOP=y
43CONFIG_BLK_DEV_RAM=y
44CONFIG_BLK_DEV_RAM_SIZE=8192
45CONFIG_NETDEVICES=y
46CONFIG_NET_ETHERNET=y
47CONFIG_SMC91X=y
48# CONFIG_KEYBOARD_ATKBD is not set
49CONFIG_KEYBOARD_OMAP=y
50# CONFIG_INPUT_MOUSE is not set
51CONFIG_SERIAL_8250=y
52CONFIG_SERIAL_8250_CONSOLE=y
53# CONFIG_LEGACY_PTYS is not set
54CONFIG_VIDEO_OUTPUT_CONTROL=m
55CONFIG_FB=y
56CONFIG_FB_MODE_HELPERS=y
57CONFIG_FB_VIRTUAL=y
58# CONFIG_VGA_CONSOLE is not set
59CONFIG_RTC_CLASS=y
60CONFIG_RTC_DRV_OMAP=y
61CONFIG_EXT2_FS=y
62CONFIG_INOTIFY=y
63CONFIG_JFFS2_FS=y
64CONFIG_NFS_FS=y
65CONFIG_ROOT_NFS=y
arch/arm/configs/orion5x_defconfig+1−1
@@ -2,7 +2,7 @@ CONFIG_EXPERIMENTAL=y · 1 unmodified line
2CONFIG_SYSVIPC=y2CONFIG_SYSVIPC=y
3CONFIG_LOG_BUF_SHIFT=143CONFIG_LOG_BUF_SHIFT=14
4CONFIG_SYSFS_DEPRECATED_V2=y4CONFIG_SYSFS_DEPRECATED_V2=y
5CONFIG_EMBEDDED=y5CONFIG_EXPERT=y
6# CONFIG_SLUB_DEBUG is not set6# CONFIG_SLUB_DEBUG is not set
7CONFIG_PROFILING=y7CONFIG_PROFILING=y
8CONFIG_OPROFILE=y8CONFIG_OPROFILE=y
arch/arm/configs/palmte_defconfig+0−48
@@ -1,48 +0,0 @@
1CONFIG_EXPERIMENTAL=y
2# CONFIG_SWAP is not set
3CONFIG_SYSVIPC=y
4CONFIG_BSD_PROCESS_ACCT=y
5CONFIG_LOG_BUF_SHIFT=14
6CONFIG_SLAB=y
7# CONFIG_IOSCHED_DEADLINE is not set
8# CONFIG_IOSCHED_CFQ is not set
9CONFIG_ARCH_OMAP=y
10CONFIG_ARCH_OMAP1=y
11CONFIG_MACH_OMAP_PALMTE=y
12CONFIG_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
16CONFIG_ZBOOT_ROM_TEXT=0x0
17CONFIG_ZBOOT_ROM_BSS=0x0
18CONFIG_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
22CONFIG_INPUT_MOUSEDEV_SCREEN_X=320
23CONFIG_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
29CONFIG_FB=y
30CONFIG_FB_OMAP=y
31# CONFIG_VGA_CONSOLE is not set
32CONFIG_FRAMEBUFFER_CONSOLE=y
33CONFIG_LOGO=y
34# CONFIG_LOGO_LINUX_MONO is not set
35# CONFIG_LOGO_LINUX_VGA16 is not set
36CONFIG_USB_GADGET=y
37CONFIG_MMC=y
38CONFIG_MMC_OMAP=y
39CONFIG_EXT2_FS=y
40CONFIG_MSDOS_FS=y
41CONFIG_VFAT_FS=y
42CONFIG_FAT_DEFAULT_CODEPAGE=850
43CONFIG_TMPFS=y
44CONFIG_CRAMFS=y
45CONFIG_PARTITION_ADVANCED=y
46CONFIG_NLS_CODEPAGE_850=y
47CONFIG_NLS_ISO8859_1=y
48CONFIG_CRC_CCITT=y
arch/arm/configs/palmtt_defconfig+0−56
@@ -1,56 +0,0 @@
1CONFIG_EXPERIMENTAL=y
2CONFIG_SYSVIPC=y
3CONFIG_BSD_PROCESS_ACCT=y
4CONFIG_LOG_BUF_SHIFT=14
5CONFIG_SLAB=y
6# CONFIG_IOSCHED_DEADLINE is not set
7# CONFIG_IOSCHED_CFQ is not set
8CONFIG_ARCH_OMAP=y
9CONFIG_ARCH_OMAP1=y
10CONFIG_MACH_OMAP_PALMTT=y
11CONFIG_OMAP_CLOCKS_SET_BY_BOOTLOADER=y
12# CONFIG_OMAP_ARM_60MHZ is not set
13# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
14CONFIG_ZBOOT_ROM_TEXT=0x0
15CONFIG_ZBOOT_ROM_BSS=0x0
16CONFIG_CMDLINE="root=/dev/mmcblk0p2 rw init=/init"
17CONFIG_FPE_NWFPE=y
18CONFIG_NET=y
19CONFIG_PACKET=y
20CONFIG_UNIX=y
21CONFIG_NET_KEY=y
22CONFIG_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
28CONFIG_INPUT_MOUSEDEV_SCREEN_X=320
29CONFIG_INPUT_MOUSEDEV_SCREEN_Y=320
30CONFIG_INPUT_EVDEV=y
31# CONFIG_INPUT_KEYBOARD is not set
32# CONFIG_INPUT_MOUSE is not set
33CONFIG_INPUT_TOUCHSCREEN=y
34CONFIG_TOUCHSCREEN_ADS7846=y
35# CONFIG_SERIO is not set
36CONFIG_SPI=y
37CONFIG_SPI_OMAP_UWIRE=y
38CONFIG_FB=y
39CONFIG_FIRMWARE_EDID=y
40CONFIG_FB_OMAP=y
41CONFIG_BACKLIGHT_LCD_SUPPORT=y
42# CONFIG_VGA_CONSOLE is not set
43CONFIG_FRAMEBUFFER_CONSOLE=y
44CONFIG_NEW_LEDS=y
45CONFIG_LEDS_CLASS=y
46CONFIG_LEDS_TRIGGERS=y
47CONFIG_LEDS_TRIGGER_TIMER=y
48CONFIG_LEDS_TRIGGER_HEARTBEAT=y
49CONFIG_RTC_CLASS=y
50CONFIG_RTC_DRV_OMAP=y
51CONFIG_EXT2_FS=y
52CONFIG_PARTITION_ADVANCED=y
53# CONFIG_ENABLE_MUST_CHECK is not set
54CONFIG_CRC_CCITT=y
55CONFIG_CRC16=y
56CONFIG_LIBCRC32C=y
arch/arm/configs/palmz71_defconfig+0−53
@@ -1,53 +0,0 @@
1CONFIG_EXPERIMENTAL=y
2CONFIG_LOCALVERSION="-z71"
3CONFIG_SYSVIPC=y
4CONFIG_BSD_PROCESS_ACCT=y
5CONFIG_LOG_BUF_SHIFT=14
6CONFIG_SLAB=y
7# CONFIG_IOSCHED_DEADLINE is not set
8# CONFIG_IOSCHED_CFQ is not set
9CONFIG_ARCH_OMAP=y
10CONFIG_ARCH_OMAP1=y
11CONFIG_MACH_OMAP_PALMZ71=y
12CONFIG_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
16CONFIG_ZBOOT_ROM_TEXT=0x0
17CONFIG_ZBOOT_ROM_BSS=0x0
18CONFIG_FPE_NWFPE=y
19CONFIG_NET=y
20CONFIG_PACKET=y
21CONFIG_UNIX=y
22CONFIG_NET_KEY=y
23CONFIG_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
28CONFIG_INPUT_MOUSEDEV_SCREEN_X=320
29CONFIG_INPUT_MOUSEDEV_SCREEN_Y=320
30# CONFIG_INPUT_KEYBOARD is not set
31# CONFIG_INPUT_MOUSE is not set
32CONFIG_INPUT_TOUCHSCREEN=y
33CONFIG_TOUCHSCREEN_ADS7846=y
34# CONFIG_SERIO is not set
35CONFIG_SERIAL_8250=y
36CONFIG_SERIAL_8250_CONSOLE=y
37CONFIG_LEGACY_PTY_COUNT=16
38CONFIG_SPI=y
39CONFIG_SPI_OMAP_UWIRE=y
40CONFIG_FB=y
41CONFIG_FIRMWARE_EDID=y
42CONFIG_FB_OMAP=y
43CONFIG_BACKLIGHT_LCD_SUPPORT=y
44# CONFIG_VGA_CONSOLE is not set
45CONFIG_FRAMEBUFFER_CONSOLE=y
46CONFIG_MMC=y
47CONFIG_MMC_OMAP=y
48CONFIG_RTC_CLASS=y
49CONFIG_RTC_DRV_OMAP=y
50CONFIG_EXT2_FS=y
51CONFIG_CRC_CCITT=y
52CONFIG_CRC16=y
53CONFIG_LIBCRC32C=y
arch/arm/configs/pcm027_defconfig+1−1
@@ -7,7 +7,7 @@ CONFIG_IKCONFIG=y · 6 unmodified lines
7CONFIG_IKCONFIG_PROC=y7CONFIG_IKCONFIG_PROC=y
8CONFIG_LOG_BUF_SHIFT=148CONFIG_LOG_BUF_SHIFT=14
9# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set9# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
10CONFIG_EMBEDDED=y10CONFIG_EXPERT=y
11# CONFIG_KALLSYMS is not set11# CONFIG_KALLSYMS is not set
12CONFIG_SLAB=y12CONFIG_SLAB=y
13CONFIG_MODULES=y13CONFIG_MODULES=y
arch/arm/configs/pcontrol_g20_defconfig+1−1
@@ -10,7 +10,7 @@ CONFIG_IKCONFIG_PROC=y · 9 unmodified lines
10CONFIG_LOG_BUF_SHIFT=1410CONFIG_LOG_BUF_SHIFT=14
11CONFIG_NAMESPACES=y11CONFIG_NAMESPACES=y
12CONFIG_BLK_DEV_INITRD=y12CONFIG_BLK_DEV_INITRD=y
13CONFIG_EMBEDDED=y13CONFIG_EXPERT=y
14# CONFIG_SYSCTL_SYSCALL is not set14# CONFIG_SYSCTL_SYSCALL is not set
15# CONFIG_KALLSYMS is not set15# CONFIG_KALLSYMS is not set
16# CONFIG_VM_EVENT_COUNTERS is not set16# CONFIG_VM_EVENT_COUNTERS is not set
arch/arm/configs/pleb_defconfig+1−1
@@ -3,7 +3,7 @@ CONFIG_EXPERIMENTAL=y · 2 unmodified lines
3CONFIG_SYSVIPC=y3CONFIG_SYSVIPC=y
4CONFIG_LOG_BUF_SHIFT=144CONFIG_LOG_BUF_SHIFT=14
5CONFIG_BLK_DEV_INITRD=y5CONFIG_BLK_DEV_INITRD=y
6CONFIG_EMBEDDED=y6CONFIG_EXPERT=y
7# CONFIG_HOTPLUG is not set7# CONFIG_HOTPLUG is not set
8# CONFIG_SHMEM is not set8# CONFIG_SHMEM is not set
9CONFIG_MODULES=y9CONFIG_MODULES=y
arch/arm/configs/pnx4008_defconfig+1−1
@@ -5,7 +5,7 @@ CONFIG_BSD_PROCESS_ACCT=y · 4 unmodified lines
5CONFIG_AUDIT=y5CONFIG_AUDIT=y
6CONFIG_LOG_BUF_SHIFT=146CONFIG_LOG_BUF_SHIFT=14
7CONFIG_BLK_DEV_INITRD=y7CONFIG_BLK_DEV_INITRD=y
8CONFIG_EMBEDDED=y8CONFIG_EXPERT=y
9CONFIG_SLAB=y9CONFIG_SLAB=y
10CONFIG_MODULES=y10CONFIG_MODULES=y
11CONFIG_MODULE_UNLOAD=y11CONFIG_MODULE_UNLOAD=y
arch/arm/configs/simpad_defconfig+1−1
@@ -2,7 +2,7 @@ CONFIG_EXPERIMENTAL=y · 1 unmodified line
2CONFIG_LOCALVERSION="oe1"2CONFIG_LOCALVERSION="oe1"
3CONFIG_SYSVIPC=y3CONFIG_SYSVIPC=y
4CONFIG_LOG_BUF_SHIFT=144CONFIG_LOG_BUF_SHIFT=14
5CONFIG_EMBEDDED=y5CONFIG_EXPERT=y
6CONFIG_KALLSYMS_ALL=y6CONFIG_KALLSYMS_ALL=y
7CONFIG_KALLSYMS_EXTRA_PASS=y7CONFIG_KALLSYMS_EXTRA_PASS=y
8CONFIG_MODULES=y8CONFIG_MODULES=y
arch/arm/configs/spitz_defconfig+1−1
@@ -4,7 +4,7 @@ CONFIG_BSD_PROCESS_ACCT=y · 3 unmodified lines
4CONFIG_LOG_BUF_SHIFT=144CONFIG_LOG_BUF_SHIFT=14
5CONFIG_SYSFS_DEPRECATED_V2=y5CONFIG_SYSFS_DEPRECATED_V2=y
6# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set6# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
7CONFIG_EMBEDDED=y7CONFIG_EXPERT=y
8CONFIG_PROFILING=y8CONFIG_PROFILING=y
9CONFIG_OPROFILE=m9CONFIG_OPROFILE=m
10CONFIG_MODULES=y10CONFIG_MODULES=y
arch/arm/configs/stmp378x_defconfig+1−1
@@ -5,7 +5,7 @@ CONFIG_POSIX_MQUEUE=y · 4 unmodified lines
5CONFIG_BSD_PROCESS_ACCT=y5CONFIG_BSD_PROCESS_ACCT=y
6CONFIG_SYSFS_DEPRECATED_V2=y6CONFIG_SYSFS_DEPRECATED_V2=y
7CONFIG_BLK_DEV_INITRD=y7CONFIG_BLK_DEV_INITRD=y
8CONFIG_EMBEDDED=y8CONFIG_EXPERT=y
9CONFIG_SLAB=y9CONFIG_SLAB=y
10CONFIG_MODULES=y10CONFIG_MODULES=y
11CONFIG_MODULE_UNLOAD=y11CONFIG_MODULE_UNLOAD=y
arch/arm/configs/stmp37xx_defconfig+1−1
@@ -5,7 +5,7 @@ CONFIG_POSIX_MQUEUE=y · 4 unmodified lines
5CONFIG_BSD_PROCESS_ACCT=y5CONFIG_BSD_PROCESS_ACCT=y
6CONFIG_SYSFS_DEPRECATED_V2=y6CONFIG_SYSFS_DEPRECATED_V2=y
7CONFIG_BLK_DEV_INITRD=y7CONFIG_BLK_DEV_INITRD=y
8CONFIG_EMBEDDED=y8CONFIG_EXPERT=y
9CONFIG_SLAB=y9CONFIG_SLAB=y
10CONFIG_MODULES=y10CONFIG_MODULES=y
11CONFIG_MODULE_UNLOAD=y11CONFIG_MODULE_UNLOAD=y
arch/arm/configs/sx1_defconfig+0−110
@@ -1,110 +0,0 @@
1CONFIG_EXPERIMENTAL=y
2CONFIG_SYSVIPC=y
3CONFIG_POSIX_MQUEUE=y
4CONFIG_IKCONFIG=y
5CONFIG_LOG_BUF_SHIFT=14
6CONFIG_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
12CONFIG_SLOB=y
13CONFIG_PROFILING=y
14CONFIG_OPROFILE=y
15CONFIG_MODULES=y
16CONFIG_MODULE_UNLOAD=y
17# CONFIG_IOSCHED_CFQ is not set
18CONFIG_ARCH_OMAP=y
19CONFIG_ARCH_OMAP1=y
20CONFIG_OMAP_MBOX_FWK=y
21CONFIG_MACH_SX1=y
22CONFIG_OMAP_ARM_168MHZ=y
23# CONFIG_OMAP_ARM_60MHZ is not set
24# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
25CONFIG_PREEMPT=y
26CONFIG_ZBOOT_ROM_TEXT=0x0
27CONFIG_ZBOOT_ROM_BSS=0x0
28CONFIG_FPE_NWFPE=y
29CONFIG_BINFMT_MISC=y
30CONFIG_NET=y
31CONFIG_PACKET=y
32CONFIG_UNIX=y
33CONFIG_INET=y
34CONFIG_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
41CONFIG_CONNECTOR=y
42# CONFIG_PROC_EVENTS is not set
43CONFIG_BLK_DEV_LOOP=m
44CONFIG_BLK_DEV_RAM=m
45CONFIG_BLK_DEV_RAM_COUNT=2
46CONFIG_NETDEVICES=y
47CONFIG_PHYLIB=y
48CONFIG_NET_ETHERNET=y
49CONFIG_MII=y
50# CONFIG_INPUT_MOUSEDEV is not set
51CONFIG_INPUT_EVDEV=y
52# CONFIG_KEYBOARD_ATKBD is not set
53CONFIG_KEYBOARD_OMAP=y
54# CONFIG_INPUT_MOUSE is not set
55# CONFIG_SERIO is not set
56CONFIG_SERIAL_8250=y
57CONFIG_SERIAL_8250_NR_UARTS=3
58# CONFIG_LEGACY_PTYS is not set
59# CONFIG_HW_RANDOM is not set
60CONFIG_I2C=y
61CONFIG_I2C_CHARDEV=y
62CONFIG_I2C_OMAP=y
63# CONFIG_HWMON is not set
64CONFIG_FB=y
65CONFIG_FB_OMAP=y
66CONFIG_FB_OMAP_BOOTLOADER_INIT=y
67# CONFIG_VGA_CONSOLE is not set
68CONFIG_FRAMEBUFFER_CONSOLE=y
69CONFIG_FONTS=y
70CONFIG_FONT_MINI_4x6=y
71CONFIG_LOGO=y
72# CONFIG_LOGO_LINUX_MONO is not set
73# CONFIG_LOGO_LINUX_VGA16 is not set
74CONFIG_SOUND=y
75CONFIG_SND=y
76CONFIG_SND_MIXER_OSS=y
77CONFIG_SND_PCM_OSS=y
78# CONFIG_SND_SUPPORT_OLD_API is not set
79# CONFIG_SND_VERBOSE_PROCFS is not set
80CONFIG_USB_GADGET=y
81CONFIG_USB_ETH=m
82CONFIG_MMC=y
83CONFIG_MMC_OMAP=y
84CONFIG_RTC_CLASS=y
85CONFIG_RTC_DRV_OMAP=y
86CONFIG_EXT2_FS=y
87# CONFIG_DNOTIFY is not set
88CONFIG_INOTIFY=y
89CONFIG_MSDOS_FS=y
90CONFIG_VFAT_FS=y
91CONFIG_FAT_DEFAULT_CODEPAGE=866
92CONFIG_FAT_DEFAULT_IOCHARSET="koi8-r"
93CONFIG_CRAMFS=y
94CONFIG_NFS_FS=y
95CONFIG_ROOT_NFS=y
96CONFIG_PARTITION_ADVANCED=y
97CONFIG_NLS_CODEPAGE_437=y
98CONFIG_NLS_CODEPAGE_866=y
99CONFIG_NLS_CODEPAGE_1251=y
100CONFIG_NLS_ISO8859_1=y
101CONFIG_NLS_ISO8859_5=y
102CONFIG_NLS_KOI8_R=y
103CONFIG_NLS_UTF8=y
104# CONFIG_ENABLE_MUST_CHECK is not set
105CONFIG_DEBUG_KERNEL=y
106# CONFIG_DETECT_SOFTLOCKUP is not set
107# CONFIG_DEBUG_BUGVERBOSE is not set
108CONFIG_CRC_CCITT=y
109CONFIG_CRC16=y
110CONFIG_LIBCRC32C=y
arch/arm/configs/tct_hammer_defconfig+1−1
@@ -5,7 +5,7 @@ CONFIG_SYSVIPC=y · 4 unmodified lines
5CONFIG_LOG_BUF_SHIFT=145CONFIG_LOG_BUF_SHIFT=14
6CONFIG_SYSFS_DEPRECATED_V2=y6CONFIG_SYSFS_DEPRECATED_V2=y
7CONFIG_BLK_DEV_INITRD=y7CONFIG_BLK_DEV_INITRD=y
8CONFIG_EMBEDDED=y8CONFIG_EXPERT=y
9# CONFIG_KALLSYMS is not set9# CONFIG_KALLSYMS is not set
10# CONFIG_BUG is not set10# CONFIG_BUG is not set
11# CONFIG_ELF_CORE is not set11# CONFIG_ELF_CORE is not set
arch/arm/configs/trizeps4_defconfig+1−1
@@ -7,7 +7,7 @@ CONFIG_IKCONFIG=y · 6 unmodified lines
7CONFIG_IKCONFIG_PROC=y7CONFIG_IKCONFIG_PROC=y
8CONFIG_LOG_BUF_SHIFT=148CONFIG_LOG_BUF_SHIFT=14
9CONFIG_BLK_DEV_INITRD=y9CONFIG_BLK_DEV_INITRD=y
10CONFIG_EMBEDDED=y10CONFIG_EXPERT=y
11CONFIG_KALLSYMS_EXTRA_PASS=y11CONFIG_KALLSYMS_EXTRA_PASS=y
12CONFIG_SLAB=y12CONFIG_SLAB=y
13CONFIG_MODULES=y13CONFIG_MODULES=y
arch/arm/configs/u300_defconfig+1−1
@@ -3,7 +3,7 @@ CONFIG_EXPERIMENTAL=y · 2 unmodified lines
3# CONFIG_SWAP is not set3# CONFIG_SWAP is not set
4CONFIG_SYSVIPC=y4CONFIG_SYSVIPC=y
5CONFIG_LOG_BUF_SHIFT=145CONFIG_LOG_BUF_SHIFT=14
6CONFIG_EMBEDDED=y6CONFIG_EXPERT=y
7# CONFIG_AIO is not set7# CONFIG_AIO is not set
8# CONFIG_VM_EVENT_COUNTERS is not set8# CONFIG_VM_EVENT_COUNTERS is not set
9CONFIG_MODULES=y9CONFIG_MODULES=y
arch/arm/configs/u8500_defconfig+4−0
@@ -9,6 +9,10 @@ CONFIG_MODULE_UNLOAD=y · 8 unmodified lines
9# CONFIG_LBDAF is not set9# CONFIG_LBDAF is not set
10# CONFIG_BLK_DEV_BSG is not set10# CONFIG_BLK_DEV_BSG is not set
11CONFIG_ARCH_U8500=y11CONFIG_ARCH_U8500=y
12CONFIG_UX500_SOC_DB5500=y
13CONFIG_UX500_SOC_DB8500=y
14CONFIG_MACH_U8500=y
15CONFIG_MACH_U5500=y
12CONFIG_SMP=y16CONFIG_SMP=y
13CONFIG_NR_CPUS=217CONFIG_NR_CPUS=2
14CONFIG_PREEMPT=y18CONFIG_PREEMPT=y
arch/arm/configs/viper_defconfig+1−1
@@ -3,7 +3,7 @@ CONFIG_EXPERIMENTAL=y · 2 unmodified lines
3CONFIG_SYSVIPC=y3CONFIG_SYSVIPC=y
4CONFIG_LOG_BUF_SHIFT=134CONFIG_LOG_BUF_SHIFT=13
5CONFIG_SYSFS_DEPRECATED_V2=y5CONFIG_SYSFS_DEPRECATED_V2=y
6CONFIG_EMBEDDED=y6CONFIG_EXPERT=y
7# CONFIG_ELF_CORE is not set7# CONFIG_ELF_CORE is not set
8# CONFIG_SHMEM is not set8# CONFIG_SHMEM is not set
9CONFIG_SLAB=y9CONFIG_SLAB=y
arch/arm/configs/xcep_defconfig+1−1
@@ -8,7 +8,7 @@ CONFIG_IKCONFIG_PROC=y · 7 unmodified lines
8CONFIG_LOG_BUF_SHIFT=168CONFIG_LOG_BUF_SHIFT=16
9CONFIG_SYSFS_DEPRECATED_V2=y9CONFIG_SYSFS_DEPRECATED_V2=y
10CONFIG_BLK_DEV_INITRD=y10CONFIG_BLK_DEV_INITRD=y
11CONFIG_EMBEDDED=y11CONFIG_EXPERT=y
12# CONFIG_UID16 is not set12# CONFIG_UID16 is not set
13# CONFIG_SHMEM is not set13# CONFIG_SHMEM is not set
14# CONFIG_VM_EVENT_COUNTERS is not set14# CONFIG_VM_EVENT_COUNTERS is not set
arch/arm/include/asm/assembler.h+26−9
@@ -18,6 +18,7 @@ · 17 unmodified lines
18#endif18#endif
19 19
20#include <asm/ptrace.h>20#include <asm/ptrace.h>
21#include <asm/domain.h>
21 22
22/*23/*
23 * Endian independent macros for shifting bytes within registers.24 * Endian independent macros for shifting bytes within registers.
@@ -157,16 +158,24 @@ · 133 unmodified lines
157#ifdef CONFIG_SMP158#ifdef CONFIG_SMP
158#define ALT_SMP(instr...) \159#define ALT_SMP(instr...) \
1599998: instr1609998: 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 */
160#define ALT_UP(instr...) \166#define ALT_UP(instr...) \
161 .pushsection ".alt.smp.init", "a" ;\167 .pushsection ".alt.smp.init", "a" ;\
162 .long 9998b ;\168 .long 9998b ;\
163 instr ;\1699997: instr ;\
170 .if . - 9997b != 4 ;\
171 .error "ALT_UP() content must assemble to exactly 4 bytes";\
172 .endif ;\
164 .popsection173 .popsection
165#define ALT_UP_B(label) \174#define ALT_UP_B(label) \
166 .equ up_b_offset, label - 9998b ;\175 .equ up_b_offset, label - 9998b ;\
167 .pushsection ".alt.smp.init", "a" ;\176 .pushsection ".alt.smp.init", "a" ;\
168 .long 9998b ;\177 .long 9998b ;\
169 b . + up_b_offset ;\178 W(b) . + up_b_offset ;\
170 .popsection179 .popsection
171#else180#else
172#define ALT_SMP(instr...)181#define ALT_SMP(instr...)
@@ -177,16 +186,24 @@ · 4 unmodified lines
177/*186/*
178 * SMP data memory barrier187 * SMP data memory barrier
179 */188 */
180 .macro smp_dmb189 .macro smp_dmb mode
181#ifdef CONFIG_SMP190#ifdef CONFIG_SMP
182#if __LINUX_ARM_ARCH__ >= 7191#if __LINUX_ARM_ARCH__ >= 7
192 .ifeqs "\mode","arm"
183 ALT_SMP(dmb)193 ALT_SMP(dmb)
194 .else
195 ALT_SMP(W(dmb))
196 .endif
184#elif __LINUX_ARM_ARCH__ == 6197#elif __LINUX_ARM_ARCH__ == 6
185 ALT_SMP(mcr p15, 0, r0, c7, c10, 5) @ dmb198 ALT_SMP(mcr p15, 0, r0, c7, c10, 5) @ dmb
186#else199#else
187#error Incompatible SMP platform200#error Incompatible SMP platform
188#endif201#endif
202 .ifeqs "\mode","arm"
189 ALT_UP(nop)203 ALT_UP(nop)
204 .else
205 ALT_UP(W(nop))
206 .endif
190#endif207#endif
191 .endm208 .endm
192 209
@@ -206,12 +223,12 @@ · 13 unmodified lines
206 */223 */
207#ifdef CONFIG_THUMB2_KERNEL224#ifdef CONFIG_THUMB2_KERNEL
208 225
209 .macro usraccoff, instr, reg, ptr, inc, off, cond, abort226 .macro usraccoff, instr, reg, ptr, inc, off, cond, abort, t=T()
2109999:2279999:
211 .if \inc == 1228 .if \inc == 1
212 \instr\cond\()bt \reg, [\ptr, #\off]229 \instr\cond\()b\()\t\().w \reg, [\ptr, #\off]
213 .elseif \inc == 4230 .elseif \inc == 4
214 \instr\cond\()t \reg, [\ptr, #\off]231 \instr\cond\()\t\().w \reg, [\ptr, #\off]
215 .else232 .else
216 .error "Unsupported inc macro argument"233 .error "Unsupported inc macro argument"
217 .endif234 .endif
@@ -246,13 +263,13 @@ · 28 unmodified lines
246 263
247#else /* !CONFIG_THUMB2_KERNEL */264#else /* !CONFIG_THUMB2_KERNEL */
248 265
249 .macro usracc, instr, reg, ptr, inc, cond, rept, abort266 .macro usracc, instr, reg, ptr, inc, cond, rept, abort, t=T()
250 .rept \rept267 .rept \rept
2519999:2689999:
252 .if \inc == 1269 .if \inc == 1
253 \instr\cond\()bt \reg, [\ptr], #\inc270 \instr\cond\()b\()\t \reg, [\ptr], #\inc
254 .elseif \inc == 4271 .elseif \inc == 4
255 \instr\cond\()t \reg, [\ptr], #\inc272 \instr\cond\()\t \reg, [\ptr], #\inc
256 .else273 .else
257 .error "Unsupported inc macro argument"274 .error "Unsupported inc macro argument"
258 .endif275 .endif
arch/arm/include/asm/bitops.h+1−1
@@ -285,7 +285,7 @@ static inline int fls(int x) · 284 unmodified lines
285 if (__builtin_constant_p(x))285 if (__builtin_constant_p(x))
286 return constant_fls(x);286 return constant_fls(x);
287 287
288 asm("clz\t%0, %1" : "=r" (ret) : "r" (x) : "cc");288 asm("clz\t%0, %1" : "=r" (ret) : "r" (x));
289 ret = 32 - ret;289 ret = 32 - ret;
290 return ret;290 return ret;
291}291}
arch/arm/include/asm/cache.h+2−0
@@ -23,4 +23,6 @@ · 22 unmodified lines
23#define ARCH_SLAB_MINALIGN 823#define ARCH_SLAB_MINALIGN 8
24#endif24#endif
25 25
26#define __read_mostly __attribute__((__section__(".data..read_mostly")))
27
26#endif28#endif
arch/arm/include/asm/clkdev.h+6−16
@@ -12,23 +12,13 @@ · 11 unmodified lines
12#ifndef __ASM_CLKDEV_H12#ifndef __ASM_CLKDEV_H
13#define __ASM_CLKDEV_H13#define __ASM_CLKDEV_H
14 14
15struct clk;15#include <linux/slab.h>
16struct device;
17 16
18struct clk_lookup {17#include <mach/clkdev.h>
19 struct list_head node;
20 const char *dev_id;
21 const char *con_id;
22 struct clk *clk;
23};
24 18
25struct clk_lookup *clkdev_alloc(struct clk *clk, const char *con_id,19static inline struct clk_lookup_alloc *__clkdev_alloc(size_t size)
26 const char *dev_fmt, ...);20{
27 21 return kzalloc(size, GFP_KERNEL);
28void clkdev_add(struct clk_lookup *cl);22}
29void clkdev_drop(struct clk_lookup *cl);
30
31void clkdev_add_table(struct clk_lookup *, size_t);
32int clk_add_alias(const char *, const char *, char *, struct device *);
33 23
34#endif24#endif
arch/arm/include/asm/dma-mapping.h+69−24
@@ -5,24 +5,29 @@ · 4 unmodified lines
5 5
6#include <linux/mm_types.h>6#include <linux/mm_types.h>
7#include <linux/scatterlist.h>7#include <linux/scatterlist.h>
8#include <linux/dma-debug.h>
8 9
9#include <asm-generic/dma-coherent.h>10#include <asm-generic/dma-coherent.h>
10#include <asm/memory.h>11#include <asm/memory.h>
11 12
13#ifdef __arch_page_to_dma
14#error Please update to __arch_pfn_to_dma
15#endif
16
12/*17/*
13 * page_to_dma/dma_to_virt/virt_to_dma are architecture private functions18 * dma_to_pfn/pfn_to_dma/dma_to_virt/virt_to_dma are architecture private
14 * used internally by the DMA-mapping API to provide DMA addresses. They19 * functions used internally by the DMA-mapping API to provide DMA
15 * must not be used by drivers.20 * addresses. They must not be used by drivers.
16 */21 */
17#ifndef __arch_page_to_dma22#ifndef __arch_pfn_to_dma
18static inline dma_addr_t page_to_dma(struct device *dev, struct page *page)23static inline dma_addr_t pfn_to_dma(struct device *dev, unsigned long pfn)
19{24{
20 return (dma_addr_t)__pfn_to_bus(page_to_pfn(page));25 return (dma_addr_t)__pfn_to_bus(pfn);
21}26}
22 27
23static inline struct page *dma_to_page(struct device *dev, dma_addr_t addr)28static inline unsigned long dma_to_pfn(struct device *dev, dma_addr_t addr)
24{29{
25 return pfn_to_page(__bus_to_pfn(addr));30 return __bus_to_pfn(addr);
26}31}
27 32
28static inline void *dma_to_virt(struct device *dev, dma_addr_t addr)33static 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
35 return (dma_addr_t)__virt_to_bus((unsigned long)(addr));40 return (dma_addr_t)__virt_to_bus((unsigned long)(addr));
36}41}
37#else42#else
38static inline dma_addr_t page_to_dma(struct device *dev, struct page *page)43static inline dma_addr_t pfn_to_dma(struct device *dev, unsigned long pfn)
39{44{
40 return __arch_page_to_dma(dev, page);45 return __arch_pfn_to_dma(dev, pfn);
41}46}
42 47
43static inline struct page *dma_to_page(struct device *dev, dma_addr_t addr)48static inline unsigned long dma_to_pfn(struct device *dev, dma_addr_t addr)
44{49{
45 return __arch_dma_to_page(dev, addr);50 return __arch_dma_to_pfn(dev, addr);
46}51}
47 52
48static inline void *dma_to_virt(struct device *dev, dma_addr_t addr)53static 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
293/*298/*
294 * The DMA API, implemented by dmabounce.c. See below for descriptions.299 * The DMA API, implemented by dmabounce.c. See below for descriptions.
295 */300 */
296extern dma_addr_t dma_map_single(struct device *, void *, size_t,301extern dma_addr_t __dma_map_single(struct device *, void *, size_t,
297 enum dma_data_direction);302 enum dma_data_direction);
298extern void dma_unmap_single(struct device *, dma_addr_t, size_t,303extern void __dma_unmap_single(struct device *, dma_addr_t, size_t,
299 enum dma_data_direction);304 enum dma_data_direction);
300extern dma_addr_t dma_map_page(struct device *, struct page *,305extern dma_addr_t __dma_map_page(struct device *, struct page *,
301 unsigned long, size_t, enum dma_data_direction);306 unsigned long, size_t, enum dma_data_direction);
302extern void dma_unmap_page(struct device *, dma_addr_t, size_t,307extern void __dma_unmap_page(struct device *, dma_addr_t, size_t,
303 enum dma_data_direction);308 enum dma_data_direction);
304 309
305/*310/*
@@ -323,6 +328,34 @@ static inline int dmabounce_sync_for_device(struct device *d, dma_addr_t addr, · 17 unmodified lines
323}328}
324 329
325 330
331static 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
338static 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
345static 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
351static 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
326/**359/**
327 * dma_map_single - map a single buffer for streaming DMA360 * dma_map_single - map a single buffer for streaming DMA
328 * @dev: valid struct device pointer, or NULL for ISA and EISA-like devices361 * @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
340static inline dma_addr_t dma_map_single(struct device *dev, void *cpu_addr,373static inline dma_addr_t dma_map_single(struct device *dev, void *cpu_addr,
341 size_t size, enum dma_data_direction dir)374 size_t size, enum dma_data_direction dir)
342{375{
376 dma_addr_t addr;
377
343 BUG_ON(!valid_dma_direction(dir));378 BUG_ON(!valid_dma_direction(dir));
344 379
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);
346 384
347 return virt_to_dma(dev, cpu_addr);385 return addr;
348}386}
349 387
350/**388/**
@@ -364,11 +402,14 @@ static inline dma_addr_t dma_map_single(struct device *dev, void *cpu_addr, · 13 unmodified lines
364static inline dma_addr_t dma_map_page(struct device *dev, struct page *page,402static inline dma_addr_t dma_map_page(struct device *dev, struct page *page,
365 unsigned long offset, size_t size, enum dma_data_direction dir)403 unsigned long offset, size_t size, enum dma_data_direction dir)
366{404{
405 dma_addr_t addr;
406
367 BUG_ON(!valid_dma_direction(dir));407 BUG_ON(!valid_dma_direction(dir));
368 408
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);
370 411
371 return page_to_dma(dev, page) + offset;412 return addr;
372}413}
373 414
374/**415/**
@@ -388,7 +429,8 @@ static inline dma_addr_t dma_map_page(struct device *dev, struct page *page, · 13 unmodified lines
388static inline void dma_unmap_single(struct device *dev, dma_addr_t handle,429static inline void dma_unmap_single(struct device *dev, dma_addr_t handle,
389 size_t size, enum dma_data_direction dir)430 size_t size, enum dma_data_direction dir)
390{431{
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);
392}434}
393 435
394/**436/**
@@ -408,10 +450,9 @@ static inline void dma_unmap_single(struct device *dev, dma_addr_t handle, · 13 unmodified lines
408static inline void dma_unmap_page(struct device *dev, dma_addr_t handle,450static inline void dma_unmap_page(struct device *dev, dma_addr_t handle,
409 size_t size, enum dma_data_direction dir)451 size_t size, enum dma_data_direction dir)
410{452{
411 __dma_page_dev_to_cpu(dma_to_page(dev, handle), handle & ~PAGE_MASK,453 debug_dma_unmap_page(dev, handle, size, dir, false);
412 size, dir);454 __dma_unmap_page(dev, handle, size, dir);
413}455}
414#endif /* CONFIG_DMABOUNCE */
415 456
416/**457/**
417 * dma_sync_single_range_for_cpu458 * 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
437{478{
438 BUG_ON(!valid_dma_direction(dir));479 BUG_ON(!valid_dma_direction(dir));
439 480
481 debug_dma_sync_single_for_cpu(dev, handle + offset, size, dir);
482
440 if (!dmabounce_sync_for_cpu(dev, handle, offset, size, dir))483 if (!dmabounce_sync_for_cpu(dev, handle, offset, size, dir))
441 return;484 return;
442 485
@@ -449,6 +492,8 @@ static inline void dma_sync_single_range_for_device(struct device *dev, · 6 unmodified lines
449{492{
450 BUG_ON(!valid_dma_direction(dir));493 BUG_ON(!valid_dma_direction(dir));
451 494
495 debug_dma_sync_single_for_device(dev, handle + offset, size, dir);
496
452 if (!dmabounce_sync_for_device(dev, handle, offset, size, dir))497 if (!dmabounce_sync_for_device(dev, handle, offset, size, dir))
453 return;498 return;
454 499
arch/arm/include/asm/domain.h+29−2
@@ -45,13 +45,17 @@ · 44 unmodified lines
45 */45 */
46#define DOMAIN_NOACCESS 046#define DOMAIN_NOACCESS 0
47#define DOMAIN_CLIENT 147#define DOMAIN_CLIENT 1
48#ifdef CONFIG_CPU_USE_DOMAINS
48#define DOMAIN_MANAGER 349#define DOMAIN_MANAGER 3
50#else
51#define DOMAIN_MANAGER 1
52#endif
49 53
50#define domain_val(dom,type) ((type) << (2*(dom)))54#define domain_val(dom,type) ((type) << (2*(dom)))
51 55
52#ifndef __ASSEMBLY__56#ifndef __ASSEMBLY__
53 57
54#ifdef CONFIG_MMU58#ifdef CONFIG_CPU_USE_DOMAINS
55#define set_domain(x) \59#define set_domain(x) \
56 do { \60 do { \
57 __asm__ __volatile__( \61 __asm__ __volatile__( \
@@ -74,5 +78,28 @@ · 16 unmodified lines
74#define modify_domain(dom,type) do { } while (0)78#define modify_domain(dom,type) do { } while (0)
75#endif79#endif
76 80
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
77#endif89#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
99extern int elf_check_arch(const struct elf32_hdr *);99extern int elf_check_arch(const struct elf32_hdr *);
100#define elf_check_arch elf_check_arch100#define elf_check_arch elf_check_arch
101 101
102#define vmcore_elf64_check_arch(x) (0)
103
102extern int arm_elf_read_implies_exec(const struct elf32_hdr *, int);104extern int arm_elf_read_implies_exec(const struct elf32_hdr *, int);
103#define elf_read_implies_exec(ex,stk) arm_elf_read_implies_exec(&(ex), stk)105#define elf_read_implies_exec(ex,stk) arm_elf_read_implies_exec(&(ex), stk)
104 106
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
61: 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
349997:
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
13#include <linux/preempt.h>13#include <linux/preempt.h>
14#include <linux/uaccess.h>14#include <linux/uaccess.h>
15#include <asm/errno.h>15#include <asm/errno.h>
16#include <asm/domain.h>
16 17
17#define __futex_atomic_op(insn, ret, oldval, uaddr, oparg) \18#define __futex_atomic_op(insn, ret, oldval, uaddr, oparg) \
18 __asm__ __volatile__( \19 __asm__ __volatile__( \
19 "1: ldrt %1, [%2]\n" \20 "1: " T(ldr) " %1, [%2]\n" \
20 " " insn "\n" \21 " " insn "\n" \
21 "2: strt %0, [%2]\n" \22 "2: " T(str) " %0, [%2]\n" \
22 " mov %0, #0\n" \23 " mov %0, #0\n" \
23 "3:\n" \24 "3:\n" \
24 " .pushsection __ex_table,\"a\"\n" \25 " .pushsection __ex_table,\"a\"\n" \
@@ -97,10 +98,10 @@ futex_atomic_cmpxchg_inatomic(int __user *uaddr, int oldval, int newval) · 72 unmodified lines
97 pagefault_disable(); /* implies preempt_disable() */98 pagefault_disable(); /* implies preempt_disable() */
98 99
99 __asm__ __volatile__("@futex_atomic_cmpxchg_inatomic\n"100 __asm__ __volatile__("@futex_atomic_cmpxchg_inatomic\n"
100 "1: ldrt %0, [%3]\n"101 "1: " T(ldr) " %0, [%3]\n"
101 " teq %0, %1\n"102 " teq %0, %1\n"
102 " it eq @ explicit IT needed for the 2b label\n"103 " it eq @ explicit IT needed for the 2b label\n"
103 "2: streqt %2, [%3]\n"104 "2: " T(streq) " %2, [%3]\n"
104 "3:\n"105 "3:\n"
105 " .pushsection __ex_table,\"a\"\n"106 " .pushsection __ex_table,\"a\"\n"
106 " .align 3\n"107 " .align 3\n"
arch/arm/include/asm/hardirq.h+18−0
@@ -5,13 +5,31 @@ · 4 unmodified lines
5#include <linux/threads.h>5#include <linux/threads.h>
6#include <asm/irq.h>6#include <asm/irq.h>
7 7
8#define NR_IPI 5
9
8typedef struct {10typedef struct {
9 unsigned int __softirq_pending;11 unsigned int __softirq_pending;
12#ifdef CONFIG_LOCAL_TIMERS
10 unsigned int local_timer_irqs;13 unsigned int local_timer_irqs;
14#endif
15#ifdef CONFIG_SMP
16 unsigned int ipi_irqs[NR_IPI];
17#endif
11} ____cacheline_aligned irq_cpustat_t;18} ____cacheline_aligned irq_cpustat_t;
12 19
13#include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */20#include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */
14 21
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
26u64 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
15#if NR_IRQS > 51233#if NR_IRQS > 512
16#define HARDIRQ_BITS 1034#define HARDIRQ_BITS 10
17#elif NR_IRQS > 25635#elif NR_IRQS > 256
arch/arm/include/asm/hardware/cache-l2x0.h+12−1
@@ -36,6 +36,7 @@ · 35 unmodified lines
36#define L2X0_RAW_INTR_STAT 0x21C36#define L2X0_RAW_INTR_STAT 0x21C
37#define L2X0_INTR_CLEAR 0x22037#define L2X0_INTR_CLEAR 0x220
38#define L2X0_CACHE_SYNC 0x73038#define L2X0_CACHE_SYNC 0x730
39#define L2X0_DUMMY_REG 0x740
39#define L2X0_INV_LINE_PA 0x77040#define L2X0_INV_LINE_PA 0x770
40#define L2X0_INV_WAY 0x77C41#define L2X0_INV_WAY 0x77C
41#define L2X0_CLEAN_LINE_PA 0x7B042#define L2X0_CLEAN_LINE_PA 0x7B0
@@ -59,7 +60,17 @@ · 17 unmodified lines
59#define L2X0_CACHE_ID_PART_MASK (0xf << 6)60#define L2X0_CACHE_ID_PART_MASK (0xf << 6)
60#define L2X0_CACHE_ID_PART_L210 (1 << 6)61#define L2X0_CACHE_ID_PART_L210 (1 << 6)
61#define L2X0_CACHE_ID_PART_L310 (3 << 6)62#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
63 74
64#ifndef __ASSEMBLY__75#ifndef __ASSEMBLY__
65extern void __init l2x0_init(void __iomem *base, __u32 aux_val, __u32 aux_mask);76extern 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
33#define GIC_DIST_SOFTINT 0xf0033#define GIC_DIST_SOFTINT 0xf00
34 34
35#ifndef __ASSEMBLY__35#ifndef __ASSEMBLY__
36void gic_dist_init(unsigned int gic_nr, void __iomem *base, unsigned int irq_start);36extern void __iomem *gic_cpu_base_addr;
37void gic_cpu_init(unsigned int gic_nr, void __iomem *base);37
38void gic_init(unsigned int, unsigned int, void __iomem *, void __iomem *);
39void gic_secondary_init(unsigned int);
38void gic_cascade_irq(unsigned int gic_nr, unsigned int irq);40void gic_cascade_irq(unsigned int gic_nr, unsigned int irq);
39void gic_raise_softirq(const struct cpumask *mask, unsigned int irq);41void gic_raise_softirq(const struct cpumask *mask, unsigned int irq);
42void gic_enable_ppi(unsigned int);
40#endif43#endif
41 44
42#endif45#endif
arch/arm/include/asm/hardware/sp810.h+9−0
@@ -50,8 +50,17 @@ · 49 unmodified lines
50#define SCPCELLID2 0xFF850#define SCPCELLID2 0xFF8
51#define SCPCELLID3 0xFFC51#define SCPCELLID3 0xFFC
52 52
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
53static inline void sysctl_soft_reset(void __iomem *base)59static inline void sysctl_soft_reset(void __iomem *base)
54{60{
61 /* switch to slow mode */
62 writel(0x2, base + SCCTRL);
63
55 /* writing any value to SCSYSSTAT reg will reset system */64 /* writing any value to SCSYSSTAT reg will reset system */
56 writel(0, base + SCSYSSTAT);65 writel(0, base + SCSYSSTAT);
57}66}
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
20struct arch_hw_breakpoint {20struct arch_hw_breakpoint {
21 u32 address;21 u32 address;
22 u32 trigger;22 u32 trigger;
23 struct perf_event *suspended_wp;23 struct arch_hw_breakpoint_ctrl step_ctrl;
24 struct arch_hw_breakpoint_ctrl ctrl;24 struct arch_hw_breakpoint_ctrl ctrl;
25};25};
26 26
27static inline u32 encode_ctrl_reg(struct arch_hw_breakpoint_ctrl ctrl)27static 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
95 return (void __iomem *)addr;95 return (void __iomem *)addr;
96}96}
97 97
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
98/*107/*
99 * Now, pick up the machine-defined IO definitions108 * Now, pick up the machine-defined IO definitions
100 */109 */
@@ -125,17 +134,17 @@ static inline void __iomem *__typesafe_io(unsigned long addr) · 24 unmodified lines
125 * The {in,out}[bwl] macros are for emulating x86-style PCI/ISA IO space.134 * The {in,out}[bwl] macros are for emulating x86-style PCI/ISA IO space.
126 */135 */
127#ifdef __io136#ifdef __io
128#define outb(v,p) __raw_writeb(v,__io(p))137#define outb(v,p) ({ __iowmb(); __raw_writeb(v,__io(p)); })
129#define outw(v,p) __raw_writew((__force __u16) \138#define outw(v,p) ({ __iowmb(); __raw_writew((__force __u16) \
130 cpu_to_le16(v),__io(p))139 cpu_to_le16(v),__io(p)); })
131#define outl(v,p) __raw_writel((__force __u32) \140#define outl(v,p) ({ __iowmb(); __raw_writel((__force __u32) \
132 cpu_to_le32(v),__io(p))141 cpu_to_le32(v),__io(p)); })
133 142
134#define inb(p) ({ __u8 __v = __raw_readb(__io(p)); __v; })143#define inb(p) ({ __u8 __v = __raw_readb(__io(p)); __iormb(); __v; })
135#define inw(p) ({ __u16 __v = le16_to_cpu((__force __le16) \144#define inw(p) ({ __u16 __v = le16_to_cpu((__force __le16) \
136 __raw_readw(__io(p))); __v; })145 __raw_readw(__io(p))); __iormb(); __v; })
137#define inl(p) ({ __u32 __v = le32_to_cpu((__force __le32) \146#define inl(p) ({ __u32 __v = le32_to_cpu((__force __le32) \
138 __raw_readl(__io(p))); __v; })147 __raw_readl(__io(p))); __iormb(); __v; })
139 148
140#define outsb(p,d,l) __raw_writesb(__io(p),d,l)149#define outsb(p,d,l) __raw_writesb(__io(p),d,l)
141#define outsw(p,d,l) __raw_writesw(__io(p),d,l)150#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
192#define writel_relaxed(v,c) ((void)__raw_writel((__force u32) \201#define writel_relaxed(v,c) ((void)__raw_writel((__force u32) \
193 cpu_to_le32(v),__mem_pci(c)))202 cpu_to_le32(v),__mem_pci(c)))
194 203
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
203#define readb(c) ({ u8 __v = readb_relaxed(c); __iormb(); __v; })204#define readb(c) ({ u8 __v = readb_relaxed(c); __iormb(); __v; })
204#define readw(c) ({ u16 __v = readw_relaxed(c); __iormb(); __v; })205#define readw(c) ({ u16 __v = readw_relaxed(c); __iormb(); __v; })
205#define readl(c) ({ u32 __v = readl_relaxed(c); __iormb(); __v; })206#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
241 *242 *
242 */243 */
243#ifndef __arch_ioremap244#ifndef __arch_ioremap
244#define ioremap(cookie,size) __arm_ioremap(cookie, size, MT_DEVICE)245#define __arch_ioremap __arm_ioremap
245#define ioremap_nocache(cookie,size) __arm_ioremap(cookie, size, MT_DEVICE)246#define __arch_iounmap __iounmap
246#define ioremap_cached(cookie,size) __arm_ioremap(cookie, size, MT_DEVICE_CACHED)247#endif
247#define ioremap_wc(cookie,size) __arm_ioremap(cookie, size, MT_DEVICE_WC)248
248#define iounmap(cookie) __iounmap(cookie)
249#else
250#define ioremap(cookie,size) __arch_ioremap((cookie), (size), MT_DEVICE)249#define ioremap(cookie,size) __arch_ioremap((cookie), (size), MT_DEVICE)
251#define ioremap_nocache(cookie,size) __arch_ioremap((cookie), (size), MT_DEVICE)250#define ioremap_nocache(cookie,size) __arch_ioremap((cookie), (size), MT_DEVICE)
252#define ioremap_cached(cookie,size) __arch_ioremap((cookie), (size), MT_DEVICE_CACHED)251#define ioremap_cached(cookie,size) __arch_ioremap((cookie), (size), MT_DEVICE_CACHED)
253#define ioremap_wc(cookie,size) __arch_ioremap((cookie), (size), MT_DEVICE_WC)252#define ioremap_wc(cookie,size) __arch_ioremap((cookie), (size), MT_DEVICE_WC)
254#define iounmap(cookie) __arch_iounmap(cookie)253#define iounmap __arch_iounmap
255#endif
256 254
257/*255/*
258 * io{read,write}{8,16,32} macros256 * 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
33 if (oldregs) {33 if (oldregs) {
34 memcpy(newregs, oldregs, sizeof(*newregs));34 memcpy(newregs, oldregs, sizeof(*newregs));
35 } else {35 } else {
36 __asm__ __volatile__ ("stmia %0, {r0 - r15}"36 __asm__ __volatile__ (
37 : : "r" (&newregs->ARM_r0));37 "stmia %[regs_base], {r0-r12}\n\t"
38 __asm__ __volatile__ ("mrs %0, cpsr"38 "mov %[_ARM_sp], sp\n\t"
39 : "=r" (newregs->ARM_cpsr));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 );
40 }50 }
41}51}
42 52
arch/arm/include/asm/localtimer.h+0−12
@@ -30,7 +30,6 @@ asmlinkage void do_local_timer(struct pt_regs *); · 29 unmodified lines
30#include "smp_twd.h"30#include "smp_twd.h"
31 31
32#define local_timer_ack() twd_timer_ack()32#define local_timer_ack() twd_timer_ack()
33#define local_timer_stop() twd_timer_stop()
34 33
35#else34#else
36 35
@@ -40,11 +39,6 @@ asmlinkage void do_local_timer(struct pt_regs *); · 3 unmodified lines
40 */39 */
41int local_timer_ack(void);40int local_timer_ack(void);
42 41
43/*
44 * Stop a local timer interrupt.
45 */
46void local_timer_stop(void);
47
48#endif42#endif
49 43
50/*44/*
@@ -52,12 +46,6 @@ void local_timer_stop(void); · 1 unmodified line
52 */46 */
53void local_timer_setup(struct clock_event_device *);47void local_timer_setup(struct clock_event_device *);
54 48
55#else
56
57static inline void local_timer_stop(void)
58{
59}
60
61#endif49#endif
62 50
63#endif51#endif
arch/arm/include/asm/mach/arch.h+9−0
@@ -37,11 +37,20 @@ struct machine_desc { · 36 unmodified lines
37 struct meminfo *);37 struct meminfo *);
38 void (*reserve)(void);/* reserve mem blocks */38 void (*reserve)(void);/* reserve mem blocks */
39 void (*map_io)(void);/* IO mapping function */39 void (*map_io)(void);/* IO mapping function */
40 void (*init_early)(void);
40 void (*init_irq)(void);41 void (*init_irq)(void);
41 struct sys_timer *timer; /* system tick timer */42 struct sys_timer *timer; /* system tick timer */
42 void (*init_machine)(void);43 void (*init_machine)(void);
44#ifdef CONFIG_MULTI_IRQ_HANDLER
45 void (*handle_irq)(struct pt_regs *);
46#endif
43};47};
44 48
49/*
50 * Current machine - only accessible during boot.
51 */
52extern struct machine_desc *machine_desc;
53
45/*54/*
46 * Set of macros to define architecture features. This is built into55 * Set of macros to define architecture features. This is built into
47 * a table by the linker.56 * a table by the linker.
arch/arm/include/asm/mach/irq.h+5−3
@@ -17,10 +17,12 @@ struct seq_file; · 16 unmodified lines
17/*17/*
18 * This is internal. Do not use it.18 * This is internal. Do not use it.
19 */19 */
20extern unsigned int arch_nr_irqs;
21extern void (*init_arch_irq)(void);
22extern void init_FIQ(void);20extern void init_FIQ(void);
23extern int show_fiq_list(struct seq_file *, void *);21extern int show_fiq_list(struct seq_file *, int);
22
23#ifdef CONFIG_MULTI_IRQ_HANDLER
24extern void (*handle_arch_irq)(struct pt_regs *);
25#endif
24 26
25/*27/*
26 * This is for easy migration, but should be changed in the source28 * 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
43#endif43#endif
44};44};
45 45
46extern struct sys_timer *system_timer;
47extern void timer_tick(void);46extern void timer_tick(void);
48 47
49#endif48#endif
arch/arm/include/asm/memory.h+1−1
@@ -188,7 +188,7 @@ · 187 unmodified lines
188 * translation for translating DMA addresses. Use the driver188 * translation for translating DMA addresses. Use the driver
189 * DMA support - see dma-mapping.h.189 * DMA support - see dma-mapping.h.
190 */190 */
191static inline unsigned long virt_to_phys(void *x)191static inline unsigned long virt_to_phys(const volatile void *x)
192{192{
193 return __virt_to_phys((unsigned long)(x));193 return __virt_to_phys((unsigned long)(x));
194}194}
arch/arm/include/asm/module.h+5−10
@@ -8,11 +8,6 @@ · 7 unmodified lines
8struct unwind_table;8struct unwind_table;
9 9
10#ifdef CONFIG_ARM_UNWIND10#ifdef CONFIG_ARM_UNWIND
11struct arm_unwind_mapping {
12 Elf_Shdr *unw_sec;
13 Elf_Shdr *sec_text;
14 struct unwind_table *unwind;
15};
16enum {11enum {
17 ARM_SEC_INIT,12 ARM_SEC_INIT,
18 ARM_SEC_DEVINIT,13 ARM_SEC_DEVINIT,
@@ -21,13 +16,13 @@ enum { · 2 unmodified lines
21 ARM_SEC_DEVEXIT,16 ARM_SEC_DEVEXIT,
22 ARM_SEC_MAX,17 ARM_SEC_MAX,
23};18};
19#endif
20
24struct mod_arch_specific {21struct mod_arch_specific {
25 struct arm_unwind_mapping map[ARM_SEC_MAX];22#ifdef CONFIG_ARM_UNWIND
26};23 struct unwind_table *unwind[ARM_SEC_MAX];
27#else
28struct mod_arch_specific {
29};
30#endif24#endif
25};
31 26
32/*27/*
33 * Include the ARM architecture version.28 * 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
151#define clear_page(page) memset((void *)(page), 0, PAGE_SIZE)151#define clear_page(page) memset((void *)(page), 0, PAGE_SIZE)
152extern void copy_page(void *to, const void *from);152extern void copy_page(void *to, const void *from);
153 153
154typedef unsigned long pteval_t;
155
154#undef STRICT_MM_TYPECHECKS156#undef STRICT_MM_TYPECHECKS
155 157
156#ifdef STRICT_MM_TYPECHECKS158#ifdef STRICT_MM_TYPECHECKS
157/*159/*
158 * These are used to make use of C type-checking..160 * These are used to make use of C type-checking..
159 */161 */
160typedef struct { unsigned long pte; } pte_t;162typedef struct { pteval_t pte; } pte_t;
161typedef struct { unsigned long pmd; } pmd_t;163typedef struct { unsigned long pmd; } pmd_t;
162typedef struct { unsigned long pgd[2]; } pgd_t;164typedef struct { unsigned long pgd[2]; } pgd_t;
163typedef struct { unsigned long pgprot; } pgprot_t;165typedef struct { unsigned long pgprot; } pgprot_t;
@@ -175,7 +177,7 @@ typedef struct { unsigned long pgprot; } pgprot_t; · 11 unmodified lines
175/*177/*
176 * .. while these make it easier on the compiler178 * .. while these make it easier on the compiler
177 */179 */
178typedef unsigned long pte_t;180typedef pteval_t pte_t;
179typedef unsigned long pmd_t;181typedef unsigned long pmd_t;
180typedef unsigned long pgd_t[2];182typedef unsigned long pgd_t[2];
181typedef unsigned long pgprot_t;183typedef unsigned long pgprot_t;
arch/arm/include/asm/pgalloc.h+22−28
@@ -30,14 +30,16 @@ · 29 unmodified lines
30#define pmd_free(mm, pmd) do { } while (0)30#define pmd_free(mm, pmd) do { } while (0)
31#define pgd_populate(mm,pmd,pte) BUG()31#define pgd_populate(mm,pmd,pte) BUG()
32 32
33extern pgd_t *get_pgd_slow(struct mm_struct *mm);33extern pgd_t *pgd_alloc(struct mm_struct *mm);
34extern void free_pgd_slow(struct mm_struct *mm, pgd_t *pgd);34extern void pgd_free(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)
38 35
39#define PGALLOC_GFP (GFP_KERNEL | __GFP_NOTRACK | __GFP_REPEAT | __GFP_ZERO)36#define PGALLOC_GFP (GFP_KERNEL | __GFP_NOTRACK | __GFP_REPEAT | __GFP_ZERO)
40 37
38static inline void clean_pte_table(pte_t *pte)
39{
40 clean_dcache_area(pte + PTE_HWTABLE_PTRS, PTE_HWTABLE_SIZE);
41}
42
41/*43/*
42 * Allocate one PTE table.44 * Allocate one PTE table.
43 *45 *
@@ -45,14 +47,14 @@ extern void free_pgd_slow(struct mm_struct *mm, pgd_t *pgd); · 1 unmodified line
45 * into one table thus:47 * into one table thus:
46 *48 *
47 * +------------+49 * +------------+
48 * | h/w pt 0 |
49 * +------------+
50 * | h/w pt 1 |
51 * +------------+
52 * | Linux pt 0 |50 * | Linux pt 0 |
53 * +------------+51 * +------------+
54 * | Linux pt 1 |52 * | Linux pt 1 |
55 * +------------+53 * +------------+
54 * | h/w pt 0 |
55 * +------------+
56 * | h/w pt 1 |
57 * +------------+
56 */58 */
57static inline pte_t *59static inline pte_t *
58pte_alloc_one_kernel(struct mm_struct *mm, unsigned long addr)60pte_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
60 pte_t *pte;62 pte_t *pte;
61 63
62 pte = (pte_t *)__get_free_page(PGALLOC_GFP);64 pte = (pte_t *)__get_free_page(PGALLOC_GFP);
63 if (pte) {65 if (pte)
64 clean_dcache_area(pte, sizeof(pte_t) * PTRS_PER_PTE);66 clean_pte_table(pte);
65 pte += PTRS_PER_PTE;
66 }
67 67
68 return pte;68 return pte;
69}69}
@@ -79,10 +79,8 @@ pte_alloc_one(struct mm_struct *mm, unsigned long addr) · 9 unmodified lines
79 pte = alloc_pages(PGALLOC_GFP, 0);79 pte = alloc_pages(PGALLOC_GFP, 0);
80#endif80#endif
81 if (pte) {81 if (pte) {
82 if (!PageHighMem(pte)) {82 if (!PageHighMem(pte))
83 void *page = page_address(pte);83 clean_pte_table(page_address(pte));
84 clean_dcache_area(page, sizeof(pte_t) * PTRS_PER_PTE);
85 }
86 pgtable_page_ctor(pte);84 pgtable_page_ctor(pte);
87 }85 }
88 86
@@ -94,10 +92,8 @@ pte_alloc_one(struct mm_struct *mm, unsigned long addr) · 5 unmodified lines
94 */92 */
95static inline void pte_free_kernel(struct mm_struct *mm, pte_t *pte)93static inline void pte_free_kernel(struct mm_struct *mm, pte_t *pte)
96{94{
97 if (pte) {95 if (pte)
98 pte -= PTRS_PER_PTE;
99 free_page((unsigned long)pte);96 free_page((unsigned long)pte);
100 }
101}97}
102 98
103static inline void pte_free(struct mm_struct *mm, pgtable_t pte)99static 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
106 __free_page(pte);102 __free_page(pte);
107}103}
108 104
109static inline void __pmd_populate(pmd_t *pmdp, unsigned long pmdval)105static inline void __pmd_populate(pmd_t *pmdp, phys_addr_t pte,
106 unsigned long prot)
110{107{
108 unsigned long pmdval = (pte + PTE_HWTABLE_OFF) | prot;
111 pmdp[0] = __pmd(pmdval);109 pmdp[0] = __pmd(pmdval);
112 pmdp[1] = __pmd(pmdval + 256 * sizeof(pte_t));110 pmdp[1] = __pmd(pmdval + 256 * sizeof(pte_t));
113 flush_pmd_entry(pmdp);111 flush_pmd_entry(pmdp);
@@ -122,20 +120,16 @@ static inline void __pmd_populate(pmd_t *pmdp, unsigned long pmdval) · 8 unmodified lines
122static inline void120static inline void
123pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmdp, pte_t *ptep)121pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmdp, pte_t *ptep)
124{122{
125 unsigned long pte_ptr = (unsigned long)ptep;
126
127 /*123 /*
128 * The pmd must be loaded with the physical124 * The pmd must be loaded with the physical address of the PTE table
129 * address of the PTE table
130 */125 */
131 pte_ptr -= PTRS_PER_PTE * sizeof(void *);126 __pmd_populate(pmdp, __pa(ptep), _PAGE_KERNEL_TABLE);
132 __pmd_populate(pmdp, __pa(pte_ptr) | _PAGE_KERNEL_TABLE);
133}127}
134 128
135static inline void129static inline void
136pmd_populate(struct mm_struct *mm, pmd_t *pmdp, pgtable_t ptep)130pmd_populate(struct mm_struct *mm, pmd_t *pmdp, pgtable_t ptep)
137{131{
138 __pmd_populate(pmdp, page_to_pfn(ptep) << PAGE_SHIFT | _PAGE_USER_TABLE);132 __pmd_populate(pmdp, page_to_phys(ptep), _PAGE_USER_TABLE);
139}133}
140#define pmd_pgtable(pmd) pmd_page(pmd)134#define pmd_pgtable(pmd) pmd_page(pmd)
141 135
arch/arm/include/asm/pgtable.h+155−160
@@ -10,6 +10,7 @@ · 9 unmodified lines
10#ifndef _ASMARM_PGTABLE_H10#ifndef _ASMARM_PGTABLE_H
11#define _ASMARM_PGTABLE_H11#define _ASMARM_PGTABLE_H
12 12
13#include <linux/const.h>
13#include <asm-generic/4level-fixup.h>14#include <asm-generic/4level-fixup.h>
14#include <asm/proc-fns.h>15#include <asm/proc-fns.h>
15 16
@@ -54,7 +55,7 @@ · 38 unmodified lines
54 * Therefore, we tweak the implementation slightly - we tell Linux that we55 * Therefore, we tweak the implementation slightly - we tell Linux that we
55 * have 2048 entries in the first level, each of which is 8 bytes (iow, two56 * have 2048 entries in the first level, each of which is 8 bytes (iow, two
56 * hardware pointers to the second level.) The second level contains two57 * hardware pointers to the second level.) The second level contains two
57 * hardware PTE tables arranged contiguously, followed by Linux versions58 * hardware PTE tables arranged contiguously, preceded by Linux versions
58 * which contain the state information Linux needs. We, therefore, end up59 * which contain the state information Linux needs. We, therefore, end up
59 * with 512 entries in the "PTE" level.60 * with 512 entries in the "PTE" level.
60 *61 *
@@ -62,15 +63,15 @@ · 1 unmodified line
62 *63 *
63 * pgd pte64 * pgd pte
64 * | |65 * | |
65 * +--------+ +066 * +--------+
66 * | |-----> +------------+ +067 * | | +------------+ +0
68 * +- - - - + | Linux pt 0 |
69 * | | +------------+ +1024
70 * +--------+ +0 | Linux pt 1 |
71 * | |-----> +------------+ +2048
67 * +- - - - + +4 | h/w pt 0 |72 * +- - - - + +4 | h/w pt 0 |
68 * | |-----> +------------+ +102473 * | |-----> +------------+ +3072
69 * +--------+ +8 | h/w pt 1 |74 * +--------+ +8 | h/w pt 1 |
70 * | | +------------+ +2048
71 * +- - - - + | Linux pt 0 |
72 * | | +------------+ +3072
73 * +--------+ | Linux pt 1 |
74 * | | +------------+ +409675 * | | +------------+ +4096
75 *76 *
76 * See L_PTE_xxx below for definitions of bits in the "Linux pt", and77 * See L_PTE_xxx below for definitions of bits in the "Linux pt", and
@@ -102,6 +103,10 @@ · 25 unmodified lines
102#define PTRS_PER_PMD 1103#define PTRS_PER_PMD 1
103#define PTRS_PER_PGD 2048104#define PTRS_PER_PGD 2048
104 105
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
105/*110/*
106 * PMD_SHIFT determines the size of the area a second-level page table can map111 * PMD_SHIFT determines the size of the area a second-level page table can map
107 * PGDIR_SHIFT determines what a third-level page table entry can map112 * PGDIR_SHIFT determines what a third-level page table entry can map
@@ -112,13 +117,13 @@ · 4 unmodified lines
112#define LIBRARY_TEXT_START 0x0c000000117#define LIBRARY_TEXT_START 0x0c000000
113 118
114#ifndef __ASSEMBLY__119#ifndef __ASSEMBLY__
115extern void __pte_error(const char *file, int line, unsigned long val);120extern void __pte_error(const char *file, int line, pte_t);
116extern void __pmd_error(const char *file, int line, unsigned long val);121extern void __pmd_error(const char *file, int line, pmd_t);
117extern void __pgd_error(const char *file, int line, unsigned long val);122extern void __pgd_error(const char *file, int line, pgd_t);
118 123
119#define pte_ERROR(pte) __pte_error(__FILE__, __LINE__, pte_val(pte))124#define pte_ERROR(pte) __pte_error(__FILE__, __LINE__, pte)
120#define pmd_ERROR(pmd) __pmd_error(__FILE__, __LINE__, pmd_val(pmd))125#define pmd_ERROR(pmd) __pmd_error(__FILE__, __LINE__, pmd)
121#define pgd_ERROR(pgd) __pgd_error(__FILE__, __LINE__, pgd_val(pgd))126#define pgd_ERROR(pgd) __pgd_error(__FILE__, __LINE__, pgd)
122#endif /* !__ASSEMBLY__ */127#endif /* !__ASSEMBLY__ */
123 128
124#define PMD_SIZE (1UL << PMD_SHIFT)129#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
133 */138 */
134#define FIRST_USER_ADDRESS PAGE_SIZE139#define FIRST_USER_ADDRESS PAGE_SIZE
135 140
136#define FIRST_USER_PGD_NR 1141#define USER_PTRS_PER_PGD (TASK_SIZE / PGDIR_SIZE)
137#define USER_PTRS_PER_PGD ((TASK_SIZE/PGDIR_SIZE) - FIRST_USER_PGD_NR)
138 142
139/*143/*
140 * section address mask and size definitions.144 * 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
161 * The PTE table pointer refers to the hardware entries; the "Linux"165 * The PTE table pointer refers to the hardware entries; the "Linux"
162 * entries are stored 1024 bytes below.166 * entries are stored 1024 bytes below.
163 */167 */
164#define L_PTE_PRESENT (1 << 0)168#define L_PTE_PRESENT (_AT(pteval_t, 1) << 0)
165#define L_PTE_YOUNG (1 << 1)169#define L_PTE_YOUNG (_AT(pteval_t, 1) << 1)
166#define L_PTE_FILE (1 << 2) /* only when !PRESENT */170#define L_PTE_FILE (_AT(pteval_t, 1) << 2) /* only when !PRESENT */
167#define L_PTE_DIRTY (1 << 6)171#define L_PTE_DIRTY (_AT(pteval_t, 1) << 6)
168#define L_PTE_WRITE (1 << 7)172#define L_PTE_RDONLY (_AT(pteval_t, 1) << 7)
169#define L_PTE_USER (1 << 8)173#define L_PTE_USER (_AT(pteval_t, 1) << 8)
170#define L_PTE_EXEC (1 << 9)174#define L_PTE_XN (_AT(pteval_t, 1) << 9)
171#define L_PTE_SHARED (1 << 10) /* shared(v6), coherent(xsc3) */175#define L_PTE_SHARED (_AT(pteval_t, 1) << 10) /* shared(v6), coherent(xsc3) */
172 176
173/*177/*
174 * These are the memory types, defined to be compatible with178 * These are the memory types, defined to be compatible with
175 * pre-ARMv6 CPUs cacheable and bufferable bits: XXCB179 * pre-ARMv6 CPUs cacheable and bufferable bits: XXCB
176 */180 */
177#define L_PTE_MT_UNCACHED (0x00 << 2) /* 0000 */181#define L_PTE_MT_UNCACHED (_AT(pteval_t, 0x00) << 2) /* 0000 */
178#define L_PTE_MT_BUFFERABLE (0x01 << 2) /* 0001 */182#define L_PTE_MT_BUFFERABLE (_AT(pteval_t, 0x01) << 2) /* 0001 */
179#define L_PTE_MT_WRITETHROUGH (0x02 << 2) /* 0010 */183#define L_PTE_MT_WRITETHROUGH (_AT(pteval_t, 0x02) << 2) /* 0010 */
180#define L_PTE_MT_WRITEBACK (0x03 << 2) /* 0011 */184#define L_PTE_MT_WRITEBACK (_AT(pteval_t, 0x03) << 2) /* 0011 */
181#define L_PTE_MT_MINICACHE (0x06 << 2) /* 0110 (sa1100, xscale) */185#define L_PTE_MT_MINICACHE (_AT(pteval_t, 0x06) << 2) /* 0110 (sa1100, xscale) */
182#define L_PTE_MT_WRITEALLOC (0x07 << 2) /* 0111 */186#define L_PTE_MT_WRITEALLOC (_AT(pteval_t, 0x07) << 2) /* 0111 */
183#define L_PTE_MT_DEV_SHARED (0x04 << 2) /* 0100 */187#define L_PTE_MT_DEV_SHARED (_AT(pteval_t, 0x04) << 2) /* 0100 */
184#define L_PTE_MT_DEV_NONSHARED (0x0c << 2) /* 1100 */188#define L_PTE_MT_DEV_NONSHARED (_AT(pteval_t, 0x0c) << 2) /* 1100 */
185#define L_PTE_MT_DEV_WC (0x09 << 2) /* 1001 */189#define L_PTE_MT_DEV_WC (_AT(pteval_t, 0x09) << 2) /* 1001 */
186#define L_PTE_MT_DEV_CACHED (0x0b << 2) /* 1011 */190#define L_PTE_MT_DEV_CACHED (_AT(pteval_t, 0x0b) << 2) /* 1011 */
187#define L_PTE_MT_MASK (0x0f << 2)191#define L_PTE_MT_MASK (_AT(pteval_t, 0x0f) << 2)
188 192
189#ifndef __ASSEMBLY__193#ifndef __ASSEMBLY__
190 194
@@ -201,23 +205,44 @@ extern pgprot_t pgprot_kernel; · 10 unmodified lines
201 205
202#define _MOD_PROT(p, b) __pgprot(pgprot_val(p) | (b))206#define _MOD_PROT(p, b) __pgprot(pgprot_val(p) | (b))
203 207
204#define PAGE_NONE pgprot_user208#define PAGE_NONE _MOD_PROT(pgprot_user, L_PTE_XN | L_PTE_RDONLY)
205#define PAGE_SHARED _MOD_PROT(pgprot_user, L_PTE_USER | L_PTE_WRITE)209#define PAGE_SHARED _MOD_PROT(pgprot_user, L_PTE_USER | L_PTE_XN)
206#define PAGE_SHARED_EXEC _MOD_PROT(pgprot_user, L_PTE_USER | L_PTE_WRITE | L_PTE_EXEC)210#define PAGE_SHARED_EXEC _MOD_PROT(pgprot_user, L_PTE_USER)
207#define PAGE_COPY _MOD_PROT(pgprot_user, L_PTE_USER)211#define PAGE_COPY _MOD_PROT(pgprot_user, L_PTE_USER | L_PTE_RDONLY | L_PTE_XN)
208#define PAGE_COPY_EXEC _MOD_PROT(pgprot_user, L_PTE_USER | L_PTE_EXEC)212#define PAGE_COPY_EXEC _MOD_PROT(pgprot_user, L_PTE_USER | L_PTE_RDONLY)
209#define PAGE_READONLY _MOD_PROT(pgprot_user, L_PTE_USER)213#define PAGE_READONLY _MOD_PROT(pgprot_user, L_PTE_USER | L_PTE_RDONLY | L_PTE_XN)
210#define PAGE_READONLY_EXEC _MOD_PROT(pgprot_user, L_PTE_USER | L_PTE_EXEC)214#define PAGE_READONLY_EXEC _MOD_PROT(pgprot_user, L_PTE_USER | L_PTE_RDONLY)
211#define PAGE_KERNEL pgprot_kernel215#define PAGE_KERNEL _MOD_PROT(pgprot_kernel, L_PTE_XN)
212#define PAGE_KERNEL_EXEC _MOD_PROT(pgprot_kernel, L_PTE_EXEC)216#define PAGE_KERNEL_EXEC pgprot_kernel
213 217
214#define __PAGE_NONE __pgprot(_L_PTE_DEFAULT)218#define __PAGE_NONE __pgprot(_L_PTE_DEFAULT | L_PTE_RDONLY | L_PTE_XN)
215#define __PAGE_SHARED __pgprot(_L_PTE_DEFAULT | L_PTE_USER | L_PTE_WRITE)219#define __PAGE_SHARED __pgprot(_L_PTE_DEFAULT | L_PTE_USER | L_PTE_XN)
216#define __PAGE_SHARED_EXEC __pgprot(_L_PTE_DEFAULT | L_PTE_USER | L_PTE_WRITE | L_PTE_EXEC)220#define __PAGE_SHARED_EXEC __pgprot(_L_PTE_DEFAULT | L_PTE_USER)
217#define __PAGE_COPY __pgprot(_L_PTE_DEFAULT | L_PTE_USER)221#define __PAGE_COPY __pgprot(_L_PTE_DEFAULT | L_PTE_USER | L_PTE_RDONLY | L_PTE_XN)
218#define __PAGE_COPY_EXEC __pgprot(_L_PTE_DEFAULT | L_PTE_USER | L_PTE_EXEC)222#define __PAGE_COPY_EXEC __pgprot(_L_PTE_DEFAULT | L_PTE_USER | L_PTE_RDONLY)
219#define __PAGE_READONLY __pgprot(_L_PTE_DEFAULT | L_PTE_USER)223#define __PAGE_READONLY __pgprot(_L_PTE_DEFAULT | L_PTE_USER | L_PTE_RDONLY | L_PTE_XN)
220#define __PAGE_READONLY_EXEC __pgprot(_L_PTE_DEFAULT | L_PTE_USER | L_PTE_EXEC)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
239struct file;
240extern 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
221 246
222#endif /* __ASSEMBLY__ */247#endif /* __ASSEMBLY__ */
223 248
@@ -255,26 +280,84 @@ extern pgprot_t pgprot_kernel; · 31 unmodified lines
255extern struct page *empty_zero_page;280extern struct page *empty_zero_page;
256#define ZERO_PAGE(vaddr) (empty_zero_page)281#define ZERO_PAGE(vaddr) (empty_zero_page)
257 282
258#define pte_pfn(pte) (pte_val(pte) >> PAGE_SHIFT)
259#define pfn_pte(pfn,prot) (__pte(((pfn) << PAGE_SHIFT) | pgprot_val(prot)))
260 283
261#define pte_none(pte) (!pte_val(pte))284extern pgd_t swapper_pg_dir[PTRS_PER_PGD];
262#define pte_clear(mm,addr,ptep) set_pte_ext(ptep, __pte(0), 0)285
263#define pte_page(pte) (pfn_to_page(pte_pfn(pte)))286/* to find an entry in a page-table-directory */
264#define pte_offset_kernel(dir,addr) (pmd_page_vaddr(*(dir)) + __pte_index(addr))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
327static 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)
265 336
266#define pte_offset_map(dir,addr) (__pte_map(dir) + __pte_index(addr))
267#define pte_unmap(pte) __pte_unmap(pte)
268 337
269#ifndef CONFIG_HIGHPTE338#ifndef CONFIG_HIGHPTE
270#define __pte_map(dir) pmd_page_vaddr(*(dir))339#define __pte_map(pmd) pmd_page_vaddr(*(pmd))
271#define __pte_unmap(pte) do { } while (0)340#define __pte_unmap(pte) do { } while (0)
272#else341#else
273#define __pte_map(dir) ((pte_t *)kmap_atomic(pmd_page(*(dir))) + PTRS_PER_PTE)342#define __pte_map(pmd) (pte_t *)kmap_atomic(pmd_page(*(pmd)))
274#define __pte_unmap(pte) kunmap_atomic((pte - PTRS_PER_PTE))343#define __pte_unmap(pte) kunmap_atomic(pte)
275#endif344#endif
276 345
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
277#define set_pte_ext(ptep,pte,ext) cpu_set_pte_ext(ptep,pte,ext)359#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)
278 361
279#if __LINUX_ARM_ARCH__ < 6362#if __LINUX_ARM_ARCH__ < 6
280static inline void __sync_icache_dcache(pte_t pteval)363static 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
295 }378 }
296}379}
297 380
298/*381#define pte_none(pte) (!pte_val(pte))
299 * The following only work if pte_present() is true.
300 * Undefined behaviour if not..
301 */
302#define pte_present(pte) (pte_val(pte) & L_PTE_PRESENT)382#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))
304#define pte_dirty(pte) (pte_val(pte) & L_PTE_DIRTY)384#define pte_dirty(pte) (pte_val(pte) & L_PTE_DIRTY)
305#define pte_young(pte) (pte_val(pte) & L_PTE_YOUNG)385#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))
307#define pte_special(pte) (0)387#define pte_special(pte) (0)
308 388
309#define pte_present_user(pte) \389#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
313#define PTE_BIT_FUNC(fn,op) \393#define PTE_BIT_FUNC(fn,op) \
314static inline pte_t pte_##fn(pte_t pte) { pte_val(pte) op; return pte; }394static inline pte_t pte_##fn(pte_t pte) { pte_val(pte) op; return pte; }
315 395
316PTE_BIT_FUNC(wrprotect, &= ~L_PTE_WRITE);396PTE_BIT_FUNC(wrprotect, |= L_PTE_RDONLY);
317PTE_BIT_FUNC(mkwrite, |= L_PTE_WRITE);397PTE_BIT_FUNC(mkwrite, &= ~L_PTE_RDONLY);
318PTE_BIT_FUNC(mkclean, &= ~L_PTE_DIRTY);398PTE_BIT_FUNC(mkclean, &= ~L_PTE_DIRTY);
319PTE_BIT_FUNC(mkdirty, |= L_PTE_DIRTY);399PTE_BIT_FUNC(mkdirty, |= L_PTE_DIRTY);
320PTE_BIT_FUNC(mkold, &= ~L_PTE_YOUNG);400PTE_BIT_FUNC(mkold, &= ~L_PTE_YOUNG);
@@ -322,101 +402,13 @@ PTE_BIT_FUNC(mkyoung, |= L_PTE_YOUNG); · 1 unmodified line
322 402
323static inline pte_t pte_mkspecial(pte_t pte) { return pte; }403static inline pte_t pte_mkspecial(pte_t pte) { return pte; }
324 404
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
339struct file;
340extern 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
365static 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
411static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)405static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
412{406{
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;
414 pte_val(pte) = (pte_val(pte) & ~mask) | (pgprot_val(newprot) & mask);408 pte_val(pte) = (pte_val(pte) & ~mask) | (pgprot_val(newprot) & mask);
415 return pte;409 return pte;
416}410}
417 411
418extern pgd_t swapper_pg_dir[PTRS_PER_PGD];
419
420/*412/*
421 * Encode and decode a swap entry. Swap entries are stored in the Linux413 * Encode and decode a swap entry. Swap entries are stored in the Linux
422 * page tables as follows:414 * page tables as follows:
@@ -481,6 +473,9 @@ extern pgd_t swapper_pg_dir[PTRS_PER_PGD]; · 58 unmodified lines
481 473
482#define pgtable_cache_init() do { } while (0)474#define pgtable_cache_init() do { } while (0)
483 475
476void identity_mapping_add(pgd_t *, unsigned long, unsigned long);
477void identity_mapping_del(pgd_t *, unsigned long, unsigned long);
478
484#endif /* !__ASSEMBLY__ */479#endif /* !__ASSEMBLY__ */
485 480
486#endif /* CONFIG_MMU */481#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
14struct clock_data {
15 u64 epoch_ns;
16 u32 epoch_cyc;
17 u32 epoch_cyc_copy;
18 u32 mult;
19 u32 shift;
20};
21
22#define DEFINE_CLOCK_DATA(name) struct clock_data name
23
24static inline u64 cyc_to_ns(u64 cyc, u32 mult, u32 shift)
25{
26 return (cyc * mult) >> shift;
27}
28
29/*
30 * Atomically update the sched_clock epoch. Your update callback will
31 * be called from a timer before the counter wraps - read the current
32 * counter value, and call this function to safely move the epochs
33 * forward. Only use this from the update callback.
34 */
35static inline void update_sched_clock(struct clock_data *cd, u32 cyc, u32 mask)
36{
37 unsigned long flags;
38 u64 ns = cd->epoch_ns +
39 cyc_to_ns((cyc - cd->epoch_cyc) & mask, cd->mult, cd->shift);
40
41 /*
42 * Write epoch_cyc and epoch_ns in a way that the update is
43 * detectable in cyc_to_fixed_sched_clock().
44 */
45 raw_local_irq_save(flags);
46 cd->epoch_cyc = cyc;
47 smp_wmb();
48 cd->epoch_ns = ns;
49 smp_wmb();
50 cd->epoch_cyc_copy = cyc;
51 raw_local_irq_restore(flags);
52}
53
54/*
55 * If your clock rate is known at compile time, using this will allow
56 * you to optimize the mult/shift loads away. This is paired with
57 * init_fixed_sched_clock() to ensure that your mult/shift are correct.
58 */
59static inline unsigned long long cyc_to_fixed_sched_clock(struct clock_data *cd,
60 u32 cyc, u32 mask, u32 mult, u32 shift)
61{
62 u64 epoch_ns;
63 u32 epoch_cyc;
64
65 /*
66 * Load the epoch_cyc and epoch_ns atomically. We do this by
67 * ensuring that we always write epoch_cyc, epoch_ns and
68 * epoch_cyc_copy in strict order, and read them in strict order.
69 * If epoch_cyc and epoch_cyc_copy are not equal, then we're in
70 * the middle of an update, and we should repeat the load.
71 */
72 do {
73 epoch_cyc = cd->epoch_cyc;
74 smp_rmb();
75 epoch_ns = cd->epoch_ns;
76 smp_rmb();
77 } while (epoch_cyc != cd->epoch_cyc_copy);
78
79 return epoch_ns + cyc_to_ns((cyc - epoch_cyc) & mask, mult, shift);
80}
81
82/*
83 * Otherwise, you need to use this, which will obtain the mult/shift
84 * from the clock_data structure. Use init_sched_clock() with this.
85 */
86static inline unsigned long long cyc_to_sched_clock(struct clock_data *cd,
87 u32 cyc, u32 mask)
88{
89 return cyc_to_fixed_sched_clock(cd, cyc, mask, cd->mult, cd->shift);
90}
91
92/*
93 * Initialize the clock data - calculate the appropriate multiplier
94 * and shift. Also setup a timer to ensure that the epoch is refreshed
95 * at the appropriate time interval, which will call your update
96 * handler.
97 */
98void init_sched_clock(struct clock_data *, void (*)(void),
99 unsigned int, unsigned long);
100
101/*
102 * Use this initialization function rather than init_sched_clock() if
103 * you're using cyc_to_fixed_sched_clock, which will warn if your
104 * constants are incorrect.
105 */
106static inline void init_fixed_sched_clock(struct clock_data *cd,
107 void (*update)(void), unsigned int bits, unsigned long rate,
108 u32 mult, u32 shift)
109{
110 init_sched_clock(cd, update, bits, rate);
111 if (cd->mult != mult || cd->shift != shift) {
112 pr_crit("sched_clock: wrong multiply/shift: %u>>%u vs calculated %u>>%u\n"
113 "sched_clock: fix multiply/shift to avoid scheduler hiccups\n",
114 mult, shift, cd->mult, cd->shift);
115 }
116}
117
118extern void sched_clock_postinit(void);
119
120#endif
arch/arm/include/asm/smp.h+9−8
@@ -33,27 +33,23 @@ struct seq_file; · 32 unmodified lines
33/*33/*
34 * generate IPI list text34 * generate IPI list text
35 */35 */
36extern void show_ipi_list(struct seq_file *p);36extern void show_ipi_list(struct seq_file *, int);
37 37
38/*38/*
39 * Called from assembly code, this handles an IPI.39 * Called from assembly code, this handles an IPI.
40 */40 */
41asmlinkage void do_IPI(struct pt_regs *regs);41asmlinkage void do_IPI(int ipinr, struct pt_regs *regs);
42 42
43/*43/*
44 * Setup the set of possible CPUs (via set_cpu_possible)44 * Setup the set of possible CPUs (via set_cpu_possible)
45 */45 */
46extern void smp_init_cpus(void);46extern void smp_init_cpus(void);
47 47
48/*
49 * Move global data into per-processor storage.
50 */
51extern void smp_store_cpu_info(unsigned int cpuid);
52 48
53/*49/*
54 * Raise an IPI cross call on CPUs in callmap.50 * Raise an IPI cross call on CPUs in callmap.
55 */51 */
56extern void smp_cross_call(const struct cpumask *mask);52extern void smp_cross_call(const struct cpumask *mask, int ipi);
57 53
58/*54/*
59 * Boot a secondary CPU, and assign it the specified idle task.55 * Boot a secondary CPU, and assign it the specified idle task.
@@ -72,6 +68,11 @@ asmlinkage void secondary_start_kernel(void); · 12 unmodified lines
72 */68 */
73extern void platform_secondary_init(unsigned int cpu);69extern void platform_secondary_init(unsigned int cpu);
74 70
71/*
72 * Initialize cpu_possible map, and enable coherency
73 */
74extern void platform_smp_prepare_cpus(unsigned int);
75
75/*76/*
76 * Initial data for bringing up a secondary CPU.77 * Initial data for bringing up a secondary CPU.
77 */78 */
@@ -97,6 +98,6 @@ extern void arch_send_call_function_ipi_mask(const struct cpumask *mask); · 19 unmodified lines
97/*98/*
98 * show local interrupt info99 * show local interrupt info
99 */100 */
100extern void show_local_irqs(struct seq_file *);101extern void show_local_irqs(struct seq_file *, int);
101 102
102#endif /* ifndef __ASM_ARM_SMP_H */103#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
22 22
23extern void __iomem *twd_base;23extern void __iomem *twd_base;
24 24
25void twd_timer_stop(void);
26int twd_timer_ack(void);25int twd_timer_ack(void);
27void twd_timer_setup(struct clock_event_device *);26void twd_timer_setup(struct clock_event_device *);
28 27
arch/arm/include/asm/system.h+12−0
@@ -63,6 +63,11 @@ · 62 unmodified lines
63#include <asm/outercache.h>63#include <asm/outercache.h>
64 64
65#define __exception __attribute__((section(".exception.text")))65#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
66 71
67struct thread_info;72struct thread_info;
68struct task_struct;73struct task_struct;
@@ -119,6 +124,13 @@ extern unsigned int user_debug; · 50 unmodified lines
119#define vectors_high() (0)124#define vectors_high() (0)
120#endif125#endif
121 126
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
122#if __LINUX_ARM_ARCH__ >= 7134#if __LINUX_ARM_ARCH__ >= 7
123#define isb() __asm__ __volatile__ ("isb" : : : "memory")135#define isb() __asm__ __volatile__ ("isb" : : : "memory")
124#define dsb() __asm__ __volatile__ ("dsb" : : : "memory")136#define dsb() __asm__ __volatile__ ("dsb" : : : "memory")
arch/arm/include/asm/tlb.h+92−13
@@ -18,16 +18,34 @@ · 17 unmodified lines
18#define __ASMARM_TLB_H18#define __ASMARM_TLB_H
19 19
20#include <asm/cacheflush.h>20#include <asm/cacheflush.h>
21#include <asm/tlbflush.h>
22 21
23#ifndef CONFIG_MMU22#ifndef CONFIG_MMU
24 23
25#include <linux/pagemap.h>24#include <linux/pagemap.h>
25
26#define tlb_flush(tlb) ((void) tlb)
27
26#include <asm-generic/tlb.h>28#include <asm-generic/tlb.h>
27 29
28#else /* !CONFIG_MMU */30#else /* !CONFIG_MMU */
29 31
32#include <linux/swap.h>
30#include <asm/pgalloc.h>33#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
31 49
32/*50/*
33 * TLB handling. This allows us to remove pages from the page51 * TLB handling. This allows us to remove pages from the page
@@ -36,12 +54,58 @@ · 2 unmodified lines
36struct mmu_gather {54struct mmu_gather {
37 struct mm_struct *mm;55 struct mm_struct *mm;
38 unsigned int fullmm;56 unsigned int fullmm;
57 struct vm_area_struct *vma;
39 unsigned long range_start;58 unsigned long range_start;
40 unsigned long range_end;59 unsigned long range_end;
60 unsigned int nr;
61 struct page *pages[FREE_PTE_NR];
41};62};
42 63
43DECLARE_PER_CPU(struct mmu_gather, mmu_gathers);64DECLARE_PER_CPU(struct mmu_gather, mmu_gathers);
44 65
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 */
79static 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
90static 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
100static 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
45static inline struct mmu_gather *109static inline struct mmu_gather *
46tlb_gather_mmu(struct mm_struct *mm, unsigned int full_mm_flush)110tlb_gather_mmu(struct mm_struct *mm, unsigned int full_mm_flush)
47{111{
@@ -49,6 +113,8 @@ tlb_gather_mmu(struct mm_struct *mm, unsigned int full_mm_flush) · 1 unmodified line
49 113
50 tlb->mm = mm;114 tlb->mm = mm;
51 tlb->fullmm = full_mm_flush;115 tlb->fullmm = full_mm_flush;
116 tlb->vma = NULL;
117 tlb->nr = 0;
52 118
53 return tlb;119 return tlb;
54}120}
@@ -56,8 +122,7 @@ tlb_gather_mmu(struct mm_struct *mm, unsigned int full_mm_flush) · 1 unmodified line
56static inline void122static inline void
57tlb_finish_mmu(struct mmu_gather *tlb, unsigned long start, unsigned long end)123tlb_finish_mmu(struct mmu_gather *tlb, unsigned long start, unsigned long end)
58{124{
59 if (tlb->fullmm)125 tlb_flush_mmu(tlb);
60 flush_tlb_mm(tlb->mm);
61 126
62 /* keep the page table cache within bounds */127 /* keep the page table cache within bounds */
63 check_pgt_cache();128 check_pgt_cache();
@@ -71,12 +136,7 @@ tlb_finish_mmu(struct mmu_gather *tlb, unsigned long start, unsigned long end) · 7 unmodified lines
71static inline void136static inline void
72tlb_remove_tlb_entry(struct mmu_gather *tlb, pte_t *ptep, unsigned long addr)137tlb_remove_tlb_entry(struct mmu_gather *tlb, pte_t *ptep, unsigned long addr)
73{138{
74 if (!tlb->fullmm) {139 tlb_add_flush(tlb, addr);
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 }
80}140}
81 141
82/*142/*
@@ -89,6 +149,7 @@ tlb_start_vma(struct mmu_gather *tlb, struct vm_area_struct *vma) · 6 unmodified lines
89{149{
90 if (!tlb->fullmm) {150 if (!tlb->fullmm) {
91 flush_cache_range(vma, vma->vm_start, vma->vm_end);151 flush_cache_range(vma, vma->vm_start, vma->vm_end);
152 tlb->vma = vma;
92 tlb->range_start = TASK_SIZE;153 tlb->range_start = TASK_SIZE;
93 tlb->range_end = 0;154 tlb->range_end = 0;
94 }155 }
@@ -97,12 +158,30 @@ tlb_start_vma(struct mmu_gather *tlb, struct vm_area_struct *vma) · 2 unmodified lines
97static inline void158static inline void
98tlb_end_vma(struct mmu_gather *tlb, struct vm_area_struct *vma)159tlb_end_vma(struct mmu_gather *tlb, struct vm_area_struct *vma)
99{160{
100 if (!tlb->fullmm && tlb->range_end > 0)161 if (!tlb->fullmm)
101 flush_tlb_range(vma, tlb->range_start, tlb->range_end);162 tlb_flush(tlb);
163}
164
165static 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
176static 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);
102}182}
103 183
104#define tlb_remove_page(tlb,page) free_page_and_swap_cache(page)184#define pte_free_tlb(tlb, ptep, addr) __pte_free_tlb(tlb, ptep, addr)
105#define pte_free_tlb(tlb, ptep, addr) pte_free((tlb)->mm, ptep)
106#define pmd_free_tlb(tlb, pmdp, addr) pmd_free((tlb)->mm, pmdp)185#define pmd_free_tlb(tlb, pmdp, addr) pmd_free((tlb)->mm, pmdp)
107 186
108#define tlb_migrate_finish(mm) do { } while (0)187#define tlb_migrate_finish(mm) do { } while (0)
arch/arm/include/asm/tlbflush.h+1−6
@@ -10,12 +10,7 @@ · 9 unmodified lines
10#ifndef _ASMARM_TLBFLUSH_H10#ifndef _ASMARM_TLBFLUSH_H
11#define _ASMARM_TLBFLUSH_H11#define _ASMARM_TLBFLUSH_H
12 12
13 13#ifdef CONFIG_MMU
14#ifndef CONFIG_MMU
15
16#define tlb_flush(tlb) ((void) tlb)
17
18#else /* CONFIG_MMU */
19 14
20#include <asm/glue.h>15#include <asm/glue.h>
21 16
arch/arm/include/asm/traps.h+23−2
@@ -15,16 +15,37 @@ struct undef_hook { · 14 unmodified lines
15void register_undef_hook(struct undef_hook *hook);15void register_undef_hook(struct undef_hook *hook);
16void unregister_undef_hook(struct undef_hook *hook);16void unregister_undef_hook(struct undef_hook *hook);
17 17
18#ifdef CONFIG_FUNCTION_GRAPH_TRACER
19static 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
28static inline int __in_irqentry_text(unsigned long ptr)
29{
30 return 0;
31}
32#endif
33
18static inline int in_exception_text(unsigned long ptr)34static inline int in_exception_text(unsigned long ptr)
19{35{
20 extern char __exception_text_start[];36 extern char __exception_text_start[];
21 extern char __exception_text_end[];37 extern char __exception_text_end[];
38 int in;
22 39
23 return ptr >= (unsigned long)&__exception_text_start &&40 in = ptr >= (unsigned long)&__exception_text_start &&
24 ptr < (unsigned long)&__exception_text_end;41 ptr < (unsigned long)&__exception_text_end;
42
43 return in ? : __in_irqentry_text(ptr);
25}44}
26 45
27extern void __init early_trap_init(void);46extern void __init early_trap_init(void);
28extern void dump_backtrace_entry(unsigned long where, unsigned long from, unsigned long frame);47extern void dump_backtrace_entry(unsigned long where, unsigned long from, unsigned long frame);
29 48
49extern void *vectors_page;
50
30#endif51#endif
arch/arm/include/asm/uaccess.h+8−8
@@ -227,7 +227,7 @@ do { \ · 226 unmodified lines
227 227
228#define __get_user_asm_byte(x,addr,err) \228#define __get_user_asm_byte(x,addr,err) \
229 __asm__ __volatile__( \229 __asm__ __volatile__( \
230 "1: ldrbt %1,[%2]\n" \230 "1: " T(ldrb) " %1,[%2],#0\n" \
231 "2:\n" \231 "2:\n" \
232 " .pushsection .fixup,\"ax\"\n" \232 " .pushsection .fixup,\"ax\"\n" \
233 " .align 2\n" \233 " .align 2\n" \
@@ -263,7 +263,7 @@ do { \ · 29 unmodified lines
263 263
264#define __get_user_asm_word(x,addr,err) \264#define __get_user_asm_word(x,addr,err) \
265 __asm__ __volatile__( \265 __asm__ __volatile__( \
266 "1: ldrt %1,[%2]\n" \266 "1: " T(ldr) " %1,[%2],#0\n" \
267 "2:\n" \267 "2:\n" \
268 " .pushsection .fixup,\"ax\"\n" \268 " .pushsection .fixup,\"ax\"\n" \
269 " .align 2\n" \269 " .align 2\n" \
@@ -308,7 +308,7 @@ do { \ · 38 unmodified lines
308 308
309#define __put_user_asm_byte(x,__pu_addr,err) \309#define __put_user_asm_byte(x,__pu_addr,err) \
310 __asm__ __volatile__( \310 __asm__ __volatile__( \
311 "1: strbt %1,[%2]\n" \311 "1: " T(strb) " %1,[%2],#0\n" \
312 "2:\n" \312 "2:\n" \
313 " .pushsection .fixup,\"ax\"\n" \313 " .pushsection .fixup,\"ax\"\n" \
314 " .align 2\n" \314 " .align 2\n" \
@@ -341,7 +341,7 @@ do { \ · 26 unmodified lines
341 341
342#define __put_user_asm_word(x,__pu_addr,err) \342#define __put_user_asm_word(x,__pu_addr,err) \
343 __asm__ __volatile__( \343 __asm__ __volatile__( \
344 "1: strt %1,[%2]\n" \344 "1: " T(str) " %1,[%2],#0\n" \
345 "2:\n" \345 "2:\n" \
346 " .pushsection .fixup,\"ax\"\n" \346 " .pushsection .fixup,\"ax\"\n" \
347 " .align 2\n" \347 " .align 2\n" \
@@ -366,10 +366,10 @@ do { \ · 18 unmodified lines
366 366
367#define __put_user_asm_dword(x,__pu_addr,err) \367#define __put_user_asm_dword(x,__pu_addr,err) \
368 __asm__ __volatile__( \368 __asm__ __volatile__( \
369 ARM( "1: strt " __reg_oper1 ", [%1], #4\n" ) \369 ARM( "1: " T(str) " " __reg_oper1 ", [%1], #4\n" ) \
370 ARM( "2: strt " __reg_oper0 ", [%1]\n" ) \370 ARM( "2: " T(str) " " __reg_oper0 ", [%1]\n" ) \
371 THUMB( "1: strt " __reg_oper1 ", [%1]\n" ) \371 THUMB( "1: " T(str) " " __reg_oper1 ", [%1]\n" ) \
372 THUMB( "2: strt " __reg_oper0 ", [%1, #4]\n" ) \372 THUMB( "2: " T(str) " " __reg_oper0 ", [%1, #4]\n" ) \
373 "3:\n" \373 "3:\n" \
374 " .pushsection .fixup,\"ax\"\n" \374 " .pushsection .fixup,\"ax\"\n" \
375 " .align 2\n" \375 " .align 2\n" \
arch/arm/kernel/Makefile+7−2
@@ -5,7 +5,7 @@ · 4 unmodified lines
5CPPFLAGS_vmlinux.lds := -DTEXT_OFFSET=$(TEXT_OFFSET)5CPPFLAGS_vmlinux.lds := -DTEXT_OFFSET=$(TEXT_OFFSET)
6AFLAGS_head.o := -DTEXT_OFFSET=$(TEXT_OFFSET)6AFLAGS_head.o := -DTEXT_OFFSET=$(TEXT_OFFSET)
7 7
8ifdef CONFIG_DYNAMIC_FTRACE8ifdef CONFIG_FUNCTION_TRACER
9CFLAGS_REMOVE_ftrace.o = -pg9CFLAGS_REMOVE_ftrace.o = -pg
10endif10endif
11 11
@@ -29,10 +29,12 @@ obj-$(CONFIG_MODULES) += armksyms.o module.o · 17 unmodified lines
29obj-$(CONFIG_ARTHUR) += arthur.o29obj-$(CONFIG_ARTHUR) += arthur.o
30obj-$(CONFIG_ISA_DMA) += dma-isa.o30obj-$(CONFIG_ISA_DMA) += dma-isa.o
31obj-$(CONFIG_PCI) += bios32.o isa.o31obj-$(CONFIG_PCI) += bios32.o isa.o
32obj-$(CONFIG_SMP) += smp.o32obj-$(CONFIG_HAVE_SCHED_CLOCK) += sched_clock.o
33obj-$(CONFIG_SMP) += smp.o smp_tlb.o
33obj-$(CONFIG_HAVE_ARM_SCU) += smp_scu.o34obj-$(CONFIG_HAVE_ARM_SCU) += smp_scu.o
34obj-$(CONFIG_HAVE_ARM_TWD) += smp_twd.o35obj-$(CONFIG_HAVE_ARM_TWD) += smp_twd.o
35obj-$(CONFIG_DYNAMIC_FTRACE) += ftrace.o36obj-$(CONFIG_DYNAMIC_FTRACE) += ftrace.o
37obj-$(CONFIG_FUNCTION_GRAPH_TRACER) += ftrace.o
36obj-$(CONFIG_KEXEC) += machine_kexec.o relocate_kernel.o38obj-$(CONFIG_KEXEC) += machine_kexec.o relocate_kernel.o
37obj-$(CONFIG_KPROBES) += kprobes.o kprobes-decode.o39obj-$(CONFIG_KPROBES) += kprobes.o kprobes-decode.o
38obj-$(CONFIG_ATAGS_PROC) += atags.o40obj-$(CONFIG_ATAGS_PROC) += atags.o
@@ -42,6 +44,8 @@ obj-$(CONFIG_KGDB) += kgdb.o · 3 unmodified lines
42obj-$(CONFIG_ARM_UNWIND) += unwind.o44obj-$(CONFIG_ARM_UNWIND) += unwind.o
43obj-$(CONFIG_HAVE_TCM) += tcm.o45obj-$(CONFIG_HAVE_TCM) += tcm.o
44obj-$(CONFIG_CRASH_DUMP) += crash_dump.o46obj-$(CONFIG_CRASH_DUMP) += crash_dump.o
47obj-$(CONFIG_SWP_EMULATE) += swp_emulate.o
48CFLAGS_swp_emulate.o := -Wa,-march=armv7-a
45obj-$(CONFIG_HAVE_HW_BREAKPOINT) += hw_breakpoint.o49obj-$(CONFIG_HAVE_HW_BREAKPOINT) += hw_breakpoint.o
46 50
47obj-$(CONFIG_CRUNCH) += crunch.o crunch-bits.o51obj-$(CONFIG_CRUNCH) += crunch.o crunch-bits.o
@@ -50,6 +54,7 @@ AFLAGS_crunch-bits.o := -Wa,-mcpu=ep9312 · 2 unmodified lines
50obj-$(CONFIG_CPU_XSCALE) += xscale-cp0.o54obj-$(CONFIG_CPU_XSCALE) += xscale-cp0.o
51obj-$(CONFIG_CPU_XSC3) += xscale-cp0.o55obj-$(CONFIG_CPU_XSC3) += xscale-cp0.o
52obj-$(CONFIG_CPU_MOHAWK) += xscale-cp0.o56obj-$(CONFIG_CPU_MOHAWK) += xscale-cp0.o
57obj-$(CONFIG_CPU_PJ4) += pj4-cp0.o
53obj-$(CONFIG_IWMMXT) += iwmmxt.o58obj-$(CONFIG_IWMMXT) += iwmmxt.o
54obj-$(CONFIG_CPU_HAS_PMU) += pmu.o59obj-$(CONFIG_CPU_HAS_PMU) += pmu.o
55obj-$(CONFIG_HW_PERF_EVENTS) += perf_event.o60obj-$(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
443 *443 *
444 * They are not meant to be called directly, but via enable/disable_irq.444 * They are not meant to be called directly, but via enable/disable_irq.
445 */445 */
446static void ecard_irq_unmask(unsigned int irqnr)446static void ecard_irq_unmask(struct irq_data *d)
447{447{
448 ecard_t *ec = slot_to_ecard(irqnr - 32);448 ecard_t *ec = slot_to_ecard(d->irq - 32);
449 449
450 if (ec) {450 if (ec) {
451 if (!ec->ops)451 if (!ec->ops)
452 ec->ops = &ecard_default_ops;452 ec->ops = &ecard_default_ops;
453 453
454 if (ec->claimed && ec->ops->irqenable)454 if (ec->claimed && ec->ops->irqenable)
455 ec->ops->irqenable(ec, irqnr);455 ec->ops->irqenable(ec, d->irq);
456 else456 else
457 printk(KERN_ERR "ecard: rejecting request to "457 printk(KERN_ERR "ecard: rejecting request to "
458 "enable IRQs for %d\n", irqnr);458 "enable IRQs for %d\n", d->irq);
459 }459 }
460}460}
461 461
462static void ecard_irq_mask(unsigned int irqnr)462static void ecard_irq_mask(struct irq_data *d)
463{463{
464 ecard_t *ec = slot_to_ecard(irqnr - 32);464 ecard_t *ec = slot_to_ecard(d->irq - 32);
465 465
466 if (ec) {466 if (ec) {
467 if (!ec->ops)467 if (!ec->ops)
468 ec->ops = &ecard_default_ops;468 ec->ops = &ecard_default_ops;
469 469
470 if (ec->ops && ec->ops->irqdisable)470 if (ec->ops && ec->ops->irqdisable)
471 ec->ops->irqdisable(ec, irqnr);471 ec->ops->irqdisable(ec, d->irq);
472 }472 }
473}473}
474 474
475static struct irq_chip ecard_chip = {475static struct irq_chip ecard_chip = {
476 .name = "ECARD",476 .name = "ECARD",
477 .ack = ecard_irq_mask,477 .irq_ack = ecard_irq_mask,
478 .mask = ecard_irq_mask,478 .irq_mask = ecard_irq_mask,
479 .unmask = ecard_irq_unmask,479 .irq_unmask = ecard_irq_unmask,
480};480};
481 481
482void ecard_enablefiq(unsigned int fiqnr)482void ecard_enablefiq(unsigned int fiqnr)
@@ -551,7 +551,7 @@ static void ecard_check_lockup(struct irq_desc *desc) · 68 unmodified lines
551 printk(KERN_ERR "\nInterrupt lockup detected - "551 printk(KERN_ERR "\nInterrupt lockup detected - "
552 "disabling all expansion card interrupts\n");552 "disabling all expansion card interrupts\n");
553 553
554 desc->chip->mask(IRQ_EXPANSIONCARD);554 desc->irq_data.chip->irq_mask(&desc->irq_data);
555 ecard_dump_irq_state();555 ecard_dump_irq_state();
556 }556 }
557 } else557 } else
@@ -574,7 +574,7 @@ ecard_irq_handler(unsigned int irq, struct irq_desc *desc) · 16 unmodified lines
574 ecard_t *ec;574 ecard_t *ec;
575 int called = 0;575 int called = 0;
576 576
577 desc->chip->mask(irq);577 desc->irq_data.chip->irq_mask(&desc->irq_data);
578 for (ec = cards; ec; ec = ec->next) {578 for (ec = cards; ec; ec = ec->next) {
579 int pending;579 int pending;
580 580
@@ -591,7 +591,7 @@ ecard_irq_handler(unsigned int irq, struct irq_desc *desc) · 10 unmodified lines
591 called ++;591 called ++;
592 }592 }
593 }593 }
594 desc->chip->unmask(irq);594 desc->irq_data.chip->irq_unmask(&desc->irq_data);
595 595
596 if (called == 0)596 if (called == 0)
597 ecard_check_lockup(desc);597 ecard_check_lockup(desc);
arch/arm/kernel/entry-armv.S+23−33
@@ -25,42 +25,22 @@ · 24 unmodified lines
25#include <asm/tls.h>25#include <asm/tls.h>
26 26
27#include "entry-header.S"27#include "entry-header.S"
28#include <asm/entry-macro-multi.S>
28 29
29/*30/*
30 * Interrupt handling. Preserves r7, r8, r931 * Interrupt handling. Preserves r7, r8, r9
31 */32 */
32 .macro irq_handler33 .macro irq_handler
33 get_irqnr_preamble r5, lr34#ifdef CONFIG_MULTI_IRQ_HANDLER
341: get_irqnr_and_base r0, r6, r5, lr35 ldr r5, =handle_arch_irq
35 movne r1, sp36 mov r0, sp
36 @37 ldr r5, [r5]
37 @ routine called with r0 = irq number, r1 = struct pt_regs *38 adr lr, BSYM(9997f)
38 @39 teq r5, #0
39 adrne lr, BSYM(1b)40 movne pc, r5
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
60#endif41#endif
42 arch_irq_handler_default
619997:439997:
62#endif
63
64 .endm44 .endm
65 45
66#ifdef CONFIG_KPROBES46#ifdef CONFIG_KPROBES
@@ -198,6 +178,7 @@ __dabt_svc: · 131 unmodified lines
198 @178 @
199 @ set desired IRQ state, then call main handler179 @ set desired IRQ state, then call main handler
200 @180 @
181 debug_entry r1
201 msr cpsr_c, r9182 msr cpsr_c, r9
202 mov r2, sp183 mov r2, sp
203 bl do_DataAbort184 bl do_DataAbort
@@ -324,6 +305,7 @@ __pabt_svc: · 120 unmodified lines
324#else305#else
325 bl CPU_PABORT_HANDLER306 bl CPU_PABORT_HANDLER
326#endif307#endif
308 debug_entry r1
327 msr cpsr_c, r9 @ Maybe enable interrupts309 msr cpsr_c, r9 @ Maybe enable interrupts
328 mov r2, sp @ regs310 mov r2, sp @ regs
329 bl do_PrefetchAbort @ call abort handler311 bl do_PrefetchAbort @ call abort handler
@@ -439,6 +421,7 @@ __dabt_usr: · 109 unmodified lines
439 @421 @
440 @ IRQs on, then call the main handler422 @ IRQs on, then call the main handler
441 @423 @
424 debug_entry r1
442 enable_irq425 enable_irq
443 mov r2, sp426 mov r2, sp
444 adr lr, BSYM(ret_from_exception)427 adr lr, BSYM(ret_from_exception)
@@ -703,6 +686,7 @@ __pabt_usr: · 258 unmodified lines
703#else686#else
704 bl CPU_PABORT_HANDLER687 bl CPU_PABORT_HANDLER
705#endif688#endif
689 debug_entry r1
706 enable_irq @ Enable interrupts690 enable_irq @ Enable interrupts
707 mov r2, sp @ regs691 mov r2, sp @ regs
708 bl do_PrefetchAbort @ call abort handler692 bl do_PrefetchAbort @ call abort handler
@@ -735,7 +719,7 @@ ENTRY(__switch_to) · 26 unmodified lines
735 THUMB( stmia ip!, {r4 - sl, fp} ) @ Store most regs on stack719 THUMB( stmia ip!, {r4 - sl, fp} ) @ Store most regs on stack
736 THUMB( str sp, [ip], #4 )720 THUMB( str sp, [ip], #4 )
737 THUMB( str lr, [ip], #4 )721 THUMB( str lr, [ip], #4 )
738#ifdef CONFIG_MMU722#ifdef CONFIG_CPU_USE_DOMAINS
739 ldr r6, [r2, #TI_CPU_DOMAIN]723 ldr r6, [r2, #TI_CPU_DOMAIN]
740#endif724#endif
741 set_tls r3, r4, r5725 set_tls r3, r4, r5
@@ -744,7 +728,7 @@ ENTRY(__switch_to) · 2 unmodified lines
744 ldr r8, =__stack_chk_guard728 ldr r8, =__stack_chk_guard
745 ldr r7, [r7, #TSK_STACK_CANARY]729 ldr r7, [r7, #TSK_STACK_CANARY]
746#endif730#endif
747#ifdef CONFIG_MMU731#ifdef CONFIG_CPU_USE_DOMAINS
748 mcr p15, 0, r6, c3, c0, 0 @ Set domain register732 mcr p15, 0, r6, c3, c0, 0 @ Set domain register
749#endif733#endif
750 mov r5, r0734 mov r5, r0
@@ -842,7 +826,7 @@ __kuser_helper_start: · 91 unmodified lines
842 */826 */
843 827
844__kuser_memory_barrier: @ 0xffff0fa0828__kuser_memory_barrier: @ 0xffff0fa0
845 smp_dmb829 smp_dmb arm
846 usr_ret lr830 usr_ret lr
847 831
848 .align 5832 .align 5
@@ -959,7 +943,7 @@ kuser_cmpxchg_fixup: · 110 unmodified lines
959 943
960#else944#else
961 945
962 smp_dmb946 smp_dmb arm
9631: ldrex r3, [r2]9471: ldrex r3, [r2]
964 subs r3, r3, r0948 subs r3, r3, r0
965 strexeq r3, r1, [r2]949 strexeq r3, r1, [r2]
@@ -1245,3 +1229,9 @@ cr_alignment: · 279 unmodified lines
1245 .space 41229 .space 4
1246cr_no_alignment:1230cr_no_alignment:
1247 .space 41231 .space 4
1232
1233#ifdef CONFIG_MULTI_IRQ_HANDLER
1234 .globl handle_arch_irq
1235handle_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
147#endif147#endif
148#endif148#endif
149 149
150#ifdef CONFIG_DYNAMIC_FTRACE150.macro __mcount suffix
151ENTRY(__gnu_mcount_nc)151 mcount_enter
152 mov ip, lr152 ldr r0, =ftrace_trace_function
153 ldmia sp!, {lr}153 ldr r2, [r0]
154 mov pc, ip154 adr r0, .Lftrace_stub
155ENDPROC(__gnu_mcount_nc)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
156 170
157ENTRY(ftrace_caller)171 mcount_exit
158 stmdb sp!, {r0-r3, lr}172
159 mov r0, lr1731: 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
1782: 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
160 sub r0, r0, #MCOUNT_INSN_SIZE186 sub r0, r0, #MCOUNT_INSN_SIZE
161 ldr r1, [sp, #20]
162 187
163 .global ftrace_call188 .globl ftrace_call\suffix
164ftrace_call:189ftrace_call\suffix:
165 bl ftrace_stub190 bl ftrace_stub
166 ldmia sp!, {r0-r3, ip, lr}191
167 mov pc, ip192#ifdef CONFIG_FUNCTION_GRAPH_TRACER
168ENDPROC(ftrace_caller)193 .globl ftrace_graph_call\suffix
194ftrace_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
169 215
170#ifdef CONFIG_OLD_MCOUNT216#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
171ENTRY(mcount)234ENTRY(mcount)
235#ifdef CONFIG_DYNAMIC_FTRACE
172 stmdb sp!, {lr}236 stmdb sp!, {lr}
173 ldr lr, [fp, #-4]237 ldr lr, [fp, #-4]
174 ldmia sp!, {pc}238 ldmia sp!, {pc}
239#else
240 __mcount _old
241#endif
175ENDPROC(mcount)242ENDPROC(mcount)
176 243
244#ifdef CONFIG_DYNAMIC_FTRACE
177ENTRY(ftrace_caller_old)245ENTRY(ftrace_caller_old)
178 stmdb sp!, {r0-r3, lr}246 __ftrace_caller _old
179 ldr r1, [fp, #-4]
180 mov r0, lr
181 sub r0, r0, #MCOUNT_INSN_SIZE
182
183 .globl ftrace_call_old
184ftrace_call_old:
185 bl ftrace_stub
186 ldr lr, [fp, #-4] @ restore lr
187 ldmia sp!, {r0-r3, pc}
188ENDPROC(ftrace_caller_old)247ENDPROC(ftrace_caller_old)
189#endif248#endif
190 249
191#else250#ifdef CONFIG_FUNCTION_GRAPH_TRACER
251ENTRY(ftrace_graph_caller_old)
252 __ftrace_graph_caller
253ENDPROC(ftrace_graph_caller_old)
254#endif
192 255
193ENTRY(__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
194 stmdb sp!, {r0-r3, lr}266 stmdb sp!, {r0-r3, lr}
195 ldr r0, =ftrace_trace_function267.endm
196 ldr r2, [r0]268
197 adr r0, .Lftrace_stub269.macro mcount_get_lr reg
198 cmp r0, r2270 ldr \reg, [sp, #20]
199 bne gnu_trace271.endm
272
273.macro mcount_exit
200 ldmia sp!, {r0-r3, ip, lr}274 ldmia sp!, {r0-r3, ip, lr}
201 mov pc, ip275 mov pc, ip
276.endm
202 277
203gnu_trace:278ENTRY(__gnu_mcount_nc)
204 ldr r1, [sp, #20] @ lr of instrumented routine279#ifdef CONFIG_DYNAMIC_FTRACE
205 mov r0, lr280 mov ip, lr
206 sub r0, r0, #MCOUNT_INSN_SIZE281 ldmia sp!, {lr}
207 adr lr, BSYM(1f)
208 mov pc, r2
2091:
210 ldmia sp!, {r0-r3, ip, lr}
211 mov pc, ip282 mov pc, ip
283#else
284 __mcount
285#endif
212ENDPROC(__gnu_mcount_nc)286ENDPROC(__gnu_mcount_nc)
213 287
214#ifdef CONFIG_OLD_MCOUNT288#ifdef CONFIG_DYNAMIC_FTRACE
215/*289ENTRY(ftrace_caller)
216 * This is under an ifdef in order to force link-time errors for people trying290 __ftrace_caller
217 * to build with !FRAME_POINTER with a GCC which doesn't use the new-style291ENDPROC(ftrace_caller)
218 * mcount.292#endif
219 */
220ENTRY(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}
229 293
230trace:294#ifdef CONFIG_FUNCTION_GRAPH_TRACER
231 ldr r1, [fp, #-4] @ lr of instrumented routine295ENTRY(ftrace_graph_caller)
232 mov r0, lr296 __ftrace_graph_caller
233 sub r0, r0, #MCOUNT_INSN_SIZE297ENDPROC(ftrace_graph_caller)
234 mov lr, pc
235 mov pc, r2
236 ldr lr, [fp, #-4] @ restore lr
237 ldmia sp!, {r0-r3, pc}
238ENDPROC(mcount)
239#endif298#endif
240 299
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
306return_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
242 314
243ENTRY(ftrace_stub)315ENTRY(ftrace_stub)
244.Lftrace_stub:316.Lftrace_stub:
arch/arm/kernel/entry-header.S+19−0
@@ -165,6 +165,25 @@ · 164 unmodified lines
165 .endm165 .endm
166#endif /* !CONFIG_THUMB2_KERNEL */166#endif /* !CONFIG_THUMB2_KERNEL */
167 167
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]
1831:
184#endif
185 .endm
186
168/*187/*
169 * These are the registers used in the syscall handler, and allow us to188 * These are the registers used in the syscall handler, and allow us to
170 * have in theory up to 7 arguments to a function - r0 to r6.189 * 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
45#include <asm/fiq.h>45#include <asm/fiq.h>
46#include <asm/irq.h>46#include <asm/irq.h>
47#include <asm/system.h>47#include <asm/system.h>
48#include <asm/traps.h>
48 49
49static unsigned long no_fiq_insn;50static unsigned long no_fiq_insn;
50 51
@@ -67,17 +68,22 @@ static struct fiq_handler default_owner = { · 16 unmodified lines
67 68
68static struct fiq_handler *current_fiq = &default_owner;69static struct fiq_handler *current_fiq = &default_owner;
69 70
70int show_fiq_list(struct seq_file *p, void *v)71int show_fiq_list(struct seq_file *p, int prec)
71{72{
72 if (current_fiq != &default_owner)73 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);
74 76
75 return 0;77 return 0;
76}78}
77 79
78void set_fiq_handler(void *start, unsigned int length)80void set_fiq_handler(void *start, unsigned int length)
79{81{
82#if defined(CONFIG_CPU_USE_DOMAINS)
80 memcpy((void *)0xffff001c, start, length);83 memcpy((void *)0xffff001c, start, length);
84#else
85 memcpy(vectors_page + 0x1c, start, length);
86#endif
81 flush_icache_range(0xffff001c, 0xffff001c + length);87 flush_icache_range(0xffff001c, 0xffff001c + length);
82 if (!vectors_high())88 if (!vectors_high())
83 flush_icache_range(0x1c, 0x1c + length);89 flush_icache_range(0x1c, 0x1c + length);
arch/arm/kernel/ftrace.c+98−5
@@ -24,6 +24,7 @@ · 23 unmodified lines
24#define NOP 0xe8bd4000 /* pop {lr} */24#define NOP 0xe8bd4000 /* pop {lr} */
25#endif25#endif
26 26
27#ifdef CONFIG_DYNAMIC_FTRACE
27#ifdef CONFIG_OLD_MCOUNT28#ifdef CONFIG_OLD_MCOUNT
28#define OLD_MCOUNT_ADDR ((unsigned long) mcount)29#define OLD_MCOUNT_ADDR ((unsigned long) mcount)
29#define OLD_FTRACE_ADDR ((unsigned long) ftrace_caller_old)30#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
59}60}
60#endif61#endif
61 62
62/* construct a branch (BL) instruction to addr */
63#ifdef CONFIG_THUMB2_KERNEL63#ifdef CONFIG_THUMB2_KERNEL
64static unsigned long ftrace_call_replace(unsigned long pc, unsigned long addr)64static unsigned long ftrace_gen_branch(unsigned long pc, unsigned long addr,
65 bool link)
65{66{
66 unsigned long s, j1, j2, i1, i2, imm10, imm11;67 unsigned long s, j1, j2, i1, i2, imm10, imm11;
67 unsigned long first, second;68 unsigned long first, second;
@@ -83,15 +84,22 @@ static unsigned long ftrace_call_replace(unsigned long pc, unsigned long addr) · 15 unmodified lines
83 j2 = (!i2) ^ s;84 j2 = (!i2) ^ s;
84 85
85 first = 0xf000 | (s << 10) | imm10;86 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;
87 90
88 return (second << 16) | first;91 return (second << 16) | first;
89}92}
90#else93#else
91static unsigned long ftrace_call_replace(unsigned long pc, unsigned long addr)94static unsigned long ftrace_gen_branch(unsigned long pc, unsigned long addr,
95 bool link)
92{96{
97 unsigned long opcode = 0xea000000;
93 long offset;98 long offset;
94 99
100 if (link)
101 opcode |= 1 << 24;
102
95 offset = (long)addr - (long)(pc + 8);103 offset = (long)addr - (long)(pc + 8);
96 if (unlikely(offset < -33554432 || offset > 33554428)) {104 if (unlikely(offset < -33554432 || offset > 33554428)) {
97 /* Can't generate branches that far (from ARM ARM). Ftrace105 /* 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
103 111
104 offset = (offset >> 2) & 0x00ffffff;112 offset = (offset >> 2) & 0x00ffffff;
105 113
106 return 0xeb000000 | offset;114 return opcode | offset;
107}115}
108#endif116#endif
109 117
118static unsigned long ftrace_call_replace(unsigned long pc, unsigned long addr)
119{
120 return ftrace_gen_branch(pc, addr, true);
121}
122
110static int ftrace_modify_code(unsigned long pc, unsigned long old,123static int ftrace_modify_code(unsigned long pc, unsigned long old,
111 unsigned long new)124 unsigned long new)
112{125{
@@ -193,3 +206,83 @@ int __init ftrace_dyn_arch_init(void *data) · 80 unmodified lines
193 206
194 return 0;207 return 0;
195}208}
209#endif /* CONFIG_DYNAMIC_FTRACE */
210
211#ifdef CONFIG_FUNCTION_GRAPH_TRACER
212void 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
243extern unsigned long ftrace_graph_call;
244extern unsigned long ftrace_graph_call_old;
245extern void ftrace_graph_caller_old(void);
246
247static 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
260static 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
278int ftrace_enable_ftrace_graph_caller(void)
279{
280 return ftrace_modify_graph_caller(true);
281}
282
283int 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
60str_a2: .asciz ").\n\nAvailable machine support:\n\nID (hex)\tNAME\n"60str_a2: .asciz ").\n\nAvailable machine support:\n\nID (hex)\tNAME\n"
61str_a3: .asciz "\nPlease check your kernel config and/or bootloader.\n"61str_a3: .asciz "\nPlease check your kernel config and/or bootloader.\n"
62 .align62 .align
63#else
64 b __error
63#endif65#endif
64 66
65/*67/*
arch/arm/kernel/head.S+45−21
@@ -91,6 +91,11 @@ ENTRY(stext) · 90 unmodified lines
91 movs r8, r5 @ invalid machine (r5=0)?91 movs r8, r5 @ invalid machine (r5=0)?
92 THUMB( it eq ) @ force fixup-able long branch encoding92 THUMB( it eq ) @ force fixup-able long branch encoding
93 beq __error_a @ yes, error 'a'93 beq __error_a @ yes, error 'a'
94
95 /*
96 * r1 = machine no, r2 = atags,
97 * r8 = machinfo, r9 = cpuid, r10 = procinfo
98 */
94 bl __vet_atags99 bl __vet_atags
95#ifdef CONFIG_SMP_ON_UP100#ifdef CONFIG_SMP_ON_UP
96 bl __fixup_smp101 bl __fixup_smp
@@ -386,37 +391,32 @@ ENDPROC(__turn_mmu_on) · 289 unmodified lines
386 391
387 392
388#ifdef CONFIG_SMP_ON_UP393#ifdef CONFIG_SMP_ON_UP
394 __INIT
389__fixup_smp:395__fixup_smp:
390 mov r7, #0x00070000396 and r3, r9, #0x000f0000 @ architecture version
391 orr r6, r7, #0xff000000 @ mask 0xff070000397 teq r3, #0x000f0000 @ CPU ID supported?
392 orr r7, r7, #0x41000000 @ val 0x41070000
393 and r0, r9, r6
394 teq r0, r7 @ ARM CPU and ARMv6/v7?
395 bne __fixup_smp_on_up @ no, assume UP398 bne __fixup_smp_on_up @ no, assume UP
396 399
397 orr r6, r6, #0x0000ff00400 bic r3, r9, #0x00ff0000
398 orr r6, r6, #0x000000f0 @ mask 0xff07fff0401 bic r3, r3, #0x0000000f @ mask 0xff00fff0
399 orr r7, r7, #0x0000b000402 mov r4, #0x41000000
400 orr r7, r7, #0x00000020 @ val 0x4107b020403 orr r4, r4, #0x0000b000
401 and r0, r9, r6404 orr r4, r4, #0x00000020 @ val 0x4100b020
402 teq r0, r7 @ ARM 11MPCore?405 teq r3, r4 @ ARM 11MPCore?
403 moveq pc, lr @ yes, assume SMP406 moveq pc, lr @ yes, assume SMP
404 407
405 mrc p15, 0, r0, c0, c0, 5 @ read MPIDR408 mrc p15, 0, r0, c0, c0, 5 @ read MPIDR
406 tst r0, #1 << 31409 and r0, r0, #0xc0000000 @ multiprocessing extensions and
407 movne pc, lr @ bit 31 => SMP410 teq r0, #0x80000000 @ not part of a uniprocessor system?
411 moveq pc, lr @ yes, assume SMP
408 412
409__fixup_smp_on_up:413__fixup_smp_on_up:
410 adr r0, 1f414 adr r0, 1f
411 ldmia r0, {r3, r6, r7}415 ldmia r0, {r3 - r5}
412 sub r3, r0, r3416 sub r3, r0, r3
413 add r6, r6, r3417 add r4, r4, r3
414 add r7, r7, r3418 add r5, r5, r3
4152: cmp r6, r7419 b __do_fixup_smp_on_up
416 ldmia r6!, {r0, r4}
417 strlo r4, [r0, r3]
418 blo 2b
419 mov pc, lr
420ENDPROC(__fixup_smp)420ENDPROC(__fixup_smp)
421 421
422 .align422 .align
@@ -430,7 +430,31 @@ smp_on_up: · 7 unmodified lines
430 ALT_SMP(.long 1)430 ALT_SMP(.long 1)
431 ALT_UP(.long 0)431 ALT_UP(.long 0)
432 .popsection432 .popsection
433#endif
433 434
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.
434#endif444#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
449ENDPROC(__do_fixup_smp_on_up)
450
451ENTRY(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}
458ENDPROC(fixup_smp)
435 459
436#include "head-common.S"460#include "head-common.S"
arch/arm/kernel/hw_breakpoint.c+331−228
@@ -24,6 +24,7 @@ · 23 unmodified lines
24#define pr_fmt(fmt) "hw-breakpoint: " fmt24#define pr_fmt(fmt) "hw-breakpoint: " fmt
25 25
26#include <linux/errno.h>26#include <linux/errno.h>
27#include <linux/hardirq.h>
27#include <linux/perf_event.h>28#include <linux/perf_event.h>
28#include <linux/hw_breakpoint.h>29#include <linux/hw_breakpoint.h>
29#include <linux/smp.h>30#include <linux/smp.h>
@@ -44,6 +45,7 @@ static DEFINE_PER_CPU(struct perf_event *, wp_on_reg[ARM_MAX_WRP]); · 14 unmodified lines
44 45
45/* Number of BRP/WRP registers on this CPU. */46/* Number of BRP/WRP registers on this CPU. */
46static int core_num_brps;47static int core_num_brps;
48static int core_num_reserved_brps;
47static int core_num_wrps;49static int core_num_wrps;
48 50
49/* Debug architecture version. */51/* Debug architecture version. */
@@ -52,87 +54,6 @@ static u8 debug_arch; · 2 unmodified lines
52/* Maximum supported watchpoint length. */54/* Maximum supported watchpoint length. */
53static u8 max_watchpoint_len;55static u8 max_watchpoint_len;
54 56
55/* Determine number of BRP registers available. */
56static 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. */
64static 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
92int 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. */
110static 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? */
126static int core_has_mismatch_bps(void)
127{
128 return debug_arch >= ARM_DEBUG_ARCH_V7_ECP14 && core_num_brps > 1;
129}
130
131u8 arch_get_debug_arch(void)
132{
133 return debug_arch;
134}
135
136#define READ_WB_REG_CASE(OP2, M, VAL) \57#define READ_WB_REG_CASE(OP2, M, VAL) \
137 case ((OP2 << 4) + M): \58 case ((OP2 << 4) + M): \
138 ARM_DBG_READ(c ## M, OP2, VAL); \59 ARM_DBG_READ(c ## M, OP2, VAL); \
@@ -210,6 +131,99 @@ static void write_wb_reg(int n, u32 val) · 71 unmodified lines
210 isb();131 isb();
211}132}
212 133
134/* Determine debug architecture. */
135static 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
149u8 arch_get_debug_arch(void)
150{
151 return debug_arch;
152}
153
154static 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. */
161static 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? */
169static 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. */
176static 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. */
211static 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. */
219static 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
213/*227/*
214 * In order to access the breakpoint/watchpoint control registers,228 * In order to access the breakpoint/watchpoint control registers,
215 * we must be running in debug monitor mode. Unfortunately, we can229 * we must be running in debug monitor mode. Unfortunately, we can
@@ -230,8 +244,12 @@ static int enable_monitor_mode(void) · 14 unmodified lines
230 goto out;244 goto out;
231 }245 }
232 246
247 /* If monitor mode is already enabled, just return. */
248 if (dscr & ARM_DSCR_MDBGEN)
249 goto out;
250
233 /* Write to the corresponding DSCR. */251 /* Write to the corresponding DSCR. */
234 switch (debug_arch) {252 switch (get_debug_arch()) {
235 case ARM_DEBUG_ARCH_V6:253 case ARM_DEBUG_ARCH_V6:
236 case ARM_DEBUG_ARCH_V6_1:254 case ARM_DEBUG_ARCH_V6_1:
237 ARM_DBG_WRITE(c1, 0, (dscr | ARM_DSCR_MDBGEN));255 ARM_DBG_WRITE(c1, 0, (dscr | ARM_DSCR_MDBGEN));
@@ -246,15 +264,33 @@ static int enable_monitor_mode(void) · 8 unmodified lines
246 264
247 /* Check that the write made it through. */265 /* Check that the write made it through. */
248 ARM_DBG_READ(c1, 0, dscr);266 ARM_DBG_READ(c1, 0, dscr);
249 if (WARN_ONCE(!(dscr & ARM_DSCR_MDBGEN),267 if (!(dscr & ARM_DSCR_MDBGEN))
250 "failed to enable monitor mode.")) {
251 ret = -EPERM;268 ret = -EPERM;
252 }
253 269
254out:270out:
255 return ret;271 return ret;
256}272}
257 273
274int 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
258/*294/*
259 * Check if 8-bit byte-address select is available.295 * Check if 8-bit byte-address select is available.
260 * This clobbers WRP 0.296 * This clobbers WRP 0.
@@ -268,9 +304,6 @@ static u8 get_max_wp_len(void) · 7 unmodified lines
268 if (debug_arch < ARM_DEBUG_ARCH_V7_ECP14)304 if (debug_arch < ARM_DEBUG_ARCH_V7_ECP14)
269 goto out;305 goto out;
270 306
271 if (enable_monitor_mode())
272 goto out;
273
274 memset(&ctrl, 0, sizeof(ctrl));307 memset(&ctrl, 0, sizeof(ctrl));
275 ctrl.len = ARM_BREAKPOINT_LEN_8;308 ctrl.len = ARM_BREAKPOINT_LEN_8;
276 ctrl_reg = encode_ctrl_reg(ctrl);309 ctrl_reg = encode_ctrl_reg(ctrl);
@@ -289,23 +322,6 @@ u8 arch_get_max_wp_len(void) · 12 unmodified lines
289 return max_watchpoint_len;322 return max_watchpoint_len;
290}323}
291 324
292/*
293 * Handler for reactivating a suspended watchpoint when the single
294 * step `mismatch' breakpoint is triggered.
295 */
296static 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
304static int bp_is_single_step(struct perf_event *bp)
305{
306 return bp->overflow_handler == wp_single_step_handler;
307}
308
309/*325/*
310 * Install a perf counter breakpoint.326 * Install a perf counter breakpoint.
311 */327 */
@@ -314,30 +330,41 @@ int arch_install_hw_breakpoint(struct perf_event *bp) · 2 unmodified lines
314 struct arch_hw_breakpoint *info = counter_arch_bp(bp);330 struct arch_hw_breakpoint *info = counter_arch_bp(bp);
315 struct perf_event **slot, **slots;331 struct perf_event **slot, **slots;
316 int i, max_slots, ctrl_base, val_base, ret = 0;332 int i, max_slots, ctrl_base, val_base, ret = 0;
333 u32 addr, ctrl;
317 334
318 /* Ensure that we are in monitor mode and halting mode is disabled. */335 /* Ensure that we are in monitor mode and halting mode is disabled. */
319 ret = enable_monitor_mode();336 ret = enable_monitor_mode();
320 if (ret)337 if (ret)
321 goto out;338 goto out;
322 339
340 addr = info->address;
341 ctrl = encode_ctrl_reg(info->ctrl) | 0x1;
342
323 if (info->ctrl.type == ARM_BREAKPOINT_EXECUTE) {343 if (info->ctrl.type == ARM_BREAKPOINT_EXECUTE) {
324 /* Breakpoint */344 /* Breakpoint */
325 ctrl_base = ARM_BASE_BCR;345 ctrl_base = ARM_BASE_BCR;
326 val_base = ARM_BASE_BVR;346 val_base = ARM_BASE_BVR;
327 slots = __get_cpu_var(bp_on_reg);347 slots = (struct perf_event **)__get_cpu_var(bp_on_reg);
328 max_slots = core_num_brps - 1;348 max_slots = core_num_brps;
329 349 if (info->step_ctrl.enabled) {
330 if (bp_is_single_step(bp)) {350 /* Override the breakpoint data with the step data. */
331 info->ctrl.mismatch = 1;351 addr = info->trigger & ~0x3;
332 i = max_slots;352 ctrl = encode_ctrl_reg(info->step_ctrl);
333 slots[i] = bp;
334 goto setup;
335 }353 }
336 } else {354 } else {
337 /* Watchpoint */355 /* Watchpoint */
338 ctrl_base = ARM_BASE_WCR;356 if (info->step_ctrl.enabled) {
339 val_base = ARM_BASE_WVR;357 /* Install into the reserved breakpoint region. */
340 slots = __get_cpu_var(wp_on_reg);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);
341 max_slots = core_num_wrps;368 max_slots = core_num_wrps;
342 }369 }
343 370
@@ -355,12 +382,11 @@ int arch_install_hw_breakpoint(struct perf_event *bp) · 11 unmodified lines
355 goto out;382 goto out;
356 }383 }
357 384
358setup:
359 /* Setup the address register. */385 /* Setup the address register. */
360 write_wb_reg(val_base + i, info->address);386 write_wb_reg(val_base + i, addr);
361 387
362 /* Setup the control register. */388 /* 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);
364 390
365out:391out:
366 return ret;392 return ret;
@@ -375,18 +401,15 @@ void arch_uninstall_hw_breakpoint(struct perf_event *bp) · 8 unmodified lines
375 if (info->ctrl.type == ARM_BREAKPOINT_EXECUTE) {401 if (info->ctrl.type == ARM_BREAKPOINT_EXECUTE) {
376 /* Breakpoint */402 /* Breakpoint */
377 base = ARM_BASE_BCR;403 base = ARM_BASE_BCR;
378 slots = __get_cpu_var(bp_on_reg);404 slots = (struct perf_event **)__get_cpu_var(bp_on_reg);
379 max_slots = core_num_brps - 1;405 max_slots = core_num_brps;
380
381 if (bp_is_single_step(bp)) {
382 i = max_slots;
383 slots[i] = NULL;
384 goto reset;
385 }
386 } else {406 } else {
387 /* Watchpoint */407 /* Watchpoint */
388 base = ARM_BASE_WCR;408 if (info->step_ctrl.enabled)
389 slots = __get_cpu_var(wp_on_reg);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);
390 max_slots = core_num_wrps;413 max_slots = core_num_wrps;
391 }414 }
392 415
@@ -403,7 +426,6 @@ void arch_uninstall_hw_breakpoint(struct perf_event *bp) · 10 unmodified lines
403 if (WARN_ONCE(i == max_slots, "Can't find any breakpoint slot"))426 if (WARN_ONCE(i == max_slots, "Can't find any breakpoint slot"))
404 return;427 return;
405 428
406reset:
407 /* Reset the control register. */429 /* Reset the control register. */
408 write_wb_reg(base + i, 0);430 write_wb_reg(base + i, 0);
409}431}
@@ -537,12 +559,23 @@ static int arch_build_bp_info(struct perf_event *bp) · 127 unmodified lines
537 return -EINVAL;559 return -EINVAL;
538 }560 }
539 561
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
540 /* Address */573 /* Address */
541 info->address = bp->attr.bp_addr;574 info->address = bp->attr.bp_addr;
542 575
543 /* Privilege */576 /* Privilege */
544 info->ctrl.privilege = ARM_BREAKPOINT_USER;577 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))
546 info->ctrl.privilege |= ARM_BREAKPOINT_PRIV;579 info->ctrl.privilege |= ARM_BREAKPOINT_PRIV;
547 580
548 /* Enabled? */581 /* Enabled? */
@@ -561,7 +594,7 @@ int arch_validate_hwbkpt_settings(struct perf_event *bp) · 12 unmodified lines
561{594{
562 struct arch_hw_breakpoint *info = counter_arch_bp(bp);595 struct arch_hw_breakpoint *info = counter_arch_bp(bp);
563 int ret = 0;596 int ret = 0;
564 u32 bytelen, max_len, offset, alignment_mask = 0x3;597 u32 offset, alignment_mask = 0x3;
565 598
566 /* Build the arch_hw_breakpoint. */599 /* Build the arch_hw_breakpoint. */
567 ret = arch_build_bp_info(bp);600 ret = arch_build_bp_info(bp);
@@ -571,84 +604,85 @@ int arch_validate_hwbkpt_settings(struct perf_event *bp) · 3 unmodified lines
571 /* Check address alignment. */604 /* Check address alignment. */
572 if (info->ctrl.len == ARM_BREAKPOINT_LEN_8)605 if (info->ctrl.len == ARM_BREAKPOINT_LEN_8)
573 alignment_mask = 0x7;606 alignment_mask = 0x7;
574 if (info->address & alignment_mask) {607 offset = info->address & alignment_mask;
575 /*608 switch (offset) {
576 * Try to fix the alignment. This may result in a length609 case 0:
577 * that is too large, so we must check for that.610 /* Aligned */
578 */611 break;
579 bytelen = get_hbp_len(info->ctrl.len);612 case 1:
580 max_len = info->ctrl.type == ARM_BREAKPOINT_EXECUTE ? 4 :613 /* Allow single byte watchpoint. */
581 max_watchpoint_len;614 if (info->ctrl.len == ARM_BREAKPOINT_LEN_1)
582 615 break;
583 if (max_len >= 8)616 case 2:
584 offset = info->address & 0x7;617 /* Allow halfword watchpoints and breakpoints. */
585 else618 if (info->ctrl.len == ARM_BREAKPOINT_LEN_2)
586 offset = info->address & 0x3;619 break;
587 620 default:
588 if (bytelen > (1 << ((max_len - (offset + 1)) >> 1))) {621 ret = -EINVAL;
589 ret = -EFBIG;622 goto out;
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);
598 }623 }
599 624
625 info->address &= ~alignment_mask;
626 info->ctrl.len <<= offset;
627
600 /*628 /*
601 * Currently we rely on an overflow handler to take629 * Currently we rely on an overflow handler to take
602 * care of single-stepping the breakpoint when it fires.630 * care of single-stepping the breakpoint when it fires.
603 * In the case of userspace breakpoints on a core with V7 debug,631 * 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.
605 */634 */
606 if (WARN_ONCE(!bp->overflow_handler &&635 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),
608 "overflow handler required but none found")) {638 "overflow handler required but none found")) {
609 ret = -EINVAL;639 ret = -EINVAL;
610 goto out;
611 }640 }
612out:641out:
613 return ret;642 return ret;
614}643}
615 644
616static void update_mismatch_flag(int idx, int flag)645/*
646 * Enable/disable single-stepping over the breakpoint bp at address addr.
647 */
648static void enable_single_step(struct perf_event *bp, u32 addr)
617{649{
618 struct perf_event *bp = __get_cpu_var(bp_on_reg[idx]);650 struct arch_hw_breakpoint *info = counter_arch_bp(bp);
619 struct arch_hw_breakpoint *info;
620
621 if (bp == NULL)
622 return;
623 651
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}
625 661
626 /* Update the mismatch field to enter/exit `single-step' mode */662static void disable_single_step(struct perf_event *bp)
627 if (!bp->overflow_handler && info->ctrl.mismatch != flag) {663{
628 info->ctrl.mismatch = flag;664 arch_uninstall_hw_breakpoint(bp);
629 write_wb_reg(ARM_BASE_BCR + idx, encode_ctrl_reg(info->ctrl) | 0x1);665 counter_arch_bp(bp)->step_ctrl.enabled = 0;
630 }666 arch_install_hw_breakpoint(bp);
631}667}
632 668
633static void watchpoint_handler(unsigned long unknown, struct pt_regs *regs)669static void watchpoint_handler(unsigned long unknown, struct pt_regs *regs)
634{670{
635 int i;671 int i;
636 struct perf_event *bp, **slots = __get_cpu_var(wp_on_reg);672 struct perf_event *wp, **slots;
637 struct arch_hw_breakpoint *info;673 struct arch_hw_breakpoint *info;
638 struct perf_event_attr attr;674
675 slots = (struct perf_event **)__get_cpu_var(wp_on_reg);
639 676
640 /* Without a disassembler, we can only handle 1 watchpoint. */677 /* Without a disassembler, we can only handle 1 watchpoint. */
641 BUG_ON(core_num_wrps > 1);678 BUG_ON(core_num_wrps > 1);
642 679
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
648 for (i = 0; i < core_num_wrps; ++i) {680 for (i = 0; i < core_num_wrps; ++i) {
649 rcu_read_lock();681 rcu_read_lock();
650 682
651 if (slots[i] == NULL) {683 wp = slots[i];
684
685 if (wp == NULL) {
652 rcu_read_unlock();686 rcu_read_unlock();
653 continue;687 continue;
654 }688 }
@@ -658,24 +692,51 @@ static void watchpoint_handler(unsigned long unknown, struct pt_regs *regs) · 3 unmodified lines
658 * single watchpoint, we can set the trigger to the lowest692 * single watchpoint, we can set the trigger to the lowest
659 * possible faulting address.693 * possible faulting address.
660 */694 */
661 info = counter_arch_bp(slots[i]);695 info = counter_arch_bp(wp);
662 info->trigger = slots[i]->attr.bp_addr;696 info->trigger = wp->attr.bp_addr;
663 pr_debug("watchpoint fired: address = 0x%x\n", info->trigger);697 pr_debug("watchpoint fired: address = 0x%x\n", info->trigger);
664 perf_bp_event(slots[i], regs);698 perf_bp_event(wp, regs);
665 699
666 /*700 /*
667 * If no overflow handler is present, insert a temporary701 * If no overflow handler is present, insert a temporary
668 * mismatch breakpoint so we can single-step over the702 * mismatch breakpoint so we can single-step over the
669 * watchpoint trigger.703 * watchpoint trigger.
670 */704 */
671 if (!slots[i]->overflow_handler) {705 if (!wp->overflow_handler)
672 bp = register_user_hw_breakpoint(&attr,706 enable_single_step(wp, instruction_pointer(regs));
673 wp_single_step_handler,707
674 current);708 rcu_read_unlock();
675 counter_arch_bp(bp)->suspended_wp = slots[i];709 }
676 perf_event_disable(slots[i]);710}
677 }711
712static 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);
678 738
739unlock:
679 rcu_read_unlock();740 rcu_read_unlock();
680 }741 }
681}742}
@@ -683,62 +744,69 @@ static void watchpoint_handler(unsigned long unknown, struct pt_regs *regs) · 1 unmodified line
683static void breakpoint_handler(unsigned long unknown, struct pt_regs *regs)744static void breakpoint_handler(unsigned long unknown, struct pt_regs *regs)
684{745{
685 int i;746 int i;
686 int mismatch;
687 u32 ctrl_reg, val, addr;747 u32 ctrl_reg, val, addr;
688 struct perf_event *bp, **slots = __get_cpu_var(bp_on_reg);748 struct perf_event *bp, **slots;
689 struct arch_hw_breakpoint *info;749 struct arch_hw_breakpoint *info;
690 struct arch_hw_breakpoint_ctrl ctrl;750 struct arch_hw_breakpoint_ctrl ctrl;
691 751
752 slots = (struct perf_event **)__get_cpu_var(bp_on_reg);
753
692 /* The exception entry code places the amended lr in the PC. */754 /* The exception entry code places the amended lr in the PC. */
693 addr = regs->ARM_pc;755 addr = regs->ARM_pc;
694 756
757 /* Check the currently installed breakpoints first. */
695 for (i = 0; i < core_num_brps; ++i) {758 for (i = 0; i < core_num_brps; ++i) {
696 rcu_read_lock();759 rcu_read_lock();
697 760
698 bp = slots[i];761 bp = slots[i];
699 762
700 if (bp == NULL) {763 if (bp == NULL)
701 rcu_read_unlock();764 goto unlock;
702 continue;
703 }
704 765
705 mismatch = 0;766 info = counter_arch_bp(bp);
706 767
707 /* Check if the breakpoint value matches. */768 /* Check if the breakpoint value matches. */
708 val = read_wb_reg(ARM_BASE_BVR + i);769 val = read_wb_reg(ARM_BASE_BVR + i);
709 if (val != (addr & ~0x3))770 if (val != (addr & ~0x3))
710 goto unlock;771 goto mismatch;
711 772
712 /* Possible match, check the byte address select to confirm. */773 /* Possible match, check the byte address select to confirm. */
713 ctrl_reg = read_wb_reg(ARM_BASE_BCR + i);774 ctrl_reg = read_wb_reg(ARM_BASE_BCR + i);
714 decode_ctrl_reg(ctrl_reg, &ctrl);775 decode_ctrl_reg(ctrl_reg, &ctrl);
715 if ((1 << (addr & 0x3)) & ctrl.len) {776 if ((1 << (addr & 0x3)) & ctrl.len) {
716 mismatch = 1;
717 info = counter_arch_bp(bp);
718 info->trigger = addr;777 info->trigger = addr;
719 }
720
721unlock:
722 if ((mismatch && !info->ctrl.mismatch) || bp_is_single_step(bp)) {
723 pr_debug("breakpoint fired: address = 0x%x\n", addr);778 pr_debug("breakpoint fired: address = 0x%x\n", addr);
724 perf_bp_event(bp, regs);779 perf_bp_event(bp, regs);
780 if (!bp->overflow_handler)
781 enable_single_step(bp, addr);
782 goto unlock;
725 }783 }
726 784
727 update_mismatch_flag(i, mismatch);785mismatch:
786 /* If we're stepping a breakpoint, it can now be restored. */
787 if (info->step_ctrl.enabled)
788 disable_single_step(bp);
789unlock:
728 rcu_read_unlock();790 rcu_read_unlock();
729 }791 }
792
793 /* Handle any pending watchpoint single-step breakpoints. */
794 watchpoint_single_step_handler(addr);
730}795}
731 796
732/*797/*
733 * Called from either the Data Abort Handler [watchpoint] or the798 * Called from either the Data Abort Handler [watchpoint] or the
734 * Prefetch Abort Handler [breakpoint].799 * Prefetch Abort Handler [breakpoint] with preemption disabled.
735 */800 */
736static int hw_breakpoint_pending(unsigned long addr, unsigned int fsr,801static int hw_breakpoint_pending(unsigned long addr, unsigned int fsr,
737 struct pt_regs *regs)802 struct pt_regs *regs)
738{803{
739 int ret = 1; /* Unhandled fault. */804 int ret = 0;
740 u32 dscr;805 u32 dscr;
741 806
807 /* We must be called with preemption disabled. */
808 WARN_ON(preemptible());
809
742 /* We only handle watchpoints and hardware breakpoints. */810 /* We only handle watchpoints and hardware breakpoints. */
743 ARM_DBG_READ(c1, 0, dscr);811 ARM_DBG_READ(c1, 0, dscr);
744 812
@@ -753,25 +821,47 @@ static int hw_breakpoint_pending(unsigned long addr, unsigned int fsr, · 8 unmodified lines
753 watchpoint_handler(addr, regs);821 watchpoint_handler(addr, regs);
754 break;822 break;
755 default:823 default:
756 goto out;824 ret = 1; /* Unhandled fault. */
757 }825 }
758 826
759 ret = 0;827 /*
760out:828 * Re-enable preemption after it was disabled in the
829 * low-level exception handling code.
830 */
831 preempt_enable();
832
761 return ret;833 return ret;
762}834}
763 835
764/*836/*
765 * One-time initialisation.837 * One-time initialisation.
766 */838 */
767static void __init reset_ctrl_regs(void *unused)839static void reset_ctrl_regs(void *unused)
768{840{
769 int i;841 int i;
770 842
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
771 if (enable_monitor_mode())860 if (enable_monitor_mode())
772 return;861 return;
773 862
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) {
775 write_wb_reg(ARM_BASE_BCR + i, 0UL);865 write_wb_reg(ARM_BASE_BCR + i, 0UL);
776 write_wb_reg(ARM_BASE_BVR + i, 0UL);866 write_wb_reg(ARM_BASE_BVR + i, 0UL);
777 }867 }
@@ -782,45 +872,57 @@ static void __init reset_ctrl_regs(void *unused) · 4 unmodified lines
782 }872 }
783}873}
784 874
875static 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
883static struct notifier_block __cpuinitdata dbg_reset_nb = {
884 .notifier_call = dbg_reset_notify,
885};
886
785static int __init arch_hw_breakpoint_init(void)887static int __init arch_hw_breakpoint_init(void)
786{888{
787 int ret = 0;
788 u32 dscr;889 u32 dscr;
789 890
790 debug_arch = get_debug_arch();891 debug_arch = get_debug_arch();
791 892
792 if (debug_arch > ARM_DEBUG_ARCH_V7_ECP14) {893 if (!debug_arch_supported()) {
793 pr_info("debug architecture 0x%x unsupported.\n", debug_arch);894 pr_info("debug architecture 0x%x unsupported.\n", debug_arch);
794 ret = -ENODEV;895 return 0;
795 goto out;
796 }896 }
797 897
798 /* Determine how many BRPs/WRPs are available. */898 /* Determine how many BRPs/WRPs are available. */
799 core_num_brps = get_num_brps();899 core_num_brps = get_num_brps();
900 core_num_reserved_brps = get_num_reserved_brps();
800 core_num_wrps = get_num_wrps();901 core_num_wrps = get_num_wrps();
801 902
802 pr_info("found %d breakpoint and %d watchpoint registers.\n",903 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);
804 909
805 if (core_has_mismatch_bps())910 /*
806 pr_info("1 breakpoint reserved for watchpoint single-step.\n");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);
807 915
808 ARM_DBG_READ(c1, 0, dscr);916 ARM_DBG_READ(c1, 0, dscr);
809 if (dscr & ARM_DSCR_HDBGEN) {917 if (dscr & ARM_DSCR_HDBGEN) {
918 max_watchpoint_len = 4;
810 pr_warning("halting debug mode enabled. Assuming maximum "919 pr_warning("halting debug mode enabled. Assuming maximum "
811 "watchpoint size of 4 bytes.");920 "watchpoint size of %u bytes.", max_watchpoint_len);
812 } else {921 } else {
813 /* Work out the maximum supported watchpoint length. */922 /* Work out the maximum supported watchpoint length. */
814 max_watchpoint_len = get_max_wp_len();923 max_watchpoint_len = get_max_wp_len();
815 pr_info("maximum watchpoint size is %u bytes.\n",924 pr_info("maximum watchpoint size is %u bytes.\n",
816 max_watchpoint_len);925 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);
824 }926 }
825 927
826 /* Register debug fault handler. */928 /* Register debug fault handler. */
@@ -829,8 +931,9 @@ static int __init arch_hw_breakpoint_init(void) · 2 unmodified lines
829 hook_ifault_code(2, hw_breakpoint_pending, SIGTRAP, TRAP_HWBKPT,931 hook_ifault_code(2, hw_breakpoint_pending, SIGTRAP, TRAP_HWBKPT,
830 "breakpoint debug exception");932 "breakpoint debug exception");
831 933
832out:934 /* Register hotplug notifier. */
833 return ret;935 register_cpu_notifier(&dbg_reset_nb);
936 return 0;
834}937}
835arch_initcall(arch_hw_breakpoint_init);938arch_initcall(arch_hw_breakpoint_init);
836 939
arch/arm/kernel/irq.c+33−18
@@ -35,8 +35,10 @@ · 34 unmodified lines
35#include <linux/list.h>35#include <linux/list.h>
36#include <linux/kallsyms.h>36#include <linux/kallsyms.h>
37#include <linux/proc_fs.h>37#include <linux/proc_fs.h>
38#include <linux/ftrace.h>
38 39
39#include <asm/system.h>40#include <asm/system.h>
41#include <asm/mach/arch.h>
40#include <asm/mach/irq.h>42#include <asm/mach/irq.h>
41#include <asm/mach/time.h>43#include <asm/mach/time.h>
42 44
@@ -47,8 +49,6 @@ · 4 unmodified lines
47#define irq_finish(irq) do { } while (0)49#define irq_finish(irq) do { } while (0)
48#endif50#endif
49 51
50unsigned int arch_nr_irqs;
51void (*init_arch_irq)(void) __initdata = NULL;
52unsigned long irq_err_count;52unsigned long irq_err_count;
53 53
54int show_interrupts(struct seq_file *p, void *v)54int show_interrupts(struct seq_file *p, void *v)
@@ -57,11 +57,20 @@ int show_interrupts(struct seq_file *p, void *v) · 2 unmodified lines
57 struct irq_desc *desc;57 struct irq_desc *desc;
58 struct irqaction * action;58 struct irqaction * action;
59 unsigned long flags;59 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
60 69
61 if (i == 0) {70 if (i == 0) {
62 char cpuname[12];71 char cpuname[12];
63 72
64 seq_printf(p, " ");73 seq_printf(p, "%*s ", prec, "");
65 for_each_present_cpu(cpu) {74 for_each_present_cpu(cpu) {
66 sprintf(cpuname, "CPU%d", cpu);75 sprintf(cpuname, "CPU%d", cpu);
67 seq_printf(p, " %10s", cpuname);76 seq_printf(p, " %10s", cpuname);
@@ -76,10 +85,10 @@ int show_interrupts(struct seq_file *p, void *v) · 8 unmodified lines
76 if (!action)85 if (!action)
77 goto unlock;86 goto unlock;
78 87
79 seq_printf(p, "%3d: ", i);88 seq_printf(p, "%*d: ", prec, i);
80 for_each_present_cpu(cpu)89 for_each_present_cpu(cpu)
81 seq_printf(p, "%10u ", kstat_irqs_cpu(i, cpu));90 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 ? : "-");
83 seq_printf(p, " %s", action->name);92 seq_printf(p, " %s", action->name);
84 for (action = action->next; action; action = action->next)93 for (action = action->next; action; action = action->next)
85 seq_printf(p, ", %s", action->name);94 seq_printf(p, ", %s", action->name);
@@ -89,13 +98,15 @@ unlock: · 3 unmodified lines
89 raw_spin_unlock_irqrestore(&desc->lock, flags);98 raw_spin_unlock_irqrestore(&desc->lock, flags);
90 } else if (i == nr_irqs) {99 } else if (i == nr_irqs) {
91#ifdef CONFIG_FIQ100#ifdef CONFIG_FIQ
92 show_fiq_list(p, v);101 show_fiq_list(p, prec);
93#endif102#endif
94#ifdef CONFIG_SMP103#ifdef CONFIG_SMP
95 show_ipi_list(p);104 show_ipi_list(p, prec);
96 show_local_irqs(p);105#endif
106#ifdef CONFIG_LOCAL_TIMERS
107 show_local_irqs(p, prec);
97#endif108#endif
98 seq_printf(p, "Err: %10lu\n", irq_err_count);109 seq_printf(p, "%*s: %10lu\n", prec, "Err", irq_err_count);
99 }110 }
100 return 0;111 return 0;
101}112}
@@ -105,7 +116,8 @@ unlock: · 3 unmodified lines
105 * come via this function. Instead, they should provide their116 * come via this function. Instead, they should provide their
106 * own 'handler'117 * own 'handler'
107 */118 */
108asmlinkage void __exception asm_do_IRQ(unsigned int irq, struct pt_regs *regs)119asmlinkage void __exception_irq_entry
120asm_do_IRQ(unsigned int irq, struct pt_regs *regs)
109{121{
110 struct pt_regs *old_regs = set_irq_regs(regs);122 struct pt_regs *old_regs = set_irq_regs(regs);
111 123
@@ -154,13 +166,13 @@ void set_irq_flags(unsigned int irq, unsigned int iflags) · 42 unmodified lines
154 166
155void __init init_IRQ(void)167void __init init_IRQ(void)
156{168{
157 init_arch_irq();169 machine_desc->init_irq();
158}170}
159 171
160#ifdef CONFIG_SPARSE_IRQ172#ifdef CONFIG_SPARSE_IRQ
161int __init arch_probe_nr_irqs(void)173int __init arch_probe_nr_irqs(void)
162{174{
163 nr_irqs = arch_nr_irqs ? arch_nr_irqs : NR_IRQS;175 nr_irqs = machine_desc->nr_irqs ? machine_desc->nr_irqs : NR_IRQS;
164 return nr_irqs;176 return nr_irqs;
165}177}
166#endif178#endif
@@ -169,10 +181,11 @@ int __init arch_probe_nr_irqs(void) · 2 unmodified lines
169 181
170static void route_irq(struct irq_desc *desc, unsigned int irq, unsigned int cpu)182static void route_irq(struct irq_desc *desc, unsigned int irq, unsigned int cpu)
171{183{
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);
173 185
174 raw_spin_lock_irq(&desc->lock);186 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);
176 raw_spin_unlock_irq(&desc->lock);189 raw_spin_unlock_irq(&desc->lock);
177}190}
178 191
@@ -187,16 +200,18 @@ void migrate_irqs(void) · 8 unmodified lines
187 struct irq_desc *desc;200 struct irq_desc *desc;
188 201
189 for_each_irq_desc(i, desc) {202 for_each_irq_desc(i, desc) {
190 if (desc->node == cpu) {203 struct irq_data *d = &desc->irq_data;
191 unsigned int newcpu = cpumask_any_and(desc->affinity,204
205 if (d->node == cpu) {
206 unsigned int newcpu = cpumask_any_and(d->affinity,
192 cpu_online_mask);207 cpu_online_mask);
193 if (newcpu >= nr_cpu_ids) {208 if (newcpu >= nr_cpu_ids) {
194 if (printk_ratelimit())209 if (printk_ratelimit())
195 printk(KERN_INFO "IRQ%u no longer affine to CPU%u\n",210 printk(KERN_INFO "IRQ%u no longer affine to CPU%u\n",
196 i, cpu);211 i, cpu);
197 212
198 cpumask_setall(desc->affinity);213 cpumask_setall(d->affinity);
199 newcpu = cpumask_any_and(desc->affinity,214 newcpu = cpumask_any_and(d->affinity,
200 cpu_online_mask);215 cpu_online_mask);
201 }216 }
202 217
arch/arm/kernel/iwmmxt.S+42−13
@@ -19,6 +19,14 @@ · 18 unmodified lines
19#include <asm/thread_info.h>19#include <asm/thread_info.h>
20#include <asm/asm-offsets.h>20#include <asm/asm-offsets.h>
21 21
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
22#define MMX_WR0 (0x00)30#define MMX_WR0 (0x00)
23#define MMX_WR1 (0x08)31#define MMX_WR1 (0x08)
24#define MMX_WR2 (0x10)32#define MMX_WR2 (0x10)
@@ -58,11 +66,17 @@ · 33 unmodified lines
58 66
59ENTRY(iwmmxt_task_enable)67ENTRY(iwmmxt_task_enable)
60 68
61 mrc p15, 0, r2, c15, c1, 069 XSC(mrc p15, 0, r2, c15, c1, 0)
62 tst r2, #0x3 @ CP0 and CP1 accessible?70 PJ4(mrc p15, 0, r2, c1, c0, 2)
71 @ CP0 and CP1 accessible?
72 XSC(tst r2, #0x3)
73 PJ4(tst r2, #0xf)
63 movne pc, lr @ if so no business here74 movne pc, lr @ if so no business here
64 orr r2, r2, #0x3 @ enable access to CP0 and CP175 @ enable access to CP0 and CP1
65 mcr p15, 0, r2, c15, c1, 076 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)
66 80
67 ldr r3, =concan_owner81 ldr r3, =concan_owner
68 add r0, r10, #TI_IWMMXT_STATE @ get task Concan save area82 add r0, r10, #TI_IWMMXT_STATE @ get task Concan save area
@@ -179,17 +193,26 @@ ENTRY(iwmmxt_task_disable) · 110 unmodified lines
179 teqne r1, r2 @ or specified one?193 teqne r1, r2 @ or specified one?
180 bne 1f @ no: quit194 bne 1f @ no: quit
181 195
182 mrc p15, 0, r4, c15, c1, 0196 @ enable access to CP0 and CP1
183 orr r4, r4, #0x3 @ enable access to CP0 and CP1197 XSC(mrc p15, 0, r4, c15, c1, 0)
184 mcr p15, 0, r4, c15, c1, 0198 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
185 mov r0, #0 @ nothing to load204 mov r0, #0 @ nothing to load
186 str r0, [r3] @ no more current owner205 str r0, [r3] @ no more current owner
187 mrc p15, 0, r2, c2, c0, 0206 mrc p15, 0, r2, c2, c0, 0
188 mov r2, r2 @ cpwait207 mov r2, r2 @ cpwait
189 bl concan_save208 bl concan_save
190 209
191 bic r4, r4, #0x3 @ disable access to CP0 and CP1210 @ disable access to CP0 and CP1
192 mcr p15, 0, r4, c15, c1, 0211 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
193 mrc p15, 0, r2, c2, c0, 0216 mrc p15, 0, r2, c2, c0, 0
194 mov r2, r2 @ cpwait217 mov r2, r2 @ cpwait
195 218
@@ -277,8 +300,11 @@ ENTRY(iwmmxt_task_restore) · 81 unmodified lines
277 */300 */
278ENTRY(iwmmxt_task_switch)301ENTRY(iwmmxt_task_switch)
279 302
280 mrc p15, 0, r1, c15, c1, 0303 XSC(mrc p15, 0, r1, c15, c1, 0)
281 tst r1, #0x3 @ CP0 and CP1 accessible?304 PJ4(mrc p15, 0, r1, c1, c0, 2)
305 @ CP0 and CP1 accessible?
306 XSC(tst r1, #0x3)
307 PJ4(tst r1, #0xf)
282 bne 1f @ yes: block them for next task308 bne 1f @ yes: block them for next task
283 309
284 ldr r2, =concan_owner310 ldr r2, =concan_owner
@@ -287,8 +313,11 @@ ENTRY(iwmmxt_task_switch) · 2 unmodified lines
287 teq r2, r3 @ next task owns it?313 teq r2, r3 @ next task owns it?
288 movne pc, lr @ no: leave Concan disabled314 movne pc, lr @ no: leave Concan disabled
289 315
2901: eor r1, r1, #3 @ flip Concan access3161: @ flip Conan access
291 mcr p15, 0, r1, c15, c1, 0317 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)
292 321
293 mrc p15, 0, r1, c2, c0, 0322 mrc p15, 0, r1, c2, c0, 0
294 sub pc, lr, r1, lsr #32 @ cpwait and return323 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
1437 1437
1438 return space_cccc_1100_010x(insn, asi);1438 return space_cccc_1100_010x(insn, asi);
1439 1439
1440 } else if ((insn & 0x0e000000) == 0x0c400000) {1440 } else if ((insn & 0x0e000000) == 0x0c000000) {
1441 1441
1442 return space_cccc_110x(insn, asi);1442 return space_cccc_110x(insn, asi);
1443 1443
arch/arm/kernel/machine_kexec.c+30−0
@@ -23,6 +23,8 @@ extern unsigned long kexec_indirection_page; · 22 unmodified lines
23extern unsigned long kexec_mach_type;23extern unsigned long kexec_mach_type;
24extern unsigned long kexec_boot_atags;24extern unsigned long kexec_boot_atags;
25 25
26static atomic_t waiting_for_crash_ipi;
27
26/*28/*
27 * Provide a dummy crash_notes definition while crash dump arrives to arm.29 * Provide a dummy crash_notes definition while crash dump arrives to arm.
28 * This prevents breakage of crash_notes attribute in kernel/ksysfs.c.30 * 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
37{39{
38}40}
39 41
42void 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
40void machine_crash_shutdown(struct pt_regs *regs)57void machine_crash_shutdown(struct pt_regs *regs)
41{58{
59 unsigned long msecs;
60
42 local_irq_disable();61 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
43 crash_save_cpu(regs, smp_processor_id());73 crash_save_cpu(regs, smp_processor_id());
44 74
45 printk(KERN_INFO "Loading crashdump kernel...\n");75 printk(KERN_INFO "Loading crashdump kernel...\n");
arch/arm/kernel/module.c+77−66
@@ -22,6 +22,7 @@ · 21 unmodified lines
22 22
23#include <asm/pgtable.h>23#include <asm/pgtable.h>
24#include <asm/sections.h>24#include <asm/sections.h>
25#include <asm/smp_plat.h>
25#include <asm/unwind.h>26#include <asm/unwind.h>
26 27
27#ifdef CONFIG_XIP_KERNEL28#ifdef CONFIG_XIP_KERNEL
@@ -38,17 +39,9 @@ · 10 unmodified lines
38#ifdef CONFIG_MMU39#ifdef CONFIG_MMU
39void *module_alloc(unsigned long size)40void *module_alloc(unsigned long size)
40{41{
41 struct vm_struct *area;42 return __vmalloc_node_range(size, 1, MODULES_VADDR, MODULES_END,
42 43 GFP_KERNEL, PAGE_KERNEL_EXEC, -1,
43 size = PAGE_ALIGN(size);44 __builtin_return_address(0));
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);
52}45}
53#else /* CONFIG_MMU */46#else /* CONFIG_MMU */
54void *module_alloc(unsigned long size)47void *module_alloc(unsigned long size)
@@ -67,35 +60,6 @@ int module_frob_arch_sections(Elf_Ehdr *hdr, · 12 unmodified lines
67 char *secstrings,60 char *secstrings,
68 struct module *mod)61 struct module *mod)
69{62{
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
99 return 0;63 return 0;
100}64}
101 65
@@ -300,41 +264,88 @@ apply_relocate_add(Elf32_Shdr *sechdrs, const char *strtab, · 198 unmodified lines
300 return -ENOEXEC;264 return -ENOEXEC;
301}265}
302 266
303#ifdef CONFIG_ARM_UNWIND267struct mod_unwind_map {
304static void register_unwind_tables(struct module *mod)268 const Elf_Shdr *unw_sec;
305{269 const Elf_Shdr *txt_sec;
306 int i;270};
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}
316 271
317static void unregister_unwind_tables(struct module *mod)272static const Elf_Shdr *find_mod_section(const Elf32_Ehdr *hdr,
273 const Elf_Shdr *sechdrs, const char *name)
318{274{
319 int i = ARM_SEC_MAX;275 const Elf_Shdr *s, *se;
320 while (--i >= 0)276 const char *secstrs = (void *)hdr + sechdrs[hdr->e_shstrndx].sh_offset;
321 unwind_table_del(mod->arch.map[i].unwind);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;
322}283}
323#else
324static inline void register_unwind_tables(struct module *mod) { }
325static inline void unregister_unwind_tables(struct module *mod) { }
326#endif
327 284
328int285extern void fixup_smp(const void *, unsigned long);
329module_finalize(const Elf32_Ehdr *hdr, const Elf_Shdr *sechdrs,286
330 struct module *module)287int module_finalize(const Elf32_Ehdr *hdr, const Elf_Shdr *sechdrs,
288 struct module *mod)
331{289{
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);
333 return 0;338 return 0;
334}339}
335 340
336void341void
337module_arch_cleanup(struct module *mod)342module_arch_cleanup(struct module *mod)
338{343{
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
340}351}
arch/arm/kernel/perf_event.c+46−2426
@@ -4,9 +4,7 @@ · 3 unmodified lines
4 * ARM performance counter support.4 * ARM performance counter support.
5 *5 *
6 * Copyright (C) 2009 picoChip Designs, Ltd., Jamie Iles6 * Copyright (C) 2009 picoChip Designs, Ltd., Jamie Iles
7 *7 * Copyright (C) 2010 ARM Ltd., Will Deacon <will.deacon@arm.com>
8 * ARMv7 support: Jean Pihet <jpihet@mvista.com>
9 * 2010 (c) MontaVista Software, LLC.
10 *8 *
11 * This code is based on the sparc64 perf event code, which is in turn based9 * This code is based on the sparc64 perf event code, which is in turn based
12 * on the x86 code. Callchain code is based on the ARM OProfile backtrace10 * 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
34 * Hardware lock to serialize accesses to PMU registers. Needed for the32 * Hardware lock to serialize accesses to PMU registers. Needed for the
35 * read/modify/write sequences.33 * read/modify/write sequences.
36 */34 */
37DEFINE_SPINLOCK(pmu_lock);35static DEFINE_RAW_SPINLOCK(pmu_lock);
38 36
39/*37/*
40 * ARMv6 supports a maximum of 3 events, starting from index 1. If we add38 * 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
67 */65 */
68 unsigned long active_mask[BITS_TO_LONGS(ARMPMU_MAX_HWEVENTS)];66 unsigned long active_mask[BITS_TO_LONGS(ARMPMU_MAX_HWEVENTS)];
69};67};
70DEFINE_PER_CPU(struct cpu_hw_events, cpu_hw_events);68static DEFINE_PER_CPU(struct cpu_hw_events, cpu_hw_events);
71
72/* PMU names. */
73static 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};
81 69
82struct arm_pmu {70struct arm_pmu {
83 enum arm_perf_pmu_ids id;71 enum arm_perf_pmu_ids id;
72 const char *name;
84 irqreturn_t (*handle_irq)(int irq_num, void *dev);73 irqreturn_t (*handle_irq)(int irq_num, void *dev);
85 void (*enable)(struct hw_perf_event *evt, int idx);74 void (*enable)(struct hw_perf_event *evt, int idx);
86 void (*disable)(struct hw_perf_event *evt, int idx);75 void (*disable)(struct hw_perf_event *evt, int idx);
87 int (*event_map)(int evt);
88 u64 (*raw_event)(u64);
89 int (*get_event_idx)(struct cpu_hw_events *cpuc,76 int (*get_event_idx)(struct cpu_hw_events *cpuc,
90 struct hw_perf_event *hwc);77 struct hw_perf_event *hwc);
91 u32 (*read_counter)(int idx);78 u32 (*read_counter)(int idx);
92 void (*write_counter)(int idx, u32 val);79 void (*write_counter)(int idx, u32 val);
93 void (*start)(void);80 void (*start)(void);
94 void (*stop)(void);81 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;
95 int num_events;87 int num_events;
96 u64 max_period;88 u64 max_period;
97};89};
@@ -136,10 +128,6 @@ EXPORT_SYMBOL_GPL(perf_num_counters); · 38 unmodified lines
136 128
137#define CACHE_OP_UNSUPPORTED 0xFFFF129#define CACHE_OP_UNSUPPORTED 0xFFFF
138 130
139static 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
143static int131static int
144armpmu_map_cache_event(u64 config)132armpmu_map_cache_event(u64 config)
145{133{
@@ -157,7 +145,7 @@ armpmu_map_cache_event(u64 config) · 11 unmodified lines
157 if (cache_result >= PERF_COUNT_HW_CACHE_RESULT_MAX)145 if (cache_result >= PERF_COUNT_HW_CACHE_RESULT_MAX)
158 return -EINVAL;146 return -EINVAL;
159 147
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];
161 149
162 if (ret == CACHE_OP_UNSUPPORTED)150 if (ret == CACHE_OP_UNSUPPORTED)
163 return -ENOENT;151 return -ENOENT;
@@ -165,6 +153,19 @@ armpmu_map_cache_event(u64 config) · 1 unmodified line
165 return ret;153 return ret;
166}154}
167 155
156static int
157armpmu_map_event(u64 config)
158{
159 int mapping = (*armpmu->event_map)[config];
160 return mapping == HW_OP_UNSUPPORTED ? -EOPNOTSUPP : mapping;
161}
162
163static int
164armpmu_map_raw_event(u64 config)
165{
166 return (int)(config & armpmu->raw_event_mask);
167}
168
168static int169static int
169armpmu_event_set_period(struct perf_event *event,170armpmu_event_set_period(struct perf_event *event,
170 struct hw_perf_event *hwc,171 struct hw_perf_event *hwc,
@@ -458,11 +459,11 @@ __hw_perf_event_init(struct perf_event *event) · 287 unmodified lines
458 459
459 /* Decode the generic type into an ARM event identifier. */460 /* Decode the generic type into an ARM event identifier. */
460 if (PERF_TYPE_HARDWARE == event->attr.type) {461 if (PERF_TYPE_HARDWARE == event->attr.type) {
461 mapping = armpmu->event_map(event->attr.config);462 mapping = armpmu_map_event(event->attr.config);
462 } else if (PERF_TYPE_HW_CACHE == event->attr.type) {463 } else if (PERF_TYPE_HW_CACHE == event->attr.type) {
463 mapping = armpmu_map_cache_event(event->attr.config);464 mapping = armpmu_map_cache_event(event->attr.config);
464 } else if (PERF_TYPE_RAW == event->attr.type) {465 } 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);
466 } else {467 } else {
467 pr_debug("event type %x not supported\n", event->attr.type);468 pr_debug("event type %x not supported\n", event->attr.type);
468 return -EOPNOTSUPP;469 return -EOPNOTSUPP;
@@ -603,2366 +604,10 @@ static struct pmu pmu = { · 134 unmodified lines
603 .read = armpmu_read,604 .read = armpmu_read,
604};605};
605 606
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
636enum 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
658enum 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 */
669static 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
679static 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
780enum 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 */
808static 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
818static 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