History

Merge branch 'tip/tracing/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into tracing/urgent

Ingo Molnar committed 16 years ago

Commit e02c4fd2 parents ae1f303 ac91d854418 files · +285747 −111234Browse files

Unified · Split

2532 files
  1. Documentation/ABI/testing/sysfs-block +14 −0
  2. Documentation/ABI/testing/sysfs-devices-power +79 −0
  3. Documentation/ABI/testing/sysfs-power +13 −0
  4. Documentation/DocBook/mac80211.tmpl +1 −2
  5. Documentation/DocBook/v4l/io.xml +2 −1
  6. Documentation/DocBook/v4l/vidioc-qbuf.xml +23 −17
  7. Documentation/DocBook/v4l/vidioc-querybuf.xml +4 −3
  8. Documentation/DocBook/v4l/vidioc-reqbufs.xml +13 −23
  9. Documentation/RCU/00-INDEX +8 −2
  10. Documentation/RCU/RTFP.txt +57 −4
  11. Documentation/RCU/checklist.txt +126 −82
  12. Documentation/RCU/lockdep.txt +67 −0
  13. Documentation/RCU/rcu.txt +3 −45
  14. Documentation/RCU/stallwarn.txt +58 −0
  15. Documentation/RCU/torture.txt +12 −0
  16. Documentation/RCU/whatisRCU.txt +10 −6
  17. Documentation/arm/memory.txt +5 −1
  18. Documentation/block/queue-sysfs.txt +5 −5
  19. Documentation/cachetlb.txt +27 −3
  20. Documentation/dontdiff +0 −1
  21. Documentation/dvb/get_dvb_firmware +21 −2
  22. Documentation/feature-removal-schedule.txt +44 −36
  23. Documentation/filesystems/dentry-locking.txt +2 −1
  24. Documentation/input/sentelic.txt +110 −14
  25. Documentation/isdn/INTERFACE.CAPI +5 −4
  26. Documentation/isdn/README.gigaset +5 −5
  27. Documentation/kernel-parameters.txt +34 −2
  28. Documentation/lguest/lguest.c +0 −1
  29. Documentation/networking/dccp.txt +4 −2
  30. Documentation/networking/ip-sysctl.txt +55 −3
  31. Documentation/networking/ixgbevf.txt +90 −0
  32. Documentation/networking/packet_mmap.txt +4 −4
  33. Documentation/networking/regulatory.txt +24 −0
  34. Documentation/networking/tcp-thin.txt +47 −0
  35. Documentation/pcmcia/locking.txt +118 −0
  36. Documentation/powerpc/dts-bindings/fsl/can.txt +53 −0
  37. Documentation/powerpc/dts-bindings/fsl/mpc5121-psc.txt +70 −0
  38. Documentation/powerpc/dts-bindings/fsl/mpc5200.txt +1 −8
  39. Documentation/powerpc/dts-bindings/fsl/spi.txt +7 −0
  40. Documentation/powerpc/ptrace.txt +134 −0
  41. Documentation/s390/CommonIO +6 −0
  42. Documentation/s390/driver-model.txt +2 −2
  43. Documentation/scsi/ChangeLog.megaraid_sas +16 −0
  44. Documentation/sound/alsa/ALSA-Configuration.txt +26 −1
  45. Documentation/sound/alsa/HD-Audio-Models.txt +5 −0
  46. Documentation/sound/alsa/HD-Audio.txt +27 −0
  47. Documentation/trace/kprobetrace.txt +32 −25
  48. Documentation/video4linux/CARDLIST.cx23885 +1 −0
  49. Documentation/video4linux/CARDLIST.saa7134 +1 −0
  50. Documentation/video4linux/CARDLIST.tuner +1 −0
  51. Documentation/video4linux/README.tlg2300 +47 −0
  52. Documentation/video4linux/gspca.txt +18 −7
  53. Documentation/video4linux/v4l2-framework.txt +10 −96
  54. Documentation/video4linux/videobuf +360 −0
  55. Documentation/x86/x86_64/boot-options.txt +7 −13
  56. MAINTAINERS +89 −13
  57. arch/Kconfig +1 −17
  58. arch/alpha/include/asm/pgtable.h +1 −1
  59. arch/alpha/kernel/pci.c +3 −3
  60. arch/arm/Kconfig +51 −0
  61. arch/arm/Makefile +1 −0
  62. arch/arm/boot/compressed/Makefile +1 −5
  63. arch/arm/boot/compressed/decompress.c +45 −0
  64. arch/arm/boot/compressed/head.S +10 −10
  65. arch/arm/boot/compressed/misc.c +11 −98
  66. arch/arm/boot/compressed/vmlinux.lds.in +7 −1
  67. arch/arm/common/clkdev.c +10 −0
  68. arch/arm/common/dmabounce.c +3 −1
  69. arch/arm/common/vic.c +132 −133
  70. arch/arm/configs/am3517_evm_defconfig +41 −2
  71. arch/arm/configs/at572d940hfek_defconfig +1640 −0
  72. arch/arm/configs/devkit8000_defconfig +1889 −0
  73. arch/arm/configs/igep0020_defconfig +309 −216
  74. arch/arm/configs/omap3_defconfig +143 −37
  75. arch/arm/configs/omap3_evm_defconfig +4 −2
  76. arch/arm/configs/omap3_pandora_defconfig +513 −165
  77. arch/arm/configs/omap_4430sdp_defconfig +7 −3
  78. arch/arm/configs/omap_zoom3_defconfig +3 −3
  79. arch/arm/configs/rx51_defconfig +2 −2
  80. arch/arm/include/asm/atomic.h +228 −0
  81. arch/arm/include/asm/cacheflush.h +21 −45
  82. arch/arm/include/asm/clkdev.h +3 −0
  83. arch/arm/include/asm/dma-mapping.h +60 −19
  84. arch/arm/include/asm/io.h +9 −2
  85. arch/arm/include/asm/mach/time.h +0 −8
  86. arch/arm/include/asm/memory.h +13 −10
  87. arch/arm/include/asm/mmu.h +1 −0
  88. arch/arm/include/asm/mmu_context.h +15 −0
  89. arch/arm/include/asm/page.h +4 −3
  90. arch/arm/include/asm/perf_event.h +31 −0
  91. arch/arm/include/asm/pgtable-nommu.h +2 −2
  92. arch/arm/include/asm/pmu.h +75 −0
  93. arch/arm/include/asm/setup.h +0 −12
  94. arch/arm/include/asm/smp_plat.h +5 −0
  95. arch/arm/include/asm/spinlock.h +23 −13
  96. arch/arm/include/asm/system.h +1 −2
  97. arch/arm/include/asm/thread_info.h +2 −1
  98. arch/arm/include/asm/tlbflush.h +2 −1
  99. arch/arm/kernel/Makefile +3 −0
  100. arch/arm/kernel/asm-offsets.c +5 −0
  101. arch/arm/kernel/bios32.c +5 −3
  102. arch/arm/kernel/debug.S +6 −6
  103. arch/arm/kernel/leds.c +115 −0
  104. arch/arm/kernel/perf_event.c +2276 −0
  105. arch/arm/kernel/pmu.c +103 −0
  106. arch/arm/kernel/ptrace.c +35 −18
  107. arch/arm/kernel/setup.c +31 −48
  108. arch/arm/kernel/time.c +0 −178
  109. arch/arm/kernel/traps.c +25 −10
  110. arch/arm/kernel/vmlinux.lds.S +0 −4
  111. arch/arm/mach-aaec2000/include/mach/debug-macro.S +1 −1
  112. arch/arm/mach-at91/Kconfig +23 −0
  113. arch/arm/mach-at91/Makefile +4 −0
  114. arch/arm/mach-at91/at572d940hf.c +377 −0
  115. arch/arm/mach-at91/at572d940hf_devices.c +970 −0
  116. arch/arm/mach-at91/board-at572d940hf_ek.c +328 −0
  117. arch/arm/mach-at91/clock.c +5 −3
  118. arch/arm/mach-at91/clock.h +1 −1
  119. arch/arm/mach-at91/generic.h +2 −0
  120. arch/arm/mach-at91/include/mach/at572d940hf.h +123 −0
  121. arch/arm/mach-at91/include/mach/at572d940hf_matrix.h +123 −0
  122. arch/arm/mach-at91/include/mach/at91_pmc.h +1 −0
  123. arch/arm/mach-at91/include/mach/board.h +4 −1
  124. arch/arm/mach-at91/include/mach/cpu.h +8 −0
  125. arch/arm/mach-at91/include/mach/debug-macro.S +1 −1
  126. arch/arm/mach-at91/include/mach/hardware.h +2 −0
  127. arch/arm/mach-at91/include/mach/timex.h +5 −0
  128. arch/arm/mach-bcmring/core.c +1 −2
  129. arch/arm/mach-clps711x/include/mach/debug-macro.S +1 −1
  130. arch/arm/mach-davinci/Kconfig +4 −0
  131. arch/arm/mach-davinci/Makefile +2 −1
  132. arch/arm/mach-davinci/board-da830-evm.c +2 −2
  133. arch/arm/mach-davinci/board-da850-evm.c +32 −2
  134. arch/arm/mach-davinci/board-dm355-evm.c +2 −0
  135. arch/arm/mach-davinci/board-dm365-evm.c +94 −0
  136. arch/arm/mach-davinci/board-dm644x-evm.c +2 −0
  137. arch/arm/mach-davinci/board-dm646x-evm.c +99 −44
  138. arch/arm/mach-davinci/cdce949.c +293 −0
  139. arch/arm/mach-davinci/clock.c +39 −54
  140. arch/arm/mach-davinci/clock.h +29 −16
  141. arch/arm/mach-davinci/common.c +1 −1
  142. arch/arm/mach-davinci/cpuidle.c +5 −33
  143. arch/arm/mach-davinci/da830.c +5 −5
  144. arch/arm/mach-davinci/da850.c +74 −16
  145. arch/arm/mach-davinci/devices-da8xx.c +131 −15
  146. arch/arm/mach-davinci/dm355.c +59 −33
  147. arch/arm/mach-davinci/dm365.c +209 −4
  148. arch/arm/mach-davinci/dm644x.c +21 −12
  149. arch/arm/mach-davinci/dm646x.c +2 −12
  150. arch/arm/mach-davinci/dma.c +51 −16
  151. arch/arm/mach-davinci/include/mach/cdce949.h +19 −0
  152. arch/arm/mach-davinci/include/mach/common.h +1 −1
  153. arch/arm/mach-davinci/include/mach/cpuidle.h +1 −0
  154. arch/arm/mach-davinci/include/mach/da8xx.h +14 −4
  155. arch/arm/mach-davinci/include/mach/debug-macro.S +1 −1
  156. arch/arm/mach-davinci/include/mach/dm365.h +10 −1
  157. arch/arm/mach-davinci/include/mach/dm644x.h +1 −1
  158. arch/arm/mach-davinci/include/mach/dm646x.h +3 −1
  159. arch/arm/mach-davinci/include/mach/edma.h +0 −2
  160. arch/arm/mach-davinci/include/mach/hardware.h +1 −1
  161. arch/arm/mach-davinci/include/mach/i2c.h +2 −0
  162. arch/arm/mach-davinci/include/mach/memory.h +5 −0
  163. arch/arm/mach-davinci/include/mach/mux.h +3 −0
  164. arch/arm/mach-davinci/include/mach/pm.h +54 −0
  165. arch/arm/mach-davinci/include/mach/psc.h +15 −0
  166. arch/arm/mach-davinci/include/mach/spi.h +44 −0
  167. arch/arm/mach-davinci/include/mach/timex.h +6 −1
  168. arch/arm/mach-davinci/io.c +1 −1
  169. arch/arm/mach-davinci/pm.c +158 −0
  170. arch/arm/mach-davinci/psc.c +0 −11
  171. arch/arm/mach-davinci/sleep.S +224 −0
  172. arch/arm/mach-dove/include/mach/debug-macro.S +1 −1
  173. arch/arm/mach-dove/include/mach/vmalloc.h +1 −1
  174. arch/arm/mach-ebsa110/include/mach/debug-macro.S +1 −1
  175. arch/arm/mach-ep93xx/Kconfig +14 −0
  176. arch/arm/mach-ep93xx/Makefile +2 −0
  177. arch/arm/mach-ep93xx/clock.c +18 −14
  178. arch/arm/mach-ep93xx/core.c +45 −232
  179. arch/arm/mach-ep93xx/dma-m2p.c +4 −2
  180. arch/arm/mach-ep93xx/edb93xx.c +21 −0
  181. arch/arm/mach-ep93xx/gpio.c +231 −4
  182. arch/arm/mach-ep93xx/include/mach/debug-macro.S +1 −1
  183. arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h +5 −17
  184. arch/arm/mach-ep93xx/include/mach/ep93xx_keypad.h +7 −7
  185. arch/arm/mach-ep93xx/include/mach/vmalloc.h +1 −1
  186. arch/arm/mach-ep93xx/simone.c +97 −0
  187. arch/arm/mach-ep93xx/snappercl15.c +172 −0
  188. arch/arm/mach-footbridge/common.c +4 −3
  189. arch/arm/mach-footbridge/include/mach/debug-macro.S +2 −2
  190. arch/arm/mach-gemini/include/mach/debug-macro.S +1 −1
  191. arch/arm/mach-gemini/include/mach/vmalloc.h +1 −1
  192. arch/arm/mach-h720x/include/mach/debug-macro.S +1 −1
  193. arch/arm/mach-integrator/core.c +1 −2
  194. arch/arm/mach-integrator/include/mach/debug-macro.S +1 −1
  195. arch/arm/mach-integrator/integrator_cp.c +1 −3
  196. arch/arm/mach-iop13xx/include/mach/debug-macro.S +1 −1
  197. arch/arm/mach-iop13xx/io.c +4 −3
  198. arch/arm/mach-iop32x/include/mach/debug-macro.S +1 −1
  199. arch/arm/mach-iop32x/include/mach/vmalloc.h +1 −1
  200. arch/arm/mach-iop33x/include/mach/debug-macro.S +1 −1
  201. arch/arm/mach-iop33x/include/mach/vmalloc.h +1 −1
  202. arch/arm/mach-ixp2000/include/mach/debug-macro.S +1 −1
  203. arch/arm/mach-ixp2000/include/mach/vmalloc.h +1 −1
  204. arch/arm/mach-ixp23xx/include/mach/debug-macro.S +1 −1
  205. arch/arm/mach-ixp23xx/include/mach/vmalloc.h +1 −1
  206. arch/arm/mach-ixp4xx/common.c +11 −0
  207. arch/arm/mach-ixp4xx/include/mach/debug-macro.S +1 −1
  208. arch/arm/mach-ixp4xx/include/mach/vmalloc.h +1 −1
  209. arch/arm/mach-kirkwood/include/mach/debug-macro.S +1 −1
  210. arch/arm/mach-kirkwood/include/mach/vmalloc.h +1 −1
  211. arch/arm/mach-ks8695/include/mach/debug-macro.S +1 −1
  212. arch/arm/mach-l7200/include/mach/debug-macro.S +1 −1
  213. arch/arm/mach-lh7a40x/include/mach/debug-macro.S +1 −1
  214. arch/arm/mach-lh7a40x/include/mach/vmalloc.h +1 −1
  215. arch/arm/mach-loki/include/mach/debug-macro.S +1 −1
  216. arch/arm/mach-loki/include/mach/vmalloc.h +1 −1
  217. arch/arm/mach-mmp/clock.c +0 −8
  218. arch/arm/mach-mmp/clock.h +0 −2
  219. arch/arm/mach-mmp/include/mach/debug-macro.S +1 −1
  220. arch/arm/mach-mmp/include/mach/vmalloc.h +1 −1
  221. arch/arm/mach-mmp/pxa168.c +1 −1
  222. arch/arm/mach-mmp/pxa910.c +1 −1
  223. arch/arm/mach-msm/include/mach/debug-macro.S +2 −2
  224. arch/arm/mach-msm/io.c +2 −1
  225. arch/arm/mach-mv78xx0/include/mach/debug-macro.S +1 −1
  226. arch/arm/mach-mv78xx0/include/mach/vmalloc.h +1 −1
  227. arch/arm/mach-mx1/clock.c +1 −3
  228. arch/arm/mach-mx2/clock_imx21.c +1 −3
  229. arch/arm/mach-mx2/clock_imx27.c +1 −3
  230. arch/arm/mach-mx25/clock.c +1 −4
  231. arch/arm/mach-mx3/clock-imx35.c +1 −3
  232. arch/arm/mach-mx3/clock.c +1 −3
  233. arch/arm/mach-mxc91231/clock.c +1 −3
  234. arch/arm/mach-netx/include/mach/debug-macro.S +1 −1
  235. arch/arm/mach-nomadik/cpu-8815.c +8 −0
  236. arch/arm/mach-nomadik/include/mach/debug-macro.S +1 −1
  237. arch/arm/mach-nomadik/include/mach/vmalloc.h +1 −1
  238. arch/arm/mach-ns9xxx/include/mach/debug-macro.S +1 −1
  239. arch/arm/mach-ns9xxx/include/mach/vmalloc.h +1 −1
  240. arch/arm/mach-nuc93x/Kconfig +19 −0
  241. arch/arm/mach-nuc93x/Makefile +14 −0
  242. arch/arm/mach-nuc93x/Makefile.boot +3 −0
  243. arch/arm/mach-nuc93x/clock.c +83 −0
  244. arch/arm/mach-nuc93x/clock.h +36 −0
  245. arch/arm/mach-nuc93x/cpu.c +135 −0
  246. arch/arm/mach-nuc93x/cpu.h +48 −0
  247. arch/arm/mach-nuc93x/dev.c +42 −0
  248. arch/arm/mach-nuc93x/include/mach/clkdev.h +7 −0
  249. arch/arm/mach-nuc93x/include/mach/entry-macro.S +32 −0
  250. arch/arm/mach-nuc93x/include/mach/hardware.h +22 −0
  251. arch/arm/mach-nuc93x/include/mach/io.h +28 −0
  252. arch/arm/mach-nuc93x/include/mach/irqs.h +59 −0
  253. arch/arm/mach-nuc93x/include/mach/map.h +139 −0
  254. arch/arm/mach-nuc93x/include/mach/memory.h +21 −0
  255. arch/arm/mach-nuc93x/include/mach/regs-clock.h +53 −0
  256. arch/arm/mach-nuc93x/include/mach/regs-ebi.h +33 −0
  257. arch/arm/mach-nuc93x/include/mach/regs-irq.h +42 −0
  258. arch/arm/mach-nuc93x/include/mach/regs-serial.h +52 −0
  259. arch/arm/mach-nuc93x/include/mach/regs-timer.h +28 −0
  260. arch/arm/mach-nuc93x/include/mach/system.h +28 −0
  261. arch/arm/mach-nuc93x/include/mach/timex.h +25 −0
  262. arch/arm/mach-nuc93x/include/mach/uncompress.h +50 −0
  263. arch/arm/mach-nuc93x/include/mach/vmalloc.h +23 −0
  264. arch/arm/mach-nuc93x/irq.c +66 −0
  265. arch/arm/mach-nuc93x/mach-nuc932evb.c +45 −0
  266. arch/arm/mach-nuc93x/nuc932.c +65 −0
  267. arch/arm/mach-nuc93x/nuc932.h +29 −0
  268. arch/arm/mach-nuc93x/time.c +100 −0
  269. arch/arm/mach-omap1/Makefile +1 −1
  270. arch/arm/mach-omap1/board-fsample.c +5 −4
  271. arch/arm/mach-omap1/board-h2.c +5 −4
  272. arch/arm/mach-omap1/board-h3.c +5 −4
  273. arch/arm/mach-omap1/board-innovator.c +5 −4
  274. arch/arm/mach-omap1/board-osk.c +5 −4
  275. arch/arm/mach-omap1/board-palmte.c +5 −4
  276. arch/arm/mach-omap1/board-palmtt.c +5 −4
  277. arch/arm/mach-omap1/board-palmz71.c +5 −5
  278. arch/arm/mach-omap1/board-perseus2.c +5 −4
  279. arch/arm/mach-omap1/board-sx1.c +6 −5
  280. arch/arm/mach-omap1/board-voiceblue.c +5 −4
  281. arch/arm/mach-omap1/clock.c +1 −24
  282. arch/arm/mach-omap1/clock_data.c +14 −30
  283. arch/arm/mach-omap1/devices.c +1 −1
  284. arch/arm/mach-omap1/flash.c +33 −0
  285. arch/arm/mach-omap1/i2c.c +1 −5
  286. arch/arm/mach-omap1/include/mach/debug-macro.S +76 −14
  287. arch/arm/mach-omap1/mailbox.c +7 −2
  288. arch/arm/mach-omap1/mcbsp.c +13 −3
  289. arch/arm/mach-omap1/serial.c +3 −3
  290. arch/arm/mach-omap2/Kconfig +28 −33
  291. arch/arm/mach-omap2/Makefile +60 −27
  292. arch/arm/mach-omap2/board-2430sdp.c +14 −9
  293. arch/arm/mach-omap2/board-3430sdp.c +142 −9
  294. arch/arm/mach-omap2/board-3630sdp.c +2 −2
  295. arch/arm/mach-omap2/board-4430sdp.c +67 −5
  296. arch/arm/mach-omap2/board-am3517evm.c +236 −1
  297. arch/arm/mach-omap2/board-apollon.c +1 −1
  298. arch/arm/mach-omap2/board-cm-t35.c +249 −6
  299. arch/arm/mach-omap2/board-devkit8000.c +697 −0
  300. arch/arm/mach-omap2/board-generic.c +1 −1
  301. arch/arm/mach-omap2/board-h4.c +4 −5
  302. arch/arm/mach-omap2/board-igep0020.c +278 −7
  303. arch/arm/mach-omap2/board-ldp.c +11 −5
  304. arch/arm/mach-omap2/board-n8x0.c +446 −1
  305. arch/arm/mach-omap2/board-omap3beagle.c +11 −5
  306. arch/arm/mach-omap2/board-omap3evm.c +269 −30
  307. arch/arm/mach-omap2/board-omap3pandora.c +179 −17
  308. arch/arm/mach-omap2/board-omap3touchbook.c +11 −5
  309. arch/arm/mach-omap2/board-overo.c +11 −5
  310. arch/arm/mach-omap2/board-rx51-peripherals.c +51 −12
  311. arch/arm/mach-omap2/board-rx51.c +52 −2
  312. arch/arm/mach-omap2/board-sdp-flash.c +272 −0
  313. arch/arm/mach-omap2/board-zoom-peripherals.c +19 −4
  314. arch/arm/mach-omap2/board-zoom2.c +1 −1
  315. arch/arm/mach-omap2/board-zoom3.c +16 −2
  316. arch/arm/mach-omap2/clkt2xxx_apll.c +122 −0
  317. arch/arm/mach-omap2/clkt2xxx_dpllcore.c +173 −0
  318. arch/arm/mach-omap2/clkt2xxx_osc.c +62 −0
  319. arch/arm/mach-omap2/clkt2xxx_sys.c +50 −0
  320. arch/arm/mach-omap2/clkt2xxx_virt_prcm_set.c +254 −0
  321. arch/arm/mach-omap2/clkt34xx_dpll3m2.c +121 −0
  322. arch/arm/mach-omap2/clkt_clksel.c +409 −0
  323. arch/arm/mach-omap2/clkt_dpll.c +386 −0
  324. arch/arm/mach-omap2/clock.c +217 −812
  325. arch/arm/mach-omap2/clock.h +46 −4
  326. arch/arm/mach-omap2/clock2420_data.c +1910 −0
  327. arch/arm/mach-omap2/clock2430.c +59 −0
  328. arch/arm/mach-omap2/clock2430_data.c +171 −472
  329. arch/arm/mach-omap2/clock2xxx.c +23 −576
  330. arch/arm/mach-omap2/clock2xxx.h +17 −14
  331. arch/arm/mach-omap2/clock34xx.c +17 −244
  332. arch/arm/mach-omap2/clock34xx.h +5 −14
  333. arch/arm/mach-omap2/clock3517.c +124 −0
  334. arch/arm/mach-omap2/clock3517.h +14 −0
  335. arch/arm/mach-omap2/clock36xx.c +72 −0
  336. arch/arm/mach-omap2/clock36xx.h +13 −0
  337. arch/arm/mach-omap2/clock3xxx.c +104 −0
  338. arch/arm/mach-omap2/clock3xxx.h +21 −0
  339. arch/arm/mach-omap2/clock3xxx_data.c +600 −288
  340. arch/arm/mach-omap2/clock44xx.c +0 −33
  341. arch/arm/mach-omap2/clock44xx.h +9 −4
  342. arch/arm/mach-omap2/clock44xx_data.c +343 −391
  343. arch/arm/mach-omap2/clockdomain.c +607 −181
  344. arch/arm/mach-omap2/clockdomains.h +622 −50
  345. arch/arm/mach-omap2/clockdomains44xx.h +250 −0
  346. arch/arm/mach-omap2/cm-regbits-34xx.h +27 −1
  347. arch/arm/mach-omap2/cm-regbits-44xx.h +268 −268
  348. arch/arm/mach-omap2/cm.h +6 −2
  349. arch/arm/mach-omap2/control.c +5 −1
  350. arch/arm/mach-omap2/cpuidle34xx.c +190 −36
  351. arch/arm/mach-omap2/devices.c +34 −11
  352. arch/arm/mach-omap2/dpll3xxx.c +126 −65
  353. arch/arm/mach-omap2/emu.c +3 −0
  354. arch/arm/mach-omap2/gpmc-nand.c +139 −0
  355. arch/arm/mach-omap2/gpmc.c +4 −2
  356. arch/arm/mach-omap2/hsmmc.c +266 −0
  357. arch/arm/mach-omap2/hsmmc.h +8 −6
  358. arch/arm/mach-omap2/i2c.c +1 −5
  359. arch/arm/mach-omap2/id.c +6 −0
  360. arch/arm/mach-omap2/include/mach/am35xx.h +26 −0
  361. arch/arm/mach-omap2/include/mach/board-sdp.h +21 −0
  362. arch/arm/mach-omap2/include/mach/debug-macro.S +102 −30
  363. arch/arm/mach-omap2/include/mach/entry-macro.S +108 −20
  364. arch/arm/mach-omap2/io.c +59 −48
  365. arch/arm/mach-omap2/mailbox.c +34 −13
  366. arch/arm/mach-omap2/mcbsp.c +19 −5
  367. arch/arm/mach-omap2/mmc-twl4030.c +0 −542
  368. arch/arm/mach-omap2/mux.c +37 −15
  369. arch/arm/mach-omap2/mux.h +1 −1
  370. arch/arm/mach-omap2/omap_hwmod.c +225 −90
  371. arch/arm/mach-omap2/omap_hwmod_2420_data.c +23 −15
  372. arch/arm/mach-omap2/omap_hwmod_2430_data.c +23 −15
  373. arch/arm/mach-omap2/omap_hwmod_34xx.h +0 −168
  374. arch/arm/mach-omap2/omap_hwmod_3xxx_data.c +181 −0
  375. arch/arm/mach-omap2/omap_hwmod_common_data.c +68 −0
  376. arch/arm/mach-omap2/omap_hwmod_common_data.h +24 −0
  377. arch/arm/mach-omap2/opp2xxx.h +5 −0
  378. arch/arm/mach-omap2/pm-debug.c +15 −10
  379. arch/arm/mach-omap2/pm.h +20 −0
  380. arch/arm/mach-omap2/pm24xx.c +33 −21
  381. arch/arm/mach-omap2/pm34xx.c +28 −15
  382. arch/arm/mach-omap2/powerdomain.c +294 −482
  383. arch/arm/mach-omap2/powerdomains.h +47 −87
  384. arch/arm/mach-omap2/powerdomains24xx.h +3 −88
  385. arch/arm/mach-omap2/powerdomains34xx.h +9 −150
  386. arch/arm/mach-omap2/powerdomains44xx.h +310 −0
  387. arch/arm/mach-omap2/prcm-common.h +9 −0
  388. arch/arm/mach-omap2/prcm.c +75 −39
  389. arch/arm/mach-omap2/prm-regbits-44xx.h +505 −505
  390. arch/arm/mach-omap2/prm.h +12 −5
  391. arch/arm/mach-omap2/sdram-numonyx-m65kxxxxam.h +51 −0
  392. arch/arm/mach-omap2/sdrc.c +9 −2
  393. arch/arm/mach-omap2/serial.c +63 −17
  394. arch/arm/mach-omap2/sleep34xx.S +58 −3
  395. arch/arm/mach-omap2/timer-gp.c +0 −5
  396. arch/arm/mach-omap2/timer-mpu.c +1 −1
  397. arch/arm/mach-omap2/usb-musb.c +14 −68
  398. arch/arm/mach-orion5x/include/mach/debug-macro.S +1 −1
  399. arch/arm/mach-orion5x/include/mach/vmalloc.h +1 −1
  400. arch/arm/mach-pnx4008/clock.c +91 −82
  401. arch/arm/mach-pnx4008/clock.h +3 −3
  402. arch/arm/mach-pnx4008/i2c.c +6 −102
  403. arch/arm/mach-pnx4008/include/mach/clkdev.h +7 −0
  404. arch/arm/mach-pnx4008/include/mach/debug-macro.S +1 −1
  405. arch/arm/mach-pnx4008/include/mach/timex.h +0 −54
  406. arch/arm/mach-pnx4008/pm.c +2 −0
  407. arch/arm/mach-pnx4008/time.c +2 −0
  408. arch/arm/mach-pnx4008/time.h +70 −0
  409. arch/arm/mach-pxa/clock.c +0 −8
  410. arch/arm/mach-pxa/clock.h +0 −4
  411. arch/arm/mach-pxa/eseries.c +1 −1
  412. arch/arm/mach-pxa/include/mach/camera.h +0 −2
  413. arch/arm/mach-pxa/include/mach/debug-macro.S +1 −1
  414. arch/arm/mach-pxa/include/mach/vmalloc.h +1 −1
  415. arch/arm/mach-pxa/pxa25x.c +2 −2
  416. arch/arm/mach-pxa/pxa27x.c +1 −1
  417. arch/arm/mach-pxa/pxa300.c +2 −2
  418. arch/arm/mach-pxa/pxa320.c +1 −1
  419. arch/arm/mach-pxa/pxa3xx.c +1 −1
  420. arch/arm/mach-realview/core.c +1 −4
  421. arch/arm/mach-realview/include/mach/debug-macro.S +1 −1
  422. arch/arm/mach-realview/include/mach/vmalloc.h +1 −1
  423. arch/arm/mach-rpc/include/mach/debug-macro.S +1 −1
  424. arch/arm/mach-s3c2410/include/mach/debug-macro.S +1 −1
  425. arch/arm/mach-s3c24a0/include/mach/debug-macro.S +1 −1
  426. arch/arm/mach-s3c24a0/include/mach/vmalloc.h +1 −1
  427. arch/arm/mach-s3c6400/include/mach/debug-macro.S +1 −1
  428. arch/arm/mach-s5pc100/include/mach/debug-macro.S +1 −1
  429. arch/arm/mach-sa1100/include/mach/debug-macro.S +1 −1
  430. arch/arm/mach-sa1100/include/mach/vmalloc.h +1 −1
  431. arch/arm/mach-shark/include/mach/debug-macro.S +1 −1
  432. arch/arm/mach-u300/clock.c +13 −16
  433. arch/arm/mach-u300/core.c +1027 −2
  434. arch/arm/mach-u300/gpio.c +1 −1
  435. arch/arm/mach-u300/include/mach/debug-macro.S +1 −1
  436. arch/arm/mach-u300/include/mach/dma_channels.h +69 −0
  437. arch/arm/mach-u300/include/mach/vmalloc.h +1 −1
  438. arch/arm/mach-ux500/board-mop500.c +88 −0
  439. arch/arm/mach-ux500/clock.c +1 −4
  440. arch/arm/mach-ux500/cpu-u8500.c +1 −0
  441. arch/arm/mach-ux500/include/mach/debug-macro.S +6 −5
  442. arch/arm/mach-ux500/include/mach/vmalloc.h +1 −1
  443. arch/arm/mach-versatile/core.c +1 −2
  444. arch/arm/mach-versatile/include/mach/debug-macro.S +1 −1
  445. arch/arm/mach-w90x900/clock.c +0 −9
  446. arch/arm/mach-w90x900/clock.h +0 −1
  447. arch/arm/mach-w90x900/cpu.c +12 −1
  448. arch/arm/mach-w90x900/include/mach/vmalloc.h +1 −1
  449. arch/arm/mm/Kconfig +4 −4
  450. arch/arm/mm/alignment.c +1 −5
  451. arch/arm/mm/cache-fa.S +28 −4
  452. arch/arm/mm/cache-l2x0.c +62 −10
  453. arch/arm/mm/cache-v3.S +20 −23
  454. arch/arm/mm/cache-v4.S +20 −23
  455. arch/arm/mm/cache-v4wb.S +28 −4
  456. arch/arm/mm/cache-v4wt.S +26 −14
  457. arch/arm/mm/cache-v6.S +30 −4
  458. arch/arm/mm/cache-v7.S +30 −4
  459. arch/arm/mm/context.c +110 −14
  460. arch/arm/mm/copypage-feroceon.c +2 −1
  461. arch/arm/mm/copypage-v3.c +1 −1
  462. arch/arm/mm/copypage-v4mc.c +1 −1
  463. arch/arm/mm/copypage-v4wb.c +2 −1
  464. arch/arm/mm/copypage-v4wt.c +1 −1
  465. arch/arm/mm/copypage-v6.c +2 −2
  466. arch/arm/mm/copypage-xsc3.c +2 −1
  467. arch/arm/mm/copypage-xscale.c +1 −1
  468. arch/arm/mm/dma-mapping.c +85 −77
  469. arch/arm/mm/fault-armv.c +46 −39
  470. arch/arm/mm/fault.c +7 −0
  471. arch/arm/mm/flush.c +43 −8
  472. arch/arm/mm/init.c +99 −14
  473. arch/arm/mm/ioremap.c +34 −23
  474. arch/arm/mm/mmu.c +21 −20
  475. arch/arm/mm/nommu.c +12 −0
  476. arch/arm/mm/proc-arm1020.S +28 −4
  477. arch/arm/mm/proc-arm1020e.S +28 −4
  478. arch/arm/mm/proc-arm1022.S +28 −4
  479. arch/arm/mm/proc-arm1026.S +28 −4
  480. arch/arm/mm/proc-arm920.S +28 −4
  481. arch/arm/mm/proc-arm922.S +28 −4
  482. arch/arm/mm/proc-arm925.S +28 −4
  483. arch/arm/mm/proc-arm926.S +28 −4
  484. arch/arm/mm/proc-arm940.S +28 −4
  485. arch/arm/mm/proc-arm946.S +28 −4
  486. arch/arm/mm/proc-feroceon.S +46 −8
  487. arch/arm/mm/proc-mohawk.S +28 −4
  488. arch/arm/mm/proc-xsc3.S +28 −4
  489. arch/arm/mm/proc-xscale.S +43 −6
  490. arch/arm/oprofile/op_model_arm11_core.c +2 −2
  491. arch/arm/oprofile/op_model_arm11_core.h +2 −2
  492. arch/arm/oprofile/op_model_mpcore.c +22 −20
  493. arch/arm/oprofile/op_model_v6.c +19 −11
  494. arch/arm/oprofile/op_model_v7.c +19 −11
  495. arch/arm/oprofile/op_model_v7.h +2 −2
  496. arch/arm/oprofile/op_model_xscale.c +19 −16
  497. arch/arm/plat-iop/io.c +2 −1
  498. arch/arm/plat-mxc/Makefile +4 −0
  499. arch/arm/plat-mxc/include/mach/debug-macro.S +1 −1
  500. arch/arm/plat-mxc/include/mach/vmalloc.h +1 −1
  501. arch/arm/plat-mxc/ssi-fiq-ksym.c +20 −0
  502. arch/arm/plat-mxc/ssi-fiq.S +134 −0
  503. arch/arm/plat-nomadik/include/plat/i2c.h +37 −0
  504. arch/arm/plat-omap/Kconfig +33 −25
  505. arch/arm/plat-omap/clock.c +49 −3
  506. arch/arm/plat-omap/common.c +46 −23
  507. arch/arm/plat-omap/devices.c +38 −1
  508. arch/arm/plat-omap/dma.c +5 −5
  509. arch/arm/plat-omap/dmtimer.c +55 −71
  510. arch/arm/plat-omap/gpio.c +166 −136
  511. arch/arm/plat-omap/i2c.c +12 −6
  512. arch/arm/plat-omap/include/plat/clkdev_omap.h +17 −9
  513. arch/arm/plat-omap/include/plat/clock.h +70 −30
  514. arch/arm/plat-omap/include/plat/clockdomain.h +64 −34
  515. arch/arm/plat-omap/include/plat/common.h +17 −7
  516. arch/arm/plat-omap/include/plat/control.h +38 −2
  517. arch/arm/plat-omap/include/plat/cpu.h +16 −76
  518. arch/arm/plat-omap/include/plat/display.h +66 −51
  519. arch/arm/plat-omap/include/plat/dma-44xx.h +147 −0
  520. arch/arm/plat-omap/include/plat/dma.h +3 −83
  521. arch/arm/plat-omap/include/plat/flash.h +16 −0
  522. arch/arm/plat-omap/include/plat/gpmc.h +3 −1
  523. arch/arm/plat-omap/include/plat/i2c.h +2 −3
  524. arch/arm/plat-omap/include/plat/io.h +32 −10
  525. arch/arm/plat-omap/include/plat/irqs-44xx.h +144 −0
  526. arch/arm/plat-omap/include/plat/irqs.h +13 −89
  527. arch/arm/plat-omap/include/plat/mcbsp.h +66 −6
  528. arch/arm/plat-omap/include/plat/memory.h +1 −2
  529. arch/arm/plat-omap/include/plat/menelaus.h +1 −1
  530. arch/arm/plat-omap/include/plat/mmc.h +25 −10
  531. arch/arm/plat-omap/include/plat/multi.h +94 −0
  532. arch/arm/plat-omap/include/plat/mux.h +1 −1
  533. arch/arm/plat-omap/include/plat/nand.h +9 −1
  534. arch/arm/plat-omap/include/plat/omap16xx.h +37 −37
  535. arch/arm/plat-omap/include/plat/omap24xx.h +3 −3
  536. arch/arm/plat-omap/include/plat/omap34xx.h +3 −3
  537. arch/arm/plat-omap/include/plat/omap44xx.h +4 −0
  538. arch/arm/plat-omap/include/plat/omap_device.h +9 −2
  539. arch/arm/plat-omap/include/plat/omap_hwmod.h +102 −36
  540. arch/arm/plat-omap/include/plat/powerdomain.h +33 −62
  541. arch/arm/plat-omap/include/plat/prcm.h +10 −1
  542. arch/arm/plat-omap/include/plat/serial.h +49 −21
  543. arch/arm/plat-omap/include/plat/uncompress.h +133 −48
  544. arch/arm/plat-omap/include/plat/usb.h +10 −1
  545. arch/arm/plat-omap/io.c +1 −5
  546. arch/arm/plat-omap/iommu.c +3 −3
  547. arch/arm/plat-omap/iopgtable.h +39 −11
  548. arch/arm/plat-omap/mailbox.c +7 −1
  549. arch/arm/plat-omap/mcbsp.c +594 −180
  550. arch/arm/plat-omap/omap_device.c +84 −18
  551. arch/arm/plat-omap/sram.c +1 −1
  552. arch/arm/plat-s3c/include/mach/vmalloc.h +1 −1
  553. arch/arm/plat-stmp3xxx/clock.c +1 −2
  554. arch/arm/plat-stmp3xxx/include/mach/debug-macro.S +1 −1
  555. arch/arm/plat-stmp3xxx/include/mach/vmalloc.h +1 −1
  556. arch/arm/vfp/vfpmodule.c +36 −19
  557. arch/avr32/include/asm/pgtable.h +1 −1
  558. arch/avr32/mm/tlb.c +2 −2
  559. arch/cris/arch-v10/kernel/irq.c +1 −1
  560. arch/cris/arch-v32/drivers/pci/bios.c +7 −9
  561. arch/cris/arch-v32/kernel/irq.c +1 −1
  562. arch/cris/arch-v32/kernel/pinmux.c +2 −2
  563. arch/cris/arch-v32/mach-a3/pinmux.c +1 −1
  564. arch/cris/arch-v32/mach-fs/pinmux.c +2 −2
  565. arch/cris/include/asm/pgtable.h +1 −1
  566. arch/cris/kernel/irq.c +1 −1
  567. arch/frv/include/asm/pgtable.h +1 −1
  568. arch/frv/mb93090-mb00/pci-frv.c +7 −9
  569. arch/h8300/mm/memory.c +2 −2
  570. arch/ia64/Kconfig +0 −17
  571. arch/ia64/Makefile +0 −1
  572. arch/ia64/configs/bigsur_defconfig +0 −2
  573. arch/ia64/configs/generic_defconfig +0 −2
  574. arch/ia64/configs/gensparse_defconfig +0 −2
  575. arch/ia64/configs/sim_defconfig +0 −2
  576. arch/ia64/configs/tiger_defconfig +0 −1
  577. arch/ia64/configs/xen_domu_defconfig +0 −2
  578. arch/ia64/configs/zx1_defconfig +0 −2
  579. arch/ia64/hp/common/aml_nfw.c +3 −3
  580. arch/ia64/ia32/Makefile +0 −11
  581. arch/ia64/ia32/audit.c +0 −42
  582. arch/ia64/ia32/binfmt_elf32.c +0 −245
  583. arch/ia64/ia32/elfcore32.h +0 −148
  584. arch/ia64/ia32/ia32_entry.S +0 −468
  585. arch/ia64/ia32/ia32_ldt.c +0 −146
  586. arch/ia64/ia32/ia32_signal.c +0 −1010
  587. arch/ia64/ia32/ia32_support.c +0 −253
  588. arch/ia64/ia32/ia32_traps.c +0 −156
  589. arch/ia64/ia32/ia32priv.h +0 −532
  590. arch/ia64/ia32/sys_ia32.c +0 −2765
  591. arch/ia64/include/asm/acpi.h +26 −0
  592. arch/ia64/include/asm/ia32.h +0 −40
  593. arch/ia64/include/asm/pgtable.h +1 −1
  594. arch/ia64/include/asm/processor.h +0 −46
  595. arch/ia64/include/asm/scatterlist.h +1 −23
  596. arch/ia64/include/asm/syscall.h +0 −81
  597. arch/ia64/include/asm/system.h +1 −10
  598. arch/ia64/include/asm/unistd.h +0 −14
  599. arch/ia64/kernel/Makefile +2 −4
  600. arch/ia64/kernel/acpi.c +1 −32
  601. arch/ia64/kernel/audit.c +0 −21
  602. arch/ia64/kernel/entry.S +0 −39
  603. arch/ia64/kernel/ivt.S +0 −114
  604. arch/ia64/kernel/kprobes.c +1 −1
  605. arch/ia64/kernel/perfmon.c +2 −2
  606. arch/ia64/kernel/process.c +7 −52
  607. arch/ia64/kernel/ptrace.c +2 −12
  608. arch/ia64/kernel/setup.c +0 −5
  609. arch/ia64/kernel/signal.c +14 −40
  610. arch/ia64/kernel/smpboot.c +0 −5
  611. arch/ia64/kernel/time.c +1 −1
  612. arch/ia64/kernel/traps.c +0 −9
  613. arch/ia64/kvm/Kconfig +1 −0
  614. arch/ia64/mm/init.c +0 −5
  615. arch/ia64/pci/pci.c +8 −14
  616. arch/ia64/uv/kernel/setup.c +1 −1
  617. arch/ia64/xen/hypercall.S +0 −5
  618. arch/ia64/xen/xen_pv_ops.c +0 −16
  619. arch/m32r/include/asm/tlbflush.h +1 −1
  620. arch/m32r/mm/fault-nommu.c +1 −1
  621. arch/m32r/mm/fault.c +3 −3
  622. arch/m68k/Kconfig +1 −5
  623. arch/m68k/amiga/config.c +1 −1
  624. arch/m68k/configs/mac_defconfig +5 −2
  625. arch/m68k/configs/multi_defconfig +5 −1
  626. arch/m68k/include/asm/machw.h +0 −25
  627. arch/m68k/include/asm/macints.h +5 −17
  628. arch/m68k/include/asm/pgtable_mm.h +1 −1
  629. arch/m68k/include/asm/ptrace.h +2 −0
  630. arch/m68k/include/asm/sigcontext.h +6 −0
  631. arch/m68k/include/asm/siginfo.h +0 −91
  632. arch/m68k/include/asm/swab.h +1 −1
  633. arch/m68k/include/asm/thread_info_mm.h +1 −0
  634. arch/m68k/include/asm/thread_info_no.h +1 −0
  635. arch/m68k/include/asm/ucontext.h +4 −0
  636. arch/m68k/include/asm/unistd.h +5 −1
  637. arch/m68k/include/asm/virtconvert.h +1 −6
  638. arch/m68k/kernel/entry.S +4 −0
  639. arch/m68k/kernel/process.c +4 −0
  640. arch/m68k/kernel/ptrace.c +5 −0
  641. arch/m68k/kernel/signal.c +7 −0
  642. arch/m68k/kernel/sys_m68k.c +81 −0
  643. arch/m68k/mac/Makefile +1 −1
  644. arch/m68k/mac/config.c +217 −127
  645. arch/m68k/mac/debug.c +0 −365
  646. arch/m68k/mac/macints.c +18 −83
  647. arch/m68k/mac/oss.c +4 −16
  648. arch/m68k/mac/via.c +0 −7
  649. arch/m68k/mm/kmap.c +2 −3
  650. arch/m68knommu/kernel/process.c +4 −0
  651. arch/m68knommu/kernel/ptrace.c +5 −0
  652. arch/m68knommu/kernel/sys_m68k.c +36 −0
  653. arch/m68knommu/kernel/syscalltable.S +4 −0
  654. arch/m68knommu/mm/memory.c +0 −1
  655. arch/microblaze/Kconfig +1 −0
  656. arch/microblaze/include/asm/prom.h +0 −20
  657. arch/microblaze/include/asm/tlbflush.h +1 −1
  658. arch/microblaze/kernel/of_platform.c +1 −1
  659. arch/microblaze/kernel/prom.c +13 −977
  660. arch/mips/Kconfig +5 −3
  661. arch/mips/Kconfig.debug +26 −0
  662. arch/mips/Makefile +14 −5
  663. arch/mips/alchemy/Kconfig +21 −7
  664. arch/mips/alchemy/common/Makefile +4 −3
  665. arch/mips/alchemy/common/clocks.c +0 −7
  666. arch/mips/alchemy/common/dbdma.c +99 −88
  667. arch/mips/alchemy/common/dma.c +31 −5
  668. arch/mips/alchemy/common/gpiolib-au1000.c +3 −7
  669. arch/mips/alchemy/common/irq.c +222 −214
  670. arch/mips/alchemy/common/platform.c +119 −34
  671. arch/mips/alchemy/common/prom.c +6 −22
  672. arch/mips/alchemy/common/puts.c +0 −68
  673. arch/mips/alchemy/common/reset.c +0 −188
  674. arch/mips/alchemy/common/setup.c +7 −33
  675. arch/mips/alchemy/common/time.c +30 −5
  676. arch/mips/alchemy/devboards/Makefile +4 −2
  677. arch/mips/alchemy/devboards/bcsr.c +148 −0
  678. arch/mips/alchemy/devboards/db1200/Makefile +1 −0
  679. arch/mips/alchemy/devboards/db1200/platform.c +561 −0
  680. arch/mips/alchemy/devboards/db1200/setup.c +118 −0
  681. arch/mips/alchemy/devboards/db1x00/Makefile +1 −1
  682. arch/mips/alchemy/devboards/db1x00/board_setup.c +155 −49
  683. arch/mips/alchemy/devboards/db1x00/irqmap.c +0 −90
  684. arch/mips/alchemy/devboards/db1x00/platform.c +118 −0
  685. arch/mips/alchemy/devboards/pb1000/board_setup.c +16 −18
  686. arch/mips/alchemy/devboards/pb1100/Makefile +1 −1
  687. arch/mips/alchemy/devboards/pb1100/board_setup.c +15 −40
  688. arch/mips/alchemy/devboards/pb1100/platform.c +50 −0
  689. arch/mips/alchemy/devboards/pb1200/Makefile +1 −1
  690. arch/mips/alchemy/devboards/pb1200/board_setup.c +56 −40
  691. arch/mips/alchemy/devboards/pb1200/irqmap.c +0 −134
  692. arch/mips/alchemy/devboards/pb1200/platform.c +45 −18
  693. arch/mips/alchemy/devboards/pb1500/Makefile +1 −1
  694. arch/mips/alchemy/devboards/pb1500/board_setup.c +21 −33
  695. arch/mips/alchemy/devboards/pb1500/platform.c +49 −0
  696. arch/mips/alchemy/devboards/pb1550/Makefile +1 −1
  697. arch/mips/alchemy/devboards/pb1550/board_setup.c +24 −25
  698. arch/mips/alchemy/devboards/pb1550/platform.c +69 −0
  699. arch/mips/alchemy/devboards/platform.c +222 −0
  700. arch/mips/alchemy/devboards/platform.h +21 −0
  701. arch/mips/alchemy/devboards/pm.c +32 −0
  702. arch/mips/alchemy/devboards/prom.c +5 −0
  703. arch/mips/alchemy/mtx-1/Makefile +1 −1
  704. arch/mips/alchemy/mtx-1/board_setup.c +38 −11
  705. arch/mips/alchemy/mtx-1/init.c +6 −0
  706. arch/mips/alchemy/mtx-1/irqmap.c +0 −56
  707. arch/mips/alchemy/xxs1500/Makefile +3 −1
  708. arch/mips/alchemy/xxs1500/board_setup.c +34 −26
  709. arch/mips/alchemy/xxs1500/init.c +6 −0
  710. arch/mips/alchemy/xxs1500/irqmap.c +0 −52
  711. arch/mips/alchemy/xxs1500/platform.c +63 −0
  712. arch/mips/ar7/clock.c +80 −29
  713. arch/mips/ar7/gpio.c +98 −15
  714. arch/mips/ar7/memory.c +1 −2
  715. arch/mips/ar7/platform.c +381 −332
  716. arch/mips/ar7/prom.c +32 −46
  717. arch/mips/ar7/setup.c +7 −8
  718. arch/mips/ar7/time.c +11 −1
  719. arch/mips/bcm47xx/gpio.c +0 −1
  720. arch/mips/bcm47xx/prom.c +0 −1
  721. arch/mips/bcm47xx/setup.c +0 −1
  722. arch/mips/bcm47xx/wgt634u.c +0 −1
  723. arch/mips/bcm63xx/boards/board_bcm963xx.c +0 −1
  724. arch/mips/bcm63xx/timer.c +17 −17
  725. arch/mips/boot/compressed/Makefile +7 −4
  726. arch/mips/boot/compressed/dbg.c +2 −2
  727. arch/mips/boot/compressed/decompress.c +2 −2
  728. arch/mips/boot/compressed/uart-alchemy.c +7 −0
  729. arch/mips/cavium-octeon/dma-octeon.c +5 −5
  730. arch/mips/cavium-octeon/executive/cvmx-bootmem.c +3 −3
  731. arch/mips/cavium-octeon/executive/cvmx-sysinfo.c +0 −1
  732. arch/mips/cavium-octeon/octeon-irq.c +117 −43
  733. arch/mips/cavium-octeon/octeon-platform.c +85 −0
  734. arch/mips/cavium-octeon/smp.c +1 −1
  735. arch/mips/cobalt/pci.c +1 −1
  736. arch/mips/configs/db1000_defconfig +585 −565
  737. arch/mips/configs/db1100_defconfig +591 −546
  738. arch/mips/configs/db1200_defconfig +949 −629
  739. arch/mips/configs/db1500_defconfig +595 −777
  740. arch/mips/configs/db1550_defconfig +775 −605
  741. arch/mips/configs/lemote2f_defconfig +670 −294
  742. arch/mips/configs/pb1100_defconfig +612 −547
  743. arch/mips/configs/pb1200_defconfig +1568 −0
  744. arch/mips/configs/pb1500_defconfig +713 −611
  745. arch/mips/configs/pb1550_defconfig +761 −593
  746. arch/mips/dec/kn01-berr.c +5 −5
  747. arch/mips/dec/prom/locore.S +0 −1
  748. arch/mips/include/asm/atomic.h +8 −8
  749. arch/mips/include/asm/barrier.h +43 −17
  750. arch/mips/include/asm/bitops.h +4 −4
  751. arch/mips/include/asm/cmpxchg.h +5 −5
  752. arch/mips/include/asm/cpu-features.h +3 −0
  753. arch/mips/include/asm/cpu.h +1 −1
  754. arch/mips/include/asm/current.h +1 −23
  755. arch/mips/include/asm/dec/kn01.h +0 −1
  756. arch/mips/include/asm/device.h +0 −1
  757. arch/mips/include/asm/elf.h +7 −7
  758. arch/mips/include/asm/ftrace.h +1 −1
  759. arch/mips/include/asm/i8259.h +3 −3
  760. arch/mips/include/asm/io.h +18 −0
  761. arch/mips/include/asm/mach-ar7/ar7.h +3 −20
  762. arch/mips/include/asm/mach-ar7/gpio.h +8 −78
  763. arch/mips/include/asm/mach-au1x00/au1000.h +383 −493
  764. arch/mips/include/asm/mach-au1x00/au1100_mmc.h +1 −1
  765. arch/mips/include/asm/mach-au1x00/au1xxx_dbdma.h +2 −21
  766. arch/mips/include/asm/mach-au1x00/au1xxx_eth.h +17 −0
  767. arch/mips/include/asm/mach-au1x00/gpio-au1000.h +80 −84
  768. arch/mips/include/asm/mach-au1x00/gpio.h +1 −1
  769. arch/mips/include/asm/mach-au1x00/ioremap.h +1 −1
  770. arch/mips/include/asm/mach-au1x00/prom.h +0 −1
  771. arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h +0 −1
  772. arch/mips/include/asm/mach-cavium-octeon/cpu-feature-overrides.h +3 −0
  773. arch/mips/include/asm/mach-db1x00/bcsr.h +238 −0
  774. arch/mips/include/asm/mach-db1x00/db1200.h +6 −150
  775. arch/mips/include/asm/mach-db1x00/db1x00.h +0 −100
  776. arch/mips/include/asm/mach-loongson/cpu-feature-overrides.h +1 −1
  777. arch/mips/include/asm/mach-loongson/cs5536/cs5536_vsm.h +1 −1
  778. arch/mips/include/asm/mach-loongson/loongson.h +2 −3
  779. arch/mips/include/asm/mach-loongson/machine.h +2 −2
  780. arch/mips/include/asm/mach-loongson/mem.h +1 −1
  781. arch/mips/include/asm/mach-loongson/pci.h +1 −12
  782. arch/mips/include/asm/mach-pb1x00/pb1100.h +0 −85
  783. arch/mips/include/asm/mach-pb1x00/pb1200.h +2 −120
  784. arch/mips/include/asm/mach-pb1x00/pb1500.h +0 −49
  785. arch/mips/include/asm/mach-pb1x00/pb1550.h +0 −96
  786. arch/mips/include/asm/mach-pnx833x/irq-mapping.h +0 −1
  787. arch/mips/include/asm/mach-powertv/interrupts.h +0 −1
  788. arch/mips/include/asm/mipsregs.h +15 −0
  789. arch/mips/include/asm/msc01_ic.h +0 −1
  790. arch/mips/include/asm/nile4.h +0 −1
  791. arch/mips/include/asm/octeon/octeon-feature.h +2 −6
  792. arch/mips/include/asm/octeon/octeon.h +5 −0
  793. arch/mips/include/asm/page.h +0 −12
  794. arch/mips/include/asm/param.h +1 −16
  795. arch/mips/include/asm/parport.h +1 −15
  796. arch/mips/include/asm/pgalloc.h +2 −2
  797. arch/mips/include/asm/pgtable-32.h +2 −2
  798. arch/mips/include/asm/pgtable-64.h +36 −4
  799. arch/mips/include/asm/pgtable-bits.h +105 −15
  800. arch/mips/include/asm/pgtable.h +19 −12
  801. arch/mips/include/asm/pmc-sierra/msp71xx/msp_prom.h +0 −1
  802. arch/mips/include/asm/serial.h +1 −22
  803. arch/mips/include/asm/sgialib.h +0 −45
  804. arch/mips/include/asm/sibyte/bigsur.h +0 −1
  805. arch/mips/include/asm/sibyte/sb1250_ldt.h +0 −1
  806. arch/mips/include/asm/sn/klkernvars.h +0 −1
  807. arch/mips/include/asm/sparsemem.h +0 −1
  808. arch/mips/include/asm/spinlock.h +44 −76
  809. arch/mips/include/asm/spinlock_types.h +18 −6
  810. arch/mips/include/asm/system.h +4 −0
  811. arch/mips/include/asm/txx9/generic.h +0 −1
  812. arch/mips/include/asm/uasm.h +4 −0
  813. arch/mips/include/asm/ucontext.h +1 −21
  814. arch/mips/jazz/irq.c +5 −5
  815. arch/mips/kernel/Makefile +1 −0
  816. arch/mips/kernel/asm-offsets.c +4 −0
  817. arch/mips/kernel/cevt-gt641xx.c +5 −5
  818. arch/mips/kernel/cpu-probe.c +25 −5
  819. arch/mips/kernel/ftrace.c +1 −1
  820. arch/mips/kernel/i8259.c +11 −11
  821. arch/mips/kernel/irq-gt641xx.c +9 −9
  822. arch/mips/kernel/linux32.c +0 −1
  823. arch/mips/kernel/mcount.S +1 −1
  824. arch/mips/kernel/octeon_switch.S +0 −1
  825. arch/mips/kernel/rtlx.c +0 −1
  826. arch/mips/kernel/spinlock_test.c +141 −0
  827. arch/mips/kernel/traps.c +14 −9
  828. arch/mips/kernel/vpe.c +0 −1
  829. arch/mips/lasat/picvue.h +0 −1
  830. arch/mips/loongson/common/cmdline.c +4 −5
  831. arch/mips/loongson/common/cs5536/cs5536_acc.c +1 −1
  832. arch/mips/loongson/common/cs5536/cs5536_ehci.c +1 −1
  833. arch/mips/loongson/common/cs5536/cs5536_ide.c +1 −1
  834. arch/mips/loongson/common/cs5536/cs5536_isa.c +1 −1
  835. arch/mips/loongson/common/cs5536/cs5536_mfgpt.c +1 −1
  836. arch/mips/loongson/common/cs5536/cs5536_ohci.c +1 −1
  837. arch/mips/loongson/common/cs5536/cs5536_pci.c +1 −1
  838. arch/mips/loongson/common/early_printk.c +1 −1
  839. arch/mips/loongson/common/env.c +23 −6
  840. arch/mips/loongson/common/init.c +1 −1
  841. arch/mips/loongson/common/machtype.c +9 −3
  842. arch/mips/loongson/common/mem.c +4 −3
  843. arch/mips/loongson/common/platform.c +1 −1
  844. arch/mips/loongson/common/pm.c +1 −1
  845. arch/mips/loongson/common/reset.c +14 −6
  846. arch/mips/loongson/common/serial.c +1 −1
  847. arch/mips/loongson/common/time.c +2 −2
  848. arch/mips/loongson/common/uart_base.c +1 −1
  849. arch/mips/loongson/fuloong-2e/reset.c +2 −2
  850. arch/mips/loongson/lemote-2f/Makefile +1 −1
  851. arch/mips/loongson/lemote-2f/ec_kb3310b.c +2 −2
  852. arch/mips/loongson/lemote-2f/irq.c +2 −2
  853. arch/mips/loongson/lemote-2f/machtype.c +45 −0
  854. arch/mips/loongson/lemote-2f/pm.c +1 −1
  855. arch/mips/loongson/lemote-2f/reset.c +1 −1
  856. arch/mips/math-emu/ieee754d.c +0 −1
  857. arch/mips/math-emu/ieee754dp.c +0 −1
  858. arch/mips/math-emu/ieee754sp.c +0 −1
  859. arch/mips/math-emu/ieee754xcpt.c +0 −1
  860. arch/mips/mm/c-octeon.c +4 −4
  861. arch/mips/mm/cache.c +37 −16
  862. arch/mips/mm/fault.c +25 −2
  863. arch/mips/mm/hugetlbpage.c +0 −1
  864. arch/mips/mm/init.c +3 −3
  865. arch/mips/mm/page.c +1 −1
  866. arch/mips/mm/pgtable-64.c +27 −17
  867. arch/mips/mm/tlb-r4k.c +16 −68
  868. arch/mips/mm/tlbex.c +151 −37
  869. arch/mips/mm/uasm.c +8 −4
  870. arch/mips/mti-malta/malta-int.c +3 −3
  871. arch/mips/nxp/pnx833x/common/interrupts.c +18 −19
  872. arch/mips/nxp/pnx833x/common/prom.c +0 −6
  873. arch/mips/nxp/pnx8550/common/prom.c +0 −1
  874. arch/mips/oprofile/common.c +4 −3
  875. arch/mips/oprofile/op_model_loongson2.c +1 −8
  876. arch/mips/pci/fixup-cobalt.c +61 −0
  877. arch/mips/pci/fixup-lemote2f.c +1 −1
  878. arch/mips/pci/ops-loongson2.c +1 −3
  879. arch/mips/pci/ops-pmcmsp.c +1 −1
  880. arch/mips/pci/pci-bcm47xx.c +0 −1
  881. arch/mips/pci/pci-octeon.c +2 −4
  882. arch/mips/pci/pci.c +3 −5
  883. arch/mips/pmc-sierra/msp71xx/msp_irq_cic.c +0 −1
  884. arch/mips/pmc-sierra/msp71xx/msp_prom.c +0 −6
  885. arch/mips/pmc-sierra/yosemite/atmel_read_eeprom.c +1 −1
  886. arch/mips/pmc-sierra/yosemite/atmel_read_eeprom.h +0 −1
  887. arch/mips/pmc-sierra/yosemite/ht.c +5 −5
  888. arch/mips/pmc-sierra/yosemite/smp.c +4 −4
  889. arch/mips/power/cpu.c +2 −2
  890. arch/mips/power/hibernate.S +2 −2
  891. arch/mips/powertv/asic/asic_devices.c +0 −4
  892. arch/mips/powertv/asic/asic_int.c +3 −3
  893. arch/mips/powertv/powertv_setup.c +49 −53
  894. arch/mips/sgi-ip27/ip27-klnuma.c +0 −1
  895. arch/mips/sgi-ip27/ip27-nmi.c +3 −4
  896. arch/mips/sgi-ip32/ip32-irq.c +1 −8
  897. arch/mips/sibyte/bcm1480/irq.c +7 −7
  898. arch/mips/sibyte/common/sb_tbprof.c +0 −1
  899. arch/mips/sibyte/sb1250/irq.c +7 −7
  900. arch/mips/sni/rm200.c +11 −11
  901. arch/mips/txx9/generic/setup.c +0 −5
  902. arch/mips/txx9/jmr3927/setup.c +0 −7
  903. arch/mips/txx9/rbtx4927/setup.c +0 −7
  904. arch/mips/txx9/rbtx4938/setup.c +0 −6
  905. arch/mn10300/include/asm/pgtable.h +1 −1
  906. arch/mn10300/mm/mmu-context.c +2 −1
  907. arch/mn10300/unit-asb2305/pci-asb2305.c +7 −9
  908. arch/mn10300/unit-asb2305/pci.c +2 −4
  909. arch/parisc/include/asm/cacheflush.h +12 −0
  910. arch/parisc/include/asm/pgtable.h +1 −1
  911. arch/parisc/kernel/cache.c +2 −2
  912. arch/parisc/kernel/pci.c +5 −5
  913. arch/powerpc/Kconfig +29 −1
  914. arch/powerpc/boot/dts/arches.dts +12 −0
  915. arch/powerpc/boot/dts/gef_ppc9a.dts +16 −0
  916. arch/powerpc/boot/dts/gef_sbc310.dts +18 −1
  917. arch/powerpc/boot/dts/gef_sbc610.dts +58 −8
  918. arch/powerpc/boot/dts/glacier.dts +67 −9
  919. arch/powerpc/boot/dts/katmai.dts +52 −19
  920. arch/powerpc/boot/dts/mpc5121ads.dts +33 −22
  921. arch/powerpc/boot/dts/mpc8568mds.dts +62 −3
  922. arch/powerpc/boot/dts/mpc8569mds.dts +42 −5
  923. arch/powerpc/configs/44x/katmai_defconfig +89 −5
  924. arch/powerpc/configs/86xx/gef_ppc9a_defconfig +46 −1
  925. arch/powerpc/configs/86xx/gef_sbc610_defconfig +54 −11
  926. arch/powerpc/configs/mpc512x_defconfig +1694 −0
  927. arch/powerpc/configs/ppc64_defconfig +44 −32
  928. arch/powerpc/configs/ps3_defconfig +0 −1
  929. arch/powerpc/configs/pseries_defconfig +35 −28
  930. arch/powerpc/include/asm/asm-compat.h +3 −2
  931. arch/powerpc/include/asm/atomic.h +24 −24
  932. arch/powerpc/include/asm/bitops.h +30 −26
  933. arch/powerpc/include/asm/cputable.h +2 −2
  934. arch/powerpc/include/asm/cputime.h +3 −4
  935. arch/powerpc/include/asm/feature-fixups.h +1 −1
  936. arch/powerpc/include/asm/futex.h +3 −3
  937. arch/powerpc/include/asm/hardirq.h +29 −1
  938. arch/powerpc/include/asm/local.h +6 −6
  939. arch/powerpc/include/asm/mpc5121.h +24 −0
  940. arch/powerpc/include/asm/mpc52xx_psc.h +4 −0
  941. arch/powerpc/include/asm/mpic.h +1 −1
  942. arch/powerpc/include/asm/mutex.h +3 −3
  943. arch/powerpc/include/asm/param.h +1 −22
  944. arch/powerpc/include/asm/pgtable.h +1 −1
  945. arch/powerpc/include/asm/pmac_feature.h +1 −1
  946. arch/powerpc/include/asm/ppc-opcode.h +18 −0
  947. arch/powerpc/include/asm/ppc-pci.h +5 −0
  948. arch/powerpc/include/asm/processor.h +34 −2
  949. arch/powerpc/include/asm/prom.h +0 −18
  950. arch/powerpc/include/asm/ptrace.h +77 −0
  951. arch/powerpc/include/asm/reg_booke.h +95 −1
  952. arch/powerpc/include/asm/spinlock.h +17 −15
  953. arch/powerpc/include/asm/synch.h +8 −4
  954. arch/powerpc/include/asm/system.h +13 −8
  955. arch/powerpc/include/asm/topology.h +27 −21
  956. arch/powerpc/kernel/entry_64.S +1 −2
  957. arch/powerpc/kernel/firmware.c +1 −1
  958. arch/powerpc/kernel/head_fsl_booke.S +2 −2
  959. arch/powerpc/kernel/irq.c +93 −47
  960. arch/powerpc/kernel/kgdb.c +1 −1
  961. arch/powerpc/kernel/kprobes.c +2 −2
  962. arch/powerpc/kernel/lparcfg.c +5 −5
  963. arch/powerpc/kernel/nvram_64.c +3 −3
  964. arch/powerpc/kernel/of_platform.c +1 −1
  965. arch/powerpc/kernel/pci-common.c +10 −14
  966. arch/powerpc/kernel/pci_64.c +1 −1
  967. arch/powerpc/kernel/pci_of_scan.c +1 −1
  968. arch/powerpc/kernel/perf_callchain.c +0 −3
  969. arch/powerpc/kernel/perf_event.c +5 −5
  970. arch/powerpc/kernel/pmc.c +5 −5
  971. arch/powerpc/kernel/process.c +96 −20
  972. arch/powerpc/kernel/prom.c +49 −838
  973. arch/powerpc/kernel/prom_init.c +79 −2
  974. arch/powerpc/kernel/ptrace.c +488 −28
  975. arch/powerpc/kernel/signal.c +2 −4
  976. arch/powerpc/kernel/signal_32.c +10 −6
  977. arch/powerpc/kernel/time.c +6 −4
  978. arch/powerpc/kernel/traps.c +95 −33
  979. arch/powerpc/kvm/Kconfig +1 −0
  980. arch/powerpc/lib/copypage_64.S +14 −14
  981. arch/powerpc/lib/copyuser_64.S +57 −23
  982. arch/powerpc/lib/feature-fixups.c +2 −1
  983. arch/powerpc/mm/40x_mmu.c +2 −2
  984. arch/powerpc/mm/hash_native_64.c +9 −10
  985. arch/powerpc/mm/mem.c +2 −2
  986. arch/powerpc/mm/mmu_context_hash64.c +5 −5
  987. arch/powerpc/mm/mmu_context_nohash.c +7 −7
  988. arch/powerpc/mm/tlb_low_64e.S +1 −1
  989. arch/powerpc/mm/tlb_nohash.c +3 −3
  990. arch/powerpc/platforms/512x/clock.c +1 −5
  991. arch/powerpc/platforms/512x/mpc5121_ads.c +2 −1
  992. arch/powerpc/platforms/512x/mpc5121_ads_cpld.c +1 −1
  993. arch/powerpc/platforms/512x/mpc5121_generic.c +2 −1
  994. arch/powerpc/platforms/512x/mpc512x.h +3 −0
  995. arch/powerpc/platforms/512x/mpc512x_shared.c +43 −0
  996. arch/powerpc/platforms/85xx/mpc85xx_mds.c +27 −0
  997. arch/powerpc/platforms/85xx/socrates_fpga_pic.c +1 −1
  998. arch/powerpc/platforms/85xx/stx_gp3.c +1 −1
  999. arch/powerpc/platforms/85xx/xes_mpc85xx.c +2 −2
  1000. arch/powerpc/platforms/cell/beat_htab.c +12 −12
  1001. arch/powerpc/platforms/cell/beat_interrupt.c +10 −10
  1002. arch/powerpc/platforms/cell/cbe_powerbutton.c +1 −1
  1003. arch/powerpc/platforms/cell/interrupt.c +2 −2
  1004. arch/powerpc/platforms/cell/ras.c +1 −1
  1005. arch/powerpc/platforms/cell/spider-pic.c +1 −1
  1006. arch/powerpc/platforms/cell/spu_manage.c +3 −3
  1007. arch/powerpc/platforms/fsl_uli1575.c +6 −6
  1008. arch/powerpc/platforms/iseries/irq.c +1 −1
  1009. arch/powerpc/platforms/iseries/proc.c +1 −1
  1010. arch/powerpc/platforms/iseries/setup.c +1 −1
  1011. arch/powerpc/platforms/pasemi/cpufreq.c +2 −2
  1012. arch/powerpc/platforms/powermac/bootx_init.c +2 −2
  1013. arch/powerpc/platforms/powermac/cpufreq_32.c +7 −7
  1014. arch/powerpc/platforms/powermac/cpufreq_64.c +7 −7
  1015. arch/powerpc/platforms/powermac/feature.c +4 −4
  1016. arch/powerpc/platforms/powermac/nvram.c +7 −7
  1017. arch/powerpc/platforms/powermac/pfunc_base.c +12 −12
  1018. arch/powerpc/platforms/powermac/pfunc_core.c +1 −1
  1019. arch/powerpc/platforms/powermac/pic.c +20 −20
  1020. arch/powerpc/platforms/powermac/smp.c +6 −6
  1021. arch/powerpc/platforms/powermac/time.c +4 −4
  1022. arch/powerpc/platforms/powermac/udbg_scc.c +3 −3
  1023. arch/powerpc/platforms/pseries/eeh.c +9 −9
  1024. arch/powerpc/platforms/pseries/eeh_driver.c +5 −5
  1025. arch/powerpc/platforms/pseries/eeh_event.c +1 −1
  1026. arch/powerpc/platforms/pseries/hotplug-cpu.c +5 −17
  1027. arch/powerpc/platforms/pseries/hvCall_inst.c +2 −2
  1028. arch/powerpc/platforms/pseries/pci_dlpar.c +1 −1
  1029. arch/powerpc/platforms/pseries/phyp_dump.c +3 −3
  1030. arch/powerpc/platforms/pseries/smp.c +2 −2
  1031. arch/powerpc/platforms/pseries/xics.c +14 −18
  1032. arch/powerpc/sysdev/cpm1.c +1 −1
  1033. arch/powerpc/sysdev/cpm2_pic.c +1 −1
  1034. arch/powerpc/sysdev/fsl_msi.c +1 −1
  1035. arch/powerpc/sysdev/grackle.c +2 −2
  1036. arch/powerpc/sysdev/i8259.c +12 −12
  1037. arch/powerpc/sysdev/ipic.c +11 −11
  1038. arch/powerpc/sysdev/mpc8xx_pic.c +1 −1
  1039. arch/powerpc/sysdev/mpic.c +20 −20
  1040. arch/powerpc/sysdev/mpic_pasemi_msi.c +1 −1
  1041. arch/powerpc/sysdev/mv64x60_dev.c +3 −0
  1042. arch/powerpc/sysdev/ppc4xx_soc.c +2 −1
  1043. arch/powerpc/sysdev/qe_lib/qe_ic.c +2 −2
  1044. arch/powerpc/sysdev/qe_lib/qe_io.c +4 −4
  1045. arch/powerpc/sysdev/uic.c +1 −1
  1046. arch/powerpc/xmon/xmon.c +1 −1
  1047. arch/s390/Kconfig +6 −0
  1048. arch/s390/Kconfig.debug +13 −0
  1049. arch/s390/Makefile +10 −3
  1050. arch/s390/boot/Makefile +8 −0
  1051. arch/s390/boot/compressed/Makefile +60 −0
  1052. arch/s390/boot/compressed/head31.S +51 −0
  1053. arch/s390/boot/compressed/head64.S +48 −0
  1054. arch/s390/boot/compressed/misc.c +158 −0
  1055. arch/s390/boot/compressed/vmlinux.lds.S +55 −0
  1056. arch/s390/boot/compressed/vmlinux.scr +10 −0
  1057. arch/s390/crypto/aes_s390.c +3 −3
  1058. arch/s390/defconfig +7 −0
  1059. arch/s390/hypfs/hypfs_diag.c +2 −2
  1060. arch/s390/include/asm/atomic.h +11 −75
  1061. arch/s390/include/asm/bitops.h +20 −63
  1062. arch/s390/include/asm/bug.h +2 −8
  1063. arch/s390/include/asm/crw.h +1 −0
  1064. arch/s390/include/asm/etr.h +6 −6
  1065. arch/s390/include/asm/irqflags.h +0 −36
  1066. arch/s390/include/asm/lowcore.h +58 −192
  1067. arch/s390/include/asm/page.h +0 −3
  1068. arch/s390/include/asm/pgtable.h +1 −1
  1069. arch/s390/include/asm/processor.h +9 −9
  1070. arch/s390/include/asm/qdio.h +2 −1
  1071. arch/s390/include/asm/rwsem.h +73 −74
  1072. arch/s390/include/asm/setup.h +6 −3
  1073. arch/s390/include/asm/sigp.h +69 −73
  1074. arch/s390/include/asm/smp.h +37 −1
  1075. arch/s390/include/asm/spinlock.h +0 −18
  1076. arch/s390/include/asm/swab.h +8 −8
  1077. arch/s390/include/asm/sysinfo.h +2 −1
  1078. arch/s390/include/asm/system.h +85 −83
  1079. arch/s390/include/asm/thread_info.h +1 −1
  1080. arch/s390/include/asm/timex.h +6 −16
  1081. arch/s390/include/asm/uaccess.h +12 −0
  1082. arch/s390/include/asm/vdso.h +1 −1
  1083. arch/s390/kernel/Makefile +3 −0
  1084. arch/s390/kernel/asm-offsets.c +92 −7
  1085. arch/s390/kernel/base.S +1 −1
  1086. arch/s390/kernel/dis.c +285 −84
  1087. arch/s390/kernel/early.c +18 −4
  1088. arch/s390/kernel/entry.S +0 −1
  1089. arch/s390/kernel/entry64.S +0 −2
  1090. arch/s390/kernel/ftrace.c +1 −1
  1091. arch/s390/kernel/head.S +22 −38
  1092. arch/s390/kernel/head31.S +12 −4
  1093. arch/s390/kernel/head64.S +12 −80
  1094. arch/s390/kernel/ipl.c +27 −14
  1095. arch/s390/kernel/machine_kexec.c +8 −2
  1096. arch/s390/kernel/reipl.S +1 −1
  1097. arch/s390/kernel/reipl64.S +1 −1
  1098. arch/s390/kernel/sclp.S +32 −4
  1099. arch/s390/kernel/setup.c +4 −7
  1100. arch/s390/kernel/smp.c +62 −46
  1101. arch/s390/kernel/switch_cpu.S +58 −0
  1102. arch/s390/kernel/switch_cpu64.S +51 −0
  1103. arch/s390/kernel/swsusp_asm64.S +1 −1
  1104. arch/s390/kernel/time.c +0 −8
  1105. arch/s390/kernel/vdso.c +1 −0
  1106. arch/s390/kvm/Kconfig +1 −0
  1107. arch/s390/kvm/diag.c +2 −2
  1108. arch/s390/kvm/intercept.c +9 −9
  1109. arch/s390/kvm/interrupt.c +6 −6
  1110. arch/s390/kvm/kvm-s390.c +12 −11
  1111. arch/s390/kvm/priv.c +1 −1
  1112. arch/s390/kvm/sigp.c +2 −2
  1113. arch/s390/lib/Makefile +1 −1
  1114. arch/s390/lib/spinlock.c +37 −16
  1115. arch/s390/lib/usercopy.c +8 −0
  1116. arch/s390/mm/extmem.c +6 −6
  1117. arch/s390/mm/fault.c +2 −3
  1118. arch/s390/mm/init.c +17 −16
  1119. arch/score/include/asm/pgtable.h +2 −1
  1120. arch/score/mm/init.c +1 −1
  1121. arch/sh/Kconfig +14 −18
  1122. arch/sh/Kconfig.cpu +2 −1
  1123. arch/sh/Makefile +7 −3
  1124. arch/sh/boards/Kconfig +8 −0
  1125. arch/sh/boards/Makefile +1 −0
  1126. arch/sh/boards/board-magicpanelr2.c +37 −37
  1127. arch/sh/boards/board-polaris.c +17 −20
  1128. arch/sh/boards/board-sh7785lcr.c +15 −17
  1129. arch/sh/boards/board-shmin.c +2 −2
  1130. arch/sh/boards/board-titan.c +2 −22
  1131. arch/sh/boards/board-urquell.c +30 −16
  1132. arch/sh/boards/mach-ap325rxa/setup.c +12 −12
  1133. arch/sh/boards/mach-cayman/irq.c +8 −8
  1134. arch/sh/boards/mach-dreamcast/irq.c +27 −0
  1135. arch/sh/boards/mach-dreamcast/rtc.c +10 −10
  1136. arch/sh/boards/mach-dreamcast/setup.c +1 −17
  1137. arch/sh/boards/mach-ecovec24/sdram.S +59 −0
  1138. arch/sh/boards/mach-ecovec24/setup.c +65 −22
  1139. arch/sh/boards/mach-highlander/irq-r7780mp.c +1 −1
  1140. arch/sh/boards/mach-highlander/irq-r7780rp.c +1 −1
  1141. arch/sh/boards/mach-highlander/irq-r7785rp.c +8 −8
  1142. arch/sh/boards/mach-highlander/psw.c +2 −2
  1143. arch/sh/boards/mach-highlander/setup.c +7 −7
  1144. arch/sh/boards/mach-hp6xx/hp6xx_apm.c +1 −1
  1145. arch/sh/boards/mach-hp6xx/pm.c +19 −19
  1146. arch/sh/boards/mach-hp6xx/setup.c +6 −6
  1147. arch/sh/boards/mach-kfr2r09/setup.c +8 −8
  1148. arch/sh/boards/mach-landisk/gio.c +6 −6
  1149. arch/sh/boards/mach-landisk/irq.c +3 −3
  1150. arch/sh/boards/mach-landisk/psw.c +2 −2
  1151. arch/sh/boards/mach-landisk/setup.c +3 −3
  1152. arch/sh/boards/mach-lboxre2/setup.c +2 −2
  1153. arch/sh/boards/mach-microdev/io.c +2 −2
  1154. arch/sh/boards/mach-microdev/irq.c +5 −5
  1155. arch/sh/boards/mach-migor/setup.c +6 −18
  1156. arch/sh/boards/mach-r2d/irq.c +2 −2
  1157. arch/sh/boards/mach-r2d/setup.c +4 −4
  1158. arch/sh/boards/mach-rsk/devices-rsk7203.c +1 −1
  1159. arch/sh/boards/mach-sdk7780/irq.c +2 −2
  1160. arch/sh/boards/mach-sdk7780/setup.c +10 −19
  1161. arch/sh/boards/mach-sdk7786/Makefile +1 −0
  1162. arch/sh/boards/mach-sdk7786/fpga.c +72 −0
  1163. arch/sh/boards/mach-sdk7786/irq.c +48 −0
  1164. arch/sh/boards/mach-sdk7786/setup.c +189 −0
  1165. arch/sh/boards/mach-se/7206/io.c +1 −1
  1166. arch/sh/boards/mach-se/7206/irq.c +22 −21
  1167. arch/sh/boards/mach-se/7206/setup.c +6 −9
  1168. arch/sh/boards/mach-se/7343/irq.c +26 −19
  1169. arch/sh/boards/mach-se/7343/setup.c +19 −24
  1170. arch/sh/boards/mach-se/770x/irq.c +7 −7
  1171. arch/sh/boards/mach-se/770x/setup.c +6 −9
  1172. arch/sh/boards/mach-se/7721/irq.c +1 −1
  1173. arch/sh/boards/mach-se/7721/setup.c +10 −13
  1174. arch/sh/boards/mach-se/7722/irq.c +5 −5
  1175. arch/sh/boards/mach-se/7722/setup.c +23 −32
  1176. arch/sh/boards/mach-se/7724/irq.c +39 −23
  1177. arch/sh/boards/mach-se/7724/sdram.S +79 −0
  1178. arch/sh/boards/mach-se/7724/setup.c +60 −54
  1179. arch/sh/boards/mach-se/7780/irq.c +9 −9
  1180. arch/sh/boards/mach-se/7780/setup.c +19 −28
  1181. arch/sh/boards/mach-sh03/rtc.c +25 −25
  1182. arch/sh/boards/mach-sh03/setup.c +1 −1
  1183. arch/sh/boards/mach-sh7763rdp/irq.c +5 −5
  1184. arch/sh/boards/mach-sh7763rdp/setup.c +20 −20
  1185. arch/sh/boards/mach-snapgear/setup.c +1 −1
  1186. arch/sh/boards/mach-systemh/irq.c +6 −6
  1187. arch/sh/boards/mach-titan/Makefile +0 −5
  1188. arch/sh/boards/mach-titan/io.c +0 −108
  1189. arch/sh/boards/mach-x3proto/ilsel.c +4 −4
  1190. arch/sh/boards/mach-x3proto/setup.c +1 −1
  1191. arch/sh/boot/Makefile +16 −14
  1192. arch/sh/boot/compressed/Makefile +3 −4
  1193. arch/sh/boot/compressed/misc.c +4 −19
  1194. arch/sh/cchips/hd6446x/hd64461.c +25 −11
  1195. arch/sh/configs/sdk7786_defconfig +1754 −0
  1196. arch/sh/drivers/dma/dma-pvr2.c +5 −5
  1197. arch/sh/drivers/dma/dma-sh.c +17 −14
  1198. arch/sh/drivers/dma/dmabrg.c +11 −11
  1199. arch/sh/drivers/heartbeat.c +17 −5
  1200. arch/sh/drivers/pci/Makefile +2 −3
  1201. arch/sh/drivers/pci/common.c +162 −0
  1202. arch/sh/drivers/pci/fixups-dreamcast.c +1 −1
  1203. arch/sh/drivers/pci/fixups-r7780rp.c +0 −12
  1204. arch/sh/drivers/pci/fixups-rts7751r2d.c +2 −2
  1205. arch/sh/drivers/pci/fixups-sdk7780.c +0 −19
  1206. arch/sh/drivers/pci/fixups-se7751.c +3 −3
  1207. arch/sh/drivers/pci/ops-sh4.c +1 −29
  1208. arch/sh/drivers/pci/pci-dreamcast.c +15 −17
  1209. arch/sh/drivers/pci/pci-sh4.h +14 −4
  1210. arch/sh/drivers/pci/pci-sh5.c +8 −11
  1211. arch/sh/drivers/pci/pci-sh5.h +6 −6
  1212. arch/sh/drivers/pci/pci-sh7751.c +23 −29
  1213. arch/sh/drivers/pci/pci-sh7780.c +332 −76
  1214. arch/sh/drivers/pci/pci-sh7780.h +7 −57
  1215. arch/sh/drivers/pci/pci.c +138 −35
  1216. arch/sh/drivers/pci/pcie-sh7786.c +138 −67
  1217. arch/sh/drivers/pci/pcie-sh7786.h +8 −66
  1218. arch/sh/drivers/superhyway/ops-sh4-202.c +4 −4
  1219. arch/sh/include/asm/Kbuild +3 −1
  1220. arch/sh/include/asm/addrspace.h +10 −8
  1221. arch/sh/include/asm/alignment.h +21 −0
  1222. arch/sh/include/asm/atomic-grb.h +0 −46
  1223. arch/sh/include/asm/atomic-llsc.h +0 −27
  1224. arch/sh/include/asm/atomic.h +29 −44
  1225. arch/sh/include/asm/cacheflush.h +8 −0
  1226. arch/sh/include/asm/clock.h +10 −1
  1227. arch/sh/include/asm/cmpxchg-grb.h +3 −4
  1228. arch/sh/include/asm/dma-mapping.h +0 −2
  1229. arch/sh/include/asm/dma-sh.h +47 −8
  1230. arch/sh/include/asm/dwarf.h +7 −12
  1231. arch/sh/include/asm/fixmap.h +14 −1
  1232. arch/sh/include/asm/fpu.h +12 −23
  1233. arch/sh/include/asm/hw_breakpoint.h +67 −0
  1234. arch/sh/include/asm/io.h +132 −37
  1235. arch/sh/include/asm/kdebug.h +2 −0
  1236. arch/sh/include/asm/mmu.h +28 −21
  1237. arch/sh/include/asm/mmu_context.h +3 −3
  1238. arch/sh/include/asm/mmu_context_32.h +2 −2
  1239. arch/sh/include/asm/module.h +16 −1
  1240. arch/sh/include/asm/page.h +11 −8
  1241. arch/sh/include/asm/pci.h +41 −18
  1242. arch/sh/include/asm/pgalloc.h +10 −22
  1243. arch/sh/include/asm/pgtable-2level.h +23 −0
  1244. arch/sh/include/asm/pgtable-3level.h +56 −0
  1245. arch/sh/include/asm/pgtable.h +9 −20
  1246. arch/sh/include/asm/pgtable_32.h +4 −0
  1247. arch/sh/include/asm/pgtable_64.h +14 −12
  1248. arch/sh/include/asm/processor.h +21 −0
  1249. arch/sh/include/asm/processor_32.h +14 −21
  1250. arch/sh/include/asm/processor_64.h +14 −9
  1251. arch/sh/include/asm/ptrace.h +13 −7
  1252. arch/sh/include/asm/reboot.h +21 −0
  1253. arch/sh/include/asm/setup.h +0 −1
  1254. arch/sh/include/asm/sh_bios.h +12 −3
  1255. arch/sh/include/asm/siu.h +26 −0
  1256. arch/sh/include/asm/suspend.h +1 −0
  1257. arch/sh/include/asm/system.h +5 −4
  1258. arch/sh/include/asm/system_32.h +12 −3
  1259. arch/sh/include/asm/system_64.h +8 −2
  1260. arch/sh/include/asm/thread_info.h +6 −4
  1261. arch/sh/include/asm/tlb.h +17 −0
  1262. arch/sh/include/asm/ubc.h +0 −64
  1263. arch/sh/include/asm/uncached.h +18 −0
  1264. arch/sh/include/asm/vmlinux.lds.h +8 −0
  1265. arch/sh/include/asm/watchdog.h +9 −9
  1266. arch/sh/include/cpu-sh2/cpu/ubc.h +0 −32
  1267. arch/sh/include/cpu-sh2/cpu/watchdog.h +2 −2
  1268. arch/sh/include/cpu-sh3/cpu/dac.h +6 −6
  1269. arch/sh/include/cpu-sh3/cpu/dma.h +12 −8
  1270. arch/sh/include/cpu-sh3/cpu/ubc.h +0 −42
  1271. arch/sh/include/cpu-sh4/cpu/addrspace.h +9 −0
  1272. arch/sh/include/cpu-sh4/cpu/dma-sh4a.h +79 −29
  1273. arch/sh/include/cpu-sh4/cpu/dma.h +19 −16
  1274. arch/sh/include/cpu-sh4/cpu/mmu_context.h +4 −0
  1275. arch/sh/include/cpu-sh4/cpu/sq.h +2 −1
  1276. arch/sh/include/cpu-sh4/cpu/ubc.h +0 −64
  1277. arch/sh/include/mach-common/mach/magicpanelr2.h +6 −6
  1278. arch/sh/include/mach-dreamcast/mach/sysasic.h +5 −0
  1279. arch/sh/include/mach-sdk7786/mach/fpga.h +114 −0
  1280. arch/sh/include/mach-sdk7786/mach/irq.h +7 −0
  1281. arch/sh/include/mach-se/mach/se7343.h +22 −30
  1282. arch/sh/kernel/Makefile +5 −3
  1283. arch/sh/kernel/cpu/Makefile +2 −0
  1284. arch/sh/kernel/cpu/adc.c +6 −6
  1285. arch/sh/kernel/cpu/clock-cpg.c +99 −5
  1286. arch/sh/kernel/cpu/fpu.c +84 −0
  1287. arch/sh/kernel/cpu/init.c +75 −50
  1288. arch/sh/kernel/cpu/irq/intc-sh5.c +7 −7
  1289. arch/sh/kernel/cpu/sh2/clock-sh7619.c +3 −3
  1290. arch/sh/kernel/cpu/sh2a/clock-sh7201.c +4 −4
  1291. arch/sh/kernel/cpu/sh2a/clock-sh7203.c +3 −3
  1292. arch/sh/kernel/cpu/sh2a/clock-sh7206.c +4 −4
  1293. arch/sh/kernel/cpu/sh2a/fpu.c +23 −88
  1294. arch/sh/kernel/cpu/sh3/clock-sh3.c +4 −4
  1295. arch/sh/kernel/cpu/sh3/clock-sh7705.c +4 −4
  1296. arch/sh/kernel/cpu/sh3/clock-sh7706.c +4 −4
  1297. arch/sh/kernel/cpu/sh3/clock-sh7709.c +4 −4
  1298. arch/sh/kernel/cpu/sh3/clock-sh7710.c +4 −4
  1299. arch/sh/kernel/cpu/sh3/clock-sh7712.c +3 −3
  1300. arch/sh/kernel/cpu/sh3/ex.S +1 −1
  1301. arch/sh/kernel/cpu/sh3/probe.c +14 −14
  1302. arch/sh/kernel/cpu/sh3/setup-sh3.c +1 −1
  1303. arch/sh/kernel/cpu/sh4/clock-sh4-202.c +5 −5
  1304. arch/sh/kernel/cpu/sh4/clock-sh4.c +4 −4
  1305. arch/sh/kernel/cpu/sh4/fpu.c +39 −120
  1306. arch/sh/kernel/cpu/sh4/probe.c +8 −6
  1307. arch/sh/kernel/cpu/sh4/setup-sh4-202.c +1 −1
  1308. arch/sh/kernel/cpu/sh4/setup-sh7750.c +1 −1
  1309. arch/sh/kernel/cpu/sh4/setup-sh7760.c +1 −1
  1310. arch/sh/kernel/cpu/sh4/sq.c +11 −12
  1311. arch/sh/kernel/cpu/sh4a/Makefile +5 −4
  1312. arch/sh/kernel/cpu/sh4a/clock-sh7343.c +5 −1
  1313. arch/sh/kernel/cpu/sh4a/clock-sh7366.c +5 −1
  1314. arch/sh/kernel/cpu/sh4a/clock-sh7722.c +25 −4
  1315. arch/sh/kernel/cpu/sh4a/clock-sh7723.c +25 −5
  1316. arch/sh/kernel/cpu/sh4a/clock-sh7724.c +17 −2
  1317. arch/sh/kernel/cpu/sh4a/clock-sh7757.c +4 −4
  1318. arch/sh/kernel/cpu/sh4a/clock-sh7763.c +4 −4
  1319. arch/sh/kernel/cpu/sh4a/clock-sh7770.c +4 −4
  1320. arch/sh/kernel/cpu/sh4a/clock-sh7780.c +5 −5
  1321. arch/sh/kernel/cpu/sh4a/clock-sh7785.c +5 −1
  1322. arch/sh/kernel/cpu/sh4a/clock-sh7786.c +90 −94
  1323. arch/sh/kernel/cpu/sh4a/clock-shx3.c +5 −5
  1324. arch/sh/kernel/cpu/sh4a/pinmux-sh7722.c +11 −10
  1325. arch/sh/kernel/cpu/sh4a/setup-sh7722.c +12 −8
  1326. arch/sh/kernel/cpu/sh4a/setup-sh7723.c +22 −17
  1327. arch/sh/kernel/cpu/sh4a/setup-sh7724.c +21 −18
  1328. arch/sh/kernel/cpu/sh4a/setup-sh7757.c +13 −13
  1329. arch/sh/kernel/cpu/sh4a/setup-sh7763.c +10 −10
  1330. arch/sh/kernel/cpu/sh4a/setup-sh7770.c +12 −12
  1331. arch/sh/kernel/cpu/sh4a/setup-sh7780.c +12 −12
  1332. arch/sh/kernel/cpu/sh4a/setup-sh7785.c +13 −13
  1333. arch/sh/kernel/cpu/sh4a/setup-sh7786.c +12 −12
  1334. arch/sh/kernel/cpu/sh4a/smp-shx3.c +4 −1
  1335. arch/sh/kernel/cpu/sh4a/ubc.c +133 −0
  1336. arch/sh/kernel/cpu/sh5/clock-sh5.c +4 −4
  1337. arch/sh/kernel/cpu/sh5/entry.S +3 −3
  1338. arch/sh/kernel/cpu/sh5/fpu.c +6 −59
  1339. arch/sh/kernel/cpu/shmobile/pm.c +2 −1
  1340. arch/sh/kernel/cpu/shmobile/sleep.S +119 −2
  1341. arch/sh/kernel/debugtraps.S +0 −1
  1342. arch/sh/kernel/dwarf.c +120 −54
  1343. arch/sh/kernel/early_printk.c +0 −85
  1344. arch/sh/kernel/head_32.S +220 −1
  1345. arch/sh/kernel/head_64.S +0 −2
  1346. arch/sh/kernel/hw_breakpoint.c +463 −0
  1347. arch/sh/kernel/idle.c +11 −3
  1348. arch/sh/kernel/io_trapped.c +10 −8
  1349. arch/sh/kernel/kgdb.c +41 −5
  1350. arch/sh/kernel/machine_kexec.c +5 −11
  1351. arch/sh/kernel/perf_callchain.c +0 −3
  1352. arch/sh/kernel/process.c +100 −0
  1353. arch/sh/kernel/process_32.c +24 −140
  1354. arch/sh/kernel/process_64.c +2 −25
  1355. arch/sh/kernel/ptrace_32.c +57 −25
  1356. arch/sh/kernel/ptrace_64.c +8 −8
  1357. arch/sh/kernel/reboot.c +98 −0
  1358. arch/sh/kernel/setup.c +6 −6
  1359. arch/sh/kernel/sh_bios.c +122 −7
  1360. arch/sh/kernel/signal_32.c +5 −5
  1361. arch/sh/kernel/signal_64.c +2 −2
  1362. arch/sh/kernel/smp.c +0 −9
  1363. arch/sh/kernel/traps.c +2 −2
  1364. arch/sh/kernel/traps_32.c +18 −163
  1365. arch/sh/kernel/traps_64.c +14 −14
  1366. arch/sh/kernel/vmlinux.lds.S +12 −30
  1367. arch/sh/math-emu/math.c +6 −6
  1368. arch/sh/mm/Kconfig +13 −35
  1369. arch/sh/mm/Makefile +7 −5
  1370. arch/sh/mm/alignment.c +189 −0
  1371. arch/sh/mm/cache-debugfs.c +3 −4
  1372. arch/sh/mm/cache-sh2.c +6 −6
  1373. arch/sh/mm/cache-sh2a.c +10 −10
  1374. arch/sh/mm/cache-sh3.c +3 −3
  1375. arch/sh/mm/cache-sh4.c +10 −17
  1376. arch/sh/mm/cache-sh7705.c +6 −6
  1377. arch/sh/mm/cache.c +11 −2
  1378. arch/sh/mm/fault_32.c +4 −1
  1379. arch/sh/mm/init.c +93 −73
  1380. arch/sh/mm/ioremap.c +40 −23
  1381. arch/sh/mm/ioremap_64.c +0 −326
  1382. arch/sh/mm/ioremap_fixed.c +128 −0
  1383. arch/sh/mm/nommu.c +4 −0
  1384. arch/sh/mm/pgtable.c +56 −0
  1385. arch/sh/mm/pmb.c +440 −146
  1386. arch/sh/mm/tlb-pteaex.c +1 −2
  1387. arch/sh/mm/tlb-sh3.c +3 −3
  1388. arch/sh/mm/tlb-sh4.c +6 −7
  1389. arch/sh/mm/tlb-sh5.c +39 −0
  1390. arch/sh/mm/tlb-urb.c +81 −0
  1391. arch/sh/mm/tlbflush_32.c +2 −2
  1392. arch/sh/mm/tlbflush_64.c +1 −1
  1393. arch/sh/mm/uncached.c +34 −0
  1394. arch/sh/tools/mach-types +1 −0
  1395. arch/sparc/include/asm/pgtable_32.h +2 −2
  1396. arch/sparc/include/asm/pgtable_64.h +1 −1
  1397. arch/sparc/include/asm/scatterlist.h +1 −20
  1398. arch/sparc/kernel/devices.c +1 −3
  1399. arch/sparc/kernel/leon_kernel.c +1 −1
  1400. arch/sparc/kernel/leon_smp.c +2 −2
  1401. arch/sparc/kernel/of_device_32.c +1 −1
  1402. arch/sparc/kernel/of_device_64.c +1 −1
  1403. arch/sparc/kernel/pci.c +78 −2
  1404. arch/sparc/kernel/pcic.c +3 −4
  1405. arch/sparc/kernel/perf_event.c +5 −5
  1406. arch/sparc/kernel/prom.h +0 −3
  1407. arch/sparc/kernel/prom_common.c +3 −15
  1408. arch/sparc/kernel/setup_32.c +0 −2
  1409. arch/sparc/kernel/smp_64.c +1 −1
  1410. arch/sparc/kernel/sun4d_smp.c +1 −1
  1411. arch/sparc/kernel/sys_sparc32.c +0 −1
  1412. arch/sparc/kernel/unaligned_64.c +3 −8
  1413. arch/sparc/mm/fault_32.c +62 −48
  1414. arch/sparc/mm/fault_64.c +31 −3
  1415. arch/sparc/mm/init_64.c +2 −1
  1416. arch/sparc/mm/nosun4c.c +1 −1
  1417. arch/sparc/mm/srmmu.c +3 −3
  1418. arch/sparc/mm/sun4c.c +3 −3
  1419. arch/sparc/prom/console_32.c +0 −1
  1420. arch/sparc/prom/console_64.c +0 −1
  1421. arch/sparc/prom/devmap.c +0 −1
  1422. arch/sparc/prom/devops_32.c +0 −2
  1423. arch/sparc/prom/init_32.c +0 −1
  1424. arch/sparc/prom/palloc.c +0 −1
  1425. arch/sparc/prom/ranges.c +0 −2
  1426. arch/sparc/prom/segment.c +0 −1
  1427. arch/sparc/prom/tree_32.c +0 −1
  1428. arch/sparc/prom/tree_64.c +0 −1
  1429. arch/um/drivers/ubd_kern.c +2 −2
  1430. arch/um/include/asm/pgtable.h +1 −1
  1431. arch/um/sys-x86_64/Makefile +2 −1
  1432. arch/x86/Kconfig.cpu +1 −1
  1433. arch/x86/Makefile +0 −2
  1434. arch/x86/boot/compressed/misc.c +4 −11
  1435. arch/x86/boot/mkcpustr.c +1 −1
  1436. arch/x86/boot/video-vga.c +1 −8
  1437. arch/x86/boot/video.c +7 −0
  1438. arch/x86/ia32/ia32_aout.c +1 −1
  1439. arch/x86/include/asm/alternative.h +11 −1
  1440. arch/x86/include/asm/atomic.h +297 −2
  1441. arch/x86/include/asm/atomic64_32.h +160 −0
  1442. arch/x86/include/asm/atomic64_64.h +224 −0
  1443. arch/x86/include/asm/atomic_32.h +0 −415
  1444. arch/x86/include/asm/atomic_64.h +0 −485
  1445. arch/x86/include/asm/cpufeature.h +4 −0
  1446. arch/x86/include/asm/debugreg.h +3 −0
  1447. arch/x86/include/asm/fb.h +0 −4
  1448. arch/x86/include/asm/fixmap.h +11 −5
  1449. arch/x86/include/asm/i387.h +10 −2
  1450. arch/x86/include/asm/io.h +152 −3
  1451. arch/x86/include/asm/io_32.h +0 −196
  1452. arch/x86/include/asm/io_64.h +0 −181
  1453. arch/x86/include/asm/mmzone_64.h +0 −6
  1454. arch/x86/include/asm/nmi.h +0 −1
  1455. arch/x86/include/asm/numa_64.h +5 −0
  1456. arch/x86/include/asm/numaq.h +4 −0
  1457. arch/x86/include/asm/page_types.h +0 −1
  1458. arch/x86/include/asm/pci_x86.h +1 −0
  1459. arch/x86/include/asm/perf_event.h +14 −2
  1460. arch/x86/include/asm/pgalloc.h +5 −0
  1461. arch/x86/include/asm/pgtable_32.h +1 −1
  1462. arch/x86/include/asm/pgtable_64.h +1 −1
  1463. arch/x86/include/asm/ptrace.h +0 −4
  1464. arch/x86/include/asm/rwsem.h +49 −32
  1465. arch/x86/include/asm/smp.h +9 −0
  1466. arch/x86/include/asm/stacktrace.h +0 −2
  1467. arch/x86/include/asm/uaccess_64.h +20 −1
  1468. arch/x86/include/asm/user.h +58 −0
  1469. arch/x86/include/asm/uv/bios.h +7 −4
  1470. arch/x86/include/asm/uv/uv.h +1 −0
  1471. arch/x86/include/asm/uv/uv_hub.h +2 −1
  1472. arch/x86/include/asm/x86_init.h +2 −0
  1473. arch/x86/include/asm/xsave.h +2 −0
  1474. arch/x86/kernel/acpi/boot.c +21 −0
  1475. arch/x86/kernel/alternative.c +21 −1
  1476. arch/x86/kernel/apic/apic.c +1 −1
  1477. arch/x86/kernel/apic/io_apic.c +1 −1
  1478. arch/x86/kernel/apic/numaq_32.c +1 −1
  1479. arch/x86/kernel/apic/x2apic_uv_x.c +81 −8
  1480. arch/x86/kernel/apm_32.c +2 −2
  1481. arch/x86/kernel/bios_uv.c +33 −6
  1482. arch/x86/kernel/cpu/addon_cpuid_features.c +4 −0
  1483. arch/x86/kernel/cpu/cpufreq/powernow-k8.c +3 −3
  1484. arch/x86/kernel/cpu/intel_cacheinfo.c +199 −135
  1485. arch/x86/kernel/cpu/mtrr/Makefile +1 −1
  1486. arch/x86/kernel/cpu/mtrr/amd.c +1 −1
  1487. arch/x86/kernel/cpu/mtrr/centaur.c +1 −1
  1488. arch/x86/kernel/cpu/mtrr/cyrix.c +1 −1
  1489. arch/x86/kernel/cpu/mtrr/generic.c +5 −5
  1490. arch/x86/kernel/cpu/mtrr/main.c +3 −3
  1491. arch/x86/kernel/cpu/mtrr/mtrr.h +3 −3
  1492. arch/x86/kernel/cpu/mtrr/state.c +0 −94
  1493. arch/x86/kernel/cpu/perf_event.c +534 −1320
  1494. arch/x86/kernel/cpu/perf_event_amd.c +416 −0
  1495. arch/x86/kernel/cpu/perf_event_intel.c +971 −0
  1496. arch/x86/kernel/cpu/perf_event_p6.c +157 −0
  1497. arch/x86/kernel/cpu/perfctr-watchdog.c +0 −11
  1498. arch/x86/kernel/dumpstack_32.c +0 −5
  1499. arch/x86/kernel/dumpstack_64.c +1 −5
  1500. arch/x86/kernel/e820.c +8 −0
  1501. arch/x86/kernel/efi.c +1 −1
  1502. arch/x86/kernel/hpet.c +1 −1
  1503. arch/x86/kernel/hw_breakpoint.c +7 −3
  1504. arch/x86/kernel/i387.c +67 −4
  1505. arch/x86/kernel/kprobes.c +4 −1
  1506. arch/x86/kernel/microcode_intel.c +1 −1
  1507. arch/x86/kernel/process.c +7 −0
  1508. arch/x86/kernel/process_32.c +0 −6
  1509. arch/x86/kernel/process_64.c +0 −6
  1510. arch/x86/kernel/ptrace.c +32 −26
  1511. arch/x86/kernel/setup.c +20 −1
  1512. arch/x86/kernel/smpboot.c +1 −0
  1513. arch/x86/kernel/traps.c +3 −0
  1514. arch/x86/kernel/tsc.c +2 −2
  1515. arch/x86/kernel/uv_sysfs.c +3 −3
  1516. arch/x86/kernel/x8664_ksyms_64.c +2 −1
  1517. arch/x86/kernel/x86_init.c +3 −0
  1518. arch/x86/kernel/xsave.c +1 −0
  1519. arch/x86/kvm/Kconfig +1 −0
  1520. arch/x86/lib/Makefile +3 −2
  1521. arch/x86/lib/cache-smp.c +19 −0
  1522. arch/x86/lib/copy_user_64.S +0 −6
  1523. arch/x86/lib/io_64.c +0 −25
  1524. arch/x86/lib/memcpy_64.S +8 −15
  1525. arch/x86/lib/memset_64.S +6 −12
  1526. arch/x86/lib/rwsem_64.S +81 −0
  1527. arch/x86/mm/init.c +0 −7
  1528. arch/x86/mm/init_32.c +5 −3
  1529. arch/x86/mm/ioremap.c +4 −37
  1530. arch/x86/mm/kmemcheck/kmemcheck.c +1 −1
  1531. arch/x86/mm/kmemcheck/shadow.c +14 −2
  1532. arch/x86/mm/kmemcheck/shadow.h +2 −0
  1533. arch/x86/mm/mmap.c +2 −2
  1534. arch/x86/mm/numa_64.c +101 −134
  1535. arch/x86/mm/pgtable.c +26 −5
  1536. arch/x86/mm/tlb.c +4 −4
  1537. arch/x86/oprofile/nmi_int.c +9 −8
  1538. arch/x86/oprofile/op_model_amd.c +158 −86
  1539. arch/x86/oprofile/op_model_p4.c +0 −6
  1540. arch/x86/oprofile/op_model_ppro.c +11 −6
  1541. arch/x86/oprofile/op_x86_model.h +20 −0
  1542. arch/x86/pci/acpi.c +49 −33
  1543. arch/x86/pci/bus_numa.c +2 −1
  1544. arch/x86/pci/bus_numa.h +1 −2
  1545. arch/x86/pci/common.c +3 −0
  1546. arch/x86/pci/i386.c +6 −8
  1547. arch/x86/pci/irq.c +2 −0
  1548. arch/x86/pci/mmconfig-shared.c +6 −11
  1549. arch/x86/pci/numaq_32.c +1 −5
  1550. arch/x86/tools/test_get_len.c +2 −2
  1551. arch/xtensa/include/asm/pgtable.h +1 −1
  1552. arch/xtensa/kernel/pci.c +7 −8
  1553. arch/xtensa/mm/cache.c +2 −2
  1554. arch/xtensa/platforms/iss/network.c +1 −1
  1555. block/blk-cgroup.c +0 −14
  1556. block/blk-cgroup.h +0 −3
  1557. block/blk-core.c +15 −19
  1558. block/blk-ioc.c +1 −1
  1559. block/blk-merge.c +2 −6
  1560. block/blk-settings.c +42 −89
  1561. block/blk-sysfs.c +7 −4
  1562. block/cfq-iosched.c +68 −79
  1563. block/elevator.c +10 −1
  1564. crypto/Kconfig +10 −0
  1565. crypto/Makefile +1 −0
  1566. crypto/ablkcipher.c +2 −2
  1567. crypto/aead.c +2 −2
  1568. crypto/aes_generic.c +2 −2
  1569. crypto/algapi.c +2 −2
  1570. crypto/anubis.c +11 −11
  1571. crypto/api.c +6 −7
  1572. crypto/authenc.c +5 −5
  1573. crypto/blowfish.c +9 −9
  1574. crypto/camellia.c +308 −308
  1575. crypto/cast5.c +7 −7
  1576. crypto/cast6.c +62 −60
  1577. crypto/cipher.c +1 −1
  1578. crypto/compress.c +2 −2
  1579. crypto/crc32c.c +3 −3
  1580. crypto/crypto_null.c +4 −4
  1581. crypto/deflate.c +10 −10
  1582. crypto/des_generic.c +1 −2
  1583. crypto/ecb.c +1 −1
  1584. crypto/fcrypt.c +3 −3
  1585. crypto/gcm.c +287 −0
  1586. crypto/md5.c +24 −16
  1587. crypto/pcrypt.c +445 −0
  1588. crypto/testmgr.c +84 −0
  1589. drivers/Makefile +1 −0
  1590. drivers/acpi/acpica/accommon.h +1 −1
  1591. drivers/acpi/acpica/acconfig.h +1 −1
  1592. drivers/acpi/acpica/acdebug.h +1 −1
  1593. drivers/acpi/acpica/acdispat.h +1 −1
  1594. drivers/acpi/acpica/acevents.h +4 −11
  1595. drivers/acpi/acpica/acglobal.h +1 −1
  1596. drivers/acpi/acpica/achware.h +1 −1
  1597. drivers/acpi/acpica/acinterp.h +20 −24
  1598. drivers/acpi/acpica/aclocal.h +5 −3
  1599. drivers/acpi/acpica/acmacros.h +7 −7
  1600. drivers/acpi/acpica/acnamesp.h +12 −6
  1601. drivers/acpi/acpica/acobject.h +4 −2
  1602. drivers/acpi/acpica/acopcode.h +1 −1
  1603. drivers/acpi/acpica/acparser.h +1 −1
  1604. drivers/acpi/acpica/acpredef.h +1 −1
  1605. drivers/acpi/acpica/acresrc.h +1 −1
  1606. drivers/acpi/acpica/acstruct.h +1 −1
  1607. drivers/acpi/acpica/actables.h +1 −1
  1608. drivers/acpi/acpica/acutils.h +9 −13
  1609. drivers/acpi/acpica/amlcode.h +1 −1
  1610. drivers/acpi/acpica/amlresrc.h +1 −1
  1611. drivers/acpi/acpica/dsfield.c +6 −6
  1612. drivers/acpi/acpica/dsinit.c +1 −1
  1613. drivers/acpi/acpica/dsmethod.c +1 −1
  1614. drivers/acpi/acpica/dsmthdat.c +1 −1
  1615. drivers/acpi/acpica/dsobject.c +2 −2
  1616. drivers/acpi/acpica/dsopcode.c +1 −1
  1617. drivers/acpi/acpica/dsutils.c +1 −1
  1618. drivers/acpi/acpica/dswexec.c +1 −1
  1619. drivers/acpi/acpica/dswload.c +1 −1
  1620. drivers/acpi/acpica/dswscope.c +1 −1
  1621. drivers/acpi/acpica/dswstate.c +1 −1
  1622. drivers/acpi/acpica/evevent.c +1 −1
  1623. drivers/acpi/acpica/evgpe.c +19 −144
  1624. drivers/acpi/acpica/evgpeblk.c +34 −55
  1625. drivers/acpi/acpica/evmisc.c +10 −4
  1626. drivers/acpi/acpica/evregion.c +3 −4
  1627. drivers/acpi/acpica/evrgnini.c +2 −2
  1628. drivers/acpi/acpica/evsci.c +1 −1
  1629. drivers/acpi/acpica/evxface.c +140 −51
  1630. drivers/acpi/acpica/evxfevnt.c +72 −26
  1631. drivers/acpi/acpica/evxfregn.c +1 −1
  1632. drivers/acpi/acpica/exconfig.c +7 −10
  1633. drivers/acpi/acpica/exconvrt.c +9 −12
  1634. drivers/acpi/acpica/excreate.c +1 −1
  1635. drivers/acpi/acpica/exdump.c +1 −1
  1636. drivers/acpi/acpica/exfield.c +4 −5
  1637. drivers/acpi/acpica/exfldio.c +27 −32
  1638. drivers/acpi/acpica/exmisc.c +5 −7
  1639. drivers/acpi/acpica/exmutex.c +1 −1
  1640. drivers/acpi/acpica/exnames.c +1 −1
  1641. drivers/acpi/acpica/exoparg1.c +8 −8
  1642. drivers/acpi/acpica/exoparg2.c +3 −3
  1643. drivers/acpi/acpica/exoparg3.c +2 −2
  1644. drivers/acpi/acpica/exoparg6.c +5 −5
  1645. drivers/acpi/acpica/exprep.c +1 −1
  1646. drivers/acpi/acpica/exregion.c +16 −19
  1647. drivers/acpi/acpica/exresnte.c +1 −1
  1648. drivers/acpi/acpica/exresolv.c +1 −1
  1649. drivers/acpi/acpica/exresop.c +1 −1
  1650. drivers/acpi/acpica/exstore.c +1 −1
  1651. drivers/acpi/acpica/exstoren.c +1 −1
  1652. drivers/acpi/acpica/exstorob.c +1 −1
  1653. drivers/acpi/acpica/exsystem.c +2 −2
  1654. drivers/acpi/acpica/exutils.c +12 −12
  1655. drivers/acpi/acpica/hwacpi.c +1 −1
  1656. drivers/acpi/acpica/hwgpe.c +3 −5
  1657. drivers/acpi/acpica/hwregs.c +1 −1
  1658. drivers/acpi/acpica/hwsleep.c +1 −1
  1659. drivers/acpi/acpica/hwtimer.c +2 −2
  1660. drivers/acpi/acpica/hwvalid.c +1 −1
  1661. drivers/acpi/acpica/hwxface.c +1 −1
  1662. drivers/acpi/acpica/nsaccess.c +1 −1
  1663. drivers/acpi/acpica/nsalloc.c +1 −1
  1664. drivers/acpi/acpica/nsdump.c +1 −1
  1665. drivers/acpi/acpica/nsdumpdv.c +1 −1
  1666. drivers/acpi/acpica/nseval.c +1 −1
  1667. drivers/acpi/acpica/nsinit.c +1 −1
  1668. drivers/acpi/acpica/nsload.c +1 −1
  1669. drivers/acpi/acpica/nsnames.c +1 −1
  1670. drivers/acpi/acpica/nsobject.c +1 −1
  1671. drivers/acpi/acpica/nsparse.c +1 −1
  1672. drivers/acpi/acpica/nspredef.c +36 −17
  1673. drivers/acpi/acpica/nsrepair.c +174 −1
  1674. drivers/acpi/acpica/nsrepair2.c +10 −100
  1675. drivers/acpi/acpica/nssearch.c +1 −1
  1676. drivers/acpi/acpica/nsutils.c +1 −1
  1677. drivers/acpi/acpica/nswalk.c +1 −1
  1678. drivers/acpi/acpica/nsxfeval.c +34 −20
  1679. drivers/acpi/acpica/nsxfname.c +1 −1
  1680. drivers/acpi/acpica/nsxfobj.c +1 −1
  1681. drivers/acpi/acpica/psargs.c +2 −2
  1682. drivers/acpi/acpica/psloop.c +1 −1
  1683. drivers/acpi/acpica/psopcode.c +1 −1
  1684. drivers/acpi/acpica/psparse.c +1 −1
  1685. drivers/acpi/acpica/psscope.c +1 −1
  1686. drivers/acpi/acpica/pstree.c +1 −1
  1687. drivers/acpi/acpica/psutils.c +1 −1
  1688. drivers/acpi/acpica/pswalk.c +1 −1
  1689. drivers/acpi/acpica/psxface.c +1 −1
  1690. drivers/acpi/acpica/rsaddr.c +1 −1
  1691. drivers/acpi/acpica/rscalc.c +1 −1
  1692. drivers/acpi/acpica/rscreate.c +2 −2
  1693. drivers/acpi/acpica/rsdump.c +1 −1
  1694. drivers/acpi/acpica/rsinfo.c +1 −1
  1695. drivers/acpi/acpica/rsio.c +1 −1
  1696. drivers/acpi/acpica/rsirq.c +1 −1
  1697. drivers/acpi/acpica/rslist.c +1 −1
  1698. drivers/acpi/acpica/rsmemory.c +1 −1
  1699. drivers/acpi/acpica/rsmisc.c +1 −1
  1700. drivers/acpi/acpica/rsutils.c +1 −1
  1701. drivers/acpi/acpica/rsxface.c +1 −1
  1702. drivers/acpi/acpica/tbfadt.c +1 −1
  1703. drivers/acpi/acpica/tbfind.c +1 −1
  1704. drivers/acpi/acpica/tbinstal.c +1 −1
  1705. drivers/acpi/acpica/tbutils.c +1 −1
  1706. drivers/acpi/acpica/tbxface.c +1 −1
  1707. drivers/acpi/acpica/tbxfroot.c +1 −1
  1708. drivers/acpi/acpica/utalloc.c +1 −1
  1709. drivers/acpi/acpica/utcopy.c +1 −1
  1710. drivers/acpi/acpica/utdebug.c +2 −3
  1711. drivers/acpi/acpica/utdelete.c +1 −1
  1712. drivers/acpi/acpica/uteval.c +2 −2
  1713. drivers/acpi/acpica/utglobal.c +2 −2
  1714. drivers/acpi/acpica/utids.c +1 −1
  1715. drivers/acpi/acpica/utinit.c +1 −1
  1716. drivers/acpi/acpica/utlock.c +1 −1
  1717. drivers/acpi/acpica/utmath.c +11 −16
  1718. drivers/acpi/acpica/utmisc.c +7 −9
  1719. drivers/acpi/acpica/utmutex.c +4 −14
  1720. drivers/acpi/acpica/utobject.c +1 −1
  1721. drivers/acpi/acpica/utresrc.c +1 −1
  1722. drivers/acpi/acpica/utstate.c +1 −1
  1723. drivers/acpi/acpica/utxface.c +1 −1
  1724. drivers/acpi/battery.c +2 −2
  1725. drivers/acpi/button.c +11 −4
  1726. drivers/acpi/ec.c +21 −11
  1727. drivers/acpi/glue.c +2 −2
  1728. drivers/acpi/internal.h +0 −2
  1729. drivers/acpi/osl.c +2 −2
  1730. drivers/acpi/pci_bind.c +13 −1
  1731. drivers/acpi/pci_root.c +9 −0
  1732. drivers/acpi/power_meter.c +15 −15
  1733. drivers/acpi/processor_idle.c +1 −1
  1734. drivers/acpi/processor_throttling.c +12 −12
  1735. drivers/acpi/scan.c +28 −10
  1736. drivers/acpi/sleep.c +12 −3
  1737. drivers/acpi/system.c +2 −2
  1738. drivers/acpi/utils.c +8 −8
  1739. drivers/acpi/video.c +1 −1
  1740. drivers/acpi/wakeup.c +29 −55
  1741. drivers/ata/Kconfig +2 −2
  1742. drivers/ata/ahci.c +223 −24
  1743. drivers/ata/ata_generic.c +1 −1
  1744. drivers/ata/ata_piix.c +23 −5
  1745. drivers/ata/libata-acpi.c +2 −2
  1746. drivers/ata/libata-core.c +11 −6
  1747. drivers/ata/libata-scsi.c +1 −1
  1748. drivers/ata/libata-sff.c +39 −11
  1749. drivers/ata/pata_acpi.c +1 −1
  1750. drivers/ata/pata_ali.c +4 −6
  1751. drivers/ata/pata_amd.c +1 −1
  1752. drivers/ata/pata_artop.c +1 −1
  1753. drivers/ata/pata_at91.c +2 −2
  1754. drivers/ata/pata_atiixp.c +12 −2
  1755. drivers/ata/pata_cmd640.c +1 −1
  1756. drivers/ata/pata_cmd64x.c +13 −14
  1757. drivers/ata/pata_cs5530.c +1 −1
  1758. drivers/ata/pata_cs5535.c +2 −2
  1759. drivers/ata/pata_cs5536.c +1 −1
  1760. drivers/ata/pata_cypress.c +7 −5
  1761. drivers/ata/pata_efar.c +19 −3
  1762. drivers/ata/pata_hpt366.c +6 −17
  1763. drivers/ata/pata_hpt37x.c +85 −104
  1764. drivers/ata/pata_hpt3x2n.c +56 −64
  1765. drivers/ata/pata_it8213.c +1 −1
  1766. drivers/ata/pata_it821x.c +1 −1
  1767. drivers/ata/pata_jmicron.c +1 −1
  1768. drivers/ata/pata_marvell.c +2 −2
  1769. drivers/ata/pata_netcell.c +1 −1
  1770. drivers/ata/pata_ns87410.c +1 −1
  1771. drivers/ata/pata_ns87415.c +1 −1
  1772. drivers/ata/pata_oldpiix.c +1 −1
  1773. drivers/ata/pata_opti.c +1 −1
  1774. drivers/ata/pata_optidma.c +1 −1
  1775. drivers/ata/pata_pcmcia.c +1 −1
  1776. drivers/ata/pata_pdc202xx_old.c +15 −2
  1777. drivers/ata/pata_piccolo.c +1 −1
  1778. drivers/ata/pata_radisys.c +1 −1
  1779. drivers/ata/pata_rz1000.c +1 −1
  1780. drivers/ata/pata_sc1200.c +1 −1
  1781. drivers/ata/pata_serverworks.c +4 −3
  1782. drivers/ata/pata_sil680.c +1 −1
  1783. drivers/ata/pata_sis.c +1 −1
  1784. drivers/ata/pata_sl82c105.c +1 −1
  1785. drivers/ata/pata_triflex.c +1 −1
  1786. drivers/ata/pata_via.c +97 −113
  1787. drivers/ata/sata_nv.c +1 −1
  1788. drivers/ata/sata_via.c +20 −3
  1789. drivers/atm/fore200e.c +4 −7
  1790. drivers/atm/idt77252.c +1 −4
  1791. drivers/atm/lanai.c +3 −11
  1792. drivers/atm/nicstar.c +1 −3
  1793. drivers/base/power/main.c +132 −11
  1794. drivers/base/power/power.h +3 −3
  1795. drivers/base/power/runtime.c +45 −0
  1796. drivers/base/power/sysfs.c +100 −0
  1797. drivers/block/DAC960.c +3 −3
  1798. drivers/block/ataflop.c +0 −2
  1799. drivers/block/brd.c +1 −1
  1800. drivers/block/cciss.c +107 −111
  1801. drivers/block/cciss.h +6 −15
  1802. drivers/block/cciss_cmd.h +31 −133
  1803. drivers/block/cciss_scsi.c +89 −56
  1804. drivers/block/cciss_scsi.h +9 −9
  1805. drivers/block/cpqarray.c +1 −4
  1806. drivers/block/drbd/drbd_nl.c +2 −3
  1807. drivers/block/floppy.c +1 −1
  1808. drivers/block/hd.c +1 −1
  1809. drivers/block/mg_disk.c +1 −1
  1810. drivers/block/paride/pd.c +1 −1
  1811. drivers/block/paride/pf.c +1 −2
  1812. drivers/block/pktcdvd.c +25 −72
  1813. drivers/block/ps3disk.c +2 −3
  1814. drivers/block/ps3vram.c +3 −4
  1815. drivers/block/sunvdc.c +2 −3
  1816. drivers/block/swim.c +2 −2
  1817. drivers/block/sx8.c +2 −3
  1818. drivers/block/ub.c +3 −4
  1819. drivers/block/viodasd.c +38 −53
  1820. drivers/block/virtio_blk.c +47 −16
  1821. drivers/block/xd.c +1 −1
  1822. drivers/block/xen-blkfront.c +3 −4
  1823. drivers/block/xsysace.c +1 −1
  1824. drivers/bluetooth/ath3k.c +2 −0
  1825. drivers/bluetooth/bcm203x.c +1 −1
  1826. drivers/bluetooth/bfusb.c +1 −1
  1827. drivers/bluetooth/bluecard_cs.c +1 −1
  1828. drivers/bluetooth/bpa10x.c +1 −1
  1829. drivers/bluetooth/bt3c_cs.c +1 −1
  1830. drivers/bluetooth/btmrvl_debugfs.c +7 −7
  1831. drivers/bluetooth/btmrvl_main.c +1 −1
  1832. drivers/bluetooth/btmrvl_sdio.c +2 −2
  1833. drivers/bluetooth/btsdio.c +1 −1
  1834. drivers/bluetooth/btuart_cs.c +1 −1
  1835. drivers/bluetooth/btusb.c +1 −1
  1836. drivers/bluetooth/dtl1_cs.c +1 −1
  1837. drivers/bluetooth/hci_ldisc.c +1 −1
  1838. drivers/bluetooth/hci_vhci.c +1 −1
  1839. drivers/cdrom/gdrom.c +1 −1
  1840. drivers/cdrom/viocd.c +2 −3
  1841. drivers/char/Kconfig +8 −0
  1842. drivers/char/agp/intel-agp.c +4 −11
  1843. drivers/char/hvc_beat.c +2 −2
  1844. drivers/char/hvc_console.c +5 −4
  1845. drivers/char/hvc_console.h +5 −4
  1846. drivers/char/hvc_iseries.c +1 −1
  1847. drivers/char/hvc_iucv.c +1 −1
  1848. drivers/char/hvc_rtas.c +1 −1
  1849. drivers/char/hvc_udbg.c +1 −1
  1850. drivers/char/hvc_vio.c +1 −1
  1851. drivers/char/hvc_xen.c +1 −1
  1852. drivers/char/hw_random/Kconfig +13 −1
  1853. drivers/char/hw_random/Makefile +1 −0
  1854. drivers/char/hw_random/nomadik-rng.c +103 −0
  1855. drivers/char/keyboard.c +16 −13
  1856. drivers/char/nvram.c +0 −3
  1857. drivers/char/pcmcia/cm4000_cs.c +1 −1
  1858. drivers/char/virtio_console.c +1432 −146
  1859. drivers/char/vme_scc.c +6 −6
  1860. drivers/clocksource/sh_cmt.c +26 −41
  1861. drivers/clocksource/sh_mtu2.c +3 −3
  1862. drivers/clocksource/sh_tmu.c +3 −3
  1863. drivers/crypto/amcc/crypto4xx_core.c +1 −1
  1864. drivers/crypto/geode-aes.c +4 −4
  1865. drivers/crypto/talitos.c +1 −1
  1866. drivers/dma/shdma.c +297 −114
  1867. drivers/dma/shdma.h +2 −5
  1868. drivers/firewire/sbp2.c +1 −1
  1869. drivers/firmware/iscsi_ibft.c +4 −10
  1870. drivers/gpu/drm/radeon/radeon_combios.c +22 −22
  1871. drivers/gpu/vga/Kconfig +8 −0
  1872. drivers/gpu/vga/vgaarb.c +21 −6
  1873. drivers/hid/Kconfig +50 −4
  1874. drivers/hid/Makefile +9 −0
  1875. drivers/hid/hid-3m-pct.c +290 −0
  1876. drivers/hid/hid-apple.c +12 −5
  1877. drivers/hid/hid-core.c +16 −7
  1878. drivers/hid/hid-debug.c +3 −3
  1879. drivers/hid/hid-ids.h +30 −7
  1880. drivers/hid/hid-input.c +9 −3
  1881. drivers/hid/hid-lg.c +6 −1
  1882. drivers/hid/hid-lg.h +6 −0
  1883. drivers/hid/hid-lg3ff.c +176 −0
  1884. drivers/hid/hid-lgff.c +1 −0
  1885. drivers/hid/hid-magicmouse.c +449 −0
  1886. drivers/hid/hid-mosart.c +273 −0
  1887. drivers/hid/hid-ntrig.c +147 −65
  1888. drivers/hid/hid-ortek.c +56 −0
  1889. drivers/hid/hid-quanta.c +260 −0
  1890. drivers/hid/hid-sony.c +20 −3
  1891. drivers/hid/hid-stantum.c +283 −0
  1892. drivers/hid/hid-wacom.c +28 −0
  1893. drivers/hid/hidraw.c +1 −1
  1894. drivers/hid/usbhid/hid-core.c +33 −9
  1895. drivers/hid/usbhid/hid-quirks.c +3 −0
  1896. drivers/hid/usbhid/usbhid.h +2 −0
  1897. drivers/hwmon/ams/ams-core.c +7 −4
  1898. drivers/hwmon/ams/ams-i2c.c +2 −0
  1899. drivers/hwmon/ams/ams-pmu.c +2 −0
  1900. drivers/hwmon/ams/ams.h +1 −0
  1901. drivers/i2c/busses/Kconfig +10 −0
  1902. drivers/i2c/busses/Makefile +1 −0
  1903. drivers/i2c/busses/i2c-octeon.c +651 −0
  1904. drivers/i2c/busses/i2c-pnx.c +155 −130
  1905. drivers/ide/au1xxx-ide.c +9 −12
  1906. drivers/ide/ide-acpi.c +4 −4
  1907. drivers/ide/ide-disk.c +1 −1
  1908. drivers/ide/ide-floppy.c +2 −2
  1909. drivers/ide/ide-probe.c +2 −3
  1910. drivers/ieee1394/sbp2.c +1 −1
  1911. drivers/infiniband/hw/cxgb3/iwch_cm.c +2 −9
  1912. drivers/infiniband/hw/nes/nes_nic.c +49 −36
  1913. drivers/infiniband/ulp/ipoib/ipoib_cm.c +1 −1
  1914. drivers/infiniband/ulp/ipoib/ipoib_multicast.c +1 −1
  1915. drivers/input/evdev.c +2 −0
  1916. drivers/input/gameport/emu10k1-gp.c +1 −1
  1917. drivers/input/gameport/fm801-gp.c +1 −1
  1918. drivers/input/gameport/gameport.c +40 −58
  1919. drivers/input/gameport/ns558.c +1 −1
  1920. drivers/input/input-compat.h +0 −2
  1921. drivers/input/input.c +72 −18
  1922. drivers/input/joydev.c +17 −17
  1923. drivers/input/joystick/Kconfig +1 −0
  1924. drivers/input/joystick/gamecon.c +434 −230
  1925. drivers/input/joystick/xpad.c +158 −95
  1926. drivers/input/keyboard/Kconfig +24 −9
  1927. drivers/input/keyboard/Makefile +1 −0
  1928. drivers/input/keyboard/adp5588-keys.c +4 −2
  1929. drivers/input/keyboard/atkbd.c +161 −148
  1930. drivers/input/keyboard/ep93xx_keypad.c +15 −25
  1931. drivers/input/keyboard/gpio_keys.c +307 −11
  1932. drivers/input/keyboard/imx_keypad.c +594 −0
  1933. drivers/input/keyboard/qt2160.c +1 −1
  1934. drivers/input/keyboard/sh_keysc.c +91 −54
  1935. drivers/input/misc/apanel.c +1 −1
  1936. drivers/input/misc/atlas_btns.c +1 −1
  1937. drivers/input/misc/rotary_encoder.c +14 −0
  1938. drivers/input/misc/uinput.c +1 −3
  1939. drivers/input/misc/winbond-cir.c +104 −109
  1940. drivers/input/mouse/hgpk.c +0 −4
  1941. drivers/input/serio/pcips2.c +1 −1
  1942. drivers/input/serio/serio.c +56 −75
  1943. drivers/input/serio/xilinx_ps2.c +3 −3
  1944. drivers/input/tablet/gtco.c +1 −1
  1945. drivers/input/tablet/wacom.h +3 −2
  1946. drivers/input/tablet/wacom_sys.c +50 −20
  1947. drivers/input/tablet/wacom_wac.c +231 −177
  1948. drivers/input/tablet/wacom_wac.h +9 −8
  1949. drivers/input/touchscreen/Kconfig +5 −1
  1950. drivers/input/touchscreen/ads7846.c +27 −1
  1951. drivers/input/touchscreen/elo.c +120 −105
  1952. drivers/input/touchscreen/mainstone-wm97xx.c +3 −0
  1953. drivers/input/touchscreen/s3c2410_ts.c +17 −14
  1954. drivers/input/touchscreen/tsc2007.c +1 −1
  1955. drivers/input/touchscreen/usbtouchscreen.c +299 −18
  1956. drivers/input/touchscreen/zylonite-wm97xx.c +3 −0
  1957. drivers/input/xen-kbdfront.c +1 −1
  1958. drivers/isdn/Kconfig +28 −15
  1959. drivers/isdn/capi/Kconfig +8 −8
  1960. drivers/isdn/capi/capi.c +574 −629
  1961. drivers/isdn/capi/capidrv.c +33 −70
  1962. drivers/isdn/capi/capifs.c +69 −57
  1963. drivers/isdn/capi/capifs.h +19 −2
  1964. drivers/isdn/capi/kcapi.c +451 −366
  1965. drivers/isdn/capi/kcapi.h +8 −5
  1966. drivers/isdn/capi/kcapi_proc.c +24 −17
  1967. drivers/isdn/gigaset/asyncdata.c +4 −2
  1968. drivers/isdn/gigaset/bas-gigaset.c +6 −12
  1969. drivers/isdn/gigaset/capi.c +41 −65
  1970. drivers/isdn/gigaset/common.c +20 −29
  1971. drivers/isdn/gigaset/ev-layer.c +32 −31
  1972. drivers/isdn/gigaset/gigaset.h +4 −7
  1973. drivers/isdn/gigaset/i4l.c +6 −46
  1974. drivers/isdn/gigaset/interface.c +4 −8
  1975. drivers/isdn/gigaset/isocdata.c +31 −13
  1976. drivers/isdn/gigaset/proc.c +0 −2
  1977. drivers/isdn/gigaset/usb-gigaset.c +1 −1
  1978. drivers/isdn/hardware/avm/avmcard.h +2 −4
  1979. drivers/isdn/hardware/avm/b1.c +31 −23
  1980. drivers/isdn/hardware/avm/b1dma.c +37 −34
  1981. drivers/isdn/hardware/avm/b1isa.c +1 −1
  1982. drivers/isdn/hardware/avm/b1pci.c +2 −2
  1983. drivers/isdn/hardware/avm/b1pcmcia.c +1 −1
  1984. drivers/isdn/hardware/avm/c4.c +31 −22
  1985. drivers/isdn/hardware/avm/t1isa.c +1 −1
  1986. drivers/isdn/hardware/avm/t1pci.c +1 −1
  1987. drivers/isdn/hardware/eicon/capimain.c +24 −16
  1988. drivers/isdn/hardware/eicon/diva_didd.c +24 −21
  1989. drivers/isdn/hardware/eicon/divasi.c +25 −23
  1990. drivers/isdn/hardware/eicon/divasproc.c +87 −111
  1991. drivers/isdn/hardware/mISDN/hfcmulti.c +1 −1
  1992. drivers/isdn/hardware/mISDN/mISDNinfineon.c +1 −0
  1993. drivers/isdn/hardware/mISDN/w6692.c +2 −0
  1994. drivers/isdn/hisax/Kconfig +9 −9
  1995. drivers/isdn/hisax/avm_pci.c +3 −3
  1996. drivers/isdn/hisax/bkm_a4t.c +1 −1
  1997. drivers/isdn/hisax/bkm_a8.c +1 −1
  1998. drivers/isdn/hisax/diva.c +7 −7
  1999. drivers/isdn/hisax/elsa.c +4 −4
  2000. drivers/isdn/hisax/enternow_pci.c +1 −1
  2001. drivers/isdn/hisax/gazel.c +4 −4
  2002. drivers/isdn/hisax/hfc_pci.c +1 −1
  2003. drivers/isdn/hisax/hisax.h +23 −0
  2004. drivers/isdn/hisax/isar.c +1 −1
  2005. drivers/isdn/hisax/niccy.c +3 −3
  2006. drivers/isdn/hisax/nj_s.c +1 −1
  2007. drivers/isdn/hisax/nj_u.c +1 −1
  2008. drivers/isdn/hisax/sedlbauer.c +3 −3
  2009. drivers/isdn/hisax/telespci.c +1 −1
  2010. drivers/isdn/hisax/w6692.c +1 −1
  2011. drivers/isdn/hysdn/hycapi.c +28 −28
  2012. drivers/isdn/i4l/Kconfig +0 −7
  2013. drivers/macintosh/Kconfig +5 −2
  2014. drivers/macintosh/adb.c +6 −4
  2015. drivers/macintosh/mac_hid.c +196 −70
  2016. drivers/macintosh/therm_adt746x.c +25 −11
  2017. drivers/macintosh/therm_pm72.c +4 −4
  2018. drivers/macintosh/therm_windtunnel.c +1 −1
  2019. drivers/macintosh/via-cuda.c +41 −33
  2020. drivers/macintosh/via-pmu-backlight.c +4 −4
  2021. drivers/macintosh/via-pmu.c +4 −4
  2022. drivers/macintosh/windfarm_core.c +3 −3
  2023. drivers/macintosh/windfarm_cpufreq_clamp.c +3 −3
  2024. drivers/macintosh/windfarm_lm75_sensor.c +3 −3
  2025. drivers/macintosh/windfarm_max6690_sensor.c +3 −3
  2026. drivers/macintosh/windfarm_pm112.c +1 −1
  2027. drivers/macintosh/windfarm_pm121.c +1 −1
  2028. drivers/macintosh/windfarm_pm81.c +2 −2
  2029. drivers/macintosh/windfarm_pm91.c +1 −1
  2030. drivers/macintosh/windfarm_smu_sensors.c +3 −3
  2031. drivers/md/linear.c +1 −1
  2032. drivers/md/multipath.c +2 −2
  2033. drivers/md/raid0.c +2 −2
  2034. drivers/md/raid1.c +2 −2
  2035. drivers/md/raid10.c +2 −2
  2036. drivers/md/raid5.c +1 −1
  2037. drivers/media/IR/Makefile +1 −1
  2038. drivers/media/IR/ir-functions.c +1 −1
  2039. drivers/media/IR/ir-keymaps.c +99 −0
  2040. drivers/media/IR/ir-keytable.c +40 −21
  2041. drivers/media/IR/ir-sysfs.c +211 −0
  2042. drivers/media/common/saa7146_fops.c +6 −5
  2043. drivers/media/common/tuners/tuner-types.c +21 −0
  2044. drivers/media/common/tuners/tuner-xc2028.c +62 −17
  2045. drivers/media/dvb/Kconfig +4 −0
  2046. drivers/media/dvb/Makefile +2 −1
  2047. drivers/media/dvb/bt8xx/bt878.c +4 −17
  2048. drivers/media/dvb/bt8xx/dst.c +8 −4
  2049. drivers/media/dvb/dm1105/Kconfig +1 −0
  2050. drivers/media/dvb/dm1105/dm1105.c +265 −240
  2051. drivers/media/dvb/dvb-core/dvb_frontend.c +5 −7
  2052. drivers/media/dvb/dvb-core/dvb_net.c +6 −9
  2053. drivers/media/dvb/dvb-core/dvb_ringbuffer.c +1 −0
  2054. drivers/media/dvb/dvb-usb/Kconfig +8 −0
  2055. drivers/media/dvb/dvb-usb/Makefile +3 −0
  2056. drivers/media/dvb/dvb-usb/af9015.c +179 −172
  2057. drivers/media/dvb/dvb-usb/af9015.h +1 −0
  2058. drivers/media/dvb/dvb-usb/az6027.c +1151 −0
  2059. drivers/media/dvb/dvb-usb/az6027.h +14 −0
  2060. drivers/media/dvb/dvb-usb/cxusb.c +3 −0
  2061. drivers/media/dvb/dvb-usb/dib0700.h +0 −1
  2062. drivers/media/dvb/dvb-usb/dib0700_core.c +196 −1
  2063. drivers/media/dvb/dvb-usb/dib0700_devices.c +11 −149
  2064. drivers/media/dvb/dvb-usb/dvb-usb-ids.h +8 −1
  2065. drivers/media/dvb/dvb-usb/dvb-usb-init.c +1 −1
  2066. drivers/media/dvb/dvb-usb/dvb-usb-remote.c +1 −0
  2067. drivers/media/dvb/dvb-usb/dw2102.c +85 −10
  2068. drivers/media/dvb/dvb-usb/friio-fe.c +1 −1
  2069. drivers/media/dvb/dvb-usb/m920x.c +141 −0
  2070. drivers/media/dvb/dvb-usb/m920x.h +1 −1
  2071. drivers/media/dvb/dvb-usb/opera1.c +1 −1
  2072. drivers/media/dvb/firewire/firedtv-1394.c +12 −7
  2073. drivers/media/dvb/firewire/firedtv-avc.c +277 −237
  2074. drivers/media/dvb/firewire/firedtv-dvb.c +0 −1
  2075. drivers/media/dvb/firewire/firedtv-fw.c +1 −1
  2076. drivers/media/dvb/firewire/firedtv.h +3 −3
  2077. drivers/media/dvb/frontends/af9013.h +1 −0
  2078. drivers/media/dvb/frontends/atbm8830.c +16 −0
  2079. drivers/media/dvb/frontends/dib0090.c +1 −1
  2080. drivers/media/dvb/frontends/dib8000.c +2 −0
  2081. drivers/media/dvb/frontends/dibx000_common.c +1 −1
  2082. drivers/media/dvb/frontends/lnbp21.c +2 −1
  2083. drivers/media/dvb/frontends/si21xx.c +16 −22
  2084. drivers/media/dvb/frontends/stv0900.h +2 −0
  2085. drivers/media/dvb/frontends/stv0900_core.c +98 −11
  2086. drivers/media/dvb/frontends/stv0900_priv.h +11 −0
  2087. drivers/media/dvb/frontends/stv0900_reg.h +6 −0
  2088. drivers/media/dvb/frontends/stv0900_sw.c +44 −10
  2089. drivers/media/dvb/frontends/stv090x.c +365 −121
  2090. drivers/media/dvb/frontends/stv090x.h +11 −2
  2091. drivers/media/dvb/frontends/stv090x_priv.h +13 −4
  2092. drivers/media/dvb/frontends/stv6110x.c +120 −68
  2093. drivers/media/dvb/frontends/stv6110x.h +1 −0
  2094. drivers/media/dvb/frontends/stv6110x_priv.h +1 −0
  2095. drivers/media/dvb/frontends/tda665x.c +1 −1
  2096. drivers/media/dvb/frontends/tda8261.c +1 −1
  2097. drivers/media/dvb/frontends/zl10036.c +1 −1
  2098. drivers/media/dvb/frontends/zl10039.c +0 −1
  2099. drivers/media/dvb/mantis/mantis_hif.c +0 −2
  2100. drivers/media/dvb/mantis/mantis_input.c +1 −1
  2101. drivers/media/dvb/mantis/mantis_pci.c +0 −5
  2102. drivers/media/dvb/ngene/Kconfig +9 −0
  2103. drivers/media/dvb/ngene/Makefile +11 −0
  2104. drivers/media/dvb/ngene/ngene-core.c +2024 −0
  2105. drivers/media/dvb/ngene/ngene.h +859 −0
  2106. drivers/media/dvb/siano/sms-cards.c +1 −0
  2107. drivers/media/dvb/siano/smscoreapi.c +5 −2
  2108. drivers/media/dvb/siano/smscoreapi.h +76 −1
  2109. drivers/media/dvb/siano/smsdvb.c +291 −27
  2110. drivers/media/dvb/siano/smsir.c +3 −3
  2111. drivers/media/dvb/ttpci/av7110_ir.c +8 −6
  2112. drivers/media/dvb/ttpci/budget-ci.c +1 −1
  2113. drivers/media/dvb/ttpci/budget.c +2 −2
  2114. drivers/media/radio/Kconfig +23 −0
  2115. drivers/media/radio/Makefile +2 −0
  2116. drivers/media/radio/radio-timb.c +244 −0
  2117. drivers/media/radio/saa7706h.c +451 −0
  2118. drivers/media/radio/si470x/radio-si470x-common.c +1 −1
  2119. drivers/media/radio/si470x/radio-si470x-usb.c +5 −3
  2120. drivers/media/video/Kconfig +34 −2
  2121. drivers/media/video/Makefile +2 −0
  2122. drivers/media/video/bt819.c +5 −5
  2123. drivers/media/video/bt8xx/bttv-driver.c +7 −2
  2124. drivers/media/video/bt8xx/bttv-input.c +2 −2
  2125. drivers/media/video/cafe_ccic.c +3 −3
  2126. drivers/media/video/cpia.c +0 −3
  2127. drivers/media/video/cx18/Kconfig +11 −0
  2128. drivers/media/video/cx18/Makefile +2 −0
  2129. drivers/media/video/cx18/cx18-alsa-main.c +293 −0
  2130. drivers/media/video/cx18/cx18-alsa-mixer.c +175 −0
  2131. drivers/media/video/cx18/cx18-alsa-mixer.h +23 −0
  2132. drivers/media/video/cx18/cx18-alsa-pcm.c +354 −0
  2133. drivers/media/video/cx18/cx18-alsa-pcm.h +27 −0
  2134. drivers/media/video/cx18/cx18-alsa.h +75 −0
  2135. drivers/media/video/cx18/cx18-cards.c +1 −1
  2136. drivers/media/video/cx18/cx18-driver.c +60 −10
  2137. drivers/media/video/cx18/cx18-driver.h +35 −15
  2138. drivers/media/video/cx18/cx18-dvb.c +14 −8
  2139. drivers/media/video/cx18/cx18-fileops.c +123 −82
  2140. drivers/media/video/cx18/cx18-fileops.h +3 −0
  2141. drivers/media/video/cx18/cx18-ioctl.c +134 −1
  2142. drivers/media/video/cx18/cx18-mailbox.c +42 −3
  2143. drivers/media/video/cx18/cx18-queue.c +3 −0
  2144. drivers/media/video/cx18/cx18-streams.c +61 −11
  2145. drivers/media/video/cx18/cx18-streams.h +10 −0
  2146. drivers/media/video/cx18/cx18-version.h +1 −1
  2147. drivers/media/video/cx18/cx23418.h +2 −1
  2148. drivers/media/video/cx231xx/cx231xx-dvb.c +4 −4
  2149. drivers/media/video/cx231xx/cx231xx-input.c +1 −1
  2150. drivers/media/video/cx23885/cx23885-417.c +2 −2
  2151. drivers/media/video/cx23885/cx23885-cards.c +32 −0
  2152. drivers/media/video/cx23885/cx23885-dvb.c +8 −9
  2153. drivers/media/video/cx23885/cx23885-input.c +1 −1
  2154. drivers/media/video/cx23885/cx23885-video.c +13 −0
  2155. drivers/media/video/cx23885/cx23885.h +1 −0
  2156. drivers/media/video/cx25840/cx25840-core.c +41 −13
  2157. drivers/media/video/cx88/cx88-alsa.c +6 −4
  2158. drivers/media/video/cx88/cx88-cards.c +23 −0
  2159. drivers/media/video/cx88/cx88-dvb.c +214 −0
  2160. drivers/media/video/cx88/cx88-input.c +2 −2
  2161. drivers/media/video/cx88/cx88-mpeg.c +3 −0
  2162. drivers/media/video/cx88/cx88.h +1 −0
  2163. drivers/media/video/dabusb.c +2 −0
  2164. drivers/media/video/davinci/Makefile +1 −0
  2165. drivers/media/video/davinci/dm355_ccdc.c +257 −153
  2166. drivers/media/video/davinci/dm644x_ccdc.c +225 −136
  2167. drivers/media/video/davinci/isif.c +1172 −0
  2168. drivers/media/video/davinci/isif_regs.h +269 −0
  2169. drivers/media/video/davinci/vpfe_capture.c +13 −118
  2170. drivers/media/video/davinci/vpss.c +235 −54
  2171. drivers/media/video/em28xx/em28xx-cards.c +73 −7
  2172. drivers/media/video/em28xx/em28xx-core.c +16 −3
  2173. drivers/media/video/em28xx/em28xx-dvb.c +3 −0
  2174. drivers/media/video/em28xx/em28xx-input.c +87 −26
  2175. drivers/media/video/em28xx/em28xx-reg.h +2 −2
  2176. drivers/media/video/em28xx/em28xx-vbi.c +10 −7
  2177. drivers/media/video/em28xx/em28xx-video.c +38 −20
  2178. drivers/media/video/em28xx/em28xx.h +5 −1
  2179. drivers/media/video/et61x251/Kconfig +5 −1
  2180. drivers/media/video/gspca/Kconfig +43 −3
  2181. drivers/media/video/gspca/Makefile +8 −0
  2182. drivers/media/video/gspca/benq.c +322 −0
  2183. drivers/media/video/gspca/coarse_expo_autogain.h +116 −0
  2184. drivers/media/video/gspca/conex.c +2 −2
  2185. drivers/media/video/gspca/cpia1.c +2022 −0
  2186. drivers/media/video/gspca/etoms.c +2 −2
  2187. drivers/media/video/gspca/gl860/gl860.c +5 −5
  2188. drivers/media/video/gspca/gspca.c +238 −21
  2189. drivers/media/video/gspca/gspca.h +23 −7
  2190. drivers/media/video/gspca/m5602/m5602_mt9m111.c +2 −2
  2191. drivers/media/video/gspca/m5602/m5602_ov7660.c +1 −1
  2192. drivers/media/video/gspca/m5602/m5602_ov7660.h +1 −1
  2193. drivers/media/video/gspca/m5602/m5602_ov9650.c +1 −1
  2194. drivers/media/video/gspca/m5602/m5602_po1030.c +1 −1
  2195. drivers/media/video/gspca/m5602/m5602_s5k4aa.c +1 −1
  2196. drivers/media/video/gspca/m5602/m5602_s5k83a.c +1 −1
  2197. drivers/media/video/gspca/mars.c +1 −1
  2198. drivers/media/video/gspca/mr97310a.c +193 −33
  2199. drivers/media/video/gspca/ov519.c +130 −21
  2200. drivers/media/video/gspca/ov534.c +117 −1136
  2201. drivers/media/video/gspca/ov534_9.c +1477 −0
  2202. drivers/media/video/gspca/pac207.c +24 −1
  2203. drivers/media/video/gspca/pac7302.c +188 −223
  2204. drivers/media/video/gspca/pac7311.c +118 −133
  2205. drivers/media/video/gspca/pac_common.h +4 −5
  2206. drivers/media/video/gspca/sn9c2028.c +757 −0
  2207. drivers/media/video/gspca/sn9c2028.h +51 −0
  2208. drivers/media/video/gspca/sn9c20x.c +17 −16
  2209. drivers/media/video/gspca/sonixb.c +330 −121
  2210. drivers/media/video/gspca/sonixj.c +264 −77
  2211. drivers/media/video/gspca/spca500.c +2 −2
  2212. drivers/media/video/gspca/spca501.c +1 −1
  2213. drivers/media/video/gspca/spca505.c +1 −1
  2214. drivers/media/video/gspca/spca506.c +2 −2
  2215. drivers/media/video/gspca/spca508.c +1 −1
  2216. drivers/media/video/gspca/spca561.c +2 −2
  2217. drivers/media/video/gspca/sq905c.c +44 −1
  2218. drivers/media/video/gspca/stk014.c +1 −1
  2219. drivers/media/video/gspca/stv0680.c +13 −3
  2220. drivers/media/video/gspca/stv06xx/stv06xx.c +30 −2
  2221. drivers/media/video/gspca/sunplus.c +21 −165
  2222. drivers/media/video/gspca/t613.c +50 −1
  2223. drivers/media/video/gspca/tv8532.c +1 −1
  2224. drivers/media/video/gspca/vc032x.c +621 −73
  2225. drivers/media/video/gspca/zc3xx.c +352 −327
  2226. drivers/media/video/hdpvr/hdpvr-core.c +3 −2
  2227. drivers/media/video/hdpvr/hdpvr-video.c +3 −2
  2228. drivers/media/video/hdpvr/hdpvr.h +1 −0
  2229. drivers/media/video/hexium_gemini.c +7 −2
  2230. drivers/media/video/hexium_orion.c +4 −0
  2231. drivers/media/video/ir-kbd-i2c.c +3 −2
  2232. drivers/media/video/ivtv/ivtv-cards.c +48 −0
  2233. drivers/media/video/ivtv/ivtv-cards.h +3 −1
  2234. drivers/media/video/ivtv/ivtv-driver.c +1 −0
  2235. drivers/media/video/ivtv/ivtv-firmware.c +1 −1
  2236. drivers/media/video/ivtv/ivtv-irq.c +8 −6
  2237. drivers/media/video/ivtv/ivtv-mailbox.c +5 −4
  2238. drivers/media/video/ivtv/ivtv-mailbox.h +2 −1
  2239. drivers/media/video/ivtv/ivtv-streams.c +5 −1
  2240. drivers/media/video/ivtv/ivtv-udma.c +1 −0
  2241. drivers/media/video/mt9v022.c +8 −9
  2242. drivers/media/video/mxb.c +7 −3
  2243. drivers/media/video/ov772x.c +7 −15
  2244. drivers/media/video/pvrusb2/pvrusb2-hdw-internal.h +10 −2
  2245. drivers/media/video/pvrusb2/pvrusb2-hdw.c +46 −7
  2246. drivers/media/video/pvrusb2/pvrusb2-hdw.h +1 −0
  2247. drivers/media/video/pxa_camera.c +0 −10
  2248. drivers/media/video/rj54n1cb0c.c +6 −6
  2249. drivers/media/video/saa7115.c +16 −11
  2250. drivers/media/video/saa7127.c +40 −7
  2251. drivers/media/video/saa7134/saa7134-cards.c +47 −5
  2252. drivers/media/video/saa7134/saa7134-input.c +4 −3
  2253. drivers/media/video/saa7134/saa7134-video.c +1 −1
  2254. drivers/media/video/saa7134/saa7134.h +2 −1
  2255. drivers/media/video/saa7164/saa7164-api.c +1 −1
  2256. drivers/media/video/sh_mobile_ceu_camera.c +18 −0
  2257. drivers/media/video/sn9c102/Kconfig +4 −1
  2258. drivers/media/video/sn9c102/sn9c102_devtable.h +5 −1
  2259. drivers/media/video/soc_camera.c +30 −6
  2260. drivers/media/video/soc_mediabus.c +32 −16
  2261. drivers/media/video/tlg2300/Kconfig +16 −0
  2262. drivers/media/video/tlg2300/Makefile +9 −0
  2263. drivers/media/video/tlg2300/pd-alsa.c +332 −0
  2264. drivers/media/video/tlg2300/pd-common.h +282 −0
  2265. drivers/media/video/tlg2300/pd-dvb.c +593 −0
  2266. drivers/media/video/tlg2300/pd-main.c +539 −0
  2267. drivers/media/video/tlg2300/pd-radio.c +420 −0
  2268. drivers/media/video/tlg2300/pd-video.c +1667 −0
  2269. drivers/media/video/tlg2300/vendorcmds.h +243 −0
  2270. drivers/media/video/tuner-core.c +1 −0
  2271. drivers/media/video/tveeprom.c +1 −4
  2272. drivers/media/video/tvp7002.c +1187 −0
  2273. drivers/media/video/tvp7002_reg.h +150 −0
  2274. drivers/media/video/tw9910.c +4 −4
  2275. drivers/media/video/usbvision/usbvision-video.c +1 −1
  2276. drivers/media/video/uvc/uvc_ctrl.c +149 −93
  2277. drivers/media/video/uvc/uvc_driver.c +55 −19
  2278. drivers/media/video/uvc/uvc_queue.c +0 −1
  2279. drivers/media/video/uvc/uvc_v4l2.c +3 −1
  2280. drivers/media/video/uvc/uvc_video.c +10 −0
  2281. drivers/media/video/uvc/uvcvideo.h +7 −12
  2282. drivers/media/video/v4l2-compat-ioctl32.c +4 −1
  2283. drivers/media/video/videobuf-dma-sg.c +2 −0
  2284. drivers/media/video/videobuf-vmalloc.c +2 −0
  2285. drivers/media/video/vivi.c +1 −1
  2286. drivers/media/video/zc0301/Kconfig +5 −1
  2287. drivers/media/video/zoran/zoran_device.c +4 −2
  2288. drivers/media/video/zoran/zoran_driver.c +2 −2
  2289. drivers/media/video/zr364xx.c +35 −2
  2290. drivers/memstick/core/mspro_block.c +2 −3
  2291. drivers/message/fusion/mptbase.c +3 −2
  2292. drivers/message/fusion/mptbase.h +2 −2
  2293. drivers/message/fusion/mptctl.c +2 −2
  2294. drivers/message/fusion/mptfc.c +11 −6
  2295. drivers/message/fusion/mptsas.c +206 −5
  2296. drivers/message/fusion/mptscsih.c +7 −2
  2297. drivers/message/i2o/i2o_block.c +2 −3
  2298. drivers/message/i2o/i2o_proc.c +3 −8
  2299. drivers/mfd/Kconfig +11 −1
  2300. drivers/mfd/Makefile +2 −1
  2301. drivers/mfd/timberdale.c +727 −0
  2302. drivers/mfd/timberdale.h +130 −0
  2303. drivers/mfd/twl-core.c +15 −3
  2304. drivers/misc/iwmc3200top/fw-download.c +26 −24
  2305. drivers/misc/iwmc3200top/iwmc3200top.h +1 −3
  2306. drivers/misc/iwmc3200top/log.h +22 −9
  2307. drivers/misc/iwmc3200top/main.c +24 −35
  2308. drivers/mmc/card/queue.c +4 −6
  2309. drivers/mmc/host/au1xmmc.c +8 −4
  2310. drivers/mmc/host/mmci.c +27 −14
  2311. drivers/mmc/host/omap_hsmmc.c +384 −16
  2312. drivers/mtd/maps/Kconfig +0 −15
  2313. drivers/mtd/maps/Makefile +0 −2
  2314. drivers/mtd/maps/alchemy-flash.c +0 −166
  2315. drivers/mtd/maps/omap_nor.c +0 −188
  2316. drivers/mtd/nand/Kconfig +2 −2
  2317. drivers/mtd/nand/au1550nd.c +3 −1
  2318. drivers/mtd/nand/omap2.c +4 −31
  2319. drivers/mtd/nand/sh_flctl.c +49 −20
  2320. drivers/net/3c501.c +1 −1
  2321. drivers/net/3c505.c +6 −7
  2322. drivers/net/3c509.c +6 −4
  2323. drivers/net/3c515.c +1 −1
  2324. drivers/net/3c523.c +6 −7
  2325. drivers/net/3c527.c +7 −10
  2326. drivers/net/3c59x.c +2 −2
  2327. drivers/net/7990.c +2 −4
  2328. drivers/net/8139cp.c +34 −47
  2329. drivers/net/8139too.c +85 −111
  2330. drivers/net/82596.c +9 −6
  2331. drivers/net/Kconfig +66 −18
  2332. drivers/net/Makefile +5 −0
  2333. drivers/net/a2065.c +2 −4
  2334. drivers/net/acenic.c +2 −2
  2335. drivers/net/amd8111e.c +9 −12
  2336. drivers/net/amd8111e.h +0 −1
  2337. drivers/net/appletalk/ltpc.c +0 −1
  2338. drivers/net/arcnet/com20020-pci.c +1 −1
  2339. drivers/net/ariadne.c +1 −3
  2340. drivers/net/arm/am79c961a.c +6 −6
  2341. drivers/net/arm/at91_ether.c +3 −6
  2342. drivers/net/arm/ep93xx_eth.c +68 −72
  2343. drivers/net/arm/ether3.c +1 −1
  2344. drivers/net/arm/ixp4xx_eth.c +8 −5
  2345. drivers/net/arm/ks8695net.c +10 −13
  2346. drivers/net/arm/w90p910_ether.c +4 −4
  2347. drivers/net/at1700.c +3 −5
  2348. drivers/net/atarilance.c +1 −1
  2349. drivers/net/atl1c/atl1c.h +9 −2
  2350. drivers/net/atl1c/atl1c_ethtool.c +1 −1
  2351. drivers/net/atl1c/atl1c_hw.c +71 −12
  2352. drivers/net/atl1c/atl1c_hw.h +5 −0
  2353. drivers/net/atl1c/atl1c_main.c +109 −17
  2354. drivers/net/atl1e/atl1e_hw.c +11 −12
  2355. drivers/net/atl1e/atl1e_main.c +70 −90
  2356. drivers/net/atl1e/atl1e_param.c +20 −15
  2357. drivers/net/atlx/atl1.c +1 −1
  2358. drivers/net/atlx/atl2.c +2 −2
  2359. drivers/net/atlx/atlx.c +1 −1
  2360. drivers/net/atp.c +4 −5
  2361. drivers/net/au1000_eth.c +225 −223
  2362. drivers/net/au1000_eth.h +9 −0
  2363. drivers/net/b44.c +46 −48
  2364. drivers/net/bcm63xx_enet.c +6 −9
  2365. drivers/net/benet/Kconfig +2 −2
  2366. drivers/net/benet/be.h +11 −8
  2367. drivers/net/benet/be_cmds.c +93 −25
  2368. drivers/net/benet/be_cmds.h +24 −5
  2369. drivers/net/benet/be_ethtool.c +61 −4
  2370. drivers/net/benet/be_hw.h +84 −37
  2371. drivers/net/benet/be_main.c +358 −182
  2372. drivers/net/bfin_mac.c +3 −5
  2373. drivers/net/bmac.c +6 −7
  2374. drivers/net/bnx2.c +208 −202
  2375. drivers/net/bnx2.h +2 −1
  2376. drivers/net/bnx2x.h +31 −22
  2377. drivers/net/bnx2x_fw_defs.h +6 −1
  2378. drivers/net/bnx2x_hsi.h +6 −4
  2379. drivers/net/bnx2x_init_ops.h +9 −4
  2380. drivers/net/bnx2x_link.c +6 −15
  2381. drivers/net/bnx2x_main.c +141 −143
  2382. drivers/net/bonding/bond_main.c +20 −7
  2383. drivers/net/bonding/bonding.h +0 −1
  2384. drivers/net/can/at91_can.c +4 −0
  2385. drivers/net/can/bfin_can.c +4 −0
  2386. drivers/net/can/dev.c +8 −0
  2387. drivers/net/can/mcp251x.c +208 −218
  2388. drivers/net/can/mscan/Kconfig +4 −3
  2389. drivers/net/can/mscan/mpc5xxx_can.c +205 −43
  2390. drivers/net/can/mscan/mscan.c +45 −13
  2391. drivers/net/can/mscan/mscan.h +46 −40
  2392. drivers/net/can/sja1000/Kconfig +12 −0
  2393. drivers/net/can/sja1000/Makefile +1 −0
  2394. drivers/net/can/sja1000/ems_pci.c +1 −1
  2395. drivers/net/can/sja1000/kvaser_pci.c +1 −1
  2396. drivers/net/can/sja1000/plx_pci.c +472 −0
  2397. drivers/net/can/sja1000/sja1000.c +25 −2
  2398. drivers/net/can/ti_hecc.c +68 −5
  2399. drivers/net/can/usb/Kconfig +1 −1
  2400. drivers/net/can/usb/ems_usb.c +4 −2
  2401. drivers/net/can/vcan.c +9 −3
  2402. drivers/net/cassini.c +188 −249
  2403. drivers/net/chelsio/common.h +6 −38
  2404. drivers/net/chelsio/cxgb2.c +9 −11
  2405. drivers/net/chelsio/espi.c +2 −2
  2406. drivers/net/chelsio/pm3393.c +12 −10
  2407. drivers/net/chelsio/sge.c +6 −6
  2408. drivers/net/chelsio/subr.c +18 −16
  2409. drivers/net/chelsio/vsc7326.c +12 −12
  2410. drivers/net/cnic.c +107 −99
  2411. drivers/net/cnic.h +8 −5
  2412. drivers/net/cnic_defs.h +1 −1
  2413. drivers/net/cnic_if.h +3 −3
  2414. drivers/net/cpmac.c +10 −4
  2415. drivers/net/cris/eth_v10.c +3 −5
  2416. drivers/net/cs89x0.c +1 −1
  2417. drivers/net/cxgb3/common.h +1 −27
  2418. drivers/net/cxgb3/cxgb3_main.c +3 −7
  2419. drivers/net/cxgb3/cxgb3_offload.c +1 −1
  2420. drivers/net/cxgb3/sge.c +12 −4
  2421. drivers/net/cxgb3/t3_hw.c +2 −1
  2422. drivers/net/cxgb3/xgmac.c +11 −7
  2423. drivers/net/davinci_emac.c +41 −26
  2424. drivers/net/de620.c +1 −1
  2425. drivers/net/declance.c +2 −4
  2426. drivers/net/defxx.c +10 −14
  2427. drivers/net/depca.c +2 −3
  2428. drivers/net/dl2k.c +3 −6
  2429. drivers/net/dl2k.h +1 −1
  2430. drivers/net/dm9000.c +2 −3
  2431. drivers/net/e100.c +11 −7
  2432. drivers/net/e1000/e1000.h +1 −0
  2433. drivers/net/e1000/e1000_ethtool.c +18 −1
  2434. drivers/net/e1000/e1000_main.c +23 −23
  2435. drivers/net/e1000e/82571.c +38 −30
  2436. drivers/net/e1000e/defines.h +2 −0
  2437. drivers/net/e1000e/e1000.h +14 −5
  2438. drivers/net/e1000e/es2lan.c +31 −1
  2439. drivers/net/e1000e/ethtool.c +1 −1
  2440. drivers/net/e1000e/hw.h +10 −2
  2441. drivers/net/e1000e/ich8lan.c +1 −0
  2442. drivers/net/e1000e/lib.c +125 −105
  2443. drivers/net/e1000e/netdev.c +15 −30
  2444. drivers/net/eepro.c +10 −11
  2445. drivers/net/eexpress.c +9 −13
  2446. drivers/net/ehea/ehea_main.c +4 −5
  2447. drivers/net/enc28j60.c +1 −1
  2448. drivers/net/enic/enic.h +4 −1
  2449. drivers/net/enic/enic_main.c +138 −70
  2450. drivers/net/enic/enic_res.c +9 −7
  2451. drivers/net/enic/vnic_dev.c +0 −1
  2452. drivers/net/enic/vnic_enet.h +5 −0
  2453. drivers/net/enic/vnic_intr.c +7 −1
  2454. drivers/net/enic/vnic_intr.h +3 −0
  2455. drivers/net/enic/vnic_nic.h +6 −6
  2456. drivers/net/epic100.c +4 −5
  2457. drivers/net/eth16i.c +1 −1
  2458. drivers/net/ethoc.c +7 −7
  2459. drivers/net/ewrk3.c +2 −3
  2460. drivers/net/fealnx.c +3 −5
  2461. drivers/net/fec.c +52 −32
  2462. drivers/net/fec_mpc52xx.c +1 −4
  2463. drivers/net/forcedeth.c +3 −5
  2464. drivers/net/fs_enet/Kconfig +7 −3
  2465. drivers/net/fs_enet/fs_enet-main.c +69 −24
  2466. drivers/net/fs_enet/fs_enet.h +48 −1
  2467. drivers/net/fs_enet/mac-fcc.c +5 −4
  2468. drivers/net/fs_enet/mac-fec.c +38 −24
  2469. drivers/net/fs_enet/mac-scc.c +6 −7
  2470. drivers/net/fs_enet/mii-fec.c +2 −2
  2471. drivers/net/gianfar.c +2 −2
  2472. drivers/net/greth.c +1634 −0
  2473. drivers/net/greth.h +143 −0
  2474. drivers/net/hamachi.c +7 −6
  2475. drivers/net/hp100.c +7 −6
  2476. drivers/net/ibm_newemac/core.c +4 −4
  2477. drivers/net/ibmlana.c +1 −1
  2478. drivers/net/ibmveth.c +4 −4
  2479. drivers/net/igb/e1000_82575.c +46 −19
  2480. drivers/net/igb/e1000_82575.h +5 −0
  2481. drivers/net/igb/e1000_defines.h +1 −6
  2482. drivers/net/igb/e1000_hw.h +0 −7
  2483. drivers/net/igb/e1000_mac.c +0 −70
  2484. drivers/net/igb/e1000_mac.h +0 −2
  2485. drivers/net/igb/e1000_phy.c +35 −0
  2486. drivers/net/igb/e1000_phy.h +2 −0
  2487. drivers/net/igb/e1000_regs.h +1 −0
  2488. drivers/net/igb/igb.h +10 −6
  2489. drivers/net/igb/igb_ethtool.c +63 −30
  2490. drivers/net/igb/igb_main.c +276 −138
  2491. drivers/net/igbvf/netdev.c +9 −22
  2492. drivers/net/ioc3-eth.c +5 −6
  2493. drivers/net/ipg.c +5 −8
  2494. drivers/net/irda/Kconfig +10 −0
  2495. drivers/net/irda/Makefile +1 −0
  2496. drivers/net/irda/au1k_ir.c +5 −9
  2497. drivers/net/irda/donauboe.c +1 −1
  2498. drivers/net/irda/sh_sir.c +823 −0
  2499. drivers/net/irda/via-ircc.c +1 −1
  2500. drivers/net/irda/vlsi_ir.c +1 −1
  2501. drivers/net/isa-skeleton.c +0 −718
  2502. drivers/net/iseries_veth.c +3 −5
  2503. drivers/net/ixgb/ixgb.h +3 −8
  2504. drivers/net/ixgb/ixgb_main.c +55 −49
  2505. drivers/net/ixgbe/Makefile +2 −1
  2506. drivers/net/ixgbe/ixgbe.h +43 −11
  2507. drivers/net/ixgbe/ixgbe_82599.c +157 −76
  2508. drivers/net/ixgbe/ixgbe_common.c +5 −14
  2509. drivers/net/ixgbe/ixgbe_common.h +1 −1
  2510. drivers/net/ixgbe/ixgbe_ethtool.c +157 −38
  2511. drivers/net/ixgbe/ixgbe_fcoe.c +2 −2
  2512. drivers/net/ixgbe/ixgbe_main.c +529 −147
  2513. drivers/net/ixgbe/ixgbe_mbx.c +479 −0
  2514. drivers/net/ixgbe/ixgbe_mbx.h +96 −0
  2515. drivers/net/ixgbe/ixgbe_sriov.c +362 −0
  2516. drivers/net/ixgbe/ixgbe_sriov.h +47 −0
  2517. drivers/net/ixgbe/ixgbe_type.h +64 −2
  2518. drivers/net/ixgbevf/Makefile +38 −0
  2519. drivers/net/ixgbevf/defines.h +292 −0
  2520. drivers/net/ixgbevf/ethtool.c +716 −0
  2521. drivers/net/ixgbevf/ixgbevf.h +318 −0
  2522. drivers/net/ixgbevf/ixgbevf_main.c +3578 −0
  2523. drivers/net/ixgbevf/mbx.c +341 −0
  2524. drivers/net/ixgbevf/mbx.h +100 −0
  2525. drivers/net/ixgbevf/regs.h +85 −0
  2526. drivers/net/ixgbevf/vf.c +387 −0
  2527. drivers/net/ixgbevf/vf.h +168 −0
  2528. drivers/net/jme.c +29 −33
  2529. drivers/net/jme.h +7 −34
  2530. drivers/net/korina.c +4 −6
  2531. drivers/net/ks8851.c +3 −4
  2532. drivers/net/ks8851_mll.c +4 −3
Documentation/ABI/testing/sysfs-block+14−0
@@ -128,3 +128,17 @@ Description: · 127 unmodified lines
128128 preferred request size for workloads where sustained
129129 throughput is desired. If no optimal I/O size is
130130 reported this file contains 0.
131+
132+What: /sys/block/<disk>/queue/nomerges
133+Date: January 2010
134+Contact:
135+Description:
136+ Standard I/O elevator operations include attempts to
137+ merge contiguous I/Os. For known random I/O loads these
138+ attempts will always fail and result in extra cycles
139+ being spent in the kernel. This allows one to turn off
140+ this behavior on one of two ways: When set to 1, complex
141+ merge checks are disabled, but the simple one-shot merges
142+ with the previous I/O request are enabled. When set to 2,
143+ all merge tries are disabled. The default value is 0 -
144+ which enables all types of merge tries.
Documentation/ABI/testing/sysfs-devices-power+79−0
@@ -0,0 +1,79 @@
1+What: /sys/devices/.../power/
2+Date: January 2009
3+Contact: Rafael J. Wysocki <rjw@sisk.pl>
4+Description:
5+ The /sys/devices/.../power directory contains attributes
6+ allowing the user space to check and modify some power
7+ management related properties of given device.
8+
9+What: /sys/devices/.../power/wakeup
10+Date: January 2009
11+Contact: Rafael J. Wysocki <rjw@sisk.pl>
12+Description:
13+ The /sys/devices/.../power/wakeup attribute allows the user
14+ space to check if the device is enabled to wake up the system
15+ from sleep states, such as the memory sleep state (suspend to
16+ RAM) and hibernation (suspend to disk), and to enable or disable
17+ it to do that as desired.
18+
19+ Some devices support "wakeup" events, which are hardware signals
20+ used to activate the system from a sleep state. Such devices
21+ have one of the following two values for the sysfs power/wakeup
22+ file:
23+
24+ + "enabled\n" to issue the events;
25+ + "disabled\n" not to do so;
26+
27+ In that cases the user space can change the setting represented
28+ by the contents of this file by writing either "enabled", or
29+ "disabled" to it.
30+
31+ For the devices that are not capable of generating system wakeup
32+ events this file contains "\n". In that cases the user space
33+ cannot modify the contents of this file and the device cannot be
34+ enabled to wake up the system.
35+
36+What: /sys/devices/.../power/control
37+Date: January 2009
38+Contact: Rafael J. Wysocki <rjw@sisk.pl>
39+Description:
40+ The /sys/devices/.../power/control attribute allows the user
41+ space to control the run-time power management of the device.
42+
43+ All devices have one of the following two values for the
44+ power/control file:
45+
46+ + "auto\n" to allow the device to be power managed at run time;
47+ + "on\n" to prevent the device from being power managed;
48+
49+ The default for all devices is "auto", which means that they may
50+ be subject to automatic power management, depending on their
51+ drivers. Changing this attribute to "on" prevents the driver
52+ from power managing the device at run time. Doing that while
53+ the device is suspended causes it to be woken up.
54+
55+What: /sys/devices/.../power/async
56+Date: January 2009
57+Contact: Rafael J. Wysocki <rjw@sisk.pl>
58+Description:
59+ The /sys/devices/.../async attribute allows the user space to
60+ enable or diasble the device's suspend and resume callbacks to
61+ be executed asynchronously (ie. in separate threads, in parallel
62+ with the main suspend/resume thread) during system-wide power
63+ transitions (eg. suspend to RAM, hibernation).
64+
65+ All devices have one of the following two values for the
66+ power/async file:
67+
68+ + "enabled\n" to permit the asynchronous suspend/resume;
69+ + "disabled\n" to forbid it;
70+
71+ The value of this attribute may be changed by writing either
72+ "enabled", or "disabled" to it.
73+
74+ It generally is unsafe to permit the asynchronous suspend/resume
75+ of a device unless it is certain that all of the PM dependencies
76+ of the device are known to the PM core. However, for some
77+ devices this attribute is set to "enabled" by bus type code or
78+ device drivers and in that cases it should be safe to leave the
79+ default value.
Documentation/ABI/testing/sysfs-power+13−0
@@ -101,3 +101,16 @@ Description: · 100 unmodified lines
101101
102102 CAUTION: Using it will cause your machine's real-time (CMOS)
103103 clock to be set to a random invalid time after a resume.
104+
105+What: /sys/power/pm_async
106+Date: January 2009
107+Contact: Rafael J. Wysocki <rjw@sisk.pl>
108+Description:
109+ The /sys/power/pm_async file controls the switch allowing the
110+ user space to enable or disable asynchronous suspend and resume
111+ of devices. If enabled, this feature will cause some device
112+ drivers' suspend and resume callbacks to be executed in parallel
113+ with each other and with the main suspend thread. It is enabled
114+ if this file contains "1", which is the default. It may be
115+ disabled by writing "0" to this file, in which case all devices
116+ will be suspended and resumed synchronously.
Documentation/DocBook/mac80211.tmpl+1−2
@@ -144,7 +144,7 @@ usage should require reading the full document. · 143 unmodified lines
144144 this though and the recommendation to allow only a single
145145 interface in STA mode at first!
146146 </para>
147−!Finclude/net/mac80211.h ieee80211_if_init_conf
147+!Finclude/net/mac80211.h ieee80211_vif
148148 </chapter>
149149
150150 <chapter id="rx-tx">
@@ -234,7 +234,6 @@ usage should require reading the full document. · 83 unmodified lines
234234 <title>Multiple queues and QoS support</title>
235235 <para>TBD</para>
236236 !Finclude/net/mac80211.h ieee80211_tx_queue_params
237−!Finclude/net/mac80211.h ieee80211_tx_queue_stats
238237 </chapter>
239238
240239 <chapter id="AP">
Documentation/DocBook/v4l/io.xml+2−1
@@ -589,7 +589,8 @@ number of a video input as in &v4l2-input; field · 588 unmodified lines
589589 <entry></entry>
590590 <entry>A place holder for future extensions and custom
591591 (driver defined) buffer types
592−<constant>V4L2_BUF_TYPE_PRIVATE</constant> and higher.</entry>
592+<constant>V4L2_BUF_TYPE_PRIVATE</constant> and higher. Applications
593+should set this to 0.</entry>
593594 </row>
594595 </tbody>
595596 </tgroup>
Documentation/DocBook/v4l/vidioc-qbuf.xml+23−17
@@ -54,12 +54,10 @@ to enqueue an empty (capturing) or filled (output) buffer in the · 53 unmodified lines
5454 driver's incoming queue. The semantics depend on the selected I/O
5555 method.</para>
5656
57− <para>To enqueue a <link linkend="mmap">memory mapped</link>
58−buffer applications set the <structfield>type</structfield> field of a
59−&v4l2-buffer; to the same buffer type as previously &v4l2-format;
60−<structfield>type</structfield> and &v4l2-requestbuffers;
61−<structfield>type</structfield>, the <structfield>memory</structfield>
62−field to <constant>V4L2_MEMORY_MMAP</constant> and the
57+ <para>To enqueue a buffer applications set the <structfield>type</structfield>
58+field of a &v4l2-buffer; to the same buffer type as was previously used
59+with &v4l2-format; <structfield>type</structfield> and &v4l2-requestbuffers;
60+<structfield>type</structfield>. Applications must also set the
6361 <structfield>index</structfield> field. Valid index numbers range from
6462 zero to the number of buffers allocated with &VIDIOC-REQBUFS;
6563 (&v4l2-requestbuffers; <structfield>count</structfield>) minus one. The
@@ -70,8 +68,19 @@ intended for output (<structfield>type</structfield> is · 4 unmodified lines
7068 <constant>V4L2_BUF_TYPE_VBI_OUTPUT</constant>) applications must also
7169 initialize the <structfield>bytesused</structfield>,
7270 <structfield>field</structfield> and
73−<structfield>timestamp</structfield> fields. See <xref
74− linkend="buffer" /> for details. When
71+<structfield>timestamp</structfield> fields, see <xref
72+linkend="buffer" /> for details.
73+Applications must also set <structfield>flags</structfield> to 0. If a driver
74+supports capturing from specific video inputs and you want to specify a video
75+input, then <structfield>flags</structfield> should be set to
76+<constant>V4L2_BUF_FLAG_INPUT</constant> and the field
77+<structfield>input</structfield> must be initialized to the desired input.
78+The <structfield>reserved</structfield> field must be set to 0.
79+</para>
80+
81+ <para>To enqueue a <link linkend="mmap">memory mapped</link>
82+buffer applications set the <structfield>memory</structfield>
83+field to <constant>V4L2_MEMORY_MMAP</constant>. When
7584 <constant>VIDIOC_QBUF</constant> is called with a pointer to this
7685 structure the driver sets the
7786 <constant>V4L2_BUF_FLAG_MAPPED</constant> and
@@ -81,14 +90,10 @@ structure the driver sets the · 3 unmodified lines
8190 &EINVAL;.</para>
8291
8392 <para>To enqueue a <link linkend="userp">user pointer</link>
84−buffer applications set the <structfield>type</structfield> field of a
85−&v4l2-buffer; to the same buffer type as previously &v4l2-format;
86−<structfield>type</structfield> and &v4l2-requestbuffers;
87−<structfield>type</structfield>, the <structfield>memory</structfield>
88−field to <constant>V4L2_MEMORY_USERPTR</constant> and the
93+buffer applications set the <structfield>memory</structfield>
94+field to <constant>V4L2_MEMORY_USERPTR</constant>, the
8995 <structfield>m.userptr</structfield> field to the address of the
90−buffer and <structfield>length</structfield> to its size. When the
91−buffer is intended for output additional fields must be set as above.
96+buffer and <structfield>length</structfield> to its size.
9297 When <constant>VIDIOC_QBUF</constant> is called with a pointer to this
9398 structure the driver sets the <constant>V4L2_BUF_FLAG_QUEUED</constant>
9499 flag and clears the <constant>V4L2_BUF_FLAG_MAPPED</constant> and
@@ -96,13 +101,14 @@ flag and clears the <constant>V4L2_BUF_FLAG_MAPPED</constant> and · 1 unmodified line
96101 <structfield>flags</structfield> field, or it returns an error code.
97102 This ioctl locks the memory pages of the buffer in physical memory,
98103 they cannot be swapped out to disk. Buffers remain locked until
99−dequeued, until the &VIDIOC-STREAMOFF; or &VIDIOC-REQBUFS; ioctl are
104+dequeued, until the &VIDIOC-STREAMOFF; or &VIDIOC-REQBUFS; ioctl is
100105 called, or until the device is closed.</para>
101106
102107 <para>Applications call the <constant>VIDIOC_DQBUF</constant>
103108 ioctl to dequeue a filled (capturing) or displayed (output) buffer
104109 from the driver's outgoing queue. They just set the
105−<structfield>type</structfield> and <structfield>memory</structfield>
110+<structfield>type</structfield>, <structfield>memory</structfield>
111+and <structfield>reserved</structfield>
106112 fields of a &v4l2-buffer; as above, when <constant>VIDIOC_DQBUF</constant>
107113 is called with a pointer to this structure the driver fills the
108114 remaining fields or returns an error code.</para>
Documentation/DocBook/v4l/vidioc-querybuf.xml+4−3
@@ -54,12 +54,13 @@ buffer at any time after buffers have been allocated with the · 53 unmodified lines
5454 &VIDIOC-REQBUFS; ioctl.</para>
5555
5656 <para>Applications set the <structfield>type</structfield> field
57− of a &v4l2-buffer; to the same buffer type as previously
57+ of a &v4l2-buffer; to the same buffer type as was previously used with
5858 &v4l2-format; <structfield>type</structfield> and &v4l2-requestbuffers;
5959 <structfield>type</structfield>, and the <structfield>index</structfield>
6060 field. Valid index numbers range from zero
6161 to the number of buffers allocated with &VIDIOC-REQBUFS;
6262 (&v4l2-requestbuffers; <structfield>count</structfield>) minus one.
63+The <structfield>reserved</structfield> field should to set to 0.
6364 After calling <constant>VIDIOC_QUERYBUF</constant> with a pointer to
6465 this structure drivers return an error code or fill the rest of
6566 the structure.</para>
@@ -68,8 +69,8 @@ the structure.</para> · 2 unmodified lines
6869 <constant>V4L2_BUF_FLAG_MAPPED</constant>,
6970 <constant>V4L2_BUF_FLAG_QUEUED</constant> and
7071 <constant>V4L2_BUF_FLAG_DONE</constant> flags will be valid. The
71−<structfield>memory</structfield> field will be set to
72−<constant>V4L2_MEMORY_MMAP</constant>, the <structfield>m.offset</structfield>
72+<structfield>memory</structfield> field will be set to the current
73+I/O method, the <structfield>m.offset</structfield>
7374 contains the offset of the buffer from the start of the device memory,
7475 the <structfield>length</structfield> field its size. The driver may
7576 or may not set the remaining fields and flags, they are meaningless in
Documentation/DocBook/v4l/vidioc-reqbufs.xml+13−23
@@ -54,23 +54,23 @@ I/O. Memory mapped buffers are located in device memory and must be · 53 unmodified lines
5454 allocated with this ioctl before they can be mapped into the
5555 application's address space. User buffers are allocated by
5656 applications themselves, and this ioctl is merely used to switch the
57−driver into user pointer I/O mode.</para>
57+driver into user pointer I/O mode and to setup some internal structures.</para>
5858
59− <para>To allocate device buffers applications initialize three
60−fields of a <structname>v4l2_requestbuffers</structname> structure.
59+ <para>To allocate device buffers applications initialize all
60+fields of the <structname>v4l2_requestbuffers</structname> structure.
6161 They set the <structfield>type</structfield> field to the respective
6262 stream or buffer type, the <structfield>count</structfield> field to
63−the desired number of buffers, and <structfield>memory</structfield>
64−must be set to <constant>V4L2_MEMORY_MMAP</constant>. When the ioctl
65−is called with a pointer to this structure the driver attempts to
66−allocate the requested number of buffers and stores the actual number
63+the desired number of buffers, <structfield>memory</structfield>
64+must be set to the requested I/O method and the reserved array
65+must be zeroed. When the ioctl
66+is called with a pointer to this structure the driver will attempt to allocate
67+the requested number of buffers and it stores the actual number
6768 allocated in the <structfield>count</structfield> field. It can be
6869 smaller than the number requested, even zero, when the driver runs out
69−of free memory. A larger number is possible when the driver requires
70−more buffers to function correctly.<footnote>
71− <para>For example video output requires at least two buffers,
70+of free memory. A larger number is also possible when the driver requires
71+more buffers to function correctly. For example video output requires at least two buffers,
7272 one displayed and one filled by the application.</para>
73− </footnote> When memory mapping I/O is not supported the ioctl
73+ <para>When the I/O method is not supported the ioctl
7474 returns an &EINVAL;.</para>
7575
7676 <para>Applications can call <constant>VIDIOC_REQBUFS</constant>
@@ -81,14 +81,6 @@ in progress, an implicit &VIDIOC-STREAMOFF;. <!-- mhs: I see no · 4 unmodified lines
8181 reason why munmap()ping one or even all buffers must imply
8282 streamoff.--></para>
8383
84− <para>To negotiate user pointer I/O, applications initialize only
85−the <structfield>type</structfield> field and set
86−<structfield>memory</structfield> to
87−<constant>V4L2_MEMORY_USERPTR</constant>. When the ioctl is called
88−with a pointer to this structure the driver prepares for user pointer
89−I/O, when this I/O method is not supported the ioctl returns an
90−&EINVAL;.</para>
91−
9284 <table pgwide="1" frame="none" id="v4l2-requestbuffers">
9385 <title>struct <structname>v4l2_requestbuffers</structname></title>
9486 <tgroup cols="3">
@@ -97,9 +89,7 @@ I/O, when this I/O method is not supported the ioctl returns an · 2 unmodified lines
9789 <row>
9890 <entry>__u32</entry>
9991 <entry><structfield>count</structfield></entry>
100− <entry>The number of buffers requested or granted. This
101−field is only used when <structfield>memory</structfield> is set to
102−<constant>V4L2_MEMORY_MMAP</constant>.</entry>
92+ <entry>The number of buffers requested or granted.</entry>
10393 </row>
10494 <row>
10595 <entry>&v4l2-buf-type;</entry>
@@ -120,7 +110,7 @@ as the &v4l2-format; <structfield>type</structfield> field. See <xref · 14 unmodified lines
120110 <entry><structfield>reserved</structfield>[2]</entry>
121111 <entry>A place holder for future extensions and custom
122112 (driver defined) buffer types <constant>V4L2_BUF_TYPE_PRIVATE</constant> and
123−higher.</entry>
113+higher. This array should be zeroed by applications.</entry>
124114 </row>
125115 </tbody>
126116 </tgroup>
Documentation/RCU/00-INDEX+8−2
@@ -6,16 +6,22 @@ checklist.txt · 5 unmodified lines
66 - Review Checklist for RCU Patches
77 listRCU.txt
88 - Using RCU to Protect Read-Mostly Linked Lists
9+lockdep.txt
10+ - RCU and lockdep checking
911 NMI-RCU.txt
1012 - Using RCU to Protect Dynamic NMI Handlers
13+rcubarrier.txt
14+ - RCU and Unloadable Modules
15+rculist_nulls.txt
16+ - RCU list primitives for use with SLAB_DESTROY_BY_RCU
1117 rcuref.txt
1218 - Reference-count design for elements of lists/arrays protected by RCU
1319 rcu.txt
1420 - RCU Concepts
15−rcubarrier.txt
16− - Unloading modules that use RCU callbacks
1721 RTFP.txt
1822 - List of RCU papers (bibliography) going back to 1980.
23+stallwarn.txt
24+ - RCU CPU stall warnings (CONFIG_RCU_CPU_STALL_DETECTOR)
1925 torture.txt
2026 - RCU Torture Test Operation (CONFIG_RCU_TORTURE_TEST)
2127 trace.txt
Documentation/RCU/RTFP.txt+57−4
@@ -25,10 +25,10 @@ to be referencing the data structure. However, this mechanism was not · 24 unmodified lines
2525 optimized for modern computer systems, which is not surprising given
2626 that these overheads were not so expensive in the mid-80s. Nonetheless,
2727 passive serialization appears to be the first deferred-destruction
28−mechanism to be used in production. Furthermore, the relevant patent has
29−lapsed, so this approach may be used in non-GPL software, if desired.
30−(In contrast, use of RCU is permitted only in software licensed under
31−GPL. Sorry!!!)
28+mechanism to be used in production. Furthermore, the relevant patent
29+has lapsed, so this approach may be used in non-GPL software, if desired.
30+(In contrast, implementation of RCU is permitted only in software licensed
31+under either GPL or LGPL. Sorry!!!)
3232
3333 In 1990, Pugh [Pugh90] noted that explicitly tracking which threads
3434 were reading a given data structure permitted deferred free to operate
@@ -150,6 +150,18 @@ preemptible RCU [PaulEMcKenney2007PreemptibleRCU], and the three-part · 115 unmodified lines
150150 LWN "What is RCU?" series [PaulEMcKenney2007WhatIsRCUFundamentally,
151151 PaulEMcKenney2008WhatIsRCUUsage, and PaulEMcKenney2008WhatIsRCUAPI].
152152
153+2008 saw a journal paper on real-time RCU [DinakarGuniguntala2008IBMSysJ],
154+a history of how Linux changed RCU more than RCU changed Linux
155+[PaulEMcKenney2008RCUOSR], and a design overview of hierarchical RCU
156+[PaulEMcKenney2008HierarchicalRCU].
157+
158+2009 introduced user-level RCU algorithms [PaulEMcKenney2009MaliciousURCU],
159+which Mathieu Desnoyers is now maintaining [MathieuDesnoyers2009URCU]
160+[MathieuDesnoyersPhD]. TINY_RCU [PaulEMcKenney2009BloatWatchRCU] made
161+its appearance, as did expedited RCU [PaulEMcKenney2009expeditedRCU].
162+The problem of resizeable RCU-protected hash tables may now be on a path
163+to a solution [JoshTriplett2009RPHash].
164+
153165 Bibtex Entries
154166
155167 @article{Kung80
@@ -730,6 +742,11 @@ Revised: · 574 unmodified lines
730742 "
731743 }
732744
745+#
746+# "What is RCU?" LWN series.
747+#
748+########################################################################
749+
733750 @article{DinakarGuniguntala2008IBMSysJ
734751 ,author="D. Guniguntala and P. E. McKenney and J. Triplett and J. Walpole"
735752 ,title="The read-copy-update mechanism for supporting real-time applications on shared-memory multiprocessor systems with {Linux}"
@@ -820,3 +837,39 @@ Revised: · 84 unmodified lines
820837 Uniprocessor assumptions allow simplified RCU implementation.
821838 "
822839 }
840+
841+@unpublished{PaulEMcKenney2009expeditedRCU
842+,Author="Paul E. McKenney"
843+,Title="[{PATCH} -tip 0/3] expedited 'big hammer' {RCU} grace periods"
844+,month="June"
845+,day="25"
846+,year="2009"
847+,note="Available:
848+\url{http://lkml.org/lkml/2009/6/25/306}
849+[Viewed August 16, 2009]"
850+,annotation="
851+ First posting of expedited RCU to be accepted into -tip.
852+"
853+}
854+
855+@unpublished{JoshTriplett2009RPHash
856+,Author="Josh Triplett"
857+,Title="Scalable concurrent hash tables via relativistic programming"
858+,month="September"
859+,year="2009"
860+,note="Linux Plumbers Conference presentation"
861+,annotation="
862+ RP fun with hash tables.
863+"
864+}
865+
866+@phdthesis{MathieuDesnoyersPhD
867+, title = "Low-Impact Operating System Tracing"
868+, author = "Mathieu Desnoyers"
869+, school = "Ecole Polytechnique de Montr\'{e}al"
870+, month = "December"
871+, year = 2009
872+,note="Available:
873+\url{http://www.lttng.org/pub/thesis/desnoyers-dissertation-2009-12.pdf}
874+[Viewed December 9, 2009]"
875+}
Documentation/RCU/checklist.txt+126−82
@@ -8,13 +8,12 @@ would cause. This list is based on experiences reviewing such patches · 7 unmodified lines
88 over a rather long period of time, but improvements are always welcome!
99
1010 0. Is RCU being applied to a read-mostly situation? If the data
11− structure is updated more than about 10% of the time, then
12− you should strongly consider some other approach, unless
13− detailed performance measurements show that RCU is nonetheless
14− the right tool for the job. Yes, you might think of RCU
15− as simply cutting overhead off of the readers and imposing it
16− on the writers. That is exactly why normal uses of RCU will
17− do much more reading than updating.
11+ structure is updated more than about 10% of the time, then you
12+ should strongly consider some other approach, unless detailed
13+ performance measurements show that RCU is nonetheless the right
14+ tool for the job. Yes, RCU does reduce read-side overhead by
15+ increasing write-side overhead, which is exactly why normal uses
16+ of RCU will do much more reading than updating.
1817
1918 Another exception is where performance is not an issue, and RCU
2019 provides a simpler implementation. An example of this situation
@@ -35,13 +34,13 @@ over a rather long period of time, but improvements are always welcome! · 14 unmodified lines
3534
3635 If you choose #b, be prepared to describe how you have handled
3736 memory barriers on weakly ordered machines (pretty much all of
38− them -- even x86 allows reads to be reordered), and be prepared
39− to explain why this added complexity is worthwhile. If you
40− choose #c, be prepared to explain how this single task does not
41− become a major bottleneck on big multiprocessor machines (for
42− example, if the task is updating information relating to itself
43− that other tasks can read, there by definition can be no
44− bottleneck).
37+ them -- even x86 allows later loads to be reordered to precede
38+ earlier stores), and be prepared to explain why this added
39+ complexity is worthwhile. If you choose #c, be prepared to
40+ explain how this single task does not become a major bottleneck on
41+ big multiprocessor machines (for example, if the task is updating
42+ information relating to itself that other tasks can read, there
43+ by definition can be no bottleneck).
4544
4645 2. Do the RCU read-side critical sections make proper use of
4746 rcu_read_lock() and friends? These primitives are needed
@@ -51,8 +50,10 @@ over a rather long period of time, but improvements are always welcome! · 3 unmodified lines
5150 actuarial risk of your kernel.
5251
5352 As a rough rule of thumb, any dereference of an RCU-protected
54− pointer must be covered by rcu_read_lock() or rcu_read_lock_bh()
55− or by the appropriate update-side lock.
53+ pointer must be covered by rcu_read_lock(), rcu_read_lock_bh(),
54+ rcu_read_lock_sched(), or by the appropriate update-side lock.
55+ Disabling of preemption can serve as rcu_read_lock_sched(), but
56+ is less readable.
5657
5758 3. Does the update code tolerate concurrent accesses?
5859
@@ -62,25 +63,27 @@ over a rather long period of time, but improvements are always welcome! · 3 unmodified lines
6263 of ways to handle this concurrency, depending on the situation:
6364
6465 a. Use the RCU variants of the list and hlist update
65− primitives to add, remove, and replace elements on an
66− RCU-protected list. Alternatively, use the RCU-protected
67− trees that have been added to the Linux kernel.
66+ primitives to add, remove, and replace elements on
67+ an RCU-protected list. Alternatively, use the other
68+ RCU-protected data structures that have been added to
69+ the Linux kernel.
6870
6971 This is almost always the best approach.
7072
7173 b. Proceed as in (a) above, but also maintain per-element
7274 locks (that are acquired by both readers and writers)
7375 that guard per-element state. Of course, fields that
74− the readers refrain from accessing can be guarded by the
75− update-side lock.
76+ the readers refrain from accessing can be guarded by
77+ some other lock acquired only by updaters, if desired.
7678
7779 This works quite well, also.
7880
7981 c. Make updates appear atomic to readers. For example,
80− pointer updates to properly aligned fields will appear
81− atomic, as will individual atomic primitives. Operations
82− performed under a lock and sequences of multiple atomic
83− primitives will -not- appear to be atomic.
82+ pointer updates to properly aligned fields will
83+ appear atomic, as will individual atomic primitives.
84+ Sequences of perations performed under a lock will -not-
85+ appear to be atomic to RCU readers, nor will sequences
86+ of multiple atomic primitives.
8487
8588 This can work, but is starting to get a bit tricky.
8689
@@ -98,9 +101,9 @@ over a rather long period of time, but improvements are always welcome! · 11 unmodified lines
98101 a new structure containing updated values.
99102
100103 4. Weakly ordered CPUs pose special challenges. Almost all CPUs
101− are weakly ordered -- even i386 CPUs allow reads to be reordered.
102− RCU code must take all of the following measures to prevent
103− memory-corruption problems:
104+ are weakly ordered -- even x86 CPUs allow later loads to be
105+ reordered to precede earlier stores. RCU code must take all of
106+ the following measures to prevent memory-corruption problems:
104107
105108 a. Readers must maintain proper ordering of their memory
106109 accesses. The rcu_dereference() primitive ensures that
@@ -113,14 +116,25 @@ over a rather long period of time, but improvements are always welcome! · 6 unmodified lines
113116 The rcu_dereference() primitive is also an excellent
114117 documentation aid, letting the person reading the code
115118 know exactly which pointers are protected by RCU.
116−
117− The rcu_dereference() primitive is used by the various
118− "_rcu()" list-traversal primitives, such as the
119− list_for_each_entry_rcu(). Note that it is perfectly
120− legal (if redundant) for update-side code to use
121− rcu_dereference() and the "_rcu()" list-traversal
122− primitives. This is particularly useful in code
123− that is common to readers and updaters.
119+ Please note that compilers can also reorder code, and
120+ they are becoming increasingly aggressive about doing
121+ just that. The rcu_dereference() primitive therefore
122+ also prevents destructive compiler optimizations.
123+
124+ The rcu_dereference() primitive is used by the
125+ various "_rcu()" list-traversal primitives, such
126+ as the list_for_each_entry_rcu(). Note that it is
127+ perfectly legal (if redundant) for update-side code to
128+ use rcu_dereference() and the "_rcu()" list-traversal
129+ primitives. This is particularly useful in code that
130+ is common to readers and updaters. However, lockdep
131+ will complain if you access rcu_dereference() outside
132+ of an RCU read-side critical section. See lockdep.txt
133+ to learn what to do about this.
134+
135+ Of course, neither rcu_dereference() nor the "_rcu()"
136+ list-traversal primitives can substitute for a good
137+ concurrency design coordinating among multiple updaters.
124138
125139 b. If the list macros are being used, the list_add_tail_rcu()
126140 and list_add_rcu() primitives must be used in order
@@ -135,11 +149,14 @@ over a rather long period of time, but improvements are always welcome! · 8 unmodified lines
135149 readers. Similarly, if the hlist macros are being used,
136150 the hlist_del_rcu() primitive is required.
137151
138− The list_replace_rcu() primitive may be used to
139− replace an old structure with a new one in an
140− RCU-protected list.
152+ The list_replace_rcu() and hlist_replace_rcu() primitives
153+ may be used to replace an old structure with a new one
154+ in their respective types of RCU-protected lists.
155+
156+ d. Rules similar to (4b) and (4c) apply to the "hlist_nulls"
157+ type of RCU-protected linked lists.
141158
142− d. Updates must ensure that initialization of a given
159+ e. Updates must ensure that initialization of a given
143160 structure happens before pointers to that structure are
144161 publicized. Use the rcu_assign_pointer() primitive
145162 when publicizing a pointer to a structure that can
@@ -151,16 +168,31 @@ over a rather long period of time, but improvements are always welcome! · 5 unmodified lines
151168 it cannot block.
152169
153170 6. Since synchronize_rcu() can block, it cannot be called from
154− any sort of irq context. Ditto for synchronize_sched() and
155− synchronize_srcu().
156−
157−7. If the updater uses call_rcu(), then the corresponding readers
158− must use rcu_read_lock() and rcu_read_unlock(). If the updater
159− uses call_rcu_bh(), then the corresponding readers must use
160− rcu_read_lock_bh() and rcu_read_unlock_bh(). If the updater
161− uses call_rcu_sched(), then the corresponding readers must
162− disable preemption. Mixing things up will result in confusion
163− and broken kernels.
171+ any sort of irq context. The same rule applies for
172+ synchronize_rcu_bh(), synchronize_sched(), synchronize_srcu(),
173+ synchronize_rcu_expedited(), synchronize_rcu_bh_expedited(),
174+ synchronize_sched_expedite(), and synchronize_srcu_expedited().
175+
176+ The expedited forms of these primitives have the same semantics
177+ as the non-expedited forms, but expediting is both expensive
178+ and unfriendly to real-time workloads. Use of the expedited
179+ primitives should be restricted to rare configuration-change
180+ operations that would not normally be undertaken while a real-time
181+ workload is running.
182+
183+7. If the updater uses call_rcu() or synchronize_rcu(), then the
184+ corresponding readers must use rcu_read_lock() and
185+ rcu_read_unlock(). If the updater uses call_rcu_bh() or
186+ synchronize_rcu_bh(), then the corresponding readers must
187+ use rcu_read_lock_bh() and rcu_read_unlock_bh(). If the
188+ updater uses call_rcu_sched() or synchronize_sched(), then
189+ the corresponding readers must disable preemption, possibly
190+ by calling rcu_read_lock_sched() and rcu_read_unlock_sched().
191+ If the updater uses synchronize_srcu(), the the corresponding
192+ readers must use srcu_read_lock() and srcu_read_unlock(),
193+ and with the same srcu_struct. The rules for the expedited
194+ primitives are the same as for their non-expedited counterparts.
195+ Mixing things up will result in confusion and broken kernels.
164196
165197 One exception to this rule: rcu_read_lock() and rcu_read_unlock()
166198 may be substituted for rcu_read_lock_bh() and rcu_read_unlock_bh()
@@ -212,6 +244,8 @@ over a rather long period of time, but improvements are always welcome! · 45 unmodified lines
212244 e. Periodically invoke synchronize_rcu(), permitting a limited
213245 number of updates per grace period.
214246
247+ The same cautions apply to call_rcu_bh() and call_rcu_sched().
248+
215249 9. All RCU list-traversal primitives, which include
216250 rcu_dereference(), list_for_each_entry_rcu(),
217251 list_for_each_continue_rcu(), and list_for_each_safe_rcu(),
@@ -219,7 +253,9 @@ over a rather long period of time, but improvements are always welcome! · 1 unmodified line
219253 must be protected by appropriate update-side locks. RCU
220254 read-side critical sections are delimited by rcu_read_lock()
221255 and rcu_read_unlock(), or by similar primitives such as
222− rcu_read_lock_bh() and rcu_read_unlock_bh().
256+ rcu_read_lock_bh() and rcu_read_unlock_bh(), in which case
257+ the matching rcu_dereference() primitive must be used in order
258+ to keep lockdep happy, in this case, rcu_dereference_bh().
223259
224260 The reason that it is permissible to use RCU list-traversal
225261 primitives when the update-side lock is held is that doing so
@@ -229,7 +265,8 @@ over a rather long period of time, but improvements are always welcome! · 3 unmodified lines
229265 10. Conversely, if you are in an RCU read-side critical section,
230266 and you don't hold the appropriate update-side lock, you -must-
231267 use the "_rcu()" variants of the list macros. Failing to do so
232− will break Alpha and confuse people reading your code.
268+ will break Alpha, cause aggressive compilers to generate bad code,
269+ and confuse people trying to read your code.
233270
234271 11. Note that synchronize_rcu() -only- guarantees to wait until
235272 all currently executing rcu_read_lock()-protected RCU read-side
@@ -239,15 +276,21 @@ over a rather long period of time, but improvements are always welcome! · 3 unmodified lines
239276 rcu_read_lock()-protected read-side critical sections, do -not-
240277 use synchronize_rcu().
241278
242− If you want to wait for some of these other things, you might
243− instead need to use synchronize_irq() or synchronize_sched().
279+ Similarly, disabling preemption is not an acceptable substitute
280+ for rcu_read_lock(). Code that attempts to use preemption
281+ disabling where it should be using rcu_read_lock() will break
282+ in real-time kernel builds.
283+
284+ If you want to wait for interrupt handlers, NMI handlers, and
285+ code under the influence of preempt_disable(), you instead
286+ need to use synchronize_irq() or synchronize_sched().
244287
245288 12. Any lock acquired by an RCU callback must be acquired elsewhere
246289 with softirq disabled, e.g., via spin_lock_irqsave(),
247290 spin_lock_bh(), etc. Failing to disable irq on a given
248− acquisition of that lock will result in deadlock as soon as the
249− RCU callback happens to interrupt that acquisition's critical
250− section.
291+ acquisition of that lock will result in deadlock as soon as
292+ the RCU softirq handler happens to run your RCU callback while
293+ interrupting that acquisition's critical section.
251294
252295 13. RCU callbacks can be and are executed in parallel. In many cases,
253296 the callback code simply wrappers around kfree(), so that this
@@ -265,29 +308,30 @@ over a rather long period of time, but improvements are always welcome! · 11 unmodified lines
265308 not the case, a self-spawning RCU callback would prevent the
266309 victim CPU from ever going offline.)
267310
268−14. SRCU (srcu_read_lock(), srcu_read_unlock(), and synchronize_srcu())
269− may only be invoked from process context. Unlike other forms of
270− RCU, it -is- permissible to block in an SRCU read-side critical
271− section (demarked by srcu_read_lock() and srcu_read_unlock()),
272− hence the "SRCU": "sleepable RCU". Please note that if you
273− don't need to sleep in read-side critical sections, you should
274− be using RCU rather than SRCU, because RCU is almost always
275− faster and easier to use than is SRCU.
311+14. SRCU (srcu_read_lock(), srcu_read_unlock(), srcu_dereference(),
312+ synchronize_srcu(), and synchronize_srcu_expedited()) may only
313+ be invoked from process context. Unlike other forms of RCU, it
314+ -is- permissible to block in an SRCU read-side critical section
315+ (demarked by srcu_read_lock() and srcu_read_unlock()), hence the
316+ "SRCU": "sleepable RCU". Please note that if you don't need
317+ to sleep in read-side critical sections, you should be using
318+ RCU rather than SRCU, because RCU is almost always faster and
319+ easier to use than is SRCU.
276320
277321 Also unlike other forms of RCU, explicit initialization
278322 and cleanup is required via init_srcu_struct() and
279323 cleanup_srcu_struct(). These are passed a "struct srcu_struct"
280324 that defines the scope of a given SRCU domain. Once initialized,
281325 the srcu_struct is passed to srcu_read_lock(), srcu_read_unlock()
282− and synchronize_srcu(). A given synchronize_srcu() waits only
283− for SRCU read-side critical sections governed by srcu_read_lock()
284− and srcu_read_unlock() calls that have been passd the same
285− srcu_struct. This property is what makes sleeping read-side
286− critical sections tolerable -- a given subsystem delays only
287− its own updates, not those of other subsystems using SRCU.
288− Therefore, SRCU is less prone to OOM the system than RCU would
289− be if RCU's read-side critical sections were permitted to
290− sleep.
326+ synchronize_srcu(), and synchronize_srcu_expedited(). A given
327+ synchronize_srcu() waits only for SRCU read-side critical
328+ sections governed by srcu_read_lock() and srcu_read_unlock()
329+ calls that have been passed the same srcu_struct. This property
330+ is what makes sleeping read-side critical sections tolerable --
331+ a given subsystem delays only its own updates, not those of other
332+ subsystems using SRCU. Therefore, SRCU is less prone to OOM the
333+ system than RCU would be if RCU's read-side critical sections
334+ were permitted to sleep.
291335
292336 The ability to sleep in read-side critical sections does not
293337 come for free. First, corresponding srcu_read_lock() and
@@ -311,12 +355,12 @@ over a rather long period of time, but improvements are always welcome! · 17 unmodified lines
311355 destructive operation, and -only- -then- invoke call_rcu(),
312356 synchronize_rcu(), or friends.
313357
314− Because these primitives only wait for pre-existing readers,
315− it is the caller's responsibility to guarantee safety to
316− any subsequent readers.
358+ Because these primitives only wait for pre-existing readers, it
359+ is the caller's responsibility to guarantee that any subsequent
360+ readers will execute safely.
317361
318−16. The various RCU read-side primitives do -not- contain memory
319− barriers. The CPU (and in some cases, the compiler) is free
320− to reorder code into and out of RCU read-side critical sections.
321− It is the responsibility of the RCU update-side primitives to
322− deal with this.
362+16. The various RCU read-side primitives do -not- necessarily contain
363+ memory barriers. You should therefore plan for the CPU
364+ and the compiler to freely reorder code into and out of RCU
365+ read-side critical sections. It is the responsibility of the
366+ RCU update-side primitives to deal with this.
Documentation/RCU/lockdep.txt+67−0
@@ -0,0 +1,67 @@
1+RCU and lockdep checking
2+
3+All flavors of RCU have lockdep checking available, so that lockdep is
4+aware of when each task enters and leaves any flavor of RCU read-side
5+critical section. Each flavor of RCU is tracked separately (but note
6+that this is not the case in 2.6.32 and earlier). This allows lockdep's
7+tracking to include RCU state, which can sometimes help when debugging
8+deadlocks and the like.
9+
10+In addition, RCU provides the following primitives that check lockdep's
11+state:
12+
13+ rcu_read_lock_held() for normal RCU.
14+ rcu_read_lock_bh_held() for RCU-bh.
15+ rcu_read_lock_sched_held() for RCU-sched.
16+ srcu_read_lock_held() for SRCU.
17+
18+These functions are conservative, and will therefore return 1 if they
19+aren't certain (for example, if CONFIG_DEBUG_LOCK_ALLOC is not set).
20+This prevents things like WARN_ON(!rcu_read_lock_held()) from giving false
21+positives when lockdep is disabled.
22+
23+In addition, a separate kernel config parameter CONFIG_PROVE_RCU enables
24+checking of rcu_dereference() primitives:
25+
26+ rcu_dereference(p):
27+ Check for RCU read-side critical section.
28+ rcu_dereference_bh(p):
29+ Check for RCU-bh read-side critical section.
30+ rcu_dereference_sched(p):
31+ Check for RCU-sched read-side critical section.
32+ srcu_dereference(p, sp):
33+ Check for SRCU read-side critical section.
34+ rcu_dereference_check(p, c):
35+ Use explicit check expression "c".
36+ rcu_dereference_raw(p)
37+ Don't check. (Use sparingly, if at all.)
38+
39+The rcu_dereference_check() check expression can be any boolean
40+expression, but would normally include one of the rcu_read_lock_held()
41+family of functions and a lockdep expression. However, any boolean
42+expression can be used. For a moderately ornate example, consider
43+the following:
44+
45+ file = rcu_dereference_check(fdt->fd[fd],
46+ rcu_read_lock_held() ||
47+ lockdep_is_held(&files->file_lock) ||
48+ atomic_read(&files->count) == 1);
49+
50+This expression picks up the pointer "fdt->fd[fd]" in an RCU-safe manner,
51+and, if CONFIG_PROVE_RCU is configured, verifies that this expression
52+is used in:
53+
54+1. An RCU read-side critical section, or
55+2. with files->file_lock held, or
56+3. on an unshared files_struct.
57+
58+In case (1), the pointer is picked up in an RCU-safe manner for vanilla
59+RCU read-side critical sections, in case (2) the ->file_lock prevents
60+any change from taking place, and finally, in case (3) the current task
61+is the only task accessing the file_struct, again preventing any change
62+from taking place.
63+
64+There are currently only "universal" versions of the rcu_assign_pointer()
65+and RCU list-/tree-traversal primitives, which do not (yet) check for
66+being in an RCU read-side critical section. In the future, separate
67+versions of these primitives might be created.
Documentation/RCU/rcu.txt+3−45
@@ -75,6 +75,8 @@ o I hear that RCU is patented? What is with that? · 74 unmodified lines
7575 search for the string "Patent" in RTFP.txt to find them.
7676 Of these, one was allowed to lapse by the assignee, and the
7777 others have been contributed to the Linux kernel under GPL.
78+ There are now also LGPL implementations of user-level RCU
79+ available (http://lttng.org/?q=node/18).
7880
7981 o I hear that RCU needs work in order to support realtime kernels?
8082
@@ -91,48 +93,4 @@ o Where can I find more information on RCU? · 10 unmodified lines
9193
9294 o What are all these files in this directory?
9395
94−
95− NMI-RCU.txt
96−
97− Describes how to use RCU to implement dynamic
98− NMI handlers, which can be revectored on the fly,
99− without rebooting.
100−
101− RTFP.txt
102−
103− List of RCU-related publications and web sites.
104−
105− UP.txt
106−
107− Discussion of RCU usage in UP kernels.
108−
109− arrayRCU.txt
110−
111− Describes how to use RCU to protect arrays, with
112− resizeable arrays whose elements reference other
113− data structures being of the most interest.
114−
115− checklist.txt
116−
117− Lists things to check for when inspecting code that
118− uses RCU.
119−
120− listRCU.txt
121−
122− Describes how to use RCU to protect linked lists.
123− This is the simplest and most common use of RCU
124− in the Linux kernel.
125−
126− rcu.txt
127−
128− You are reading it!
129−
130− rcuref.txt
131−
132− Describes how to combine use of reference counts
133− with RCU.
134−
135− whatisRCU.txt
136−
137− Overview of how the RCU implementation works. Along
138− the way, presents a conceptual view of RCU.
96+ See 00-INDEX for the list.
Documentation/RCU/stallwarn.txt+58−0
@@ -0,0 +1,58 @@
1+Using RCU's CPU Stall Detector
2+
3+The CONFIG_RCU_CPU_STALL_DETECTOR kernel config parameter enables
4+RCU's CPU stall detector, which detects conditions that unduly delay
5+RCU grace periods. The stall detector's idea of what constitutes
6+"unduly delayed" is controlled by a pair of C preprocessor macros:
7+
8+RCU_SECONDS_TILL_STALL_CHECK
9+
10+ This macro defines the period of time that RCU will wait from
11+ the beginning of a grace period until it issues an RCU CPU
12+ stall warning. It is normally ten seconds.
13+
14+RCU_SECONDS_TILL_STALL_RECHECK
15+
16+ This macro defines the period of time that RCU will wait after
17+ issuing a stall warning until it issues another stall warning.
18+ It is normally set to thirty seconds.
19+
20+RCU_STALL_RAT_DELAY
21+
22+ The CPU stall detector tries to make the offending CPU rat on itself,
23+ as this often gives better-quality stack traces. However, if
24+ the offending CPU does not detect its own stall in the number
25+ of jiffies specified by RCU_STALL_RAT_DELAY, then other CPUs will
26+ complain. This is normally set to two jiffies.
27+
28+The following problems can result in an RCU CPU stall warning:
29+
30+o A CPU looping in an RCU read-side critical section.
31+
32+o A CPU looping with interrupts disabled.
33+
34+o A CPU looping with preemption disabled.
35+
36+o For !CONFIG_PREEMPT kernels, a CPU looping anywhere in the kernel
37+ without invoking schedule().
38+
39+o A bug in the RCU implementation.
40+
41+o A hardware failure. This is quite unlikely, but has occurred
42+ at least once in a former life. A CPU failed in a running system,
43+ becoming unresponsive, but not causing an immediate crash.
44+ This resulted in a series of RCU CPU stall warnings, eventually
45+ leading the realization that the CPU had failed.
46+
47+The RCU, RCU-sched, and RCU-bh implementations have CPU stall warning.
48+SRCU does not do so directly, but its calls to synchronize_sched() will
49+result in RCU-sched detecting any CPU stalls that might be occurring.
50+
51+To diagnose the cause of the stall, inspect the stack traces. The offending
52+function will usually be near the top of the stack. If you have a series
53+of stall warnings from a single extended stall, comparing the stack traces
54+can often help determine where the stall is occurring, which will usually
55+be in the function nearest the top of the stack that stays the same from
56+trace to trace.
57+
58+RCU bugs can often be debugged with the help of CONFIG_RCU_TRACE.
Documentation/RCU/torture.txt+12−0
@@ -30,6 +30,18 @@ MODULE PARAMETERS · 29 unmodified lines
3030
3131 This module has the following parameters:
3232
33+fqs_duration Duration (in microseconds) of artificially induced bursts
34+ of force_quiescent_state() invocations. In RCU
35+ implementations having force_quiescent_state(), these
36+ bursts help force races between forcing a given grace
37+ period and that grace period ending on its own.
38+
39+fqs_holdoff Holdoff time (in microseconds) between consecutive calls
40+ to force_quiescent_state() within a burst.
41+
42+fqs_stutter Wait time (in seconds) between consecutive bursts
43+ of calls to force_quiescent_state().
44+
3345 irqreaders Says to invoke RCU readers from irq level. This is currently
3446 done via timers. Defaults to "1" for variants of RCU that
3547 permit this. (Or, more accurately, variants of RCU that do
Documentation/RCU/whatisRCU.txt+10−6
@@ -323,14 +323,17 @@ used as follows: · 322 unmodified lines
323323 Defer Protect
324324
325325 a. synchronize_rcu() rcu_read_lock() / rcu_read_unlock()
326− call_rcu()
326+ call_rcu() rcu_dereference()
327327
328328 b. call_rcu_bh() rcu_read_lock_bh() / rcu_read_unlock_bh()
329+ rcu_dereference_bh()
329330
330−c. synchronize_sched() preempt_disable() / preempt_enable()
331+c. synchronize_sched() rcu_read_lock_sched() / rcu_read_unlock_sched()
332+ preempt_disable() / preempt_enable()
331333 local_irq_save() / local_irq_restore()
332334 hardirq enter / hardirq exit
333335 NMI enter / NMI exit
336+ rcu_dereference_sched()
334337
335338 These three mechanisms are used as follows:
336339
@@ -780,9 +783,8 @@ Linux-kernel source code, but it helps to have a full list of the · 443 unmodified lines
780783 APIs, since there does not appear to be a way to categorize them
781784 in docbook. Here is the list, by category.
782785
783−RCU pointer/list traversal:
786+RCU list traversal:
784787
785− rcu_dereference
786788 list_for_each_entry_rcu
787789 hlist_for_each_entry_rcu
788790 hlist_nulls_for_each_entry_rcu
@@ -808,7 +810,7 @@ RCU: Critical sections Grace period Barrier · 19 unmodified lines
808810
809811 rcu_read_lock synchronize_net rcu_barrier
810812 rcu_read_unlock synchronize_rcu
811− synchronize_rcu_expedited
813+ rcu_dereference synchronize_rcu_expedited
812814 call_rcu
813815
814816
@@ -816,7 +818,7 @@ bh: Critical sections Grace period Barrier · 1 unmodified line
816818
817819 rcu_read_lock_bh call_rcu_bh rcu_barrier_bh
818820 rcu_read_unlock_bh synchronize_rcu_bh
819− synchronize_rcu_bh_expedited
821+ rcu_dereference_bh synchronize_rcu_bh_expedited
820822
821823
822824 sched: Critical sections Grace period Barrier
@@ -825,12 +827,14 @@ sched: Critical sections Grace period Barrier · 2 unmodified lines
825827 rcu_read_unlock_sched call_rcu_sched
826828 [preempt_disable] synchronize_sched_expedited
827829 [and friends]
830+ rcu_dereference_sched
828831
829832
830833 SRCU: Critical sections Grace period Barrier
831834
832835 srcu_read_lock synchronize_srcu N/A
833836 srcu_read_unlock synchronize_srcu_expedited
837+ srcu_dereference
834838
835839 SRCU: Initialization/cleanup
836840 init_srcu_struct
Documentation/arm/memory.txt+5−1
@@ -59,7 +59,11 @@ PAGE_OFFSET high_memory-1 Kernel direct-mapped RAM region. · 58 unmodified lines
5959 This maps the platforms RAM, and typically
6060 maps all platform RAM in a 1:1 relationship.
6161
62−TASK_SIZE PAGE_OFFSET-1 Kernel module space
62+PKMAP_BASE PAGE_OFFSET-1 Permanent kernel mappings
63+ One way of mapping HIGHMEM pages into kernel
64+ space.
65+
66+MODULES_VADDR MODULES_END-1 Kernel module space
6367 Kernel modules inserted via insmod are
6468 placed here using dynamic mappings.
6569
Documentation/block/queue-sysfs.txt+5−5
@@ -25,11 +25,11 @@ size allowed by the hardware. · 24 unmodified lines
2525
2626 nomerges (RW)
2727 -------------
28−This enables the user to disable the lookup logic involved with IO merging
29−requests in the block layer. Merging may still occur through a direct
30−1-hit cache, since that comes for (almost) free. The IO scheduler will not
31−waste cycles doing tree/hash lookups for merges if nomerges is 1. Defaults
32−to 0, enabling all merges.
28+This enables the user to disable the lookup logic involved with IO
29+merging requests in the block layer. By default (0) all merges are
30+enabled. When set to 1 only simple one-hit merges will be tried. When
31+set to 2 no merge algorithms will be tried (including one-hit or more
32+complex tree/hash lookups).
3333
3434 nr_requests (RW)
3535 ----------------
Documentation/cachetlb.txt+27−3
@@ -88,12 +88,12 @@ changes occur: · 87 unmodified lines
8888 This is used primarily during fault processing.
8989
9090 5) void update_mmu_cache(struct vm_area_struct *vma,
91− unsigned long address, pte_t pte)
91+ unsigned long address, pte_t *ptep)
9292
9393 At the end of every page fault, this routine is invoked to
9494 tell the architecture specific code that a translation
95− described by "pte" now exists at virtual address "address"
96− for address space "vma->vm_mm", in the software page tables.
95+ now exists at virtual address "address" for address space
96+ "vma->vm_mm", in the software page tables.
9797
9898 A port may use this information in any way it so chooses.
9999 For example, it could use this event to pre-load TLB
@@ -377,3 +377,27 @@ maps this page at its virtual address. · 277 unmodified lines
377377 All the functionality of flush_icache_page can be implemented in
378378 flush_dcache_page and update_mmu_cache. In 2.7 the hope is to
379379 remove this interface completely.
380+
381+The final category of APIs is for I/O to deliberately aliased address
382+ranges inside the kernel. Such aliases are set up by use of the
383+vmap/vmalloc API. Since kernel I/O goes via physical pages, the I/O
384+subsystem assumes that the user mapping and kernel offset mapping are
385+the only aliases. This isn't true for vmap aliases, so anything in
386+the kernel trying to do I/O to vmap areas must manually manage
387+coherency. It must do this by flushing the vmap range before doing
388+I/O and invalidating it after the I/O returns.
389+
390+ void flush_kernel_vmap_range(void *vaddr, int size)
391+ flushes the kernel cache for a given virtual address range in
392+ the vmap area. This is to make sure that any data the kernel
393+ modified in the vmap range is made visible to the physical
394+ page. The design is to make this area safe to perform I/O on.
395+ Note that this API does *not* also flush the offset map alias
396+ of the area.
397+
398+ void invalidate_kernel_vmap_range(void *vaddr, int size) invalidates
399+ the cache for a given virtual address range in the vmap area
400+ which prevents the processor from making the cache stale by
401+ speculatively reading data while the I/O was occurring to the
402+ physical pages. This is only necessary for data reads into the
403+ vmap area.
Documentation/dontdiff+0−1
@@ -69,7 +69,6 @@ av_permissions.h · 68 unmodified lines
6969 bbootsect
7070 bin2c
7171 binkernel.spec
72−binoffset
7372 bootsect
7473 bounds.h
7574 bsetup
Documentation/dvb/get_dvb_firmware+21−2
@@ -26,7 +26,7 @@ use IO::Handle; · 25 unmodified lines
2626 "dec3000s", "vp7041", "dibusb", "nxt2002", "nxt2004",
2727 "or51211", "or51132_qam", "or51132_vsb", "bluebird",
2828 "opera1", "cx231xx", "cx18", "cx23885", "pvrusb2", "mpc718",
29− "af9015");
29+ "af9015", "ngene");
3030
3131 # Check args
3232 syntax() if (scalar(@ARGV) != 1);
@@ -39,7 +39,7 @@ for ($i=0; $i < scalar(@components); $i++) { · 6 unmodified lines
3939 die $@ if $@;
4040 print STDERR <<EOF;
4141 Firmware(s) $outfile extracted successfully.
42−Now copy it(they) to either /usr/lib/hotplug/firmware or /lib/firmware
42+Now copy it(them) to either /usr/lib/hotplug/firmware or /lib/firmware
4343 (depending on configuration of firmware hotplug).
4444 EOF
4545 exit(0);
@@ -549,6 +549,24 @@ sub af9015 { · 503 unmodified lines
549549 close INFILE;
550550 }
551551
552+sub ngene {
553+ my $url = "http://www.digitaldevices.de/download/";
554+ my $file1 = "ngene_15.fw";
555+ my $hash1 = "d798d5a757121174f0dbc5f2833c0c85";
556+ my $file2 = "ngene_17.fw";
557+ my $hash2 = "26b687136e127b8ac24b81e0eeafc20b";
558+
559+ checkstandard();
560+
561+ wgetfile($file1, $url . $file1);
562+ verify($file1, $hash1);
563+
564+ wgetfile($file2, $url . $file2);
565+ verify($file2, $hash2);
566+
567+ "$file1, $file2";
568+}
569+
552570 # ---------------------------------------------------------------
553571 # Utilities
554572
@@ -667,6 +685,7 @@ sub delzero{ · 112 unmodified lines
667685 sub syntax() {
668686 print STDERR "syntax: get_dvb_firmware <component>\n";
669687 print STDERR "Supported components:\n";
688+ @components = sort @components;
670689 for($i=0; $i < scalar(@components); $i++) {
671690 print STDERR "\t" . $components[$i] . "\n";
672691 }
Documentation/feature-removal-schedule.txt+44−36
@@ -6,21 +6,6 @@ be removed from this file. · 5 unmodified lines
66
77 ---------------------------
88
9−What: USER_SCHED
10−When: 2.6.34
11−
12−Why: USER_SCHED was implemented as a proof of concept for group scheduling.
13− The effect of USER_SCHED can already be achieved from userspace with
14− the help of libcgroup. The removal of USER_SCHED will also simplify
15− the scheduler code with the removal of one major ifdef. There are also
16− issues USER_SCHED has with USER_NS. A decision was taken not to fix
17− those and instead remove USER_SCHED. Also new group scheduling
18− features will not be implemented for USER_SCHED.
19−
20−Who: Dhaval Giani <dhaval@linux.vnet.ibm.com>
21−
22−---------------------------
23−
249 What: PRISM54
2510 When: 2.6.34
2611
@@ -64,6 +49,17 @@ Who: Robin Getz <rgetz@blackfin.uclinux.org> & Matt Mackall <mpm@selenic.com> · 37 unmodified lines
6449
6550 ---------------------------
6651
52+What: Deprecated snapshot ioctls
53+When: 2.6.36
54+
55+Why: The ioctls in kernel/power/user.c were marked as deprecated long time
56+ ago. Now they notify users about that so that they need to replace
57+ their userspace. After some more time, remove them completely.
58+
59+Who: Jiri Slaby <jirislaby@gmail.com>
60+
61+---------------------------
62+
6763 What: The ieee80211_regdom module parameter
6864 When: March 2010 / desktop catchup
6965
@@ -88,27 +84,6 @@ Who: Luis R. Rodriguez <lrodriguez@atheros.com> · 18 unmodified lines
8884
8985 ---------------------------
9086
91−What: CONFIG_WIRELESS_OLD_REGULATORY - old static regulatory information
92−When: March 2010 / desktop catchup
93−
94−Why: The old regulatory infrastructure has been replaced with a new one
95− which does not require statically defined regulatory domains. We do
96− not want to keep static regulatory domains in the kernel due to the
97− the dynamic nature of regulatory law and localization. We kept around
98− the old static definitions for the regulatory domains of:
99−
100− * US
101− * JP
102− * EU
103−
104− and used by default the US when CONFIG_WIRELESS_OLD_REGULATORY was
105− set. We will remove this option once the standard Linux desktop catches
106− up with the new userspace APIs we have implemented.
107−
108−Who: Luis R. Rodriguez <lrodriguez@atheros.com>
109−
110−---------------------------
111−
11287 What: dev->power.power_state
11388 When: July 2007
11489 Why: Broken design for runtime control over driver power states, confusing
@@ -542,3 +517,36 @@ Why: Duplicate functionality with the gspca_zc3xx driver, zc0301 only · 427 unmodified lines
542517 sensors) wich are also supported by the gspca_zc3xx driver
543518 (which supports 53 USB-ID's in total)
544519 Who: Hans de Goede <hdegoede@redhat.com>
520+
521+----------------------------
522+
523+What: corgikbd, spitzkbd, tosakbd driver
524+When: 2.6.35
525+Files: drivers/input/keyboard/{corgi,spitz,tosa}kbd.c
526+Why: We now have a generic GPIO based matrix keyboard driver that
527+ are fully capable of handling all the keys on these devices.
528+ The original drivers manipulate the GPIO registers directly
529+ and so are difficult to maintain.
530+Who: Eric Miao <eric.y.miao@gmail.com>
531+
532+----------------------------
533+
534+What: corgi_ssp and corgi_ts driver
535+When: 2.6.35
536+Files: arch/arm/mach-pxa/corgi_ssp.c, drivers/input/touchscreen/corgi_ts.c
537+Why: The corgi touchscreen is now deprecated in favour of the generic
538+ ads7846.c driver. The noise reduction technique used in corgi_ts.c,
539+ that's to wait till vsync before ADC sampling, is also integrated into
540+ ads7846 driver now. Provided that the original driver is not generic
541+ and is difficult to maintain, it will be removed later.
542+Who: Eric Miao <eric.y.miao@gmail.com>
543+
544+----------------------------
545+
546+What: capifs
547+When: February 2011
548+Files: drivers/isdn/capi/capifs.*
549+Why: udev fully replaces this special file system that only contains CAPI
550+ NCCI TTY device nodes. User space (pppdcapiplugin) works without
551+ noticing the difference.
552+Who: Jan Kiszka <jan.kiszka@web.de>
Documentation/filesystems/dentry-locking.txt+2−1
@@ -62,7 +62,8 @@ changes are : · 61 unmodified lines
6262 2. Insertion of a dentry into the hash table is done using
6363 hlist_add_head_rcu() which take care of ordering the writes - the
6464 writes to the dentry must be visible before the dentry is
65− inserted. This works in conjunction with hlist_for_each_rcu() while
65+ inserted. This works in conjunction with hlist_for_each_rcu(),
66+ which has since been replaced by hlist_for_each_entry_rcu(), while
6667 walking the hash chain. The only requirement is that all
6768 initialization to the dentry must be done before
6869 hlist_add_head_rcu() since we don't have dcache_lock protection
Documentation/input/sentelic.txt+110−14
@@ -1,5 +1,5 @@
1−Copyright (C) 2002-2008 Sentelic Corporation.
2−Last update: Oct-31-2008
1+Copyright (C) 2002-2010 Sentelic Corporation.
2+Last update: Jan-13-2010
33
44 ==============================================================================
55 * Finger Sensing Pad Intellimouse Mode(scrolling wheel, 4th and 5th buttons)
@@ -44,7 +44,7 @@ B) MSID 6: Horizontal and Vertical scrolling. · 38 unmodified lines
4444 Packet 1
4545 Bit 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
4646 BYTE |---------------|BYTE |---------------|BYTE|---------------|BYTE|---------------|
47− 1 |Y|X|y|x|1|M|R|L| 2 |X|X|X|X|X|X|X|X| 3 |Y|Y|Y|Y|Y|Y|Y|Y| 4 | | |B|F|l|r|u|d|
47+ 1 |Y|X|y|x|1|M|R|L| 2 |X|X|X|X|X|X|X|X| 3 |Y|Y|Y|Y|Y|Y|Y|Y| 4 | | |B|F|r|l|u|d|
4848 |---------------| |---------------| |---------------| |---------------|
4949
5050 Byte 1: Bit7 => Y overflow
@@ -59,15 +59,15 @@ Byte 2: X Movement(9-bit 2's complement integers) · 8 unmodified lines
5959 Byte 3: Y Movement(9-bit 2's complement integers)
6060 Byte 4: Bit0 => the Vertical scrolling movement downward.
6161 Bit1 => the Vertical scrolling movement upward.
62− Bit2 => the Vertical scrolling movement rightward.
63− Bit3 => the Vertical scrolling movement leftward.
62+ Bit2 => the Horizontal scrolling movement leftward.
63+ Bit3 => the Horizontal scrolling movement rightward.
6464 Bit4 => 1 = 4th mouse button is pressed, Forward one page.
6565 0 = 4th mouse button is not pressed.
6666 Bit5 => 1 = 5th mouse button is pressed, Backward one page.
6767 0 = 5th mouse button is not pressed.
6868
6969 C) MSID 7:
70−# FSP uses 2 packets(8 Bytes) data to represent Absolute Position
70+# FSP uses 2 packets (8 Bytes) to represent Absolute Position.
7171 so we have PACKET NUMBER to identify packets.
7272 If PACKET NUMBER is 0, the packet is Packet 1.
7373 If PACKET NUMBER is 1, the packet is Packet 2.
@@ -129,7 +129,7 @@ Byte 3: Message Type => 0x00 (Disabled) · 55 unmodified lines
129129 Byte 4: Bit7~Bit0 => Don't Care
130130
131131 ==============================================================================
132−* Absolute position for STL3888-A0.
132+* Absolute position for STL3888-Ax.
133133 ==============================================================================
134134 Packet 1 (ABSOLUTE POSITION)
135135 Bit 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
@@ -179,14 +179,14 @@ Byte 4: Bit1~Bit0 => Y coordinate (xpos[1:0]) · 43 unmodified lines
179179 Bit5~Bit4 => y2_g
180180 Bit7~Bit6 => x2_g
181181
182−Notify Packet for STL3888-A0
182+Notify Packet for STL3888-Ax
183183 Bit 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
184184 BYTE |---------------|BYTE |---------------|BYTE|---------------|BYTE|---------------|
185185 1 |1|0|1|P|1|M|R|L| 2 |C|C|C|C|C|C|C|C| 3 |0|0|F|F|0|0|0|i| 4 |r|l|d|u|0|0|0|0|
186186 |---------------| |---------------| |---------------| |---------------|
187187
188188 Byte 1: Bit7~Bit6 => 00, Normal data packet
189− => 01, Absolute coordination packet
189+ => 01, Absolute coordinates packet
190190 => 10, Notify packet
191191 Bit5 => 1
192192 Bit4 => when in absolute coordinates mode (valid when EN_PKT_GO is 1):
@@ -205,15 +205,106 @@ Byte 4: Bit7 => scroll right button · 12 unmodified lines
205205 Bit6 => scroll left button
206206 Bit5 => scroll down button
207207 Bit4 => scroll up button
208− * Note that if gesture and additional button (Bit4~Bit7)
209− happen at the same time, the button information will not
210− be sent.
208+ * Note that if gesture and additional buttoni (Bit4~Bit7)
209+ happen at the same time, the button information will not
210+ be sent.
211+ Bit3~Bit0 => Reserved
212+
213+Sample sequence of Multi-finger, Multi-coordinate mode:
214+
215+ notify packet (valid bit == 1), abs pkt 1, abs pkt 2, abs pkt 1,
216+ abs pkt 2, ..., notify packet (valid bit == 0)
217+
218+==============================================================================
219+* Absolute position for STL3888-B0.
220+==============================================================================
221+Packet 1(ABSOLUTE POSITION)
222+ Bit 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
223+BYTE |---------------|BYTE |---------------|BYTE|---------------|BYTE|---------------|
224+ 1 |0|1|V|F|1|0|R|L| 2 |X|X|X|X|X|X|X|X| 3 |Y|Y|Y|Y|Y|Y|Y|Y| 4 |r|l|u|d|X|X|Y|Y|
225+ |---------------| |---------------| |---------------| |---------------|
226+
227+Byte 1: Bit7~Bit6 => 00, Normal data packet
228+ => 01, Absolute coordinates packet
229+ => 10, Notify packet
230+ Bit5 => Valid bit, 0 means that the coordinate is invalid or finger up.
231+ When both fingers are up, the last two reports have zero valid
232+ bit.
233+ Bit4 => finger up/down information. 1: finger down, 0: finger up.
234+ Bit3 => 1
235+ Bit2 => finger index, 0 is the first finger, 1 is the second finger.
236+ Bit1 => Right Button, 1 is pressed, 0 is not pressed.
237+ Bit0 => Left Button, 1 is pressed, 0 is not pressed.
238+Byte 2: X coordinate (xpos[9:2])
239+Byte 3: Y coordinate (ypos[9:2])
240+Byte 4: Bit1~Bit0 => Y coordinate (xpos[1:0])
241+ Bit3~Bit2 => X coordinate (ypos[1:0])
242+ Bit4 => scroll down button
243+ Bit5 => scroll up button
244+ Bit6 => scroll left button
245+ Bit7 => scroll right button
246+
247+Packet 2 (ABSOLUTE POSITION)
248+ Bit 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
249+BYTE |---------------|BYTE |---------------|BYTE|---------------|BYTE|---------------|
250+ 1 |0|1|V|F|1|1|R|L| 2 |X|X|X|X|X|X|X|X| 3 |Y|Y|Y|Y|Y|Y|Y|Y| 4 |r|l|u|d|X|X|Y|Y|
251+ |---------------| |---------------| |---------------| |---------------|
252+
253+Byte 1: Bit7~Bit6 => 00, Normal data packet
254+ => 01, Absolute coordination packet
255+ => 10, Notify packet
256+ Bit5 => Valid bit, 0 means that the coordinate is invalid or finger up.
257+ When both fingers are up, the last two reports have zero valid
258+ bit.
259+ Bit4 => finger up/down information. 1: finger down, 0: finger up.
260+ Bit3 => 1
261+ Bit2 => finger index, 0 is the first finger, 1 is the second finger.
262+ Bit1 => Right Button, 1 is pressed, 0 is not pressed.
263+ Bit0 => Left Button, 1 is pressed, 0 is not pressed.
264+Byte 2: X coordinate (xpos[9:2])
265+Byte 3: Y coordinate (ypos[9:2])
266+Byte 4: Bit1~Bit0 => Y coordinate (xpos[1:0])
267+ Bit3~Bit2 => X coordinate (ypos[1:0])
268+ Bit4 => scroll down button
269+ Bit5 => scroll up button
270+ Bit6 => scroll left button
271+ Bit7 => scroll right button
272+
273+Notify Packet for STL3888-B0
274+ Bit 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
275+BYTE |---------------|BYTE |---------------|BYTE|---------------|BYTE|---------------|
276+ 1 |1|0|1|P|1|M|R|L| 2 |C|C|C|C|C|C|C|C| 3 |0|0|F|F|0|0|0|i| 4 |r|l|u|d|0|0|0|0|
277+ |---------------| |---------------| |---------------| |---------------|
278+
279+Byte 1: Bit7~Bit6 => 00, Normal data packet
280+ => 01, Absolute coordination packet
281+ => 10, Notify packet
282+ Bit5 => 1
283+ Bit4 => when in absolute coordinate mode (valid when EN_PKT_GO is 1):
284+ 0: left button is generated by the on-pad command
285+ 1: left button is generated by the external button
286+ Bit3 => 1
287+ Bit2 => Middle Button, 1 is pressed, 0 is not pressed.
288+ Bit1 => Right Button, 1 is pressed, 0 is not pressed.
289+ Bit0 => Left Button, 1 is pressed, 0 is not pressed.
290+Byte 2: Message Type => 0xB7 (Multi Finger, Multi Coordinate mode)
291+Byte 3: Bit7~Bit6 => Don't care
292+ Bit5~Bit4 => Number of fingers
293+ Bit3~Bit1 => Reserved
294+ Bit0 => 1: enter gesture mode; 0: leaving gesture mode
295+Byte 4: Bit7 => scroll right button
296+ Bit6 => scroll left button
297+ Bit5 => scroll up button
298+ Bit4 => scroll down button
299+ * Note that if gesture and additional button(Bit4~Bit7)
300+ happen at the same time, the button information will not
301+ be sent.
211302 Bit3~Bit0 => Reserved
212303
213304 Sample sequence of Multi-finger, Multi-coordinate mode:
214305
215306 notify packet (valid bit == 1), abs pkt 1, abs pkt 2, abs pkt 1,
216− abs pkt 2, ..., notify packet(valid bit == 0)
307+ abs pkt 2, ..., notify packet (valid bit == 0)
217308
218309 ==============================================================================
219310 * FSP Enable/Disable packet
@@ -409,7 +500,8 @@ offset width default r/w name · 189 unmodified lines
409500 0: read only, 1: read/write enable
410501 (Note that following registers does not require clock gating being
411502 enabled prior to write: 05 06 07 08 09 0c 0f 10 11 12 16 17 18 23 2e
412− 40 41 42 43.)
503+ 40 41 42 43. In addition to that, this bit must be 1 when gesture
504+ mode is enabled)
413505
414506 0x31 RW on-pad command detection
415507 bit7 0 RW on-pad command left button down tag
@@ -463,6 +555,10 @@ offset width default r/w name · 47 unmodified lines
463555 absolute coordinates; otherwise, host only receives packets with
464556 relative coordinate.)
465557
558+ bit7 0 RW EN_PS2_F2: PS/2 gesture mode 2nd
559+ finger packet enable
560+ 0: disable, 1: enable
561+
466562 0x43 RW on-pad control
467563 bit0 0 RW on-pad control enable
468564 0: disable, 1: enable
Documentation/isdn/INTERFACE.CAPI+5−4
@@ -149,10 +149,11 @@ char *(*procinfo)(struct capi_ctr *ctrlr) · 148 unmodified lines
149149 pointer to a callback function returning the entry for the device in
150150 the CAPI controller info table, /proc/capi/controller
151151
152−read_proc_t *ctr_read_proc
153− pointer to the read_proc callback function for the device's proc file
154− system entry, /proc/capi/controllers/<n>; will be called with a
155− pointer to the device's capi_ctr structure as the last (data) argument
152+const struct file_operations *proc_fops
153+ pointers to callback functions for the device's proc file
154+ system entry, /proc/capi/controllers/<n>; pointer to the device's
155+ capi_ctr structure is available from struct proc_dir_entry::data
156+ which is available from struct inode.
156157
157158 Note: Callback functions except send_message() are never called in interrupt
158159 context.
Documentation/isdn/README.gigaset+5−5
@@ -292,10 +292,10 @@ GigaSet 307x Device Driver · 291 unmodified lines
292292 to /etc/modprobe.d/gigaset, /etc/modprobe.conf.local or a similar file.
293293
294294 Problem:
295− Your isdn script aborts with a message about isdnlog.
295+ The isdnlog program emits error messages or just doesn't work.
296296 Solution:
297− Try deactivating (or commenting out) isdnlog. This driver does not
298− support it.
297+ Isdnlog supports only the HiSax driver. Do not attempt to use it with
298+ other drivers such as Gigaset.
299299
300300 Problem:
301301 You have two or more DECT data adapters (M101/M105) and only the
@@ -321,8 +321,8 @@ GigaSet 307x Device Driver · 19 unmodified lines
321321 writing an appropriate value to /sys/module/gigaset/parameters/debug, e.g.
322322 echo 0 > /sys/module/gigaset/parameters/debug
323323 switches off debugging output completely,
324− echo 0x10a020 > /sys/module/gigaset/parameters/debug
325− enables the standard set of debugging output messages. These values are
324+ echo 0x302020 > /sys/module/gigaset/parameters/debug
325+ enables a reasonable set of debugging output messages. These values are
326326 bit patterns where every bit controls a certain type of debugging output.
327327 See the constants DEBUG_* in the source file gigaset.h for details.
328328
Documentation/kernel-parameters.txt+34−2
@@ -54,6 +54,7 @@ parameter is applicable: · 53 unmodified lines
5454 IMA Integrity measurement architecture is enabled.
5555 IOSCHED More than one I/O scheduler is enabled.
5656 IP_PNP IP DHCP, BOOTP, or RARP is enabled.
57+ IPV6 IPv6 support is enabled.
5758 ISAPNP ISA PnP code is enabled.
5859 ISDN Appropriate ISDN support is enabled.
5960 JOY Appropriate joystick support is enabled.
@@ -356,6 +357,9 @@ and is between 256 and 4096 characters. It is defined in the file · 296 unmodified lines
356357 Change the amount of debugging information output
357358 when initialising the APIC and IO-APIC components.
358359
360+ autoconf= [IPV6]
361+ See Documentation/networking/ipv6.txt.
362+
359363 show_lapic= [APIC,X86] Advanced Programmable Interrupt Controller
360364 Limit apic dumping. The parameter defines the maximal
361365 number of local apics being dumped. Also it is possible
@@ -638,6 +642,12 @@ and is between 256 and 4096 characters. It is defined in the file · 276 unmodified lines
638642 See drivers/char/README.epca and
639643 Documentation/serial/digiepca.txt.
640644
645+ disable= [IPV6]
646+ See Documentation/networking/ipv6.txt.
647+
648+ disable_ipv6= [IPV6]
649+ See Documentation/networking/ipv6.txt.
650+
641651 disable_mtrr_cleanup [X86]
642652 The kernel tries to adjust MTRR layout from continuous
643653 to discrete, to make X server driver able to add WB
@@ -1738,6 +1748,9 @@ and is between 256 and 4096 characters. It is defined in the file · 1094 unmodified lines
17381748 nomfgpt [X86-32] Disable Multi-Function General Purpose
17391749 Timer usage (for AMD Geode machines).
17401750
1751+ nopat [X86] Disable PAT (page attribute table extension of
1752+ pagetables) support.
1753+
17411754 norandmaps Don't use address space randomization. Equivalent to
17421755 echo 0 > /proc/sys/kernel/randomize_va_space
17431756
@@ -1948,8 +1961,12 @@ and is between 256 and 4096 characters. It is defined in the file · 204 unmodified lines
19481961 IRQ routing is enabled.
19491962 noacpi [X86] Do not use ACPI for IRQ routing
19501963 or for PCI scanning.
1951− use_crs [X86] Use _CRS for PCI resource
1952− allocation.
1964+ use_crs [X86] Use PCI host bridge window information
1965+ from ACPI. On BIOSes from 2008 or later, this
1966+ is enabled by default. If you need to use this,
1967+ please report a bug.
1968+ nocrs [X86] Ignore PCI host bridge windows from ACPI.
1969+ If you need to use this, please report a bug.
19531970 routeirq Do IRQ routing for all PCI devices.
19541971 This is normally done in pci_enable_device(),
19551972 so this option is a temporary workaround
@@ -1998,6 +2015,14 @@ and is between 256 and 4096 characters. It is defined in the file · 42 unmodified lines
19982015 force Enable ASPM even on devices that claim not to support it.
19992016 WARNING: Forcing ASPM on may cause system lockups.
20002017
2018+ pcie_pme= [PCIE,PM] Native PCIe PME signaling options:
2019+ off Do not use native PCIe PME signaling.
2020+ force Use native PCIe PME signaling even if the BIOS refuses
2021+ to allow the kernel to control the relevant PCIe config
2022+ registers.
2023+ nomsi Do not use MSI for native PCIe PME signaling (this makes
2024+ all PCIe root ports use INTx for everything).
2025+
20012026 pcmv= [HW,PCMCIA] BadgePAD 4
20022027
20032028 pd. [PARIDE]
@@ -2703,6 +2728,13 @@ and is between 256 and 4096 characters. It is defined in the file · 699 unmodified lines
27032728 medium is write-protected).
27042729 Example: quirks=0419:aaf5:rl,0421:0433:rc
27052730
2731+ userpte=
2732+ [X86] Flags controlling user PTE allocations.
2733+
2734+ nohigh = do not allocate PTE pages in
2735+ HIGHMEM regardless of setting
2736+ of CONFIG_HIGHPTE.
2737+
27062738 vdso= [X86,SH]
27072739 vdso=2: enable compat VDSO (default with COMPAT_VDSO)
27082740 vdso=1: enable VDSO (default)
Documentation/lguest/lguest.c+0−1
@@ -34,7 +34,6 @@ · 33 unmodified lines
3434 #include <sys/uio.h>
3535 #include <termios.h>
3636 #include <getopt.h>
37−#include <zlib.h>
3837 #include <assert.h>
3938 #include <sched.h>
4039 #include <limits.h>
Documentation/networking/dccp.txt+4−2
@@ -58,8 +58,10 @@ DCCP_SOCKOPT_GET_CUR_MPS is read-only and retrieves the current maximum packet · 57 unmodified lines
5858 size (application payload size) in bytes, see RFC 4340, section 14.
5959
6060 DCCP_SOCKOPT_AVAILABLE_CCIDS is also read-only and returns the list of CCIDs
61−supported by the endpoint (see include/linux/dccp.h for symbolic constants).
62−The caller needs to provide a sufficiently large (> 2) array of type uint8_t.
61+supported by the endpoint. The option value is an array of type uint8_t whose
62+size is passed as option length. The minimum array size is 4 elements, the
63+value returned in the optlen argument always reflects the true number of
64+built-in CCIDs.
6365
6466 DCCP_SOCKOPT_CCID is write-only and sets both the TX and RX CCIDs at the same
6567 time, combining the operation of the next two socket options. This option is
Documentation/networking/ip-sysctl.txt+55−3
@@ -487,6 +487,30 @@ tcp_dma_copybreak - INTEGER · 486 unmodified lines
487487 and CONFIG_NET_DMA is enabled.
488488 Default: 4096
489489
490+tcp_thin_linear_timeouts - BOOLEAN
491+ Enable dynamic triggering of linear timeouts for thin streams.
492+ If set, a check is performed upon retransmission by timeout to
493+ determine if the stream is thin (less than 4 packets in flight).
494+ As long as the stream is found to be thin, up to 6 linear
495+ timeouts may be performed before exponential backoff mode is
496+ initiated. This improves retransmission latency for
497+ non-aggressive thin streams, often found to be time-dependent.
498+ For more information on thin streams, see
499+ Documentation/networking/tcp-thin.txt
500+ Default: 0
501+
502+tcp_thin_dupack - BOOLEAN
503+ Enable dynamic triggering of retransmissions after one dupACK
504+ for thin streams. If set, a check is performed upon reception
505+ of a dupACK to determine if the stream is thin (less than 4
506+ packets in flight). As long as the stream is found to be thin,
507+ data is retransmitted on the first received dupACK. This
508+ improves retransmission latency for non-aggressive thin
509+ streams, often found to be time-dependent.
510+ For more information on thin streams, see
511+ Documentation/networking/tcp-thin.txt
512+ Default: 0
513+
490514 UDP variables:
491515
492516 udp_mem - vector of 3 INTEGERs: min, pressure, max
@@ -692,6 +716,25 @@ proxy_arp - BOOLEAN · 199 unmodified lines
692716 conf/{all,interface}/proxy_arp is set to TRUE,
693717 it will be disabled otherwise
694718
719+proxy_arp_pvlan - BOOLEAN
720+ Private VLAN proxy arp.
721+ Basically allow proxy arp replies back to the same interface
722+ (from which the ARP request/solicitation was received).
723+
724+ This is done to support (ethernet) switch features, like RFC
725+ 3069, where the individual ports are NOT allowed to
726+ communicate with each other, but they are allowed to talk to
727+ the upstream router. As described in RFC 3069, it is possible
728+ to allow these hosts to communicate through the upstream
729+ router by proxy_arp'ing. Don't need to be used together with
730+ proxy_arp.
731+
732+ This technology is known by different names:
733+ In RFC 3069 it is called VLAN Aggregation.
734+ Cisco and Allied Telesyn call it Private VLAN.
735+ Hewlett-Packard call it Source-Port filtering or port-isolation.
736+ Ericsson call it MAC-Forced Forwarding (RFC Draft).
737+
695738 shared_media - BOOLEAN
696739 Send(router) or accept(host) RFC1620 shared media redirects.
697740 Overrides ip_secure_redirects.
@@ -833,9 +876,18 @@ arp_notify - BOOLEAN · 135 unmodified lines
833876 or hardware address changes.
834877
835878 arp_accept - BOOLEAN
836− Define behavior when gratuitous arp replies are received:
837− 0 - drop gratuitous arp frames
838− 1 - accept gratuitous arp frames
879+ Define behavior for gratuitous ARP frames who's IP is not
880+ already present in the ARP table:
881+ 0 - don't create new entries in the ARP table
882+ 1 - create new entries in the ARP table
883+
884+ Both replies and requests type gratuitous arp will trigger the
885+ ARP table to be updated, if this setting is on.
886+
887+ If the ARP table already contains the IP address of the
888+ gratuitous arp frame, the arp table will be updated regardless
889+ if this setting is on or off.
890+
839891
840892 app_solicit - INTEGER
841893 The maximum number of probes to send to the user space ARP daemon
Documentation/networking/ixgbevf.txt+90−0
@@ -0,0 +1,90 @@
1+Linux* Base Driver for Intel(R) Network Connection
2+==================================================
3+
4+November 24, 2009
5+
6+Contents
7+========
8+
9+- In This Release
10+- Identifying Your Adapter
11+- Known Issues/Troubleshooting
12+- Support
13+
14+In This Release
15+===============
16+
17+This file describes the ixgbevf Linux* Base Driver for Intel Network
18+Connection.
19+
20+The ixgbevf driver supports 82599-based virtual function devices that can only
21+be activated on kernels with CONFIG_PCI_IOV enabled.
22+
23+The ixgbevf driver supports virtual functions generated by the ixgbe driver
24+with a max_vfs value of 1 or greater.
25+
26+The guest OS loading the ixgbevf driver must support MSI-X interrupts.
27+
28+VLANs: There is a limit of a total of 32 shared VLANs to 1 or more VFs.
29+
30+Identifying Your Adapter
31+========================
32+
33+For more information on how to identify your adapter, go to the Adapter &
34+Driver ID Guide at:
35+
36+ http://support.intel.com/support/network/sb/CS-008441.htm
37+
38+Known Issues/Troubleshooting
39+============================
40+
41+ Unloading Physical Function (PF) Driver Causes System Reboots When VM is
42+ Running and VF is Loaded on the VM
43+ ------------------------------------------------------------------------
44+ Do not unload the PF driver (ixgbe) while VFs are assigned to guests.
45+
46+Support
47+=======
48+
49+For general information, go to the Intel support website at:
50+
51+ http://support.intel.com
52+
53+or the Intel Wired Networking project hosted by Sourceforge at:
54+
55+ http://sourceforge.net/projects/e1000
56+
57+If an issue is identified with the released source code on the supported
58+kernel with a supported adapter, email the specific information related
59+to the issue to e1000-devel@lists.sf.net
60+
61+License
62+=======
63+
64+Intel 10 Gigabit Linux driver.
65+Copyright(c) 1999 - 2009 Intel Corporation.
66+
67+This program is free software; you can redistribute it and/or modify it
68+under the terms and conditions of the GNU General Public License,
69+version 2, as published by the Free Software Foundation.
70+
71+This program is distributed in the hope it will be useful, but WITHOUT
72+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
73+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
74+more details.
75+
76+You should have received a copy of the GNU General Public License along with
77+this program; if not, write to the Free Software Foundation, Inc.,
78+51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
79+
80+The full GNU General Public License is included in this distribution in
81+the file called "COPYING".
82+
83+Trademarks
84+==========
85+
86+Intel, Itanium, and Pentium are trademarks or registered trademarks of
87+Intel Corporation or its subsidiaries in the United States and other
88+countries.
89+
90+* Other names and brands may be claimed as the property of others.
Documentation/networking/packet_mmap.txt+4−4
@@ -2,7 +2,7 @@ · 1 unmodified line
22 + ABSTRACT
33 --------------------------------------------------------------------------------
44
5−This file documents the CONFIG_PACKET_MMAP option available with the PACKET
5+This file documents the mmap() facility available with the PACKET
66 socket interface on 2.4 and 2.6 kernels. This type of sockets is used for
77 capture network traffic with utilities like tcpdump or any other that needs
88 raw access to network interface.
@@ -44,7 +44,7 @@ enabled. For transmission, check the MTU (Maximum Transmission Unit) used and · 35 unmodified lines
4444 supported by devices of your network.
4545
4646 --------------------------------------------------------------------------------
47−+ How to use CONFIG_PACKET_MMAP to improve capture process
47++ How to use mmap() to improve capture process
4848 --------------------------------------------------------------------------------
4949
5050 From the user standpoint, you should use the higher level libpcap library, which
@@ -64,7 +64,7 @@ the low level details or want to improve libpcap by including PACKET_MMAP · 13 unmodified lines
6464 support.
6565
6666 --------------------------------------------------------------------------------
67−+ How to use CONFIG_PACKET_MMAP directly to improve capture process
67++ How to use mmap() directly to improve capture process
6868 --------------------------------------------------------------------------------
6969
7070 From the system calls stand point, the use of PACKET_MMAP involves
@@ -105,7 +105,7 @@ also the mapping of the circular buffer in the user process and · 34 unmodified lines
105105 the use of this buffer.
106106
107107 --------------------------------------------------------------------------------
108−+ How to use CONFIG_PACKET_MMAP directly to improve transmission process
108++ How to use mmap() directly to improve transmission process
109109 --------------------------------------------------------------------------------
110110 Transmission process is similar to capture as shown below.
111111
Documentation/networking/regulatory.txt+24−0
@@ -188,3 +188,27 @@ Then in some part of your code after your wiphy has been registered: · 187 unmodified lines
188188 &mydriver_jp_regdom.reg_rules[i],
189189 sizeof(struct ieee80211_reg_rule));
190190 regulatory_struct_hint(rd);
191+
192+Statically compiled regulatory database
193+---------------------------------------
194+
195+In most situations the userland solution using CRDA as described
196+above is the preferred solution. However in some cases a set of
197+rules built into the kernel itself may be desirable. To account
198+for this situation, a configuration option has been provided
199+(i.e. CONFIG_CFG80211_INTERNAL_REGDB). With this option enabled,
200+the wireless database information contained in net/wireless/db.txt is
201+used to generate a data structure encoded in net/wireless/regdb.c.
202+That option also enables code in net/wireless/reg.c which queries
203+the data in regdb.c as an alternative to using CRDA.
204+
205+The file net/wireless/db.txt should be kept up-to-date with the db.txt
206+file available in the git repository here:
207+
208+ git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-regdb.git
209+
210+Again, most users in most situations should be using the CRDA package
211+provided with their distribution, and in most other situations users
212+should be building and using CRDA on their own rather than using
213+this option. If you are not absolutely sure that you should be using
214+CONFIG_CFG80211_INTERNAL_REGDB then _DO_NOT_USE_IT_.
Documentation/networking/tcp-thin.txt+47−0
@@ -0,0 +1,47 @@
1+Thin-streams and TCP
2+====================
3+A wide range of Internet-based services that use reliable transport
4+protocols display what we call thin-stream properties. This means
5+that the application sends data with such a low rate that the
6+retransmission mechanisms of the transport protocol are not fully
7+effective. In time-dependent scenarios (like online games, control
8+systems, stock trading etc.) where the user experience depends
9+on the data delivery latency, packet loss can be devastating for
10+the service quality. Extreme latencies are caused by TCP's
11+dependency on the arrival of new data from the application to trigger
12+retransmissions effectively through fast retransmit instead of
13+waiting for long timeouts.
14+
15+After analysing a large number of time-dependent interactive
16+applications, we have seen that they often produce thin streams
17+and also stay with this traffic pattern throughout its entire
18+lifespan. The combination of time-dependency and the fact that the
19+streams provoke high latencies when using TCP is unfortunate.
20+
21+In order to reduce application-layer latency when packets are lost,
22+a set of mechanisms has been made, which address these latency issues
23+for thin streams. In short, if the kernel detects a thin stream,
24+the retransmission mechanisms are modified in the following manner:
25+
26+1) If the stream is thin, fast retransmit on the first dupACK.
27+2) If the stream is thin, do not apply exponential backoff.
28+
29+These enhancements are applied only if the stream is detected as
30+thin. This is accomplished by defining a threshold for the number
31+of packets in flight. If there are less than 4 packets in flight,
32+fast retransmissions can not be triggered, and the stream is prone
33+to experience high retransmission latencies.
34+
35+Since these mechanisms are targeted at time-dependent applications,
36+they must be specifically activated by the application using the
37+TCP_THIN_LINEAR_TIMEOUTS and TCP_THIN_DUPACK IOCTLS or the
38+tcp_thin_linear_timeouts and tcp_thin_dupack sysctls. Both
39+modifications are turned off by default.
40+
41+References
42+==========
43+More information on the modifications, as well as a wide range of
44+experimental data can be found here:
45+"Improving latency for interactive, thin-stream applications over
46+reliable transport"
47+http://simula.no/research/nd/publications/Simula.nd.477/simula_pdf_file
Documentation/pcmcia/locking.txt+118−0
@@ -0,0 +1,118 @@
1+This file explains the locking and exclusion scheme used in the PCCARD
2+and PCMCIA subsystems.
3+
4+
5+A) Overview, Locking Hierarchy:
6+===============================
7+
8+pcmcia_socket_list_rwsem - protects only the list of sockets
9+- skt_mutex - serializes card insert / ejection
10+ - ops_mutex - serializes socket operation
11+
12+
13+B) Exclusion
14+============
15+
16+The following functions and callbacks to struct pcmcia_socket must
17+be called with "skt_mutex" held:
18+
19+ socket_detect_change()
20+ send_event()
21+ socket_reset()
22+ socket_shutdown()
23+ socket_setup()
24+ socket_remove()
25+ socket_insert()
26+ socket_early_resume()
27+ socket_late_resume()
28+ socket_resume()
29+ socket_suspend()
30+
31+ struct pcmcia_callback *callback
32+
33+The following functions and callbacks to struct pcmcia_socket must
34+be called with "ops_mutex" held:
35+
36+ socket_reset()
37+ socket_setup()
38+
39+ struct pccard_operations *ops
40+ struct pccard_resource_ops *resource_ops;
41+
42+Note that send_event() and struct pcmcia_callback *callback must not be
43+called with "ops_mutex" held.
44+
45+
46+C) Protection
47+=============
48+
49+1. Global Data:
50+---------------
51+struct list_head pcmcia_socket_list;
52+
53+protected by pcmcia_socket_list_rwsem;
54+
55+
56+2. Per-Socket Data:
57+-------------------
58+The resource_ops and their data are protected by ops_mutex.
59+
60+The "main" struct pcmcia_socket is protected as follows (read-only fields
61+or single-use fields not mentioned):
62+
63+- by pcmcia_socket_list_rwsem:
64+ struct list_head socket_list;
65+
66+- by thread_lock:
67+ unsigned int thread_events;
68+
69+- by skt_mutex:
70+ u_int suspended_state;
71+ void (*tune_bridge);
72+ struct pcmcia_callback *callback;
73+ int resume_status;
74+
75+- by ops_mutex:
76+ socket_state_t socket;
77+ u_int state;
78+ u_short lock_count;
79+ pccard_mem_map cis_mem;
80+ void __iomem *cis_virt;
81+ struct { } irq;
82+ io_window_t io[];
83+ pccard_mem_map win[];
84+ struct list_head cis_cache;
85+ size_t fake_cis_len;
86+ u8 *fake_cis;
87+ u_int irq_mask;
88+ void (*zoom_video);
89+ int (*power_hook);
90+ u8 resource...;
91+ struct list_head devices_list;
92+ u8 device_count;
93+ struct pcmcia_state;
94+
95+
96+3. Per PCMCIA-device Data:
97+--------------------------
98+
99+The "main" struct pcmcia_devie is protected as follows (read-only fields
100+or single-use fields not mentioned):
101+
102+
103+- by pcmcia_socket->ops_mutex:
104+ struct list_head socket_device_list;
105+ struct config_t *function_config;
106+ u16 _irq:1;
107+ u16 _io:1;
108+ u16 _win:4;
109+ u16 _locked:1;
110+ u16 allow_func_id_match:1;
111+ u16 suspended:1;
112+ u16 _removed:1;
113+
114+- by the PCMCIA driver:
115+ io_req_t io;
116+ irq_req_t irq;
117+ config_req_t conf;
118+ window_handle_t win;
Documentation/powerpc/dts-bindings/fsl/can.txt+53−0
@@ -0,0 +1,53 @@
1+CAN Device Tree Bindings
2+------------------------
3+
4+(c) 2006-2009 Secret Lab Technologies Ltd
5+Grant Likely <grant.likely@secretlab.ca>
6+
7+fsl,mpc5200-mscan nodes
8+-----------------------
9+In addition to the required compatible-, reg- and interrupt-properties, you can
10+also specify which clock source shall be used for the controller:
11+
12+- fsl,mscan-clock-source : a string describing the clock source. Valid values
13+ are: "ip" for ip bus clock
14+ "ref" for reference clock (XTAL)
15+ "ref" is default in case this property is not
16+ present.
17+
18+fsl,mpc5121-mscan nodes
19+-----------------------
20+In addition to the required compatible-, reg- and interrupt-properties, you can
21+also specify which clock source and divider shall be used for the controller:
22+
23+- fsl,mscan-clock-source : a string describing the clock source. Valid values
24+ are: "ip" for ip bus clock
25+ "ref" for reference clock
26+ "sys" for system clock
27+ If this property is not present, an optimal CAN
28+ clock source and frequency based on the system
29+ clock will be selected. If this is not possible,
30+ the reference clock will be used.
31+
32+- fsl,mscan-clock-divider: for the reference and system clock, an additional
33+ clock divider can be specified. By default, a
34+ value of 1 is used.
35+
36+Note that the MPC5121 Rev. 1 processor is not supported.
37+
38+Examples:
39+ can@1300 {
40+ compatible = "fsl,mpc5121-mscan";
41+ interrupts = <12 0x8>;
42+ interrupt-parent = <&ipic>;
43+ reg = <0x1300 0x80>;
44+ };
45+
46+ can@1380 {
47+ compatible = "fsl,mpc5121-mscan";
48+ interrupts = <13 0x8>;
49+ interrupt-parent = <&ipic>;
50+ reg = <0x1380 0x80>;
51+ fsl,mscan-clock-source = "ref";
52+ fsl,mscan-clock-divider = <3>;
53+ };
Documentation/powerpc/dts-bindings/fsl/mpc5121-psc.txt+70−0
@@ -0,0 +1,70 @@
1+MPC5121 PSC Device Tree Bindings
2+
3+PSC in UART mode
4+----------------
5+
6+For PSC in UART mode the needed PSC serial devices
7+are specified by fsl,mpc5121-psc-uart nodes in the
8+fsl,mpc5121-immr SoC node. Additionally the PSC FIFO
9+Controller node fsl,mpc5121-psc-fifo is requered there:
10+
11+fsl,mpc5121-psc-uart nodes
12+--------------------------
13+
14+Required properties :
15+ - compatible : Should contain "fsl,mpc5121-psc-uart" and "fsl,mpc5121-psc"
16+ - cell-index : Index of the PSC in hardware
17+ - reg : Offset and length of the register set for the PSC device
18+ - interrupts : <a b> where a is the interrupt number of the
19+ PSC FIFO Controller and b is a field that represents an
20+ encoding of the sense and level information for the interrupt.
21+ - interrupt-parent : the phandle for the interrupt controller that
22+ services interrupts for this device.
23+
24+Recommended properties :
25+ - fsl,rx-fifo-size : the size of the RX fifo slice (a multiple of 4)
26+ - fsl,tx-fifo-size : the size of the TX fifo slice (a multiple of 4)
27+
28+
29+fsl,mpc5121-psc-fifo node
30+-------------------------
31+
32+Required properties :
33+ - compatible : Should be "fsl,mpc5121-psc-fifo"
34+ - reg : Offset and length of the register set for the PSC
35+ FIFO Controller
36+ - interrupts : <a b> where a is the interrupt number of the
37+ PSC FIFO Controller and b is a field that represents an
38+ encoding of the sense and level information for the interrupt.
39+ - interrupt-parent : the phandle for the interrupt controller that
40+ services interrupts for this device.
41+
42+
43+Example for a board using PSC0 and PSC1 devices in serial mode:
44+
45+serial@11000 {
46+ compatible = "fsl,mpc5121-psc-uart", "fsl,mpc5121-psc";
47+ cell-index = <0>;
48+ reg = <0x11000 0x100>;
49+ interrupts = <40 0x8>;
50+ interrupt-parent = < &ipic >;
51+ fsl,rx-fifo-size = <16>;
52+ fsl,tx-fifo-size = <16>;
53+};
54+
55+serial@11100 {
56+ compatible = "fsl,mpc5121-psc-uart", "fsl,mpc5121-psc";
57+ cell-index = <1>;
58+ reg = <0x11100 0x100>;
59+ interrupts = <40 0x8>;
60+ interrupt-parent = < &ipic >;
61+ fsl,rx-fifo-size = <16>;
62+ fsl,tx-fifo-size = <16>;
63+};
64+
65+pscfifo@11f00 {
66+ compatible = "fsl,mpc5121-psc-fifo";
67+ reg = <0x11f00 0x100>;
68+ interrupts = <40 0x8>;
69+ interrupt-parent = < &ipic >;
70+};
Documentation/powerpc/dts-bindings/fsl/mpc5200.txt+1−8
@@ -195,11 +195,4 @@ External interrupts: · 194 unmodified lines
195195
196196 fsl,mpc5200-mscan nodes
197197 -----------------------
198−In addition to the required compatible-, reg- and interrupt-properites, you can
199−also specify which clock source shall be used for the controller:
200−
201−- fsl,mscan-clock-source- a string describing the clock source. Valid values
202− are: "ip" for ip bus clock
203− "ref" for reference clock (XTAL)
204− "ref" is default in case this property is not
205− present.
198+See file can.txt in this directory.
Documentation/powerpc/dts-bindings/fsl/spi.txt+7−0
@@ -13,6 +13,11 @@ Required properties: · 12 unmodified lines
1313 - interrupt-parent : the phandle for the interrupt controller that
1414 services interrupts for this device.
1515
16+Optional properties:
17+- gpios : specifies the gpio pins to be used for chipselects.
18+ The gpios will be referred to as reg = <index> in the SPI child nodes.
19+ If unspecified, a single SPI device without a chip select can be used.
20+
1621 Example:
1722 spi@4c0 {
1823 cell-index = <0>;
@@ -21,4 +26,6 @@ Example: · 2 unmodified lines
2126 interrupts = <82 0>;
2227 interrupt-parent = <700>;
2328 mode = "cpu";
29+ gpios = <&gpio 18 1 // device reg=<0>
30+ &gpio 19 1>; // device reg=<1>
2431 };
Documentation/powerpc/ptrace.txt+134−0
@@ -0,0 +1,134 @@
1+GDB intends to support the following hardware debug features of BookE
2+processors:
3+
4+4 hardware breakpoints (IAC)
5+2 hardware watchpoints (read, write and read-write) (DAC)
6+2 value conditions for the hardware watchpoints (DVC)
7+
8+For that, we need to extend ptrace so that GDB can query and set these
9+resources. Since we're extending, we're trying to create an interface
10+that's extendable and that covers both BookE and server processors, so
11+that GDB doesn't need to special-case each of them. We added the
12+following 3 new ptrace requests.
13+
14+1. PTRACE_PPC_GETHWDEBUGINFO
15+
16+Query for GDB to discover the hardware debug features. The main info to
17+be returned here is the minimum alignment for the hardware watchpoints.
18+BookE processors don't have restrictions here, but server processors have
19+an 8-byte alignment restriction for hardware watchpoints. We'd like to avoid
20+adding special cases to GDB based on what it sees in AUXV.
21+
22+Since we're at it, we added other useful info that the kernel can return to
23+GDB: this query will return the number of hardware breakpoints, hardware
24+watchpoints and whether it supports a range of addresses and a condition.
25+The query will fill the following structure provided by the requesting process:
26+
27+struct ppc_debug_info {
28+ unit32_t version;
29+ unit32_t num_instruction_bps;
30+ unit32_t num_data_bps;
31+ unit32_t num_condition_regs;
32+ unit32_t data_bp_alignment;
33+ unit32_t sizeof_condition; /* size of the DVC register */
34+ uint64_t features; /* bitmask of the individual flags */
35+};
36+
37+features will have bits indicating whether there is support for:
38+
39+#define PPC_DEBUG_FEATURE_INSN_BP_RANGE 0x1
40+#define PPC_DEBUG_FEATURE_INSN_BP_MASK 0x2
41+#define PPC_DEBUG_FEATURE_DATA_BP_RANGE 0x4
42+#define PPC_DEBUG_FEATURE_DATA_BP_MASK 0x8
43+
44+2. PTRACE_SETHWDEBUG
45+
46+Sets a hardware breakpoint or watchpoint, according to the provided structure:
47+
48+struct ppc_hw_breakpoint {
49+ uint32_t version;
50+#define PPC_BREAKPOINT_TRIGGER_EXECUTE 0x1
51+#define PPC_BREAKPOINT_TRIGGER_READ 0x2
52+#define PPC_BREAKPOINT_TRIGGER_WRITE 0x4
53+ uint32_t trigger_type; /* only some combinations allowed */
54+#define PPC_BREAKPOINT_MODE_EXACT 0x0
55+#define PPC_BREAKPOINT_MODE_RANGE_INCLUSIVE 0x1
56+#define PPC_BREAKPOINT_MODE_RANGE_EXCLUSIVE 0x2
57+#define PPC_BREAKPOINT_MODE_MASK 0x3
58+ uint32_t addr_mode; /* address match mode */
59+
60+#define PPC_BREAKPOINT_CONDITION_MODE 0x3
61+#define PPC_BREAKPOINT_CONDITION_NONE 0x0
62+#define PPC_BREAKPOINT_CONDITION_AND 0x1
63+#define PPC_BREAKPOINT_CONDITION_EXACT 0x1 /* different name for the same thing as above */
64+#define PPC_BREAKPOINT_CONDITION_OR 0x2
65+#define PPC_BREAKPOINT_CONDITION_AND_OR 0x3
66+#define PPC_BREAKPOINT_CONDITION_BE_ALL 0x00ff0000 /* byte enable bits */
67+#define PPC_BREAKPOINT_CONDITION_BE(n) (1<<((n)+16))
68+ uint32_t condition_mode; /* break/watchpoint condition flags */
69+
70+ uint64_t addr;
71+ uint64_t addr2;
72+ uint64_t condition_value;
73+};
74+
75+A request specifies one event, not necessarily just one register to be set.
76+For instance, if the request is for a watchpoint with a condition, both the
77+DAC and DVC registers will be set in the same request.
78+
79+With this GDB can ask for all kinds of hardware breakpoints and watchpoints
80+that the BookE supports. COMEFROM breakpoints available in server processors
81+are not contemplated, but that is out of the scope of this work.
82+
83+ptrace will return an integer (handle) uniquely identifying the breakpoint or
84+watchpoint just created. This integer will be used in the PTRACE_DELHWDEBUG
85+request to ask for its removal. Return -ENOSPC if the requested breakpoint
86+can't be allocated on the registers.
87+
88+Some examples of using the structure to:
89+
90+- set a breakpoint in the first breakpoint register
91+
92+ p.version = PPC_DEBUG_CURRENT_VERSION;
93+ p.trigger_type = PPC_BREAKPOINT_TRIGGER_EXECUTE;
94+ p.addr_mode = PPC_BREAKPOINT_MODE_EXACT;
95+ p.condition_mode = PPC_BREAKPOINT_CONDITION_NONE;
96+ p.addr = (uint64_t) address;
97+ p.addr2 = 0;
98+ p.condition_value = 0;
99+
100+- set a watchpoint which triggers on reads in the second watchpoint register
101+
102+ p.version = PPC_DEBUG_CURRENT_VERSION;
103+ p.trigger_type = PPC_BREAKPOINT_TRIGGER_READ;
104+ p.addr_mode = PPC_BREAKPOINT_MODE_EXACT;
105+ p.condition_mode = PPC_BREAKPOINT_CONDITION_NONE;
106+ p.addr = (uint64_t) address;
107+ p.addr2 = 0;
108+ p.condition_value = 0;
109+
110+- set a watchpoint which triggers only with a specific value
111+
112+ p.version = PPC_DEBUG_CURRENT_VERSION;
113+ p.trigger_type = PPC_BREAKPOINT_TRIGGER_READ;
114+ p.addr_mode = PPC_BREAKPOINT_MODE_EXACT;
115+ p.condition_mode = PPC_BREAKPOINT_CONDITION_AND | PPC_BREAKPOINT_CONDITION_BE_ALL;
116+ p.addr = (uint64_t) address;
117+ p.addr2 = 0;
118+ p.condition_value = (uint64_t) condition;
119+
120+- set a ranged hardware breakpoint
121+
122+ p.version = PPC_DEBUG_CURRENT_VERSION;
123+ p.trigger_type = PPC_BREAKPOINT_TRIGGER_EXECUTE;
124+ p.addr_mode = PPC_BREAKPOINT_MODE_RANGE_INCLUSIVE;
125+ p.condition_mode = PPC_BREAKPOINT_CONDITION_NONE;
126+ p.addr = (uint64_t) begin_range;
127+ p.addr2 = (uint64_t) end_range;
128+ p.condition_value = 0;
129+
130+3. PTRACE_DELHWDEBUG
131+
132+Takes an integer which identifies an existing breakpoint or watchpoint
133+(i.e., the value returned from PTRACE_SETHWDEBUG), and deletes the
134+corresponding breakpoint or watchpoint..
Documentation/s390/CommonIO+6−0
@@ -87,6 +87,12 @@ Command line parameters · 86 unmodified lines
8787 compatibility, by the device number in hexadecimal (0xabcd or abcd). Device
8888 numbers given as 0xabcd will be interpreted as 0.0.abcd.
8989
90+* /proc/cio_settle
91+
92+ A write request to this file is blocked until all queued cio actions are
93+ handled. This will allow userspace to wait for pending work affecting
94+ device availability after changing cio_ignore or the hardware configuration.
95+
9096 * For some of the information present in the /proc filesystem in 2.4 (namely,
9197 /proc/subchannels and /proc/chpids), see driver-model.txt.
9298 Information formerly in /proc/irq_count is now in /proc/interrupts.
Documentation/s390/driver-model.txt+2−2
@@ -223,8 +223,8 @@ touched by the driver - it should use the ccwgroup device's driver_data for its · 222 unmodified lines
223223 private data.
224224
225225 To implement a ccwgroup driver, please refer to include/asm/ccwgroup.h. Keep in
226−mind that most drivers will need to implement both a ccwgroup and a ccw driver
227−(unless you have a meta ccw driver, like cu3088 for lcs and ctc).
226+mind that most drivers will need to implement both a ccwgroup and a ccw
227+driver.
228228
229229
230230 2. Channel paths
Documentation/scsi/ChangeLog.megaraid_sas+16−0
@@ -1,3 +1,19 @@
1+1 Release Date : Thur. Oct 29, 2009 09:12:45 PST 2009 -
2+ (emaild-id:megaraidlinux@lsi.com)
3+ Bo Yang
4+
5+2 Current Version : 00.00.04.17.1-rc1
6+3 Older Version : 00.00.04.12
7+
8+1. Add the pad_0 in mfi frame structure to 0 to fix the
9+ context value larger than 32bit value issue.
10+
11+2. Add the logic drive list to the driver. Driver will
12+ keep the logic drive list internal after driver load.
13+
14+3. driver fixed the device update issue after get the AEN
15+ PD delete/ADD, LD add/delete from FW.
16+
117 1 Release Date : Tues. July 28, 2009 10:12:45 PST 2009 -
218 (emaild-id:megaraidlinux@lsi.com)
319 Bo Yang
Documentation/sound/alsa/ALSA-Configuration.txt+26−1
@@ -482,6 +482,9 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. · 481 unmodified lines
482482
483483 reference_rate - reference sample rate, 44100 or 48000 (default)
484484 multiple - multiple to ref. sample rate, 1 or 2 (default)
485+ subsystem - override the PCI SSID for probing; the value
486+ consists of SSVID << 16 | SSDID. The default is
487+ zero, which means no override.
485488
486489 This module supports multiple cards.
487490
@@ -1123,6 +1126,21 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. · 635 unmodified lines
11231126
11241127 This module supports multiple cards, autoprobe and ISA PnP.
11251128
1129+ Module snd-jazz16
1130+ -------------------
1131+
1132+ Module for Media Vision Jazz16 chipset. The chipset consists of 3 chips:
1133+ MVD1216 + MVA416 + MVA514.
1134+
1135+ port - port # for SB DSP chip (0x210,0x220,0x230,0x240,0x250,0x260)
1136+ irq - IRQ # for SB DSP chip (3,5,7,9,10,15)
1137+ dma8 - DMA # for SB DSP chip (1,3)
1138+ dma16 - DMA # for SB DSP chip (5,7)
1139+ mpu_port - MPU-401 port # (0x300,0x310,0x320,0x330)
1140+ mpu_irq - MPU-401 irq # (2,3,5,7)
1141+
1142+ This module supports multiple cards.
1143+
11261144 Module snd-korg1212
11271145 -------------------
11281146
@@ -1791,6 +1809,13 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. · 662 unmodified lines
17911809
17921810 The power-management is supported.
17931811
1812+ Module snd-ua101
1813+ ----------------
1814+
1815+ Module for the Edirol UA-101 audio/MIDI interface.
1816+
1817+ This module supports multiple devices, autoprobe and hotplugging.
1818+
17941819 Module snd-usb-audio
17951820 --------------------
17961821
@@ -1923,7 +1948,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. · 126 unmodified lines
19231948 -------------------
19241949
19251950 Module for sound cards based on the Asus AV100/AV200 chips,
1926− i.e., Xonar D1, DX, D2, D2X, HDAV1.3 (Deluxe), Essence ST
1951+ i.e., Xonar D1, DX, D2, D2X, DS, HDAV1.3 (Deluxe), Essence ST
19271952 (Deluxe) and Essence STX.
19281953
19291954 This module supports autoprobe and multiple cards.
Documentation/sound/alsa/HD-Audio-Models.txt+5−0
@@ -124,6 +124,8 @@ ALC882/883/885/888/889 · 123 unmodified lines
124124 asus-a7m ASUS A7M
125125 macpro MacPro support
126126 mb5 Macbook 5,1
127+ macmini3 Macmini 3,1
128+ mba21 Macbook Air 2,1
127129 mbp3 Macbook Pro rev3
128130 imac24 iMac 24'' with jack detection
129131 imac91 iMac 9,1
@@ -279,13 +281,16 @@ Conexant 5051 · 149 unmodified lines
279281 laptop Basic Laptop config (default)
280282 hp HP Spartan laptop
281283 hp-dv6736 HP dv6736
284+ hp-f700 HP Compaq Presario F700
282285 lenovo-x200 Lenovo X200 laptop
286+ toshiba Toshiba Satellite M300
283287
284288 Conexant 5066
285289 =============
286290 laptop Basic Laptop config (default)
287291 dell-laptop Dell laptops
288292 olpc-xo-1_5 OLPC XO 1.5
293+ ideapad Lenovo IdeaPad U150
289294
290295 STAC9200
291296 ========
Documentation/sound/alsa/HD-Audio.txt+27−0
@@ -452,6 +452,33 @@ Similarly, the lines after `[verb]` are parsed as `init_verbs` · 451 unmodified lines
452452 sysfs entries, and the lines after `[hint]` are parsed as `hints`
453453 sysfs entries, respectively.
454454
455+Another example to override the codec vendor id from 0x12345678 to
456+0xdeadbeef is like below:
457+------------------------------------------------------------------------
458+ [codec]
459+ 0x12345678 0xabcd1234 2
460+
461+ [vendor_id]
462+ 0xdeadbeef
463+------------------------------------------------------------------------
464+
465+In the similar way, you can override the codec subsystem_id via
466+`[subsystem_id]`, the revision id via `[revision_id]` line.
467+Also, the codec chip name can be rewritten via `[chip_name]` line.
468+------------------------------------------------------------------------
469+ [codec]
470+ 0x12345678 0xabcd1234 2
471+
472+ [subsystem_id]
473+ 0xffff1111
474+
475+ [revision_id]
476+ 0x10
477+
478+ [chip_name]
479+ My-own NEWS-0002
480+------------------------------------------------------------------------
481+
455482 The hd-audio driver reads the file via request_firmware(). Thus,
456483 a patch file has to be located on the appropriate firmware path,
457484 typically, /lib/firmware. For example, when you pass the option
Documentation/trace/kprobetrace.txt+32−25
@@ -24,6 +24,7 @@ Synopsis of kprobe_events · 23 unmodified lines
2424 -------------------------
2525 p[:[GRP/]EVENT] SYMBOL[+offs]|MEMADDR [FETCHARGS] : Set a probe
2626 r[:[GRP/]EVENT] SYMBOL[+0] [FETCHARGS] : Set a return probe
27+ -:[GRP/]EVENT : Clear a probe
2728
2829 GRP : Group name. If omitted, use "kprobes" for it.
2930 EVENT : Event name. If omitted, the event name is generated
@@ -37,15 +38,12 @@ Synopsis of kprobe_events · 7 unmodified lines
3738 @SYM[+|-offs] : Fetch memory at SYM +|- offs (SYM should be a data symbol)
3839 $stackN : Fetch Nth entry of stack (N >= 0)
3940 $stack : Fetch stack address.
40− $argN : Fetch function argument. (N >= 0)(*)
41− $retval : Fetch return value.(**)
42− +|-offs(FETCHARG) : Fetch memory at FETCHARG +|- offs address.(***)
41+ $retval : Fetch return value.(*)
42+ +|-offs(FETCHARG) : Fetch memory at FETCHARG +|- offs address.(**)
4343 NAME=FETCHARG: Set NAME as the argument name of FETCHARG.
4444
45− (*) aN may not correct on asmlinkaged functions and at the middle of
46− function body.
47− (**) only for return probe.
48− (***) this is useful for fetching a field of data structures.
45+ (*) only for return probe.
46+ (**) this is useful for fetching a field of data structures.
4947
5048
5149 Per-Probe Event Filtering
@@ -82,13 +80,16 @@ Usage examples · 30 unmodified lines
8280 To add a probe as a new event, write a new definition to kprobe_events
8381 as below.
8482
85− echo p:myprobe do_sys_open dfd=$arg0 filename=$arg1 flags=$arg2 mode=$arg3 > /sys/kernel/debug/tracing/kprobe_events
83+ echo 'p:myprobe do_sys_open dfd=%ax filename=%dx flags=%cx mode=+4($stack)' > /sys/kernel/debug/tracing/kprobe_events
8684
8785 This sets a kprobe on the top of do_sys_open() function with recording
88−1st to 4th arguments as "myprobe" event. As this example shows, users can
89−choose more familiar names for each arguments.
86+1st to 4th arguments as "myprobe" event. Note, which register/stack entry is
87+assigned to each function argument depends on arch-specific ABI. If you unsure
88+the ABI, please try to use probe subcommand of perf-tools (you can find it
89+under tools/perf/).
90+As this example shows, users can choose more familiar names for each arguments.
9091
91− echo r:myretprobe do_sys_open $retval >> /sys/kernel/debug/tracing/kprobe_events
92+ echo 'r:myretprobe do_sys_open $retval' >> /sys/kernel/debug/tracing/kprobe_events
9293
9394 This sets a kretprobe on the return point of do_sys_open() function with
9495 recording return value as "myretprobe" event.
@@ -97,23 +98,24 @@ recording return value as "myretprobe" event. · 2 unmodified lines
9798
9899 cat /sys/kernel/debug/tracing/events/kprobes/myprobe/format
99100 name: myprobe
100−ID: 75
101+ID: 780
101102 format:
102− field:unsigned short common_type; offset:0; size:2;
103− field:unsigned char common_flags; offset:2; size:1;
104− field:unsigned char common_preempt_count; offset:3; size:1;
105− field:int common_pid; offset:4; size:4;
106− field:int common_tgid; offset:8; size:4;
103+ field:unsigned short common_type; offset:0; size:2; signed:0;
104+ field:unsigned char common_flags; offset:2; size:1; signed:0;
105+ field:unsigned char common_preempt_count; offset:3; size:1;signed:0;
106+ field:int common_pid; offset:4; size:4; signed:1;
107+ field:int common_lock_depth; offset:8; size:4; signed:1;
107108
108− field: unsigned long ip; offset:16;tsize:8;
109− field: int nargs; offset:24;tsize:4;
110− field: unsigned long dfd; offset:32;tsize:8;
111− field: unsigned long filename; offset:40;tsize:8;
112− field: unsigned long flags; offset:48;tsize:8;
113− field: unsigned long mode; offset:56;tsize:8;
109+ field:unsigned long __probe_ip; offset:12; size:4; signed:0;
110+ field:int __probe_nargs; offset:16; size:4; signed:1;
111+ field:unsigned long dfd; offset:20; size:4; signed:0;
112+ field:unsigned long filename; offset:24; size:4; signed:0;
113+ field:unsigned long flags; offset:28; size:4; signed:0;
114+ field:unsigned long mode; offset:32; size:4; signed:0;
114115
115−print fmt: "(%lx) dfd=%lx filename=%lx flags=%lx mode=%lx", REC->ip, REC->dfd, REC->filename, REC->flags, REC->mode
116116
117+print fmt: "(%lx) dfd=%lx filename=%lx flags=%lx mode=%lx", REC->__probe_ip,
118+REC->dfd, REC->filename, REC->flags, REC->mode
117119
118120 You can see that the event has 4 arguments as in the expressions you specified.
119121
@@ -121,6 +123,12 @@ print fmt: "(%lx) dfd=%lx filename=%lx flags=%lx mode=%lx", REC->ip, REC->dfd, R · 1 unmodified line
121123
122124 This clears all probe points.
123125
126+ Or,
127+
128+ echo -:myprobe >> kprobe_events
129+
130+ This clears probe points selectively.
131+
124132 Right after definition, each event is disabled by default. For tracing these
125133 events, you need to enable it.
126134
@@ -146,4 +154,3 @@ events, you need to enable it. · 19 unmodified lines
146154 returns from SYMBOL(e.g. "sys_open+0x1b/0x1d <- do_sys_open" means kernel
147155 returns from do_sys_open to sys_open+0x1b).
148156
149−
Documentation/video4linux/CARDLIST.cx23885+1−0
@@ -26,3 +26,4 @@ · 25 unmodified lines
2626 25 -> Compro VideoMate E800 [1858:e800]
2727 26 -> Hauppauge WinTV-HVR1290 [0070:8551]
2828 27 -> Mygica X8558 PRO DMB-TH [14f1:8578]
29+ 28 -> LEADTEK WinFast PxTV1200 [107d:6f22]
Documentation/video4linux/CARDLIST.saa7134+1−0
@@ -174,3 +174,4 @@ · 173 unmodified lines
174174 173 -> Zolid Hybrid TV Tuner PCI [1131:2004]
175175 174 -> Asus Europa Hybrid OEM [1043:4847]
176176 175 -> Leadtek Winfast DTV1000S [107d:6655]
177+176 -> Beholder BeholdTV 505 RDS [0000:5051]
Documentation/video4linux/CARDLIST.tuner+1−0
@@ -81,3 +81,4 @@ tuner=80 - Philips FQ1216LME MK3 PAL/SECAM w/active loopthrough · 80 unmodified lines
8181 tuner=81 - Partsnic (Daewoo) PTI-5NF05
8282 tuner=82 - Philips CU1216L
8383 tuner=83 - NXP TDA18271
84+tuner=84 - Sony BTF-Pxn01Z
Documentation/video4linux/README.tlg2300+47−0
@@ -0,0 +1,47 @@
1+tlg2300 release notes
2+====================
3+
4+This is a v4l2/dvb device driver for the tlg2300 chip.
5+
6+
7+current status
8+==============
9+
10+video
11+ - support mmap and read().(no overlay)
12+
13+audio
14+ - The driver will register a ALSA card for the audio input.
15+
16+vbi
17+ - Works for almost TV norms.
18+
19+dvb-t
20+ - works for DVB-T
21+
22+FM
23+ - Works for radio.
24+
25+---------------------------------------------------------------------------
26+TESTED APPLICATIONS:
27+
28+-VLC1.0.4 test the video and dvb. The GUI is friendly to use.
29+
30+-Mplayer test the video.
31+
32+-Mplayer test the FM. The mplayer should be compiled with --enable-radio and
33+ --enable-radio-capture.
34+ The command runs as this(The alsa audio registers to card 1):
35+ #mplayer radio://103.7/capture/ -radio adevice=hw=1,0:arate=48000 \
36+ -rawaudio rate=48000:channels=2
37+
38+---------------------------------------------------------------------------
39+KNOWN PROBLEMS:
40+about preemphasis:
41+ You can set the preemphasis for radio by the following command:
42+ #v4l2-ctl -d /dev/radio0 --set-ctrl=pre_emphasis_settings=1
43+
44+ "pre_emphasis_settings=1" means that you select the 50us. If you want
45+ to select the 75us, please use "pre_emphasis_settings=2"
46+
47+
Documentation/video4linux/gspca.txt+18−7
@@ -42,6 +42,7 @@ ov519 041e:4064 Creative Live! VISTA VF0420 · 41 unmodified lines
4242 ov519 041e:4067 Creative Live! Cam Video IM (VF0350)
4343 ov519 041e:4068 Creative Live! VISTA VF0470
4444 spca561 0458:7004 Genius VideoCAM Express V2
45+sn9c2028 0458:7005 Genius Smart 300, version 2
4546 sunplus 0458:7006 Genius Dsc 1.3 Smart
4647 zc3xx 0458:7007 Genius VideoCam V2
4748 zc3xx 0458:700c Genius VideoCam V3
@@ -109,6 +110,7 @@ sunplus 04a5:3003 Benq DC 1300 · 61 unmodified lines
109110 sunplus 04a5:3008 Benq DC 1500
110111 sunplus 04a5:300a Benq DC 3410
111112 spca500 04a5:300c Benq DC 1016
113+benq 04a5:3035 Benq DC E300
112114 finepix 04cb:0104 Fujifilm FinePix 4800
113115 finepix 04cb:0109 Fujifilm FinePix A202
114116 finepix 04cb:010b Fujifilm FinePix A203
@@ -142,6 +144,7 @@ sunplus 04fc:5360 Sunplus Generic · 27 unmodified lines
142144 spca500 04fc:7333 PalmPixDC85
143145 sunplus 04fc:ffff Pure DigitalDakota
144146 spca501 0506:00df 3Com HomeConnect Lite
147+sunplus 052b:1507 Megapixel 5 Pretec DC-1007
145148 sunplus 052b:1513 Megapix V4
146149 sunplus 052b:1803 MegaImage VI
147150 tv8532 0545:808b Veo Stingray
@@ -151,6 +154,7 @@ sunplus 0546:3191 Polaroid Ion 80 · 3 unmodified lines
151154 sunplus 0546:3273 Polaroid PDC2030
152155 ov519 054c:0154 Sonny toy4
153156 ov519 054c:0155 Sonny toy5
157+cpia1 0553:0002 CPIA CPiA (version1) based cameras
154158 zc3xx 055f:c005 Mustek Wcam300A
155159 spca500 055f:c200 Mustek Gsmart 300
156160 sunplus 055f:c211 Kowa Bs888e Microcamera
@@ -188,8 +192,7 @@ spca500 06bd:0404 Agfa CL20 · 31 unmodified lines
188192 spca500 06be:0800 Optimedia
189193 sunplus 06d6:0031 Trust 610 LCD PowerC@m Zoom
190194 spca506 06e1:a190 ADS Instant VCD
191−ov534 06f8:3002 Hercules Blog Webcam
192−ov534 06f8:3003 Hercules Dualpix HD Weblog
195+ov534_9 06f8:3003 Hercules Dualpix HD Weblog
193196 sonixj 06f8:3004 Hercules Classic Silver
194197 sonixj 06f8:3008 Hercules Deluxe Optical Glass
195198 pac7302 06f8:3009 Hercules Classic Link
@@ -204,6 +207,7 @@ sunplus 0733:2221 Mercury Digital Pro 3.1p · 8 unmodified lines
204207 sunplus 0733:3261 Concord 3045 spca536a
205208 sunplus 0733:3281 Cyberpix S550V
206209 spca506 0734:043b 3DeMon USB Capture aka
210+cpia1 0813:0001 QX3 camera
207211 ov519 0813:0002 Dual Mode USB Camera Plus
208212 spca500 084d:0003 D-Link DSC-350
209213 spca500 08ca:0103 Aiptek PocketDV
@@ -225,7 +229,8 @@ sunplus 08ca:2050 Medion MD 41437 · 15 unmodified lines
225229 sunplus 08ca:2060 Aiptek PocketDV5300
226230 tv8532 0923:010f ICM532 cams
227231 mars 093a:050f Mars-Semi Pc-Camera
228−mr97310a 093a:010f Sakar Digital no. 77379
232+mr97310a 093a:010e All known CIF cams with this ID
233+mr97310a 093a:010f All known VGA cams with this ID
229234 pac207 093a:2460 Qtec Webcam 100
230235 pac207 093a:2461 HP Webcam
231236 pac207 093a:2463 Philips SPC 220 NC
@@ -302,6 +307,7 @@ sonixj 0c45:613b Surfer SN-206 · 70 unmodified lines
302307 sonixj 0c45:613c Sonix Pccam168
303308 sonixj 0c45:6143 Sonix Pccam168
304309 sonixj 0c45:6148 Digitus DA-70811/ZSMC USB PC Camera ZS211/Microdia
310+sonixj 0c45:614a Frontech E-Ccam (JIL-2225)
305311 sn9c20x 0c45:6240 PC Camera (SN9C201 + MT9M001)
306312 sn9c20x 0c45:6242 PC Camera (SN9C201 + MT9M111)
307313 sn9c20x 0c45:6248 PC Camera (SN9C201 + OV9655)
@@ -324,6 +330,10 @@ sn9c20x 0c45:62b0 PC Camera (SN9C202 + MT9V011/MT9V111/MT9V112) · 16 unmodified lines
324330 sn9c20x 0c45:62b3 PC Camera (SN9C202 + OV9655)
325331 sn9c20x 0c45:62bb PC Camera (SN9C202 + OV7660)
326332 sn9c20x 0c45:62bc PC Camera (SN9C202 + HV7131R)
333+sn9c2028 0c45:8001 Wild Planet Digital Spy Camera
334+sn9c2028 0c45:8003 Sakar #11199, #6637x, #67480 keychain cams
335+sn9c2028 0c45:8008 Mini-Shotz ms-350
336+sn9c2028 0c45:800a Vivitar Vivicam 3350B
327337 sunplus 0d64:0303 Sunplus FashionCam DXG
328338 ov519 0e96:c001 TRUST 380 USB2 SPACEC@M
329339 etoms 102c:6151 Qcam Sangha CIF
@@ -341,10 +351,11 @@ spca501 1776:501c Arowana 300K CMOS Camera · 11 unmodified lines
341351 t613 17a1:0128 TASCORP JPEG Webcam, NGS Cyclops
342352 vc032x 17ef:4802 Lenovo Vc0323+MI1310_SOC
343353 pac207 2001:f115 D-Link DSB-C120
344−sq905c 2770:9050 sq905c
345−sq905c 2770:905c DualCamera
346−sq905 2770:9120 Argus Digital Camera DC1512
347−sq905c 2770:913d sq905c
354+sq905c 2770:9050 Disney pix micro (CIF)
355+sq905c 2770:9052 Disney pix micro 2 (VGA)
356+sq905c 2770:905c All 11 known cameras with this ID
357+sq905 2770:9120 All 24 known cameras with this ID
358+sq905c 2770:913d All 4 known cameras with this ID
348359 spca500 2899:012c Toptro Industrial
349360 ov519 8020:ef04 ov519
350361 spca508 8086:0110 Intel Easy PC Camera
Documentation/video4linux/v4l2-framework.txt+10−96
@@ -599,99 +599,13 @@ video_device::minor fields. · 598 unmodified lines
599599 video buffer helper functions
600600 -----------------------------
601601
602−The v4l2 core API provides a standard method for dealing with video
603−buffers. Those methods allow a driver to implement read(), mmap() and
604−overlay() on a consistent way.
605−
606−There are currently methods for using video buffers on devices that
607−supports DMA with scatter/gather method (videobuf-dma-sg), DMA with
608−linear access (videobuf-dma-contig), and vmalloced buffers, mostly
609−used on USB drivers (videobuf-vmalloc).
610−
611−Any driver using videobuf should provide operations (callbacks) for
612−four handlers:
613−
614−ops->buf_setup - calculates the size of the video buffers and avoid they
615− to waste more than some maximum limit of RAM;
616−ops->buf_prepare - fills the video buffer structs and calls
617− videobuf_iolock() to alloc and prepare mmaped memory;
618−ops->buf_queue - advices the driver that another buffer were
619− requested (by read() or by QBUF);
620−ops->buf_release - frees any buffer that were allocated.
621−
622−In order to use it, the driver need to have a code (generally called at
623−interrupt context) that will properly handle the buffer request lists,
624−announcing that a new buffer were filled.
625−
626−The irq handling code should handle the videobuf task lists, in order
627−to advice videobuf that a new frame were filled, in order to honor to a
628−request. The code is generally like this one:
629− if (list_empty(&dma_q->active))
630− return;
631−
632− buf = list_entry(dma_q->active.next, struct vbuffer, vb.queue);
633−
634− if (!waitqueue_active(&buf->vb.done))
635− return;
636−
637− /* Some logic to handle the buf may be needed here */
638−
639− list_del(&buf->vb.queue);
640− do_gettimeofday(&buf->vb.ts);
641− wake_up(&buf->vb.done);
642−
643−Those are the videobuffer functions used on drivers, implemented on
644−videobuf-core:
645−
646−- Videobuf init functions
647− videobuf_queue_sg_init()
648− Initializes the videobuf infrastructure. This function should be
649− called before any other videobuf function on drivers that uses DMA
650− Scatter/Gather buffers.
651−
652− videobuf_queue_dma_contig_init
653− Initializes the videobuf infrastructure. This function should be
654− called before any other videobuf function on drivers that need DMA
655− contiguous buffers.
656−
657− videobuf_queue_vmalloc_init()
658− Initializes the videobuf infrastructure. This function should be
659− called before any other videobuf function on USB (and other drivers)
660− that need a vmalloced type of videobuf.
661−
662−- videobuf_iolock()
663− Prepares the videobuf memory for the proper method (read, mmap, overlay).
664−
665−- videobuf_queue_is_busy()
666− Checks if a videobuf is streaming.
667−
668−- videobuf_queue_cancel()
669− Stops video handling.
670−
671−- videobuf_mmap_free()
672− frees mmap buffers.
673−
674−- videobuf_stop()
675− Stops video handling, ends mmap and frees mmap and other buffers.
676−
677−- V4L2 api functions. Those functions correspond to VIDIOC_foo ioctls:
678− videobuf_reqbufs(), videobuf_querybuf(), videobuf_qbuf(),
679− videobuf_dqbuf(), videobuf_streamon(), videobuf_streamoff().
680−
681−- V4L1 api function (corresponds to VIDIOCMBUF ioctl):
682− videobuf_cgmbuf()
683− This function is used to provide backward compatibility with V4L1
684− API.
685−
686−- Some help functions for read()/poll() operations:
687− videobuf_read_stream()
688− For continuous stream read()
689− videobuf_read_one()
690− For snapshot read()
691− videobuf_poll_stream()
692− polling help function
693−
694−The better way to understand it is to take a look at vivi driver. One
695−of the main reasons for vivi is to be a videobuf usage example. the
696−vivi_thread_tick() does the task that the IRQ callback would do on PCI
697−drivers (or the irq callback on USB).
602+The v4l2 core API provides a set of standard methods (called "videobuf")
603+for dealing with video buffers. Those methods allow a driver to implement
604+read(), mmap() and overlay() in a consistent way. There are currently
605+methods for using video buffers on devices that supports DMA with
606+scatter/gather method (videobuf-dma-sg), DMA with linear access
607+(videobuf-dma-contig), and vmalloced buffers, mostly used on USB drivers
608+(videobuf-vmalloc).
609+
610+Please see Documentation/video4linux/videobuf for more information on how
611+to use the videobuf layer.
Documentation/video4linux/videobuf+360−0
@@ -0,0 +1,360 @@
1+An introduction to the videobuf layer
2+Jonathan Corbet <corbet@lwn.net>
3+Current as of 2.6.33
4+
5+The videobuf layer functions as a sort of glue layer between a V4L2 driver
6+and user space. It handles the allocation and management of buffers for
7+the storage of video frames. There is a set of functions which can be used
8+to implement many of the standard POSIX I/O system calls, including read(),
9+poll(), and, happily, mmap(). Another set of functions can be used to
10+implement the bulk of the V4L2 ioctl() calls related to streaming I/O,
11+including buffer allocation, queueing and dequeueing, and streaming
12+control. Using videobuf imposes a few design decisions on the driver
13+author, but the payback comes in the form of reduced code in the driver and
14+a consistent implementation of the V4L2 user-space API.
15+
16+Buffer types
17+
18+Not all video devices use the same kind of buffers. In fact, there are (at
19+least) three common variations:
20+
21+ - Buffers which are scattered in both the physical and (kernel) virtual
22+ address spaces. (Almost) all user-space buffers are like this, but it
23+ makes great sense to allocate kernel-space buffers this way as well when
24+ it is possible. Unfortunately, it is not always possible; working with
25+ this kind of buffer normally requires hardware which can do
26+ scatter/gather DMA operations.
27+
28+ - Buffers which are physically scattered, but which are virtually
29+ contiguous; buffers allocated with vmalloc(), in other words. These
30+ buffers are just as hard to use for DMA operations, but they can be
31+ useful in situations where DMA is not available but virtually-contiguous
32+ buffers are convenient.
33+
34+ - Buffers which are physically contiguous. Allocation of this kind of
35+ buffer can be unreliable on fragmented systems, but simpler DMA
36+ controllers cannot deal with anything else.
37+
38+Videobuf can work with all three types of buffers, but the driver author
39+must pick one at the outset and design the driver around that decision.
40+
41+[It's worth noting that there's a fourth kind of buffer: "overlay" buffers
42+which are located within the system's video memory. The overlay
43+functionality is considered to be deprecated for most use, but it still
44+shows up occasionally in system-on-chip drivers where the performance
45+benefits merit the use of this technique. Overlay buffers can be handled
46+as a form of scattered buffer, but there are very few implementations in
47+the kernel and a description of this technique is currently beyond the
48+scope of this document.]
49+
50+Data structures, callbacks, and initialization
51+
52+Depending on which type of buffers are being used, the driver should
53+include one of the following files:
54+
55+ <media/videobuf-dma-sg.h> /* Physically scattered */
56+ <media/videobuf-vmalloc.h> /* vmalloc() buffers */
57+ <media/videobuf-dma-contig.h> /* Physically contiguous */
58+
59+The driver's data structure describing a V4L2 device should include a
60+struct videobuf_queue instance for the management of the buffer queue,
61+along with a list_head for the queue of available buffers. There will also
62+need to be an interrupt-safe spinlock which is used to protect (at least)
63+the queue.
64+
65+The next step is to write four simple callbacks to help videobuf deal with
66+the management of buffers:
67+
68+ struct videobuf_queue_ops {
69+ int (*buf_setup)(struct videobuf_queue *q,
70+ unsigned int *count, unsigned int *size);
71+ int (*buf_prepare)(struct videobuf_queue *q,
72+ struct videobuf_buffer *vb,
73+ enum v4l2_field field);
74+ void (*buf_queue)(struct videobuf_queue *q,
75+ struct videobuf_buffer *vb);
76+ void (*buf_release)(struct videobuf_queue *q,
77+ struct videobuf_buffer *vb);
78+ };
79+
80+buf_setup() is called early in the I/O process, when streaming is being
81+initiated; its purpose is to tell videobuf about the I/O stream. The count
82+parameter will be a suggested number of buffers to use; the driver should
83+check it for rationality and adjust it if need be. As a practical rule, a
84+minimum of two buffers are needed for proper streaming, and there is
85+usually a maximum (which cannot exceed 32) which makes sense for each
86+device. The size parameter should be set to the expected (maximum) size
87+for each frame of data.
88+
89+Each buffer (in the form of a struct videobuf_buffer pointer) will be
90+passed to buf_prepare(), which should set the buffer's size, width, height,
91+and field fields properly. If the buffer's state field is
92+VIDEOBUF_NEEDS_INIT, the driver should pass it to:
93+
94+ int videobuf_iolock(struct videobuf_queue* q, struct videobuf_buffer *vb,
95+ struct v4l2_framebuffer *fbuf);
96+
97+Among other things, this call will usually allocate memory for the buffer.
98+Finally, the buf_prepare() function should set the buffer's state to
99+VIDEOBUF_PREPARED.
100+
101+When a buffer is queued for I/O, it is passed to buf_queue(), which should
102+put it onto the driver's list of available buffers and set its state to
103+VIDEOBUF_QUEUED. Note that this function is called with the queue spinlock
104+held; if it tries to acquire it as well things will come to a screeching
105+halt. Yes, this is the voice of experience. Note also that videobuf may
106+wait on the first buffer in the queue; placing other buffers in front of it
107+could again gum up the works. So use list_add_tail() to enqueue buffers.
108+
109+Finally, buf_release() is called when a buffer is no longer intended to be
110+used. The driver should ensure that there is no I/O active on the buffer,
111+then pass it to the appropriate free routine(s):
112+
113+ /* Scatter/gather drivers */
114+ int videobuf_dma_unmap(struct videobuf_queue *q,
115+ struct videobuf_dmabuf *dma);
116+ int videobuf_dma_free(struct videobuf_dmabuf *dma);
117+
118+ /* vmalloc drivers */
119+ void videobuf_vmalloc_free (struct videobuf_buffer *buf);
120+
121+ /* Contiguous drivers */
122+ void videobuf_dma_contig_free(struct videobuf_queue *q,
123+ struct videobuf_buffer *buf);
124+
125+One way to ensure that a buffer is no longer under I/O is to pass it to:
126+
127+ int videobuf_waiton(struct videobuf_buffer *vb, int non_blocking, int intr);
128+
129+Here, vb is the buffer, non_blocking indicates whether non-blocking I/O
130+should be used (it should be zero in the buf_release() case), and intr
131+controls whether an interruptible wait is used.
132+
133+File operations
134+
135+At this point, much of the work is done; much of the rest is slipping
136+videobuf calls into the implementation of the other driver callbacks. The
137+first step is in the open() function, which must initialize the
138+videobuf queue. The function to use depends on the type of buffer used:
139+
140+ void videobuf_queue_sg_init(struct videobuf_queue *q,
141+ struct videobuf_queue_ops *ops,
142+ struct device *dev,
143+ spinlock_t *irqlock,
144+ enum v4l2_buf_type type,
145+ enum v4l2_field field,
146+ unsigned int msize,
147+ void *priv);
148+
149+ void videobuf_queue_vmalloc_init(struct videobuf_queue *q,
150+ struct videobuf_queue_ops *ops,
151+ struct device *dev,
152+ spinlock_t *irqlock,
153+ enum v4l2_buf_type type,
154+ enum v4l2_field field,
155+ unsigned int msize,
156+ void *priv);
157+
158+ void videobuf_queue_dma_contig_init(struct videobuf_queue *q,
159+ struct videobuf_queue_ops *ops,
160+ struct device *dev,
161+ spinlock_t *irqlock,
162+ enum v4l2_buf_type type,
163+ enum v4l2_field field,
164+ unsigned int msize,
165+ void *priv);
166+
167+In each case, the parameters are the same: q is the queue structure for the
168+device, ops is the set of callbacks as described above, dev is the device
169+structure for this video device, irqlock is an interrupt-safe spinlock to
170+protect access to the data structures, type is the buffer type used by the
171+device (cameras will use V4L2_BUF_TYPE_VIDEO_CAPTURE, for example), field
172+describes which field is being captured (often V4L2_FIELD_NONE for
173+progressive devices), msize is the size of any containing structure used
174+around struct videobuf_buffer, and priv is a private data pointer which
175+shows up in the priv_data field of struct videobuf_queue. Note that these
176+are void functions which, evidently, are immune to failure.
177+
178+V4L2 capture drivers can be written to support either of two APIs: the
179+read() system call and the rather more complicated streaming mechanism. As
180+a general rule, it is necessary to support both to ensure that all
181+applications have a chance of working with the device. Videobuf makes it
182+easy to do that with the same code. To implement read(), the driver need
183+only make a call to one of:
184+
185+ ssize_t videobuf_read_one(struct videobuf_queue *q,
186+ char __user *data, size_t count,
187+ loff_t *ppos, int nonblocking);
188+
189+ ssize_t videobuf_read_stream(struct videobuf_queue *q,
190+ char __user *data, size_t count,
191+ loff_t *ppos, int vbihack, int nonblocking);
192+
193+Either one of these functions will read frame data into data, returning the
194+amount actually read; the difference is that videobuf_read_one() will only
195+read a single frame, while videobuf_read_stream() will read multiple frames
196+if they are needed to satisfy the count requested by the application. A
197+typical driver read() implementation will start the capture engine, call
198+one of the above functions, then stop the engine before returning (though a
199+smarter implementation might leave the engine running for a little while in
200+anticipation of another read() call happening in the near future).
201+
202+The poll() function can usually be implemented with a direct call to:
203+
204+ unsigned int videobuf_poll_stream(struct file *file,
205+ struct videobuf_queue *q,
206+ poll_table *wait);
207+
208+Note that the actual wait queue eventually used will be the one associated
209+with the first available buffer.
210+
211+When streaming I/O is done to kernel-space buffers, the driver must support
212+the mmap() system call to enable user space to access the data. In many
213+V4L2 drivers, the often-complex mmap() implementation simplifies to a
214+single call to:
215+
216+ int videobuf_mmap_mapper(struct videobuf_queue *q,
217+ struct vm_area_struct *vma);
218+
219+Everything else is handled by the videobuf code.
220+
221+The release() function requires two separate videobuf calls:
222+
223+ void videobuf_stop(struct videobuf_queue *q);
224+ int videobuf_mmap_free(struct videobuf_queue *q);
225+
226+The call to videobuf_stop() terminates any I/O in progress - though it is
227+still up to the driver to stop the capture engine. The call to
228+videobuf_mmap_free() will ensure that all buffers have been unmapped; if
229+so, they will all be passed to the buf_release() callback. If buffers
230+remain mapped, videobuf_mmap_free() returns an error code instead. The
231+purpose is clearly to cause the closing of the file descriptor to fail if
232+buffers are still mapped, but every driver in the 2.6.32 kernel cheerfully
233+ignores its return value.
234+
235+ioctl() operations
236+
237+The V4L2 API includes a very long list of driver callbacks to respond to
238+the many ioctl() commands made available to user space. A number of these
239+- those associated with streaming I/O - turn almost directly into videobuf
240+calls. The relevant helper functions are:
241+
242+ int videobuf_reqbufs(struct videobuf_queue *q,
243+ struct v4l2_requestbuffers *req);
244+ int videobuf_querybuf(struct videobuf_queue *q, struct v4l2_buffer *b);
245+ int videobuf_qbuf(struct videobuf_queue *q, struct v4l2_buffer *b);
246+ int videobuf_dqbuf(struct videobuf_queue *q, struct v4l2_buffer *b,
247+ int nonblocking);
248+ int videobuf_streamon(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+
253+So, for example, a VIDIOC_REQBUFS call turns into a call to the driver's
254+vidioc_reqbufs() callback which, in turn, usually only needs to locate the
255+proper struct videobuf_queue pointer and pass it to videobuf_reqbufs().
256+These support functions can replace a great deal of buffer management
257+boilerplate in a lot of V4L2 drivers.
258+
259+The vidioc_streamon() and vidioc_streamoff() functions will be a bit more
260+complex, of course, since they will also need to deal with starting and
261+stopping the capture engine. videobuf_cgmbuf(), called from the driver's
262+vidiocgmbuf() function, only exists if the V4L1 compatibility module has
263+been selected with CONFIG_VIDEO_V4L1_COMPAT, so its use must be surrounded
264+with #ifdef directives.
265+
266+Buffer allocation
267+
268+Thus far, we have talked about buffers, but have not looked at how they are
269+allocated. The scatter/gather case is the most complex on this front. For
270+allocation, the driver can leave buffer allocation entirely up to the
271+videobuf layer; in this case, buffers will be allocated as anonymous
272+user-space pages and will be very scattered indeed. If the application is
273+using user-space buffers, no allocation is needed; the videobuf layer will
274+take care of calling get_user_pages() and filling in the scatterlist array.
275+
276+If the driver needs to do its own memory allocation, it should be done in
277+the vidioc_reqbufs() function, *after* calling videobuf_reqbufs(). The
278+first step is a call to:
279+
280+ struct videobuf_dmabuf *videobuf_to_dma(struct videobuf_buffer *buf);
281+
282+The returned videobuf_dmabuf structure (defined in
283+<media/videobuf-dma-sg.h>) includes a couple of relevant fields:
284+
285+ struct scatterlist *sglist;
286+ int sglen;
287+
288+The driver must allocate an appropriately-sized scatterlist array and
289+populate it with pointers to the pieces of the allocated buffer; sglen
290+should be set to the length of the array.
291+
292+Drivers using the vmalloc() method need not (and cannot) concern themselves
293+with buffer allocation at all; videobuf will handle those details. The
294+same is normally true of contiguous-DMA drivers as well; videobuf will
295+allocate the buffers (with dma_alloc_coherent()) when it sees fit. That
296+means that these drivers may be trying to do high-order allocations at any
297+time, an operation which is not always guaranteed to work. Some drivers
298+play tricks by allocating DMA space at system boot time; videobuf does not
299+currently play well with those drivers.
300+
301+As of 2.6.31, contiguous-DMA drivers can work with a user-supplied buffer,
302+as long as that buffer is physically contiguous. Normal user-space
303+allocations will not meet that criterion, but buffers obtained from other
304+kernel drivers, or those contained within huge pages, will work with these
305+drivers.
306+
307+Filling the buffers
308+
309+The final part of a videobuf implementation has no direct callback - it's
310+the portion of the code which actually puts frame data into the buffers,
311+usually in response to interrupts from the device. For all types of
312+drivers, this process works approximately as follows:
313+
314+ - Obtain the next available buffer and make sure that somebody is actually
315+ waiting for it.
316+
317+ - Get a pointer to the memory and put video data there.
318+
319+ - Mark the buffer as done and wake up the process waiting for it.
320+
321+Step (1) above is done by looking at the driver-managed list_head structure
322+- the one which is filled in the buf_queue() callback. Because starting
323+the engine and enqueueing buffers are done in separate steps, it's possible
324+for the engine to be running without any buffers available - in the
325+vmalloc() case especially. So the driver should be prepared for the list
326+to be empty. It is equally possible that nobody is yet interested in the
327+buffer; the driver should not remove it from the list or fill it until a
328+process is waiting on it. That test can be done by examining the buffer's
329+done field (a wait_queue_head_t structure) with waitqueue_active().
330+
331+A buffer's state should be set to VIDEOBUF_ACTIVE before being mapped for
332+DMA; that ensures that the videobuf layer will not try to do anything with
333+it while the device is transferring data.
334+
335+For scatter/gather drivers, the needed memory pointers will be found in the
336+scatterlist structure described above. Drivers using the vmalloc() method
337+can get a memory pointer with:
338+
339+ void *videobuf_to_vmalloc(struct videobuf_buffer *buf);
340+
341+For contiguous DMA drivers, the function to use is:
342+
343+ dma_addr_t videobuf_to_dma_contig(struct videobuf_buffer *buf);
344+
345+The contiguous DMA API goes out of its way to hide the kernel-space address
346+of the DMA buffer from drivers.
347+
348+The final step is to set the size field of the relevant videobuf_buffer
349+structure to the actual size of the captured image, set state to
350+VIDEOBUF_DONE, then call wake_up() on the done queue. At this point, the
351+buffer is owned by the videobuf layer and the driver should not touch it
352+again.
353+
354+Developers who are interested in more information can go into the relevant
355+header files; there are a few low-level functions declared there which have
356+not been talked about here. Also worthwhile is the vivi driver
357+(drivers/media/video/vivi.c), which is maintained as an example of how V4L2
358+drivers should be written. Vivi only uses the vmalloc() API, but it's good
359+enough to get started with. Note also that all of these calls are exported
360+GPL-only, so they will not be available to non-GPL kernel modules.
Documentation/x86/x86_64/boot-options.txt+7−13
@@ -166,19 +166,13 @@ NUMA · 165 unmodified lines
166166
167167 numa=noacpi Don't parse the SRAT table for NUMA setup
168168
169− numa=fake=CMDLINE
170− If a number, fakes CMDLINE nodes and ignores NUMA setup of the
171− actual machine. Otherwise, system memory is configured
172− depending on the sizes and coefficients listed. For example:
173− numa=fake=2*512,1024,4*256,*128
174− gives two 512M nodes, a 1024M node, four 256M nodes, and the
175− rest split into 128M chunks. If the last character of CMDLINE
176− is a *, the remaining memory is divided up equally among its
177− coefficient:
178− numa=fake=2*512,2*
179− gives two 512M nodes and the rest split into two nodes.
180− Otherwise, the remaining system RAM is allocated to an
181− additional node.
169+ numa=fake=<size>[MG]
170+ If given as a memory unit, fills all system RAM with nodes of
171+ size interleaved over physical nodes.
172+
173+ numa=fake=<N>
174+ If given as an integer, fills all system RAM with N fake nodes
175+ interleaved over physical nodes.
182176
183177 ACPI
184178
MAINTAINERS+89−13
@@ -221,6 +221,7 @@ F: drivers/net/acenic* · 220 unmodified lines
221221
222222 ACER ASPIRE ONE TEMPERATURE AND FAN DRIVER
223223 M: Peter Feuerer <peter@piie.net>
224+L: platform-driver-x86@vger.kernel.org
224225 W: http://piie.net/?section=acerhdf
225226 S: Maintained
226227 F: drivers/platform/x86/acerhdf.c
@@ -228,6 +229,7 @@ F: drivers/platform/x86/acerhdf.c · 1 unmodified line
228229 ACER WMI LAPTOP EXTRAS
229230 M: Carlos Corbacho <carlos@strangeworlds.co.uk>
230231 L: aceracpi@googlegroups.com (subscribers-only)
232+L: platform-driver-x86@vger.kernel.org
231233 W: http://code.google.com/p/aceracpi
232234 S: Maintained
233235 F: drivers/platform/x86/acer-wmi.c
@@ -288,7 +290,7 @@ F: drivers/acpi/video.c · 54 unmodified lines
288290
289291 ACPI WMI DRIVER
290292 M: Carlos Corbacho <carlos@strangeworlds.co.uk>
291−L: linux-acpi@vger.kernel.org
293+L: platform-driver-x86@vger.kernel.org
292294 W: http://www.lesswatts.org/projects/acpi/
293295 S: Maintained
294296 F: drivers/platform/x86/wmi.c
@@ -968,6 +970,7 @@ ASUS ACPI EXTRAS DRIVER · 673 unmodified lines
968970 M: Corentin Chary <corentincj@iksaif.net>
969971 M: Karol Kozimor <sziwan@users.sourceforge.net>
970972 L: acpi4asus-user@lists.sourceforge.net
973+L: platform-driver-x86@vger.kernel.org
971974 W: http://acpi4asus.sf.net
972975 S: Maintained
973976 F: drivers/platform/x86/asus_acpi.c
@@ -981,6 +984,7 @@ F: drivers/hwmon/asb100.c · 7 unmodified lines
981984 ASUS LAPTOP EXTRAS DRIVER
982985 M: Corentin Chary <corentincj@iksaif.net>
983986 L: acpi4asus-user@lists.sourceforge.net
987+L: platform-driver-x86@vger.kernel.org
984988 W: http://acpi4asus.sf.net
985989 S: Maintained
986990 F: drivers/platform/x86/asus-laptop.c
@@ -1473,6 +1477,7 @@ F: drivers/scsi/fnic/ · 486 unmodified lines
14731477 CMPC ACPI DRIVER
14741478 M: Thadeu Lima de Souza Cascardo <cascardo@holoscopio.com>
14751479 M: Daniel Oliveira Nascimento <don@syst.com.br>
1480+L: platform-driver-x86@vger.kernel.org
14761481 S: Supported
14771482 F: drivers/platform/x86/classmate-laptop.c
14781483
@@ -1516,6 +1521,7 @@ F: drivers/pci/hotplug/cpcihp_generic.c · 37 unmodified lines
15161521
15171522 COMPAL LAPTOP SUPPORT
15181523 M: Cezary Jackiewicz <cezary.jackiewicz@gmail.com>
1524+L: platform-driver-x86@vger.kernel.org
15191525 S: Maintained
15201526 F: drivers/platform/x86/compal-laptop.c
15211527
@@ -1746,6 +1752,7 @@ F: drivers/net/defxx.* · 224 unmodified lines
17461752
17471753 DELL LAPTOP DRIVER
17481754 M: Matthew Garrett <mjg59@srcf.ucam.org>
1755+L: platform-driver-x86@vger.kernel.org
17491756 S: Maintained
17501757 F: drivers/platform/x86/dell-laptop.c
17511758
@@ -2028,6 +2035,7 @@ F: drivers/edac/r82600_edac.c · 276 unmodified lines
20282035 EEEPC LAPTOP EXTRAS DRIVER
20292036 M: Corentin Chary <corentincj@iksaif.net>
20302037 L: acpi4asus-user@lists.sourceforge.net
2038+L: platform-driver-x86@vger.kernel.org
20312039 W: http://acpi4asus.sf.net
20322040 S: Maintained
20332041 F: drivers/platform/x86/eeepc-laptop.c
@@ -2141,6 +2149,17 @@ S: Supported · 107 unmodified lines
21412149 F: Documentation/fault-injection/
21422150 F: lib/fault-inject.c
21432151
2152+FCOE SUBSYSTEM (libfc, libfcoe, fcoe)
2153+M: Robert Love <robert.w.love@intel.com>
2154+L: devel@open-fcoe.org
2155+W: www.Open-FCoE.org
2156+S: Supported
2157+F: drivers/scsi/libfc/
2158+F: drivers/scsi/fcoe/
2159+F: include/scsi/fc/
2160+F: include/scsi/libfc.h
2161+F: include/scsi/libfcoe.h
2162+
21442163 FILE LOCKING (flock() and fcntl()/lockf())
21452164 M: Matthew Wilcox <matthew@wil.cx>
21462165 L: linux-fsdevel@vger.kernel.org
@@ -2295,7 +2314,7 @@ F: arch/frv/ · 148 unmodified lines
22952314
22962315 FUJITSU LAPTOP EXTRAS
22972316 M: Jonathan Woithe <jwoithe@physics.adelaide.edu.au>
2298−L: linux-acpi@vger.kernel.org
2317+L: platform-driver-x86@vger.kernel.org
22992318 S: Maintained
23002319 F: drivers/platform/x86/fujitsu-laptop.c
23012320
@@ -2372,6 +2391,12 @@ F: Documentation/isdn/README.gigaset · 70 unmodified lines
23722391 F: drivers/isdn/gigaset/
23732392 F: include/linux/gigaset_dev.h
23742393
2394+GRETH 10/100/1G Ethernet MAC device driver
2395+M: Kristoffer Glembo <kristoffer@gaisler.com>
2396+L: netdev@vger.kernel.org
2397+S: Maintained
2398+F: drivers/net/greth*
2399+
23752400 HARD DRIVE ACTIVE PROTECTION SYSTEM (HDAPS) DRIVER
23762401 M: Frank Seidel <frank@f-seidel.de>
23772402 L: lm-sensors@lm-sensors.org
@@ -2393,6 +2418,18 @@ L: linuxppc-dev@ozlabs.org · 15 unmodified lines
23932418 S: Odd Fixes
23942419 F: drivers/char/hvc_*
23952420
2421+VIRTIO CONSOLE DRIVER
2422+M: Amit Shah <amit.shah@redhat.com>
2423+L: virtualization@lists.linux-foundation.org
2424+S: Maintained
2425+F: drivers/char/virtio_console.c
2426+
2427+iSCSI BOOT FIRMWARE TABLE (iBFT) DRIVER
2428+M: Peter Jones <pjones@redhat.com>
2429+M: Konrad Rzeszutek Wilk <konrad@kernel.org>
2430+S: Maintained
2431+F: drivers/firmware/iscsi_ibft*
2432+
23962433 GSPCA FINEPIX SUBDRIVER
23972434 M: Frank Zago <frank@zago.net>
23982435 L: linux-media@vger.kernel.org
@@ -2561,6 +2598,7 @@ F: drivers/net/wireless/hostap/ · 162 unmodified lines
25612598
25622599 HP COMPAQ TC1100 TABLET WMI EXTRAS DRIVER
25632600 M: Carlos Corbacho <carlos@strangeworlds.co.uk>
2601+L: platform-driver-x86@vger.kernel.org
25642602 S: Odd Fixes
25652603 F: drivers/platform/x86/tc1100-wmi.c
25662604
@@ -2771,7 +2809,7 @@ F: drivers/video/i810/ · 204 unmodified lines
27712809
27722810 INTEL MENLOW THERMAL DRIVER
27732811 M: Sujith Thomas <sujith.thomas@intel.com>
2774−L: linux-acpi@vger.kernel.org
2812+L: platform-driver-x86@vger.kernel.org
27752813 W: http://www.lesswatts.org/projects/acpi/
27762814 S: Supported
27772815 F: drivers/platform/x86/intel_menlow.c
@@ -3496,9 +3534,9 @@ F: drivers/net/mv643xx_eth.* · 718 unmodified lines
34963534 F: include/linux/mv643xx.h
34973535
34983536 MARVELL MWL8K WIRELESS DRIVER
3499−M: Lennert Buytenhek <buytenh@marvell.com>
3537+M: Lennert Buytenhek <buytenh@wantstofly.org>
35003538 L: linux-wireless@vger.kernel.org
3501−S: Supported
3539+S: Maintained
35023540 F: drivers/net/wireless/mwl8k.c
35033541
35043542 MARVELL SOC MMC/SD/SDIO CONTROLLER DRIVER
@@ -3637,6 +3675,7 @@ F: drivers/char/mxser.* · 132 unmodified lines
36373675
36383676 MSI LAPTOP SUPPORT
36393677 M: Lennart Poettering <mzxreary@0pointer.de>
3678+L: platform-driver-x86@vger.kernel.org
36403679 W: https://tango.0pointer.de/mailman/listinfo/s270-linux
36413680 W: http://0pointer.de/lennart/tchibo.html
36423681 S: Maintained
@@ -3644,6 +3683,7 @@ F: drivers/platform/x86/msi-laptop.c · 1 unmodified line
36443683
36453684 MSI WMI SUPPORT
36463685 M: Anisse Astier <anisse@astier.eu>
3686+L: platform-driver-x86@vger.kernel.org
36473687 S: Supported
36483688 F: drivers/platform/x86/msi-wmi.c
36493689
@@ -4096,6 +4136,7 @@ F: drivers/i2c/busses/i2c-pasemi.c · 446 unmodified lines
40964136
40974137 PANASONIC LAPTOP ACPI EXTRAS DRIVER
40984138 M: Harald Welte <laforge@gnumonks.org>
4139+L: platform-driver-x86@vger.kernel.org
40994140 S: Maintained
41004141 F: drivers/platform/x86/panasonic-laptop.c
41014142
@@ -4445,6 +4486,13 @@ S: Supported · 343 unmodified lines
44454486 F: Documentation/networking/LICENSE.qla3xxx
44464487 F: drivers/net/qla3xxx.*
44474488
4489+QLOGIC QLCNIC (1/10)Gb ETHERNET DRIVER
4490+M: Amit Kumar Salecha <amit.salecha@qlogic.com>
4491+M: linux-driver@qlogic.com
4492+L: netdev@vger.kernel.org
4493+S: Supported
4494+F: drivers/net/qlcnic/
4495+
44484496 QLOGIC QLGE 10Gb ETHERNET DRIVER
44494497 M: Ron Mercer <ron.mercer@qlogic.com>
44504498 M: linux-driver@qlogic.com
@@ -4509,7 +4557,7 @@ F: drivers/net/wireless/ray* · 58 unmodified lines
45094557 RCUTORTURE MODULE
45104558 M: Josh Triplett <josh@freedesktop.org>
45114559 M: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
4512−S: Maintained
4560+S: Supported
45134561 F: Documentation/RCU/torture.txt
45144562 F: kernel/rcutorture.c
45154563
@@ -4534,11 +4582,12 @@ M: Dipankar Sarma <dipankar@in.ibm.com> · 18 unmodified lines
45344582 M: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
45354583 W: http://www.rdrop.com/users/paulmck/rclock/
45364584 S: Supported
4537−F: Documentation/RCU/rcu.txt
4538−F: Documentation/RCU/rcuref.txt
4539−F: include/linux/rcupdate.h
4540−F: include/linux/srcu.h
4541−F: kernel/rcupdate.c
4585+F: Documentation/RCU/
4586+F: include/linux/rcu*
4587+F: include/linux/srcu*
4588+F: kernel/rcu*
4589+F: kernel/srcu*
4590+X: kernel/rcutorture.c
45424591
45434592 REAL TIME CLOCK DRIVER
45444593 M: Paul Gortmaker <p_gortmaker@yahoo.com>
@@ -4676,6 +4725,13 @@ F: drivers/media/common/saa7146* · 131 unmodified lines
46764725 F: drivers/media/video/*7146*
46774726 F: include/media/*7146*
46784727
4728+TLG2300 VIDEO4LINUX-2 DRIVER
4729+M: Huang Shijie <shijie8@gmail.com>
4730+M: Kang Yong <kangyong@telegent.com>
4731+M: Zhang Xiaobing <xbzhang@telegent.com>
4732+S: Supported
4733+F: drivers/media/video/tlg2300
4734+
46794735 SC1200 WDT DRIVER
46804736 M: Zwane Mwaikambo <zwane@arm.linux.org.uk>
46814737 S: Maintained
@@ -4831,6 +4887,8 @@ F: drivers/scsi/be2iscsi/ · 149 unmodified lines
48314887 SERVER ENGINES 10Gbps NIC - BladeEngine 2 DRIVER
48324888 M: Sathya Perla <sathyap@serverengines.com>
48334889 M: Subbu Seetharaman <subbus@serverengines.com>
4890+M: Sarveshwar Bandi <sarveshwarb@serverengines.com>
4891+M: Ajit Khaparde <ajitk@serverengines.com>
48344892 L: netdev@vger.kernel.org
48354893 W: http://www.serverengines.com
48364894 S: Supported
@@ -5034,7 +5092,7 @@ F: include/linux/ssb/ · 197 unmodified lines
50345092
50355093 SONY VAIO CONTROL DEVICE DRIVER
50365094 M: Mattia Dongili <malattia@linux.it>
5037−L: linux-acpi@vger.kernel.org
5095+L: platform-driver-x86@vger.kernel.org
50385096 W: http://www.linux.it/~malattia/wiki/index.php/Sony_drivers
50395097 S: Maintained
50405098 F: Documentation/laptops/sony-laptop.txt
@@ -5240,6 +5298,7 @@ F: arch/xtensa/ · 199 unmodified lines
52405298 THINKPAD ACPI EXTRAS DRIVER
52415299 M: Henrique de Moraes Holschuh <ibm-acpi@hmh.eng.br>
52425300 L: ibm-acpi-devel@lists.sourceforge.net
5301+L: platform-driver-x86@vger.kernel.org
52435302 W: http://ibm-acpi.sourceforge.net
52445303 W: http://thinkwiki.org/wiki/Ibm-acpi
52455304 T: git git://repo.or.cz/linux-2.6/linux-acpi-2.6/ibm-acpi-2.6.git
@@ -5293,10 +5352,12 @@ F: security/tomoyo/ · 47 unmodified lines
52935352
52945353 TOPSTAR LAPTOP EXTRAS DRIVER
52955354 M: Herton Ronaldo Krzesinski <herton@mandriva.com.br>
5355+L: platform-driver-x86@vger.kernel.org
52965356 S: Maintained
52975357 F: drivers/platform/x86/topstar-laptop.c
52985358
52995359 TOSHIBA ACPI EXTRAS DRIVER
5360+L: platform-driver-x86@vger.kernel.org
53005361 S: Orphan
53015362 F: drivers/platform/x86/toshiba_acpi.c
53025363
@@ -5796,6 +5857,15 @@ S: Maintained · 493 unmodified lines
57965857 F: Documentation/filesystems/vfat.txt
57975858 F: fs/fat/
57985859
5860+VIRTIO HOST (VHOST)
5861+M: "Michael S. Tsirkin" <mst@redhat.com>
5862+L: kvm@vger.kernel.org
5863+L: virtualization@lists.osdl.org
5864+L: netdev@vger.kernel.org
5865+S: Maintained
5866+F: drivers/vhost/
5867+F: include/linux/vhost.h
5868+
57995869 VIA RHINE NETWORK DRIVER
58005870 M: Roger Luethi <rl@hellgate.ch>
58015871 S: Maintained
@@ -5954,7 +6024,7 @@ S: Maintained · 152 unmodified lines
59546024 F: drivers/input/misc/wistron_btns.c
59556025
59566026 WL1251 WIRELESS DRIVER
5957−M: Kalle Valo <kalle.valo@nokia.com>
6027+M: Kalle Valo <kalle.valo@iki.fi>
59586028 L: linux-wireless@vger.kernel.org
59596029 W: http://wireless.kernel.org
59606030 T: git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git
@@ -6024,6 +6094,12 @@ S: Maintained · 63 unmodified lines
60246094 F: Documentation/x86/
60256095 F: arch/x86/
60266096
6097+X86 PLATFORM DRIVERS
6098+M: Matthew Garrett <mjg@redhat.com>
6099+L: platform-driver-x86@vger.kernel.org
6100+S: Maintained
6101+F: drivers/platform/x86
6102+
60276103 XEN HYPERVISOR INTERFACE
60286104 M: Jeremy Fitzhardinge <jeremy@xensource.com>
60296105 M: Chris Wright <chrisw@sous-sol.org>
arch/Kconfig+1−17
@@ -3,11 +3,9 @@ · 2 unmodified lines
33 #
44
55 config OPROFILE
6− tristate "OProfile system profiling (EXPERIMENTAL)"
6+ tristate "OProfile system profiling"
77 depends on PROFILING
88 depends on HAVE_OPROFILE
9− depends on TRACING_SUPPORT
10− select TRACING
119 select RING_BUFFER
1210 select RING_BUFFER_ALLOW_SWAP
1311 help
@@ -17,20 +15,6 @@ config OPROFILE · 3 unmodified lines
1715
1816 If unsure, say N.
1917
20−config OPROFILE_IBS
21− bool "OProfile AMD IBS support (EXPERIMENTAL)"
22− default n
23− depends on OPROFILE && SMP && X86
24− help
25− Instruction-Based Sampling (IBS) is a new profiling
26− technique that provides rich, precise program performance
27− information. IBS is introduced by AMD Family10h processors
28− (AMD Opteron Quad-Core processor "Barcelona") to overcome
29− the limitations of conventional performance counter
30− sampling.
31−
32− If unsure, say N.
33−
3418 config OPROFILE_EVENT_MULTIPLEX
3519 bool "OProfile multiplexing support (EXPERIMENTAL)"
3620 default n
arch/alpha/include/asm/pgtable.h+1−1
@@ -329,7 +329,7 @@ extern pgd_t swapper_pg_dir[1024]; · 328 unmodified lines
329329 * tables contain all the necessary information.
330330 */
331331 extern inline void update_mmu_cache(struct vm_area_struct * vma,
332− unsigned long address, pte_t pte)
332+ unsigned long address, pte_t *ptep)
333333 {
334334 }
335335
arch/alpha/kernel/pci.c+3−3
@@ -126,8 +126,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_ANY_ID, PCI_ANY_ID, pcibios_fixup_final); · 125 unmodified lines
126126 #define MB (1024*KB)
127127 #define GB (1024*MB)
128128
129−void
130−pcibios_align_resource(void *data, struct resource *res,
129+resource_size_t
130+pcibios_align_resource(void *data, const struct resource *res,
131131 resource_size_t size, resource_size_t align)
132132 {
133133 struct pci_dev *dev = data;
@@ -184,7 +184,7 @@ pcibios_align_resource(void *data, struct resource *res, · 50 unmodified lines
184184 }
185185 }
186186
187− res->start = start;
187+ return start;
188188 }
189189 #undef KB
190190 #undef MB
arch/arm/Kconfig+51−0
@@ -12,6 +12,7 @@ config ARM · 11 unmodified lines
1212 select HAVE_IDE
1313 select RTC_LIB
1414 select SYS_SUPPORTS_APM_EMULATION
15+ select GENERIC_ATOMIC64 if (!CPU_32v6K)
1516 select HAVE_OPROFILE
1617 select HAVE_ARCH_KGDB
1718 select HAVE_KPROBES if (!XIP_KERNEL)
@@ -20,6 +21,8 @@ config ARM · 2 unmodified lines
2021 select HAVE_GENERIC_DMA_COHERENT
2122 select HAVE_KERNEL_GZIP
2223 select HAVE_KERNEL_LZO
24+ select HAVE_PERF_EVENTS
25+ select PERF_USE_VMALLOC
2326 help
2427 The ARM series is a line of low-power-consumption RISC chip designs
2528 licensed by ARM Ltd and targeted at embedded applications and
@@ -52,6 +55,9 @@ config HAVE_TCM · 26 unmodified lines
5255 bool
5356 select GENERIC_ALLOCATOR
5457
58+config HAVE_PROC_CPU
59+ bool
60+
5561 config NO_IOPORT
5662 bool
5763
@@ -161,6 +167,11 @@ config ARCH_MTD_XIP · 103 unmodified lines
161167 config GENERIC_HARDIRQS_NO__DO_IRQ
162168 def_bool y
163169
170+config ARM_L1_CACHE_SHIFT_6
171+ bool
172+ help
173+ Setting ARM L1 cache line size to 64 Bytes.
174+
164175 if OPROFILE
165176
166177 config OPROFILE_ARMV6
@@ -550,10 +561,20 @@ config ARCH_W90X900 · 383 unmodified lines
550561 <http://www.nuvoton.com/hq/enu/ProductAndSales/ProductLines/
551562 ConsumerElectronicsIC/ARMMicrocontroller/ARMMicrocontroller>
552563
564+config ARCH_NUC93X
565+ bool "Nuvoton NUC93X CPU"
566+ select CPU_ARM926T
567+ select HAVE_CLK
568+ select COMMON_CLKDEV
569+ help
570+ Support for Nuvoton (Winbond logic dept.) NUC93X MCU,The NUC93X is a
571+ low-power and high performance MPEG-4/JPEG multimedia controller chip.
572+
553573 config ARCH_PNX4008
554574 bool "Philips Nexperia PNX4008 Mobile"
555575 select CPU_ARM926T
556576 select HAVE_CLK
577+ select COMMON_CLKDEV
557578 help
558579 This enables support for Philips PNX4008 mobile platform.
559580
@@ -638,6 +659,7 @@ config ARCH_S5PC1XX · 78 unmodified lines
638659 select GENERIC_GPIO
639660 select HAVE_CLK
640661 select CPU_V7
662+ select ARM_L1_CACHE_SHIFT_6
641663 help
642664 Samsung S5PC1XX series based systems
643665
@@ -785,6 +807,8 @@ source "arch/arm/plat-nomadik/Kconfig" · 141 unmodified lines
785807
786808 source "arch/arm/mach-ns9xxx/Kconfig"
787809
810+source "arch/arm/mach-nuc93x/Kconfig"
811+
788812 source "arch/arm/plat-omap/Kconfig"
789813
790814 source "arch/arm/mach-omap1/Kconfig"
@@ -867,6 +891,11 @@ config XSCALE_PMU · 76 unmodified lines
867891 depends on CPU_XSCALE && !XSCALE_PMU_TIMER
868892 default y
869893
894+config CPU_HAS_PMU
895+ depends on CPU_V6 || CPU_V7 || XSCALE_PMU
896+ default y
897+ bool
898+
870899 if !MMU
871900 source "arch/arm/Kconfig-nommu"
872901 endif
@@ -921,6 +950,19 @@ config ARM_ERRATA_460075 · 48 unmodified lines
921950 ACTLR register. Note that setting specific bits in the ACTLR register
922951 may not be available in non-secure mode.
923952
953+config PL310_ERRATA_588369
954+ bool "Clean & Invalidate maintenance operations do not invalidate clean lines"
955+ depends on CACHE_L2X0 && ARCH_OMAP4
956+ help
957+ The PL310 L2 cache controller implements three types of Clean &
958+ Invalidate maintenance operations: by Physical Address
959+ (offset 0x7F0), by Index/Way (0x7F8) and by Way (0x7FC).
960+ They are architecturally defined to behave as the execution of a
961+ clean operation followed immediately by an invalidate operation,
962+ both performing to the same memory location. This functionality
963+ is not correctly implemented in PL310 as clean lines are not
964+ invalidated as a result of these operations. Note that this errata
965+ uses Texas Instrument's secure monitor api.
924966 endmenu
925967
926968 source "arch/arm/common/Kconfig"
@@ -1171,6 +1213,14 @@ config HIGHPTE · 244 unmodified lines
11711213 depends on HIGHMEM
11721214 depends on !OUTER_CACHE
11731215
1216+config HW_PERF_EVENTS
1217+ bool "Enable hardware performance counter support for perf events"
1218+ depends on PERF_EVENTS && CPU_HAS_PMU && (CPU_V6 || CPU_V7)
1219+ default y
1220+ help
1221+ Enable hardware performance counter support for perf events. If
1222+ disabled, perf events will use software events only.
1223+
11741224 source "mm/Kconfig"
11751225
11761226 config LEDS
@@ -1230,6 +1280,7 @@ config ALIGNMENT_TRAP · 53 unmodified lines
12301280 bool
12311281 depends on CPU_CP15_MMU
12321282 default y if !ARCH_EBSA110
1283+ select HAVE_PROC_CPU if PROC_FS
12331284 help
12341285 ARM processors cannot fetch/store information which is not
12351286 naturally aligned on the bus, i.e., a 4 byte fetch must start at an
arch/arm/Makefile+1−0
@@ -171,6 +171,7 @@ machine-$(CONFIG_ARCH_U300) := u300 · 170 unmodified lines
171171 machine-$(CONFIG_ARCH_U8500) := ux500
172172 machine-$(CONFIG_ARCH_VERSATILE) := versatile
173173 machine-$(CONFIG_ARCH_W90X900) := w90x900
174+machine-$(CONFIG_ARCH_NUC93X) := nuc93x
174175 machine-$(CONFIG_FOOTBRIDGE) := footbridge
175176
176177 # Platform directory name. This list is sorted alphanumerically
arch/arm/boot/compressed/Makefile+1−5
@@ -5,7 +5,7 @@ · 4 unmodified lines
55 #
66
77 HEAD = head.o
8−OBJS = misc.o
8+OBJS = misc.o decompress.o
99 FONTC = $(srctree)/drivers/video/console/font_acorn_8x8.c
1010
1111 #
@@ -106,10 +106,6 @@ lib1funcs = $(obj)/lib1funcs.o · 94 unmodified lines
106106 $(obj)/lib1funcs.S: $(srctree)/arch/$(SRCARCH)/lib/lib1funcs.S FORCE
107107 $(call cmd,shipped)
108108
109−# Don't allow any static data in misc.o, which
110−# would otherwise mess up our GOT table
111−CFLAGS_misc.o := -Dstatic=
112−
113109 $(obj)/vmlinux: $(obj)/vmlinux.lds $(obj)/$(HEAD) $(obj)/piggy.$(suffix_y).o \
114110 $(addprefix $(obj)/, $(OBJS)) $(lib1funcs) FORCE
115111 $(call if_changed,ld)
arch/arm/boot/compressed/decompress.c+45−0
@@ -0,0 +1,45 @@
1+#define _LINUX_STRING_H_
2+
3+#include <linux/compiler.h> /* for inline */
4+#include <linux/types.h> /* for size_t */
5+#include <linux/stddef.h> /* for NULL */
6+#include <linux/linkage.h>
7+#include <asm/string.h>
8+
9+extern unsigned long free_mem_ptr;
10+extern unsigned long free_mem_end_ptr;
11+extern void error(char *);
12+
13+#define STATIC static
14+
15+#define ARCH_HAS_DECOMP_WDOG
16+
17+/* Diagnostic functions */
18+#ifdef DEBUG
19+# define Assert(cond,msg) {if(!(cond)) error(msg);}
20+# define Trace(x) fprintf x
21+# define Tracev(x) {if (verbose) fprintf x ;}
22+# define Tracevv(x) {if (verbose>1) fprintf x ;}
23+# define Tracec(c,x) {if (verbose && (c)) fprintf x ;}
24+# define Tracecv(c,x) {if (verbose>1 && (c)) fprintf x ;}
25+#else
26+# define Assert(cond,msg)
27+# define Trace(x)
28+# define Tracev(x)
29+# define Tracevv(x)
30+# define Tracec(c,x)
31+# define Tracecv(c,x)
32+#endif
33+
34+#ifdef CONFIG_KERNEL_GZIP
35+#include "../../../../lib/decompress_inflate.c"
36+#endif
37+
38+#ifdef CONFIG_KERNEL_LZO
39+#include "../../../../lib/decompress_unlzo.c"
40+#endif
41+
42+void do_decompress(u8 *input, int len, u8 *output, void (*error)(char *x))
43+{
44+ decompress(input, len, NULL, NULL, output, NULL, error);
45+}
arch/arm/boot/compressed/head.S+10−10
@@ -22,13 +22,13 @@ · 21 unmodified lines
2222 #if defined(CONFIG_DEBUG_ICEDCC)
2323
2424 #ifdef CONFIG_CPU_V6
25− .macro loadsp, rb
25+ .macro loadsp, rb, tmp
2626 .endm
2727 .macro writeb, ch, rb
2828 mcr p14, 0, \ch, c0, c5, 0
2929 .endm
3030 #elif defined(CONFIG_CPU_V7)
31− .macro loadsp, rb
31+ .macro loadsp, rb, tmp
3232 .endm
3333 .macro writeb, ch, rb
3434 wait: mrc p14, 0, pc, c0, c1, 0
@@ -36,13 +36,13 @@ wait: mrc p14, 0, pc, c0, c1, 0 · 1 unmodified line
3636 mcr p14, 0, \ch, c0, c5, 0
3737 .endm
3838 #elif defined(CONFIG_CPU_XSCALE)
39− .macro loadsp, rb
39+ .macro loadsp, rb, tmp
4040 .endm
4141 .macro writeb, ch, rb
4242 mcr p14, 0, \ch, c8, c0, 0
4343 .endm
4444 #else
45− .macro loadsp, rb
45+ .macro loadsp, rb, tmp
4646 .endm
4747 .macro writeb, ch, rb
4848 mcr p14, 0, \ch, c1, c0, 0
@@ -58,7 +58,7 @@ wait: mrc p14, 0, pc, c0, c1, 0 · 9 unmodified lines
5858 .endm
5959
6060 #if defined(CONFIG_ARCH_SA1100)
61− .macro loadsp, rb
61+ .macro loadsp, rb, tmp
6262 mov \rb, #0x80000000 @ physical base address
6363 #ifdef CONFIG_DEBUG_LL_SER3
6464 add \rb, \rb, #0x00050000 @ Ser3
@@ -67,13 +67,13 @@ wait: mrc p14, 0, pc, c0, c1, 0 · 2 unmodified lines
6767 #endif
6868 .endm
6969 #elif defined(CONFIG_ARCH_S3C2410)
70− .macro loadsp, rb
70+ .macro loadsp, rb, tmp
7171 mov \rb, #0x50000000
7272 add \rb, \rb, #0x4000 * CONFIG_S3C_LOWLEVEL_UART_PORT
7373 .endm
7474 #else
75− .macro loadsp, rb
76− addruart \rb
75+ .macro loadsp, rb, tmp
76+ addruart \rb, \tmp
7777 .endm
7878 #endif
7979 #endif
@@ -1025,7 +1025,7 @@ phex: adr r3, phexbuf · 945 unmodified lines
10251025 strb r2, [r3, r1]
10261026 b 1b
10271027
1028−puts: loadsp r3
1028+puts: loadsp r3, r1
10291029 1: ldrb r2, [r0], #1
10301030 teq r2, #0
10311031 moveq pc, lr
@@ -1042,7 +1042,7 @@ puts: loadsp r3 · 10 unmodified lines
10421042 putc:
10431043 mov r2, r0
10441044 mov r0, #0
1045− loadsp r3
1045+ loadsp r3, r1
10461046 b 2b
10471047
10481048 memdump: mov r12, r0
arch/arm/boot/compressed/misc.c+11−98
@@ -23,8 +23,8 @@ unsigned int __machine_arch_type; · 22 unmodified lines
2323 #include <linux/compiler.h> /* for inline */
2424 #include <linux/types.h> /* for size_t */
2525 #include <linux/stddef.h> /* for NULL */
26−#include <asm/string.h>
2726 #include <linux/linkage.h>
27+#include <asm/string.h>
2828
2929 #include <asm/unaligned.h>
3030
@@ -117,57 +117,7 @@ static void putstr(const char *ptr) · 86 unmodified lines
117117
118118 #endif
119119
120−#define __ptr_t void *
121−
122−#define memzero(s,n) __memzero(s,n)
123−
124−/*
125− * Optimised C version of memzero for the ARM.
126− */
127−void __memzero (__ptr_t s, size_t n)
128−{
129− union { void *vp; unsigned long *ulp; unsigned char *ucp; } u;
130− int i;
131−
132− u.vp = s;
133−
134− for (i = n >> 5; i > 0; i--) {
135− *u.ulp++ = 0;
136− *u.ulp++ = 0;
137− *u.ulp++ = 0;
138− *u.ulp++ = 0;
139− *u.ulp++ = 0;
140− *u.ulp++ = 0;
141− *u.ulp++ = 0;
142− *u.ulp++ = 0;
143− }
144−
145− if (n & 1 << 4) {
146− *u.ulp++ = 0;
147− *u.ulp++ = 0;
148− *u.ulp++ = 0;
149− *u.ulp++ = 0;
150− }
151−
152− if (n & 1 << 3) {
153− *u.ulp++ = 0;
154− *u.ulp++ = 0;
155− }
156−
157− if (n & 1 << 2)
158− *u.ulp++ = 0;
159−
160− if (n & 1 << 1) {
161− *u.ucp++ = 0;
162− *u.ucp++ = 0;
163− }
164−
165− if (n & 1)
166− *u.ucp++ = 0;
167−}
168−
169−static inline __ptr_t memcpy(__ptr_t __dest, __const __ptr_t __src,
170− size_t __n)
120+void *memcpy(void *__dest, __const void *__src, size_t __n)
171121 {
172122 int i = 0;
173123 unsigned char *d = (unsigned char *)__dest, *s = (unsigned char *)__src;
@@ -204,59 +154,20 @@ static inline __ptr_t memcpy(__ptr_t __dest, __const __ptr_t __src, · 30 unmodified lines
204154 /*
205155 * gzip delarations
206156 */
207−#define STATIC static
208−
209−/* Diagnostic functions */
210−#ifdef DEBUG
211−# define Assert(cond,msg) {if(!(cond)) error(msg);}
212−# define Trace(x) fprintf x
213−# define Tracev(x) {if (verbose) fprintf x ;}
214−# define Tracevv(x) {if (verbose>1) fprintf x ;}
215−# define Tracec(c,x) {if (verbose && (c)) fprintf x ;}
216−# define Tracecv(c,x) {if (verbose>1 && (c)) fprintf x ;}
217−#else
218−# define Assert(cond,msg)
219−# define Trace(x)
220−# define Tracev(x)
221−# define Tracevv(x)
222−# define Tracec(c,x)
223−# define Tracecv(c,x)
224−#endif
225−
226−static void error(char *m);
227−
228157 extern char input_data[];
229158 extern char input_data_end[];
230159
231−static unsigned char *output_data;
232−static unsigned long output_ptr;
233−
234−static void error(char *m);
160+unsigned char *output_data;
161+unsigned long output_ptr;
235162
236−static void putstr(const char *);
237−
238−static unsigned long free_mem_ptr;
239−static unsigned long free_mem_end_ptr;
240−
241−#ifdef STANDALONE_DEBUG
242−#define NO_INFLATE_MALLOC
243−#endif
244−
245−#define ARCH_HAS_DECOMP_WDOG
246−
247−#ifdef CONFIG_KERNEL_GZIP
248−#include "../../../../lib/decompress_inflate.c"
249−#endif
250−
251−#ifdef CONFIG_KERNEL_LZO
252−#include "../../../../lib/decompress_unlzo.c"
253−#endif
163+unsigned long free_mem_ptr;
164+unsigned long free_mem_end_ptr;
254165
255166 #ifndef arch_error
256167 #define arch_error(x)
257168 #endif
258169
259−static void error(char *x)
170+void error(char *x)
260171 {
261172 arch_error(x);
262173
@@ -272,6 +183,8 @@ asmlinkage void __div0(void) · 9 unmodified lines
272183 error("Attempting division by 0!");
273184 }
274185
186+extern void do_decompress(u8 *input, int len, u8 *output, void (*error)(char *x));
187+
275188 #ifndef STANDALONE_DEBUG
276189
277190 unsigned long
@@ -292,8 +205,8 @@ decompress_kernel(unsigned long output_start, unsigned long free_mem_ptr_p, · 14 unmodified lines
292205 output_ptr = get_unaligned_le32(tmp);
293206
294207 putstr("Uncompressing Linux...");
295− decompress(input_data, input_data_end - input_data,
296− NULL, NULL, output_data, NULL, error);
208+ do_decompress(input_data, input_data_end - input_data,
209+ output_data, error);
297210 putstr(" done, booting the kernel.\n");
298211 return output_ptr;
299212 }
arch/arm/boot/compressed/vmlinux.lds.in+7−1
@@ -14,6 +14,13 @@ SECTIONS · 13 unmodified lines
1414 /DISCARD/ : {
1515 *(.ARM.exidx*)
1616 *(.ARM.extab*)
17+ /*
18+ * Discard any r/w data - this produces a link error if we have any,
19+ * which is required for PIC decompression. Local data generates
20+ * GOTOFF relocations, which prevents it being relocated independently
21+ * of the text/got segments.
22+ */
23+ *(.data)
1724 }
1825
1926 . = TEXT_START;
@@ -40,7 +47,6 @@ SECTIONS · 20 unmodified lines
4047 .got : { *(.got) }
4148 _got_end = .;
4249 .got.plt : { *(.got.plt) }
43− .data : { *(.data) }
4450 _edata = .;
4551
4652 . = BSS_START;
arch/arm/common/clkdev.c+10−0
@@ -99,6 +99,16 @@ void clkdev_add(struct clk_lookup *cl) · 98 unmodified lines
9999 }
100100 EXPORT_SYMBOL(clkdev_add);
101101
102+void __init clkdev_add_table(struct clk_lookup *cl, size_t num)
103+{
104+ mutex_lock(&clocks_mutex);
105+ while (num--) {
106+ list_add_tail(&cl->node, &clocks);
107+ cl++;
108+ }
109+ mutex_unlock(&clocks_mutex);
110+}
111+
102112 #define MAX_DEV_ID 20
103113 #define MAX_CON_ID 16
104114
arch/arm/common/dmabounce.c+3−1
@@ -277,7 +277,7 @@ static inline dma_addr_t map_single(struct device *dev, void *ptr, size_t size, · 276 unmodified lines
277277 * We don't need to sync the DMA buffer since
278278 * it was allocated via the coherent allocators.
279279 */
280− dma_cache_maint(ptr, size, dir);
280+ __dma_single_cpu_to_dev(ptr, size, dir);
281281 }
282282
283283 return dma_addr;
@@ -315,6 +315,8 @@ static inline void unmap_single(struct device *dev, dma_addr_t dma_addr, · 31 unmodified lines
315315 __cpuc_flush_dcache_area(ptr, size);
316316 }
317317 free_safe_buffer(dev->archdata.dmabounce, buf);
318+ } else {
319+ __dma_single_dev_to_cpu(dma_to_virt(dev, dma_addr), size, dir);
318320 }
319321 }
320322
arch/arm/common/vic.c+132−133
@@ -18,6 +18,7 @@ · 17 unmodified lines
1818 * along with this program; if not, write to the Free Software
1919 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
2020 */
21+
2122 #include <linux/init.h>
2223 #include <linux/list.h>
2324 #include <linux/io.h>
@@ -28,48 +29,6 @@ · 4 unmodified lines
2829 #include <asm/mach/irq.h>
2930 #include <asm/hardware/vic.h>
3031
31−static void vic_ack_irq(unsigned int irq)
32−{
33− void __iomem *base = get_irq_chip_data(irq);
34− irq &= 31;
35− writel(1 << irq, base + VIC_INT_ENABLE_CLEAR);
36− /* moreover, clear the soft-triggered, in case it was the reason */
37− writel(1 << irq, base + VIC_INT_SOFT_CLEAR);
38−}
39−
40−static void vic_mask_irq(unsigned int irq)
41−{
42− void __iomem *base = get_irq_chip_data(irq);
43− irq &= 31;
44− writel(1 << irq, base + VIC_INT_ENABLE_CLEAR);
45−}
46−
47−static void vic_unmask_irq(unsigned int irq)
48−{
49− void __iomem *base = get_irq_chip_data(irq);
50− irq &= 31;
51− writel(1 << irq, base + VIC_INT_ENABLE);
52−}
53−
54−/**
55− * vic_init2 - common initialisation code
56− * @base: Base of the VIC.
57− *
58− * Common initialisation code for registeration
59− * and resume.
60−*/
61−static void vic_init2(void __iomem *base)
62−{
63− int i;
64−
65− for (i = 0; i < 16; i++) {
66− void __iomem *reg = base + VIC_VECT_CNTL0 + (i * 4);
67− writel(VIC_VECT_CNTL_ENABLE | i, reg);
68− }
69−
70− writel(32, base + VIC_PL190_DEF_VECT_ADDR);
71−}
72−
7332 #if defined(CONFIG_PM)
7433 /**
7534 * struct vic_device - VIC PM device
@@ -99,13 +58,34 @@ struct vic_device { · 23 unmodified lines
9958 /* we cannot allocate memory when VICs are initially registered */
10059 static struct vic_device vic_devices[CONFIG_ARM_VIC_NR];
10160
61+static int vic_id;
62+
10263 static inline struct vic_device *to_vic(struct sys_device *sys)
10364 {
10465 return container_of(sys, struct vic_device, sysdev);
10566 }
67+#endif /* CONFIG_PM */
10668
107−static int vic_id;
69+/**
70+ * vic_init2 - common initialisation code
71+ * @base: Base of the VIC.
72+ *
73+ * Common initialisation code for registeration
74+ * and resume.
75+*/
76+static void vic_init2(void __iomem *base)
77+{
78+ int i;
79+
80+ for (i = 0; i < 16; i++) {
81+ void __iomem *reg = base + VIC_VECT_CNTL0 + (i * 4);
82+ writel(VIC_VECT_CNTL_ENABLE | i, reg);
83+ }
84+
85+ writel(32, base + VIC_PL190_DEF_VECT_ADDR);
86+}
10887
88+#if defined(CONFIG_PM)
10989 static int vic_class_resume(struct sys_device *dev)
11090 {
11191 struct vic_device *vic = to_vic(dev);
@@ -158,31 +138,6 @@ struct sysdev_class vic_class = { · 46 unmodified lines
158138 .resume = vic_class_resume,
159139 };
160140
161−/**
162− * vic_pm_register - Register a VIC for later power management control
163− * @base: The base address of the VIC.
164− * @irq: The base IRQ for the VIC.
165− * @resume_sources: bitmask of interrupts allowed for resume sources.
166− *
167− * Register the VIC with the system device tree so that it can be notified
168− * of suspend and resume requests and ensure that the correct actions are
169− * taken to re-instate the settings on resume.
170− */
171−static void __init vic_pm_register(void __iomem *base, unsigned int irq, u32 resume_sources)
172−{
173− struct vic_device *v;
174−
175− if (vic_id >= ARRAY_SIZE(vic_devices))
176− printk(KERN_ERR "%s: too few VICs, increase CONFIG_ARM_VIC_NR\n", __func__);
177− else {
178− v = &vic_devices[vic_id];
179− v->base = base;
180− v->resume_sources = resume_sources;
181− v->irq = irq;
182− vic_id++;
183− }
184−}
185−
186141 /**
187142 * vic_pm_init - initicall to register VIC pm
188143 *
@@ -219,9 +174,60 @@ static int __init vic_pm_init(void) · 30 unmodified lines
219174
220175 return 0;
221176 }
222−
223177 late_initcall(vic_pm_init);
224178
179+/**
180+ * vic_pm_register - Register a VIC for later power management control
181+ * @base: The base address of the VIC.
182+ * @irq: The base IRQ for the VIC.
183+ * @resume_sources: bitmask of interrupts allowed for resume sources.
184+ *
185+ * Register the VIC with the system device tree so that it can be notified
186+ * of suspend and resume requests and ensure that the correct actions are
187+ * taken to re-instate the settings on resume.
188+ */
189+static void __init vic_pm_register(void __iomem *base, unsigned int irq, u32 resume_sources)
190+{
191+ struct vic_device *v;
192+
193+ if (vic_id >= ARRAY_SIZE(vic_devices))
194+ printk(KERN_ERR "%s: too few VICs, increase CONFIG_ARM_VIC_NR\n", __func__);
195+ else {
196+ v = &vic_devices[vic_id];
197+ v->base = base;
198+ v->resume_sources = resume_sources;
199+ v->irq = irq;
200+ vic_id++;
201+ }
202+}
203+#else
204+static inline void vic_pm_register(void __iomem *base, unsigned int irq, u32 arg1) { }
205+#endif /* CONFIG_PM */
206+
207+static void vic_ack_irq(unsigned int irq)
208+{
209+ void __iomem *base = get_irq_chip_data(irq);
210+ irq &= 31;
211+ writel(1 << irq, base + VIC_INT_ENABLE_CLEAR);
212+ /* moreover, clear the soft-triggered, in case it was the reason */
213+ writel(1 << irq, base + VIC_INT_SOFT_CLEAR);
214+}
215+
216+static void vic_mask_irq(unsigned int irq)
217+{
218+ void __iomem *base = get_irq_chip_data(irq);
219+ irq &= 31;
220+ writel(1 << irq, base + VIC_INT_ENABLE_CLEAR);
221+}
222+
223+static void vic_unmask_irq(unsigned int irq)
224+{
225+ void __iomem *base = get_irq_chip_data(irq);
226+ irq &= 31;
227+ writel(1 << irq, base + VIC_INT_ENABLE);
228+}
229+
230+#if defined(CONFIG_PM)
225231 static struct vic_device *vic_from_irq(unsigned int irq)
226232 {
227233 struct vic_device *v = vic_devices;
@@ -255,10 +261,7 @@ static int vic_set_wake(unsigned int irq, unsigned int on) · 27 unmodified lines
255261
256262 return 0;
257263 }
258−
259264 #else
260−static inline void vic_pm_register(void __iomem *base, unsigned int irq, u32 arg1) { }
261−
262265 #define vic_set_wake NULL
263266 #endif /* CONFIG_PM */
264267
@@ -270,9 +273,62 @@ static struct irq_chip vic_chip = { · 5 unmodified lines
270273 .set_wake = vic_set_wake,
271274 };
272275
273−/* The PL190 cell from ARM has been modified by ST, so handle both here */
274−static void vik_init_st(void __iomem *base, unsigned int irq_start,
275− u32 vic_sources);
276+/*
277+ * The PL190 cell from ARM has been modified by ST to handle 64 interrupts.
278+ * The original cell has 32 interrupts, while the modified one has 64,
279+ * replocating two blocks 0x00..0x1f in 0x20..0x3f. In that case
280+ * the probe function is called twice, with base set to offset 000
281+ * and 020 within the page. We call this "second block".
282+ */
283+static void __init vic_init_st(void __iomem *base, unsigned int irq_start,
284+ u32 vic_sources)
285+{
286+ unsigned int i;
287+ int vic_2nd_block = ((unsigned long)base & ~PAGE_MASK) != 0;
288+
289+ /* Disable all interrupts initially. */
290+
291+ writel(0, base + VIC_INT_SELECT);
292+ writel(0, base + VIC_INT_ENABLE);
293+ writel(~0, base + VIC_INT_ENABLE_CLEAR);
294+ writel(0, base + VIC_IRQ_STATUS);
295+ writel(0, base + VIC_ITCR);
296+ writel(~0, base + VIC_INT_SOFT_CLEAR);
297+
298+ /*
299+ * Make sure we clear all existing interrupts. The vector registers
300+ * in this cell are after the second block of general registers,
301+ * so we can address them using standard offsets, but only from
302+ * the second base address, which is 0x20 in the page
303+ */
304+ if (vic_2nd_block) {
305+ writel(0, base + VIC_PL190_VECT_ADDR);
306+ for (i = 0; i < 19; i++) {
307+ unsigned int value;
308+
309+ value = readl(base + VIC_PL190_VECT_ADDR);
310+ writel(value, base + VIC_PL190_VECT_ADDR);
311+ }
312+ /* ST has 16 vectors as well, but we don't enable them by now */
313+ for (i = 0; i < 16; i++) {
314+ void __iomem *reg = base + VIC_VECT_CNTL0 + (i * 4);
315+ writel(0, reg);
316+ }
317+
318+ writel(32, base + VIC_PL190_DEF_VECT_ADDR);
319+ }
320+
321+ for (i = 0; i < 32; i++) {
322+ if (vic_sources & (1 << i)) {
323+ unsigned int irq = irq_start + i;
324+
325+ set_irq_chip(irq, &vic_chip);
326+ set_irq_chip_data(irq, base);
327+ set_irq_handler(irq, handle_level_irq);
328+ set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
329+ }
330+ }
331+}
276332
277333 /**
278334 * vic_init - initialise a vectored interrupt controller
@@ -299,7 +355,7 @@ void __init vic_init(void __iomem *base, unsigned int irq_start, · 20 unmodified lines
299355
300356 switch(vendor) {
301357 case AMBA_VENDOR_ST:
302− vik_init_st(base, irq_start, vic_sources);
358+ vic_init_st(base, irq_start, vic_sources);
303359 return;
304360 default:
305361 printk(KERN_WARNING "VIC: unknown vendor, continuing anyways\n");
@@ -343,60 +399,3 @@ void __init vic_init(void __iomem *base, unsigned int irq_start, · 37 unmodified lines
343399
344400 vic_pm_register(base, irq_start, resume_sources);
345401 }
346−
347−/*
348− * The PL190 cell from ARM has been modified by ST to handle 64 interrupts.
349− * The original cell has 32 interrupts, while the modified one has 64,
350− * replocating two blocks 0x00..0x1f in 0x20..0x3f. In that case
351− * the probe function is called twice, with base set to offset 000
352− * and 020 within the page. We call this "second block".
353− */
354−static void __init vik_init_st(void __iomem *base, unsigned int irq_start,
355− u32 vic_sources)
356−{
357− unsigned int i;
358− int vic_2nd_block = ((unsigned long)base & ~PAGE_MASK) != 0;
359−
360− /* Disable all interrupts initially. */
361−
362− writel(0, base + VIC_INT_SELECT);
363− writel(0, base + VIC_INT_ENABLE);
364− writel(~0, base + VIC_INT_ENABLE_CLEAR);
365− writel(0, base + VIC_IRQ_STATUS);
366− writel(0, base + VIC_ITCR);
367− writel(~0, base + VIC_INT_SOFT_CLEAR);
368−
369− /*
370− * Make sure we clear all existing interrupts. The vector registers
371− * in this cell are after the second block of general registers,
372− * so we can address them using standard offsets, but only from
373− * the second base address, which is 0x20 in the page
374− */
375− if (vic_2nd_block) {
376− writel(0, base + VIC_PL190_VECT_ADDR);
377− for (i = 0; i < 19; i++) {
378− unsigned int value;
379−
380− value = readl(base + VIC_PL190_VECT_ADDR);
381− writel(value, base + VIC_PL190_VECT_ADDR);
382− }
383− /* ST has 16 vectors as well, but we don't enable them by now */
384− for (i = 0; i < 16; i++) {
385− void __iomem *reg = base + VIC_VECT_CNTL0 + (i * 4);
386− writel(0, reg);
387− }
388−
389− writel(32, base + VIC_PL190_DEF_VECT_ADDR);
390− }
391−
392− for (i = 0; i < 32; i++) {
393− if (vic_sources & (1 << i)) {
394− unsigned int irq = irq_start + i;
395−
396− set_irq_chip(irq, &vic_chip);
397− set_irq_chip_data(irq, base);
398− set_irq_handler(irq, handle_level_irq);
399− set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
400− }
401− }
402−}
arch/arm/configs/am3517_evm_defconfig+41−2
@@ -201,7 +201,7 @@ CONFIG_ARCH_OMAP3=y · 200 unmodified lines
201201 # CONFIG_OMAP_DEBUG_POWERDOMAIN is not set
202202 # CONFIG_OMAP_DEBUG_CLOCKDOMAIN is not set
203203 CONFIG_OMAP_RESET_CLOCKS=y
204−# CONFIG_OMAP_MUX is not set
204+CONFIG_OMAP_MUX=y
205205 # CONFIG_OMAP_MCBSP is not set
206206 # CONFIG_OMAP_MBOX_FWK is not set
207207 # CONFIG_OMAP_MPU_TIMER is not set
@@ -590,7 +590,46 @@ CONFIG_HW_RANDOM=y · 382 unmodified lines
590590 # CONFIG_R3964 is not set
591591 # CONFIG_RAW_DRIVER is not set
592592 # CONFIG_TCG_TPM is not set
593−# CONFIG_I2C is not set
593+CONFIG_I2C=y
594+CONFIG_I2C_BOARDINFO=y
595+CONFIG_I2C_COMPAT=y
596+CONFIG_I2C_CHARDEV=y
597+CONFIG_I2C_HELPER_AUTO=y
598+
599+#
600+# I2C Hardware Bus support
601+#
602+
603+#
604+# I2C system bus drivers (mostly embedded / system-on-chip)
605+#
606+# CONFIG_I2C_DESIGNWARE is not set
607+# CONFIG_I2C_GPIO is not set
608+# CONFIG_I2C_OCORES is not set
609+CONFIG_I2C_OMAP=y
610+# CONFIG_I2C_SIMTEC is not set
611+
612+#
613+# External I2C/SMBus adapter drivers
614+#
615+# CONFIG_I2C_PARPORT_LIGHT is not set
616+# CONFIG_I2C_TAOS_EVM is not set
617+# CONFIG_I2C_TINY_USB is not set
618+
619+#
620+# Other I2C/SMBus bus drivers
621+#
622+# CONFIG_I2C_PCA_PLATFORM is not set
623+# CONFIG_I2C_STUB is not set
624+
625+#
626+# Miscellaneous I2C Chip support
627+#
628+# CONFIG_SENSORS_TSL2550 is not set
629+# CONFIG_I2C_DEBUG_CORE is not set
630+# CONFIG_I2C_DEBUG_ALGO is not set
631+# CONFIG_I2C_DEBUG_BUS is not set
632+# CONFIG_I2C_DEBUG_CHIP is not set
594633 # CONFIG_SPI is not set
595634
596635 #
arch/arm/configs/at572d940hfek_defconfig+1640−0
@@ -0,0 +1,1640 @@
1+#
2+# Automatically generated make config: don't edit
3+# Linux kernel version: 2.6.28-rc7
4+# Fri Dec 5 10:58:47 2008
5+#
6+CONFIG_ARM=y
7+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8+CONFIG_GENERIC_GPIO=y
9+CONFIG_GENERIC_TIME=y
10+CONFIG_GENERIC_CLOCKEVENTS=y
11+CONFIG_MMU=y
12+# CONFIG_NO_IOPORT is not set
13+CONFIG_GENERIC_HARDIRQS=y
14+CONFIG_STACKTRACE_SUPPORT=y
15+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
16+CONFIG_LOCKDEP_SUPPORT=y
17+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
18+CONFIG_HARDIRQS_SW_RESEND=y
19+CONFIG_GENERIC_IRQ_PROBE=y
20+CONFIG_RWSEM_GENERIC_SPINLOCK=y
21+# CONFIG_ARCH_HAS_ILOG2_U32 is not set
22+# CONFIG_ARCH_HAS_ILOG2_U64 is not set
23+CONFIG_GENERIC_HWEIGHT=y
24+CONFIG_GENERIC_CALIBRATE_DELAY=y
25+CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
26+CONFIG_VECTORS_BASE=0xffff0000
27+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
28+
29+#
30+# General setup
31+#
32+CONFIG_EXPERIMENTAL=y
33+CONFIG_BROKEN_ON_SMP=y
34+CONFIG_LOCK_KERNEL=y
35+CONFIG_INIT_ENV_ARG_LIMIT=32
36+CONFIG_LOCALVERSION="-AT572D940HF"
37+# CONFIG_LOCALVERSION_AUTO is not set
38+CONFIG_SWAP=y
39+CONFIG_SYSVIPC=y
40+CONFIG_SYSVIPC_SYSCTL=y
41+CONFIG_POSIX_MQUEUE=y
42+CONFIG_BSD_PROCESS_ACCT=y
43+CONFIG_BSD_PROCESS_ACCT_V3=y
44+CONFIG_TASKSTATS=y
45+# CONFIG_TASK_DELAY_ACCT is not set
46+CONFIG_TASK_XACCT=y
47+CONFIG_TASK_IO_ACCOUNTING=y
48+CONFIG_AUDIT=y
49+# CONFIG_IKCONFIG is not set
50+CONFIG_LOG_BUF_SHIFT=17
51+CONFIG_CGROUPS=y
52+# CONFIG_CGROUP_DEBUG is not set
53+# CONFIG_CGROUP_NS is not set
54+# CONFIG_CGROUP_FREEZER is not set
55+# CONFIG_CGROUP_DEVICE is not set
56+CONFIG_GROUP_SCHED=y
57+CONFIG_FAIR_GROUP_SCHED=y
58+CONFIG_RT_GROUP_SCHED=y
59+# CONFIG_USER_SCHED is not set
60+CONFIG_CGROUP_SCHED=y
61+CONFIG_CGROUP_CPUACCT=y
62+# CONFIG_RESOURCE_COUNTERS is not set
63+CONFIG_SYSFS_DEPRECATED=y
64+CONFIG_SYSFS_DEPRECATED_V2=y
65+CONFIG_RELAY=y
66+# CONFIG_NAMESPACES is not set
67+CONFIG_BLK_DEV_INITRD=y
68+CONFIG_INITRAMFS_SOURCE=""
69+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
70+CONFIG_SYSCTL=y
71+CONFIG_EMBEDDED=y
72+CONFIG_UID16=y
73+CONFIG_SYSCTL_SYSCALL=y
74+CONFIG_KALLSYMS=y
75+# CONFIG_KALLSYMS_EXTRA_PASS is not set
76+CONFIG_HOTPLUG=y
77+CONFIG_PRINTK=y
78+CONFIG_BUG=y
79+CONFIG_ELF_CORE=y
80+CONFIG_COMPAT_BRK=y
81+CONFIG_BASE_FULL=y
82+CONFIG_FUTEX=y
83+CONFIG_ANON_INODES=y
84+CONFIG_EPOLL=y
85+CONFIG_SIGNALFD=y
86+CONFIG_TIMERFD=y
87+CONFIG_EVENTFD=y
88+CONFIG_SHMEM=y
89+CONFIG_AIO=y
90+CONFIG_VM_EVENT_COUNTERS=y
91+CONFIG_SLAB=y
92+# CONFIG_SLUB is not set
93+# CONFIG_SLOB is not set
94+CONFIG_PROFILING=y
95+CONFIG_MARKERS=y
96+CONFIG_OPROFILE=m
97+CONFIG_HAVE_OPROFILE=y
98+CONFIG_KPROBES=y
99+CONFIG_KRETPROBES=y
100+CONFIG_HAVE_KPROBES=y
101+CONFIG_HAVE_KRETPROBES=y
102+CONFIG_HAVE_CLK=y
103+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
104+CONFIG_SLABINFO=y
105+CONFIG_RT_MUTEXES=y
106+# CONFIG_TINY_SHMEM is not set
107+CONFIG_BASE_SMALL=0
108+CONFIG_MODULES=y
109+# CONFIG_MODULE_FORCE_LOAD is not set
110+CONFIG_MODULE_UNLOAD=y
111+# CONFIG_MODULE_FORCE_UNLOAD is not set
112+CONFIG_MODVERSIONS=y
113+CONFIG_MODULE_SRCVERSION_ALL=y
114+CONFIG_KMOD=y
115+CONFIG_BLOCK=y
116+# CONFIG_LBD is not set
117+CONFIG_BLK_DEV_IO_TRACE=y
118+# CONFIG_LSF is not set
119+# CONFIG_BLK_DEV_BSG is not set
120+# CONFIG_BLK_DEV_INTEGRITY is not set
121+
122+#
123+# IO Schedulers
124+#
125+CONFIG_IOSCHED_NOOP=y
126+CONFIG_IOSCHED_AS=y
127+CONFIG_IOSCHED_DEADLINE=y
128+CONFIG_IOSCHED_CFQ=y
129+# CONFIG_DEFAULT_AS is not set
130+# CONFIG_DEFAULT_DEADLINE is not set
131+CONFIG_DEFAULT_CFQ=y
132+# CONFIG_DEFAULT_NOOP is not set
133+CONFIG_DEFAULT_IOSCHED="cfq"
134+CONFIG_CLASSIC_RCU=y
135+# CONFIG_FREEZER is not set
136+
137+#
138+# System Type
139+#
140+# CONFIG_ARCH_AAEC2000 is not set
141+# CONFIG_ARCH_INTEGRATOR is not set
142+# CONFIG_ARCH_REALVIEW is not set
143+# CONFIG_ARCH_VERSATILE is not set
144+CONFIG_ARCH_AT91=y
145+# CONFIG_ARCH_CLPS7500 is not set
146+# CONFIG_ARCH_CLPS711X is not set
147+# CONFIG_ARCH_EBSA110 is not set
148+# CONFIG_ARCH_EP93XX is not set
149+# CONFIG_ARCH_FOOTBRIDGE is not set
150+# CONFIG_ARCH_NETX is not set
151+# CONFIG_ARCH_H720X is not set
152+# CONFIG_ARCH_IMX is not set
153+# CONFIG_ARCH_IOP13XX is not set
154+# CONFIG_ARCH_IOP32X is not set
155+# CONFIG_ARCH_IOP33X is not set
156+# CONFIG_ARCH_IXP23XX is not set
157+# CONFIG_ARCH_IXP2000 is not set
158+# CONFIG_ARCH_IXP4XX is not set
159+# CONFIG_ARCH_L7200 is not set
160+# CONFIG_ARCH_KIRKWOOD is not set
161+# CONFIG_ARCH_KS8695 is not set
162+# CONFIG_ARCH_NS9XXX is not set
163+# CONFIG_ARCH_LOKI is not set
164+# CONFIG_ARCH_MV78XX0 is not set
165+# CONFIG_ARCH_MXC is not set
166+# CONFIG_ARCH_ORION5X is not set
167+# CONFIG_ARCH_PNX4008 is not set
168+# CONFIG_ARCH_PXA is not set
169+# CONFIG_ARCH_RPC is not set
170+# CONFIG_ARCH_SA1100 is not set
171+# CONFIG_ARCH_S3C2410 is not set
172+# CONFIG_ARCH_SHARK is not set
173+# CONFIG_ARCH_LH7A40X is not set
174+# CONFIG_ARCH_DAVINCI is not set
175+# CONFIG_ARCH_OMAP is not set
176+# CONFIG_ARCH_MSM is not set
177+
178+#
179+# Boot options
180+#
181+
182+#
183+# Power management
184+#
185+
186+#
187+# Atmel AT91 System-on-Chip
188+#
189+# CONFIG_ARCH_AT91RM9200 is not set
190+# CONFIG_ARCH_AT91SAM9260 is not set
191+# CONFIG_ARCH_AT91SAM9261 is not set
192+# CONFIG_ARCH_AT91SAM9263 is not set
193+# CONFIG_ARCH_AT91SAM9RL is not set
194+# CONFIG_ARCH_AT91SAM9G20 is not set
195+# CONFIG_ARCH_AT91CAP9 is not set
196+# CONFIG_ARCH_AT91X40 is not set
197+CONFIG_ARCH_AT572D940HF=y
198+CONFIG_AT91_PMC_UNIT=y
199+
200+#
201+# AT572D940HF Board Type
202+#
203+CONFIG_MACH_AT572D940HFEB=y
204+
205+#
206+# AT91 Board Options
207+#
208+# CONFIG_MTD_AT91_DATAFLASH_CARD is not set
209+# CONFIG_MTD_NAND_ATMEL_BUSWIDTH_16 is not set
210+CONFIG_NUM_SERIAL=3
211+
212+#
213+# AT91 Feature Selections
214+#
215+CONFIG_AT91_PROGRAMMABLE_CLOCKS=y
216+CONFIG_AT91_TIMER_HZ=100
217+CONFIG_AT91_EARLY_DBGU=y
218+# CONFIG_AT91_EARLY_USART0 is not set
219+# CONFIG_AT91_EARLY_USART1 is not set
220+# CONFIG_AT91_EARLY_USART2 is not set
221+# CONFIG_AT91_EARLY_USART3 is not set
222+# CONFIG_AT91_EARLY_USART4 is not set
223+# CONFIG_AT91_EARLY_USART5 is not set
224+
225+#
226+# Processor Type
227+#
228+CONFIG_CPU_32=y
229+CONFIG_CPU_ARM926T=y
230+CONFIG_CPU_32v5=y
231+CONFIG_CPU_ABRT_EV5TJ=y
232+CONFIG_CPU_PABRT_NOIFAR=y
233+CONFIG_CPU_CACHE_VIVT=y
234+CONFIG_CPU_COPY_V4WB=y
235+CONFIG_CPU_TLB_V4WBI=y
236+CONFIG_CPU_CP15=y
237+CONFIG_CPU_CP15_MMU=y
238+
239+#
240+# Processor Features
241+#
242+CONFIG_ARM_THUMB=y
243+# CONFIG_CPU_ICACHE_DISABLE is not set
244+# CONFIG_CPU_DCACHE_DISABLE is not set
245+# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
246+# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
247+# CONFIG_OUTER_CACHE is not set
248+
249+#
250+# Bus support
251+#
252+# CONFIG_PCI_SYSCALL is not set
253+# CONFIG_ARCH_SUPPORTS_MSI is not set
254+# CONFIG_PCCARD is not set
255+
256+#
257+# Kernel Features
258+#
259+CONFIG_TICK_ONESHOT=y
260+CONFIG_NO_HZ=y
261+CONFIG_HIGH_RES_TIMERS=y
262+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
263+CONFIG_VMSPLIT_3G=y
264+# CONFIG_VMSPLIT_2G is not set
265+# CONFIG_VMSPLIT_1G is not set
266+CONFIG_PAGE_OFFSET=0xC0000000
267+CONFIG_PREEMPT=y
268+CONFIG_HZ=100
269+# CONFIG_AEABI is not set
270+CONFIG_ARCH_FLATMEM_HAS_HOLES=y
271+# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
272+# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
273+CONFIG_SELECT_MEMORY_MODEL=y
274+CONFIG_FLATMEM_MANUAL=y
275+# CONFIG_DISCONTIGMEM_MANUAL is not set
276+# CONFIG_SPARSEMEM_MANUAL is not set
277+CONFIG_FLATMEM=y
278+CONFIG_FLAT_NODE_MEM_MAP=y
279+CONFIG_PAGEFLAGS_EXTENDED=y
280+CONFIG_SPLIT_PTLOCK_CPUS=4096
281+CONFIG_RESOURCES_64BIT=y
282+# CONFIG_PHYS_ADDR_T_64BIT is not set
283+CONFIG_ZONE_DMA_FLAG=0
284+CONFIG_VIRT_TO_BUS=y
285+CONFIG_UNEVICTABLE_LRU=y
286+# CONFIG_LEDS is not set
287+CONFIG_ALIGNMENT_TRAP=y
288+
289+#
290+# Boot options
291+#
292+CONFIG_ZBOOT_ROM_TEXT=0
293+CONFIG_ZBOOT_ROM_BSS=0
294+CONFIG_CMDLINE="mem=48M console=ttyS0 initrd=0x21100000,3145728 root=/dev/ram0 rw ip=172.16.1.181"
295+# CONFIG_XIP_KERNEL is not set
296+CONFIG_KEXEC=y
297+CONFIG_ATAGS_PROC=y
298+
299+#
300+# CPU Power Management
301+#
302+# CONFIG_CPU_IDLE is not set
303+
304+#
305+# Floating point emulation
306+#
307+
308+#
309+# At least one emulation must be selected
310+#
311+CONFIG_FPE_NWFPE=y
312+CONFIG_FPE_NWFPE_XP=y
313+# CONFIG_FPE_FASTFPE is not set
314+# CONFIG_VFP is not set
315+
316+#
317+# Userspace binary formats
318+#
319+CONFIG_BINFMT_ELF=y
320+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
321+CONFIG_HAVE_AOUT=y
322+# CONFIG_BINFMT_AOUT is not set
323+# CONFIG_BINFMT_MISC is not set
324+# CONFIG_ARTHUR is not set
325+
326+#
327+# Power management options
328+#
329+# CONFIG_PM is not set
330+CONFIG_ARCH_SUSPEND_POSSIBLE=y
331+CONFIG_NET=y
332+
333+#
334+# Networking options
335+#
336+CONFIG_PACKET=m
337+CONFIG_PACKET_MMAP=y
338+CONFIG_UNIX=y
339+# CONFIG_NET_KEY is not set
340+CONFIG_INET=y
341+# CONFIG_IP_MULTICAST is not set
342+# CONFIG_IP_ADVANCED_ROUTER is not set
343+CONFIG_IP_FIB_HASH=y
344+# CONFIG_IP_PNP is not set
345+# CONFIG_NET_IPIP is not set
346+# CONFIG_NET_IPGRE is not set
347+# CONFIG_ARPD is not set
348+# CONFIG_SYN_COOKIES is not set
349+# CONFIG_INET_AH is not set
350+# CONFIG_INET_ESP is not set
351+# CONFIG_INET_IPCOMP is not set
352+# CONFIG_INET_XFRM_TUNNEL is not set
353+# CONFIG_INET_TUNNEL is not set
354+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
355+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
356+# CONFIG_INET_XFRM_MODE_BEET is not set
357+# CONFIG_INET_LRO is not set
358+# CONFIG_INET_DIAG is not set
359+# CONFIG_TCP_CONG_ADVANCED is not set
360+CONFIG_TCP_CONG_CUBIC=y
361+CONFIG_DEFAULT_TCP_CONG="cubic"
362+# CONFIG_TCP_MD5SIG is not set
363+# CONFIG_IPV6 is not set
364+# CONFIG_NETWORK_SECMARK is not set
365+# CONFIG_NETFILTER is not set
366+# CONFIG_IP_DCCP is not set
367+CONFIG_IP_SCTP=m
368+# CONFIG_SCTP_DBG_MSG is not set
369+# CONFIG_SCTP_DBG_OBJCNT is not set
370+# CONFIG_SCTP_HMAC_NONE is not set
371+# CONFIG_SCTP_HMAC_SHA1 is not set
372+CONFIG_SCTP_HMAC_MD5=y
373+# CONFIG_TIPC is not set
374+# CONFIG_ATM is not set
375+# CONFIG_BRIDGE is not set
376+# CONFIG_NET_DSA is not set
377+# CONFIG_VLAN_8021Q is not set
378+# CONFIG_DECNET is not set
379+# CONFIG_LLC2 is not set
380+# CONFIG_IPX is not set
381+# CONFIG_ATALK is not set
382+# CONFIG_X25 is not set
383+# CONFIG_LAPB is not set
384+# CONFIG_ECONET is not set
385+# CONFIG_WAN_ROUTER is not set
386+# CONFIG_NET_SCHED is not set
387+
388+#
389+# Network testing
390+#
391+CONFIG_NET_PKTGEN=m
392+CONFIG_NET_TCPPROBE=m
393+# CONFIG_HAMRADIO is not set
394+CONFIG_CAN=m
395+CONFIG_CAN_RAW=m
396+CONFIG_CAN_BCM=m
397+
398+#
399+# CAN Device Drivers
400+#
401+CONFIG_CAN_VCAN=m
402+CONFIG_CAN_DEBUG_DEVICES=y
403+# CONFIG_IRDA is not set
404+# CONFIG_BT is not set
405+# CONFIG_AF_RXRPC is not set
406+# CONFIG_PHONET is not set
407+CONFIG_WIRELESS=y
408+# CONFIG_CFG80211 is not set
409+CONFIG_WIRELESS_OLD_REGULATORY=y
410+CONFIG_WIRELESS_EXT=y
411+CONFIG_WIRELESS_EXT_SYSFS=y
412+# CONFIG_MAC80211 is not set
413+CONFIG_IEEE80211=m
414+# CONFIG_IEEE80211_DEBUG is not set
415+CONFIG_IEEE80211_CRYPT_WEP=m
416+# CONFIG_IEEE80211_CRYPT_CCMP is not set
417+# CONFIG_IEEE80211_CRYPT_TKIP is not set
418+# CONFIG_RFKILL is not set
419+# CONFIG_NET_9P is not set
420+
421+#
422+# Device Drivers
423+#
424+
425+#
426+# Generic Driver Options
427+#
428+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
429+CONFIG_STANDALONE=y
430+CONFIG_PREVENT_FIRMWARE_BUILD=y
431+CONFIG_FW_LOADER=y
432+CONFIG_FIRMWARE_IN_KERNEL=y
433+CONFIG_EXTRA_FIRMWARE=""
434+# CONFIG_SYS_HYPERVISOR is not set
435+CONFIG_CONNECTOR=m
436+CONFIG_MTD=m
437+CONFIG_MTD_DEBUG=y
438+CONFIG_MTD_DEBUG_VERBOSE=1
439+CONFIG_MTD_CONCAT=m
440+CONFIG_MTD_PARTITIONS=y
441+# CONFIG_MTD_REDBOOT_PARTS is not set
442+# CONFIG_MTD_AFS_PARTS is not set
443+# CONFIG_MTD_AR7_PARTS is not set
444+
445+#
446+# User Modules And Translation Layers
447+#
448+CONFIG_MTD_CHAR=m
449+CONFIG_MTD_BLKDEVS=m
450+CONFIG_MTD_BLOCK=m
451+CONFIG_MTD_BLOCK_RO=m
452+CONFIG_FTL=m
453+CONFIG_NFTL=m
454+CONFIG_NFTL_RW=y
455+CONFIG_INFTL=m
456+CONFIG_RFD_FTL=m
457+CONFIG_SSFDC=m
458+CONFIG_MTD_OOPS=m
459+
460+#
461+# RAM/ROM/Flash chip drivers
462+#
463+CONFIG_MTD_CFI=m
464+CONFIG_MTD_JEDECPROBE=m
465+CONFIG_MTD_GEN_PROBE=m
466+# CONFIG_MTD_CFI_ADV_OPTIONS is not set
467+CONFIG_MTD_MAP_BANK_WIDTH_1=y
468+CONFIG_MTD_MAP_BANK_WIDTH_2=y
469+CONFIG_MTD_MAP_BANK_WIDTH_4=y
470+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
471+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
472+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
473+CONFIG_MTD_CFI_I1=y
474+CONFIG_MTD_CFI_I2=y
475+# CONFIG_MTD_CFI_I4 is not set
476+# CONFIG_MTD_CFI_I8 is not set
477+CONFIG_MTD_CFI_INTELEXT=m
478+CONFIG_MTD_CFI_AMDSTD=m
479+CONFIG_MTD_CFI_STAA=m
480+CONFIG_MTD_CFI_UTIL=m
481+CONFIG_MTD_RAM=m
482+CONFIG_MTD_ROM=m
483+CONFIG_MTD_ABSENT=m
484+
485+#
486+# Mapping drivers for chip access
487+#
488+CONFIG_MTD_COMPLEX_MAPPINGS=y
489+CONFIG_MTD_PHYSMAP=m
490+CONFIG_MTD_PHYSMAP_START=0x8000000
491+CONFIG_MTD_PHYSMAP_LEN=0x4000000
492+CONFIG_MTD_PHYSMAP_BANKWIDTH=2
493+# CONFIG_MTD_ARM_INTEGRATOR is not set
494+# CONFIG_MTD_IMPA7 is not set
495+CONFIG_MTD_PLATRAM=m
496+
497+#
498+# Self-contained MTD device drivers
499+#
500+CONFIG_MTD_DATAFLASH=m
501+# CONFIG_MTD_DATAFLASH_WRITE_VERIFY is not set
502+# CONFIG_MTD_DATAFLASH_OTP is not set
503+CONFIG_MTD_M25P80=m
504+CONFIG_M25PXX_USE_FAST_READ=y
505+CONFIG_MTD_SLRAM=m
506+CONFIG_MTD_PHRAM=m
507+CONFIG_MTD_MTDRAM=m
508+CONFIG_MTDRAM_TOTAL_SIZE=4096
509+CONFIG_MTDRAM_ERASE_SIZE=128
510+CONFIG_MTD_BLOCK2MTD=m
511+
512+#
513+# Disk-On-Chip Device Drivers
514+#
515+# CONFIG_MTD_DOC2000 is not set
516+# CONFIG_MTD_DOC2001 is not set
517+# CONFIG_MTD_DOC2001PLUS is not set
518+CONFIG_MTD_NAND=m
519+CONFIG_MTD_NAND_VERIFY_WRITE=y
520+# CONFIG_MTD_NAND_ECC_SMC is not set
521+# CONFIG_MTD_NAND_MUSEUM_IDS is not set
522+# CONFIG_MTD_NAND_GPIO is not set
523+CONFIG_MTD_NAND_IDS=m
524+CONFIG_MTD_NAND_DISKONCHIP=m
525+# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set
526+CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0
527+# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set
528+# CONFIG_MTD_NAND_ATMEL is not set
529+CONFIG_MTD_NAND_NANDSIM=m
530+CONFIG_MTD_NAND_PLATFORM=m
531+CONFIG_MTD_ALAUDA=m
532+# CONFIG_MTD_ONENAND is not set
533+
534+#
535+# UBI - Unsorted block images
536+#
537+CONFIG_MTD_UBI=m
538+CONFIG_MTD_UBI_WL_THRESHOLD=4096
539+CONFIG_MTD_UBI_BEB_RESERVE=1
540+CONFIG_MTD_UBI_GLUEBI=y
541+
542+#
543+# UBI debugging options
544+#
545+# CONFIG_MTD_UBI_DEBUG is not set
546+# CONFIG_PARPORT is not set
547+CONFIG_BLK_DEV=y
548+# CONFIG_BLK_DEV_COW_COMMON is not set
549+CONFIG_BLK_DEV_LOOP=y
550+CONFIG_BLK_DEV_CRYPTOLOOP=m
551+CONFIG_BLK_DEV_NBD=m
552+# CONFIG_BLK_DEV_UB is not set
553+CONFIG_BLK_DEV_RAM=y
554+CONFIG_BLK_DEV_RAM_COUNT=16
555+CONFIG_BLK_DEV_RAM_SIZE=65536
556+# CONFIG_BLK_DEV_XIP is not set
557+# CONFIG_CDROM_PKTCDVD is not set
558+# CONFIG_ATA_OVER_ETH is not set
559+CONFIG_MISC_DEVICES=y
560+CONFIG_ATMEL_TCLIB=y
561+CONFIG_ATMEL_TCB_CLKSRC=y
562+CONFIG_ATMEL_TCB_CLKSRC_BLOCK=0
563+# CONFIG_EEPROM_93CX6 is not set
564+# CONFIG_ICS932S401 is not set
565+CONFIG_ATMEL_SSC=m
566+# CONFIG_ENCLOSURE_SERVICES is not set
567+# CONFIG_C2PORT is not set
568+CONFIG_HAVE_IDE=y
569+# CONFIG_IDE is not set
570+
571+#
572+# SCSI device support
573+#
574+CONFIG_RAID_ATTRS=m
575+CONFIG_SCSI=m
576+CONFIG_SCSI_DMA=y
577+CONFIG_SCSI_TGT=m
578+# CONFIG_SCSI_NETLINK is not set
579+# CONFIG_SCSI_PROC_FS is not set
580+
581+#
582+# SCSI support type (disk, tape, CD-ROM)
583+#
584+CONFIG_BLK_DEV_SD=m
585+# CONFIG_CHR_DEV_ST is not set
586+# CONFIG_CHR_DEV_OSST is not set
587+CONFIG_BLK_DEV_SR=m
588+# CONFIG_BLK_DEV_SR_VENDOR is not set
589+CONFIG_CHR_DEV_SG=m
590+CONFIG_CHR_DEV_SCH=m
591+
592+#
593+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
594+#
595+CONFIG_SCSI_MULTI_LUN=y
596+CONFIG_SCSI_CONSTANTS=y
597+CONFIG_SCSI_LOGGING=y
598+CONFIG_SCSI_SCAN_ASYNC=y
599+CONFIG_SCSI_WAIT_SCAN=m
600+
601+#
602+# SCSI Transports
603+#
604+# CONFIG_SCSI_SPI_ATTRS is not set
605+# CONFIG_SCSI_FC_ATTRS is not set
606+CONFIG_SCSI_ISCSI_ATTRS=m
607+# CONFIG_SCSI_SAS_LIBSAS is not set
608+# CONFIG_SCSI_SRP_ATTRS is not set
609+CONFIG_SCSI_LOWLEVEL=y
610+# CONFIG_ISCSI_TCP is not set
611+# CONFIG_SCSI_DEBUG is not set
612+# CONFIG_SCSI_DH is not set
613+# CONFIG_ATA is not set
614+# CONFIG_MD is not set
615+CONFIG_NETDEVICES=y
616+CONFIG_DUMMY=m
617+CONFIG_BONDING=m
618+CONFIG_MACVLAN=m
619+CONFIG_EQUALIZER=m
620+CONFIG_TUN=m
621+CONFIG_VETH=m
622+CONFIG_PHYLIB=y
623+
624+#
625+# MII PHY device drivers
626+#
627+CONFIG_MARVELL_PHY=m
628+CONFIG_DAVICOM_PHY=m
629+CONFIG_QSEMI_PHY=m
630+CONFIG_LXT_PHY=m
631+CONFIG_CICADA_PHY=m
632+CONFIG_VITESSE_PHY=m
633+CONFIG_SMSC_PHY=m
634+CONFIG_BROADCOM_PHY=m
635+CONFIG_ICPLUS_PHY=m
636+# CONFIG_REALTEK_PHY is not set
637+# CONFIG_FIXED_PHY is not set
638+CONFIG_MDIO_BITBANG=m
639+CONFIG_NET_ETHERNET=y
640+CONFIG_MII=m
641+CONFIG_MACB=y
642+# CONFIG_AX88796 is not set
643+# CONFIG_SMC91X is not set
644+# CONFIG_DM9000 is not set
645+# CONFIG_ENC28J60 is not set
646+# CONFIG_SMC911X is not set
647+# CONFIG_IBM_NEW_EMAC_ZMII is not set
648+# CONFIG_IBM_NEW_EMAC_RGMII is not set
649+# CONFIG_IBM_NEW_EMAC_TAH is not set
650+# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
651+# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
652+# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
653+# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
654+# CONFIG_B44 is not set
655+# CONFIG_NETDEV_1000 is not set
656+# CONFIG_NETDEV_10000 is not set
657+
658+#
659+# Wireless LAN
660+#
661+CONFIG_WLAN_PRE80211=y
662+CONFIG_STRIP=m
663+CONFIG_WLAN_80211=y
664+CONFIG_LIBERTAS=m
665+CONFIG_LIBERTAS_USB=m
666+CONFIG_LIBERTAS_SDIO=m
667+# CONFIG_LIBERTAS_DEBUG is not set
668+CONFIG_USB_ZD1201=m
669+# CONFIG_USB_NET_RNDIS_WLAN is not set
670+# CONFIG_IWLWIFI_LEDS is not set
671+CONFIG_HOSTAP=m
672+CONFIG_HOSTAP_FIRMWARE=y
673+CONFIG_HOSTAP_FIRMWARE_NVRAM=y
674+
675+#
676+# USB Network Adapters
677+#
678+CONFIG_USB_CATC=m
679+CONFIG_USB_KAWETH=m
680+CONFIG_USB_PEGASUS=m
681+CONFIG_USB_RTL8150=m
682+CONFIG_USB_USBNET=m
683+CONFIG_USB_NET_AX8817X=m
684+CONFIG_USB_NET_CDCETHER=m
685+CONFIG_USB_NET_DM9601=m
686+# CONFIG_USB_NET_SMSC95XX is not set
687+CONFIG_USB_NET_GL620A=m
688+CONFIG_USB_NET_NET1080=m
689+CONFIG_USB_NET_PLUSB=m
690+CONFIG_USB_NET_MCS7830=m
691+CONFIG_USB_NET_RNDIS_HOST=m
692+CONFIG_USB_NET_CDC_SUBSET=m
693+CONFIG_USB_ALI_M5632=y
694+CONFIG_USB_AN2720=y
695+CONFIG_USB_BELKIN=y
696+CONFIG_USB_ARMLINUX=y
697+CONFIG_USB_EPSON2888=y
698+CONFIG_USB_KC2190=y
699+# CONFIG_USB_NET_ZAURUS is not set
700+# CONFIG_WAN is not set
701+# CONFIG_PPP is not set
702+# CONFIG_SLIP is not set
703+# CONFIG_NETCONSOLE is not set
704+# CONFIG_NETPOLL is not set
705+# CONFIG_NET_POLL_CONTROLLER is not set
706+# CONFIG_ISDN is not set
707+
708+#
709+# Input device support
710+#
711+CONFIG_INPUT=y
712+# CONFIG_INPUT_FF_MEMLESS is not set
713+CONFIG_INPUT_POLLDEV=m
714+
715+#
716+# Userland interfaces
717+#
718+CONFIG_INPUT_MOUSEDEV=m
719+CONFIG_INPUT_MOUSEDEV_PSAUX=y
720+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
721+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
722+# CONFIG_INPUT_JOYDEV is not set
723+CONFIG_INPUT_EVDEV=m
724+CONFIG_INPUT_EVBUG=m
725+
726+#
727+# Input Device Drivers
728+#
729+CONFIG_INPUT_KEYBOARD=y
730+CONFIG_KEYBOARD_ATKBD=y
731+CONFIG_KEYBOARD_SUNKBD=m
732+CONFIG_KEYBOARD_LKKBD=m
733+CONFIG_KEYBOARD_XTKBD=m
734+CONFIG_KEYBOARD_NEWTON=m
735+CONFIG_KEYBOARD_STOWAWAY=m
736+CONFIG_KEYBOARD_GPIO=m
737+CONFIG_INPUT_MOUSE=y
738+CONFIG_MOUSE_PS2=m
739+CONFIG_MOUSE_PS2_ALPS=y
740+CONFIG_MOUSE_PS2_LOGIPS2PP=y
741+CONFIG_MOUSE_PS2_SYNAPTICS=y
742+CONFIG_MOUSE_PS2_LIFEBOOK=y
743+CONFIG_MOUSE_PS2_TRACKPOINT=y
744+# CONFIG_MOUSE_PS2_ELANTECH is not set
745+# CONFIG_MOUSE_PS2_TOUCHKIT is not set
746+CONFIG_MOUSE_SERIAL=m
747+CONFIG_MOUSE_APPLETOUCH=m
748+# CONFIG_MOUSE_BCM5974 is not set
749+CONFIG_MOUSE_VSXXXAA=m
750+CONFIG_MOUSE_GPIO=m
751+# CONFIG_INPUT_JOYSTICK is not set
752+# CONFIG_INPUT_TABLET is not set
753+# CONFIG_INPUT_TOUCHSCREEN is not set
754+CONFIG_INPUT_MISC=y
755+# CONFIG_INPUT_ATI_REMOTE is not set
756+# CONFIG_INPUT_ATI_REMOTE2 is not set
757+# CONFIG_INPUT_KEYSPAN_REMOTE is not set
758+# CONFIG_INPUT_POWERMATE is not set
759+# CONFIG_INPUT_YEALINK is not set
760+# CONFIG_INPUT_CM109 is not set
761+CONFIG_INPUT_UINPUT=m
762+
763+#
764+# Hardware I/O ports
765+#
766+CONFIG_SERIO=y
767+CONFIG_SERIO_SERPORT=m
768+CONFIG_SERIO_LIBPS2=y
769+CONFIG_SERIO_RAW=m
770+# CONFIG_GAMEPORT is not set
771+
772+#
773+# Character devices
774+#
775+CONFIG_VT=y
776+CONFIG_CONSOLE_TRANSLATIONS=y
777+CONFIG_VT_CONSOLE=y
778+CONFIG_HW_CONSOLE=y
779+CONFIG_VT_HW_CONSOLE_BINDING=y
780+CONFIG_DEVKMEM=y
781+CONFIG_SERIAL_NONSTANDARD=y
782+CONFIG_N_HDLC=m
783+# CONFIG_RISCOM8 is not set
784+CONFIG_SPECIALIX=m
785+CONFIG_RIO=m
786+# CONFIG_RIO_OLDPCI is not set
787+CONFIG_STALDRV=y
788+
789+#
790+# Serial drivers
791+#
792+# CONFIG_SERIAL_8250 is not set
793+
794+#
795+# Non-8250 serial port support
796+#
797+CONFIG_SERIAL_ATMEL=y
798+CONFIG_SERIAL_ATMEL_CONSOLE=y
799+CONFIG_SERIAL_ATMEL_PDC=y
800+# CONFIG_SERIAL_ATMEL_TTYAT is not set
801+CONFIG_SERIAL_CORE=y
802+CONFIG_SERIAL_CORE_CONSOLE=y
803+CONFIG_UNIX98_PTYS=y
804+CONFIG_LEGACY_PTYS=y
805+CONFIG_LEGACY_PTY_COUNT=256
806+CONFIG_IPMI_HANDLER=m
807+# CONFIG_IPMI_PANIC_EVENT is not set
808+CONFIG_IPMI_DEVICE_INTERFACE=m
809+CONFIG_IPMI_SI=m
810+CONFIG_IPMI_WATCHDOG=m
811+CONFIG_IPMI_POWEROFF=m
812+CONFIG_HW_RANDOM=y
813+CONFIG_NVRAM=m
814+CONFIG_R3964=m
815+CONFIG_RAW_DRIVER=m
816+CONFIG_MAX_RAW_DEVS=256
817+CONFIG_TCG_TPM=m
818+CONFIG_TCG_NSC=m
819+CONFIG_TCG_ATMEL=m
820+CONFIG_I2C=m
821+CONFIG_I2C_BOARDINFO=y
822+CONFIG_I2C_CHARDEV=m
823+CONFIG_I2C_HELPER_AUTO=y
824+
825+#
826+# I2C Hardware Bus support
827+#
828+
829+#
830+# I2C system bus drivers (mostly embedded / system-on-chip)
831+#
832+# CONFIG_I2C_GPIO is not set
833+# CONFIG_I2C_OCORES is not set
834+# CONFIG_I2C_SIMTEC is not set
835+
836+#
837+# External I2C/SMBus adapter drivers
838+#
839+# CONFIG_I2C_PARPORT_LIGHT is not set
840+# CONFIG_I2C_TAOS_EVM is not set
841+# CONFIG_I2C_TINY_USB is not set
842+
843+#
844+# Other I2C/SMBus bus drivers
845+#
846+# CONFIG_I2C_PCA_PLATFORM is not set
847+# CONFIG_I2C_STUB is not set
848+
849+#
850+# Miscellaneous I2C Chip support
851+#
852+CONFIG_DS1682=m
853+# CONFIG_AT24 is not set
854+CONFIG_SENSORS_EEPROM=m
855+CONFIG_SENSORS_PCF8574=m
856+# CONFIG_PCF8575 is not set
857+# CONFIG_SENSORS_PCA9539 is not set
858+CONFIG_SENSORS_PCF8591=m
859+CONFIG_SENSORS_MAX6875=m
860+CONFIG_SENSORS_TSL2550=m
861+# CONFIG_I2C_DEBUG_CORE is not set
862+# CONFIG_I2C_DEBUG_ALGO is not set
863+# CONFIG_I2C_DEBUG_BUS is not set
864+# CONFIG_I2C_DEBUG_CHIP is not set
865+CONFIG_SPI=y
866+CONFIG_SPI_MASTER=y
867+
868+#
869+# SPI Master Controller Drivers
870+#
871+CONFIG_SPI_ATMEL=y
872+CONFIG_SPI_BITBANG=m
873+
874+#
875+# SPI Protocol Masters
876+#
877+CONFIG_SPI_AT25=m
878+CONFIG_SPI_SPIDEV=m
879+# CONFIG_SPI_TLE62X0 is not set
880+# CONFIG_W1 is not set
881+# CONFIG_POWER_SUPPLY is not set
882+# CONFIG_HWMON is not set
883+# CONFIG_THERMAL is not set
884+# CONFIG_THERMAL_HWMON is not set
885+# CONFIG_WATCHDOG is not set
886+CONFIG_SSB_POSSIBLE=y
887+
888+#
889+# Sonics Silicon Backplane
890+#
891+# CONFIG_SSB is not set
892+
893+#
894+# Multifunction device drivers
895+#
896+# CONFIG_MFD_CORE is not set
897+# CONFIG_MFD_SM501 is not set
898+# CONFIG_HTC_PASIC3 is not set
899+# CONFIG_MFD_TMIO is not set
900+# CONFIG_MFD_T7L66XB is not set
901+# CONFIG_MFD_TC6387XB is not set
902+# CONFIG_MFD_WM8400 is not set
903+# CONFIG_MFD_WM8350_I2C is not set
904+
905+#
906+# Multimedia devices
907+#
908+
909+#
910+# Multimedia core support
911+#
912+# CONFIG_VIDEO_DEV is not set
913+# CONFIG_DVB_CORE is not set
914+# CONFIG_VIDEO_MEDIA is not set
915+
916+#
917+# Multimedia drivers
918+#
919+# CONFIG_DAB is not set
920+
921+#
922+# Graphics support
923+#
924+# CONFIG_VGASTATE is not set
925+# CONFIG_VIDEO_OUTPUT_CONTROL is not set
926+# CONFIG_FB is not set
927+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
928+
929+#
930+# Display device support
931+#
932+# CONFIG_DISPLAY_SUPPORT is not set
933+
934+#
935+# Console display driver support
936+#
937+# CONFIG_VGA_CONSOLE is not set
938+CONFIG_DUMMY_CONSOLE=y
939+CONFIG_SOUND=m
940+CONFIG_SOUND_OSS_CORE=y
941+CONFIG_SND=m
942+CONFIG_SND_TIMER=m
943+CONFIG_SND_PCM=m
944+CONFIG_SND_HWDEP=m
945+CONFIG_SND_RAWMIDI=m
946+CONFIG_SND_SEQUENCER=m
947+CONFIG_SND_SEQ_DUMMY=m
948+CONFIG_SND_OSSEMUL=y
949+CONFIG_SND_MIXER_OSS=m
950+CONFIG_SND_PCM_OSS=m
951+# CONFIG_SND_PCM_OSS_PLUGINS is not set
952+CONFIG_SND_SEQUENCER_OSS=y
953+CONFIG_SND_DYNAMIC_MINORS=y
954+CONFIG_SND_SUPPORT_OLD_API=y
955+# CONFIG_SND_VERBOSE_PROCFS is not set
956+# CONFIG_SND_VERBOSE_PRINTK is not set
957+# CONFIG_SND_DEBUG is not set
958+CONFIG_SND_DRIVERS=y
959+CONFIG_SND_DUMMY=m
960+CONFIG_SND_VIRMIDI=m
961+# CONFIG_SND_MTPAV is not set
962+# CONFIG_SND_SERIAL_U16550 is not set
963+# CONFIG_SND_MPU401 is not set
964+CONFIG_SND_ARM=y
965+CONFIG_SND_SPI=y
966+# CONFIG_SND_AT73C213 is not set
967+CONFIG_SND_USB=y
968+CONFIG_SND_USB_AUDIO=m
969+CONFIG_SND_USB_CAIAQ=m
970+CONFIG_SND_USB_CAIAQ_INPUT=y
971+# CONFIG_SND_SOC is not set
972+# CONFIG_SOUND_PRIME is not set
973+CONFIG_HID_SUPPORT=y
974+CONFIG_HID=m
975+# CONFIG_HID_DEBUG is not set
976+CONFIG_HIDRAW=y
977+
978+#
979+# USB Input Devices
980+#
981+CONFIG_USB_HID=m
982+# CONFIG_HID_PID is not set
983+CONFIG_USB_HIDDEV=y
984+
985+#
986+# USB HID Boot Protocol drivers
987+#
988+CONFIG_USB_KBD=m
989+CONFIG_USB_MOUSE=m
990+
991+#
992+# Special HID drivers
993+#
994+CONFIG_HID_COMPAT=y
995+CONFIG_HID_A4TECH=m
996+CONFIG_HID_APPLE=m
997+CONFIG_HID_BELKIN=m
998+CONFIG_HID_BRIGHT=m
999+CONFIG_HID_CHERRY=m
1000+CONFIG_HID_CHICONY=m
1001+CONFIG_HID_CYPRESS=m
1002+CONFIG_HID_DELL=m
1003+CONFIG_HID_EZKEY=m
1004+CONFIG_HID_GYRATION=m
1005+CONFIG_HID_LOGITECH=m
1006+# CONFIG_LOGITECH_FF is not set
1007+# CONFIG_LOGIRUMBLEPAD2_FF is not set
1008+CONFIG_HID_MICROSOFT=m
1009+CONFIG_HID_MONTEREY=m
1010+CONFIG_HID_PANTHERLORD=m
1011+# CONFIG_PANTHERLORD_FF is not set
1012+CONFIG_HID_PETALYNX=m
1013+CONFIG_HID_SAMSUNG=m
1014+CONFIG_HID_SONY=m
1015+CONFIG_HID_SUNPLUS=m
1016+# CONFIG_THRUSTMASTER_FF is not set
1017+# CONFIG_ZEROPLUS_FF is not set
1018+CONFIG_USB_SUPPORT=y
1019+CONFIG_USB_ARCH_HAS_HCD=y
1020+CONFIG_USB_ARCH_HAS_OHCI=y
1021+# CONFIG_USB_ARCH_HAS_EHCI is not set
1022+CONFIG_USB=y
1023+# CONFIG_USB_DEBUG is not set
1024+# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
1025+
1026+#
1027+# Miscellaneous USB options
1028+#
1029+CONFIG_USB_DEVICEFS=y
1030+# CONFIG_USB_DEVICE_CLASS is not set
1031+CONFIG_USB_DYNAMIC_MINORS=y
1032+# CONFIG_USB_OTG is not set
1033+# CONFIG_USB_OTG_WHITELIST is not set
1034+# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1035+CONFIG_USB_MON=y
1036+# CONFIG_USB_WUSB is not set
1037+# CONFIG_USB_WUSB_CBAF is not set
1038+
1039+#
1040+# USB Host Controller Drivers
1041+#
1042+# CONFIG_USB_C67X00_HCD is not set
1043+# CONFIG_USB_ISP116X_HCD is not set
1044+CONFIG_USB_OHCI_HCD=y
1045+# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
1046+# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
1047+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1048+# CONFIG_USB_SL811_HCD is not set
1049+# CONFIG_USB_R8A66597_HCD is not set
1050+# CONFIG_USB_HWA_HCD is not set
1051+# CONFIG_USB_MUSB_HDRC is not set
1052+# CONFIG_USB_GADGET_MUSB_HDRC is not set
1053+
1054+#
1055+# USB Device Class drivers
1056+#
1057+# CONFIG_USB_ACM is not set
1058+# CONFIG_USB_PRINTER is not set
1059+# CONFIG_USB_WDM is not set
1060+# CONFIG_USB_TMC is not set
1061+
1062+#
1063+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1064+#
1065+
1066+#
1067+# see USB_STORAGE Help for more information
1068+#
1069+CONFIG_USB_STORAGE=m
1070+# CONFIG_USB_STORAGE_DEBUG is not set
1071+CONFIG_USB_STORAGE_DATAFAB=y
1072+CONFIG_USB_STORAGE_FREECOM=y
1073+CONFIG_USB_STORAGE_ISD200=y
1074+CONFIG_USB_STORAGE_DPCM=y
1075+CONFIG_USB_STORAGE_USBAT=y
1076+CONFIG_USB_STORAGE_SDDR09=y
1077+CONFIG_USB_STORAGE_SDDR55=y
1078+CONFIG_USB_STORAGE_JUMPSHOT=y
1079+CONFIG_USB_STORAGE_ALAUDA=y
1080+# CONFIG_USB_STORAGE_ONETOUCH is not set
1081+CONFIG_USB_STORAGE_KARMA=y
1082+# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1083+CONFIG_USB_LIBUSUAL=y
1084+
1085+#
1086+# USB Imaging devices
1087+#
1088+# CONFIG_USB_MDC800 is not set
1089+# CONFIG_USB_MICROTEK is not set
1090+
1091+#
1092+# USB port drivers
1093+#
1094+CONFIG_USB_SERIAL=m
1095+CONFIG_USB_EZUSB=y
1096+CONFIG_USB_SERIAL_GENERIC=y
1097+# CONFIG_USB_SERIAL_AIRCABLE is not set
1098+# CONFIG_USB_SERIAL_ARK3116 is not set
1099+# CONFIG_USB_SERIAL_BELKIN is not set
1100+# CONFIG_USB_SERIAL_CH341 is not set
1101+# CONFIG_USB_SERIAL_WHITEHEAT is not set
1102+# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
1103+# CONFIG_USB_SERIAL_CP2101 is not set
1104+# CONFIG_USB_SERIAL_CYPRESS_M8 is not set
1105+# CONFIG_USB_SERIAL_EMPEG is not set
1106+# CONFIG_USB_SERIAL_FTDI_SIO is not set
1107+# CONFIG_USB_SERIAL_FUNSOFT is not set
1108+# CONFIG_USB_SERIAL_VISOR is not set
1109+# CONFIG_USB_SERIAL_IPAQ is not set
1110+# CONFIG_USB_SERIAL_IR is not set
1111+# CONFIG_USB_SERIAL_EDGEPORT is not set
1112+# CONFIG_USB_SERIAL_EDGEPORT_TI is not set
1113+# CONFIG_USB_SERIAL_GARMIN is not set
1114+# CONFIG_USB_SERIAL_IPW is not set
1115+# CONFIG_USB_SERIAL_IUU is not set
1116+# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
1117+# CONFIG_USB_SERIAL_KEYSPAN is not set
1118+# CONFIG_USB_SERIAL_KLSI is not set
1119+# CONFIG_USB_SERIAL_KOBIL_SCT is not set
1120+# CONFIG_USB_SERIAL_MCT_U232 is not set
1121+# CONFIG_USB_SERIAL_MOS7720 is not set
1122+# CONFIG_USB_SERIAL_MOS7840 is not set
1123+# CONFIG_USB_SERIAL_MOTOROLA is not set
1124+# CONFIG_USB_SERIAL_NAVMAN is not set
1125+CONFIG_USB_SERIAL_PL2303=m
1126+# CONFIG_USB_SERIAL_OTI6858 is not set
1127+CONFIG_USB_SERIAL_SPCP8X5=m
1128+# CONFIG_USB_SERIAL_HP4X is not set
1129+# CONFIG_USB_SERIAL_SAFE is not set
1130+# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
1131+# CONFIG_USB_SERIAL_TI is not set
1132+# CONFIG_USB_SERIAL_CYBERJACK is not set
1133+# CONFIG_USB_SERIAL_XIRCOM is not set
1134+# CONFIG_USB_SERIAL_OPTION is not set
1135+# CONFIG_USB_SERIAL_OMNINET is not set
1136+CONFIG_USB_SERIAL_DEBUG=m
1137+
1138+#
1139+# USB Miscellaneous drivers
1140+#
1141+CONFIG_USB_EMI62=m
1142+CONFIG_USB_EMI26=m
1143+CONFIG_USB_ADUTUX=m
1144+# CONFIG_USB_SEVSEG is not set
1145+# CONFIG_USB_RIO500 is not set
1146+# CONFIG_USB_LEGOTOWER is not set
1147+# CONFIG_USB_LCD is not set
1148+# CONFIG_USB_BERRY_CHARGE is not set
1149+# CONFIG_USB_LED is not set
1150+# CONFIG_USB_CYPRESS_CY7C63 is not set
1151+# CONFIG_USB_CYTHERM is not set
1152+# CONFIG_USB_PHIDGET is not set
1153+# CONFIG_USB_IDMOUSE is not set
1154+# CONFIG_USB_FTDI_ELAN is not set
1155+# CONFIG_USB_APPLEDISPLAY is not set
1156+# CONFIG_USB_LD is not set
1157+# CONFIG_USB_TRANCEVIBRATOR is not set
1158+# CONFIG_USB_IOWARRIOR is not set
1159+CONFIG_USB_TEST=m
1160+# CONFIG_USB_ISIGHTFW is not set
1161+# CONFIG_USB_VST is not set
1162+CONFIG_USB_GADGET=m
1163+CONFIG_USB_GADGET_DEBUG_FILES=y
1164+CONFIG_USB_GADGET_DEBUG_FS=y
1165+CONFIG_USB_GADGET_VBUS_DRAW=2
1166+CONFIG_USB_GADGET_SELECTED=y
1167+CONFIG_USB_GADGET_AT91=y
1168+CONFIG_USB_AT91=m
1169+# CONFIG_USB_GADGET_ATMEL_USBA is not set
1170+# CONFIG_USB_GADGET_FSL_USB2 is not set
1171+# CONFIG_USB_GADGET_LH7A40X is not set
1172+# CONFIG_USB_GADGET_OMAP is not set
1173+# CONFIG_USB_GADGET_PXA25X is not set
1174+# CONFIG_USB_GADGET_PXA27X is not set
1175+# CONFIG_USB_GADGET_S3C2410 is not set
1176+# CONFIG_USB_GADGET_M66592 is not set
1177+# CONFIG_USB_GADGET_AMD5536UDC is not set
1178+# CONFIG_USB_GADGET_FSL_QE is not set
1179+# CONFIG_USB_GADGET_NET2280 is not set
1180+# CONFIG_USB_GADGET_GOKU is not set
1181+# CONFIG_USB_GADGET_DUMMY_HCD is not set
1182+# CONFIG_USB_GADGET_DUALSPEED is not set
1183+CONFIG_USB_ZERO=m
1184+CONFIG_USB_ETH=m
1185+CONFIG_USB_ETH_RNDIS=y
1186+CONFIG_USB_GADGETFS=m
1187+CONFIG_USB_FILE_STORAGE=m
1188+# CONFIG_USB_FILE_STORAGE_TEST is not set
1189+CONFIG_USB_G_SERIAL=m
1190+CONFIG_USB_MIDI_GADGET=m
1191+# CONFIG_USB_G_PRINTER is not set
1192+# CONFIG_USB_CDC_COMPOSITE is not set
1193+CONFIG_MMC=y
1194+# CONFIG_MMC_DEBUG is not set
1195+# CONFIG_MMC_UNSAFE_RESUME is not set
1196+
1197+#
1198+# MMC/SD/SDIO Card Drivers
1199+#
1200+CONFIG_MMC_BLOCK=y
1201+CONFIG_MMC_BLOCK_BOUNCE=y
1202+CONFIG_SDIO_UART=m
1203+# CONFIG_MMC_TEST is not set
1204+
1205+#
1206+# MMC/SD/SDIO Host Controller Drivers
1207+#
1208+# CONFIG_MMC_SDHCI is not set
1209+CONFIG_MMC_AT91=y
1210+CONFIG_MMC_SPI=m
1211+# CONFIG_MEMSTICK is not set
1212+# CONFIG_ACCESSIBILITY is not set
1213+CONFIG_NEW_LEDS=y
1214+CONFIG_LEDS_CLASS=m
1215+
1216+#
1217+# LED drivers
1218+#
1219+# CONFIG_LEDS_PCA9532 is not set
1220+CONFIG_LEDS_GPIO=m
1221+# CONFIG_LEDS_PCA955X is not set
1222+
1223+#
1224+# LED Triggers
1225+#
1226+CONFIG_LEDS_TRIGGERS=y
1227+CONFIG_LEDS_TRIGGER_TIMER=m
1228+CONFIG_LEDS_TRIGGER_HEARTBEAT=m
1229+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
1230+# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
1231+CONFIG_RTC_LIB=y
1232+CONFIG_RTC_CLASS=y
1233+CONFIG_RTC_HCTOSYS=y
1234+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
1235+# CONFIG_RTC_DEBUG is not set
1236+
1237+#
1238+# RTC interfaces
1239+#
1240+CONFIG_RTC_INTF_SYSFS=y
1241+CONFIG_RTC_INTF_PROC=y
1242+CONFIG_RTC_INTF_DEV=y
1243+CONFIG_RTC_INTF_DEV_UIE_EMUL=y
1244+# CONFIG_RTC_DRV_TEST is not set
1245+
1246+#
1247+# I2C RTC drivers
1248+#
1249+CONFIG_RTC_DRV_DS1307=m
1250+# CONFIG_RTC_DRV_DS1374 is not set
1251+# CONFIG_RTC_DRV_DS1672 is not set
1252+# CONFIG_RTC_DRV_MAX6900 is not set
1253+# CONFIG_RTC_DRV_RS5C372 is not set
1254+# CONFIG_RTC_DRV_ISL1208 is not set
1255+# CONFIG_RTC_DRV_X1205 is not set
1256+# CONFIG_RTC_DRV_PCF8563 is not set
1257+# CONFIG_RTC_DRV_PCF8583 is not set
1258+# CONFIG_RTC_DRV_M41T80 is not set
1259+# CONFIG_RTC_DRV_S35390A is not set
1260+# CONFIG_RTC_DRV_FM3130 is not set
1261+# CONFIG_RTC_DRV_RX8581 is not set
1262+
1263+#
1264+# SPI RTC drivers
1265+#
1266+# CONFIG_RTC_DRV_M41T94 is not set
1267+CONFIG_RTC_DRV_DS1305=y
1268+# CONFIG_RTC_DRV_DS1390 is not set
1269+# CONFIG_RTC_DRV_MAX6902 is not set
1270+# CONFIG_RTC_DRV_R9701 is not set
1271+# CONFIG_RTC_DRV_RS5C348 is not set
1272+# CONFIG_RTC_DRV_DS3234 is not set
1273+
1274+#
1275+# Platform RTC drivers
1276+#
1277+# CONFIG_RTC_DRV_CMOS is not set
1278+# CONFIG_RTC_DRV_DS1286 is not set
1279+# CONFIG_RTC_DRV_DS1511 is not set
1280+# CONFIG_RTC_DRV_DS1553 is not set
1281+# CONFIG_RTC_DRV_DS1742 is not set
1282+# CONFIG_RTC_DRV_STK17TA8 is not set
1283+# CONFIG_RTC_DRV_M48T86 is not set
1284+# CONFIG_RTC_DRV_M48T35 is not set
1285+# CONFIG_RTC_DRV_M48T59 is not set
1286+# CONFIG_RTC_DRV_BQ4802 is not set
1287+# CONFIG_RTC_DRV_V3020 is not set
1288+
1289+#
1290+# on-CPU RTC drivers
1291+#
1292+# CONFIG_RTC_DRV_AT91SAM9 is not set
1293+# CONFIG_DMADEVICES is not set
1294+# CONFIG_REGULATOR is not set
1295+# CONFIG_UIO is not set
1296+
1297+#
1298+# File systems
1299+#
1300+CONFIG_EXT2_FS=y
1301+CONFIG_EXT2_FS_XATTR=y
1302+CONFIG_EXT2_FS_POSIX_ACL=y
1303+CONFIG_EXT2_FS_SECURITY=y
1304+# CONFIG_EXT2_FS_XIP is not set
1305+CONFIG_EXT3_FS=y
1306+CONFIG_EXT3_FS_XATTR=y
1307+CONFIG_EXT3_FS_POSIX_ACL=y
1308+CONFIG_EXT3_FS_SECURITY=y
1309+# CONFIG_EXT4_FS is not set
1310+CONFIG_JBD=y
1311+CONFIG_JBD_DEBUG=y
1312+CONFIG_FS_MBCACHE=y
1313+CONFIG_REISERFS_FS=m
1314+CONFIG_REISERFS_CHECK=y
1315+CONFIG_REISERFS_PROC_INFO=y
1316+CONFIG_REISERFS_FS_XATTR=y
1317+CONFIG_REISERFS_FS_POSIX_ACL=y
1318+CONFIG_REISERFS_FS_SECURITY=y
1319+# CONFIG_JFS_FS is not set
1320+CONFIG_FS_POSIX_ACL=y
1321+CONFIG_FILE_LOCKING=y
1322+# CONFIG_XFS_FS is not set
1323+# CONFIG_OCFS2_FS is not set
1324+CONFIG_DNOTIFY=y
1325+CONFIG_INOTIFY=y
1326+CONFIG_INOTIFY_USER=y
1327+# CONFIG_QUOTA is not set
1328+# CONFIG_AUTOFS_FS is not set
1329+# CONFIG_AUTOFS4_FS is not set
1330+CONFIG_FUSE_FS=m
1331+CONFIG_GENERIC_ACL=y
1332+
1333+#
1334+# CD-ROM/DVD Filesystems
1335+#
1336+# CONFIG_ISO9660_FS is not set
1337+# CONFIG_UDF_FS is not set
1338+
1339+#
1340+# DOS/FAT/NT Filesystems
1341+#
1342+CONFIG_FAT_FS=y
1343+CONFIG_MSDOS_FS=m
1344+CONFIG_VFAT_FS=y
1345+CONFIG_FAT_DEFAULT_CODEPAGE=437
1346+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1347+CONFIG_NTFS_FS=m
1348+# CONFIG_NTFS_DEBUG is not set
1349+CONFIG_NTFS_RW=y
1350+
1351+#
1352+# Pseudo filesystems
1353+#
1354+CONFIG_PROC_FS=y
1355+CONFIG_PROC_SYSCTL=y
1356+CONFIG_PROC_PAGE_MONITOR=y
1357+CONFIG_SYSFS=y
1358+CONFIG_TMPFS=y
1359+CONFIG_TMPFS_POSIX_ACL=y
1360+# CONFIG_HUGETLB_PAGE is not set
1361+CONFIG_CONFIGFS_FS=m
1362+
1363+#
1364+# Miscellaneous filesystems
1365+#
1366+# CONFIG_ADFS_FS is not set
1367+# CONFIG_AFFS_FS is not set
1368+# CONFIG_HFS_FS is not set
1369+# CONFIG_HFSPLUS_FS is not set
1370+# CONFIG_BEFS_FS is not set
1371+# CONFIG_BFS_FS is not set
1372+# CONFIG_EFS_FS is not set
1373+CONFIG_JFFS2_FS=m
1374+CONFIG_JFFS2_FS_DEBUG=0
1375+CONFIG_JFFS2_FS_WRITEBUFFER=y
1376+# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
1377+# CONFIG_JFFS2_SUMMARY is not set
1378+# CONFIG_JFFS2_FS_XATTR is not set
1379+CONFIG_JFFS2_COMPRESSION_OPTIONS=y
1380+CONFIG_JFFS2_ZLIB=y
1381+CONFIG_JFFS2_LZO=y
1382+CONFIG_JFFS2_RTIME=y
1383+# CONFIG_JFFS2_RUBIN is not set
1384+# CONFIG_JFFS2_CMODE_NONE is not set
1385+# CONFIG_JFFS2_CMODE_PRIORITY is not set
1386+# CONFIG_JFFS2_CMODE_SIZE is not set
1387+CONFIG_JFFS2_CMODE_FAVOURLZO=y
1388+# CONFIG_UBIFS_FS is not set
1389+CONFIG_CRAMFS=m
1390+# CONFIG_VXFS_FS is not set
1391+# CONFIG_MINIX_FS is not set
1392+# CONFIG_OMFS_FS is not set
1393+# CONFIG_HPFS_FS is not set
1394+# CONFIG_QNX4FS_FS is not set
1395+# CONFIG_ROMFS_FS is not set
1396+# CONFIG_SYSV_FS is not set
1397+# CONFIG_UFS_FS is not set
1398+CONFIG_NETWORK_FILESYSTEMS=y
1399+CONFIG_NFS_FS=m
1400+CONFIG_NFS_V3=y
1401+CONFIG_NFS_V3_ACL=y
1402+CONFIG_NFS_V4=y
1403+CONFIG_NFSD=m
1404+CONFIG_NFSD_V2_ACL=y
1405+CONFIG_NFSD_V3=y
1406+CONFIG_NFSD_V3_ACL=y
1407+CONFIG_NFSD_V4=y
1408+CONFIG_LOCKD=m
1409+CONFIG_LOCKD_V4=y
1410+CONFIG_EXPORTFS=m
1411+CONFIG_NFS_ACL_SUPPORT=m
1412+CONFIG_NFS_COMMON=y
1413+CONFIG_SUNRPC=m
1414+CONFIG_SUNRPC_GSS=m
1415+# CONFIG_SUNRPC_REGISTER_V4 is not set
1416+CONFIG_RPCSEC_GSS_KRB5=m
1417+# CONFIG_RPCSEC_GSS_SPKM3 is not set
1418+# CONFIG_SMB_FS is not set
1419+CONFIG_CIFS=m
1420+# CONFIG_CIFS_STATS is not set
1421+CONFIG_CIFS_WEAK_PW_HASH=y
1422+# CONFIG_CIFS_XATTR is not set
1423+# CONFIG_CIFS_DEBUG2 is not set
1424+# CONFIG_CIFS_EXPERIMENTAL is not set
1425+# CONFIG_NCP_FS is not set
1426+# CONFIG_CODA_FS is not set
1427+# CONFIG_AFS_FS is not set
1428+
1429+#
1430+# Partition Types
1431+#
1432+CONFIG_PARTITION_ADVANCED=y
1433+# CONFIG_ACORN_PARTITION is not set
1434+# CONFIG_OSF_PARTITION is not set
1435+# CONFIG_AMIGA_PARTITION is not set
1436+# CONFIG_ATARI_PARTITION is not set
1437+CONFIG_MAC_PARTITION=y
1438+CONFIG_MSDOS_PARTITION=y
1439+CONFIG_BSD_DISKLABEL=y
1440+CONFIG_MINIX_SUBPARTITION=y
1441+CONFIG_SOLARIS_X86_PARTITION=y
1442+CONFIG_UNIXWARE_DISKLABEL=y
1443+CONFIG_LDM_PARTITION=y
1444+CONFIG_LDM_DEBUG=y
1445+CONFIG_SGI_PARTITION=y
1446+# CONFIG_ULTRIX_PARTITION is not set
1447+CONFIG_SUN_PARTITION=y
1448+# CONFIG_KARMA_PARTITION is not set
1449+# CONFIG_EFI_PARTITION is not set
1450+# CONFIG_SYSV68_PARTITION is not set
1451+CONFIG_NLS=y
1452+CONFIG_NLS_DEFAULT="cp437"
1453+CONFIG_NLS_CODEPAGE_437=y
1454+# CONFIG_NLS_CODEPAGE_737 is not set
1455+# CONFIG_NLS_CODEPAGE_775 is not set
1456+CONFIG_NLS_CODEPAGE_850=m
1457+# CONFIG_NLS_CODEPAGE_852 is not set
1458+# CONFIG_NLS_CODEPAGE_855 is not set
1459+# CONFIG_NLS_CODEPAGE_857 is not set
1460+# CONFIG_NLS_CODEPAGE_860 is not set
1461+# CONFIG_NLS_CODEPAGE_861 is not set
1462+# CONFIG_NLS_CODEPAGE_862 is not set
1463+# CONFIG_NLS_CODEPAGE_863 is not set
1464+# CONFIG_NLS_CODEPAGE_864 is not set
1465+# CONFIG_NLS_CODEPAGE_865 is not set
1466+# CONFIG_NLS_CODEPAGE_866 is not set
1467+# CONFIG_NLS_CODEPAGE_869 is not set
1468+# CONFIG_NLS_CODEPAGE_936 is not set
1469+# CONFIG_NLS_CODEPAGE_950 is not set
1470+# CONFIG_NLS_CODEPAGE_932 is not set
1471+# CONFIG_NLS_CODEPAGE_949 is not set
1472+# CONFIG_NLS_CODEPAGE_874 is not set
1473+# CONFIG_NLS_ISO8859_8 is not set
1474+# CONFIG_NLS_CODEPAGE_1250 is not set
1475+# CONFIG_NLS_CODEPAGE_1251 is not set
1476+CONFIG_NLS_ASCII=y
1477+CONFIG_NLS_ISO8859_1=y
1478+# CONFIG_NLS_ISO8859_2 is not set
1479+# CONFIG_NLS_ISO8859_3 is not set
1480+# CONFIG_NLS_ISO8859_4 is not set
1481+# CONFIG_NLS_ISO8859_5 is not set
1482+# CONFIG_NLS_ISO8859_6 is not set
1483+# CONFIG_NLS_ISO8859_7 is not set
1484+# CONFIG_NLS_ISO8859_9 is not set
1485+# CONFIG_NLS_ISO8859_13 is not set
1486+# CONFIG_NLS_ISO8859_14 is not set
1487+# CONFIG_NLS_ISO8859_15 is not set
1488+# CONFIG_NLS_KOI8_R is not set
1489+# CONFIG_NLS_KOI8_U is not set
1490+CONFIG_NLS_UTF8=m
1491+CONFIG_DLM=m
1492+# CONFIG_DLM_DEBUG is not set
1493+
1494+#
1495+# Kernel hacking
1496+#
1497+CONFIG_PRINTK_TIME=y
1498+CONFIG_ENABLE_WARN_DEPRECATED=y
1499+CONFIG_ENABLE_MUST_CHECK=y
1500+CONFIG_FRAME_WARN=1024
1501+CONFIG_MAGIC_SYSRQ=y
1502+CONFIG_UNUSED_SYMBOLS=y
1503+CONFIG_DEBUG_FS=y
1504+# CONFIG_HEADERS_CHECK is not set
1505+# CONFIG_DEBUG_KERNEL is not set
1506+# CONFIG_DEBUG_BUGVERBOSE is not set
1507+# CONFIG_DEBUG_MEMORY_INIT is not set
1508+CONFIG_FRAME_POINTER=y
1509+# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1510+# CONFIG_LATENCYTOP is not set
1511+CONFIG_SYSCTL_SYSCALL_CHECK=y
1512+CONFIG_HAVE_FUNCTION_TRACER=y
1513+
1514+#
1515+# Tracers
1516+#
1517+# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1518+# CONFIG_SAMPLES is not set
1519+CONFIG_HAVE_ARCH_KGDB=y
1520+# CONFIG_DEBUG_USER is not set
1521+
1522+#
1523+# Security options
1524+#
1525+# CONFIG_KEYS is not set
1526+# CONFIG_SECURITY is not set
1527+CONFIG_SECURITYFS=y
1528+# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1529+CONFIG_CRYPTO=y
1530+
1531+#
1532+# Crypto core or helper
1533+#
1534+# CONFIG_CRYPTO_FIPS is not set
1535+CONFIG_CRYPTO_ALGAPI=y
1536+CONFIG_CRYPTO_AEAD=y
1537+CONFIG_CRYPTO_BLKCIPHER=y
1538+CONFIG_CRYPTO_HASH=y
1539+CONFIG_CRYPTO_RNG=y
1540+CONFIG_CRYPTO_MANAGER=y
1541+CONFIG_CRYPTO_GF128MUL=m
1542+# CONFIG_CRYPTO_NULL is not set
1543+# CONFIG_CRYPTO_CRYPTD is not set
1544+# CONFIG_CRYPTO_AUTHENC is not set
1545+# CONFIG_CRYPTO_TEST is not set
1546+
1547+#
1548+# Authenticated Encryption with Associated Data
1549+#
1550+# CONFIG_CRYPTO_CCM is not set
1551+# CONFIG_CRYPTO_GCM is not set
1552+# CONFIG_CRYPTO_SEQIV is not set
1553+
1554+#
1555+# Block modes
1556+#
1557+CONFIG_CRYPTO_CBC=m
1558+# CONFIG_CRYPTO_CTR is not set
1559+# CONFIG_CRYPTO_CTS is not set
1560+CONFIG_CRYPTO_ECB=m
1561+# CONFIG_CRYPTO_LRW is not set
1562+# CONFIG_CRYPTO_PCBC is not set
1563+# CONFIG_CRYPTO_XTS is not set
1564+
1565+#
1566+# Hash modes
1567+#
1568+CONFIG_CRYPTO_HMAC=y
1569+# CONFIG_CRYPTO_XCBC is not set
1570+
1571+#
1572+# Digest
1573+#
1574+# CONFIG_CRYPTO_CRC32C is not set
1575+# CONFIG_CRYPTO_MD4 is not set
1576+CONFIG_CRYPTO_MD5=y
1577+# CONFIG_CRYPTO_MICHAEL_MIC is not set
1578+# CONFIG_CRYPTO_RMD128 is not set
1579+# CONFIG_CRYPTO_RMD160 is not set
1580+# CONFIG_CRYPTO_RMD256 is not set
1581+# CONFIG_CRYPTO_RMD320 is not set
1582+CONFIG_CRYPTO_SHA1=m
1583+# CONFIG_CRYPTO_SHA256 is not set
1584+# CONFIG_CRYPTO_SHA512 is not set
1585+# CONFIG_CRYPTO_TGR192 is not set
1586+# CONFIG_CRYPTO_WP512 is not set
1587+
1588+#
1589+# Ciphers
1590+#
1591+# CONFIG_CRYPTO_AES is not set
1592+# CONFIG_CRYPTO_ANUBIS is not set
1593+CONFIG_CRYPTO_ARC4=m
1594+# CONFIG_CRYPTO_BLOWFISH is not set
1595+# CONFIG_CRYPTO_CAMELLIA is not set
1596+# CONFIG_CRYPTO_CAST5 is not set
1597+# CONFIG_CRYPTO_CAST6 is not set
1598+CONFIG_CRYPTO_DES=m
1599+# CONFIG_CRYPTO_FCRYPT is not set
1600+# CONFIG_CRYPTO_KHAZAD is not set
1601+# CONFIG_CRYPTO_SALSA20 is not set
1602+# CONFIG_CRYPTO_SEED is not set
1603+# CONFIG_CRYPTO_SERPENT is not set
1604+# CONFIG_CRYPTO_TEA is not set
1605+# CONFIG_CRYPTO_TWOFISH is not set
1606+
1607+#
1608+# Compression
1609+#
1610+# CONFIG_CRYPTO_DEFLATE is not set
1611+# CONFIG_CRYPTO_LZO is not set
1612+
1613+#
1614+# Random Number Generation
1615+#
1616+# CONFIG_CRYPTO_ANSI_CPRNG is not set
1617+# CONFIG_CRYPTO_HW is not set
1618+
1619+#
1620+# Library routines
1621+#
1622+CONFIG_BITREVERSE=y
1623+CONFIG_CRC_CCITT=m
1624+CONFIG_CRC16=m
1625+# CONFIG_CRC_T10DIF is not set
1626+CONFIG_CRC_ITU_T=m
1627+CONFIG_CRC32=y
1628+CONFIG_CRC7=m
1629+CONFIG_LIBCRC32C=m
1630+CONFIG_AUDIT_GENERIC=y
1631+CONFIG_ZLIB_INFLATE=m
1632+CONFIG_ZLIB_DEFLATE=m
1633+CONFIG_LZO_COMPRESS=m
1634+CONFIG_LZO_DECOMPRESS=m
1635+CONFIG_REED_SOLOMON=m
1636+CONFIG_REED_SOLOMON_DEC16=y
1637+CONFIG_PLIST=y
1638+CONFIG_HAS_IOMEM=y
1639+CONFIG_HAS_IOPORT=y
1640+CONFIG_HAS_DMA=y
arch/arm/configs/devkit8000_defconfig+1889−0
@@ -0,0 +1,1889 @@
1+#
2+# Automatically generated make config: don't edit
3+# Linux kernel version: 2.6.33-rc6
4+# Thu Feb 4 15:42:56 2010
5+#
6+CONFIG_ARM=y
7+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8+CONFIG_GENERIC_GPIO=y
9+CONFIG_GENERIC_TIME=y
10+CONFIG_GENERIC_CLOCKEVENTS=y
11+CONFIG_GENERIC_HARDIRQS=y
12+CONFIG_STACKTRACE_SUPPORT=y
13+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
14+CONFIG_LOCKDEP_SUPPORT=y
15+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
16+CONFIG_HARDIRQS_SW_RESEND=y
17+CONFIG_GENERIC_IRQ_PROBE=y
18+CONFIG_RWSEM_GENERIC_SPINLOCK=y
19+CONFIG_ARCH_HAS_CPUFREQ=y
20+CONFIG_GENERIC_HWEIGHT=y
21+CONFIG_GENERIC_CALIBRATE_DELAY=y
22+CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
23+CONFIG_VECTORS_BASE=0xffff0000
24+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
25+CONFIG_CONSTRUCTORS=y
26+
27+#
28+# General setup
29+#
30+CONFIG_EXPERIMENTAL=y
31+CONFIG_BROKEN_ON_SMP=y
32+CONFIG_INIT_ENV_ARG_LIMIT=32
33+CONFIG_LOCALVERSION=""
34+CONFIG_LOCALVERSION_AUTO=y
35+CONFIG_HAVE_KERNEL_GZIP=y
36+CONFIG_HAVE_KERNEL_LZO=y
37+CONFIG_KERNEL_GZIP=y
38+# CONFIG_KERNEL_BZIP2 is not set
39+# CONFIG_KERNEL_LZMA is not set
40+# CONFIG_KERNEL_LZO is not set
41+CONFIG_SWAP=y
42+CONFIG_SYSVIPC=y
43+CONFIG_SYSVIPC_SYSCTL=y
44+# CONFIG_POSIX_MQUEUE is not set
45+CONFIG_BSD_PROCESS_ACCT=y
46+# CONFIG_BSD_PROCESS_ACCT_V3 is not set
47+# CONFIG_TASKSTATS is not set
48+# CONFIG_AUDIT is not set
49+
50+#
51+# RCU Subsystem
52+#
53+CONFIG_TREE_RCU=y
54+# CONFIG_TREE_PREEMPT_RCU is not set
55+# CONFIG_TINY_RCU is not set
56+# CONFIG_RCU_TRACE is not set
57+CONFIG_RCU_FANOUT=32
58+# CONFIG_RCU_FANOUT_EXACT is not set
59+# CONFIG_TREE_RCU_TRACE is not set
60+CONFIG_IKCONFIG=y
61+CONFIG_IKCONFIG_PROC=y
62+CONFIG_LOG_BUF_SHIFT=14
63+CONFIG_GROUP_SCHED=y
64+CONFIG_FAIR_GROUP_SCHED=y
65+# CONFIG_RT_GROUP_SCHED is not set
66+CONFIG_USER_SCHED=y
67+# CONFIG_CGROUP_SCHED is not set
68+# CONFIG_CGROUPS is not set
69+# CONFIG_SYSFS_DEPRECATED_V2 is not set
70+# CONFIG_RELAY is not set
71+# CONFIG_NAMESPACES is not set
72+CONFIG_BLK_DEV_INITRD=y
73+CONFIG_INITRAMFS_SOURCE=""
74+CONFIG_RD_GZIP=y
75+CONFIG_RD_BZIP2=y
76+CONFIG_RD_LZMA=y
77+# CONFIG_RD_LZO is not set
78+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
79+CONFIG_SYSCTL=y
80+CONFIG_ANON_INODES=y
81+CONFIG_EMBEDDED=y
82+CONFIG_UID16=y
83+# CONFIG_SYSCTL_SYSCALL is not set
84+CONFIG_KALLSYMS=y
85+# CONFIG_KALLSYMS_ALL is not set
86+CONFIG_KALLSYMS_EXTRA_PASS=y
87+CONFIG_HOTPLUG=y
88+CONFIG_PRINTK=y
89+CONFIG_BUG=y
90+CONFIG_ELF_CORE=y
91+CONFIG_BASE_FULL=y
92+CONFIG_FUTEX=y
93+CONFIG_EPOLL=y
94+CONFIG_SIGNALFD=y
95+CONFIG_TIMERFD=y
96+CONFIG_EVENTFD=y
97+CONFIG_SHMEM=y
98+CONFIG_AIO=y
99+
100+#
101+# Kernel Performance Events And Counters
102+#
103+CONFIG_VM_EVENT_COUNTERS=y
104+CONFIG_COMPAT_BRK=y
105+CONFIG_SLAB=y
106+# CONFIG_SLUB is not set
107+# CONFIG_SLOB is not set
108+# CONFIG_PROFILING is not set
109+CONFIG_HAVE_OPROFILE=y
110+# CONFIG_KPROBES is not set
111+CONFIG_HAVE_KPROBES=y
112+CONFIG_HAVE_KRETPROBES=y
113+CONFIG_HAVE_CLK=y
114+
115+#
116+# GCOV-based kernel profiling
117+#
118+# CONFIG_SLOW_WORK is not set
119+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
120+CONFIG_SLABINFO=y
121+CONFIG_RT_MUTEXES=y
122+CONFIG_BASE_SMALL=0
123+CONFIG_MODULES=y
124+CONFIG_MODULE_FORCE_LOAD=y
125+CONFIG_MODULE_UNLOAD=y
126+# CONFIG_MODULE_FORCE_UNLOAD is not set
127+CONFIG_MODVERSIONS=y
128+# CONFIG_MODULE_SRCVERSION_ALL is not set
129+CONFIG_BLOCK=y
130+CONFIG_LBDAF=y
131+# CONFIG_BLK_DEV_BSG is not set
132+# CONFIG_BLK_DEV_INTEGRITY is not set
133+
134+#
135+# IO Schedulers
136+#
137+CONFIG_IOSCHED_NOOP=y
138+CONFIG_IOSCHED_DEADLINE=y
139+CONFIG_IOSCHED_CFQ=y
140+# CONFIG_DEFAULT_DEADLINE is not set
141+CONFIG_DEFAULT_CFQ=y
142+# CONFIG_DEFAULT_NOOP is not set
143+CONFIG_DEFAULT_IOSCHED="cfq"
144+# CONFIG_INLINE_SPIN_TRYLOCK is not set
145+# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
146+# CONFIG_INLINE_SPIN_LOCK is not set
147+# CONFIG_INLINE_SPIN_LOCK_BH is not set
148+# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
149+# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
150+CONFIG_INLINE_SPIN_UNLOCK=y
151+# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
152+CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
153+# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
154+# CONFIG_INLINE_READ_TRYLOCK is not set
155+# CONFIG_INLINE_READ_LOCK is not set
156+# CONFIG_INLINE_READ_LOCK_BH is not set
157+# CONFIG_INLINE_READ_LOCK_IRQ is not set
158+# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
159+CONFIG_INLINE_READ_UNLOCK=y
160+# CONFIG_INLINE_READ_UNLOCK_BH is not set
161+CONFIG_INLINE_READ_UNLOCK_IRQ=y
162+# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
163+# CONFIG_INLINE_WRITE_TRYLOCK is not set
164+# CONFIG_INLINE_WRITE_LOCK is not set
165+# CONFIG_INLINE_WRITE_LOCK_BH is not set
166+# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
167+# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
168+CONFIG_INLINE_WRITE_UNLOCK=y
169+# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
170+CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
171+# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
172+# CONFIG_MUTEX_SPIN_ON_OWNER is not set
173+# CONFIG_FREEZER is not set
174+
175+#
176+# System Type
177+#
178+CONFIG_MMU=y
179+# CONFIG_ARCH_AAEC2000 is not set
180+# CONFIG_ARCH_INTEGRATOR is not set
181+# CONFIG_ARCH_REALVIEW is not set
182+# CONFIG_ARCH_VERSATILE is not set
183+# CONFIG_ARCH_AT91 is not set
184+# CONFIG_ARCH_CLPS711X is not set
185+# CONFIG_ARCH_GEMINI is not set
186+# CONFIG_ARCH_EBSA110 is not set
187+# CONFIG_ARCH_EP93XX is not set
188+# CONFIG_ARCH_FOOTBRIDGE is not set
189+# CONFIG_ARCH_MXC is not set
190+# CONFIG_ARCH_STMP3XXX is not set
191+# CONFIG_ARCH_NETX is not set
192+# CONFIG_ARCH_H720X is not set
193+# CONFIG_ARCH_NOMADIK is not set
194+# CONFIG_ARCH_IOP13XX is not set
195+# CONFIG_ARCH_IOP32X is not set
196+# CONFIG_ARCH_IOP33X is not set
197+# CONFIG_ARCH_IXP23XX is not set
198+# CONFIG_ARCH_IXP2000 is not set
199+# CONFIG_ARCH_IXP4XX is not set
200+# CONFIG_ARCH_L7200 is not set
201+# CONFIG_ARCH_DOVE is not set
202+# CONFIG_ARCH_KIRKWOOD is not set
203+# CONFIG_ARCH_LOKI is not set
204+# CONFIG_ARCH_MV78XX0 is not set
205+# CONFIG_ARCH_ORION5X is not set
206+# CONFIG_ARCH_MMP is not set
207+# CONFIG_ARCH_KS8695 is not set
208+# CONFIG_ARCH_NS9XXX is not set
209+# CONFIG_ARCH_W90X900 is not set
210+# CONFIG_ARCH_PNX4008 is not set
211+# CONFIG_ARCH_PXA is not set
212+# CONFIG_ARCH_MSM is not set
213+# CONFIG_ARCH_RPC is not set
214+# CONFIG_ARCH_SA1100 is not set
215+# CONFIG_ARCH_S3C2410 is not set
216+# CONFIG_ARCH_S3C64XX is not set
217+# CONFIG_ARCH_S5PC1XX is not set
218+# CONFIG_ARCH_SHARK is not set
219+# CONFIG_ARCH_LH7A40X is not set
220+# CONFIG_ARCH_U300 is not set
221+# CONFIG_ARCH_DAVINCI is not set
222+CONFIG_ARCH_OMAP=y
223+# CONFIG_ARCH_BCMRING is not set
224+# CONFIG_ARCH_U8500 is not set
225+
226+#
227+# TI OMAP Implementations
228+#
229+CONFIG_ARCH_OMAP_OTG=y
230+# CONFIG_ARCH_OMAP1 is not set
231+CONFIG_ARCH_OMAP2PLUS=y
232+# CONFIG_ARCH_OMAP2 is not set
233+CONFIG_ARCH_OMAP3=y
234+# CONFIG_ARCH_OMAP4 is not set
235+
236+#
237+# OMAP Feature Selections
238+#
239+# CONFIG_OMAP_RESET_CLOCKS is not set
240+# CONFIG_OMAP_MUX is not set
241+CONFIG_OMAP_MCBSP=y
242+# CONFIG_OMAP_MBOX_FWK is not set
243+# CONFIG_OMAP_MPU_TIMER is not set
244+CONFIG_OMAP_32K_TIMER=y
245+CONFIG_OMAP_32K_TIMER_HZ=128
246+CONFIG_OMAP_DM_TIMER=y
247+# CONFIG_OMAP_PM_NONE is not set
248+CONFIG_OMAP_PM_NOOP=y
249+CONFIG_ARCH_OMAP3430=y
250+
251+#
252+# OMAP Board Type
253+#
254+# CONFIG_MACH_OMAP3_BEAGLE is not set
255+CONFIG_MACH_DEVKIT8000=y
256+# CONFIG_MACH_OMAP_LDP is not set
257+# CONFIG_MACH_OVERO is not set
258+# CONFIG_MACH_OMAP3EVM is not set
259+# CONFIG_MACH_OMAP3517EVM is not set
260+# CONFIG_MACH_OMAP3_PANDORA is not set
261+# CONFIG_MACH_OMAP3_TOUCHBOOK is not set
262+# CONFIG_MACH_OMAP_3430SDP is not set
263+# CONFIG_MACH_NOKIA_RX51 is not set
264+# CONFIG_MACH_OMAP_ZOOM2 is not set
265+# CONFIG_MACH_OMAP_ZOOM3 is not set
266+# CONFIG_MACH_CM_T35 is not set
267+# CONFIG_MACH_IGEP0020 is not set
268+# CONFIG_MACH_OMAP_3630SDP is not set
269+# CONFIG_OMAP3_EMU is not set
270+# CONFIG_OMAP3_SDRC_AC_TIMING is not set
271+
272+#
273+# Processor Type
274+#
275+CONFIG_CPU_32v6K=y
276+CONFIG_CPU_V7=y
277+CONFIG_CPU_32v7=y
278+CONFIG_CPU_ABRT_EV7=y
279+CONFIG_CPU_PABRT_V7=y
280+CONFIG_CPU_CACHE_V7=y
281+CONFIG_CPU_CACHE_VIPT=y
282+CONFIG_CPU_COPY_V6=y
283+CONFIG_CPU_TLB_V7=y
284+CONFIG_CPU_HAS_ASID=y
285+CONFIG_CPU_CP15=y
286+CONFIG_CPU_CP15_MMU=y
287+
288+#
289+# Processor Features
290+#
291+CONFIG_ARM_THUMB=y
292+# CONFIG_ARM_THUMBEE is not set
293+# CONFIG_CPU_ICACHE_DISABLE is not set
294+# CONFIG_CPU_DCACHE_DISABLE is not set
295+# CONFIG_CPU_BPREDICT_DISABLE is not set
296+CONFIG_HAS_TLS_REG=y
297+CONFIG_ARM_L1_CACHE_SHIFT=6
298+# CONFIG_ARM_ERRATA_430973 is not set
299+# CONFIG_ARM_ERRATA_458693 is not set
300+# CONFIG_ARM_ERRATA_460075 is not set
301+CONFIG_COMMON_CLKDEV=y
302+
303+#
304+# Bus support
305+#
306+# CONFIG_PCI_SYSCALL is not set
307+# CONFIG_ARCH_SUPPORTS_MSI is not set
308+# CONFIG_PCCARD is not set
309+
310+#
311+# Kernel Features
312+#
313+CONFIG_TICK_ONESHOT=y
314+CONFIG_NO_HZ=y
315+CONFIG_HIGH_RES_TIMERS=y
316+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
317+CONFIG_VMSPLIT_3G=y
318+# CONFIG_VMSPLIT_2G is not set
319+# CONFIG_VMSPLIT_1G is not set
320+CONFIG_PAGE_OFFSET=0xC0000000
321+CONFIG_PREEMPT_NONE=y
322+# CONFIG_PREEMPT_VOLUNTARY is not set
323+# CONFIG_PREEMPT is not set
324+CONFIG_HZ=128
325+# CONFIG_THUMB2_KERNEL is not set
326+CONFIG_AEABI=y
327+CONFIG_OABI_COMPAT=y
328+CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y
329+# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
330+# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
331+# CONFIG_HIGHMEM is not set
332+CONFIG_SELECT_MEMORY_MODEL=y
333+CONFIG_FLATMEM_MANUAL=y
334+# CONFIG_DISCONTIGMEM_MANUAL is not set
335+# CONFIG_SPARSEMEM_MANUAL is not set
336+CONFIG_FLATMEM=y
337+CONFIG_FLAT_NODE_MEM_MAP=y
338+CONFIG_PAGEFLAGS_EXTENDED=y
339+CONFIG_SPLIT_PTLOCK_CPUS=4
340+# CONFIG_PHYS_ADDR_T_64BIT is not set
341+CONFIG_ZONE_DMA_FLAG=0
342+CONFIG_VIRT_TO_BUS=y
343+# CONFIG_KSM is not set
344+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
345+# CONFIG_LEDS is not set
346+CONFIG_ALIGNMENT_TRAP=y
347+# CONFIG_UACCESS_WITH_MEMCPY is not set
348+
349+#
350+# Boot options
351+#
352+CONFIG_ZBOOT_ROM_TEXT=0x0
353+CONFIG_ZBOOT_ROM_BSS=0x0
354+CONFIG_CMDLINE="console=ttyS2,115200n8 root=/dev/nfs nfsroot=192.168.1.1:home/nfsroot/current,home/nfsroot/current ip=dhcp rw noinitrd root delay=3"
355+# CONFIG_XIP_KERNEL is not set
356+# CONFIG_KEXEC is not set
357+
358+#
359+# CPU Power Management
360+#
361+# CONFIG_CPU_FREQ is not set
362+# CONFIG_CPU_IDLE is not set
363+
364+#
365+# Floating point emulation
366+#
367+
368+#
369+# At least one emulation must be selected
370+#
371+CONFIG_FPE_NWFPE=y
372+# CONFIG_FPE_NWFPE_XP is not set
373+# CONFIG_FPE_FASTFPE is not set
374+CONFIG_VFP=y
375+CONFIG_VFPv3=y
376+CONFIG_NEON=y
377+
378+#
379+# Userspace binary formats
380+#
381+CONFIG_BINFMT_ELF=y
382+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
383+CONFIG_HAVE_AOUT=y
384+# CONFIG_BINFMT_AOUT is not set
385+# CONFIG_BINFMT_MISC is not set
386+
387+#
388+# Power management options
389+#
390+# CONFIG_PM is not set
391+CONFIG_ARCH_SUSPEND_POSSIBLE=y
392+CONFIG_NET=y
393+
394+#
395+# Networking options
396+#
397+CONFIG_PACKET=y
398+# CONFIG_PACKET_MMAP is not set
399+CONFIG_UNIX=y
400+CONFIG_XFRM=y
401+# CONFIG_XFRM_USER is not set
402+# CONFIG_XFRM_SUB_POLICY is not set
403+# CONFIG_XFRM_MIGRATE is not set
404+# CONFIG_XFRM_STATISTICS is not set
405+CONFIG_NET_KEY=y
406+# CONFIG_NET_KEY_MIGRATE is not set
407+CONFIG_INET=y
408+CONFIG_IP_MULTICAST=y
409+# CONFIG_IP_ADVANCED_ROUTER is not set
410+CONFIG_IP_FIB_HASH=y
411+CONFIG_IP_PNP=y
412+CONFIG_IP_PNP_DHCP=y
413+CONFIG_IP_PNP_BOOTP=y
414+CONFIG_IP_PNP_RARP=y
415+# CONFIG_NET_IPIP is not set
416+# CONFIG_NET_IPGRE is not set
417+# CONFIG_IP_MROUTE is not set
418+# CONFIG_ARPD is not set
419+# CONFIG_SYN_COOKIES is not set
420+# CONFIG_INET_AH is not set
421+# CONFIG_INET_ESP is not set
422+# CONFIG_INET_IPCOMP is not set
423+# CONFIG_INET_XFRM_TUNNEL is not set
424+# CONFIG_INET_TUNNEL is not set
425+CONFIG_INET_XFRM_MODE_TRANSPORT=y
426+CONFIG_INET_XFRM_MODE_TUNNEL=y
427+CONFIG_INET_XFRM_MODE_BEET=y
428+# CONFIG_INET_LRO is not set
429+CONFIG_INET_DIAG=y
430+CONFIG_INET_TCP_DIAG=y
431+# CONFIG_TCP_CONG_ADVANCED is not set
432+CONFIG_TCP_CONG_CUBIC=y
433+CONFIG_DEFAULT_TCP_CONG="cubic"
434+# CONFIG_TCP_MD5SIG is not set
435+# CONFIG_IPV6 is not set
436+# CONFIG_NETWORK_SECMARK is not set
437+# CONFIG_NETFILTER is not set
438+# CONFIG_IP_DCCP is not set
439+# CONFIG_IP_SCTP is not set
440+# CONFIG_RDS is not set
441+# CONFIG_TIPC is not set
442+# CONFIG_ATM is not set
443+# CONFIG_BRIDGE is not set
444+# CONFIG_NET_DSA is not set
445+# CONFIG_VLAN_8021Q is not set
446+# CONFIG_DECNET is not set
447+# CONFIG_LLC2 is not set
448+# CONFIG_IPX is not set
449+# CONFIG_ATALK is not set
450+# CONFIG_X25 is not set
451+# CONFIG_LAPB is not set
452+# CONFIG_ECONET is not set
453+# CONFIG_WAN_ROUTER is not set
454+# CONFIG_PHONET is not set
455+# CONFIG_IEEE802154 is not set
456+# CONFIG_NET_SCHED is not set
457+# CONFIG_DCB is not set
458+
459+#
460+# Network testing
461+#
462+# CONFIG_NET_PKTGEN is not set
463+# CONFIG_HAMRADIO is not set
464+# CONFIG_CAN is not set
465+CONFIG_IRDA=y
466+
467+#
468+# IrDA protocols
469+#
470+# CONFIG_IRLAN is not set
471+# CONFIG_IRCOMM is not set
472+# CONFIG_IRDA_ULTRA is not set
473+
474+#
475+# IrDA options
476+#
477+# CONFIG_IRDA_CACHE_LAST_LSAP is not set
478+# CONFIG_IRDA_FAST_RR is not set
479+# CONFIG_IRDA_DEBUG is not set
480+
481+#
482+# Infrared-port device drivers
483+#
484+
485+#
486+# SIR device drivers
487+#
488+# CONFIG_IRTTY_SIR is not set
489+
490+#
491+# Dongle support
492+#
493+# CONFIG_KINGSUN_DONGLE is not set
494+# CONFIG_KSDAZZLE_DONGLE is not set
495+# CONFIG_KS959_DONGLE is not set
496+
497+#
498+# FIR device drivers
499+#
500+# CONFIG_USB_IRDA is not set
501+# CONFIG_SIGMATEL_FIR is not set
502+# CONFIG_MCS_FIR is not set
503+CONFIG_BT=y
504+# CONFIG_BT_L2CAP is not set
505+# CONFIG_BT_SCO is not set
506+
507+#
508+# Bluetooth device drivers
509+#
510+# CONFIG_BT_HCIBTUSB is not set
511+# CONFIG_BT_HCIBTSDIO is not set
512+# CONFIG_BT_HCIUART is not set
513+# CONFIG_BT_HCIBCM203X is not set
514+# CONFIG_BT_HCIBPA10X is not set
515+# CONFIG_BT_HCIBFUSB is not set
516+# CONFIG_BT_HCIVHCI is not set
517+# CONFIG_BT_MRVL is not set
518+# CONFIG_AF_RXRPC is not set
519+CONFIG_WIRELESS=y
520+# CONFIG_CFG80211 is not set
521+# CONFIG_LIB80211 is not set
522+
523+#
524+# CFG80211 needs to be enabled for MAC80211
525+#
526+# CONFIG_WIMAX is not set
527+# CONFIG_RFKILL is not set
528+# CONFIG_NET_9P is not set
529+
530+#
531+# Device Drivers
532+#
533+
534+#
535+# Generic Driver Options
536+#
537+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
538+# CONFIG_DEVTMPFS is not set
539+CONFIG_STANDALONE=y
540+# CONFIG_PREVENT_FIRMWARE_BUILD is not set
541+# CONFIG_FW_LOADER is not set
542+# CONFIG_DEBUG_DRIVER is not set
543+# CONFIG_DEBUG_DEVRES is not set
544+# CONFIG_SYS_HYPERVISOR is not set
545+# CONFIG_CONNECTOR is not set
546+CONFIG_MTD=y
547+# CONFIG_MTD_DEBUG is not set
548+# CONFIG_MTD_TESTS is not set
549+# CONFIG_MTD_CONCAT is not set
550+CONFIG_MTD_PARTITIONS=y
551+# CONFIG_MTD_REDBOOT_PARTS is not set
552+# CONFIG_MTD_CMDLINE_PARTS is not set
553+# CONFIG_MTD_AFS_PARTS is not set
554+# CONFIG_MTD_AR7_PARTS is not set
555+
556+#
557+# User Modules And Translation Layers
558+#
559+CONFIG_MTD_CHAR=y
560+CONFIG_MTD_BLKDEVS=y
561+CONFIG_MTD_BLOCK=y
562+# CONFIG_FTL is not set
563+# CONFIG_NFTL is not set
564+# CONFIG_INFTL is not set
565+# CONFIG_RFD_FTL is not set
566+# CONFIG_SSFDC is not set
567+# CONFIG_MTD_OOPS is not set
568+
569+#
570+# RAM/ROM/Flash chip drivers
571+#
572+# CONFIG_MTD_CFI is not set
573+# CONFIG_MTD_JEDECPROBE is not set
574+CONFIG_MTD_MAP_BANK_WIDTH_1=y
575+CONFIG_MTD_MAP_BANK_WIDTH_2=y
576+CONFIG_MTD_MAP_BANK_WIDTH_4=y
577+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
578+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
579+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
580+CONFIG_MTD_CFI_I1=y
581+CONFIG_MTD_CFI_I2=y
582+# CONFIG_MTD_CFI_I4 is not set
583+# CONFIG_MTD_CFI_I8 is not set
584+CONFIG_MTD_RAM=y
585+CONFIG_MTD_ROM=y
586+# CONFIG_MTD_ABSENT is not set
587+
588+#
589+# Mapping drivers for chip access
590+#
591+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
592+# CONFIG_MTD_PHYSMAP is not set
593+# CONFIG_MTD_PLATRAM is not set
594+
595+#
596+# Self-contained MTD device drivers
597+#
598+# CONFIG_MTD_DATAFLASH is not set
599+# CONFIG_MTD_M25P80 is not set
600+# CONFIG_MTD_SST25L is not set
601+# CONFIG_MTD_SLRAM is not set
602+# CONFIG_MTD_PHRAM is not set
603+# CONFIG_MTD_MTDRAM is not set
604+# CONFIG_MTD_BLOCK2MTD is not set
605+
606+#
607+# Disk-On-Chip Device Drivers
608+#
609+# CONFIG_MTD_DOC2000 is not set
610+# CONFIG_MTD_DOC2001 is not set
611+# CONFIG_MTD_DOC2001PLUS is not set
612+CONFIG_MTD_NAND=y
613+# CONFIG_MTD_NAND_VERIFY_WRITE is not set
614+# CONFIG_MTD_NAND_ECC_SMC is not set
615+# CONFIG_MTD_NAND_MUSEUM_IDS is not set
616+# CONFIG_MTD_NAND_GPIO is not set
617+CONFIG_MTD_NAND_OMAP2=y
618+CONFIG_MTD_NAND_OMAP_PREFETCH=y
619+# CONFIG_MTD_NAND_OMAP_PREFETCH_DMA is not set
620+CONFIG_MTD_NAND_IDS=y
621+# CONFIG_MTD_NAND_DISKONCHIP is not set
622+# CONFIG_MTD_NAND_NANDSIM is not set
623+# CONFIG_MTD_NAND_PLATFORM is not set
624+# CONFIG_MTD_ALAUDA is not set
625+# CONFIG_MTD_ONENAND is not set
626+
627+#
628+# LPDDR flash memory drivers
629+#
630+# CONFIG_MTD_LPDDR is not set
631+
632+#
633+# UBI - Unsorted block images
634+#
635+CONFIG_MTD_UBI=y
636+CONFIG_MTD_UBI_WL_THRESHOLD=4096
637+CONFIG_MTD_UBI_BEB_RESERVE=1
638+# CONFIG_MTD_UBI_GLUEBI is not set
639+
640+#
641+# UBI debugging options
642+#
643+# CONFIG_MTD_UBI_DEBUG is not set
644+# CONFIG_PARPORT is not set
645+CONFIG_BLK_DEV=y
646+# CONFIG_BLK_DEV_COW_COMMON is not set
647+CONFIG_BLK_DEV_LOOP=y
648+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
649+
650+#
651+# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
652+#
653+# CONFIG_BLK_DEV_NBD is not set
654+# CONFIG_BLK_DEV_UB is not set
655+CONFIG_BLK_DEV_RAM=y
656+CONFIG_BLK_DEV_RAM_COUNT=16
657+CONFIG_BLK_DEV_RAM_SIZE=40960
658+# CONFIG_BLK_DEV_XIP is not set
659+# CONFIG_CDROM_PKTCDVD is not set
660+# CONFIG_ATA_OVER_ETH is not set
661+# CONFIG_MG_DISK is not set
662+# CONFIG_MISC_DEVICES is not set
663+CONFIG_HAVE_IDE=y
664+# CONFIG_IDE is not set
665+
666+#
667+# SCSI device support
668+#
669+# CONFIG_RAID_ATTRS is not set
670+CONFIG_SCSI=y
671+CONFIG_SCSI_DMA=y
672+# CONFIG_SCSI_TGT is not set
673+# CONFIG_SCSI_NETLINK is not set
674+CONFIG_SCSI_PROC_FS=y
675+
676+#
677+# SCSI support type (disk, tape, CD-ROM)
678+#
679+CONFIG_BLK_DEV_SD=y
680+# CONFIG_CHR_DEV_ST is not set
681+# CONFIG_CHR_DEV_OSST is not set
682+# CONFIG_BLK_DEV_SR is not set
683+# CONFIG_CHR_DEV_SG is not set
684+# CONFIG_CHR_DEV_SCH is not set
685+# CONFIG_SCSI_MULTI_LUN is not set
686+# CONFIG_SCSI_CONSTANTS is not set
687+# CONFIG_SCSI_LOGGING is not set
688+# CONFIG_SCSI_SCAN_ASYNC is not set
689+CONFIG_SCSI_WAIT_SCAN=m
690+
691+#
692+# SCSI Transports
693+#
694+# CONFIG_SCSI_SPI_ATTRS is not set
695+# CONFIG_SCSI_FC_ATTRS is not set
696+# CONFIG_SCSI_ISCSI_ATTRS is not set
697+# CONFIG_SCSI_SAS_LIBSAS is not set
698+# CONFIG_SCSI_SRP_ATTRS is not set
699+CONFIG_SCSI_LOWLEVEL=y
700+# CONFIG_ISCSI_TCP is not set
701+# CONFIG_LIBFC is not set
702+# CONFIG_LIBFCOE is not set
703+# CONFIG_SCSI_DEBUG is not set
704+# CONFIG_SCSI_DH is not set
705+# CONFIG_SCSI_OSD_INITIATOR is not set
706+# CONFIG_ATA is not set
707+# CONFIG_MD is not set
708+CONFIG_NETDEVICES=y
709+# CONFIG_DUMMY is not set
710+# CONFIG_BONDING is not set
711+# CONFIG_MACVLAN is not set
712+# CONFIG_EQUALIZER is not set
713+# CONFIG_TUN is not set
714+# CONFIG_VETH is not set
715+# CONFIG_PHYLIB is not set
716+CONFIG_NET_ETHERNET=y
717+CONFIG_MII=y
718+# CONFIG_AX88796 is not set
719+# CONFIG_SMC91X is not set
720+CONFIG_DM9000=y
721+CONFIG_DM9000_DEBUGLEVEL=4
722+CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL=y
723+# CONFIG_ENC28J60 is not set
724+# CONFIG_ETHOC is not set
725+# CONFIG_SMC911X is not set
726+# CONFIG_SMSC911X is not set
727+# CONFIG_DNET is not set
728+# CONFIG_IBM_NEW_EMAC_ZMII is not set
729+# CONFIG_IBM_NEW_EMAC_RGMII is not set
730+# CONFIG_IBM_NEW_EMAC_TAH is not set
731+# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
732+# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
733+# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
734+# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
735+# CONFIG_B44 is not set
736+# CONFIG_KS8842 is not set
737+# CONFIG_KS8851 is not set
738+# CONFIG_KS8851_MLL is not set
739+# CONFIG_NETDEV_1000 is not set
740+# CONFIG_NETDEV_10000 is not set
741+# CONFIG_WLAN is not set
742+
743+#
744+# Enable WiMAX (Networking options) to see the WiMAX drivers
745+#
746+
747+#
748+# USB Network Adapters
749+#
750+# CONFIG_USB_CATC is not set
751+# CONFIG_USB_KAWETH is not set
752+# CONFIG_USB_PEGASUS is not set
753+# CONFIG_USB_RTL8150 is not set
754+# CONFIG_USB_USBNET is not set
755+# CONFIG_WAN is not set
756+# CONFIG_PPP is not set
757+# CONFIG_SLIP is not set
758+# CONFIG_NETCONSOLE is not set
759+# CONFIG_NETPOLL is not set
760+# CONFIG_NET_POLL_CONTROLLER is not set
761+# CONFIG_ISDN is not set
762+# CONFIG_PHONE is not set
763+
764+#
765+# Input device support
766+#
767+CONFIG_INPUT=y
768+# CONFIG_INPUT_FF_MEMLESS is not set
769+# CONFIG_INPUT_POLLDEV is not set
770+# CONFIG_INPUT_SPARSEKMAP is not set
771+
772+#
773+# Userland interfaces
774+#
775+# CONFIG_INPUT_MOUSEDEV is not set
776+# CONFIG_INPUT_JOYDEV is not set
777+CONFIG_INPUT_EVDEV=y
778+# CONFIG_INPUT_EVBUG is not set
779+
780+#
781+# Input Device Drivers
782+#
783+CONFIG_INPUT_KEYBOARD=y
784+# CONFIG_KEYBOARD_ADP5588 is not set
785+CONFIG_KEYBOARD_ATKBD=y
786+# CONFIG_QT2160 is not set
787+# CONFIG_KEYBOARD_LKKBD is not set
788+# CONFIG_KEYBOARD_GPIO is not set
789+CONFIG_KEYBOARD_MATRIX=y
790+# CONFIG_KEYBOARD_LM8323 is not set
791+# CONFIG_KEYBOARD_MAX7359 is not set
792+# CONFIG_KEYBOARD_NEWTON is not set
793+# CONFIG_KEYBOARD_OPENCORES is not set
794+# CONFIG_KEYBOARD_STOWAWAY is not set
795+# CONFIG_KEYBOARD_SUNKBD is not set
796+CONFIG_KEYBOARD_TWL4030=y
797+# CONFIG_KEYBOARD_XTKBD is not set
798+# CONFIG_INPUT_MOUSE is not set
799+# CONFIG_INPUT_JOYSTICK is not set
800+# CONFIG_INPUT_TABLET is not set
801+CONFIG_INPUT_TOUCHSCREEN=y
802+CONFIG_TOUCHSCREEN_ADS7846=y
803+# CONFIG_TOUCHSCREEN_AD7877 is not set
804+# CONFIG_TOUCHSCREEN_AD7879_I2C is not set
805+# CONFIG_TOUCHSCREEN_AD7879_SPI is not set
806+# CONFIG_TOUCHSCREEN_AD7879 is not set
807+# CONFIG_TOUCHSCREEN_DYNAPRO is not set
808+# CONFIG_TOUCHSCREEN_EETI is not set
809+# CONFIG_TOUCHSCREEN_FUJITSU is not set
810+# CONFIG_TOUCHSCREEN_GUNZE is not set
811+# CONFIG_TOUCHSCREEN_ELO is not set
812+# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
813+# CONFIG_TOUCHSCREEN_MCS5000 is not set
814+# CONFIG_TOUCHSCREEN_MTOUCH is not set
815+# CONFIG_TOUCHSCREEN_INEXIO is not set
816+# CONFIG_TOUCHSCREEN_MK712 is not set
817+# CONFIG_TOUCHSCREEN_PENMOUNT is not set
818+# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
819+# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
820+# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
821+# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
822+# CONFIG_TOUCHSCREEN_TSC2007 is not set
823+# CONFIG_TOUCHSCREEN_W90X900 is not set
824+# CONFIG_INPUT_MISC is not set
825+
826+#
827+# Hardware I/O ports
828+#
829+CONFIG_SERIO=y
830+CONFIG_SERIO_SERPORT=y
831+CONFIG_SERIO_LIBPS2=y
832+CONFIG_SERIO_RAW=y
833+# CONFIG_SERIO_ALTERA_PS2 is not set
834+# CONFIG_GAMEPORT is not set
835+
836+#
837+# Character devices
838+#
839+CONFIG_VT=y
840+CONFIG_CONSOLE_TRANSLATIONS=y
841+CONFIG_VT_CONSOLE=y
842+CONFIG_HW_CONSOLE=y
843+# CONFIG_VT_HW_CONSOLE_BINDING is not set
844+CONFIG_DEVKMEM=y
845+# CONFIG_SERIAL_NONSTANDARD is not set
846+
847+#
848+# Serial drivers
849+#
850+CONFIG_SERIAL_8250=y
851+CONFIG_SERIAL_8250_CONSOLE=y
852+CONFIG_SERIAL_8250_NR_UARTS=32
853+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
854+CONFIG_SERIAL_8250_EXTENDED=y
855+CONFIG_SERIAL_8250_MANY_PORTS=y
856+CONFIG_SERIAL_8250_SHARE_IRQ=y
857+CONFIG_SERIAL_8250_DETECT_IRQ=y
858+CONFIG_SERIAL_8250_RSA=y
859+
860+#
861+# Non-8250 serial port support
862+#
863+# CONFIG_SERIAL_MAX3100 is not set
864+CONFIG_SERIAL_CORE=y
865+CONFIG_SERIAL_CORE_CONSOLE=y
866+CONFIG_UNIX98_PTYS=y
867+# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
868+# CONFIG_LEGACY_PTYS is not set
869+# CONFIG_IPMI_HANDLER is not set
870+CONFIG_HW_RANDOM=y
871+# CONFIG_HW_RANDOM_TIMERIOMEM is not set
872+# CONFIG_R3964 is not set
873+CONFIG_RAW_DRIVER=y
874+CONFIG_MAX_RAW_DEVS=256
875+# CONFIG_TCG_TPM is not set
876+CONFIG_I2C=y
877+CONFIG_I2C_BOARDINFO=y
878+CONFIG_I2C_COMPAT=y
879+CONFIG_I2C_CHARDEV=y
880+CONFIG_I2C_HELPER_AUTO=y
881+
882+#
883+# I2C Hardware Bus support
884+#
885+
886+#
887+# I2C system bus drivers (mostly embedded / system-on-chip)
888+#
889+# CONFIG_I2C_DESIGNWARE is not set
890+# CONFIG_I2C_GPIO is not set
891+# CONFIG_I2C_OCORES is not set
892+CONFIG_I2C_OMAP=y
893+# CONFIG_I2C_SIMTEC is not set
894+
895+#
896+# External I2C/SMBus adapter drivers
897+#
898+# CONFIG_I2C_PARPORT_LIGHT is not set
899+# CONFIG_I2C_TAOS_EVM is not set
900+# CONFIG_I2C_TINY_USB is not set
901+
902+#
903+# Other I2C/SMBus bus drivers
904+#
905+# CONFIG_I2C_PCA_PLATFORM is not set
906+# CONFIG_I2C_STUB is not set
907+
908+#
909+# Miscellaneous I2C Chip support
910+#
911+# CONFIG_SENSORS_TSL2550 is not set
912+# CONFIG_I2C_DEBUG_CORE is not set
913+# CONFIG_I2C_DEBUG_ALGO is not set
914+# CONFIG_I2C_DEBUG_BUS is not set
915+# CONFIG_I2C_DEBUG_CHIP is not set
916+CONFIG_SPI=y
917+# CONFIG_SPI_DEBUG is not set
918+CONFIG_SPI_MASTER=y
919+
920+#
921+# SPI Master Controller Drivers
922+#
923+# CONFIG_SPI_BITBANG is not set
924+# CONFIG_SPI_GPIO is not set
925+CONFIG_SPI_OMAP24XX=y
926+# CONFIG_SPI_XILINX is not set
927+# CONFIG_SPI_DESIGNWARE is not set
928+
929+#
930+# SPI Protocol Masters
931+#
932+# CONFIG_SPI_SPIDEV is not set
933+# CONFIG_SPI_TLE62X0 is not set
934+
935+#
936+# PPS support
937+#
938+# CONFIG_PPS is not set
939+CONFIG_ARCH_REQUIRE_GPIOLIB=y
940+CONFIG_GPIOLIB=y
941+# CONFIG_DEBUG_GPIO is not set
942+# CONFIG_GPIO_SYSFS is not set
943+
944+#
945+# Memory mapped GPIO expanders:
946+#
947+
948+#
949+# I2C GPIO expanders:
950+#
951+# CONFIG_GPIO_MAX732X is not set
952+# CONFIG_GPIO_PCA953X is not set
953+# CONFIG_GPIO_PCF857X is not set
954+CONFIG_GPIO_TWL4030=y
955+# CONFIG_GPIO_ADP5588 is not set
956+
957+#
958+# PCI GPIO expanders:
959+#
960+
961+#
962+# SPI GPIO expanders:
963+#
964+# CONFIG_GPIO_MAX7301 is not set
965+# CONFIG_GPIO_MCP23S08 is not set
966+# CONFIG_GPIO_MC33880 is not set
967+
968+#
969+# AC97 GPIO expanders:
970+#
971+# CONFIG_W1 is not set
972+# CONFIG_POWER_SUPPLY is not set
973+# CONFIG_HWMON is not set
974+# CONFIG_THERMAL is not set
975+# CONFIG_WATCHDOG is not set
976+CONFIG_SSB_POSSIBLE=y
977+
978+#
979+# Sonics Silicon Backplane
980+#
981+# CONFIG_SSB is not set
982+
983+#
984+# Multifunction device drivers
985+#
986+CONFIG_MFD_CORE=y
987+# CONFIG_MFD_SM501 is not set
988+# CONFIG_MFD_ASIC3 is not set
989+# CONFIG_HTC_EGPIO is not set
990+# CONFIG_HTC_PASIC3 is not set
991+# CONFIG_TPS65010 is not set
992+CONFIG_TWL4030_CORE=y
993+CONFIG_TWL4030_POWER=y
994+CONFIG_TWL4030_CODEC=y
995+# CONFIG_MFD_TMIO is not set
996+# CONFIG_MFD_T7L66XB is not set
997+# CONFIG_MFD_TC6387XB is not set
998+# CONFIG_MFD_TC6393XB is not set
999+# CONFIG_PMIC_DA903X is not set
1000+# CONFIG_PMIC_ADP5520 is not set
1001+# CONFIG_MFD_WM8400 is not set
1002+# CONFIG_MFD_WM831X is not set
1003+# CONFIG_MFD_WM8350_I2C is not set
1004+# CONFIG_MFD_PCF50633 is not set
1005+# CONFIG_MFD_MC13783 is not set
1006+# CONFIG_AB3100_CORE is not set
1007+# CONFIG_EZX_PCAP is not set
1008+# CONFIG_MFD_88PM8607 is not set
1009+# CONFIG_AB4500_CORE is not set
1010+CONFIG_REGULATOR=y
1011+# CONFIG_REGULATOR_DEBUG is not set
1012+# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
1013+# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
1014+# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
1015+# CONFIG_REGULATOR_BQ24022 is not set
1016+# CONFIG_REGULATOR_MAX1586 is not set
1017+# CONFIG_REGULATOR_MAX8660 is not set
1018+CONFIG_REGULATOR_TWL4030=y
1019+# CONFIG_REGULATOR_LP3971 is not set
1020+# CONFIG_REGULATOR_TPS65023 is not set
1021+# CONFIG_REGULATOR_TPS6507X is not set
1022+# CONFIG_MEDIA_SUPPORT is not set
1023+
1024+#
1025+# Graphics support
1026+#
1027+# CONFIG_VGASTATE is not set
1028+# CONFIG_VIDEO_OUTPUT_CONTROL is not set
1029+CONFIG_FB=y
1030+# CONFIG_FIRMWARE_EDID is not set
1031+# CONFIG_FB_DDC is not set
1032+# CONFIG_FB_BOOT_VESA_SUPPORT is not set
1033+CONFIG_FB_CFB_FILLRECT=y
1034+CONFIG_FB_CFB_COPYAREA=y
1035+CONFIG_FB_CFB_IMAGEBLIT=y
1036+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
1037+# CONFIG_FB_SYS_FILLRECT is not set
1038+# CONFIG_FB_SYS_COPYAREA is not set
1039+# CONFIG_FB_SYS_IMAGEBLIT is not set
1040+CONFIG_FB_FOREIGN_ENDIAN=y
1041+CONFIG_FB_BOTH_ENDIAN=y
1042+# CONFIG_FB_BIG_ENDIAN is not set
1043+# CONFIG_FB_LITTLE_ENDIAN is not set
1044+# CONFIG_FB_SYS_FOPS is not set
1045+# CONFIG_FB_SVGALIB is not set
1046+# CONFIG_FB_MACMODES is not set
1047+# CONFIG_FB_BACKLIGHT is not set
1048+# CONFIG_FB_MODE_HELPERS is not set
1049+# CONFIG_FB_TILEBLITTING is not set
1050+
1051+#
1052+# Frame buffer hardware drivers
1053+#
1054+# CONFIG_FB_S1D13XXX is not set
1055+# CONFIG_FB_TMIO is not set
1056+# CONFIG_FB_VIRTUAL is not set
1057+# CONFIG_FB_METRONOME is not set
1058+# CONFIG_FB_MB862XX is not set
1059+# CONFIG_FB_BROADSHEET is not set
1060+CONFIG_FB_OMAP_BOOTLOADER_INIT=y
1061+CONFIG_OMAP2_VRAM=y
1062+CONFIG_OMAP2_VRFB=y
1063+CONFIG_OMAP2_DSS=y
1064+CONFIG_OMAP2_VRAM_SIZE=0
1065+CONFIG_OMAP2_DSS_DEBUG_SUPPORT=y
1066+# CONFIG_OMAP2_DSS_COLLECT_IRQ_STATS is not set
1067+# CONFIG_OMAP2_DSS_RFBI is not set
1068+CONFIG_OMAP2_DSS_VENC=y
1069+# CONFIG_OMAP2_DSS_SDI is not set
1070+# CONFIG_OMAP2_DSS_DSI is not set
1071+# CONFIG_OMAP2_DSS_FAKE_VSYNC is not set
1072+CONFIG_OMAP2_DSS_MIN_FCK_PER_PCK=0
1073+CONFIG_FB_OMAP2=y
1074+CONFIG_FB_OMAP2_DEBUG_SUPPORT=y
1075+# CONFIG_FB_OMAP2_FORCE_AUTO_UPDATE is not set
1076+CONFIG_FB_OMAP2_NUM_FBS=3
1077+
1078+#
1079+# OMAP2/3 Display Device Drivers
1080+#
1081+CONFIG_PANEL_GENERIC=y
1082+# CONFIG_PANEL_SHARP_LS037V7DW01 is not set
1083+CONFIG_PANEL_INNOLUX_AT070TN83=y
1084+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
1085+
1086+#
1087+# Display device support
1088+#
1089+CONFIG_DISPLAY_SUPPORT=y
1090+
1091+#
1092+# Display hardware drivers
1093+#
1094+
1095+#
1096+# Console display driver support
1097+#
1098+# CONFIG_VGA_CONSOLE is not set
1099+CONFIG_DUMMY_CONSOLE=y
1100+CONFIG_FRAMEBUFFER_CONSOLE=y
1101+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
1102+# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
1103+# CONFIG_FONTS is not set
1104+CONFIG_FONT_8x8=y
1105+CONFIG_FONT_8x16=y
1106+CONFIG_LOGO=y
1107+# CONFIG_LOGO_LINUX_MONO is not set
1108+# CONFIG_LOGO_LINUX_VGA16 is not set
1109+CONFIG_LOGO_LINUX_CLUT224=y
1110+CONFIG_SOUND=y
1111+# CONFIG_SOUND_OSS_CORE is not set
1112+CONFIG_SND=y
1113+CONFIG_SND_TIMER=y
1114+CONFIG_SND_PCM=y
1115+CONFIG_SND_JACK=y
1116+# CONFIG_SND_SEQUENCER is not set
1117+# CONFIG_SND_MIXER_OSS is not set
1118+# CONFIG_SND_PCM_OSS is not set
1119+# CONFIG_SND_HRTIMER is not set
1120+# CONFIG_SND_DYNAMIC_MINORS is not set
1121+CONFIG_SND_SUPPORT_OLD_API=y
1122+CONFIG_SND_VERBOSE_PROCFS=y
1123+# CONFIG_SND_VERBOSE_PRINTK is not set
1124+# CONFIG_SND_DEBUG is not set
1125+# CONFIG_SND_RAWMIDI_SEQ is not set
1126+# CONFIG_SND_OPL3_LIB_SEQ is not set
1127+# CONFIG_SND_OPL4_LIB_SEQ is not set
1128+# CONFIG_SND_SBAWE_SEQ is not set
1129+# CONFIG_SND_EMU10K1_SEQ is not set
1130+CONFIG_SND_DRIVERS=y
1131+# CONFIG_SND_DUMMY is not set
1132+# CONFIG_SND_MTPAV is not set
1133+# CONFIG_SND_SERIAL_U16550 is not set
1134+# CONFIG_SND_MPU401 is not set
1135+CONFIG_SND_ARM=y
1136+CONFIG_SND_SPI=y
1137+CONFIG_SND_USB=y
1138+# CONFIG_SND_USB_AUDIO is not set
1139+# CONFIG_SND_USB_CAIAQ is not set
1140+CONFIG_SND_SOC=y
1141+CONFIG_SND_OMAP_SOC=y
1142+CONFIG_SND_OMAP_SOC_MCBSP=y
1143+CONFIG_SND_OMAP_SOC_OMAP3_BEAGLE=y
1144+CONFIG_SND_SOC_I2C_AND_SPI=y
1145+# CONFIG_SND_SOC_ALL_CODECS is not set
1146+CONFIG_SND_SOC_TWL4030=y
1147+# CONFIG_SOUND_PRIME is not set
1148+CONFIG_HID_SUPPORT=y
1149+CONFIG_HID=y
1150+CONFIG_HIDRAW=y
1151+
1152+#
1153+# USB Input Devices
1154+#
1155+CONFIG_USB_HID=y
1156+# CONFIG_HID_PID is not set
1157+CONFIG_USB_HIDDEV=y
1158+
1159+#
1160+# Special HID drivers
1161+#
1162+CONFIG_HID_A4TECH=y
1163+CONFIG_HID_APPLE=y
1164+CONFIG_HID_BELKIN=y
1165+CONFIG_HID_CHERRY=y
1166+CONFIG_HID_CHICONY=y
1167+CONFIG_HID_CYPRESS=y
1168+# CONFIG_HID_DRAGONRISE is not set
1169+CONFIG_HID_EZKEY=y
1170+# CONFIG_HID_KYE is not set
1171+CONFIG_HID_GYRATION=y
1172+# CONFIG_HID_TWINHAN is not set
1173+# CONFIG_HID_KENSINGTON is not set
1174+CONFIG_HID_LOGITECH=y
1175+# CONFIG_LOGITECH_FF is not set
1176+# CONFIG_LOGIRUMBLEPAD2_FF is not set
1177+CONFIG_HID_MICROSOFT=y
1178+CONFIG_HID_MONTEREY=y
1179+# CONFIG_HID_NTRIG is not set
1180+CONFIG_HID_PANTHERLORD=y
1181+# CONFIG_PANTHERLORD_FF is not set
1182+CONFIG_HID_PETALYNX=y
1183+CONFIG_HID_SAMSUNG=y
1184+CONFIG_HID_SONY=y
1185+CONFIG_HID_SUNPLUS=y
1186+# CONFIG_HID_GREENASIA is not set
1187+# CONFIG_HID_SMARTJOYPLUS is not set
1188+# CONFIG_HID_TOPSEED is not set
1189+# CONFIG_HID_THRUSTMASTER is not set
1190+# CONFIG_HID_ZEROPLUS is not set
1191+CONFIG_USB_SUPPORT=y
1192+CONFIG_USB_ARCH_HAS_HCD=y
1193+CONFIG_USB_ARCH_HAS_OHCI=y
1194+CONFIG_USB_ARCH_HAS_EHCI=y
1195+CONFIG_USB=y
1196+# CONFIG_USB_DEBUG is not set
1197+CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
1198+
1199+#
1200+# Miscellaneous USB options
1201+#
1202+# CONFIG_USB_DEVICEFS is not set
1203+# CONFIG_USB_DEVICE_CLASS is not set
1204+# CONFIG_USB_DYNAMIC_MINORS is not set
1205+# CONFIG_USB_OTG is not set
1206+# CONFIG_USB_OTG_WHITELIST is not set
1207+# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1208+CONFIG_USB_MON=y
1209+# CONFIG_USB_WUSB is not set
1210+# CONFIG_USB_WUSB_CBAF is not set
1211+
1212+#
1213+# USB Host Controller Drivers
1214+#
1215+# CONFIG_USB_C67X00_HCD is not set
1216+CONFIG_USB_EHCI_HCD=y
1217+CONFIG_USB_EHCI_ROOT_HUB_TT=y
1218+# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1219+# CONFIG_USB_OXU210HP_HCD is not set
1220+# CONFIG_USB_ISP116X_HCD is not set
1221+# CONFIG_USB_ISP1760_HCD is not set
1222+# CONFIG_USB_ISP1362_HCD is not set
1223+# CONFIG_USB_OHCI_HCD is not set
1224+# CONFIG_USB_SL811_HCD is not set
1225+# CONFIG_USB_R8A66597_HCD is not set
1226+# CONFIG_USB_HWA_HCD is not set
1227+CONFIG_USB_MUSB_HDRC=y
1228+CONFIG_USB_MUSB_SOC=y
1229+
1230+#
1231+# OMAP 343x high speed USB support
1232+#
1233+CONFIG_USB_MUSB_HOST=y
1234+# CONFIG_USB_MUSB_PERIPHERAL is not set
1235+# CONFIG_USB_MUSB_OTG is not set
1236+# CONFIG_USB_GADGET_MUSB_HDRC is not set
1237+CONFIG_USB_MUSB_HDRC_HCD=y
1238+# CONFIG_MUSB_PIO_ONLY is not set
1239+CONFIG_USB_INVENTRA_DMA=y
1240+# CONFIG_USB_TI_CPPI_DMA is not set
1241+# CONFIG_USB_MUSB_DEBUG is not set
1242+
1243+#
1244+# USB Device Class drivers
1245+#
1246+# CONFIG_USB_ACM is not set
1247+# CONFIG_USB_PRINTER is not set
1248+# CONFIG_USB_WDM is not set
1249+# CONFIG_USB_TMC is not set
1250+
1251+#
1252+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1253+#
1254+
1255+#
1256+# also be needed; see USB_STORAGE Help for more info
1257+#
1258+CONFIG_USB_STORAGE=m
1259+# CONFIG_USB_STORAGE_DEBUG is not set
1260+# CONFIG_USB_STORAGE_DATAFAB is not set
1261+# CONFIG_USB_STORAGE_FREECOM is not set
1262+# CONFIG_USB_STORAGE_ISD200 is not set
1263+# CONFIG_USB_STORAGE_USBAT is not set
1264+# CONFIG_USB_STORAGE_SDDR09 is not set
1265+# CONFIG_USB_STORAGE_SDDR55 is not set
1266+# CONFIG_USB_STORAGE_JUMPSHOT is not set
1267+# CONFIG_USB_STORAGE_ALAUDA is not set
1268+# CONFIG_USB_STORAGE_ONETOUCH is not set
1269+# CONFIG_USB_STORAGE_KARMA is not set
1270+# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1271+# CONFIG_USB_LIBUSUAL is not set
1272+
1273+#
1274+# USB Imaging devices
1275+#
1276+# CONFIG_USB_MDC800 is not set
1277+# CONFIG_USB_MICROTEK is not set
1278+
1279+#
1280+# USB port drivers
1281+#
1282+# CONFIG_USB_SERIAL is not set
1283+
1284+#
1285+# USB Miscellaneous drivers
1286+#
1287+# CONFIG_USB_EMI62 is not set
1288+# CONFIG_USB_EMI26 is not set
1289+# CONFIG_USB_ADUTUX is not set
1290+# CONFIG_USB_SEVSEG is not set
1291+# CONFIG_USB_RIO500 is not set
1292+# CONFIG_USB_LEGOTOWER is not set
1293+# CONFIG_USB_LCD is not set
1294+# CONFIG_USB_BERRY_CHARGE is not set
1295+# CONFIG_USB_LED is not set
1296+# CONFIG_USB_CYPRESS_CY7C63 is not set
1297+# CONFIG_USB_CYTHERM is not set
1298+# CONFIG_USB_IDMOUSE is not set
1299+# CONFIG_USB_FTDI_ELAN is not set
1300+# CONFIG_USB_APPLEDISPLAY is not set
1301+# CONFIG_USB_SISUSBVGA is not set
1302+# CONFIG_USB_LD is not set
1303+# CONFIG_USB_TRANCEVIBRATOR is not set
1304+# CONFIG_USB_IOWARRIOR is not set
1305+# CONFIG_USB_TEST is not set
1306+# CONFIG_USB_ISIGHTFW is not set
1307+# CONFIG_USB_VST is not set
1308+CONFIG_USB_GADGET=y
1309+# CONFIG_USB_GADGET_DEBUG is not set
1310+# CONFIG_USB_GADGET_DEBUG_FILES is not set
1311+CONFIG_USB_GADGET_VBUS_DRAW=2
1312+CONFIG_USB_GADGET_SELECTED=y
1313+# CONFIG_USB_GADGET_AT91 is not set
1314+# CONFIG_USB_GADGET_ATMEL_USBA is not set
1315+# CONFIG_USB_GADGET_FSL_USB2 is not set
1316+# CONFIG_USB_GADGET_LH7A40X is not set
1317+CONFIG_USB_GADGET_OMAP=y
1318+CONFIG_USB_OMAP=y
1319+# CONFIG_USB_GADGET_PXA25X is not set
1320+# CONFIG_USB_GADGET_R8A66597 is not set
1321+# CONFIG_USB_GADGET_PXA27X is not set
1322+# CONFIG_USB_GADGET_S3C_HSOTG is not set
1323+# CONFIG_USB_GADGET_IMX is not set
1324+# CONFIG_USB_GADGET_S3C2410 is not set
1325+# CONFIG_USB_GADGET_M66592 is not set
1326+# CONFIG_USB_GADGET_AMD5536UDC is not set
1327+# CONFIG_USB_GADGET_FSL_QE is not set
1328+# CONFIG_USB_GADGET_CI13XXX is not set
1329+# CONFIG_USB_GADGET_NET2280 is not set
1330+# CONFIG_USB_GADGET_GOKU is not set
1331+# CONFIG_USB_GADGET_LANGWELL is not set
1332+# CONFIG_USB_GADGET_DUMMY_HCD is not set
1333+# CONFIG_USB_GADGET_DUALSPEED is not set
1334+# CONFIG_USB_ZERO is not set
1335+CONFIG_USB_AUDIO=m
1336+CONFIG_USB_ETH=m
1337+CONFIG_USB_ETH_RNDIS=y
1338+CONFIG_USB_ETH_EEM=y
1339+CONFIG_USB_GADGETFS=m
1340+# CONFIG_USB_FILE_STORAGE is not set
1341+# CONFIG_USB_MASS_STORAGE is not set
1342+CONFIG_USB_G_SERIAL=m
1343+# CONFIG_USB_MIDI_GADGET is not set
1344+CONFIG_USB_G_PRINTER=m
1345+# CONFIG_USB_CDC_COMPOSITE is not set
1346+# CONFIG_USB_G_MULTI is not set
1347+
1348+#
1349+# OTG and related infrastructure
1350+#
1351+CONFIG_USB_OTG_UTILS=y
1352+# CONFIG_USB_GPIO_VBUS is not set
1353+# CONFIG_ISP1301_OMAP is not set
1354+# CONFIG_USB_ULPI is not set
1355+CONFIG_TWL4030_USB=y
1356+# CONFIG_NOP_USB_XCEIV is not set
1357+CONFIG_MMC=y
1358+# CONFIG_MMC_DEBUG is not set
1359+# CONFIG_MMC_UNSAFE_RESUME is not set
1360+
1361+#
1362+# MMC/SD/SDIO Card Drivers
1363+#
1364+CONFIG_MMC_BLOCK=y
1365+CONFIG_MMC_BLOCK_BOUNCE=y
1366+# CONFIG_SDIO_UART is not set
1367+# CONFIG_MMC_TEST is not set
1368+
1369+#
1370+# MMC/SD/SDIO Host Controller Drivers
1371+#
1372+CONFIG_MMC_SDHCI=y
1373+CONFIG_MMC_SDHCI_PLTFM=m
1374+# CONFIG_MMC_OMAP is not set
1375+CONFIG_MMC_OMAP_HS=y
1376+# CONFIG_MMC_AT91 is not set
1377+# CONFIG_MMC_ATMELMCI is not set
1378+CONFIG_MMC_SPI=m
1379+# CONFIG_MEMSTICK is not set
1380+CONFIG_NEW_LEDS=y
1381+CONFIG_LEDS_CLASS=y
1382+
1383+#
1384+# LED drivers
1385+#
1386+# CONFIG_LEDS_PCA9532 is not set
1387+CONFIG_LEDS_GPIO=y
1388+CONFIG_LEDS_GPIO_PLATFORM=y
1389+# CONFIG_LEDS_LP3944 is not set
1390+# CONFIG_LEDS_PCA955X is not set
1391+# CONFIG_LEDS_DAC124S085 is not set
1392+# CONFIG_LEDS_REGULATOR is not set
1393+# CONFIG_LEDS_BD2802 is not set
1394+# CONFIG_LEDS_LT3593 is not set
1395+
1396+#
1397+# LED Triggers
1398+#
1399+CONFIG_LEDS_TRIGGERS=y
1400+# CONFIG_LEDS_TRIGGER_TIMER is not set
1401+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
1402+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
1403+# CONFIG_LEDS_TRIGGER_GPIO is not set
1404+# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
1405+
1406+#
1407+# iptables trigger is under Netfilter config (LED target)
1408+#
1409+# CONFIG_ACCESSIBILITY is not set
1410+CONFIG_RTC_LIB=y
1411+CONFIG_RTC_CLASS=y
1412+CONFIG_RTC_HCTOSYS=y
1413+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
1414+# CONFIG_RTC_DEBUG is not set
1415+
1416+#
1417+# RTC interfaces
1418+#
1419+CONFIG_RTC_INTF_SYSFS=y
1420+CONFIG_RTC_INTF_PROC=y
1421+CONFIG_RTC_INTF_DEV=y
1422+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
1423+# CONFIG_RTC_DRV_TEST is not set
1424+
1425+#
1426+# I2C RTC drivers
1427+#
1428+# CONFIG_RTC_DRV_DS1307 is not set
1429+# CONFIG_RTC_DRV_DS1374 is not set
1430+# CONFIG_RTC_DRV_DS1672 is not set
1431+# CONFIG_RTC_DRV_MAX6900 is not set
1432+# CONFIG_RTC_DRV_RS5C372 is not set
1433+# CONFIG_RTC_DRV_ISL1208 is not set
1434+# CONFIG_RTC_DRV_X1205 is not set
1435+# CONFIG_RTC_DRV_PCF8563 is not set
1436+# CONFIG_RTC_DRV_PCF8583 is not set
1437+# CONFIG_RTC_DRV_M41T80 is not set
1438+# CONFIG_RTC_DRV_BQ32K is not set
1439+CONFIG_RTC_DRV_TWL4030=y
1440+# CONFIG_RTC_DRV_S35390A is not set
1441+# CONFIG_RTC_DRV_FM3130 is not set
1442+# CONFIG_RTC_DRV_RX8581 is not set
1443+# CONFIG_RTC_DRV_RX8025 is not set
1444+
1445+#
1446+# SPI RTC drivers
1447+#
1448+# CONFIG_RTC_DRV_M41T94 is not set
1449+# CONFIG_RTC_DRV_DS1305 is not set
1450+# CONFIG_RTC_DRV_DS1390 is not set
1451+# CONFIG_RTC_DRV_MAX6902 is not set
1452+# CONFIG_RTC_DRV_R9701 is not set
1453+# CONFIG_RTC_DRV_RS5C348 is not set
1454+# CONFIG_RTC_DRV_DS3234 is not set
1455+# CONFIG_RTC_DRV_PCF2123 is not set
1456+
1457+#
1458+# Platform RTC drivers
1459+#
1460+# CONFIG_RTC_DRV_CMOS is not set
1461+# CONFIG_RTC_DRV_DS1286 is not set
1462+# CONFIG_RTC_DRV_DS1511 is not set
1463+# CONFIG_RTC_DRV_DS1553 is not set
1464+# CONFIG_RTC_DRV_DS1742 is not set
1465+# CONFIG_RTC_DRV_STK17TA8 is not set
1466+# CONFIG_RTC_DRV_M48T86 is not set
1467+# CONFIG_RTC_DRV_M48T35 is not set
1468+# CONFIG_RTC_DRV_M48T59 is not set
1469+# CONFIG_RTC_DRV_MSM6242 is not set
1470+# CONFIG_RTC_DRV_BQ4802 is not set
1471+# CONFIG_RTC_DRV_RP5C01 is not set
1472+# CONFIG_RTC_DRV_V3020 is not set
1473+
1474+#
1475+# on-CPU RTC drivers
1476+#
1477+# CONFIG_DMADEVICES is not set
1478+# CONFIG_AUXDISPLAY is not set
1479+# CONFIG_UIO is not set
1480+
1481+#
1482+# TI VLYNQ
1483+#
1484+# CONFIG_STAGING is not set
1485+
1486+#
1487+# CBUS support
1488+#
1489+# CONFIG_CBUS is not set
1490+
1491+#
1492+# File systems
1493+#
1494+CONFIG_EXT2_FS=y
1495+# CONFIG_EXT2_FS_XATTR is not set
1496+# CONFIG_EXT2_FS_XIP is not set
1497+CONFIG_EXT3_FS=y
1498+# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1499+# CONFIG_EXT3_FS_XATTR is not set
1500+# CONFIG_EXT4_FS is not set
1501+CONFIG_JBD=y
1502+# CONFIG_REISERFS_FS is not set
1503+# CONFIG_JFS_FS is not set
1504+# CONFIG_FS_POSIX_ACL is not set
1505+# CONFIG_XFS_FS is not set
1506+# CONFIG_GFS2_FS is not set
1507+# CONFIG_OCFS2_FS is not set
1508+# CONFIG_BTRFS_FS is not set
1509+# CONFIG_NILFS2_FS is not set
1510+CONFIG_FILE_LOCKING=y
1511+CONFIG_FSNOTIFY=y
1512+CONFIG_DNOTIFY=y
1513+CONFIG_INOTIFY=y
1514+CONFIG_INOTIFY_USER=y
1515+CONFIG_QUOTA=y
1516+# CONFIG_QUOTA_NETLINK_INTERFACE is not set
1517+CONFIG_PRINT_QUOTA_WARNING=y
1518+CONFIG_QUOTA_TREE=y
1519+# CONFIG_QFMT_V1 is not set
1520+CONFIG_QFMT_V2=y
1521+CONFIG_QUOTACTL=y
1522+# CONFIG_AUTOFS_FS is not set
1523+# CONFIG_AUTOFS4_FS is not set
1524+# CONFIG_FUSE_FS is not set
1525+
1526+#
1527+# Caches
1528+#
1529+# CONFIG_FSCACHE is not set
1530+
1531+#
1532+# CD-ROM/DVD Filesystems
1533+#
1534+# CONFIG_ISO9660_FS is not set
1535+# CONFIG_UDF_FS is not set
1536+
1537+#
1538+# DOS/FAT/NT Filesystems
1539+#
1540+CONFIG_FAT_FS=y
1541+CONFIG_MSDOS_FS=y
1542+CONFIG_VFAT_FS=y
1543+CONFIG_FAT_DEFAULT_CODEPAGE=437
1544+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1545+# CONFIG_NTFS_FS is not set
1546+
1547+#
1548+# Pseudo filesystems
1549+#
1550+CONFIG_PROC_FS=y
1551+CONFIG_PROC_SYSCTL=y
1552+CONFIG_PROC_PAGE_MONITOR=y
1553+CONFIG_SYSFS=y
1554+CONFIG_TMPFS=y
1555+# CONFIG_TMPFS_POSIX_ACL is not set
1556+# CONFIG_HUGETLB_PAGE is not set
1557+# CONFIG_CONFIGFS_FS is not set
1558+CONFIG_MISC_FILESYSTEMS=y
1559+# CONFIG_ADFS_FS is not set
1560+# CONFIG_AFFS_FS is not set
1561+# CONFIG_HFS_FS is not set
1562+# CONFIG_HFSPLUS_FS is not set
1563+# CONFIG_BEFS_FS is not set
1564+# CONFIG_BFS_FS is not set
1565+# CONFIG_EFS_FS is not set
1566+CONFIG_JFFS2_FS=y
1567+CONFIG_JFFS2_FS_DEBUG=0
1568+CONFIG_JFFS2_FS_WRITEBUFFER=y
1569+# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
1570+# CONFIG_JFFS2_SUMMARY is not set
1571+# CONFIG_JFFS2_FS_XATTR is not set
1572+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
1573+CONFIG_JFFS2_ZLIB=y
1574+# CONFIG_JFFS2_LZO is not set
1575+CONFIG_JFFS2_RTIME=y
1576+# CONFIG_JFFS2_RUBIN is not set
1577+CONFIG_UBIFS_FS=y
1578+# CONFIG_UBIFS_FS_XATTR is not set
1579+# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
1580+CONFIG_UBIFS_FS_LZO=y
1581+CONFIG_UBIFS_FS_ZLIB=y
1582+# CONFIG_UBIFS_FS_DEBUG is not set
1583+CONFIG_CRAMFS=y
1584+# CONFIG_SQUASHFS is not set
1585+# CONFIG_VXFS_FS is not set
1586+# CONFIG_MINIX_FS is not set
1587+# CONFIG_OMFS_FS is not set
1588+# CONFIG_HPFS_FS is not set
1589+# CONFIG_QNX4FS_FS is not set
1590+# CONFIG_ROMFS_FS is not set
1591+# CONFIG_SYSV_FS is not set
1592+# CONFIG_UFS_FS is not set
1593+CONFIG_NETWORK_FILESYSTEMS=y
1594+CONFIG_NFS_FS=y
1595+CONFIG_NFS_V3=y
1596+# CONFIG_NFS_V3_ACL is not set
1597+CONFIG_NFS_V4=y
1598+# CONFIG_NFS_V4_1 is not set
1599+CONFIG_ROOT_NFS=y
1600+# CONFIG_NFSD is not set
1601+CONFIG_LOCKD=y
1602+CONFIG_LOCKD_V4=y
1603+CONFIG_NFS_COMMON=y
1604+CONFIG_SUNRPC=y
1605+CONFIG_SUNRPC_GSS=y
1606+CONFIG_RPCSEC_GSS_KRB5=y
1607+# CONFIG_RPCSEC_GSS_SPKM3 is not set
1608+# CONFIG_SMB_FS is not set
1609+# CONFIG_CIFS is not set
1610+# CONFIG_NCP_FS is not set
1611+# CONFIG_CODA_FS is not set
1612+# CONFIG_AFS_FS is not set
1613+
1614+#
1615+# Partition Types
1616+#
1617+CONFIG_PARTITION_ADVANCED=y
1618+# CONFIG_ACORN_PARTITION is not set
1619+# CONFIG_OSF_PARTITION is not set
1620+# CONFIG_AMIGA_PARTITION is not set
1621+# CONFIG_ATARI_PARTITION is not set
1622+# CONFIG_MAC_PARTITION is not set
1623+CONFIG_MSDOS_PARTITION=y
1624+# CONFIG_BSD_DISKLABEL is not set
1625+# CONFIG_MINIX_SUBPARTITION is not set
1626+# CONFIG_SOLARIS_X86_PARTITION is not set
1627+# CONFIG_UNIXWARE_DISKLABEL is not set
1628+# CONFIG_LDM_PARTITION is not set
1629+# CONFIG_SGI_PARTITION is not set
1630+# CONFIG_ULTRIX_PARTITION is not set
1631+# CONFIG_SUN_PARTITION is not set
1632+# CONFIG_KARMA_PARTITION is not set
1633+# CONFIG_EFI_PARTITION is not set
1634+# CONFIG_SYSV68_PARTITION is not set
1635+CONFIG_NLS=y
1636+CONFIG_NLS_DEFAULT="iso8859-1"
1637+CONFIG_NLS_CODEPAGE_437=y
1638+# CONFIG_NLS_CODEPAGE_737 is not set
1639+# CONFIG_NLS_CODEPAGE_775 is not set
1640+# CONFIG_NLS_CODEPAGE_850 is not set
1641+# CONFIG_NLS_CODEPAGE_852 is not set
1642+# CONFIG_NLS_CODEPAGE_855 is not set
1643+# CONFIG_NLS_CODEPAGE_857 is not set
1644+# CONFIG_NLS_CODEPAGE_860 is not set
1645+# CONFIG_NLS_CODEPAGE_861 is not set
1646+# CONFIG_NLS_CODEPAGE_862 is not set
1647+# CONFIG_NLS_CODEPAGE_863 is not set
1648+# CONFIG_NLS_CODEPAGE_864 is not set
1649+# CONFIG_NLS_CODEPAGE_865 is not set
1650+# CONFIG_NLS_CODEPAGE_866 is not set
1651+# CONFIG_NLS_CODEPAGE_869 is not set
1652+# CONFIG_NLS_CODEPAGE_936 is not set
1653+# CONFIG_NLS_CODEPAGE_950 is not set
1654+# CONFIG_NLS_CODEPAGE_932 is not set
1655+# CONFIG_NLS_CODEPAGE_949 is not set
1656+# CONFIG_NLS_CODEPAGE_874 is not set
1657+# CONFIG_NLS_ISO8859_8 is not set
1658+# CONFIG_NLS_CODEPAGE_1250 is not set
1659+# CONFIG_NLS_CODEPAGE_1251 is not set
1660+# CONFIG_NLS_ASCII is not set
1661+CONFIG_NLS_ISO8859_1=y
1662+# CONFIG_NLS_ISO8859_2 is not set
1663+# CONFIG_NLS_ISO8859_3 is not set
1664+# CONFIG_NLS_ISO8859_4 is not set
1665+# CONFIG_NLS_ISO8859_5 is not set
1666+# CONFIG_NLS_ISO8859_6 is not set
1667+# CONFIG_NLS_ISO8859_7 is not set
1668+# CONFIG_NLS_ISO8859_9 is not set
1669+# CONFIG_NLS_ISO8859_13 is not set
1670+# CONFIG_NLS_ISO8859_14 is not set
1671+# CONFIG_NLS_ISO8859_15 is not set
1672+# CONFIG_NLS_KOI8_R is not set
1673+# CONFIG_NLS_KOI8_U is not set
1674+# CONFIG_NLS_UTF8 is not set
1675+# CONFIG_DLM is not set
1676+
1677+#
1678+# Kernel hacking
1679+#
1680+CONFIG_PRINTK_TIME=y
1681+CONFIG_ENABLE_WARN_DEPRECATED=y
1682+CONFIG_ENABLE_MUST_CHECK=y
1683+CONFIG_FRAME_WARN=1024
1684+CONFIG_MAGIC_SYSRQ=y
1685+# CONFIG_STRIP_ASM_SYMS is not set
1686+# CONFIG_UNUSED_SYMBOLS is not set
1687+# CONFIG_DEBUG_FS is not set
1688+# CONFIG_HEADERS_CHECK is not set
1689+CONFIG_DEBUG_KERNEL=y
1690+# CONFIG_DEBUG_SHIRQ is not set
1691+CONFIG_DETECT_SOFTLOCKUP=y
1692+# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1693+CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1694+CONFIG_DETECT_HUNG_TASK=y
1695+CONFIG_BOOTPARAM_HUNG_TASK_PANIC=y
1696+CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=1
1697+CONFIG_SCHED_DEBUG=y
1698+# CONFIG_SCHEDSTATS is not set
1699+# CONFIG_TIMER_STATS is not set
1700+# CONFIG_DEBUG_OBJECTS is not set
1701+# CONFIG_DEBUG_SLAB is not set
1702+# CONFIG_DEBUG_KMEMLEAK is not set
1703+# CONFIG_DEBUG_RT_MUTEXES is not set
1704+# CONFIG_RT_MUTEX_TESTER is not set
1705+# CONFIG_DEBUG_SPINLOCK is not set
1706+CONFIG_DEBUG_MUTEXES=y
1707+# CONFIG_DEBUG_LOCK_ALLOC is not set
1708+# CONFIG_PROVE_LOCKING is not set
1709+# CONFIG_LOCK_STAT is not set
1710+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1711+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1712+# CONFIG_DEBUG_KOBJECT is not set
1713+# CONFIG_DEBUG_BUGVERBOSE is not set
1714+# CONFIG_DEBUG_INFO is not set
1715+# CONFIG_DEBUG_VM is not set
1716+# CONFIG_DEBUG_WRITECOUNT is not set
1717+# CONFIG_DEBUG_MEMORY_INIT is not set
1718+# CONFIG_DEBUG_LIST is not set
1719+# CONFIG_DEBUG_SG is not set
1720+# CONFIG_DEBUG_NOTIFIERS is not set
1721+# CONFIG_DEBUG_CREDENTIALS is not set
1722+# CONFIG_BOOT_PRINTK_DELAY is not set
1723+# CONFIG_RCU_TORTURE_TEST is not set
1724+# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1725+# CONFIG_BACKTRACE_SELF_TEST is not set
1726+# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1727+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1728+# CONFIG_FAULT_INJECTION is not set
1729+# CONFIG_LATENCYTOP is not set
1730+# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1731+# CONFIG_PAGE_POISONING is not set
1732+CONFIG_HAVE_FUNCTION_TRACER=y
1733+CONFIG_TRACING_SUPPORT=y
1734+CONFIG_FTRACE=y
1735+# CONFIG_FUNCTION_TRACER is not set
1736+# CONFIG_IRQSOFF_TRACER is not set
1737+# CONFIG_SCHED_TRACER is not set
1738+# CONFIG_ENABLE_DEFAULT_TRACERS is not set
1739+# CONFIG_BOOT_TRACER is not set
1740+CONFIG_BRANCH_PROFILE_NONE=y
1741+# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
1742+# CONFIG_PROFILE_ALL_BRANCHES is not set
1743+# CONFIG_STACK_TRACER is not set
1744+# CONFIG_KMEMTRACE is not set
1745+# CONFIG_WORKQUEUE_TRACER is not set
1746+# CONFIG_BLK_DEV_IO_TRACE is not set
1747+# CONFIG_SAMPLES is not set
1748+CONFIG_HAVE_ARCH_KGDB=y
1749+# CONFIG_KGDB is not set
1750+CONFIG_ARM_UNWIND=y
1751+CONFIG_DEBUG_USER=y
1752+CONFIG_DEBUG_ERRORS=y
1753+# CONFIG_DEBUG_STACK_USAGE is not set
1754+# CONFIG_DEBUG_LL is not set
1755+# CONFIG_OC_ETM is not set
1756+
1757+#
1758+# Security options
1759+#
1760+# CONFIG_KEYS is not set
1761+# CONFIG_SECURITY is not set
1762+# CONFIG_SECURITYFS is not set
1763+# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1764+# CONFIG_DEFAULT_SECURITY_SMACK is not set
1765+# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1766+CONFIG_DEFAULT_SECURITY_DAC=y
1767+CONFIG_DEFAULT_SECURITY=""
1768+CONFIG_CRYPTO=y
1769+
1770+#
1771+# Crypto core or helper
1772+#
1773+CONFIG_CRYPTO_ALGAPI=y
1774+CONFIG_CRYPTO_ALGAPI2=y
1775+CONFIG_CRYPTO_AEAD2=y
1776+CONFIG_CRYPTO_BLKCIPHER=y
1777+CONFIG_CRYPTO_BLKCIPHER2=y
1778+CONFIG_CRYPTO_HASH=y
1779+CONFIG_CRYPTO_HASH2=y
1780+CONFIG_CRYPTO_RNG2=y
1781+CONFIG_CRYPTO_PCOMP=y
1782+CONFIG_CRYPTO_MANAGER=y
1783+CONFIG_CRYPTO_MANAGER2=y
1784+# CONFIG_CRYPTO_GF128MUL is not set
1785+# CONFIG_CRYPTO_NULL is not set
1786+CONFIG_CRYPTO_WORKQUEUE=y
1787+# CONFIG_CRYPTO_CRYPTD is not set
1788+# CONFIG_CRYPTO_AUTHENC is not set
1789+# CONFIG_CRYPTO_TEST is not set
1790+
1791+#
1792+# Authenticated Encryption with Associated Data
1793+#
1794+# CONFIG_CRYPTO_CCM is not set
1795+# CONFIG_CRYPTO_GCM is not set
1796+# CONFIG_CRYPTO_SEQIV is not set
1797+
1798+#
1799+# Block modes
1800+#
1801+CONFIG_CRYPTO_CBC=y
1802+# CONFIG_CRYPTO_CTR is not set
1803+# CONFIG_CRYPTO_CTS is not set
1804+CONFIG_CRYPTO_ECB=m
1805+# CONFIG_CRYPTO_LRW is not set
1806+CONFIG_CRYPTO_PCBC=m
1807+# CONFIG_CRYPTO_XTS is not set
1808+
1809+#
1810+# Hash modes
1811+#
1812+# CONFIG_CRYPTO_HMAC is not set
1813+# CONFIG_CRYPTO_XCBC is not set
1814+# CONFIG_CRYPTO_VMAC is not set
1815+
1816+#
1817+# Digest
1818+#
1819+CONFIG_CRYPTO_CRC32C=y
1820+# CONFIG_CRYPTO_GHASH is not set
1821+# CONFIG_CRYPTO_MD4 is not set
1822+CONFIG_CRYPTO_MD5=y
1823+# CONFIG_CRYPTO_MICHAEL_MIC is not set
1824+# CONFIG_CRYPTO_RMD128 is not set
1825+# CONFIG_CRYPTO_RMD160 is not set
1826+# CONFIG_CRYPTO_RMD256 is not set
1827+# CONFIG_CRYPTO_RMD320 is not set
1828+# CONFIG_CRYPTO_SHA1 is not set
1829+# CONFIG_CRYPTO_SHA256 is not set
1830+# CONFIG_CRYPTO_SHA512 is not set
1831+# CONFIG_CRYPTO_TGR192 is not set
1832+# CONFIG_CRYPTO_WP512 is not set
1833+
1834+#
1835+# Ciphers
1836+#
1837+# CONFIG_CRYPTO_AES is not set
1838+# CONFIG_CRYPTO_ANUBIS is not set
1839+# CONFIG_CRYPTO_ARC4 is not set
1840+# CONFIG_CRYPTO_BLOWFISH is not set
1841+# CONFIG_CRYPTO_CAMELLIA is not set
1842+# CONFIG_CRYPTO_CAST5 is not set
1843+# CONFIG_CRYPTO_CAST6 is not set
1844+CONFIG_CRYPTO_DES=y
1845+# CONFIG_CRYPTO_FCRYPT is not set
1846+# CONFIG_CRYPTO_KHAZAD is not set
1847+# CONFIG_CRYPTO_SALSA20 is not set
1848+# CONFIG_CRYPTO_SEED is not set
1849+# CONFIG_CRYPTO_SERPENT is not set
1850+# CONFIG_CRYPTO_TEA is not set
1851+# CONFIG_CRYPTO_TWOFISH is not set
1852+
1853+#
1854+# Compression
1855+#
1856+CONFIG_CRYPTO_DEFLATE=y
1857+# CONFIG_CRYPTO_ZLIB is not set
1858+CONFIG_CRYPTO_LZO=y
1859+
1860+#
1861+# Random Number Generation
1862+#
1863+# CONFIG_CRYPTO_ANSI_CPRNG is not set
1864+CONFIG_CRYPTO_HW=y
1865+# CONFIG_BINARY_PRINTF is not set
1866+
1867+#
1868+# Library routines
1869+#
1870+CONFIG_BITREVERSE=y
1871+CONFIG_GENERIC_FIND_LAST_BIT=y
1872+CONFIG_CRC_CCITT=y
1873+CONFIG_CRC16=y
1874+CONFIG_CRC_T10DIF=m
1875+CONFIG_CRC_ITU_T=m
1876+CONFIG_CRC32=y
1877+CONFIG_CRC7=m
1878+CONFIG_LIBCRC32C=y
1879+CONFIG_ZLIB_INFLATE=y
1880+CONFIG_ZLIB_DEFLATE=y
1881+CONFIG_LZO_COMPRESS=y
1882+CONFIG_LZO_DECOMPRESS=y
1883+CONFIG_DECOMPRESS_GZIP=y
1884+CONFIG_DECOMPRESS_BZIP2=y
1885+CONFIG_DECOMPRESS_LZMA=y
1886+CONFIG_HAS_IOMEM=y
1887+CONFIG_HAS_IOPORT=y
1888+CONFIG_HAS_DMA=y
1889+CONFIG_NLATTR=y
arch/arm/configs/igep0020_defconfig+309−216
@@ -1,7 +1,7 @@
11 #
22 # Automatically generated make config: don't edit
3−# Linux kernel version: 2.6.32-rc6
4−# Fri Nov 13 12:01:17 2009
3+# Linux kernel version: 2.6.33-rc3
4+# Thu Jan 7 16:14:55 2010
55 #
66 CONFIG_ARM=y
77 CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -46,6 +46,7 @@ CONFIG_BSD_PROCESS_ACCT=y · 38 unmodified lines
4646 #
4747 CONFIG_TREE_RCU=y
4848 # CONFIG_TREE_PREEMPT_RCU is not set
49+# CONFIG_TINY_RCU is not set
4950 # CONFIG_RCU_TRACE is not set
5051 CONFIG_RCU_FANOUT=32
5152 # CONFIG_RCU_FANOUT_EXACT is not set
@@ -126,14 +127,41 @@ CONFIG_LBDAF=y · 74 unmodified lines
126127 # IO Schedulers
127128 #
128129 CONFIG_IOSCHED_NOOP=y
129−CONFIG_IOSCHED_AS=y
130130 CONFIG_IOSCHED_DEADLINE=y
131131 CONFIG_IOSCHED_CFQ=y
132−CONFIG_DEFAULT_AS=y
133132 # CONFIG_DEFAULT_DEADLINE is not set
134−# CONFIG_DEFAULT_CFQ is not set
133+CONFIG_DEFAULT_CFQ=y
135134 # CONFIG_DEFAULT_NOOP is not set
136−CONFIG_DEFAULT_IOSCHED="anticipatory"
135+CONFIG_DEFAULT_IOSCHED="cfq"
136+# CONFIG_INLINE_SPIN_TRYLOCK is not set
137+# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
138+# CONFIG_INLINE_SPIN_LOCK is not set
139+# CONFIG_INLINE_SPIN_LOCK_BH is not set
140+# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
141+# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
142+CONFIG_INLINE_SPIN_UNLOCK=y
143+# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
144+CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
145+# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
146+# CONFIG_INLINE_READ_TRYLOCK is not set
147+# CONFIG_INLINE_READ_LOCK is not set
148+# CONFIG_INLINE_READ_LOCK_BH is not set
149+# CONFIG_INLINE_READ_LOCK_IRQ is not set
150+# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
151+CONFIG_INLINE_READ_UNLOCK=y
152+# CONFIG_INLINE_READ_UNLOCK_BH is not set
153+CONFIG_INLINE_READ_UNLOCK_IRQ=y
154+# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
155+# CONFIG_INLINE_WRITE_TRYLOCK is not set
156+# CONFIG_INLINE_WRITE_LOCK is not set
157+# CONFIG_INLINE_WRITE_LOCK_BH is not set
158+# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
159+# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
160+CONFIG_INLINE_WRITE_UNLOCK=y
161+# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
162+CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
163+# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
164+# CONFIG_MUTEX_SPIN_ON_OWNER is not set
137165 # CONFIG_FREEZER is not set
138166
139167 #
@@ -162,6 +190,7 @@ CONFIG_MMU=y · 22 unmodified lines
162190 # CONFIG_ARCH_IXP2000 is not set
163191 # CONFIG_ARCH_IXP4XX is not set
164192 # CONFIG_ARCH_L7200 is not set
193+# CONFIG_ARCH_DOVE is not set
165194 # CONFIG_ARCH_KIRKWOOD is not set
166195 # CONFIG_ARCH_LOKI is not set
167196 # CONFIG_ARCH_MV78XX0 is not set
@@ -184,6 +213,7 @@ CONFIG_MMU=y · 16 unmodified lines
184213 # CONFIG_ARCH_DAVINCI is not set
185214 CONFIG_ARCH_OMAP=y
186215 # CONFIG_ARCH_BCMRING is not set
216+# CONFIG_ARCH_U8500 is not set
187217
188218 #
189219 # TI OMAP Implementations
@@ -197,12 +227,8 @@ CONFIG_ARCH_OMAP3=y · 7 unmodified lines
197227 #
198228 # OMAP Feature Selections
199229 #
200−# CONFIG_OMAP_DEBUG_POWERDOMAIN is not set
201−# CONFIG_OMAP_DEBUG_CLOCKDOMAIN is not set
202−# CONFIG_OMAP_RESET_CLOCKS is not set
203−CONFIG_OMAP_MUX=y
204−CONFIG_OMAP_MUX_DEBUG=y
205−CONFIG_OMAP_MUX_WARNINGS=y
230+CONFIG_OMAP_RESET_CLOCKS=y
231+# CONFIG_OMAP_MUX is not set
206232 CONFIG_OMAP_MCBSP=y
207233 # CONFIG_OMAP_MBOX_FWK is not set
208234 # CONFIG_OMAP_MPU_TIMER is not set
@@ -217,6 +243,7 @@ CONFIG_OMAP_LL_DEBUG_UART3=y · 8 unmodified lines
217243 CONFIG_OMAP_PM_NOOP=y
218244 CONFIG_ARCH_OMAP34XX=y
219245 CONFIG_ARCH_OMAP3430=y
246+CONFIG_OMAP_PACKAGE_CBB=y
220247
221248 #
222249 # OMAP Board Type
@@ -227,13 +254,16 @@ CONFIG_ARCH_OMAP3430=y · 4 unmodified lines
227254 # CONFIG_MACH_OMAP3EVM is not set
228255 # CONFIG_MACH_OMAP3517EVM is not set
229256 # CONFIG_MACH_OMAP3_PANDORA is not set
257+# CONFIG_MACH_OMAP3_TOUCHBOOK is not set
230258 # CONFIG_MACH_OMAP_3430SDP is not set
231259 # CONFIG_MACH_NOKIA_RX51 is not set
232260 # CONFIG_MACH_OMAP_ZOOM2 is not set
233−# CONFIG_MACH_CM_T35 is not set
234261 # CONFIG_MACH_OMAP_ZOOM3 is not set
235−# CONFIG_MACH_OMAP_3630SDP is not set
262+# CONFIG_MACH_CM_T35 is not set
236263 CONFIG_MACH_IGEP0020=y
264+# CONFIG_MACH_OMAP_3630SDP is not set
265+# CONFIG_OMAP3_EMU is not set
266+# CONFIG_OMAP3_SDRC_AC_TIMING is not set
237267
238268 #
239269 # Processor Type
@@ -305,8 +335,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4 · 65 unmodified lines
305335 # CONFIG_PHYS_ADDR_T_64BIT is not set
306336 CONFIG_ZONE_DMA_FLAG=0
307337 CONFIG_VIRT_TO_BUS=y
308−CONFIG_HAVE_MLOCK=y
309−CONFIG_HAVE_MLOCKED_PAGE_BIT=y
310338 # CONFIG_KSM is not set
311339 CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
312340 # CONFIG_LEDS is not set
@@ -440,35 +468,35 @@ CONFIG_BT_HIDP=m · 127 unmodified lines
440468 #
441469 # Bluetooth device drivers
442470 #
443−CONFIG_BT_HCIBTUSB=m
471+# CONFIG_BT_HCIBTUSB is not set
444472 # CONFIG_BT_HCIBTSDIO is not set
445473 CONFIG_BT_HCIUART=m
446474 CONFIG_BT_HCIUART_H4=y
447475 CONFIG_BT_HCIUART_BCSP=y
448476 CONFIG_BT_HCIUART_LL=y
449−CONFIG_BT_HCIBCM203X=m
450−CONFIG_BT_HCIBPA10X=m
451−CONFIG_BT_HCIBFUSB=m
477+# CONFIG_BT_HCIBCM203X is not set
478+# CONFIG_BT_HCIBPA10X is not set
479+# CONFIG_BT_HCIBFUSB is not set
452480 CONFIG_BT_HCIVHCI=m
453481 CONFIG_BT_MRVL=m
454482 CONFIG_BT_MRVL_SDIO=m
455483 # CONFIG_AF_RXRPC is not set
456484 CONFIG_WIRELESS=y
457−CONFIG_CFG80211=m
485+CONFIG_WIRELESS_EXT=y
486+CONFIG_WEXT_CORE=y
487+CONFIG_WEXT_PROC=y
488+CONFIG_WEXT_SPY=y
489+CONFIG_CFG80211=y
458490 # CONFIG_NL80211_TESTMODE is not set
459491 # CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
460492 # CONFIG_CFG80211_REG_DEBUG is not set
461493 CONFIG_CFG80211_DEFAULT_PS=y
462−CONFIG_CFG80211_DEFAULT_PS_VALUE=1
463494 # CONFIG_WIRELESS_OLD_REGULATORY is not set
464−CONFIG_WIRELESS_EXT=y
495+CONFIG_CFG80211_WEXT=y
465496 CONFIG_WIRELESS_EXT_SYSFS=y
466−CONFIG_LIB80211=m
467−CONFIG_LIB80211_CRYPT_WEP=m
468−CONFIG_LIB80211_CRYPT_CCMP=m
469−CONFIG_LIB80211_CRYPT_TKIP=m
497+CONFIG_LIB80211=y
470498 # CONFIG_LIB80211_DEBUG is not set
471−CONFIG_MAC80211=m
499+CONFIG_MAC80211=y
472500 # CONFIG_MAC80211_RC_PID is not set
473501 CONFIG_MAC80211_RC_MINSTREL=y
474502 # CONFIG_MAC80211_RC_DEFAULT_PID is not set
@@ -500,12 +528,95 @@ CONFIG_EXTRA_FIRMWARE="" · 25 unmodified lines
500528 # CONFIG_SYS_HYPERVISOR is not set
501529 CONFIG_CONNECTOR=y
502530 CONFIG_PROC_EVENTS=y
503−# CONFIG_MTD is not set
531+CONFIG_MTD=y
532+# CONFIG_MTD_DEBUG is not set
533+# CONFIG_MTD_TESTS is not set
534+# CONFIG_MTD_CONCAT is not set
535+CONFIG_MTD_PARTITIONS=y
536+# CONFIG_MTD_REDBOOT_PARTS is not set
537+CONFIG_MTD_CMDLINE_PARTS=y
538+# CONFIG_MTD_AFS_PARTS is not set
539+# CONFIG_MTD_AR7_PARTS is not set
540+
541+#
542+# User Modules And Translation Layers
543+#
544+CONFIG_MTD_CHAR=y
545+CONFIG_MTD_BLKDEVS=y
546+CONFIG_MTD_BLOCK=y
547+# CONFIG_FTL is not set
548+# CONFIG_NFTL is not set
549+# CONFIG_INFTL is not set
550+# CONFIG_RFD_FTL is not set
551+# CONFIG_SSFDC is not set
552+# CONFIG_MTD_OOPS is not set
553+
554+#
555+# RAM/ROM/Flash chip drivers
556+#
557+# CONFIG_MTD_CFI is not set
558+# CONFIG_MTD_JEDECPROBE is not set
559+CONFIG_MTD_MAP_BANK_WIDTH_1=y
560+CONFIG_MTD_MAP_BANK_WIDTH_2=y
561+CONFIG_MTD_MAP_BANK_WIDTH_4=y
562+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
563+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
564+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
565+CONFIG_MTD_CFI_I1=y
566+CONFIG_MTD_CFI_I2=y
567+# CONFIG_MTD_CFI_I4 is not set
568+# CONFIG_MTD_CFI_I8 is not set
569+# CONFIG_MTD_RAM is not set
570+# CONFIG_MTD_ROM is not set
571+# CONFIG_MTD_ABSENT is not set
572+
573+#
574+# Mapping drivers for chip access
575+#
576+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
577+# CONFIG_MTD_PLATRAM is not set
578+
579+#
580+# Self-contained MTD device drivers
581+#
582+# CONFIG_MTD_DATAFLASH is not set
583+# CONFIG_MTD_M25P80 is not set
584+# CONFIG_MTD_SST25L is not set
585+# CONFIG_MTD_SLRAM is not set
586+# CONFIG_MTD_PHRAM is not set
587+# CONFIG_MTD_MTDRAM is not set
588+# CONFIG_MTD_BLOCK2MTD is not set
589+
590+#
591+# Disk-On-Chip Device Drivers
592+#
593+# CONFIG_MTD_DOC2000 is not set
594+# CONFIG_MTD_DOC2001 is not set
595+# CONFIG_MTD_DOC2001PLUS is not set
596+# CONFIG_MTD_NAND is not set
597+CONFIG_MTD_ONENAND=y
598+# CONFIG_MTD_ONENAND_VERIFY_WRITE is not set
599+# CONFIG_MTD_ONENAND_GENERIC is not set
600+CONFIG_MTD_ONENAND_OMAP2=y
601+# CONFIG_MTD_ONENAND_OTP is not set
602+CONFIG_MTD_ONENAND_2X_PROGRAM=y
603+# CONFIG_MTD_ONENAND_SIM is not set
604+
605+#
606+# LPDDR flash memory drivers
607+#
608+# CONFIG_MTD_LPDDR is not set
609+
610+#
611+# UBI - Unsorted block images
612+#
613+# CONFIG_MTD_UBI is not set
504614 # CONFIG_PARPORT is not set
505615 CONFIG_BLK_DEV=y
506616 # CONFIG_BLK_DEV_COW_COMMON is not set
507617 CONFIG_BLK_DEV_LOOP=y
508618 # CONFIG_BLK_DEV_CRYPTOLOOP is not set
619+# CONFIG_BLK_DEV_DRBD is not set
509620 # CONFIG_BLK_DEV_NBD is not set
510621 # CONFIG_BLK_DEV_UB is not set
511622 CONFIG_BLK_DEV_RAM=y
@@ -516,7 +627,6 @@ CONFIG_BLK_DEV_RAM_SIZE=16384 · 4 unmodified lines
516627 # CONFIG_ATA_OVER_ETH is not set
517628 # CONFIG_MG_DISK is not set
518629 # CONFIG_MISC_DEVICES is not set
519−CONFIG_EEPROM_93CX6=m
520630 CONFIG_HAVE_IDE=y
521631 # CONFIG_IDE is not set
522632
@@ -613,56 +723,26 @@ CONFIG_SMSC911X=y · 90 unmodified lines
613723 # CONFIG_NETDEV_1000 is not set
614724 # CONFIG_NETDEV_10000 is not set
615725 CONFIG_WLAN=y
616−# CONFIG_WLAN_PRE80211 is not set
617−CONFIG_WLAN_80211=y
618−CONFIG_LIBERTAS=m
619−CONFIG_LIBERTAS_USB=m
620−CONFIG_LIBERTAS_SDIO=m
621−# CONFIG_LIBERTAS_SPI is not set
622−# CONFIG_LIBERTAS_DEBUG is not set
623726 # CONFIG_LIBERTAS_THINFIRM is not set
624−CONFIG_AT76C50X_USB=m
625−CONFIG_USB_ZD1201=m
626−CONFIG_USB_NET_RNDIS_WLAN=m
627−CONFIG_RTL8187=m
727+# CONFIG_AT76C50X_USB is not set
728+# CONFIG_USB_ZD1201 is not set
729+# CONFIG_USB_NET_RNDIS_WLAN is not set
730+# CONFIG_RTL8187 is not set
628731 # CONFIG_MAC80211_HWSIM is not set
629−CONFIG_P54_COMMON=m
630−CONFIG_P54_USB=m
631−CONFIG_P54_SPI=m
632−CONFIG_ATH_COMMON=m
633−CONFIG_AR9170_USB=m
634−CONFIG_HOSTAP=m
635−CONFIG_HOSTAP_FIRMWARE=y
636−CONFIG_HOSTAP_FIRMWARE_NVRAM=y
637−CONFIG_B43=m
638−# CONFIG_B43_SDIO is not set
639−# CONFIG_B43_PHY_LP is not set
640−CONFIG_B43_HWRNG=y
641−# CONFIG_B43_DEBUG is not set
642−CONFIG_B43LEGACY=m
643−CONFIG_B43LEGACY_HWRNG=y
644−# CONFIG_B43LEGACY_DEBUG is not set
645−CONFIG_B43LEGACY_DMA=y
646−CONFIG_B43LEGACY_PIO=y
647−CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
648−# CONFIG_B43LEGACY_DMA_MODE is not set
649−# CONFIG_B43LEGACY_PIO_MODE is not set
650−CONFIG_ZD1211RW=m
651−# CONFIG_ZD1211RW_DEBUG is not set
652−CONFIG_RT2X00=m
653−CONFIG_RT2500USB=m
654−CONFIG_RT73USB=m
655−CONFIG_RT2800USB=m
656−CONFIG_RT2X00_LIB_USB=m
657−CONFIG_RT2X00_LIB=m
658−CONFIG_RT2X00_LIB_HT=y
659−CONFIG_RT2X00_LIB_FIRMWARE=y
660−CONFIG_RT2X00_LIB_CRYPTO=y
661−# CONFIG_RT2X00_DEBUG is not set
662−CONFIG_WL12XX=m
663−# CONFIG_WL1251 is not set
664−# CONFIG_WL1271 is not set
732+# CONFIG_ATH_COMMON is not set
733+# CONFIG_B43 is not set
734+# CONFIG_B43LEGACY is not set
735+# CONFIG_HOSTAP is not set
665736 # CONFIG_IWM is not set
737+CONFIG_LIBERTAS=y
738+# CONFIG_LIBERTAS_USB is not set
739+CONFIG_LIBERTAS_SDIO=y
740+# CONFIG_LIBERTAS_SPI is not set
741+# CONFIG_LIBERTAS_DEBUG is not set
742+# CONFIG_P54_COMMON is not set
743+# CONFIG_RT2X00 is not set
744+# CONFIG_WL12XX is not set
745+# CONFIG_ZD1211RW is not set
666746
667747 #
668748 # Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -672,29 +752,10 @@ CONFIG_WL12XX=m · 3 unmodified lines
672752 # USB Network Adapters
673753 #
674754 # CONFIG_USB_CATC is not set
675−CONFIG_USB_KAWETH=m
676−CONFIG_USB_PEGASUS=m
755+# CONFIG_USB_KAWETH is not set
756+# CONFIG_USB_PEGASUS is not set
677757 # CONFIG_USB_RTL8150 is not set
678−CONFIG_USB_USBNET=m
679−CONFIG_USB_NET_AX8817X=m
680−CONFIG_USB_NET_CDCETHER=m
681−CONFIG_USB_NET_CDC_EEM=m
682−CONFIG_USB_NET_DM9601=m
683−CONFIG_USB_NET_SMSC95XX=m
684−CONFIG_USB_NET_GL620A=m
685−CONFIG_USB_NET_NET1080=m
686−CONFIG_USB_NET_PLUSB=m
687−CONFIG_USB_NET_MCS7830=m
688−CONFIG_USB_NET_RNDIS_HOST=m
689−CONFIG_USB_NET_CDC_SUBSET=m
690−# CONFIG_USB_ALI_M5632 is not set
691−# CONFIG_USB_AN2720 is not set
692−CONFIG_USB_BELKIN=y
693−CONFIG_USB_ARMLINUX=y
694−# CONFIG_USB_EPSON2888 is not set
695−# CONFIG_USB_KC2190 is not set
696−CONFIG_USB_NET_ZAURUS=m
697−# CONFIG_USB_NET_INT51X1 is not set
758+# CONFIG_USB_USBNET is not set
698759 # CONFIG_WAN is not set
699760 # CONFIG_PPP is not set
700761 # CONFIG_SLIP is not set
@@ -710,6 +771,7 @@ CONFIG_USB_NET_ZAURUS=m · 9 unmodified lines
710771 CONFIG_INPUT=y
711772 # CONFIG_INPUT_FF_MEMLESS is not set
712773 # CONFIG_INPUT_POLLDEV is not set
774+# CONFIG_INPUT_SPARSEKMAP is not set
713775
714776 #
715777 # Userland interfaces
@@ -809,7 +871,6 @@ CONFIG_I2C_OMAP=y · 93 unmodified lines
809871 #
810872 # Miscellaneous I2C Chip support
811873 #
812−# CONFIG_DS1682 is not set
813874 # CONFIG_SENSORS_TSL2550 is not set
814875 # CONFIG_I2C_DEBUG_CORE is not set
815876 # CONFIG_I2C_DEBUG_ALGO is not set
@@ -825,6 +886,8 @@ CONFIG_SPI_MASTER=y · 9 unmodified lines
825886 # CONFIG_SPI_BITBANG is not set
826887 # CONFIG_SPI_GPIO is not set
827888 CONFIG_SPI_OMAP24XX=y
889+# CONFIG_SPI_XILINX is not set
890+# CONFIG_SPI_DESIGNWARE is not set
828891
829892 #
830893 # SPI Protocol Masters
@@ -892,7 +955,7 @@ CONFIG_SSB_SDIOHOST_POSSIBLE=y · 61 unmodified lines
892955 #
893956 # Multifunction device drivers
894957 #
895−# CONFIG_MFD_CORE is not set
958+CONFIG_MFD_CORE=y
896959 # CONFIG_MFD_SM501 is not set
897960 # CONFIG_MFD_ASIC3 is not set
898961 # CONFIG_HTC_EGPIO is not set
@@ -900,11 +963,13 @@ CONFIG_SSB_SDIOHOST_POSSIBLE=y · 1 unmodified line
900963 # CONFIG_TPS65010 is not set
901964 CONFIG_TWL4030_CORE=y
902965 # CONFIG_TWL4030_POWER is not set
966+CONFIG_TWL4030_CODEC=y
903967 # CONFIG_MFD_TMIO is not set
904968 # CONFIG_MFD_T7L66XB is not set
905969 # CONFIG_MFD_TC6387XB is not set
906970 # CONFIG_MFD_TC6393XB is not set
907971 # CONFIG_PMIC_DA903X is not set
972+# CONFIG_PMIC_ADP5520 is not set
908973 # CONFIG_MFD_WM8400 is not set
909974 # CONFIG_MFD_WM831X is not set
910975 # CONFIG_MFD_WM8350_I2C is not set
@@ -912,6 +977,8 @@ CONFIG_TWL4030_CORE=y · 1 unmodified line
912977 # CONFIG_MFD_MC13783 is not set
913978 # CONFIG_AB3100_CORE is not set
914979 # CONFIG_EZX_PCAP is not set
980+# CONFIG_MFD_88PM8607 is not set
981+# CONFIG_AB4500_CORE is not set
915982 CONFIG_REGULATOR=y
916983 # CONFIG_REGULATOR_DEBUG is not set
917984 # CONFIG_REGULATOR_FIXED_VOLTAGE is not set
@@ -919,6 +986,7 @@ CONFIG_REGULATOR=y · 1 unmodified line
919986 # CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
920987 # CONFIG_REGULATOR_BQ24022 is not set
921988 # CONFIG_REGULATOR_MAX1586 is not set
989+# CONFIG_REGULATOR_MAX8660 is not set
922990 CONFIG_REGULATOR_TWL4030=y
923991 # CONFIG_REGULATOR_LP3971 is not set
924992 # CONFIG_REGULATOR_TPS65023 is not set
@@ -930,65 +998,129 @@ CONFIG_REGULATOR_TWL4030=y · 5 unmodified lines
930998 #
931999 # CONFIG_VGASTATE is not set
9321000 # CONFIG_VIDEO_OUTPUT_CONTROL is not set
933−# CONFIG_FB is not set
1001+CONFIG_FB=y
1002+# CONFIG_FIRMWARE_EDID is not set
1003+# CONFIG_FB_DDC is not set
1004+# CONFIG_FB_BOOT_VESA_SUPPORT is not set
1005+CONFIG_FB_CFB_FILLRECT=y
1006+CONFIG_FB_CFB_COPYAREA=y
1007+CONFIG_FB_CFB_IMAGEBLIT=y
1008+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
1009+# CONFIG_FB_SYS_FILLRECT is not set
1010+# CONFIG_FB_SYS_COPYAREA is not set
1011+# CONFIG_FB_SYS_IMAGEBLIT is not set
1012+# CONFIG_FB_FOREIGN_ENDIAN is not set
1013+# CONFIG_FB_SYS_FOPS is not set
1014+# CONFIG_FB_SVGALIB is not set
1015+# CONFIG_FB_MACMODES is not set
1016+# CONFIG_FB_BACKLIGHT is not set
1017+CONFIG_FB_MODE_HELPERS=y
1018+# CONFIG_FB_TILEBLITTING is not set
1019+
1020+#
1021+# Frame buffer hardware drivers
1022+#
1023+# CONFIG_FB_UVESA is not set
1024+# CONFIG_FB_S1D13XXX is not set
1025+# CONFIG_FB_TMIO is not set
1026+# CONFIG_FB_VIRTUAL is not set
1027+# CONFIG_FB_METRONOME is not set
1028+# CONFIG_FB_MB862XX is not set
1029+# CONFIG_FB_BROADSHEET is not set
1030+# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set
1031+CONFIG_OMAP2_VRAM=y
1032+CONFIG_OMAP2_VRFB=y
1033+CONFIG_OMAP2_DSS=y
1034+CONFIG_OMAP2_VRAM_SIZE=14
1035+# CONFIG_OMAP2_DSS_DEBUG_SUPPORT is not set
1036+# CONFIG_OMAP2_DSS_RFBI is not set
1037+# CONFIG_OMAP2_DSS_VENC is not set
1038+# CONFIG_OMAP2_DSS_SDI is not set
1039+CONFIG_OMAP2_DSS_DSI=y
1040+CONFIG_OMAP2_DSS_USE_DSI_PLL=y
1041+# CONFIG_OMAP2_DSS_FAKE_VSYNC is not set
1042+CONFIG_OMAP2_DSS_MIN_FCK_PER_PCK=0
1043+CONFIG_FB_OMAP2=y
1044+# CONFIG_FB_OMAP2_DEBUG_SUPPORT is not set
1045+# CONFIG_FB_OMAP2_FORCE_AUTO_UPDATE is not set
1046+CONFIG_FB_OMAP2_NUM_FBS=3
1047+
1048+#
1049+# OMAP2/3 Display Device Drivers
1050+#
1051+CONFIG_PANEL_GENERIC=y
1052+# CONFIG_PANEL_SHARP_LS037V7DW01 is not set
1053+# CONFIG_PANEL_TAAL is not set
9341054 # CONFIG_BACKLIGHT_LCD_SUPPORT is not set
9351055
9361056 #
9371057 # Display device support
9381058 #
939−# CONFIG_DISPLAY_SUPPORT is not set
1059+CONFIG_DISPLAY_SUPPORT=y
1060+
1061+#
1062+# Display hardware drivers
1063+#
9401064
9411065 #
9421066 # Console display driver support
9431067 #
9441068 # CONFIG_VGA_CONSOLE is not set
9451069 CONFIG_DUMMY_CONSOLE=y
946−# CONFIG_SOUND is not set
947−CONFIG_HID_SUPPORT=y
948−CONFIG_HID=y
949−# CONFIG_HIDRAW is not set
950−
951−#
952−# USB Input Devices
953−#
954−CONFIG_USB_HID=y
955−# CONFIG_HID_PID is not set
956−# CONFIG_USB_HIDDEV is not set
957−
958−#
959−# Special HID drivers
960−#
961−# CONFIG_HID_A4TECH is not set
962−# CONFIG_HID_APPLE is not set
963−# CONFIG_HID_BELKIN is not set
964−# CONFIG_HID_CHERRY is not set
965−# CONFIG_HID_CHICONY is not set
966−# CONFIG_HID_CYPRESS is not set
967−# CONFIG_HID_DRAGONRISE is not set
968−# CONFIG_HID_EZKEY is not set
969−# CONFIG_HID_KYE is not set
970−# CONFIG_HID_GYRATION is not set
971−# CONFIG_HID_TWINHAN is not set
972−# CONFIG_HID_KENSINGTON is not set
973−# CONFIG_HID_LOGITECH is not set
974−# CONFIG_HID_MICROSOFT is not set
975−# CONFIG_HID_MONTEREY is not set
976−# CONFIG_HID_NTRIG is not set
977−# CONFIG_HID_PANTHERLORD is not set
978−# CONFIG_HID_PETALYNX is not set
979−# CONFIG_HID_SAMSUNG is not set
980−# CONFIG_HID_SONY is not set
981−# CONFIG_HID_SUNPLUS is not set
982−# CONFIG_HID_GREENASIA is not set
983−# CONFIG_HID_SMARTJOYPLUS is not set
984−# CONFIG_HID_TOPSEED is not set
985−# CONFIG_HID_THRUSTMASTER is not set
986−# CONFIG_HID_WACOM is not set
987−# CONFIG_HID_ZEROPLUS is not set
1070+CONFIG_FRAMEBUFFER_CONSOLE=y
1071+# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
1072+# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
1073+# CONFIG_FONTS is not set
1074+CONFIG_FONT_8x8=y
1075+CONFIG_FONT_8x16=y
1076+CONFIG_LOGO=y
1077+# CONFIG_LOGO_LINUX_MONO is not set
1078+# CONFIG_LOGO_LINUX_VGA16 is not set
1079+CONFIG_LOGO_LINUX_CLUT224=y
1080+CONFIG_SOUND=y
1081+# CONFIG_SOUND_OSS_CORE is not set
1082+CONFIG_SND=y
1083+CONFIG_SND_TIMER=y
1084+CONFIG_SND_PCM=y
1085+CONFIG_SND_JACK=y
1086+# CONFIG_SND_SEQUENCER is not set
1087+# CONFIG_SND_MIXER_OSS is not set
1088+# CONFIG_SND_PCM_OSS is not set
1089+# CONFIG_SND_HRTIMER is not set
1090+# CONFIG_SND_DYNAMIC_MINORS is not set
1091+# CONFIG_SND_SUPPORT_OLD_API is not set
1092+# CONFIG_SND_VERBOSE_PROCFS is not set
1093+# CONFIG_SND_VERBOSE_PRINTK is not set
1094+# CONFIG_SND_DEBUG is not set
1095+# CONFIG_SND_RAWMIDI_SEQ is not set
1096+# CONFIG_SND_OPL3_LIB_SEQ is not set
1097+# CONFIG_SND_OPL4_LIB_SEQ is not set
1098+# CONFIG_SND_SBAWE_SEQ is not set
1099+# CONFIG_SND_EMU10K1_SEQ is not set
1100+CONFIG_SND_DRIVERS=y
1101+# CONFIG_SND_DUMMY is not set
1102+# CONFIG_SND_MTPAV is not set
1103+# CONFIG_SND_SERIAL_U16550 is not set
1104+# CONFIG_SND_MPU401 is not set
1105+CONFIG_SND_ARM=y
1106+CONFIG_SND_SPI=y
1107+CONFIG_SND_USB=y
1108+# CONFIG_SND_USB_AUDIO is not set
1109+# CONFIG_SND_USB_CAIAQ is not set
1110+CONFIG_SND_SOC=y
1111+CONFIG_SND_OMAP_SOC=y
1112+CONFIG_SND_OMAP_SOC_MCBSP=y
1113+CONFIG_SND_OMAP_SOC_IGEP0020=y
1114+CONFIG_SND_SOC_I2C_AND_SPI=y
1115+# CONFIG_SND_SOC_ALL_CODECS is not set
1116+CONFIG_SND_SOC_TWL4030=y
1117+# CONFIG_SOUND_PRIME is not set
1118+# CONFIG_HID_SUPPORT is not set
1119+CONFIG_HID=m
9881120 CONFIG_USB_SUPPORT=y
9891121 CONFIG_USB_ARCH_HAS_HCD=y
9901122 CONFIG_USB_ARCH_HAS_OHCI=y
991−# CONFIG_USB_ARCH_HAS_EHCI is not set
1123+CONFIG_USB_ARCH_HAS_EHCI=y
9921124 CONFIG_USB=y
9931125 # CONFIG_USB_DEBUG is not set
9941126 CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
@@ -997,12 +1129,12 @@ CONFIG_USB_ANNOUNCE_NEW_DEVICES=y · 2 unmodified lines
9971129 # Miscellaneous USB options
9981130 #
9991131 # CONFIG_USB_DEVICEFS is not set
1000−# CONFIG_USB_DEVICE_CLASS is not set
1132+CONFIG_USB_DEVICE_CLASS=y
10011133 # CONFIG_USB_DYNAMIC_MINORS is not set
10021134 # CONFIG_USB_OTG is not set
10031135 # CONFIG_USB_OTG_WHITELIST is not set
10041136 # CONFIG_USB_OTG_BLACKLIST_HUB is not set
1005−CONFIG_USB_MON=m
1137+# CONFIG_USB_MON is not set
10061138 # CONFIG_USB_WUSB is not set
10071139 # CONFIG_USB_WUSB_CBAF is not set
10081140
@@ -1010,29 +1142,21 @@ CONFIG_USB_MON=m · 1 unmodified line
10101142 # USB Host Controller Drivers
10111143 #
10121144 # CONFIG_USB_C67X00_HCD is not set
1145+CONFIG_USB_EHCI_HCD=y
1146+CONFIG_USB_EHCI_ROOT_HUB_TT=y
1147+# CONFIG_USB_EHCI_TT_NEWSCHED is not set
10131148 # CONFIG_USB_OXU210HP_HCD is not set
10141149 # CONFIG_USB_ISP116X_HCD is not set
10151150 # CONFIG_USB_ISP1760_HCD is not set
10161151 # CONFIG_USB_ISP1362_HCD is not set
1017−# CONFIG_USB_OHCI_HCD is not set
1152+CONFIG_USB_OHCI_HCD=y
1153+# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
1154+# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
1155+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
10181156 # CONFIG_USB_SL811_HCD is not set
10191157 # CONFIG_USB_R8A66597_HCD is not set
10201158 # CONFIG_USB_HWA_HCD is not set
1021−CONFIG_USB_MUSB_HDRC=y
1022−CONFIG_USB_MUSB_SOC=y
1023−
1024−#
1025−# OMAP 343x high speed USB support
1026−#
1027−CONFIG_USB_MUSB_HOST=y
1028−# CONFIG_USB_MUSB_PERIPHERAL is not set
1029−# CONFIG_USB_MUSB_OTG is not set
1030−# CONFIG_USB_GADGET_MUSB_HDRC is not set
1031−CONFIG_USB_MUSB_HDRC_HCD=y
1032−# CONFIG_MUSB_PIO_ONLY is not set
1033−CONFIG_USB_INVENTRA_DMA=y
1034−# CONFIG_USB_TI_CPPI_DMA is not set
1035−# CONFIG_USB_MUSB_DEBUG is not set
1159+# CONFIG_USB_MUSB_HDRC is not set
10361160
10371161 #
10381162 # USB Device Class drivers
@@ -1049,19 +1173,7 @@ CONFIG_USB_INVENTRA_DMA=y · 10 unmodified lines
10491173 #
10501174 # also be needed; see USB_STORAGE Help for more info
10511175 #
1052−CONFIG_USB_STORAGE=m
1053−# CONFIG_USB_STORAGE_DEBUG is not set
1054−# CONFIG_USB_STORAGE_DATAFAB is not set
1055−# CONFIG_USB_STORAGE_FREECOM is not set
1056−# CONFIG_USB_STORAGE_ISD200 is not set
1057−# CONFIG_USB_STORAGE_USBAT is not set
1058−# CONFIG_USB_STORAGE_SDDR09 is not set
1059−# CONFIG_USB_STORAGE_SDDR55 is not set
1060−# CONFIG_USB_STORAGE_JUMPSHOT is not set
1061−# CONFIG_USB_STORAGE_ALAUDA is not set
1062−# CONFIG_USB_STORAGE_ONETOUCH is not set
1063−# CONFIG_USB_STORAGE_KARMA is not set
1064−# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1176+# CONFIG_USB_STORAGE is not set
10651177 # CONFIG_USB_LIBUSUAL is not set
10661178
10671179 #
@@ -1099,41 +1211,7 @@ CONFIG_USB_STORAGE=m · 31 unmodified lines
10991211 # CONFIG_USB_TEST is not set
11001212 # CONFIG_USB_ISIGHTFW is not set
11011213 # CONFIG_USB_VST is not set
1102−CONFIG_USB_GADGET=y
1103−CONFIG_USB_GADGET_DEBUG=y
1104−CONFIG_USB_GADGET_DEBUG_FILES=y
1105−CONFIG_USB_GADGET_VBUS_DRAW=2
1106−CONFIG_USB_GADGET_SELECTED=y
1107−# CONFIG_USB_GADGET_AT91 is not set
1108−# CONFIG_USB_GADGET_ATMEL_USBA is not set
1109−# CONFIG_USB_GADGET_FSL_USB2 is not set
1110−# CONFIG_USB_GADGET_LH7A40X is not set
1111−CONFIG_USB_GADGET_OMAP=y
1112−CONFIG_USB_OMAP=y
1113−# CONFIG_USB_GADGET_PXA25X is not set
1114−# CONFIG_USB_GADGET_R8A66597 is not set
1115−# CONFIG_USB_GADGET_PXA27X is not set
1116−# CONFIG_USB_GADGET_S3C_HSOTG is not set
1117−# CONFIG_USB_GADGET_IMX is not set
1118−# CONFIG_USB_GADGET_S3C2410 is not set
1119−# CONFIG_USB_GADGET_M66592 is not set
1120−# CONFIG_USB_GADGET_AMD5536UDC is not set
1121−# CONFIG_USB_GADGET_FSL_QE is not set
1122−# CONFIG_USB_GADGET_CI13XXX is not set
1123−# CONFIG_USB_GADGET_NET2280 is not set
1124−# CONFIG_USB_GADGET_GOKU is not set
1125−# CONFIG_USB_GADGET_LANGWELL is not set
1126−# CONFIG_USB_GADGET_DUMMY_HCD is not set
1127−# CONFIG_USB_GADGET_DUALSPEED is not set
1128−CONFIG_USB_ZERO=m
1129−# CONFIG_USB_AUDIO is not set
1130−# CONFIG_USB_ETH is not set
1131−# CONFIG_USB_GADGETFS is not set
1132−# CONFIG_USB_FILE_STORAGE is not set
1133−# CONFIG_USB_G_SERIAL is not set
1134−# CONFIG_USB_MIDI_GADGET is not set
1135−# CONFIG_USB_G_PRINTER is not set
1136−# CONFIG_USB_CDC_COMPOSITE is not set
1214+# CONFIG_USB_GADGET is not set
11371215
11381216 #
11391217 # OTG and related infrastructure
@@ -1141,10 +1219,11 @@ CONFIG_USB_ZERO=m · 1 unmodified line
11411219 CONFIG_USB_OTG_UTILS=y
11421220 # CONFIG_USB_GPIO_VBUS is not set
11431221 # CONFIG_ISP1301_OMAP is not set
1144−CONFIG_TWL4030_USB=y
1222+# CONFIG_USB_ULPI is not set
1223+# CONFIG_TWL4030_USB is not set
11451224 # CONFIG_NOP_USB_XCEIV is not set
11461225 CONFIG_MMC=y
1147−# CONFIG_MMC_DEBUG is not set
1226+CONFIG_MMC_DEBUG=y
11481227 # CONFIG_MMC_UNSAFE_RESUME is not set
11491228
11501229 #
@@ -1158,7 +1237,8 @@ CONFIG_MMC_BLOCK_BOUNCE=y · 7 unmodified lines
11581237 #
11591238 # MMC/SD/SDIO Host Controller Drivers
11601239 #
1161−# CONFIG_MMC_SDHCI is not set
1240+CONFIG_MMC_SDHCI=y
1241+# CONFIG_MMC_SDHCI_PLTFM is not set
11621242 # CONFIG_MMC_OMAP is not set
11631243 CONFIG_MMC_OMAP_HS=y
11641244 # CONFIG_MMC_AT91 is not set
@@ -1178,6 +1258,11 @@ CONFIG_RTC_LIB=y · 13 unmodified lines
11781258 #
11791259 # CONFIG_STAGING is not set
11801260
1261+#
1262+# CBUS support
1263+#
1264+# CONFIG_CBUS is not set
1265+
11811266 #
11821267 # File systems
11831268 #
@@ -1253,6 +1338,7 @@ CONFIG_MISC_FILESYSTEMS=y · 69 unmodified lines
12531338 # CONFIG_BEFS_FS is not set
12541339 # CONFIG_BFS_FS is not set
12551340 # CONFIG_EFS_FS is not set
1341+# CONFIG_JFFS2_FS is not set
12561342 # CONFIG_CRAMFS is not set
12571343 # CONFIG_SQUASHFS is not set
12581344 # CONFIG_VXFS_FS is not set
@@ -1401,6 +1487,7 @@ CONFIG_DEBUG_INFO=y · 142 unmodified lines
14011487 # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
14021488 # CONFIG_FAULT_INJECTION is not set
14031489 # CONFIG_LATENCYTOP is not set
1490+# CONFIG_SYSCTL_SYSCALL_CHECK is not set
14041491 # CONFIG_PAGE_POISONING is not set
14051492 CONFIG_HAVE_FUNCTION_TRACER=y
14061493 CONFIG_TRACING_SUPPORT=y
@@ -1425,7 +1512,9 @@ CONFIG_ARM_UNWIND=y · 18 unmodified lines
14251512 # CONFIG_DEBUG_ERRORS is not set
14261513 # CONFIG_DEBUG_STACK_USAGE is not set
14271514 CONFIG_DEBUG_LL=y
1515+# CONFIG_EARLY_PRINTK is not set
14281516 # CONFIG_DEBUG_ICEDCC is not set
1517+# CONFIG_OC_ETM is not set
14291518
14301519 #
14311520 # Security options
@@ -1433,7 +1522,11 @@ CONFIG_DEBUG_LL=y · 1 unmodified line
14331522 # CONFIG_KEYS is not set
14341523 # CONFIG_SECURITY is not set
14351524 # CONFIG_SECURITYFS is not set
1436−# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1525+# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1526+# CONFIG_DEFAULT_SECURITY_SMACK is not set
1527+# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1528+CONFIG_DEFAULT_SECURITY_DAC=y
1529+CONFIG_DEFAULT_SECURITY=""
14371530 CONFIG_CRYPTO=y
14381531
14391532 #
arch/arm/configs/omap3_defconfig+143−37
@@ -1,7 +1,7 @@
11 #
22 # Automatically generated make config: don't edit
3−# Linux kernel version: 2.6.32-rc8
4−# Tue Dec 1 14:04:02 2009
3+# Linux kernel version: 2.6.33-rc5
4+# Tue Jan 26 11:05:31 2010
55 #
66 CONFIG_ARM=y
77 CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -20,6 +20,8 @@ CONFIG_ARCH_HAS_CPUFREQ=y · 12 unmodified lines
2020 CONFIG_GENERIC_HWEIGHT=y
2121 CONFIG_GENERIC_CALIBRATE_DELAY=y
2222 CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
23+CONFIG_OPROFILE_ARMV6=y
24+CONFIG_OPROFILE_ARM11_CORE=y
2325 CONFIG_OPROFILE_ARMV7=y
2426 CONFIG_VECTORS_BASE=0xffff0000
2527 CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -33,6 +35,12 @@ CONFIG_BROKEN_ON_SMP=y · 7 unmodified lines
3335 CONFIG_INIT_ENV_ARG_LIMIT=32
3436 CONFIG_LOCALVERSION=""
3537 CONFIG_LOCALVERSION_AUTO=y
38+CONFIG_HAVE_KERNEL_GZIP=y
39+CONFIG_HAVE_KERNEL_LZO=y
40+CONFIG_KERNEL_GZIP=y
41+# CONFIG_KERNEL_BZIP2 is not set
42+# CONFIG_KERNEL_LZMA is not set
43+# CONFIG_KERNEL_LZO is not set
3644 CONFIG_SWAP=y
3745 CONFIG_SYSVIPC=y
3846 CONFIG_SYSVIPC_SYSCTL=y
@@ -48,6 +56,7 @@ CONFIG_BSD_PROCESS_ACCT=y · 9 unmodified lines
4856 #
4957 CONFIG_TREE_RCU=y
5058 # CONFIG_TREE_PREEMPT_RCU is not set
59+# CONFIG_TINY_RCU is not set
5160 # CONFIG_RCU_TRACE is not set
5261 CONFIG_RCU_FANOUT=32
5362 # CONFIG_RCU_FANOUT_EXACT is not set
@@ -69,6 +78,7 @@ CONFIG_INITRAMFS_SOURCE="" · 15 unmodified lines
6978 CONFIG_RD_GZIP=y
7079 # CONFIG_RD_BZIP2 is not set
7180 # CONFIG_RD_LZMA is not set
81+# CONFIG_RD_LZO is not set
7282 CONFIG_CC_OPTIMIZE_FOR_SIZE=y
7383 CONFIG_SYSCTL=y
7484 CONFIG_ANON_INODES=y
@@ -133,14 +143,41 @@ CONFIG_LBDAF=y · 58 unmodified lines
133143 # IO Schedulers
134144 #
135145 CONFIG_IOSCHED_NOOP=y
136−CONFIG_IOSCHED_AS=y
137146 CONFIG_IOSCHED_DEADLINE=y
138147 CONFIG_IOSCHED_CFQ=y
139−# CONFIG_DEFAULT_AS is not set
140148 # CONFIG_DEFAULT_DEADLINE is not set
141149 CONFIG_DEFAULT_CFQ=y
142150 # CONFIG_DEFAULT_NOOP is not set
143151 CONFIG_DEFAULT_IOSCHED="cfq"
152+# CONFIG_INLINE_SPIN_TRYLOCK is not set
153+# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
154+# CONFIG_INLINE_SPIN_LOCK is not set
155+# CONFIG_INLINE_SPIN_LOCK_BH is not set
156+# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
157+# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
158+# CONFIG_INLINE_SPIN_UNLOCK is not set
159+# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
160+# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
161+# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
162+# CONFIG_INLINE_READ_TRYLOCK is not set
163+# CONFIG_INLINE_READ_LOCK is not set
164+# CONFIG_INLINE_READ_LOCK_BH is not set
165+# CONFIG_INLINE_READ_LOCK_IRQ is not set
166+# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
167+# CONFIG_INLINE_READ_UNLOCK is not set
168+# CONFIG_INLINE_READ_UNLOCK_BH is not set
169+# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
170+# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
171+# CONFIG_INLINE_WRITE_TRYLOCK is not set
172+# CONFIG_INLINE_WRITE_LOCK is not set
173+# CONFIG_INLINE_WRITE_LOCK_BH is not set
174+# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
175+# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
176+# CONFIG_INLINE_WRITE_UNLOCK is not set
177+# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
178+# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
179+# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
180+# CONFIG_MUTEX_SPIN_ON_OWNER is not set
144181 CONFIG_FREEZER=y
145182
146183 #
@@ -169,6 +206,7 @@ CONFIG_MMU=y · 22 unmodified lines
169206 # CONFIG_ARCH_IXP2000 is not set
170207 # CONFIG_ARCH_IXP4XX is not set
171208 # CONFIG_ARCH_L7200 is not set
209+# CONFIG_ARCH_DOVE is not set
172210 # CONFIG_ARCH_KIRKWOOD is not set
173211 # CONFIG_ARCH_LOKI is not set
174212 # CONFIG_ARCH_MV78XX0 is not set
@@ -191,21 +229,23 @@ CONFIG_MMU=y · 16 unmodified lines
191229 # CONFIG_ARCH_DAVINCI is not set
192230 CONFIG_ARCH_OMAP=y
193231 # CONFIG_ARCH_BCMRING is not set
232+# CONFIG_ARCH_U8500 is not set
194233
195234 #
196235 # TI OMAP Implementations
197236 #
198237 CONFIG_ARCH_OMAP_OTG=y
199238 # CONFIG_ARCH_OMAP1 is not set
200−# CONFIG_ARCH_OMAP2 is not set
239+CONFIG_ARCH_OMAP2PLUS=y
240+CONFIG_ARCH_OMAP2=y
201241 CONFIG_ARCH_OMAP3=y
202−# CONFIG_ARCH_OMAP4 is not set
242+CONFIG_ARCH_OMAP4=y
203243
204244 #
205245 # OMAP Feature Selections
206246 #
207−# CONFIG_OMAP_DEBUG_POWERDOMAIN is not set
208−# CONFIG_OMAP_DEBUG_CLOCKDOMAIN is not set
247+CONFIG_OMAP_DEBUG_DEVICES=y
248+CONFIG_OMAP_DEBUG_LEDS=y
209249 CONFIG_OMAP_RESET_CLOCKS=y
210250 CONFIG_OMAP_MUX=y
211251 CONFIG_OMAP_MUX_DEBUG=y
@@ -216,43 +256,66 @@ CONFIG_OMAP_MCBSP=y · 4 unmodified lines
216256 CONFIG_OMAP_32K_TIMER=y
217257 CONFIG_OMAP_32K_TIMER_HZ=128
218258 CONFIG_OMAP_DM_TIMER=y
219−# CONFIG_OMAP_LL_DEBUG_UART1 is not set
220−# CONFIG_OMAP_LL_DEBUG_UART2 is not set
221−# CONFIG_OMAP_LL_DEBUG_UART3 is not set
222−CONFIG_OMAP_LL_DEBUG_NONE=y
223259 # CONFIG_OMAP_PM_NONE is not set
224260 CONFIG_OMAP_PM_NOOP=y
225−CONFIG_ARCH_OMAP34XX=y
261+CONFIG_MACH_OMAP_GENERIC=y
262+
263+#
264+# OMAP Core Type
265+#
266+CONFIG_ARCH_OMAP2420=y
267+# CONFIG_ARCH_OMAP2430 is not set
226268 CONFIG_ARCH_OMAP3430=y
269+CONFIG_OMAP_PACKAGE_CBB=y
270+CONFIG_OMAP_PACKAGE_CUS=y
271+CONFIG_OMAP_PACKAGE_CBP=y
227272
228273 #
229274 # OMAP Board Type
230275 #
276+CONFIG_MACH_OMAP2_TUSB6010=y
277+CONFIG_MACH_OMAP_H4=y
278+CONFIG_MACH_OMAP_APOLLON=y
279+# CONFIG_MACH_OMAP_2430SDP is not set
231280 CONFIG_MACH_OMAP3_BEAGLE=y
232281 CONFIG_MACH_OMAP_LDP=y
233282 CONFIG_MACH_OVERO=y
234283 CONFIG_MACH_OMAP3EVM=y
235284 CONFIG_MACH_OMAP3517EVM=y
236285 CONFIG_MACH_OMAP3_PANDORA=y
286+CONFIG_MACH_OMAP3_TOUCHBOOK=y
237287 CONFIG_MACH_OMAP_3430SDP=y
288+CONFIG_MACH_NOKIA_N800=y
289+CONFIG_MACH_NOKIA_N810=y
290+CONFIG_MACH_NOKIA_N810_WIMAX=y
291+CONFIG_MACH_NOKIA_N8X0=y
238292 CONFIG_MACH_NOKIA_RX51=y
239293 CONFIG_MACH_OMAP_ZOOM2=y
240294 CONFIG_MACH_OMAP_ZOOM3=y
241295 CONFIG_MACH_CM_T35=y
242296 CONFIG_MACH_IGEP0020=y
243297 CONFIG_MACH_OMAP_3630SDP=y
298+CONFIG_MACH_OMAP_4430SDP=y
299+# CONFIG_OMAP3_EMU is not set
300+# CONFIG_OMAP3_SDRC_AC_TIMING is not set
244301
245302 #
246303 # Processor Type
247304 #
248−CONFIG_CPU_32v6K=y
305+CONFIG_CPU_V6=y
306+# CONFIG_CPU_32v6K is not set
249307 CONFIG_CPU_V7=y
308+CONFIG_CPU_32v6=y
250309 CONFIG_CPU_32v7=y
310+CONFIG_CPU_ABRT_EV6=y
251311 CONFIG_CPU_ABRT_EV7=y
312+CONFIG_CPU_PABRT_V6=y
252313 CONFIG_CPU_PABRT_V7=y
314+CONFIG_CPU_CACHE_V6=y
253315 CONFIG_CPU_CACHE_V7=y
254316 CONFIG_CPU_CACHE_VIPT=y
255317 CONFIG_CPU_COPY_V6=y
318+CONFIG_CPU_TLB_V6=y
256319 CONFIG_CPU_TLB_V7=y
257320 CONFIG_CPU_HAS_ASID=y
258321 CONFIG_CPU_CP15=y
@@ -268,9 +331,11 @@ CONFIG_ARM_THUMBEE=y · 9 unmodified lines
268331 # CONFIG_CPU_BPREDICT_DISABLE is not set
269332 CONFIG_HAS_TLS_REG=y
270333 CONFIG_ARM_L1_CACHE_SHIFT=6
334+# CONFIG_ARM_ERRATA_411920 is not set
271335 # CONFIG_ARM_ERRATA_430973 is not set
272336 # CONFIG_ARM_ERRATA_458693 is not set
273337 # CONFIG_ARM_ERRATA_460075 is not set
338+CONFIG_ARM_GIC=y
274339 CONFIG_COMMON_CLKDEV=y
275340
276341 #
@@ -287,6 +352,7 @@ CONFIG_TICK_ONESHOT=y · 10 unmodified lines
287352 CONFIG_NO_HZ=y
288353 CONFIG_HIGH_RES_TIMERS=y
289354 CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
355+# CONFIG_SMP is not set
290356 CONFIG_VMSPLIT_3G=y
291357 # CONFIG_VMSPLIT_2G is not set
292358 # CONFIG_VMSPLIT_1G is not set
@@ -298,6 +364,7 @@ CONFIG_HZ=128 · 5 unmodified lines
298364 # CONFIG_THUMB2_KERNEL is not set
299365 CONFIG_AEABI=y
300366 CONFIG_OABI_COMPAT=y
367+CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y
301368 # CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
302369 # CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
303370 # CONFIG_HIGHMEM is not set
@@ -308,12 +375,10 @@ CONFIG_FLATMEM_MANUAL=y · 4 unmodified lines
308375 CONFIG_FLATMEM=y
309376 CONFIG_FLAT_NODE_MEM_MAP=y
310377 CONFIG_PAGEFLAGS_EXTENDED=y
311−CONFIG_SPLIT_PTLOCK_CPUS=4
378+CONFIG_SPLIT_PTLOCK_CPUS=999999
312379 # CONFIG_PHYS_ADDR_T_64BIT is not set
313380 CONFIG_ZONE_DMA_FLAG=0
314381 CONFIG_VIRT_TO_BUS=y
315−CONFIG_HAVE_MLOCK=y
316−CONFIG_HAVE_MLOCKED_PAGE_BIT=y
317382 # CONFIG_KSM is not set
318383 CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
319384 CONFIG_LEDS=y
@@ -509,15 +574,18 @@ CONFIG_BT_HCIBPA10X=y · 189 unmodified lines
509574 # CONFIG_BT_MRVL is not set
510575 # CONFIG_AF_RXRPC is not set
511576 CONFIG_WIRELESS=y
577+CONFIG_WIRELESS_EXT=y
578+CONFIG_WEXT_CORE=y
579+CONFIG_WEXT_PROC=y
580+CONFIG_WEXT_SPY=y
512581 CONFIG_CFG80211=y
513582 # CONFIG_NL80211_TESTMODE is not set
514583 # CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
515584 # CONFIG_CFG80211_REG_DEBUG is not set
516585 CONFIG_CFG80211_DEFAULT_PS=y
517−CONFIG_CFG80211_DEFAULT_PS_VALUE=1
518586 # CONFIG_CFG80211_DEBUGFS is not set
519587 CONFIG_WIRELESS_OLD_REGULATORY=y
520−CONFIG_WIRELESS_EXT=y
588+CONFIG_CFG80211_WEXT=y
521589 CONFIG_WIRELESS_EXT_SYSFS=y
522590 CONFIG_LIB80211=y
523591 # CONFIG_LIB80211_DEBUG is not set
@@ -671,6 +739,7 @@ CONFIG_BLK_DEV=y · 147 unmodified lines
671739 # CONFIG_BLK_DEV_COW_COMMON is not set
672740 CONFIG_BLK_DEV_LOOP=y
673741 # CONFIG_BLK_DEV_CRYPTOLOOP is not set
742+# CONFIG_BLK_DEV_DRBD is not set
674743 # CONFIG_BLK_DEV_NBD is not set
675744 # CONFIG_BLK_DEV_UB is not set
676745 CONFIG_BLK_DEV_RAM=y
@@ -681,9 +750,12 @@ CONFIG_BLK_DEV_RAM_SIZE=16384 · 4 unmodified lines
681750 # CONFIG_ATA_OVER_ETH is not set
682751 # CONFIG_MG_DISK is not set
683752 CONFIG_MISC_DEVICES=y
753+# CONFIG_AD525X_DPOT is not set
684754 # CONFIG_ICS932S401 is not set
685755 # CONFIG_ENCLOSURE_SERVICES is not set
686756 # CONFIG_ISL29003 is not set
757+# CONFIG_DS1682 is not set
758+# CONFIG_TI_DAC7512 is not set
687759 # CONFIG_C2PORT is not set
688760
689761 #
@@ -694,6 +766,7 @@ CONFIG_MISC_DEVICES=y · 4 unmodified lines
694766 CONFIG_EEPROM_LEGACY=y
695767 # CONFIG_EEPROM_MAX6875 is not set
696768 # CONFIG_EEPROM_93CX6 is not set
769+# CONFIG_IWMC3200TOP is not set
697770 CONFIG_HAVE_IDE=y
698771 # CONFIG_IDE is not set
699772
@@ -792,28 +865,26 @@ CONFIG_SMSC911X=y · 92 unmodified lines
792865 CONFIG_NETDEV_1000=y
793866 CONFIG_NETDEV_10000=y
794867 CONFIG_WLAN=y
795−# CONFIG_WLAN_PRE80211 is not set
796−CONFIG_WLAN_80211=y
797−CONFIG_LIBERTAS=y
798−CONFIG_LIBERTAS_USB=y
799−CONFIG_LIBERTAS_SDIO=y
800−# CONFIG_LIBERTAS_SPI is not set
801−CONFIG_LIBERTAS_DEBUG=y
802868 # CONFIG_LIBERTAS_THINFIRM is not set
803869 # CONFIG_AT76C50X_USB is not set
804870 # CONFIG_USB_ZD1201 is not set
805871 # CONFIG_USB_NET_RNDIS_WLAN is not set
806872 # CONFIG_RTL8187 is not set
807873 # CONFIG_MAC80211_HWSIM is not set
808−# CONFIG_P54_COMMON is not set
809874 # CONFIG_ATH_COMMON is not set
810−# CONFIG_HOSTAP is not set
811875 # CONFIG_B43 is not set
812876 # CONFIG_B43LEGACY is not set
813−# CONFIG_ZD1211RW is not set
877+# CONFIG_HOSTAP is not set
878+# CONFIG_IWM is not set
879+CONFIG_LIBERTAS=y
880+CONFIG_LIBERTAS_USB=y
881+CONFIG_LIBERTAS_SDIO=y
882+# CONFIG_LIBERTAS_SPI is not set
883+CONFIG_LIBERTAS_DEBUG=y
884+# CONFIG_P54_COMMON is not set
814885 # CONFIG_RT2X00 is not set
815886 # CONFIG_WL12XX is not set
816−# CONFIG_IWM is not set
887+# CONFIG_ZD1211RW is not set
817888
818889 #
819890 # Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -861,6 +932,7 @@ CONFIG_USB_NET_ZAURUS=y · 41 unmodified lines
861932 CONFIG_INPUT=y
862933 # CONFIG_INPUT_FF_MEMLESS is not set
863934 # CONFIG_INPUT_POLLDEV is not set
935+# CONFIG_INPUT_SPARSEKMAP is not set
864936
865937 #
866938 # Userland interfaces
@@ -889,6 +961,7 @@ CONFIG_KEYBOARD_GPIO=y · 22 unmodified lines
889961 # CONFIG_KEYBOARD_OPENCORES is not set
890962 # CONFIG_KEYBOARD_STOWAWAY is not set
891963 # CONFIG_KEYBOARD_SUNKBD is not set
964+# CONFIG_KEYBOARD_OMAP is not set
892965 CONFIG_KEYBOARD_TWL4030=y
893966 # CONFIG_KEYBOARD_XTKBD is not set
894967 CONFIG_INPUT_MOUSE=y
@@ -914,6 +987,7 @@ CONFIG_TOUCHSCREEN_ADS7846=y · 19 unmodified lines
914987 # CONFIG_TOUCHSCREEN_AD7879_I2C is not set
915988 # CONFIG_TOUCHSCREEN_AD7879_SPI is not set
916989 # CONFIG_TOUCHSCREEN_AD7879 is not set
990+# CONFIG_TOUCHSCREEN_DYNAPRO is not set
917991 # CONFIG_TOUCHSCREEN_EETI is not set
918992 # CONFIG_TOUCHSCREEN_FUJITSU is not set
919993 # CONFIG_TOUCHSCREEN_GUNZE is not set
@@ -948,6 +1022,7 @@ CONFIG_SERIO=y · 28 unmodified lines
9481022 CONFIG_SERIO_SERPORT=y
9491023 CONFIG_SERIO_LIBPS2=y
9501024 # CONFIG_SERIO_RAW is not set
1025+# CONFIG_SERIO_ALTERA_PS2 is not set
9511026 # CONFIG_GAMEPORT is not set
9521027
9531028 #
@@ -986,6 +1061,7 @@ CONFIG_UNIX98_PTYS=y · 32 unmodified lines
9861061 # CONFIG_IPMI_HANDLER is not set
9871062 CONFIG_HW_RANDOM=y
9881063 # CONFIG_HW_RANDOM_TIMERIOMEM is not set
1064+CONFIG_HW_RANDOM_OMAP=y
9891065 # CONFIG_R3964 is not set
9901066 # CONFIG_RAW_DRIVER is not set
9911067 # CONFIG_TCG_TPM is not set
@@ -1024,7 +1100,6 @@ CONFIG_I2C_OMAP=y · 32 unmodified lines
10241100 #
10251101 # Miscellaneous I2C Chip support
10261102 #
1027−# CONFIG_DS1682 is not set
10281103 # CONFIG_SENSORS_TSL2550 is not set
10291104 # CONFIG_I2C_DEBUG_CORE is not set
10301105 # CONFIG_I2C_DEBUG_ALGO is not set
@@ -1040,6 +1115,8 @@ CONFIG_SPI_MASTER=y · 9 unmodified lines
10401115 # CONFIG_SPI_BITBANG is not set
10411116 # CONFIG_SPI_GPIO is not set
10421117 CONFIG_SPI_OMAP24XX=y
1118+# CONFIG_SPI_XILINX is not set
1119+# CONFIG_SPI_DESIGNWARE is not set
10431120
10441121 #
10451122 # SPI Protocol Masters
@@ -1067,6 +1144,7 @@ CONFIG_GPIO_SYSFS=y · 21 unmodified lines
10671144 # CONFIG_GPIO_PCA953X is not set
10681145 # CONFIG_GPIO_PCF857X is not set
10691146 CONFIG_GPIO_TWL4030=y
1147+# CONFIG_GPIO_ADP5588 is not set
10701148
10711149 #
10721150 # PCI GPIO expanders:
@@ -1141,6 +1219,7 @@ CONFIG_HWMON=y · 68 unmodified lines
11411219 # CONFIG_SENSORS_IT87 is not set
11421220 # CONFIG_SENSORS_LM63 is not set
11431221 # CONFIG_SENSORS_LM70 is not set
1222+# CONFIG_SENSORS_LM73 is not set
11441223 # CONFIG_SENSORS_LM75 is not set
11451224 # CONFIG_SENSORS_LM77 is not set
11461225 # CONFIG_SENSORS_LM78 is not set
@@ -1166,6 +1245,7 @@ CONFIG_HWMON=y · 19 unmodified lines
11661245 # CONFIG_SENSORS_SMSC47M192 is not set
11671246 # CONFIG_SENSORS_SMSC47B397 is not set
11681247 # CONFIG_SENSORS_ADS7828 is not set
1248+# CONFIG_SENSORS_AMC6821 is not set
11691249 # CONFIG_SENSORS_THMC50 is not set
11701250 # CONFIG_SENSORS_TMP401 is not set
11711251 # CONFIG_SENSORS_TMP421 is not set
@@ -1179,6 +1259,7 @@ CONFIG_HWMON=y · 7 unmodified lines
11791259 # CONFIG_SENSORS_W83627HF is not set
11801260 # CONFIG_SENSORS_W83627EHF is not set
11811261 # CONFIG_SENSORS_LIS3_SPI is not set
1262+# CONFIG_SENSORS_LIS3_I2C is not set
11821263 # CONFIG_THERMAL is not set
11831264 CONFIG_WATCHDOG=y
11841265 CONFIG_WATCHDOG_NOWAYOUT=y
@@ -1204,20 +1285,22 @@ CONFIG_SSB_POSSIBLE=y · 19 unmodified lines
12041285 #
12051286 # Multifunction device drivers
12061287 #
1207−# CONFIG_MFD_CORE is not set
1288+CONFIG_MFD_CORE=y
12081289 # CONFIG_MFD_SM501 is not set
12091290 # CONFIG_MFD_ASIC3 is not set
12101291 # CONFIG_HTC_EGPIO is not set
12111292 # CONFIG_HTC_PASIC3 is not set
12121293 # CONFIG_TPS65010 is not set
1294+# CONFIG_MENELAUS is not set
12131295 CONFIG_TWL4030_CORE=y
12141296 # CONFIG_TWL4030_POWER is not set
1215−# CONFIG_TWL4030_CODEC is not set
1297+CONFIG_TWL4030_CODEC=y
12161298 # CONFIG_MFD_TMIO is not set
12171299 # CONFIG_MFD_T7L66XB is not set
12181300 # CONFIG_MFD_TC6387XB is not set
12191301 # CONFIG_MFD_TC6393XB is not set
12201302 # CONFIG_PMIC_DA903X is not set
1303+# CONFIG_PMIC_ADP5520 is not set
12211304 # CONFIG_MFD_WM8400 is not set
12221305 # CONFIG_MFD_WM831X is not set
12231306 # CONFIG_MFD_WM8350_I2C is not set
@@ -1225,6 +1308,8 @@ CONFIG_TWL4030_CORE=y · 1 unmodified line
12251308 # CONFIG_MFD_MC13783 is not set
12261309 # CONFIG_AB3100_CORE is not set
12271310 # CONFIG_EZX_PCAP is not set
1311+# CONFIG_MFD_88PM8607 is not set
1312+# CONFIG_AB4500_CORE is not set
12281313 CONFIG_REGULATOR=y
12291314 # CONFIG_REGULATOR_DEBUG is not set
12301315 CONFIG_REGULATOR_FIXED_VOLTAGE=y
@@ -1232,6 +1317,7 @@ CONFIG_REGULATOR_FIXED_VOLTAGE=y · 1 unmodified line
12321317 # CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
12331318 # CONFIG_REGULATOR_BQ24022 is not set
12341319 # CONFIG_REGULATOR_MAX1586 is not set
1320+# CONFIG_REGULATOR_MAX8660 is not set
12351321 CONFIG_REGULATOR_TWL4030=y
12361322 # CONFIG_REGULATOR_LP3971 is not set
12371323 # CONFIG_REGULATOR_TPS65023 is not set
@@ -1267,6 +1353,7 @@ CONFIG_FB_TILEBLITTING=y · 29 unmodified lines
12671353 #
12681354 # CONFIG_FB_UVESA is not set
12691355 # CONFIG_FB_S1D13XXX is not set
1356+# CONFIG_FB_TMIO is not set
12701357 # CONFIG_FB_VIRTUAL is not set
12711358 # CONFIG_FB_METRONOME is not set
12721359 # CONFIG_FB_MB862XX is not set
@@ -1281,6 +1368,7 @@ CONFIG_FB_OMAP_079M3R=y · 8 unmodified lines
12811368 # CONFIG_FB_OMAP_LCD_MIPID is not set
12821369 # CONFIG_FB_OMAP_BOOTLOADER_INIT is not set
12831370 CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE=2
1371+# CONFIG_OMAP2_DSS is not set
12841372 CONFIG_BACKLIGHT_LCD_SUPPORT=y
12851373 CONFIG_LCD_CLASS_DEVICE=y
12861374 # CONFIG_LCD_LMS283GF05 is not set
@@ -1364,12 +1452,15 @@ CONFIG_SND_USB_AUDIO=y · 77 unmodified lines
13641452 CONFIG_SND_SOC=y
13651453 CONFIG_SND_OMAP_SOC=y
13661454 CONFIG_SND_OMAP_SOC_MCBSP=y
1455+# CONFIG_SND_OMAP_SOC_N810 is not set
13671456 # CONFIG_SND_OMAP_SOC_OVERO is not set
13681457 # CONFIG_SND_OMAP_SOC_OMAP3EVM is not set
1458+# CONFIG_SND_OMAP_SOC_AM3517EVM is not set
13691459 # CONFIG_SND_OMAP_SOC_SDP3430 is not set
13701460 CONFIG_SND_OMAP_SOC_OMAP3_PANDORA=y
13711461 # CONFIG_SND_OMAP_SOC_OMAP3_BEAGLE is not set
13721462 # CONFIG_SND_OMAP_SOC_ZOOM2 is not set
1463+# CONFIG_SND_OMAP_SOC_IGEP0020 is not set
13731464 CONFIG_SND_SOC_I2C_AND_SPI=y
13741465 # CONFIG_SND_SOC_ALL_CODECS is not set
13751466 CONFIG_SND_SOC_TWL4030=y
@@ -1418,7 +1509,7 @@ CONFIG_USB_HID=y · 42 unmodified lines
14181509 CONFIG_USB_SUPPORT=y
14191510 CONFIG_USB_ARCH_HAS_HCD=y
14201511 CONFIG_USB_ARCH_HAS_OHCI=y
1421−# CONFIG_USB_ARCH_HAS_EHCI is not set
1512+CONFIG_USB_ARCH_HAS_EHCI=y
14221513 CONFIG_USB=y
14231514 CONFIG_USB_DEBUG=y
14241515 CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
@@ -1441,6 +1532,7 @@ CONFIG_USB_MON=y · 16 unmodified lines
14411532 # USB Host Controller Drivers
14421533 #
14431534 # CONFIG_USB_C67X00_HCD is not set
1535+# CONFIG_USB_EHCI_HCD is not set
14441536 # CONFIG_USB_OXU210HP_HCD is not set
14451537 # CONFIG_USB_ISP116X_HCD is not set
14461538 # CONFIG_USB_ISP1760_HCD is not set
@@ -1556,16 +1648,18 @@ CONFIG_USB_GADGET_SELECTED=y · 109 unmodified lines
15561648 # CONFIG_USB_GADGET_LANGWELL is not set
15571649 # CONFIG_USB_GADGET_DUMMY_HCD is not set
15581650 CONFIG_USB_GADGET_DUALSPEED=y
1559−CONFIG_USB_ZERO=y
1651+CONFIG_USB_ZERO=m
15601652 # CONFIG_USB_ZERO_HNPTEST is not set
15611653 # CONFIG_USB_AUDIO is not set
15621654 # CONFIG_USB_ETH is not set
15631655 # CONFIG_USB_GADGETFS is not set
15641656 # CONFIG_USB_FILE_STORAGE is not set
1657+# CONFIG_USB_MASS_STORAGE is not set
15651658 # CONFIG_USB_G_SERIAL is not set
15661659 # CONFIG_USB_MIDI_GADGET is not set
15671660 # CONFIG_USB_G_PRINTER is not set
15681661 # CONFIG_USB_CDC_COMPOSITE is not set
1662+# CONFIG_USB_G_MULTI is not set
15691663
15701664 #
15711665 # OTG and related infrastructure
@@ -1573,6 +1667,7 @@ CONFIG_USB_ZERO=y · 1 unmodified line
15731667 CONFIG_USB_OTG_UTILS=y
15741668 # CONFIG_USB_GPIO_VBUS is not set
15751669 # CONFIG_ISP1301_OMAP is not set
1670+# CONFIG_USB_ULPI is not set
15761671 CONFIG_TWL4030_USB=y
15771672 CONFIG_NOP_USB_XCEIV=y
15781673 CONFIG_MMC=y
@@ -1609,7 +1704,9 @@ CONFIG_LEDS_GPIO_PLATFORM=y · 30 unmodified lines
16091704 # CONFIG_LEDS_LP3944 is not set
16101705 # CONFIG_LEDS_PCA955X is not set
16111706 # CONFIG_LEDS_DAC124S085 is not set
1707+# CONFIG_LEDS_REGULATOR is not set
16121708 # CONFIG_LEDS_BD2802 is not set
1709+# CONFIG_LEDS_LT3593 is not set
16131710
16141711 #
16151712 # LED Triggers
@@ -1653,6 +1750,7 @@ CONFIG_RTC_INTF_DEV=y · 37 unmodified lines
16531750 # CONFIG_RTC_DRV_PCF8563 is not set
16541751 # CONFIG_RTC_DRV_PCF8583 is not set
16551752 # CONFIG_RTC_DRV_M41T80 is not set
1753+# CONFIG_RTC_DRV_BQ32K is not set
16561754 CONFIG_RTC_DRV_TWL4030=y
16571755 # CONFIG_RTC_DRV_S35390A is not set
16581756 # CONFIG_RTC_DRV_FM3130 is not set
@@ -1683,7 +1781,9 @@ CONFIG_RTC_DRV_TWL4030=y · 24 unmodified lines
16831781 # CONFIG_RTC_DRV_M48T86 is not set
16841782 # CONFIG_RTC_DRV_M48T35 is not set
16851783 # CONFIG_RTC_DRV_M48T59 is not set
1784+# CONFIG_RTC_DRV_MSM6242 is not set
16861785 # CONFIG_RTC_DRV_BQ4802 is not set
1786+# CONFIG_RTC_DRV_RP5C01 is not set
16871787 # CONFIG_RTC_DRV_V3020 is not set
16881788
16891789 #
@@ -1951,6 +2051,7 @@ CONFIG_DEBUG_INFO=y · 261 unmodified lines
19512051 # CONFIG_LKDTM is not set
19522052 # CONFIG_FAULT_INJECTION is not set
19532053 # CONFIG_LATENCYTOP is not set
2054+# CONFIG_SYSCTL_SYSCALL_CHECK is not set
19542055 # CONFIG_PAGE_POISONING is not set
19552056 CONFIG_NOP_TRACER=y
19562057 CONFIG_HAVE_FUNCTION_TRACER=y
@@ -1983,7 +2084,9 @@ CONFIG_ARM_UNWIND=y · 26 unmodified lines
19832084 # CONFIG_DEBUG_ERRORS is not set
19842085 # CONFIG_DEBUG_STACK_USAGE is not set
19852086 CONFIG_DEBUG_LL=y
2087+# CONFIG_EARLY_PRINTK is not set
19862088 # CONFIG_DEBUG_ICEDCC is not set
2089+# CONFIG_OC_ETM is not set
19872090
19882091 #
19892092 # Security options
@@ -1993,9 +2096,12 @@ CONFIG_SECURITY=y · 3 unmodified lines
19932096 # CONFIG_SECURITYFS is not set
19942097 # CONFIG_SECURITY_NETWORK is not set
19952098 # CONFIG_SECURITY_PATH is not set
1996−# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1997−# CONFIG_SECURITY_ROOTPLUG is not set
19982099 # CONFIG_SECURITY_TOMOYO is not set
2100+# CONFIG_DEFAULT_SECURITY_SELINUX is not set
2101+# CONFIG_DEFAULT_SECURITY_SMACK is not set
2102+# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
2103+CONFIG_DEFAULT_SECURITY_DAC=y
2104+CONFIG_DEFAULT_SECURITY=""
19992105 CONFIG_CRYPTO=y
20002106
20012107 #
arch/arm/configs/omap3_evm_defconfig+4−2
@@ -187,6 +187,8 @@ CONFIG_ARCH_OMAP3=y · 186 unmodified lines
187187 #
188188 # OMAP Feature Selections
189189 #
190+CONFIG_OMAP_SMARTREFLEX=y
191+# CONFIG_OMAP_SMARTREFLEX_TESTING is not set
190192 # CONFIG_OMAP_DEBUG_POWERDOMAIN is not set
191193 # CONFIG_OMAP_DEBUG_CLOCKDOMAIN is not set
192194 CONFIG_OMAP_RESET_CLOCKS=y
@@ -333,7 +335,7 @@ CONFIG_BINFMT_MISC=y · 140 unmodified lines
333335 # Power management options
334336 #
335337 CONFIG_PM=y
336−# CONFIG_PM_DEBUG is not set
338+CONFIG_PM_DEBUG=y
337339 CONFIG_PM_SLEEP=y
338340 CONFIG_SUSPEND=y
339341 CONFIG_SUSPEND_FREEZER=y
@@ -1339,7 +1341,7 @@ CONFIG_ENABLE_MUST_CHECK=y · 999 unmodified lines
13391341 CONFIG_FRAME_WARN=1024
13401342 CONFIG_MAGIC_SYSRQ=y
13411343 # CONFIG_UNUSED_SYMBOLS is not set
1342−# CONFIG_DEBUG_FS is not set
1344+CONFIG_DEBUG_FS=y
13431345 # CONFIG_HEADERS_CHECK is not set
13441346 CONFIG_DEBUG_KERNEL=y
13451347 # CONFIG_DEBUG_SHIRQ is not set
arch/arm/configs/omap3_pandora_defconfig+513−165
@@ -1,15 +1,14 @@
11 #
22 # Automatically generated make config: don't edit
3−# Linux kernel version: 2.6.28-rc7
4−# Fri Dec 5 11:54:09 2008
3+# Linux kernel version: 2.6.33-rc6
4+# Sat Feb 6 20:25:41 2010
55 #
66 CONFIG_ARM=y
77 CONFIG_SYS_SUPPORTS_APM_EMULATION=y
88 CONFIG_GENERIC_GPIO=y
99 CONFIG_GENERIC_TIME=y
1010 CONFIG_GENERIC_CLOCKEVENTS=y
11−CONFIG_MMU=y
12−# CONFIG_NO_IOPORT is not set
11+CONFIG_HAVE_PROC_CPU=y
1312 CONFIG_GENERIC_HARDIRQS=y
1413 CONFIG_STACKTRACE_SUPPORT=y
1514 CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -18,13 +17,13 @@ CONFIG_TRACE_IRQFLAGS_SUPPORT=y · 2 unmodified lines
1817 CONFIG_HARDIRQS_SW_RESEND=y
1918 CONFIG_GENERIC_IRQ_PROBE=y
2019 CONFIG_RWSEM_GENERIC_SPINLOCK=y
21−# CONFIG_ARCH_HAS_ILOG2_U32 is not set
22−# CONFIG_ARCH_HAS_ILOG2_U64 is not set
20+CONFIG_ARCH_HAS_CPUFREQ=y
2321 CONFIG_GENERIC_HWEIGHT=y
2422 CONFIG_GENERIC_CALIBRATE_DELAY=y
2523 CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
2624 CONFIG_VECTORS_BASE=0xffff0000
2725 CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
26+CONFIG_CONSTRUCTORS=y
2827
2928 #
3029 # General setup
@@ -32,8 +31,15 @@ CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" · 1 unmodified line
3231 CONFIG_EXPERIMENTAL=y
3332 CONFIG_BROKEN_ON_SMP=y
3433 CONFIG_INIT_ENV_ARG_LIMIT=32
34+CONFIG_CROSS_COMPILE=""
3535 CONFIG_LOCALVERSION=""
3636 CONFIG_LOCALVERSION_AUTO=y
37+CONFIG_HAVE_KERNEL_GZIP=y
38+CONFIG_HAVE_KERNEL_LZO=y
39+CONFIG_KERNEL_GZIP=y
40+# CONFIG_KERNEL_BZIP2 is not set
41+# CONFIG_KERNEL_LZMA is not set
42+# CONFIG_KERNEL_LZO is not set
3743 CONFIG_SWAP=y
3844 CONFIG_SYSVIPC=y
3945 CONFIG_SYSVIPC_SYSCTL=y
@@ -42,24 +48,33 @@ CONFIG_BSD_PROCESS_ACCT=y · 2 unmodified lines
4248 # CONFIG_BSD_PROCESS_ACCT_V3 is not set
4349 # CONFIG_TASKSTATS is not set
4450 # CONFIG_AUDIT is not set
51+
52+#
53+# RCU Subsystem
54+#
55+CONFIG_TREE_RCU=y
56+# CONFIG_TREE_PREEMPT_RCU is not set
57+# CONFIG_TINY_RCU is not set
58+# CONFIG_RCU_TRACE is not set
59+CONFIG_RCU_FANOUT=32
60+# CONFIG_RCU_FANOUT_EXACT is not set
61+# CONFIG_TREE_RCU_TRACE is not set
4562 CONFIG_IKCONFIG=y
4663 CONFIG_IKCONFIG_PROC=y
4764 CONFIG_LOG_BUF_SHIFT=14
4865 # CONFIG_CGROUPS is not set
49−CONFIG_GROUP_SCHED=y
50−CONFIG_FAIR_GROUP_SCHED=y
51−# CONFIG_RT_GROUP_SCHED is not set
52−CONFIG_USER_SCHED=y
53−# CONFIG_CGROUP_SCHED is not set
54−# CONFIG_SYSFS_DEPRECATED=y is not set
55−# CONFIG_SYSFS_DEPRECATED_V2=y is not set
56−
66+# CONFIG_SYSFS_DEPRECATED_V2 is not set
5767 # CONFIG_RELAY is not set
5868 # CONFIG_NAMESPACES is not set
5969 CONFIG_BLK_DEV_INITRD=y
6070 CONFIG_INITRAMFS_SOURCE=""
71+CONFIG_RD_GZIP=y
72+# CONFIG_RD_BZIP2 is not set
73+# CONFIG_RD_LZMA is not set
74+# CONFIG_RD_LZO is not set
6175 CONFIG_CC_OPTIMIZE_FOR_SIZE=y
6276 CONFIG_SYSCTL=y
77+CONFIG_ANON_INODES=y
6378 CONFIG_EMBEDDED=y
6479 CONFIG_UID16=y
6580 # CONFIG_SYSCTL_SYSCALL is not set
@@ -70,31 +85,41 @@ CONFIG_HOTPLUG=y · 4 unmodified lines
7085 CONFIG_PRINTK=y
7186 CONFIG_BUG=y
7287 CONFIG_ELF_CORE=y
73−CONFIG_COMPAT_BRK=y
7488 CONFIG_BASE_FULL=y
7589 CONFIG_FUTEX=y
76−CONFIG_ANON_INODES=y
7790 CONFIG_EPOLL=y
7891 CONFIG_SIGNALFD=y
7992 CONFIG_TIMERFD=y
8093 CONFIG_EVENTFD=y
8194 CONFIG_SHMEM=y
8295 CONFIG_AIO=y
96+CONFIG_HAVE_PERF_EVENTS=y
97+CONFIG_PERF_USE_VMALLOC=y
98+
99+#
100+# Kernel Performance Events And Counters
101+#
102+# CONFIG_PERF_EVENTS is not set
103+# CONFIG_PERF_COUNTERS is not set
83104 CONFIG_VM_EVENT_COUNTERS=y
105+CONFIG_COMPAT_BRK=y
84106 CONFIG_SLAB=y
85107 # CONFIG_SLUB is not set
86108 # CONFIG_SLOB is not set
87109 # CONFIG_PROFILING is not set
88−# CONFIG_MARKERS is not set
89110 CONFIG_HAVE_OPROFILE=y
90111 # CONFIG_KPROBES is not set
91112 CONFIG_HAVE_KPROBES=y
92113 CONFIG_HAVE_KRETPROBES=y
93114 CONFIG_HAVE_CLK=y
115+
116+#
117+# GCOV-based kernel profiling
118+#
119+CONFIG_SLOW_WORK=y
94120 CONFIG_HAVE_GENERIC_DMA_COHERENT=y
95121 CONFIG_SLABINFO=y
96122 CONFIG_RT_MUTEXES=y
97−# CONFIG_TINY_SHMEM is not set
98123 CONFIG_BASE_SMALL=0
99124 CONFIG_MODULES=y
100125 # CONFIG_MODULE_FORCE_LOAD is not set
@@ -102,11 +127,8 @@ CONFIG_MODULE_UNLOAD=y · 1 unmodified line
102127 # CONFIG_MODULE_FORCE_UNLOAD is not set
103128 CONFIG_MODVERSIONS=y
104129 CONFIG_MODULE_SRCVERSION_ALL=y
105−CONFIG_KMOD=y
106130 CONFIG_BLOCK=y
107−# CONFIG_LBD is not set
108−# CONFIG_BLK_DEV_IO_TRACE is not set
109−# CONFIG_LSF is not set
131+CONFIG_LBDAF=y
110132 # CONFIG_BLK_DEV_BSG is not set
111133 # CONFIG_BLK_DEV_INTEGRITY is not set
112134
@@ -114,33 +136,62 @@ CONFIG_BLOCK=y · 1 unmodified line
114136 # IO Schedulers
115137 #
116138 CONFIG_IOSCHED_NOOP=y
117−CONFIG_IOSCHED_AS=y
118139 CONFIG_IOSCHED_DEADLINE=y
119140 CONFIG_IOSCHED_CFQ=y
120−CONFIG_DEFAULT_AS=y
121141 # CONFIG_DEFAULT_DEADLINE is not set
122−# CONFIG_DEFAULT_CFQ is not set
142+CONFIG_DEFAULT_CFQ=y
123143 # CONFIG_DEFAULT_NOOP is not set
124−CONFIG_DEFAULT_IOSCHED="anticipatory"
125−CONFIG_CLASSIC_RCU=y
144+CONFIG_DEFAULT_IOSCHED="cfq"
145+# CONFIG_INLINE_SPIN_TRYLOCK is not set
146+# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
147+# CONFIG_INLINE_SPIN_LOCK is not set
148+# CONFIG_INLINE_SPIN_LOCK_BH is not set
149+# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
150+# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
151+CONFIG_INLINE_SPIN_UNLOCK=y
152+# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
153+CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
154+# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
155+# CONFIG_INLINE_READ_TRYLOCK is not set
156+# CONFIG_INLINE_READ_LOCK is not set
157+# CONFIG_INLINE_READ_LOCK_BH is not set
158+# CONFIG_INLINE_READ_LOCK_IRQ is not set
159+# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
160+CONFIG_INLINE_READ_UNLOCK=y
161+# CONFIG_INLINE_READ_UNLOCK_BH is not set
162+CONFIG_INLINE_READ_UNLOCK_IRQ=y
163+# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
164+# CONFIG_INLINE_WRITE_TRYLOCK is not set
165+# CONFIG_INLINE_WRITE_LOCK is not set
166+# CONFIG_INLINE_WRITE_LOCK_BH is not set
167+# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
168+# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
169+CONFIG_INLINE_WRITE_UNLOCK=y
170+# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
171+CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
172+# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
173+# CONFIG_MUTEX_SPIN_ON_OWNER is not set
126174 # CONFIG_FREEZER is not set
127175
128176 #
129177 # System Type
130178 #
179+CONFIG_MMU=y
131180 # CONFIG_ARCH_AAEC2000 is not set
132181 # CONFIG_ARCH_INTEGRATOR is not set
133182 # CONFIG_ARCH_REALVIEW is not set
134183 # CONFIG_ARCH_VERSATILE is not set
135184 # CONFIG_ARCH_AT91 is not set
136−# CONFIG_ARCH_CLPS7500 is not set
137185 # CONFIG_ARCH_CLPS711X is not set
186+# CONFIG_ARCH_GEMINI is not set
138187 # CONFIG_ARCH_EBSA110 is not set
139188 # CONFIG_ARCH_EP93XX is not set
140189 # CONFIG_ARCH_FOOTBRIDGE is not set
190+# CONFIG_ARCH_MXC is not set
191+# CONFIG_ARCH_STMP3XXX is not set
141192 # CONFIG_ARCH_NETX is not set
142193 # CONFIG_ARCH_H720X is not set
143−# CONFIG_ARCH_IMX is not set
194+# CONFIG_ARCH_NOMADIK is not set
144195 # CONFIG_ARCH_IOP13XX is not set
145196 # CONFIG_ARCH_IOP32X is not set
146197 # CONFIG_ARCH_IOP33X is not set
@@ -148,49 +199,58 @@ CONFIG_CLASSIC_RCU=y · 1 unmodified line
148199 # CONFIG_ARCH_IXP2000 is not set
149200 # CONFIG_ARCH_IXP4XX is not set
150201 # CONFIG_ARCH_L7200 is not set
202+# CONFIG_ARCH_DOVE is not set
151203 # CONFIG_ARCH_KIRKWOOD is not set
152−# CONFIG_ARCH_KS8695 is not set
153−# CONFIG_ARCH_NS9XXX is not set
154204 # CONFIG_ARCH_LOKI is not set
155205 # CONFIG_ARCH_MV78XX0 is not set
156−# CONFIG_ARCH_MXC is not set
157206 # CONFIG_ARCH_ORION5X is not set
207+# CONFIG_ARCH_MMP is not set
208+# CONFIG_ARCH_KS8695 is not set
209+# CONFIG_ARCH_NS9XXX is not set
210+# CONFIG_ARCH_W90X900 is not set
211+# CONFIG_ARCH_NUC93X is not set
158212 # CONFIG_ARCH_PNX4008 is not set
159213 # CONFIG_ARCH_PXA is not set
214+# CONFIG_ARCH_MSM is not set
160215 # CONFIG_ARCH_RPC is not set
161216 # CONFIG_ARCH_SA1100 is not set
162217 # CONFIG_ARCH_S3C2410 is not set
218+# CONFIG_ARCH_S3C64XX is not set
219+# CONFIG_ARCH_S5P6440 is not set
220+# CONFIG_ARCH_S5PC1XX is not set
163221 # CONFIG_ARCH_SHARK is not set
164222 # CONFIG_ARCH_LH7A40X is not set
223+# CONFIG_ARCH_U300 is not set
165224 # CONFIG_ARCH_DAVINCI is not set
166225 CONFIG_ARCH_OMAP=y
167−# CONFIG_ARCH_MSM is not set
226+# CONFIG_ARCH_BCMRING is not set
227+# CONFIG_ARCH_U8500 is not set
168228
169229 #
170230 # TI OMAP Implementations
171231 #
172232 CONFIG_ARCH_OMAP_OTG=y
173233 # CONFIG_ARCH_OMAP1 is not set
234+CONFIG_ARCH_OMAP2PLUS=y
174235 # CONFIG_ARCH_OMAP2 is not set
175236 CONFIG_ARCH_OMAP3=y
237+# CONFIG_ARCH_OMAP4 is not set
176238
177239 #
178240 # OMAP Feature Selections
179241 #
180−# CONFIG_OMAP_DEBUG_POWERDOMAIN is not set
181−# CONFIG_OMAP_DEBUG_CLOCKDOMAIN is not set
182242 # CONFIG_OMAP_RESET_CLOCKS is not set
183243 # CONFIG_OMAP_MUX is not set
184244 CONFIG_OMAP_MCBSP=y
245+# CONFIG_OMAP_MBOX_FWK is not set
185246 # CONFIG_OMAP_MPU_TIMER is not set
186247 CONFIG_OMAP_32K_TIMER=y
187248 CONFIG_OMAP_32K_TIMER_HZ=128
188249 CONFIG_OMAP_DM_TIMER=y
189−# CONFIG_OMAP_LL_DEBUG_UART1 is not set
190−# CONFIG_OMAP_LL_DEBUG_UART2 is not set
191−CONFIG_OMAP_LL_DEBUG_UART3=y
192−CONFIG_ARCH_OMAP34XX=y
250+# CONFIG_OMAP_PM_NONE is not set
251+CONFIG_OMAP_PM_NOOP=y
193252 CONFIG_ARCH_OMAP3430=y
253+CONFIG_OMAP_PACKAGE_CBB=y
194254
195255 #
196256 # OMAP Board Type
@@ -198,15 +258,19 @@ CONFIG_ARCH_OMAP3430=y · 1 unmodified line
198258 # CONFIG_MACH_OMAP3_BEAGLE is not set
199259 # CONFIG_MACH_OMAP_LDP is not set
200260 # CONFIG_MACH_OVERO is not set
261+# CONFIG_MACH_OMAP3EVM is not set
262+# CONFIG_MACH_OMAP3517EVM is not set
201263 CONFIG_MACH_OMAP3_PANDORA=y
202−
203−#
204−# Boot options
205−#
206−
207−#
208−# Power management
209−#
264+# CONFIG_MACH_OMAP3_TOUCHBOOK is not set
265+# CONFIG_MACH_OMAP_3430SDP is not set
266+# CONFIG_MACH_NOKIA_RX51 is not set
267+# CONFIG_MACH_OMAP_ZOOM2 is not set
268+# CONFIG_MACH_OMAP_ZOOM3 is not set
269+# CONFIG_MACH_CM_T35 is not set
270+# CONFIG_MACH_IGEP0020 is not set
271+# CONFIG_MACH_OMAP_3630SDP is not set
272+# CONFIG_OMAP3_EMU is not set
273+# CONFIG_OMAP3_SDRC_AC_TIMING is not set
210274
211275 #
212276 # Processor Type
@@ -215,7 +279,7 @@ CONFIG_CPU_32v6K=y · 2 unmodified lines
215279 CONFIG_CPU_V7=y
216280 CONFIG_CPU_32v7=y
217281 CONFIG_CPU_ABRT_EV7=y
218−CONFIG_CPU_PABRT_IFAR=y
282+CONFIG_CPU_PABRT_V7=y
219283 CONFIG_CPU_CACHE_V7=y
220284 CONFIG_CPU_CACHE_VIPT=y
221285 CONFIG_CPU_COPY_V6=y
@@ -233,7 +297,12 @@ CONFIG_ARM_THUMBEE=y · 11 unmodified lines
233297 # CONFIG_CPU_DCACHE_DISABLE is not set
234298 # CONFIG_CPU_BPREDICT_DISABLE is not set
235299 CONFIG_HAS_TLS_REG=y
236−# CONFIG_OUTER_CACHE is not set
300+CONFIG_ARM_L1_CACHE_SHIFT=6
301+CONFIG_CPU_HAS_PMU=y
302+# CONFIG_ARM_ERRATA_430973 is not set
303+# CONFIG_ARM_ERRATA_458693 is not set
304+# CONFIG_ARM_ERRATA_460075 is not set
305+CONFIG_COMMON_CLKDEV=y
237306
238307 #
239308 # Bus support
@@ -253,13 +322,16 @@ CONFIG_VMSPLIT_3G=y · 13 unmodified lines
253322 # CONFIG_VMSPLIT_2G is not set
254323 # CONFIG_VMSPLIT_1G is not set
255324 CONFIG_PAGE_OFFSET=0xC0000000
325+# CONFIG_PREEMPT_NONE is not set
326+CONFIG_PREEMPT_VOLUNTARY=y
256327 # CONFIG_PREEMPT is not set
257328 CONFIG_HZ=128
329+# CONFIG_THUMB2_KERNEL is not set
258330 CONFIG_AEABI=y
259331 CONFIG_OABI_COMPAT=y
260−CONFIG_ARCH_FLATMEM_HAS_HOLES=y
261332 # CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
262333 # CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
334+# CONFIG_HIGHMEM is not set
263335 CONFIG_SELECT_MEMORY_MODEL=y
264336 CONFIG_FLATMEM_MANUAL=y
265337 # CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -268,13 +340,14 @@ CONFIG_FLATMEM=y · 2 unmodified lines
268340 CONFIG_FLAT_NODE_MEM_MAP=y
269341 CONFIG_PAGEFLAGS_EXTENDED=y
270342 CONFIG_SPLIT_PTLOCK_CPUS=4
271−# CONFIG_RESOURCES_64BIT is not set
272343 # CONFIG_PHYS_ADDR_T_64BIT is not set
273344 CONFIG_ZONE_DMA_FLAG=0
274345 CONFIG_VIRT_TO_BUS=y
275−CONFIG_UNEVICTABLE_LRU=y
346+# CONFIG_KSM is not set
347+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
276348 # CONFIG_LEDS is not set
277349 CONFIG_ALIGNMENT_TRAP=y
350+# CONFIG_UACCESS_WITH_MEMCPY is not set
278351
279352 #
280353 # Boot options
@@ -366,6 +439,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" · 85 unmodified lines
366439 # CONFIG_NETFILTER is not set
367440 # CONFIG_IP_DCCP is not set
368441 # CONFIG_IP_SCTP is not set
442+# CONFIG_RDS is not set
369443 # CONFIG_TIPC is not set
370444 # CONFIG_ATM is not set
371445 # CONFIG_BRIDGE is not set
@@ -379,7 +453,10 @@ CONFIG_DEFAULT_TCP_CONG="cubic" · 7 unmodified lines
379453 # CONFIG_LAPB is not set
380454 # CONFIG_ECONET is not set
381455 # CONFIG_WAN_ROUTER is not set
456+# CONFIG_PHONET is not set
457+# CONFIG_IEEE802154 is not set
382458 # CONFIG_NET_SCHED is not set
459+# CONFIG_DCB is not set
383460
384461 #
385462 # Network testing
@@ -390,8 +467,14 @@ CONFIG_DEFAULT_TCP_CONG="cubic" · 4 unmodified lines
390467 # CONFIG_IRDA is not set
391468 # CONFIG_BT is not set
392469 # CONFIG_AF_RXRPC is not set
393−# CONFIG_PHONET is not set
394−# CONFIG_WIRELESS is not set
470+CONFIG_WIRELESS=y
471+# CONFIG_CFG80211 is not set
472+# CONFIG_LIB80211 is not set
473+
474+#
475+# CFG80211 needs to be enabled for MAC80211
476+#
477+# CONFIG_WIMAX is not set
395478 # CONFIG_RFKILL is not set
396479 # CONFIG_NET_9P is not set
397480
@@ -403,6 +486,8 @@ CONFIG_DEFAULT_TCP_CONG="cubic" · 5 unmodified lines
403486 # Generic Driver Options
404487 #
405488 CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
489+CONFIG_DEVTMPFS=y
490+CONFIG_DEVTMPFS_MOUNT=y
406491 CONFIG_STANDALONE=y
407492 CONFIG_PREVENT_FIRMWARE_BUILD=y
408493 # CONFIG_FW_LOADER is not set
@@ -412,6 +497,7 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y · 3 unmodified lines
412497 # CONFIG_CONNECTOR is not set
413498 CONFIG_MTD=y
414499 # CONFIG_MTD_DEBUG is not set
500+# CONFIG_MTD_TESTS is not set
415501 # CONFIG_MTD_CONCAT is not set
416502 CONFIG_MTD_PARTITIONS=y
417503 # CONFIG_MTD_REDBOOT_PARTS is not set
@@ -462,6 +548,7 @@ CONFIG_MTD_CFI_I2=y · 44 unmodified lines
462548 #
463549 # CONFIG_MTD_DATAFLASH is not set
464550 # CONFIG_MTD_M25P80 is not set
551+# CONFIG_MTD_SST25L is not set
465552 # CONFIG_MTD_SLRAM is not set
466553 # CONFIG_MTD_PHRAM is not set
467554 # CONFIG_MTD_MTDRAM is not set
@@ -478,6 +565,9 @@ CONFIG_MTD_NAND=y · 10 unmodified lines
478565 # CONFIG_MTD_NAND_ECC_SMC is not set
479566 # CONFIG_MTD_NAND_MUSEUM_IDS is not set
480567 # CONFIG_MTD_NAND_GPIO is not set
568+CONFIG_MTD_NAND_OMAP2=y
569+CONFIG_MTD_NAND_OMAP_PREFETCH=y
570+# CONFIG_MTD_NAND_OMAP_PREFETCH_DMA is not set
481571 CONFIG_MTD_NAND_IDS=y
482572 # CONFIG_MTD_NAND_DISKONCHIP is not set
483573 # CONFIG_MTD_NAND_NANDSIM is not set
@@ -485,6 +575,11 @@ CONFIG_MTD_NAND_IDS=y · 1 unmodified line
485575 # CONFIG_MTD_ALAUDA is not set
486576 # CONFIG_MTD_ONENAND is not set
487577
578+#
579+# LPDDR flash memory drivers
580+#
581+# CONFIG_MTD_LPDDR is not set
582+
488583 #
489584 # UBI - Unsorted block images
490585 #
@@ -494,6 +589,10 @@ CONFIG_BLK_DEV=y · 3 unmodified lines
494589 # CONFIG_BLK_DEV_COW_COMMON is not set
495590 CONFIG_BLK_DEV_LOOP=y
496591 # CONFIG_BLK_DEV_CRYPTOLOOP is not set
592+
593+#
594+# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
595+#
497596 # CONFIG_BLK_DEV_NBD is not set
498597 # CONFIG_BLK_DEV_UB is not set
499598 CONFIG_BLK_DEV_RAM=y
@@ -502,7 +601,25 @@ CONFIG_BLK_DEV_RAM_SIZE=16384 · 2 unmodified lines
502601 # CONFIG_BLK_DEV_XIP is not set
503602 # CONFIG_CDROM_PKTCDVD is not set
504603 # CONFIG_ATA_OVER_ETH is not set
505−# CONFIG_MISC_DEVICES is not set
604+# CONFIG_MG_DISK is not set
605+CONFIG_MISC_DEVICES=y
606+# CONFIG_AD525X_DPOT is not set
607+# CONFIG_ICS932S401 is not set
608+# CONFIG_ENCLOSURE_SERVICES is not set
609+# CONFIG_ISL29003 is not set
610+# CONFIG_DS1682 is not set
611+# CONFIG_TI_DAC7512 is not set
612+# CONFIG_C2PORT is not set
613+
614+#
615+# EEPROM support
616+#
617+# CONFIG_EEPROM_AT24 is not set
618+# CONFIG_EEPROM_AT25 is not set
619+# CONFIG_EEPROM_LEGACY is not set
620+# CONFIG_EEPROM_MAX6875 is not set
621+# CONFIG_EEPROM_93CX6 is not set
622+# CONFIG_IWMC3200TOP is not set
506623 CONFIG_HAVE_IDE=y
507624 # CONFIG_IDE is not set
508625
@@ -525,10 +642,6 @@ CONFIG_BLK_DEV_SD=y · 16 unmodified lines
525642 # CONFIG_BLK_DEV_SR is not set
526643 # CONFIG_CHR_DEV_SG is not set
527644 # CONFIG_CHR_DEV_SCH is not set
528−
529−#
530−# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
531−#
532645 # CONFIG_SCSI_MULTI_LUN is not set
533646 # CONFIG_SCSI_CONSTANTS is not set
534647 # CONFIG_SCSI_LOGGING is not set
@@ -545,8 +658,11 @@ CONFIG_SCSI_WAIT_SCAN=m · 10 unmodified lines
545658 # CONFIG_SCSI_SRP_ATTRS is not set
546659 CONFIG_SCSI_LOWLEVEL=y
547660 # CONFIG_ISCSI_TCP is not set
661+# CONFIG_LIBFC is not set
662+# CONFIG_LIBFCOE is not set
548663 # CONFIG_SCSI_DEBUG is not set
549664 # CONFIG_SCSI_DH is not set
665+# CONFIG_SCSI_OSD_INITIATOR is not set
550666 # CONFIG_ATA is not set
551667 # CONFIG_MD is not set
552668 CONFIG_NETDEVICES=y
@@ -559,13 +675,13 @@ CONFIG_NETDEVICES=y · 6 unmodified lines
559675 # CONFIG_NET_ETHERNET is not set
560676 # CONFIG_NETDEV_1000 is not set
561677 # CONFIG_NETDEV_10000 is not set
678+CONFIG_WLAN=y
679+# CONFIG_USB_ZD1201 is not set
680+# CONFIG_HOSTAP is not set
562681
563682 #
564−# Wireless LAN
683+# Enable WiMAX (Networking options) to see the WiMAX drivers
565684 #
566−# CONFIG_WLAN_PRE80211 is not set
567−# CONFIG_WLAN_80211 is not set
568−# CONFIG_IWLWIFI_LEDS is not set
569685
570686 #
571687 # USB Network Adapters
@@ -582,6 +698,7 @@ CONFIG_NETDEVICES=y · 10 unmodified lines
582698 # CONFIG_NETPOLL is not set
583699 # CONFIG_NET_POLL_CONTROLLER is not set
584700 # CONFIG_ISDN is not set
701+# CONFIG_PHONE is not set
585702
586703 #
587704 # Input device support
@@ -589,6 +706,7 @@ CONFIG_NETDEVICES=y · 1 unmodified line
589706 CONFIG_INPUT=y
590707 # CONFIG_INPUT_FF_MEMLESS is not set
591708 # CONFIG_INPUT_POLLDEV is not set
709+# CONFIG_INPUT_SPARSEKMAP is not set
592710
593711 #
594712 # Userland interfaces
@@ -605,13 +723,20 @@ CONFIG_INPUT_EVDEV=y · 10 unmodified lines
605723 # Input Device Drivers
606724 #
607725 CONFIG_INPUT_KEYBOARD=y
726+# CONFIG_KEYBOARD_ADP5588 is not set
608727 # CONFIG_KEYBOARD_ATKBD is not set
609−# CONFIG_KEYBOARD_SUNKBD is not set
728+# CONFIG_QT2160 is not set
610729 # CONFIG_KEYBOARD_LKKBD is not set
611−# CONFIG_KEYBOARD_XTKBD is not set
730+CONFIG_KEYBOARD_GPIO=y
731+# CONFIG_KEYBOARD_MATRIX is not set
732+# CONFIG_KEYBOARD_LM8323 is not set
733+# CONFIG_KEYBOARD_MAX7359 is not set
612734 # CONFIG_KEYBOARD_NEWTON is not set
735+# CONFIG_KEYBOARD_OPENCORES is not set
613736 # CONFIG_KEYBOARD_STOWAWAY is not set
614−CONFIG_KEYBOARD_GPIO=y
737+# CONFIG_KEYBOARD_SUNKBD is not set
738+CONFIG_KEYBOARD_TWL4030=y
739+# CONFIG_KEYBOARD_XTKBD is not set
615740 CONFIG_INPUT_MOUSE=y
616741 # CONFIG_MOUSE_PS2 is not set
617742 # CONFIG_MOUSE_SERIAL is not set
@@ -619,13 +744,22 @@ CONFIG_INPUT_MOUSE=y · 1 unmodified line
619744 # CONFIG_MOUSE_BCM5974 is not set
620745 # CONFIG_MOUSE_VSXXXAA is not set
621746 # CONFIG_MOUSE_GPIO is not set
747+# CONFIG_MOUSE_SYNAPTICS_I2C is not set
622748 # CONFIG_INPUT_JOYSTICK is not set
623749 # CONFIG_INPUT_TABLET is not set
624750 CONFIG_INPUT_TOUCHSCREEN=y
625751 CONFIG_TOUCHSCREEN_ADS7846=y
752+# CONFIG_TOUCHSCREEN_AD7877 is not set
753+# CONFIG_TOUCHSCREEN_AD7879_I2C is not set
754+# CONFIG_TOUCHSCREEN_AD7879_SPI is not set
755+# CONFIG_TOUCHSCREEN_AD7879 is not set
756+# CONFIG_TOUCHSCREEN_DYNAPRO is not set
757+# CONFIG_TOUCHSCREEN_EETI is not set
626758 # CONFIG_TOUCHSCREEN_FUJITSU is not set
627759 # CONFIG_TOUCHSCREEN_GUNZE is not set
628760 # CONFIG_TOUCHSCREEN_ELO is not set
761+# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
762+# CONFIG_TOUCHSCREEN_MCS5000 is not set
629763 # CONFIG_TOUCHSCREEN_MTOUCH is not set
630764 # CONFIG_TOUCHSCREEN_INEXIO is not set
631765 # CONFIG_TOUCHSCREEN_MK712 is not set
@@ -634,8 +768,18 @@ CONFIG_TOUCHSCREEN_ADS7846=y · 2 unmodified lines
634768 # CONFIG_TOUCHSCREEN_TOUCHWIN is not set
635769 # CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
636770 # CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
771+# CONFIG_TOUCHSCREEN_TSC2007 is not set
772+# CONFIG_TOUCHSCREEN_W90X900 is not set
637773 CONFIG_INPUT_MISC=y
774+# CONFIG_INPUT_ATI_REMOTE is not set
775+# CONFIG_INPUT_ATI_REMOTE2 is not set
776+# CONFIG_INPUT_KEYSPAN_REMOTE is not set
777+# CONFIG_INPUT_POWERMATE is not set
778+# CONFIG_INPUT_YEALINK is not set
779+# CONFIG_INPUT_CM109 is not set
638780 CONFIG_INPUT_TWL4030_PWRBUTTON=y
781+# CONFIG_INPUT_UINPUT is not set
782+# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set
639783
640784 #
641785 # Hardware I/O ports
@@ -670,18 +814,21 @@ CONFIG_SERIAL_8250_RSA=y · 28 unmodified lines
670814 #
671815 # Non-8250 serial port support
672816 #
817+# CONFIG_SERIAL_MAX3100 is not set
673818 CONFIG_SERIAL_CORE=y
674819 CONFIG_SERIAL_CORE_CONSOLE=y
675820 CONFIG_UNIX98_PTYS=y
821+# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
676822 # CONFIG_LEGACY_PTYS is not set
677823 # CONFIG_IPMI_HANDLER is not set
678824 CONFIG_HW_RANDOM=y
679−# CONFIG_NVRAM is not set
825+# CONFIG_HW_RANDOM_TIMERIOMEM is not set
680826 # CONFIG_R3964 is not set
681827 # CONFIG_RAW_DRIVER is not set
682828 # CONFIG_TCG_TPM is not set
683829 CONFIG_I2C=y
684830 CONFIG_I2C_BOARDINFO=y
831+CONFIG_I2C_COMPAT=y
685832 CONFIG_I2C_CHARDEV=y
686833 CONFIG_I2C_HELPER_AUTO=y
687834
@@ -692,10 +839,12 @@ CONFIG_I2C_HELPER_AUTO=y · 4 unmodified lines
692839 #
693840 # I2C system bus drivers (mostly embedded / system-on-chip)
694841 #
842+# CONFIG_I2C_DESIGNWARE is not set
695843 # CONFIG_I2C_GPIO is not set
696844 # CONFIG_I2C_OCORES is not set
697845 CONFIG_I2C_OMAP=y
698846 # CONFIG_I2C_SIMTEC is not set
847+# CONFIG_I2C_XILINX is not set
699848
700849 #
701850 # External I2C/SMBus adapter drivers
@@ -709,21 +858,6 @@ CONFIG_I2C_OMAP=y · 7 unmodified lines
709858 #
710859 # CONFIG_I2C_PCA_PLATFORM is not set
711860 # CONFIG_I2C_STUB is not set
712−
713−#
714−# Miscellaneous I2C Chip support
715−#
716−# CONFIG_DS1682 is not set
717−# CONFIG_EEPROM_AT24 is not set
718−# CONFIG_EEPROM_LEGACY is not set
719−# CONFIG_SENSORS_PCF8574 is not set
720−# CONFIG_PCF8575 is not set
721−# CONFIG_SENSORS_PCA9539 is not set
722−# CONFIG_SENSORS_PCF8591 is not set
723−# CONFIG_ISP1301_OMAP is not set
724−# CONFIG_TPS65010 is not set
725−# CONFIG_SENSORS_MAX6875 is not set
726−# CONFIG_SENSORS_TSL2550 is not set
727861 # CONFIG_I2C_DEBUG_CORE is not set
728862 # CONFIG_I2C_DEBUG_ALGO is not set
729863 # CONFIG_I2C_DEBUG_BUS is not set
@@ -736,14 +870,21 @@ CONFIG_SPI_MASTER=y · 6 unmodified lines
736870 # SPI Master Controller Drivers
737871 #
738872 # CONFIG_SPI_BITBANG is not set
873+# CONFIG_SPI_GPIO is not set
739874 CONFIG_SPI_OMAP24XX=y
875+# CONFIG_SPI_XILINX is not set
876+# CONFIG_SPI_DESIGNWARE is not set
740877
741878 #
742879 # SPI Protocol Masters
743880 #
744−# CONFIG_EEPROM_AT25 is not set
745881 # CONFIG_SPI_SPIDEV is not set
746882 # CONFIG_SPI_TLE62X0 is not set
883+
884+#
885+# PPS support
886+#
887+# CONFIG_PPS is not set
747888 CONFIG_ARCH_REQUIRE_GPIOLIB=y
748889 CONFIG_GPIOLIB=y
749890 # CONFIG_DEBUG_GPIO is not set
@@ -760,6 +901,7 @@ CONFIG_GPIOLIB=y · 10 unmodified lines
760901 # CONFIG_GPIO_PCA953X is not set
761902 # CONFIG_GPIO_PCF857X is not set
762903 CONFIG_GPIO_TWL4030=y
904+# CONFIG_GPIO_ADP5588 is not set
763905
764906 #
765907 # PCI GPIO expanders:
@@ -770,11 +912,16 @@ CONFIG_GPIO_TWL4030=y · 4 unmodified lines
770912 #
771913 # CONFIG_GPIO_MAX7301 is not set
772914 # CONFIG_GPIO_MCP23S08 is not set
915+# CONFIG_GPIO_MC33880 is not set
916+
917+#
918+# AC97 GPIO expanders:
919+#
773920 # CONFIG_W1 is not set
774921 # CONFIG_POWER_SUPPLY is not set
775922 # CONFIG_HWMON is not set
923+# CONFIG_ALS is not set
776924 # CONFIG_THERMAL is not set
777−# CONFIG_THERMAL_HWMON is not set
778925 # CONFIG_WATCHDOG is not set
779926 CONFIG_SSB_POSSIBLE=y
780927
@@ -786,44 +933,111 @@ CONFIG_SSB_POSSIBLE=y · 5 unmodified lines
786933 #
787934 # Multifunction device drivers
788935 #
789−# CONFIG_MFD_CORE is not set
936+CONFIG_MFD_CORE=y
937+# CONFIG_MFD_88PM860X is not set
790938 # CONFIG_MFD_SM501 is not set
791939 # CONFIG_MFD_ASIC3 is not set
792940 # CONFIG_HTC_EGPIO is not set
793941 # CONFIG_HTC_PASIC3 is not set
942+# CONFIG_HTC_I2CPLD is not set
943+# CONFIG_TPS65010 is not set
794944 CONFIG_TWL4030_CORE=y
945+CONFIG_TWL4030_POWER=y
946+CONFIG_TWL4030_CODEC=y
795947 # CONFIG_MFD_TMIO is not set
796948 # CONFIG_MFD_T7L66XB is not set
797949 # CONFIG_MFD_TC6387XB is not set
798950 # CONFIG_MFD_TC6393XB is not set
799951 # CONFIG_PMIC_DA903X is not set
952+# CONFIG_PMIC_ADP5520 is not set
953+# CONFIG_MFD_MAX8925 is not set
800954 # CONFIG_MFD_WM8400 is not set
955+# CONFIG_MFD_WM831X is not set
801956 # CONFIG_MFD_WM8350_I2C is not set
802−
803−#
804−# Multimedia devices
805−#
806−
807−#
808−# Multimedia core support
809−#
810−# CONFIG_VIDEO_DEV is not set
811−# CONFIG_DVB_CORE is not set
812−# CONFIG_VIDEO_MEDIA is not set
813−
814−#
815−# Multimedia drivers
816−#
817−CONFIG_DAB=y
818−# CONFIG_USB_DABUSB is not set
957+# CONFIG_MFD_WM8994 is not set
958+# CONFIG_MFD_PCF50633 is not set
959+# CONFIG_MFD_MC13783 is not set
960+# CONFIG_AB3100_CORE is not set
961+# CONFIG_EZX_PCAP is not set
962+# CONFIG_AB4500_CORE is not set
963+CONFIG_REGULATOR=y
964+CONFIG_REGULATOR_DEBUG=y
965+# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
966+# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
967+# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
968+# CONFIG_REGULATOR_BQ24022 is not set
969+# CONFIG_REGULATOR_MAX1586 is not set
970+# CONFIG_REGULATOR_MAX8649 is not set
971+# CONFIG_REGULATOR_MAX8660 is not set
972+CONFIG_REGULATOR_TWL4030=y
973+# CONFIG_REGULATOR_LP3971 is not set
974+# CONFIG_REGULATOR_TPS65023 is not set
975+# CONFIG_REGULATOR_TPS6507X is not set
976+# CONFIG_MEDIA_SUPPORT is not set
819977
820978 #
821979 # Graphics support
822980 #
823981 # CONFIG_VGASTATE is not set
824−# CONFIG_VIDEO_OUTPUT_CONTROL is not set
825−# CONFIG_FB is not set
826−# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
982+CONFIG_VIDEO_OUTPUT_CONTROL=y
983+CONFIG_FB=y
984+# CONFIG_FIRMWARE_EDID is not set
985+# CONFIG_FB_DDC is not set
986+# CONFIG_FB_BOOT_VESA_SUPPORT is not set
987+CONFIG_FB_CFB_FILLRECT=y
988+CONFIG_FB_CFB_COPYAREA=y
989+CONFIG_FB_CFB_IMAGEBLIT=y
990+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
991+# CONFIG_FB_SYS_FILLRECT is not set
992+# CONFIG_FB_SYS_COPYAREA is not set
993+# CONFIG_FB_SYS_IMAGEBLIT is not set
994+# CONFIG_FB_FOREIGN_ENDIAN is not set
995+# CONFIG_FB_SYS_FOPS is not set
996+# CONFIG_FB_SVGALIB is not set
997+# CONFIG_FB_MACMODES is not set
998+# CONFIG_FB_BACKLIGHT is not set
999+# CONFIG_FB_MODE_HELPERS is not set
1000+# CONFIG_FB_TILEBLITTING is not set
1001+
1002+#
1003+# Frame buffer hardware drivers
1004+#
1005+# CONFIG_FB_S1D13XXX is not set
1006+# CONFIG_FB_TMIO is not set
1007+# CONFIG_FB_VIRTUAL is not set
1008+# CONFIG_FB_METRONOME is not set
1009+# CONFIG_FB_MB862XX is not set
1010+# CONFIG_FB_BROADSHEET is not set
1011+# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set
1012+CONFIG_OMAP2_VRAM=y
1013+CONFIG_OMAP2_VRFB=y
1014+CONFIG_OMAP2_DSS=y
1015+CONFIG_OMAP2_VRAM_SIZE=0
1016+CONFIG_OMAP2_DSS_DEBUG_SUPPORT=y
1017+# CONFIG_OMAP2_DSS_COLLECT_IRQ_STATS is not set
1018+# CONFIG_OMAP2_DSS_RFBI is not set
1019+CONFIG_OMAP2_DSS_VENC=y
1020+# CONFIG_OMAP2_DSS_SDI is not set
1021+# CONFIG_OMAP2_DSS_DSI is not set
1022+# CONFIG_OMAP2_DSS_FAKE_VSYNC is not set
1023+CONFIG_OMAP2_DSS_MIN_FCK_PER_PCK=0
1024+CONFIG_FB_OMAP2=y
1025+CONFIG_FB_OMAP2_DEBUG_SUPPORT=y
1026+# CONFIG_FB_OMAP2_FORCE_AUTO_UPDATE is not set
1027+CONFIG_FB_OMAP2_NUM_FBS=3
1028+
1029+#
1030+# OMAP2/3 Display Device Drivers
1031+#
1032+# CONFIG_PANEL_GENERIC is not set
1033+# CONFIG_PANEL_SHARP_LS037V7DW01 is not set
1034+# CONFIG_PANEL_SHARP_LQ043T1DG01 is not set
1035+# CONFIG_PANEL_TOPPOLY_TDO35S is not set
1036+CONFIG_PANEL_TPO_TD043MTEA1=y
1037+CONFIG_BACKLIGHT_LCD_SUPPORT=y
1038+# CONFIG_LCD_CLASS_DEVICE is not set
1039+CONFIG_BACKLIGHT_CLASS_DEVICE=y
1040+CONFIG_BACKLIGHT_GENERIC=y
8271041
8281042 #
8291043 # Display device support
@@ -835,6 +1049,16 @@ CONFIG_DAB=y · 5 unmodified lines
8351049 #
8361050 # CONFIG_VGA_CONSOLE is not set
8371051 CONFIG_DUMMY_CONSOLE=y
1052+CONFIG_FRAMEBUFFER_CONSOLE=y
1053+# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
1054+# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
1055+# CONFIG_FONTS is not set
1056+CONFIG_FONT_8x8=y
1057+CONFIG_FONT_8x16=y
1058+CONFIG_LOGO=y
1059+CONFIG_LOGO_LINUX_MONO=y
1060+CONFIG_LOGO_LINUX_VGA16=y
1061+CONFIG_LOGO_LINUX_CLUT224=y
8381062 CONFIG_SOUND=y
8391063 CONFIG_SOUND_OSS_CORE=y
8401064 CONFIG_SOUND_OSS_CORE_PRECLAIM=y
@@ -842,25 +1066,43 @@ CONFIG_SND=y · 1 unmodified line
8421066 CONFIG_SND_TIMER=y
8431067 CONFIG_SND_PCM=y
8441068 CONFIG_SND_JACK=y
1069+# CONFIG_SND_SEQUENCER is not set
8451070 CONFIG_SND_OSSEMUL=y
8461071 CONFIG_SND_MIXER_OSS=y
8471072 CONFIG_SND_PCM_OSS=y
8481073 CONFIG_SND_PCM_OSS_PLUGINS=y
1074+# CONFIG_SND_HRTIMER is not set
1075+# CONFIG_SND_DYNAMIC_MINORS is not set
8491076 CONFIG_SND_SUPPORT_OLD_API=y
8501077 CONFIG_SND_VERBOSE_PROCFS=y
8511078 CONFIG_SND_VERBOSE_PRINTK=y
1079+# CONFIG_SND_DEBUG is not set
1080+# CONFIG_SND_RAWMIDI_SEQ is not set
1081+# CONFIG_SND_OPL3_LIB_SEQ is not set
1082+# CONFIG_SND_OPL4_LIB_SEQ is not set
1083+# CONFIG_SND_SBAWE_SEQ is not set
1084+# CONFIG_SND_EMU10K1_SEQ is not set
8521085 CONFIG_SND_DRIVERS=y
1086+# CONFIG_SND_DUMMY is not set
1087+# CONFIG_SND_MTPAV is not set
1088+# CONFIG_SND_SERIAL_U16550 is not set
1089+# CONFIG_SND_MPU401 is not set
1090+CONFIG_SND_ARM=y
1091+CONFIG_SND_SPI=y
8531092 CONFIG_SND_USB=y
1093+# CONFIG_SND_USB_AUDIO is not set
1094+# CONFIG_SND_USB_UA101 is not set
1095+# CONFIG_SND_USB_CAIAQ is not set
8541096 CONFIG_SND_SOC=y
8551097 CONFIG_SND_OMAP_SOC=y
8561098 CONFIG_SND_OMAP_SOC_MCBSP=y
8571099 CONFIG_SND_OMAP_SOC_OMAP3_PANDORA=y
8581100 CONFIG_SND_SOC_I2C_AND_SPI=y
1101+# CONFIG_SND_SOC_ALL_CODECS is not set
8591102 CONFIG_SND_SOC_TWL4030=y
860−
1103+# CONFIG_SOUND_PRIME is not set
8611104 CONFIG_HID_SUPPORT=y
8621105 CONFIG_HID=y
863−# CONFIG_HID_DEBUG is not set
8641106 # CONFIG_HIDRAW is not set
8651107
8661108 #
@@ -873,31 +1115,40 @@ CONFIG_USB_HID=y · 6 unmodified lines
8731115 #
8741116 # Special HID drivers
8751117 #
876−# CONFIG_HID_COMPAT is not set
1118+# CONFIG_HID_3M_PCT is not set
8771119 # CONFIG_HID_A4TECH is not set
8781120 # CONFIG_HID_APPLE is not set
8791121 # CONFIG_HID_BELKIN is not set
880−# CONFIG_HID_BRIGHT is not set
8811122 # CONFIG_HID_CHERRY is not set
8821123 # CONFIG_HID_CHICONY is not set
8831124 # CONFIG_HID_CYPRESS is not set
884−# CONFIG_HID_DELL is not set
1125+# CONFIG_HID_DRAGONRISE is not set
8851126 # CONFIG_HID_EZKEY is not set
1127+# CONFIG_HID_KYE is not set
8861128 # CONFIG_HID_GYRATION is not set
1129+# CONFIG_HID_TWINHAN is not set
1130+# CONFIG_HID_KENSINGTON is not set
8871131 # CONFIG_HID_LOGITECH is not set
8881132 # CONFIG_HID_MICROSOFT is not set
8891133 # CONFIG_HID_MONTEREY is not set
1134+# CONFIG_HID_NTRIG is not set
1135+# CONFIG_HID_ORTEK is not set
8901136 # CONFIG_HID_PANTHERLORD is not set
8911137 # CONFIG_HID_PETALYNX is not set
1138+# CONFIG_HID_QUANTA is not set
8921139 # CONFIG_HID_SAMSUNG is not set
8931140 # CONFIG_HID_SONY is not set
1141+# CONFIG_HID_STANTUM is not set
8941142 # CONFIG_HID_SUNPLUS is not set
895−# CONFIG_THRUSTMASTER_FF is not set
896−# CONFIG_ZEROPLUS_FF is not set
1143+# CONFIG_HID_GREENASIA is not set
1144+# CONFIG_HID_SMARTJOYPLUS is not set
1145+# CONFIG_HID_TOPSEED is not set
1146+# CONFIG_HID_THRUSTMASTER is not set
1147+# CONFIG_HID_ZEROPLUS is not set
8971148 CONFIG_USB_SUPPORT=y
8981149 CONFIG_USB_ARCH_HAS_HCD=y
8991150 CONFIG_USB_ARCH_HAS_OHCI=y
900−# CONFIG_USB_ARCH_HAS_EHCI is not set
1151+CONFIG_USB_ARCH_HAS_EHCI=y
9011152 CONFIG_USB=y
9021153 # CONFIG_USB_DEBUG is not set
9031154 # CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
@@ -911,7 +1162,7 @@ CONFIG_USB_DEVICE_CLASS=y · 7 unmodified lines
9111162 # CONFIG_USB_OTG is not set
9121163 # CONFIG_USB_OTG_WHITELIST is not set
9131164 # CONFIG_USB_OTG_BLACKLIST_HUB is not set
914−CONFIG_USB_MON=y
1165+# CONFIG_USB_MON is not set
9151166 # CONFIG_USB_WUSB is not set
9161167 # CONFIG_USB_WUSB_CBAF is not set
9171168
@@ -919,7 +1170,13 @@ CONFIG_USB_MON=y · 1 unmodified line
9191170 # USB Host Controller Drivers
9201171 #
9211172 # CONFIG_USB_C67X00_HCD is not set
1173+CONFIG_USB_EHCI_HCD=y
1174+# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
1175+# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1176+# CONFIG_USB_OXU210HP_HCD is not set
9221177 # CONFIG_USB_ISP116X_HCD is not set
1178+# CONFIG_USB_ISP1760_HCD is not set
1179+# CONFIG_USB_ISP1362_HCD is not set
9231180 # CONFIG_USB_OHCI_HCD is not set
9241181 # CONFIG_USB_SL811_HCD is not set
9251182 # CONFIG_USB_R8A66597_HCD is not set
@@ -930,11 +1187,10 @@ CONFIG_USB_MUSB_SOC=y · 4 unmodified lines
9301187 #
9311188 # OMAP 343x high speed USB support
9321189 #
933−CONFIG_USB_MUSB_HOST=y
934−# CONFIG_USB_MUSB_PERIPHERAL is not set
1190+# CONFIG_USB_MUSB_HOST is not set
1191+CONFIG_USB_MUSB_PERIPHERAL=y
9351192 # CONFIG_USB_MUSB_OTG is not set
936−# CONFIG_USB_GADGET_MUSB_HDRC is not set
937−CONFIG_USB_MUSB_HDRC_HCD=y
1193+CONFIG_USB_GADGET_MUSB_HDRC=y
9381194 # CONFIG_MUSB_PIO_ONLY is not set
9391195 CONFIG_USB_INVENTRA_DMA=y
9401196 # CONFIG_USB_TI_CPPI_DMA is not set
@@ -949,11 +1205,11 @@ CONFIG_USB_INVENTRA_DMA=y · 8 unmodified lines
9491205 # CONFIG_USB_TMC is not set
9501206
9511207 #
952−# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1208+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
9531209 #
9541210
9551211 #
956−# see USB_STORAGE Help for more information
1212+# also be needed; see USB_STORAGE Help for more info
9571213 #
9581214 # CONFIG_USB_STORAGE is not set
9591215 # CONFIG_USB_LIBUSUAL is not set
@@ -979,14 +1235,13 @@ CONFIG_USB_INVENTRA_DMA=y · 19 unmodified lines
9791235 # CONFIG_USB_RIO500 is not set
9801236 # CONFIG_USB_LEGOTOWER is not set
9811237 # CONFIG_USB_LCD is not set
982−# CONFIG_USB_BERRY_CHARGE is not set
9831238 # CONFIG_USB_LED is not set
9841239 # CONFIG_USB_CYPRESS_CY7C63 is not set
9851240 # CONFIG_USB_CYTHERM is not set
986−# CONFIG_USB_PHIDGET is not set
9871241 # CONFIG_USB_IDMOUSE is not set
9881242 # CONFIG_USB_FTDI_ELAN is not set
9891243 # CONFIG_USB_APPLEDISPLAY is not set
1244+# CONFIG_USB_SISUSBVGA is not set
9901245 # CONFIG_USB_LD is not set
9911246 # CONFIG_USB_TRANCEVIBRATOR is not set
9921247 # CONFIG_USB_IOWARRIOR is not set
@@ -1002,27 +1257,46 @@ CONFIG_USB_GADGET_SELECTED=y · 9 unmodified lines
10021257 # CONFIG_USB_GADGET_ATMEL_USBA is not set
10031258 # CONFIG_USB_GADGET_FSL_USB2 is not set
10041259 # CONFIG_USB_GADGET_LH7A40X is not set
1005−CONFIG_USB_GADGET_OMAP=y
1006−CONFIG_USB_OMAP=y
1260+# CONFIG_USB_GADGET_OMAP is not set
10071261 # CONFIG_USB_GADGET_PXA25X is not set
1262+# CONFIG_USB_GADGET_R8A66597 is not set
10081263 # CONFIG_USB_GADGET_PXA27X is not set
1264+# CONFIG_USB_GADGET_S3C_HSOTG is not set
1265+# CONFIG_USB_GADGET_IMX is not set
10091266 # CONFIG_USB_GADGET_S3C2410 is not set
10101267 # CONFIG_USB_GADGET_M66592 is not set
10111268 # CONFIG_USB_GADGET_AMD5536UDC is not set
10121269 # CONFIG_USB_GADGET_FSL_QE is not set
1270+# CONFIG_USB_GADGET_CI13XXX is not set
10131271 # CONFIG_USB_GADGET_NET2280 is not set
10141272 # CONFIG_USB_GADGET_GOKU is not set
1273+# CONFIG_USB_GADGET_LANGWELL is not set
10151274 # CONFIG_USB_GADGET_DUMMY_HCD is not set
1016−# CONFIG_USB_GADGET_DUALSPEED is not set
1275+CONFIG_USB_GADGET_DUALSPEED=y
10171276 # CONFIG_USB_ZERO is not set
1277+# CONFIG_USB_AUDIO is not set
10181278 CONFIG_USB_ETH=y
10191279 CONFIG_USB_ETH_RNDIS=y
1280+# CONFIG_USB_ETH_EEM is not set
10201281 # CONFIG_USB_GADGETFS is not set
10211282 # CONFIG_USB_FILE_STORAGE is not set
1283+# CONFIG_USB_MASS_STORAGE is not set
10221284 # CONFIG_USB_G_SERIAL is not set
10231285 # CONFIG_USB_MIDI_GADGET is not set
10241286 # CONFIG_USB_G_PRINTER is not set
10251287 # CONFIG_USB_CDC_COMPOSITE is not set
1288+# CONFIG_USB_G_NOKIA is not set
1289+# CONFIG_USB_G_MULTI is not set
1290+
1291+#
1292+# OTG and related infrastructure
1293+#
1294+CONFIG_USB_OTG_UTILS=y
1295+# CONFIG_USB_GPIO_VBUS is not set
1296+# CONFIG_ISP1301_OMAP is not set
1297+# CONFIG_USB_ULPI is not set
1298+CONFIG_TWL4030_USB=y
1299+# CONFIG_NOP_USB_XCEIV is not set
10261300 CONFIG_MMC=y
10271301 # CONFIG_MMC_DEBUG is not set
10281302 # CONFIG_MMC_UNSAFE_RESUME is not set
@@ -1040,16 +1314,41 @@ CONFIG_MMC_BLOCK_BOUNCE=y · 11 unmodified lines
10401314 #
10411315 # CONFIG_MMC_SDHCI is not set
10421316 # CONFIG_MMC_OMAP is not set
1317+CONFIG_MMC_OMAP_HS=y
1318+# CONFIG_MMC_AT91 is not set
1319+# CONFIG_MMC_ATMELMCI is not set
10431320 # CONFIG_MMC_SPI is not set
10441321 # CONFIG_MEMSTICK is not set
1045−# CONFIG_ACCESSIBILITY is not set
10461322 CONFIG_NEW_LEDS=y
10471323 CONFIG_LEDS_CLASS=y
1324+
1325+#
1326+# LED drivers
1327+#
1328+# CONFIG_LEDS_PCA9532 is not set
10481329 CONFIG_LEDS_GPIO=y
10491330 CONFIG_LEDS_GPIO_PLATFORM=y
1331+# CONFIG_LEDS_LP3944 is not set
1332+# CONFIG_LEDS_PCA955X is not set
1333+# CONFIG_LEDS_DAC124S085 is not set
1334+# CONFIG_LEDS_REGULATOR is not set
1335+# CONFIG_LEDS_BD2802 is not set
1336+# CONFIG_LEDS_LT3593 is not set
1337+
1338+#
1339+# LED Triggers
1340+#
10501341 CONFIG_LEDS_TRIGGERS=y
1342+# CONFIG_LEDS_TRIGGER_TIMER is not set
1343+# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
1344+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
1345+# CONFIG_LEDS_TRIGGER_GPIO is not set
10511346 CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
10521347
1348+#
1349+# iptables trigger is under Netfilter config (LED target)
1350+#
1351+# CONFIG_ACCESSIBILITY is not set
10531352 CONFIG_RTC_LIB=y
10541353 CONFIG_RTC_CLASS=y
10551354 CONFIG_RTC_HCTOSYS=y
@@ -1078,10 +1377,12 @@ CONFIG_RTC_INTF_DEV=y · 22 unmodified lines
10781377 # CONFIG_RTC_DRV_PCF8563 is not set
10791378 # CONFIG_RTC_DRV_PCF8583 is not set
10801379 # CONFIG_RTC_DRV_M41T80 is not set
1380+# CONFIG_RTC_DRV_BQ32K is not set
10811381 CONFIG_RTC_DRV_TWL4030=y
10821382 # CONFIG_RTC_DRV_S35390A is not set
10831383 # CONFIG_RTC_DRV_FM3130 is not set
10841384 # CONFIG_RTC_DRV_RX8581 is not set
1385+# CONFIG_RTC_DRV_RX8025 is not set
10851386
10861387 #
10871388 # SPI RTC drivers
@@ -1093,6 +1394,7 @@ CONFIG_RTC_DRV_TWL4030=y · 5 unmodified lines
10931394 # CONFIG_RTC_DRV_R9701 is not set
10941395 # CONFIG_RTC_DRV_RS5C348 is not set
10951396 # CONFIG_RTC_DRV_DS3234 is not set
1397+# CONFIG_RTC_DRV_PCF2123 is not set
10961398
10971399 #
10981400 # Platform RTC drivers
@@ -1106,18 +1408,22 @@ CONFIG_RTC_DRV_TWL4030=y · 7 unmodified lines
11061408 # CONFIG_RTC_DRV_M48T86 is not set
11071409 # CONFIG_RTC_DRV_M48T35 is not set
11081410 # CONFIG_RTC_DRV_M48T59 is not set
1411+# CONFIG_RTC_DRV_MSM6242 is not set
11091412 # CONFIG_RTC_DRV_BQ4802 is not set
1413+# CONFIG_RTC_DRV_RP5C01 is not set
11101414 # CONFIG_RTC_DRV_V3020 is not set
11111415
11121416 #
11131417 # on-CPU RTC drivers
11141418 #
11151419 # CONFIG_DMADEVICES is not set
1420+# CONFIG_AUXDISPLAY is not set
11161421 # CONFIG_UIO is not set
11171422
1118−CONFIG_REGULATOR=y
1119−CONFIG_REGULATOR_FIXED_VOLTAGE=y
1120−CONFIG_REGULATOR_TWL4030=y
1423+#
1424+# TI VLYNQ
1425+#
1426+# CONFIG_STAGING is not set
11211427
11221428 #
11231429 # File systems
@@ -1126,21 +1432,27 @@ CONFIG_EXT2_FS=y · 2 unmodified lines
11261432 # CONFIG_EXT2_FS_XATTR is not set
11271433 # CONFIG_EXT2_FS_XIP is not set
11281434 CONFIG_EXT3_FS=y
1435+# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
11291436 # CONFIG_EXT3_FS_XATTR is not set
11301437 # CONFIG_EXT4_FS is not set
11311438 CONFIG_JBD=y
11321439 # CONFIG_REISERFS_FS is not set
11331440 # CONFIG_JFS_FS is not set
11341441 # CONFIG_FS_POSIX_ACL is not set
1135−CONFIG_FILE_LOCKING=y
11361442 # CONFIG_XFS_FS is not set
1443+# CONFIG_GFS2_FS is not set
11371444 # CONFIG_OCFS2_FS is not set
1445+# CONFIG_BTRFS_FS is not set
1446+# CONFIG_NILFS2_FS is not set
1447+CONFIG_FILE_LOCKING=y
1448+CONFIG_FSNOTIFY=y
11381449 CONFIG_DNOTIFY=y
1139−CONFIG_INOTIFY=y
11401450 CONFIG_INOTIFY_USER=y
1451+CONFIG_FANOTIFY=y
11411452 CONFIG_QUOTA=y
11421453 # CONFIG_QUOTA_NETLINK_INTERFACE is not set
11431454 CONFIG_PRINT_QUOTA_WARNING=y
1455+CONFIG_QUOTA_TREE=y
11441456 # CONFIG_QFMT_V1 is not set
11451457 CONFIG_QFMT_V2=y
11461458 CONFIG_QUOTACTL=y
@@ -1148,6 +1460,11 @@ CONFIG_QUOTACTL=y · 1 unmodified line
11481460 # CONFIG_AUTOFS4_FS is not set
11491461 # CONFIG_FUSE_FS is not set
11501462
1463+#
1464+# Caches
1465+#
1466+# CONFIG_FSCACHE is not set
1467+
11511468 #
11521469 # CD-ROM/DVD Filesystems
11531470 #
@@ -1175,10 +1492,7 @@ CONFIG_TMPFS=y · 21 unmodified lines
11751492 # CONFIG_TMPFS_POSIX_ACL is not set
11761493 # CONFIG_HUGETLB_PAGE is not set
11771494 # CONFIG_CONFIGFS_FS is not set
1178−
1179−#
1180−# Miscellaneous filesystems
1181−#
1495+CONFIG_MISC_FILESYSTEMS=y
11821496 # CONFIG_ADFS_FS is not set
11831497 # CONFIG_AFFS_FS is not set
11841498 # CONFIG_HFS_FS is not set
@@ -1187,7 +1501,9 @@ CONFIG_TMPFS=y · 2 unmodified lines
11871501 # CONFIG_BFS_FS is not set
11881502 # CONFIG_EFS_FS is not set
11891503 # CONFIG_JFFS2_FS is not set
1504+# CONFIG_LOGFS is not set
11901505 # CONFIG_CRAMFS is not set
1506+# CONFIG_SQUASHFS is not set
11911507 # CONFIG_VXFS_FS is not set
11921508 # CONFIG_MINIX_FS is not set
11931509 # CONFIG_OMFS_FS is not set
@@ -1196,7 +1512,20 @@ CONFIG_TMPFS=y · 2 unmodified lines
11961512 # CONFIG_ROMFS_FS is not set
11971513 # CONFIG_SYSV_FS is not set
11981514 # CONFIG_UFS_FS is not set
1199−# CONFIG_NETWORK_FILESYSTEMS is not set
1515+CONFIG_NETWORK_FILESYSTEMS=y
1516+# CONFIG_NFS_FS is not set
1517+# CONFIG_NFSD is not set
1518+# CONFIG_SMB_FS is not set
1519+# CONFIG_CEPH_FS is not set
1520+CONFIG_CIFS=y
1521+# CONFIG_CIFS_STATS is not set
1522+# CONFIG_CIFS_WEAK_PW_HASH is not set
1523+# CONFIG_CIFS_XATTR is not set
1524+# CONFIG_CIFS_DEBUG2 is not set
1525+# CONFIG_CIFS_EXPERIMENTAL is not set
1526+# CONFIG_NCP_FS is not set
1527+# CONFIG_CODA_FS is not set
1528+# CONFIG_AFS_FS is not set
12001529
12011530 #
12021531 # Partition Types
@@ -1269,6 +1598,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y · 66 unmodified lines
12691598 CONFIG_ENABLE_MUST_CHECK=y
12701599 CONFIG_FRAME_WARN=1024
12711600 CONFIG_MAGIC_SYSRQ=y
1601+# CONFIG_STRIP_ASM_SYMS is not set
12721602 # CONFIG_UNUSED_SYMBOLS is not set
12731603 # CONFIG_DEBUG_FS is not set
12741604 # CONFIG_HEADERS_CHECK is not set
@@ -1277,11 +1607,15 @@ CONFIG_DEBUG_KERNEL=y · 2 unmodified lines
12771607 CONFIG_DETECT_SOFTLOCKUP=y
12781608 # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
12791609 CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1610+CONFIG_DETECT_HUNG_TASK=y
1611+# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1612+CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
12801613 CONFIG_SCHED_DEBUG=y
12811614 # CONFIG_SCHEDSTATS is not set
12821615 # CONFIG_TIMER_STATS is not set
12831616 # CONFIG_DEBUG_OBJECTS is not set
12841617 # CONFIG_DEBUG_SLAB is not set
1618+# CONFIG_DEBUG_KMEMLEAK is not set
12851619 # CONFIG_DEBUG_RT_MUTEXES is not set
12861620 # CONFIG_RT_MUTEX_TESTER is not set
12871621 # CONFIG_DEBUG_SPINLOCK is not set
@@ -1299,33 +1633,42 @@ CONFIG_DEBUG_INFO=y · 11 unmodified lines
12991633 # CONFIG_DEBUG_MEMORY_INIT is not set
13001634 # CONFIG_DEBUG_LIST is not set
13011635 # CONFIG_DEBUG_SG is not set
1302−CONFIG_FRAME_POINTER=y
1636+# CONFIG_DEBUG_NOTIFIERS is not set
1637+# CONFIG_DEBUG_CREDENTIALS is not set
13031638 # CONFIG_BOOT_PRINTK_DELAY is not set
13041639 # CONFIG_RCU_TORTURE_TEST is not set
13051640 # CONFIG_RCU_CPU_STALL_DETECTOR is not set
13061641 # CONFIG_BACKTRACE_SELF_TEST is not set
13071642 # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1643+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
13081644 # CONFIG_FAULT_INJECTION is not set
13091645 # CONFIG_LATENCYTOP is not set
1646+# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1647+# CONFIG_PAGE_POISONING is not set
13101648 CONFIG_HAVE_FUNCTION_TRACER=y
1311−
1312−#
1313−# Tracers
1314−#
1649+CONFIG_TRACING_SUPPORT=y
1650+CONFIG_FTRACE=y
13151651 # CONFIG_FUNCTION_TRACER is not set
13161652 # CONFIG_IRQSOFF_TRACER is not set
13171653 # CONFIG_SCHED_TRACER is not set
1318−# CONFIG_CONTEXT_SWITCH_TRACER is not set
1654+# CONFIG_ENABLE_DEFAULT_TRACERS is not set
13191655 # CONFIG_BOOT_TRACER is not set
1656+CONFIG_BRANCH_PROFILE_NONE=y
1657+# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
1658+# CONFIG_PROFILE_ALL_BRANCHES is not set
13201659 # CONFIG_STACK_TRACER is not set
1321−# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1660+# CONFIG_KMEMTRACE is not set
1661+# CONFIG_WORKQUEUE_TRACER is not set
1662+# CONFIG_BLK_DEV_IO_TRACE is not set
13221663 # CONFIG_SAMPLES is not set
13231664 CONFIG_HAVE_ARCH_KGDB=y
13241665 # CONFIG_KGDB is not set
1666+CONFIG_ARM_UNWIND=y
13251667 # CONFIG_DEBUG_USER is not set
13261668 # CONFIG_DEBUG_ERRORS is not set
13271669 # CONFIG_DEBUG_STACK_USAGE is not set
13281670 # CONFIG_DEBUG_LL is not set
1671+# CONFIG_OC_ETM is not set
13291672
13301673 #
13311674 # Security options
@@ -1333,19 +1676,22 @@ CONFIG_HAVE_ARCH_KGDB=y · 1 unmodified line
13331676 # CONFIG_KEYS is not set
13341677 # CONFIG_SECURITY is not set
13351678 # CONFIG_SECURITYFS is not set
1336−# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1679+# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1680+# CONFIG_DEFAULT_SECURITY_SMACK is not set
1681+# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1682+CONFIG_DEFAULT_SECURITY_DAC=y
1683+CONFIG_DEFAULT_SECURITY=""
13371684 CONFIG_CRYPTO=y
13381685
13391686 #
13401687 # Crypto core or helper
13411688 #
1342−# CONFIG_CRYPTO_FIPS is not set
13431689 CONFIG_CRYPTO_ALGAPI=y
1344−CONFIG_CRYPTO_AEAD=y
1345−CONFIG_CRYPTO_BLKCIPHER=y
1690+CONFIG_CRYPTO_ALGAPI2=y
13461691 CONFIG_CRYPTO_HASH=y
1347−CONFIG_CRYPTO_RNG=y
1348−CONFIG_CRYPTO_MANAGER=y
1692+CONFIG_CRYPTO_HASH2=y
1693+# CONFIG_CRYPTO_MANAGER is not set
1694+# CONFIG_CRYPTO_MANAGER2 is not set
13491695 # CONFIG_CRYPTO_GF128MUL is not set
13501696 # CONFIG_CRYPTO_NULL is not set
13511697 # CONFIG_CRYPTO_CRYPTD is not set
@@ -1362,12 +1708,12 @@ CONFIG_CRYPTO_MANAGER=y · 10 unmodified lines
13621708 #
13631709 # Block modes
13641710 #
1365−CONFIG_CRYPTO_CBC=y
1711+# CONFIG_CRYPTO_CBC is not set
13661712 # CONFIG_CRYPTO_CTR is not set
13671713 # CONFIG_CRYPTO_CTS is not set
1368−CONFIG_CRYPTO_ECB=m
1714+# CONFIG_CRYPTO_ECB is not set
13691715 # CONFIG_CRYPTO_LRW is not set
1370−CONFIG_CRYPTO_PCBC=m
1716+# CONFIG_CRYPTO_PCBC is not set
13711717 # CONFIG_CRYPTO_XTS is not set
13721718
13731719 #
@@ -1375,13 +1721,15 @@ CONFIG_CRYPTO_PCBC=m · 1 unmodified line
13751721 #
13761722 # CONFIG_CRYPTO_HMAC is not set
13771723 # CONFIG_CRYPTO_XCBC is not set
1724+# CONFIG_CRYPTO_VMAC is not set
13781725
13791726 #
13801727 # Digest
13811728 #
1382−# CONFIG_CRYPTO_CRC32C is not set
1729+CONFIG_CRYPTO_CRC32C=y
1730+# CONFIG_CRYPTO_GHASH is not set
13831731 # CONFIG_CRYPTO_MD4 is not set
1384−CONFIG_CRYPTO_MD5=y
1732+# CONFIG_CRYPTO_MD5 is not set
13851733 # CONFIG_CRYPTO_MICHAEL_MIC is not set
13861734 # CONFIG_CRYPTO_RMD128 is not set
13871735 # CONFIG_CRYPTO_RMD160 is not set
@@ -1403,7 +1751,7 @@ CONFIG_CRYPTO_MD5=y · 15 unmodified lines
14031751 # CONFIG_CRYPTO_CAMELLIA is not set
14041752 # CONFIG_CRYPTO_CAST5 is not set
14051753 # CONFIG_CRYPTO_CAST6 is not set
1406−CONFIG_CRYPTO_DES=y
1754+# CONFIG_CRYPTO_DES is not set
14071755 # CONFIG_CRYPTO_FCRYPT is not set
14081756 # CONFIG_CRYPTO_KHAZAD is not set
14091757 # CONFIG_CRYPTO_SALSA20 is not set
@@ -1416,33 +1764,33 @@ CONFIG_CRYPTO_DES=y · 6 unmodified lines
14161764 # Compression
14171765 #
14181766 # CONFIG_CRYPTO_DEFLATE is not set
1767+# CONFIG_CRYPTO_ZLIB is not set
14191768 # CONFIG_CRYPTO_LZO is not set
14201769
14211770 #
14221771 # Random Number Generation
14231772 #
14241773 # CONFIG_CRYPTO_ANSI_CPRNG is not set
1425−CONFIG_CRYPTO_HW=y
1774+# CONFIG_CRYPTO_HW is not set
1775+# CONFIG_BINARY_PRINTF is not set
14261776
14271777 #
14281778 # Library routines
14291779 #
14301780 CONFIG_BITREVERSE=y
1781+CONFIG_GENERIC_FIND_LAST_BIT=y
14311782 CONFIG_CRC_CCITT=y
14321783 # CONFIG_CRC16 is not set
14331784 # CONFIG_CRC_T10DIF is not set
14341785 # CONFIG_CRC_ITU_T is not set
14351786 CONFIG_CRC32=y
14361787 # CONFIG_CRC7 is not set
1437−CONFIG_LIBCRC32C=y
1438−CONFIG_PLIST=y
1788+# CONFIG_LIBCRC32C is not set
1789+CONFIG_ZLIB_INFLATE=y
1790+CONFIG_DECOMPRESS_GZIP=y
14391791 CONFIG_HAS_IOMEM=y
14401792 CONFIG_HAS_IOPORT=y
14411793 CONFIG_HAS_DMA=y
1442−
1443−# added by hand for now
1444−CONFIG_KEYBOARD_TWL4030=y
1445−CONFIG_USB_OTG_UTILS=y
1446−CONFIG_TWL4030_USB=y
1447−CONFIG_MMC_OMAP_HS=y
1448−
1794+CONFIG_NLATTR=y
1795+# CONFIG_SHM_SIGNAL is not set
1796+# CONFIG_IOQ is not set
arch/arm/configs/omap_4430sdp_defconfig+7−3
@@ -199,7 +199,7 @@ CONFIG_ARCH_OMAP4=y · 198 unmodified lines
199199 #
200200 # CONFIG_OMAP_RESET_CLOCKS is not set
201201 # CONFIG_OMAP_MUX is not set
202−# CONFIG_OMAP_MCBSP is not set
202+CONFIG_OMAP_MCBSP=y
203203 # CONFIG_OMAP_MBOX_FWK is not set
204204 # CONFIG_OMAP_MPU_TIMER is not set
205205 CONFIG_OMAP_32K_TIMER=y
@@ -242,10 +242,13 @@ CONFIG_CPU_CP15_MMU=y · 36 unmodified lines
242242 # CONFIG_CPU_DCACHE_DISABLE is not set
243243 # CONFIG_CPU_BPREDICT_DISABLE is not set
244244 CONFIG_HAS_TLS_REG=y
245+CONFIG_OUTER_CACHE=y
246+CONFIG_CACHE_L2X0=y
245247 CONFIG_ARM_L1_CACHE_SHIFT=5
246248 # CONFIG_ARM_ERRATA_430973 is not set
247249 # CONFIG_ARM_ERRATA_458693 is not set
248250 # CONFIG_ARM_ERRATA_460075 is not set
251+CONFIG_PL310_ERRATA_588369=y
249252 CONFIG_ARM_GIC=y
250253
251254 #
@@ -304,7 +307,7 @@ CONFIG_ALIGNMENT_TRAP=y · 52 unmodified lines
304307 #
305308 CONFIG_ZBOOT_ROM_TEXT=0x0
306309 CONFIG_ZBOOT_ROM_BSS=0x0
307−CONFIG_CMDLINE="root=/dev/ram0 rw mem=128M console=ttyS0,115200n8 initrd=0x81600000,20M ramdisk_size=20480"
310+CONFIG_CMDLINE="root=/dev/ram0 rw mem=128M console=ttyS2,115200n8 initrd=0x81600000,20M ramdisk_size=20480"
308311 # CONFIG_XIP_KERNEL is not set
309312 # CONFIG_KEXEC is not set
310313
@@ -488,7 +491,8 @@ CONFIG_GPIOLIB=y · 177 unmodified lines
488491 # CONFIG_POWER_SUPPLY is not set
489492 # CONFIG_HWMON is not set
490493 # CONFIG_THERMAL is not set
491−# CONFIG_WATCHDOG is not set
494+CONFIG_WATCHDOG=y
495+CONFIG_OMAP_WATCHDOG=y
492496 CONFIG_SSB_POSSIBLE=y
493497
494498 #
arch/arm/configs/omap_zoom3_defconfig+3−3
@@ -1136,7 +1136,7 @@ CONFIG_TWL4030_USB=y · 1135 unmodified lines
11361136 # CONFIG_NOP_USB_XCEIV is not set
11371137 CONFIG_MMC=y
11381138 # CONFIG_MMC_DEBUG is not set
1139−# CONFIG_MMC_UNSAFE_RESUME is not set
1139+CONFIG_MMC_UNSAFE_RESUME=y
11401140
11411141 #
11421142 # MMC/SD/SDIO Card Drivers
@@ -1186,7 +1186,7 @@ CONFIG_RTC_INTF_DEV=y · 43 unmodified lines
11861186 # CONFIG_RTC_DRV_PCF8563 is not set
11871187 # CONFIG_RTC_DRV_PCF8583 is not set
11881188 # CONFIG_RTC_DRV_M41T80 is not set
1189−# CONFIG_RTC_DRV_TWL4030 is not set
1189+CONFIG_RTC_DRV_TWL4030=y
11901190 # CONFIG_RTC_DRV_S35390A is not set
11911191 # CONFIG_RTC_DRV_FM3130 is not set
11921192 # CONFIG_RTC_DRV_RX8581 is not set
@@ -1416,7 +1416,7 @@ CONFIG_FRAME_WARN=1024 · 223 unmodified lines
14161416 CONFIG_MAGIC_SYSRQ=y
14171417 # CONFIG_STRIP_ASM_SYMS is not set
14181418 # CONFIG_UNUSED_SYMBOLS is not set
1419−# CONFIG_DEBUG_FS is not set
1419+CONFIG_DEBUG_FS=y
14201420 # CONFIG_HEADERS_CHECK is not set
14211421 CONFIG_DEBUG_KERNEL=y
14221422 # CONFIG_DEBUG_SHIRQ is not set
arch/arm/configs/rx51_defconfig+2−2
@@ -1354,7 +1354,7 @@ CONFIG_USB_OTG_UTILS=y · 1353 unmodified lines
13541354 # CONFIG_USB_GPIO_VBUS is not set
13551355 # CONFIG_ISP1301_OMAP is not set
13561356 CONFIG_TWL4030_USB=y
1357−CONFIG_MMC=y
1357+CONFIG_MMC=m
13581358 # CONFIG_MMC_DEBUG is not set
13591359 # CONFIG_MMC_UNSAFE_RESUME is not set
13601360
@@ -1362,7 +1362,7 @@ CONFIG_MMC=y · 1 unmodified line
13621362 # MMC/SD/SDIO Card Drivers
13631363 #
13641364 CONFIG_MMC_BLOCK=m
1365−CONFIG_MMC_BLOCK_BOUNCE=y
1365+# CONFIG_MMC_BLOCK_BOUNCE is not set
13661366 # CONFIG_SDIO_UART is not set
13671367 # CONFIG_MMC_TEST is not set
13681368
arch/arm/include/asm/atomic.h+228−0
@@ -235,6 +235,234 @@ static inline int atomic_add_unless(atomic_t *v, int a, int u) · 234 unmodified lines
235235 #define smp_mb__before_atomic_inc() smp_mb()
236236 #define smp_mb__after_atomic_inc() smp_mb()
237237
238+#ifndef CONFIG_GENERIC_ATOMIC64
239+typedef struct {
240+ u64 __aligned(8) counter;
241+} atomic64_t;
242+
243+#define ATOMIC64_INIT(i) { (i) }
244+
245+static inline u64 atomic64_read(atomic64_t *v)
246+{
247+ u64 result;
248+
249+ __asm__ __volatile__("@ atomic64_read\n"
250+" ldrexd %0, %H0, [%1]"
251+ : "=&r" (result)
252+ : "r" (&v->counter)
253+ );
254+
255+ return result;
256+}
257+
258+static inline void atomic64_set(atomic64_t *v, u64 i)
259+{
260+ u64 tmp;
261+
262+ __asm__ __volatile__("@ atomic64_set\n"
263+"1: ldrexd %0, %H0, [%1]\n"
264+" strexd %0, %2, %H2, [%1]\n"
265+" teq %0, #0\n"
266+" bne 1b"
267+ : "=&r" (tmp)
268+ : "r" (&v->counter), "r" (i)
269+ : "cc");
270+}
271+
272+static inline void atomic64_add(u64 i, atomic64_t *v)
273+{
274+ u64 result;
275+ unsigned long tmp;
276+
277+ __asm__ __volatile__("@ atomic64_add\n"
278+"1: ldrexd %0, %H0, [%2]\n"
279+" adds %0, %0, %3\n"
280+" adc %H0, %H0, %H3\n"
281+" strexd %1, %0, %H0, [%2]\n"
282+" teq %1, #0\n"
283+" bne 1b"
284+ : "=&r" (result), "=&r" (tmp)
285+ : "r" (&v->counter), "r" (i)
286+ : "cc");
287+}
288+
289+static inline u64 atomic64_add_return(u64 i, atomic64_t *v)
290+{
291+ u64 result;
292+ unsigned long tmp;
293+
294+ smp_mb();
295+
296+ __asm__ __volatile__("@ atomic64_add_return\n"
297+"1: ldrexd %0, %H0, [%2]\n"
298+" adds %0, %0, %3\n"
299+" adc %H0, %H0, %H3\n"
300+" strexd %1, %0, %H0, [%2]\n"
301+" teq %1, #0\n"
302+" bne 1b"
303+ : "=&r" (result), "=&r" (tmp)
304+ : "r" (&v->counter), "r" (i)
305+ : "cc");
306+
307+ smp_mb();
308+
309+ return result;
310+}
311+
312+static inline void atomic64_sub(u64 i, atomic64_t *v)
313+{
314+ u64 result;
315+ unsigned long tmp;
316+
317+ __asm__ __volatile__("@ atomic64_sub\n"
318+"1: ldrexd %0, %H0, [%2]\n"
319+" subs %0, %0, %3\n"
320+" sbc %H0, %H0, %H3\n"
321+" strexd %1, %0, %H0, [%2]\n"
322+" teq %1, #0\n"
323+" bne 1b"
324+ : "=&r" (result), "=&r" (tmp)
325+ : "r" (&v->counter), "r" (i)
326+ : "cc");
327+}
328+
329+static inline u64 atomic64_sub_return(u64 i, atomic64_t *v)
330+{
331+ u64 result;
332+ unsigned long tmp;
333+
334+ smp_mb();
335+
336+ __asm__ __volatile__("@ atomic64_sub_return\n"
337+"1: ldrexd %0, %H0, [%2]\n"
338+" subs %0, %0, %3\n"
339+" sbc %H0, %H0, %H3\n"
340+" strexd %1, %0, %H0, [%2]\n"
341+" teq %1, #0\n"
342+" bne 1b"
343+ : "=&r" (result), "=&r" (tmp)
344+ : "r" (&v->counter), "r" (i)
345+ : "cc");
346+
347+ smp_mb();
348+
349+ return result;
350+}
351+
352+static inline u64 atomic64_cmpxchg(atomic64_t *ptr, u64 old, u64 new)
353+{
354+ u64 oldval;
355+ unsigned long res;
356+
357+ smp_mb();
358+
359+ do {
360+ __asm__ __volatile__("@ atomic64_cmpxchg\n"
361+ "ldrexd %1, %H1, [%2]\n"
362+ "mov %0, #0\n"
363+ "teq %1, %3\n"
364+ "teqeq %H1, %H3\n"
365+ "strexdeq %0, %4, %H4, [%2]"
366+ : "=&r" (res), "=&r" (oldval)
367+ : "r" (&ptr->counter), "r" (old), "r" (new)
368+ : "cc");
369+ } while (res);
370+
371+ smp_mb();
372+
373+ return oldval;
374+}
375+
376+static inline u64 atomic64_xchg(atomic64_t *ptr, u64 new)
377+{
378+ u64 result;
379+ unsigned long tmp;
380+
381+ smp_mb();
382+
383+ __asm__ __volatile__("@ atomic64_xchg\n"
384+"1: ldrexd %0, %H0, [%2]\n"
385+" strexd %1, %3, %H3, [%2]\n"
386+" teq %1, #0\n"
387+" bne 1b"
388+ : "=&r" (result), "=&r" (tmp)
389+ : "r" (&ptr->counter), "r" (new)
390+ : "cc");
391+
392+ smp_mb();
393+
394+ return result;
395+}
396+
397+static inline u64 atomic64_dec_if_positive(atomic64_t *v)
398+{
399+ u64 result;
400+ unsigned long tmp;
401+
402+ smp_mb();
403+
404+ __asm__ __volatile__("@ atomic64_dec_if_positive\n"
405+"1: ldrexd %0, %H0, [%2]\n"
406+" subs %0, %0, #1\n"
407+" sbc %H0, %H0, #0\n"
408+" teq %H0, #0\n"
409+" bmi 2f\n"
410+" strexd %1, %0, %H0, [%2]\n"
411+" teq %1, #0\n"
412+" bne 1b\n"
413+"2:"
414+ : "=&r" (result), "=&r" (tmp)
415+ : "r" (&v->counter)
416+ : "cc");
417+
418+ smp_mb();
419+
420+ return result;
421+}
422+
423+static inline int atomic64_add_unless(atomic64_t *v, u64 a, u64 u)
424+{
425+ u64 val;
426+ unsigned long tmp;
427+ int ret = 1;
428+
429+ smp_mb();
430+
431+ __asm__ __volatile__("@ atomic64_add_unless\n"
432+"1: ldrexd %0, %H0, [%3]\n"
433+" teq %0, %4\n"
434+" teqeq %H0, %H4\n"
435+" moveq %1, #0\n"
436+" beq 2f\n"
437+" adds %0, %0, %5\n"
438+" adc %H0, %H0, %H5\n"
439+" strexd %2, %0, %H0, [%3]\n"
440+" teq %2, #0\n"
441+" bne 1b\n"
442+"2:"
443+ : "=&r" (val), "=&r" (ret), "=&r" (tmp)
444+ : "r" (&v->counter), "r" (u), "r" (a)
445+ : "cc");
446+
447+ if (ret)
448+ smp_mb();
449+
450+ return ret;
451+}
452+
453+#define atomic64_add_negative(a, v) (atomic64_add_return((a), (v)) < 0)
454+#define atomic64_inc(v) atomic64_add(1LL, (v))
455+#define atomic64_inc_return(v) atomic64_add_return(1LL, (v))
456+#define atomic64_inc_and_test(v) (atomic64_inc_return(v) == 0)
457+#define atomic64_sub_and_test(a, v) (atomic64_sub_return((a), (v)) == 0)
458+#define atomic64_dec(v) atomic64_sub(1LL, (v))
459+#define atomic64_dec_return(v) atomic64_sub_return(1LL, (v))
460+#define atomic64_dec_and_test(v) (atomic64_dec_return((v)) == 0)
461+#define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1LL, 0LL)
462+
463+#else /* !CONFIG_GENERIC_ATOMIC64 */
464+#include <asm-generic/atomic64.h>
465+#endif
238466 #include <asm-generic/atomic-long.h>
239467 #endif
240468 #endif
arch/arm/include/asm/cacheflush.h+21−45
@@ -197,21 +197,6 @@ · 196 unmodified lines
197197 * DMA Cache Coherency
198198 * ===================
199199 *
200− * dma_inv_range(start, end)
201− *
202− * Invalidate (discard) the specified virtual address range.
203− * May not write back any entries. If 'start' or 'end'
204− * are not cache line aligned, those lines must be written
205− * back.
206− * - start - virtual start address
207− * - end - virtual end address
208− *
209− * dma_clean_range(start, end)
210− *
211− * Clean (write back) the specified virtual address range.
212− * - start - virtual start address
213− * - end - virtual end address
214− *
215200 * dma_flush_range(start, end)
216201 *
217202 * Clean and invalidate the specified virtual address range.
@@ -228,8 +213,9 @@ struct cpu_cache_fns { · 10 unmodified lines
228213 void (*coherent_user_range)(unsigned long, unsigned long);
229214 void (*flush_kern_dcache_area)(void *, size_t);
230215
231− void (*dma_inv_range)(const void *, const void *);
232− void (*dma_clean_range)(const void *, const void *);
216+ void (*dma_map_area)(const void *, size_t, int);
217+ void (*dma_unmap_area)(const void *, size_t, int);
218+
233219 void (*dma_flush_range)(const void *, const void *);
234220 };
235221
@@ -259,8 +245,8 @@ extern struct cpu_cache_fns cpu_cache; · 23 unmodified lines
259245 * is visible to DMA, or data written by DMA to system memory is
260246 * visible to the CPU.
261247 */
262−#define dmac_inv_range cpu_cache.dma_inv_range
263−#define dmac_clean_range cpu_cache.dma_clean_range
248+#define dmac_map_area cpu_cache.dma_map_area
249+#define dmac_unmap_area cpu_cache.dma_unmap_area
264250 #define dmac_flush_range cpu_cache.dma_flush_range
265251
266252 #else
@@ -285,12 +271,12 @@ extern void __cpuc_flush_dcache_area(void *, size_t); · 18 unmodified lines
285271 * is visible to DMA, or data written by DMA to system memory is
286272 * visible to the CPU.
287273 */
288−#define dmac_inv_range __glue(_CACHE,_dma_inv_range)
289−#define dmac_clean_range __glue(_CACHE,_dma_clean_range)
274+#define dmac_map_area __glue(_CACHE,_dma_map_area)
275+#define dmac_unmap_area __glue(_CACHE,_dma_unmap_area)
290276 #define dmac_flush_range __glue(_CACHE,_dma_flush_range)
291277
292−extern void dmac_inv_range(const void *, const void *);
293−extern void dmac_clean_range(const void *, const void *);
278+extern void dmac_map_area(const void *, size_t, int);
279+extern void dmac_unmap_area(const void *, size_t, int);
294280 extern void dmac_flush_range(const void *, const void *);
295281
296282 #endif
@@ -331,12 +317,8 @@ static inline void outer_flush_range(unsigned long start, unsigned long end) · 34 unmodified lines
331317 * processes address space. Really, we want to allow our "user
332318 * space" model to handle this.
333319 */
334−#define copy_to_user_page(vma, page, vaddr, dst, src, len) \
335− do { \
336− memcpy(dst, src, len); \
337− flush_ptrace_access(vma, page, vaddr, dst, len, 1);\
338− } while (0)
339−
320+extern void copy_to_user_page(struct vm_area_struct *, struct page *,
321+ unsigned long, void *, const void *, unsigned long);
340322 #define copy_from_user_page(vma, page, vaddr, dst, src, len) \
341323 do { \
342324 memcpy(dst, src, len); \
@@ -370,17 +352,6 @@ vivt_flush_cache_page(struct vm_area_struct *vma, unsigned long user_addr, unsig · 27 unmodified lines
370352 }
371353 }
372354
373−static inline void
374−vivt_flush_ptrace_access(struct vm_area_struct *vma, struct page *page,
375− unsigned long uaddr, void *kaddr,
376− unsigned long len, int write)
377−{
378− if (cpumask_test_cpu(smp_processor_id(), mm_cpumask(vma->vm_mm))) {
379− unsigned long addr = (unsigned long)kaddr;
380− __cpuc_coherent_kern_range(addr, addr + len);
381− }
382−}
383−
384355 #ifndef CONFIG_CPU_CACHE_VIPT
385356 #define flush_cache_mm(mm) \
386357 vivt_flush_cache_mm(mm)
@@ -388,15 +359,10 @@ vivt_flush_ptrace_access(struct vm_area_struct *vma, struct page *page, · 1 unmodified line
388359 vivt_flush_cache_range(vma,start,end)
389360 #define flush_cache_page(vma,addr,pfn) \
390361 vivt_flush_cache_page(vma,addr,pfn)
391−#define flush_ptrace_access(vma,page,ua,ka,len,write) \
392− vivt_flush_ptrace_access(vma,page,ua,ka,len,write)
393362 #else
394363 extern void flush_cache_mm(struct mm_struct *mm);
395364 extern void flush_cache_range(struct vm_area_struct *vma, unsigned long start, unsigned long end);
396365 extern void flush_cache_page(struct vm_area_struct *vma, unsigned long user_addr, unsigned long pfn);
397−extern void flush_ptrace_access(struct vm_area_struct *vma, struct page *page,
398− unsigned long uaddr, void *kaddr,
399− unsigned long len, int write);
400366 #endif
401367
402368 #define flush_cache_dup_mm(mm) flush_cache_mm(mm)
@@ -447,6 +413,16 @@ static inline void __flush_icache_all(void) · 44 unmodified lines
447413 : "r" (0));
448414 #endif
449415 }
416+static inline void flush_kernel_vmap_range(void *addr, int size)
417+{
418+ if ((cache_is_vivt() || cache_is_vipt_aliasing()))
419+ __cpuc_flush_dcache_area(addr, (size_t)size);
420+}
421+static inline void invalidate_kernel_vmap_range(void *addr, int size)
422+{
423+ if ((cache_is_vivt() || cache_is_vipt_aliasing()))
424+ __cpuc_flush_dcache_area(addr, (size_t)size);
425+}
450426
451427 #define ARCH_HAS_FLUSH_ANON_PAGE
452428 static inline void flush_anon_page(struct vm_area_struct *vma,
arch/arm/include/asm/clkdev.h+3−0
@@ -27,4 +27,7 @@ struct clk_lookup *clkdev_alloc(struct clk *clk, const char *con_id, · 26 unmodified lines
2727 void clkdev_add(struct clk_lookup *cl);
2828 void clkdev_drop(struct clk_lookup *cl);
2929
30+void clkdev_add_table(struct clk_lookup *, size_t);
31+int clk_add_alias(const char *, const char *, char *, struct device *);
32+
3033 #endif
arch/arm/include/asm/dma-mapping.h+60−19
@@ -57,18 +57,58 @@ static inline dma_addr_t virt_to_dma(struct device *dev, void *addr) · 56 unmodified lines
5757 #endif
5858
5959 /*
60− * DMA-consistent mapping functions. These allocate/free a region of
61− * uncached, unwrite-buffered mapped memory space for use with DMA
62− * devices. This is the "generic" version. The PCI specific version
63− * is in pci.h
60+ * The DMA API is built upon the notion of "buffer ownership". A buffer
61+ * is either exclusively owned by the CPU (and therefore may be accessed
62+ * by it) or exclusively owned by the DMA device. These helper functions
63+ * represent the transitions between these two ownership states.
6464 *
65− * Note: Drivers should NOT use this function directly, as it will break
66− * platforms with CONFIG_DMABOUNCE.
67− * Use the driver DMA support - see dma-mapping.h (dma_sync_*)
65+ * Note, however, that on later ARMs, this notion does not work due to
66+ * speculative prefetches. We model our approach on the assumption that
67+ * the CPU does do speculative prefetches, which means we clean caches
68+ * before transfers and delay cache invalidation until transfer completion.
69+ *
70+ * Private support functions: these are not part of the API and are
71+ * liable to change. Drivers must not use these.
6872 */
69−extern void dma_cache_maint(const void *kaddr, size_t size, int rw);
70−extern void dma_cache_maint_page(struct page *page, unsigned long offset,
71− size_t size, int rw);
73+static inline void __dma_single_cpu_to_dev(const void *kaddr, size_t size,
74+ enum dma_data_direction dir)
75+{
76+ extern void ___dma_single_cpu_to_dev(const void *, size_t,
77+ enum dma_data_direction);
78+
79+ if (!arch_is_coherent())
80+ ___dma_single_cpu_to_dev(kaddr, size, dir);
81+}
82+
83+static inline void __dma_single_dev_to_cpu(const void *kaddr, size_t size,
84+ enum dma_data_direction dir)
85+{
86+ extern void ___dma_single_dev_to_cpu(const void *, size_t,
87+ enum dma_data_direction);
88+
89+ if (!arch_is_coherent())
90+ ___dma_single_dev_to_cpu(kaddr, size, dir);
91+}
92+
93+static inline void __dma_page_cpu_to_dev(struct page *page, unsigned long off,
94+ size_t size, enum dma_data_direction dir)
95+{
96+ extern void ___dma_page_cpu_to_dev(struct page *, unsigned long,
97+ size_t, enum dma_data_direction);
98+
99+ if (!arch_is_coherent())
100+ ___dma_page_cpu_to_dev(page, off, size, dir);
101+}
102+
103+static inline void __dma_page_dev_to_cpu(struct page *page, unsigned long off,
104+ size_t size, enum dma_data_direction dir)
105+{
106+ extern void ___dma_page_dev_to_cpu(struct page *, unsigned long,
107+ size_t, enum dma_data_direction);
108+
109+ if (!arch_is_coherent())
110+ ___dma_page_dev_to_cpu(page, off, size, dir);
111+}
72112
73113 /*
74114 * Return whether the given device DMA address mask can be supported
@@ -304,8 +344,7 @@ static inline dma_addr_t dma_map_single(struct device *dev, void *cpu_addr, · 229 unmodified lines
304344 {
305345 BUG_ON(!valid_dma_direction(dir));
306346
307− if (!arch_is_coherent())
308− dma_cache_maint(cpu_addr, size, dir);
347+ __dma_single_cpu_to_dev(cpu_addr, size, dir);
309348
310349 return virt_to_dma(dev, cpu_addr);
311350 }
@@ -329,8 +368,7 @@ static inline dma_addr_t dma_map_page(struct device *dev, struct page *page, · 17 unmodified lines
329368 {
330369 BUG_ON(!valid_dma_direction(dir));
331370
332− if (!arch_is_coherent())
333− dma_cache_maint_page(page, offset, size, dir);
371+ __dma_page_cpu_to_dev(page, offset, size, dir);
334372
335373 return page_to_dma(dev, page) + offset;
336374 }
@@ -352,7 +390,7 @@ static inline dma_addr_t dma_map_page(struct device *dev, struct page *page, · 15 unmodified lines
352390 static inline void dma_unmap_single(struct device *dev, dma_addr_t handle,
353391 size_t size, enum dma_data_direction dir)
354392 {
355− /* nothing to do */
393+ __dma_single_dev_to_cpu(dma_to_virt(dev, handle), size, dir);
356394 }
357395
358396 /**
@@ -372,7 +410,8 @@ static inline void dma_unmap_single(struct device *dev, dma_addr_t handle, · 13 unmodified lines
372410 static inline void dma_unmap_page(struct device *dev, dma_addr_t handle,
373411 size_t size, enum dma_data_direction dir)
374412 {
375− /* nothing to do */
413+ __dma_page_dev_to_cpu(dma_to_page(dev, handle), handle & ~PAGE_MASK,
414+ size, dir);
376415 }
377416 #endif /* CONFIG_DMABOUNCE */
378417
@@ -400,7 +439,10 @@ static inline void dma_sync_single_range_for_cpu(struct device *dev, · 21 unmodified lines
400439 {
401440 BUG_ON(!valid_dma_direction(dir));
402441
403− dmabounce_sync_for_cpu(dev, handle, offset, size, dir);
442+ if (!dmabounce_sync_for_cpu(dev, handle, offset, size, dir))
443+ return;
444+
445+ __dma_single_dev_to_cpu(dma_to_virt(dev, handle) + offset, size, dir);
404446 }
405447
406448 static inline void dma_sync_single_range_for_device(struct device *dev,
@@ -412,8 +454,7 @@ static inline void dma_sync_single_range_for_device(struct device *dev, · 5 unmodified lines
412454 if (!dmabounce_sync_for_device(dev, handle, offset, size, dir))
413455 return;
414456
415− if (!arch_is_coherent())
416− dma_cache_maint(dma_to_virt(dev, handle) + offset, size, dir);
457+ __dma_single_cpu_to_dev(dma_to_virt(dev, handle) + offset, size, dir);
417458 }
418459
419460 static inline void dma_sync_single_for_cpu(struct device *dev,
arch/arm/include/asm/io.h+9−2
@@ -69,9 +69,16 @@ extern void __raw_readsl(const void __iomem *addr, void *data, int longlen); · 68 unmodified lines
6969 /*
7070 * __arm_ioremap takes CPU physical address.
7171 * __arm_ioremap_pfn takes a Page Frame Number and an offset into that page
72+ * The _caller variety takes a __builtin_return_address(0) value for
73+ * /proc/vmalloc to use - and should only be used in non-inline functions.
7274 */
73−extern void __iomem * __arm_ioremap_pfn(unsigned long, unsigned long, size_t, unsigned int);
74−extern void __iomem * __arm_ioremap(unsigned long, size_t, unsigned int);
75+extern void __iomem *__arm_ioremap_pfn_caller(unsigned long, unsigned long,
76+ size_t, unsigned int, void *);
77+extern void __iomem *__arm_ioremap_caller(unsigned long, size_t, unsigned int,
78+ void *);
79+
80+extern void __iomem *__arm_ioremap_pfn(unsigned long, unsigned long, size_t, unsigned int);
81+extern void __iomem *__arm_ioremap(unsigned long, size_t, unsigned int);
7582 extern void __iounmap(volatile void __iomem *addr);
7683
7784 /*
arch/arm/include/asm/mach/time.h+0−8
@@ -46,12 +46,4 @@ struct sys_timer { · 45 unmodified lines
4646 extern struct sys_timer *system_timer;
4747 extern void timer_tick(void);
4848
49−/*
50− * Kernel time keeping support.
51− */
52−struct timespec;
53−extern int (*set_rtc)(void);
54−extern void save_time_delta(struct timespec *delta, struct timespec *rtc);
55−extern void restore_time_delta(struct timespec *delta, struct timespec *rtc);
56−
5749 #endif
arch/arm/include/asm/memory.h+13−10
@@ -76,6 +76,17 @@ · 75 unmodified lines
7676 */
7777 #define IOREMAP_MAX_ORDER 24
7878
79+/*
80+ * Size of DMA-consistent memory region. Must be multiple of 2M,
81+ * between 2MB and 14MB inclusive.
82+ */
83+#ifndef CONSISTENT_DMA_SIZE
84+#define CONSISTENT_DMA_SIZE SZ_2M
85+#endif
86+
87+#define CONSISTENT_END (0xffe00000UL)
88+#define CONSISTENT_BASE (CONSISTENT_END - CONSISTENT_DMA_SIZE)
89+
7990 #else /* CONFIG_MMU */
8091
8192 /*
@@ -93,11 +104,11 @@ · 11 unmodified lines
93104 #endif
94105
95106 #ifndef PHYS_OFFSET
96−#define PHYS_OFFSET (CONFIG_DRAM_BASE)
107+#define PHYS_OFFSET UL(CONFIG_DRAM_BASE)
97108 #endif
98109
99110 #ifndef END_MEM
100−#define END_MEM (CONFIG_DRAM_BASE + CONFIG_DRAM_SIZE)
111+#define END_MEM (UL(CONFIG_DRAM_BASE) + CONFIG_DRAM_SIZE)
101112 #endif
102113
103114 #ifndef PAGE_OFFSET
@@ -112,14 +123,6 @@ · 8 unmodified lines
112123
113124 #endif /* !CONFIG_MMU */
114125
115−/*
116− * Size of DMA-consistent memory region. Must be multiple of 2M,
117− * between 2MB and 14MB inclusive.
118− */
119−#ifndef CONSISTENT_DMA_SIZE
120−#define CONSISTENT_DMA_SIZE SZ_2M
121−#endif
122−
123126 /*
124127 * Physical vs virtual RAM address space conversion. These are
125128 * private definitions which should NOT be used outside memory.h
arch/arm/include/asm/mmu.h+1−0
@@ -6,6 +6,7 @@ · 5 unmodified lines
66 typedef struct {
77 #ifdef CONFIG_CPU_HAS_ASID
88 unsigned int id;
9+ spinlock_t id_lock;
910 #endif
1011 unsigned int kvm_seq;
1112 } mm_context_t;
arch/arm/include/asm/mmu_context.h+15−0
@@ -43,12 +43,23 @@ void __check_kvm_seq(struct mm_struct *mm); · 42 unmodified lines
4343 #define ASID_FIRST_VERSION (1 << ASID_BITS)
4444
4545 extern unsigned int cpu_last_asid;
46+#ifdef CONFIG_SMP
47+DECLARE_PER_CPU(struct mm_struct *, current_mm);
48+#endif
4649
4750 void __init_new_context(struct task_struct *tsk, struct mm_struct *mm);
4851 void __new_context(struct mm_struct *mm);
4952
5053 static inline void check_context(struct mm_struct *mm)
5154 {
55+ /*
56+ * This code is executed with interrupts enabled. Therefore,
57+ * mm->context.id cannot be updated to the latest ASID version
58+ * on a different CPU (and condition below not triggered)
59+ * without first getting an IPI to reset the context. The
60+ * alternative is to take a read_lock on mm->context.id_lock
61+ * (after changing its type to rwlock_t).
62+ */
5263 if (unlikely((mm->context.id ^ cpu_last_asid) >> ASID_BITS))
5364 __new_context(mm);
5465
@@ -108,6 +119,10 @@ switch_mm(struct mm_struct *prev, struct mm_struct *next, · 53 unmodified lines
108119 __flush_icache_all();
109120 #endif
110121 if (!cpumask_test_and_set_cpu(cpu, mm_cpumask(next)) || prev != next) {
122+#ifdef CONFIG_SMP
123+ struct mm_struct **crt_mm = &per_cpu(current_mm, cpu);
124+ *crt_mm = next;
125+#endif
111126 check_context(next);
112127 cpu_switch_mm(next->pgd, next);
113128 if (cache_is_vivt())
arch/arm/include/asm/page.h+4−3
@@ -117,11 +117,12 @@ · 116 unmodified lines
117117 #endif
118118
119119 struct page;
120+struct vm_area_struct;
120121
121122 struct cpu_user_fns {
122123 void (*cpu_clear_user_highpage)(struct page *page, unsigned long vaddr);
123124 void (*cpu_copy_user_highpage)(struct page *to, struct page *from,
124− unsigned long vaddr);
125+ unsigned long vaddr, struct vm_area_struct *vma);
125126 };
126127
127128 #ifdef MULTI_USER
@@ -137,7 +138,7 @@ extern struct cpu_user_fns cpu_user; · 9 unmodified lines
137138
138139 extern void __cpu_clear_user_highpage(struct page *page, unsigned long vaddr);
139140 extern void __cpu_copy_user_highpage(struct page *to, struct page *from,
140− unsigned long vaddr);
141+ unsigned long vaddr, struct vm_area_struct *vma);
141142 #endif
142143
143144 #define clear_user_highpage(page,vaddr) \
@@ -145,7 +146,7 @@ extern void __cpu_copy_user_highpage(struct page *to, struct page *from, · 1 unmodified line
145146
146147 #define __HAVE_ARCH_COPY_USER_HIGHPAGE
147148 #define copy_user_highpage(to,from,vaddr,vma) \
148− __cpu_copy_user_highpage(to, from, vaddr)
149+ __cpu_copy_user_highpage(to, from, vaddr, vma)
149150
150151 #define clear_page(page) memset((void *)(page), 0, PAGE_SIZE)
151152 extern void copy_page(void *to, const void *from);
arch/arm/include/asm/perf_event.h+31−0
@@ -0,0 +1,31 @@
1+/*
2+ * linux/arch/arm/include/asm/perf_event.h
3+ *
4+ * Copyright (C) 2009 picoChip Designs Ltd, Jamie Iles
5+ *
6+ * This program is free software; you can redistribute it and/or modify
7+ * it under the terms of the GNU General Public License version 2 as
8+ * published by the Free Software Foundation.
9+ *
10+ */
11+
12+#ifndef __ARM_PERF_EVENT_H__
13+#define __ARM_PERF_EVENT_H__
14+
15+/*
16+ * NOP: on *most* (read: all supported) ARM platforms, the performance
17+ * counter interrupts are regular interrupts and not an NMI. This
18+ * means that when we receive the interrupt we can call
19+ * perf_event_do_pending() that handles all of the work with
20+ * interrupts enabled.
21+ */
22+static inline void
23+set_perf_event_pending(void)
24+{
25+}
26+
27+/* ARM performance counters start from 1 (in the cp15 accesses) so use the
28+ * same indexes here for consistency. */
29+#define PERF_EVENT_INDEX_OFFSET 1
30+
31+#endif /* __ARM_PERF_EVENT_H__ */
arch/arm/include/asm/pgtable-nommu.h+2−2
@@ -86,8 +86,8 @@ extern unsigned int kobjsize(const void *objp); · 85 unmodified lines
8686 * All 32bit addresses are effectively valid for vmalloc...
8787 * Sort of meaningless for non-VM targets.
8888 */
89−#define VMALLOC_START 0
90−#define VMALLOC_END 0xffffffff
89+#define VMALLOC_START 0UL
90+#define VMALLOC_END 0xffffffffUL
9191
9292 #define FIRST_USER_ADDRESS (0)
9393
arch/arm/include/asm/pmu.h+75−0
@@ -0,0 +1,75 @@
1+/*
2+ * linux/arch/arm/include/asm/pmu.h
3+ *
4+ * Copyright (C) 2009 picoChip Designs Ltd, Jamie Iles
5+ *
6+ * This program is free software; you can redistribute it and/or modify
7+ * it under the terms of the GNU General Public License version 2 as
8+ * published by the Free Software Foundation.
9+ *
10+ */
11+
12+#ifndef __ARM_PMU_H__
13+#define __ARM_PMU_H__
14+
15+#ifdef CONFIG_CPU_HAS_PMU
16+
17+struct pmu_irqs {
18+ const int *irqs;
19+ int num_irqs;
20+};
21+
22+/**
23+ * reserve_pmu() - reserve the hardware performance counters
24+ *
25+ * Reserve the hardware performance counters in the system for exclusive use.
26+ * The 'struct pmu_irqs' for the system is returned on success, ERR_PTR()
27+ * encoded error on failure.
28+ */
29+extern const struct pmu_irqs *
30+reserve_pmu(void);
31+
32+/**
33+ * release_pmu() - Relinquish control of the performance counters
34+ *
35+ * Release the performance counters and allow someone else to use them.
36+ * Callers must have disabled the counters and released IRQs before calling
37+ * this. The 'struct pmu_irqs' returned from reserve_pmu() must be passed as
38+ * a cookie.
39+ */
40+extern int
41+release_pmu(const struct pmu_irqs *irqs);
42+
43+/**
44+ * init_pmu() - Initialise the PMU.
45+ *
46+ * Initialise the system ready for PMU enabling. This should typically set the
47+ * IRQ affinity and nothing else. The users (oprofile/perf events etc) will do
48+ * the actual hardware initialisation.
49+ */
50+extern int
51+init_pmu(void);
52+
53+#else /* CONFIG_CPU_HAS_PMU */
54+
55+static inline const struct pmu_irqs *
56+reserve_pmu(void)
57+{
58+ return ERR_PTR(-ENODEV);
59+}
60+
61+static inline int
62+release_pmu(const struct pmu_irqs *irqs)
63+{
64+ return -ENODEV;
65+}
66+
67+static inline int
68+init_pmu(void)
69+{
70+ return -ENODEV;
71+}
72+
73+#endif /* CONFIG_CPU_HAS_PMU */
74+
75+#endif /* __ARM_PMU_H__ */
arch/arm/include/asm/setup.h+0−12
@@ -223,18 +223,6 @@ extern struct meminfo meminfo; · 222 unmodified lines
223223 #define bank_phys_end(bank) ((bank)->start + (bank)->size)
224224 #define bank_phys_size(bank) (bank)->size
225225
226−/*
227− * Early command line parameters.
228− */
229−struct early_params {
230− const char *arg;
231− void (*fn)(char **p);
232−};
233−
234−#define __early_param(name,fn) \
235−static struct early_params __early_##fn __used \
236−__attribute__((__section__(".early_param.init"))) = { name, fn }
237−
238226 #endif /* __KERNEL__ */
239227
240228 #endif
arch/arm/include/asm/smp_plat.h+5−0
@@ -13,4 +13,9 @@ static inline int tlb_ops_need_broadcast(void) · 12 unmodified lines
1313 return ((read_cpuid_ext(CPUID_EXT_MMFR3) >> 12) & 0xf) < 2;
1414 }
1515
16+static inline int cache_ops_need_broadcast(void)
17+{
18+ return ((read_cpuid_ext(CPUID_EXT_MMFR3) >> 12) & 0xf) < 1;
19+}
20+
1621 #endif
arch/arm/include/asm/spinlock.h+23−13
@@ -5,6 +5,22 @@ · 4 unmodified lines
55 #error SMP not supported on pre-ARMv6 CPUs
66 #endif
77
8+static inline void dsb_sev(void)
9+{
10+#if __LINUX_ARM_ARCH__ >= 7
11+ __asm__ __volatile__ (
12+ "dsb\n"
13+ "sev"
14+ );
15+#elif defined(CONFIG_CPU_32v6K)
16+ __asm__ __volatile__ (
17+ "mcr p15, 0, %0, c7, c10, 4\n"
18+ "sev"
19+ : : "r" (0)
20+ );
21+#endif
22+}
23+
824 /*
925 * ARMv6 Spin-locking.
1026 *
@@ -69,13 +85,11 @@ static inline void arch_spin_unlock(arch_spinlock_t *lock) · 58 unmodified lines
6985
7086 __asm__ __volatile__(
7187 " str %1, [%0]\n"
72−#ifdef CONFIG_CPU_32v6K
73−" mcr p15, 0, %1, c7, c10, 4\n" /* DSB */
74−" sev"
75−#endif
7688 :
7789 : "r" (&lock->lock), "r" (0)
7890 : "cc");
91+
92+ dsb_sev();
7993 }
8094
8195 /*
@@ -132,13 +146,11 @@ static inline void arch_write_unlock(arch_rwlock_t *rw) · 50 unmodified lines
132146
133147 __asm__ __volatile__(
134148 "str %1, [%0]\n"
135−#ifdef CONFIG_CPU_32v6K
136−" mcr p15, 0, %1, c7, c10, 4\n" /* DSB */
137−" sev\n"
138−#endif
139149 :
140150 : "r" (&rw->lock), "r" (0)
141151 : "cc");
152+
153+ dsb_sev();
142154 }
143155
144156 /* write_can_lock - would write_trylock() succeed? */
@@ -188,14 +200,12 @@ static inline void arch_read_unlock(arch_rwlock_t *rw) · 43 unmodified lines
188200 " strex %1, %0, [%2]\n"
189201 " teq %1, #0\n"
190202 " bne 1b"
191−#ifdef CONFIG_CPU_32v6K
192−"\n cmp %0, #0\n"
193−" mcreq p15, 0, %0, c7, c10, 4\n"
194−" seveq"
195−#endif
196203 : "=&r" (tmp), "=&r" (tmp2)
197204 : "r" (&rw->lock)
198205 : "cc");
206+
207+ if (tmp == 0)
208+ dsb_sev();
199209 }
200210
201211 static inline int arch_read_trylock(arch_rwlock_t *rw)
arch/arm/include/asm/system.h+1−2
@@ -73,8 +73,7 @@ extern unsigned int mem_fclk_21285; · 72 unmodified lines
7373
7474 struct pt_regs;
7575
76−void die(const char *msg, struct pt_regs *regs, int err)
77− __attribute__((noreturn));
76+void die(const char *msg, struct pt_regs *regs, int err);
7877
7978 struct siginfo;
8079 void arm_notify_die(const char *str, struct pt_regs *regs, struct siginfo *info,
arch/arm/include/asm/thread_info.h+2−1
@@ -115,7 +115,8 @@ extern void iwmmxt_task_restore(struct thread_info *, void *); · 114 unmodified lines
115115 extern void iwmmxt_task_release(struct thread_info *);
116116 extern void iwmmxt_task_switch(struct thread_info *);
117117
118−extern void vfp_sync_state(struct thread_info *thread);
118+extern void vfp_sync_hwstate(struct thread_info *);
119+extern void vfp_flush_hwstate(struct thread_info *);
119120
120121 #endif
121122
arch/arm/include/asm/tlbflush.h+2−1
@@ -529,7 +529,8 @@ extern void flush_tlb_kernel_range(unsigned long start, unsigned long end); · 528 unmodified lines
529529 * cache entries for the kernels virtual memory range are written
530530 * back to the page.
531531 */
532−extern void update_mmu_cache(struct vm_area_struct *vma, unsigned long addr, pte_t pte);
532+extern void update_mmu_cache(struct vm_area_struct *vma, unsigned long addr,
533+ pte_t *ptep);
533534
534535 #endif
535536
arch/arm/kernel/Makefile+3−0
@@ -17,6 +17,7 @@ obj-y := compat.o elf.o entry-armv.o entry-common.o irq.o \ · 16 unmodified lines
1717 process.o ptrace.o return_address.o setup.o signal.o \
1818 sys_arm.o stacktrace.o time.o traps.o
1919
20+obj-$(CONFIG_LEDS) += leds.o
2021 obj-$(CONFIG_OC_ETM) += etm.o
2122
2223 obj-$(CONFIG_ISA_DMA_API) += dma.o
@@ -46,6 +47,8 @@ obj-$(CONFIG_CPU_XSCALE) += xscale-cp0.o · 23 unmodified lines
4647 obj-$(CONFIG_CPU_XSC3) += xscale-cp0.o
4748 obj-$(CONFIG_CPU_MOHAWK) += xscale-cp0.o
4849 obj-$(CONFIG_IWMMXT) += iwmmxt.o
50+obj-$(CONFIG_CPU_HAS_PMU) += pmu.o
51+obj-$(CONFIG_HW_PERF_EVENTS) += perf_event.o
4952 AFLAGS_iwmmxt.o := -Wa,-mcpu=iwmmxt
5053
5154 ifneq ($(CONFIG_ARCH_EBSA110),y)
arch/arm/kernel/asm-offsets.c+5−0
@@ -12,6 +12,7 @@ · 11 unmodified lines
1212 */
1313 #include <linux/sched.h>
1414 #include <linux/mm.h>
15+#include <linux/dma-mapping.h>
1516 #include <asm/mach/arch.h>
1617 #include <asm/thread_info.h>
1718 #include <asm/memory.h>
@@ -112,5 +113,9 @@ int main(void) · 94 unmodified lines
112113 #ifdef MULTI_PABORT
113114 DEFINE(PROCESSOR_PABT_FUNC, offsetof(struct processor, _prefetch_abort));
114115 #endif
116+ BLANK();
117+ DEFINE(DMA_BIDIRECTIONAL, DMA_BIDIRECTIONAL);
118+ DEFINE(DMA_TO_DEVICE, DMA_TO_DEVICE);
119+ DEFINE(DMA_FROM_DEVICE, DMA_FROM_DEVICE);
115120 return 0;
116121 }
arch/arm/kernel/bios32.c+5−3
@@ -616,15 +616,17 @@ char * __init pcibios_setup(char *str) · 615 unmodified lines
616616 * but we want to try to avoid allocating at 0x2900-0x2bff
617617 * which might be mirrored at 0x0100-0x03ff..
618618 */
619−void pcibios_align_resource(void *data, struct resource *res,
620− resource_size_t size, resource_size_t align)
619+resource_size_t pcibios_align_resource(void *data, const struct resource *res,
620+ resource_size_t size, resource_size_t align)
621621 {
622622 resource_size_t start = res->start;
623623
624624 if (res->flags & IORESOURCE_IO && start & 0x300)
625625 start = (start + 0x3ff) & ~0x3ff;
626626
627− res->start = (start + align - 1) & ~(align - 1);
627+ start = (start + align - 1) & ~(align - 1);
628+
629+ return start;
628630 }
629631
630632 /**
arch/arm/kernel/debug.S+6−6
@@ -24,7 +24,7 @@ · 23 unmodified lines
2424
2525 #if defined(CONFIG_CPU_V6)
2626
27− .macro addruart, rx
27+ .macro addruart, rx, tmp
2828 .endm
2929
3030 .macro senduart, rd, rx
@@ -51,7 +51,7 @@ · 20 unmodified lines
5151
5252 #elif defined(CONFIG_CPU_V7)
5353
54− .macro addruart, rx
54+ .macro addruart, rx, tmp
5555 .endm
5656
5757 .macro senduart, rd, rx
@@ -71,7 +71,7 @@ wait: mrc p14, 0, pc, c0, c1, 0 · 13 unmodified lines
7171
7272 #elif defined(CONFIG_CPU_XSCALE)
7373
74− .macro addruart, rx
74+ .macro addruart, rx, tmp
7575 .endm
7676
7777 .macro senduart, rd, rx
@@ -98,7 +98,7 @@ wait: mrc p14, 0, pc, c0, c1, 0 · 20 unmodified lines
9898
9999 #else
100100
101− .macro addruart, rx
101+ .macro addruart, rx, tmp
102102 .endm
103103
104104 .macro senduart, rd, rx
@@ -164,7 +164,7 @@ ENDPROC(printhex2) · 59 unmodified lines
164164 .ltorg
165165
166166 ENTRY(printascii)
167− addruart r3
167+ addruart r3, r1
168168 b 2f
169169 1: waituart r2, r3
170170 senduart r1, r3
@@ -180,7 +180,7 @@ ENTRY(printascii) · 9 unmodified lines
180180 ENDPROC(printascii)
181181
182182 ENTRY(printch)
183− addruart r3
183+ addruart r3, r1
184184 mov r1, r0
185185 mov r0, #0
186186 b 1b
arch/arm/kernel/leds.c+115−0
@@ -0,0 +1,115 @@
1+/*
2+ * LED support code, ripped out of arch/arm/kernel/time.c
3+ *
4+ * Copyright (C) 1994-2001 Russell King
5+ *
6+ * This program is free software; you can redistribute it and/or modify
7+ * it under the terms of the GNU General Public License version 2 as
8+ * published by the Free Software Foundation.
9+ */
10+#include <linux/module.h>
11+#include <linux/init.h>
12+#include <linux/sysdev.h>
13+
14+#include <asm/leds.h>
15+
16+static void dummy_leds_event(led_event_t evt)
17+{
18+}
19+
20+void (*leds_event)(led_event_t) = dummy_leds_event;
21+
22+struct leds_evt_name {
23+ const char name[8];
24+ int on;
25+ int off;
26+};
27+
28+static const struct leds_evt_name evt_names[] = {
29+ { "amber", led_amber_on, led_amber_off },
30+ { "blue", led_blue_on, led_blue_off },
31+ { "green", led_green_on, led_green_off },
32+ { "red", led_red_on, led_red_off },
33+};
34+
35+static ssize_t leds_store(struct sys_device *dev,
36+ struct sysdev_attribute *attr,
37+ const char *buf, size_t size)
38+{
39+ int ret = -EINVAL, len = strcspn(buf, " ");
40+
41+ if (len > 0 && buf[len] == '\0')
42+ len--;
43+
44+ if (strncmp(buf, "claim", len) == 0) {
45+ leds_event(led_claim);
46+ ret = size;
47+ } else if (strncmp(buf, "release", len) == 0) {
48+ leds_event(led_release);
49+ ret = size;
50+ } else {
51+ int i;
52+
53+ for (i = 0; i < ARRAY_SIZE(evt_names); i++) {
54+ if (strlen(evt_names[i].name) != len ||
55+ strncmp(buf, evt_names[i].name, len) != 0)
56+ continue;
57+ if (strncmp(buf+len, " on", 3) == 0) {
58+ leds_event(evt_names[i].on);
59+ ret = size;
60+ } else if (strncmp(buf+len, " off", 4) == 0) {
61+ leds_event(evt_names[i].off);
62+ ret = size;
63+ }
64+ break;
65+ }
66+ }
67+ return ret;
68+}
69+
70+static SYSDEV_ATTR(event, 0200, NULL, leds_store);
71+
72+static int leds_suspend(struct sys_device *dev, pm_message_t state)
73+{
74+ leds_event(led_stop);
75+ return 0;
76+}
77+
78+static int leds_resume(struct sys_device *dev)
79+{
80+ leds_event(led_start);
81+ return 0;
82+}
83+
84+static int leds_shutdown(struct sys_device *dev)
85+{
86+ leds_event(led_halted);
87+ return 0;
88+}
89+
90+static struct sysdev_class leds_sysclass = {
91+ .name = "leds",
92+ .shutdown = leds_shutdown,
93+ .suspend = leds_suspend,
94+ .resume = leds_resume,
95+};
96+
97+static struct sys_device leds_device = {
98+ .id = 0,
99+ .cls = &leds_sysclass,
100+};
101+
102+static int __init leds_init(void)
103+{
104+ int ret;
105+ ret = sysdev_class_register(&leds_sysclass);
106+ if (ret == 0)
107+ ret = sysdev_register(&leds_device);
108+ if (ret == 0)
109+ ret = sysdev_create_file(&leds_device, &attr_event);
110+ return ret;
111+}
112+
113+device_initcall(leds_init);
114+
115+EXPORT_SYMBOL(leds_event);
arch/arm/kernel/perf_event.c+2276−0
@@ -0,0 +1,2276 @@
1+#undef DEBUG
2+
3+/*
4+ * ARM performance counter support.
5+ *
6+ * Copyright (C) 2009 picoChip Designs, Ltd., Jamie Iles
7+ *
8+ * ARMv7 support: Jean Pihet <jpihet@mvista.com>
9+ * 2010 (c) MontaVista Software, LLC.
10+ *
11+ * 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 backtrace
13+ * code.
14+ */
15+#define pr_fmt(fmt) "hw perfevents: " fmt
16+
17+#include <linux/interrupt.h>
18+#include <linux/kernel.h>
19+#include <linux/perf_event.h>
20+#include <linux/spinlock.h>
21+#include <linux/uaccess.h>
22+
23+#include <asm/cputype.h>
24+#include <asm/irq.h>
25+#include <asm/irq_regs.h>
26+#include <asm/pmu.h>
27+#include <asm/stacktrace.h>
28+
29+static const struct pmu_irqs *pmu_irqs;
30+
31+/*
32+ * Hardware lock to serialize accesses to PMU registers. Needed for the
33+ * read/modify/write sequences.
34+ */
35+DEFINE_SPINLOCK(pmu_lock);
36+
37+/*
38+ * ARMv6 supports a maximum of 3 events, starting from index 1. If we add
39+ * another platform that supports more, we need to increase this to be the
40+ * largest of all platforms.
41+ *
42+ * ARMv7 supports up to 32 events:
43+ * cycle counter CCNT + 31 events counters CNT0..30.
44+ * Cortex-A8 has 1+4 counters, Cortex-A9 has 1+6 counters.
45+ */
46+#define ARMPMU_MAX_HWEVENTS 33
47+
48+/* The events for a given CPU. */
49+struct cpu_hw_events {
50+ /*
51+ * The events that are active on the CPU for the given index. Index 0
52+ * is reserved.
53+ */
54+ struct perf_event *events[ARMPMU_MAX_HWEVENTS];
55+
56+ /*
57+ * A 1 bit for an index indicates that the counter is being used for
58+ * an event. A 0 means that the counter can be used.
59+ */
60+ unsigned long used_mask[BITS_TO_LONGS(ARMPMU_MAX_HWEVENTS)];
61+
62+ /*
63+ * A 1 bit for an index indicates that the counter is actively being
64+ * used.
65+ */
66+ unsigned long active_mask[BITS_TO_LONGS(ARMPMU_MAX_HWEVENTS)];
67+};
68+DEFINE_PER_CPU(struct cpu_hw_events, cpu_hw_events);
69+
70+struct arm_pmu {
71+ char *name;
72+ irqreturn_t (*handle_irq)(int irq_num, void *dev);
73+ void (*enable)(struct hw_perf_event *evt, int idx);
74+ void (*disable)(struct hw_perf_event *evt, int idx);
75+ int (*event_map)(int evt);
76+ u64 (*raw_event)(u64);
77+ int (*get_event_idx)(struct cpu_hw_events *cpuc,
78+ struct hw_perf_event *hwc);
79+ u32 (*read_counter)(int idx);
80+ void (*write_counter)(int idx, u32 val);
81+ void (*start)(void);
82+ void (*stop)(void);
83+ int num_events;
84+ u64 max_period;
85+};
86+
87+/* Set at runtime when we know what CPU type we are. */
88+static const struct arm_pmu *armpmu;
89+
90+#define HW_OP_UNSUPPORTED 0xFFFF
91+
92+#define C(_x) \
93+ PERF_COUNT_HW_CACHE_##_x
94+
95+#define CACHE_OP_UNSUPPORTED 0xFFFF
96+
97+static unsigned armpmu_perf_cache_map[PERF_COUNT_HW_CACHE_MAX]
98+ [PERF_COUNT_HW_CACHE_OP_MAX]
99+ [PERF_COUNT_HW_CACHE_RESULT_MAX];
100+
101+static int
102+armpmu_map_cache_event(u64 config)
103+{
104+ unsigned int cache_type, cache_op, cache_result, ret;
105+
106+ cache_type = (config >> 0) & 0xff;
107+ if (cache_type >= PERF_COUNT_HW_CACHE_MAX)
108+ return -EINVAL;
109+
110+ cache_op = (config >> 8) & 0xff;
111+ if (cache_op >= PERF_COUNT_HW_CACHE_OP_MAX)
112+ return -EINVAL;
113+
114+ cache_result = (config >> 16) & 0xff;
115+ if (cache_result >= PERF_COUNT_HW_CACHE_RESULT_MAX)
116+ return -EINVAL;
117+
118+ ret = (int)armpmu_perf_cache_map[cache_type][cache_op][cache_result];
119+
120+ if (ret == CACHE_OP_UNSUPPORTED)
121+ return -ENOENT;
122+
123+ return ret;
124+}
125+
126+static int
127+armpmu_event_set_period(struct perf_event *event,
128+ struct hw_perf_event *hwc,
129+ int idx)
130+{
131+ s64 left = atomic64_read(&hwc->period_left);
132+ s64 period = hwc->sample_period;
133+ int ret = 0;
134+
135+ if (unlikely(left <= -period)) {
136+ left = period;
137+ atomic64_set(&hwc->period_left, left);
138+ hwc->last_period = period;
139+ ret = 1;
140+ }
141+
142+ if (unlikely(left <= 0)) {
143+ left += period;
144+ atomic64_set(&hwc->period_left, left);
145+ hwc->last_period = period;
146+ ret = 1;
147+ }
148+
149+ if (left > (s64)armpmu->max_period)
150+ left = armpmu->max_period;
151+
152+ atomic64_set(&hwc->prev_count, (u64)-left);
153+
154+ armpmu->write_counter(idx, (u64)(-left) & 0xffffffff);
155+
156+ perf_event_update_userpage(event);
157+
158+ return ret;
159+}
160+
161+static u64
162+armpmu_event_update(struct perf_event *event,
163+ struct hw_perf_event *hwc,
164+ int idx)
165+{
166+ int shift = 64 - 32;
167+ s64 prev_raw_count, new_raw_count;
168+ s64 delta;
169+
170+again:
171+ prev_raw_count = atomic64_read(&hwc->prev_count);
172+ new_raw_count = armpmu->read_counter(idx);
173+
174+ if (atomic64_cmpxchg(&hwc->prev_count, prev_raw_count,
175+ new_raw_count) != prev_raw_count)
176+ goto again;
177+
178+ delta = (new_raw_count << shift) - (prev_raw_count << shift);
179+ delta >>= shift;
180+
181+ atomic64_add(delta, &event->count);
182+ atomic64_sub(delta, &hwc->period_left);
183+
184+ return new_raw_count;
185+}
186+
187+static void
188+armpmu_disable(struct perf_event *event)
189+{
190+ struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events);
191+ struct hw_perf_event *hwc = &event->hw;
192+ int idx = hwc->idx;
193+
194+ WARN_ON(idx < 0);
195+
196+ clear_bit(idx, cpuc->active_mask);
197+ armpmu->disable(hwc, idx);
198+
199+ barrier();
200+
201+ armpmu_event_update(event, hwc, idx);
202+ cpuc->events[idx] = NULL;
203+ clear_bit(idx, cpuc->used_mask);
204+
205+ perf_event_update_userpage(event);
206+}
207+
208+static void
209+armpmu_read(struct perf_event *event)
210+{
211+ struct hw_perf_event *hwc = &event->hw;
212+
213+ /* Don't read disabled counters! */
214+ if (hwc->idx < 0)
215+ return;
216+
217+ armpmu_event_update(event, hwc, hwc->idx);
218+}
219+
220+static void
221+armpmu_unthrottle(struct perf_event *event)
222+{
223+ struct hw_perf_event *hwc = &event->hw;
224+
225+ /*
226+ * Set the period again. Some counters can't be stopped, so when we
227+ * were throttled we simply disabled the IRQ source and the counter
228+ * may have been left counting. If we don't do this step then we may
229+ * get an interrupt too soon or *way* too late if the overflow has
230+ * happened since disabling.
231+ */
232+ armpmu_event_set_period(event, hwc, hwc->idx);
233+ armpmu->enable(hwc, hwc->idx);
234+}
235+
236+static int
237+armpmu_enable(struct perf_event *event)
238+{
239+ struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events);
240+ struct hw_perf_event *hwc = &event->hw;
241+ int idx;
242+ int err = 0;
243+
244+ /* If we don't have a space for the counter then finish early. */
245+ idx = armpmu->get_event_idx(cpuc, hwc);
246+ if (idx < 0) {
247+ err = idx;
248+ goto out;
249+ }
250+
251+ /*
252+ * If there is an event in the counter we are going to use then make
253+ * sure it is disabled.
254+ */
255+ event->hw.idx = idx;
256+ armpmu->disable(hwc, idx);
257+ cpuc->events[idx] = event;
258+ set_bit(idx, cpuc->active_mask);
259+
260+ /* Set the period for the event. */
261+ armpmu_event_set_period(event, hwc, idx);
262+
263+ /* Enable the event. */
264+ armpmu->enable(hwc, idx);
265+
266+ /* Propagate our changes to the userspace mapping. */
267+ perf_event_update_userpage(event);
268+
269+out:
270+ return err;
271+}
272+
273+static struct pmu pmu = {
274+ .enable = armpmu_enable,
275+ .disable = armpmu_disable,
276+ .unthrottle = armpmu_unthrottle,
277+ .read = armpmu_read,
278+};
279+
280+static int
281+validate_event(struct cpu_hw_events *cpuc,
282+ struct perf_event *event)
283+{
284+ struct hw_perf_event fake_event = event->hw;
285+
286+ if (event->pmu && event->pmu != &pmu)
287+ return 0;
288+
289+ return armpmu->get_event_idx(cpuc, &fake_event) >= 0;
290+}
291+
292+static int
293+validate_group(struct perf_event *event)
294+{
295+ struct perf_event *sibling, *leader = event->group_leader;
296+ struct cpu_hw_events fake_pmu;
297+
298+ memset(&fake_pmu, 0, sizeof(fake_pmu));
299+
300+ if (!validate_event(&fake_pmu, leader))
301+ return -ENOSPC;
302+
303+ list_for_each_entry(sibling, &leader->sibling_list, group_entry) {
304+ if (!validate_event(&fake_pmu, sibling))
305+ return -ENOSPC;
306+ }
307+
308+ if (!validate_event(&fake_pmu, event))
309+ return -ENOSPC;
310+
311+ return 0;
312+}
313+
314+static int
315+armpmu_reserve_hardware(void)
316+{
317+ int i;
318+ int err;
319+
320+ pmu_irqs = reserve_pmu();
321+ if (IS_ERR(pmu_irqs)) {
322+ pr_warning("unable to reserve pmu\n");
323+ return PTR_ERR(pmu_irqs);
324+ }
325+
326+ init_pmu();
327+
328+ if (pmu_irqs->num_irqs < 1) {
329+ pr_err("no irqs for PMUs defined\n");
330+ return -ENODEV;
331+ }
332+
333+ for (i = 0; i < pmu_irqs->num_irqs; ++i) {
334+ err = request_irq(pmu_irqs->irqs[i], armpmu->handle_irq,
335+ IRQF_DISABLED, "armpmu", NULL);
336+ if (err) {
337+ pr_warning("unable to request IRQ%d for ARM "
338+ "perf counters\n", pmu_irqs->irqs[i]);
339+ break;
340+ }
341+ }
342+
343+ if (err) {
344+ for (i = i - 1; i >= 0; --i)
345+ free_irq(pmu_irqs->irqs[i], NULL);
346+ release_pmu(pmu_irqs);
347+ pmu_irqs = NULL;
348+ }
349+
350+ return err;
351+}
352+
353+static void
354+armpmu_release_hardware(void)
355+{
356+ int i;
357+
358+ for (i = pmu_irqs->num_irqs - 1; i >= 0; --i)
359+ free_irq(pmu_irqs->irqs[i], NULL);
360+ armpmu->stop();
361+
362+ release_pmu(pmu_irqs);
363+ pmu_irqs = NULL;
364+}
365+
366+static atomic_t active_events = ATOMIC_INIT(0);
367+static DEFINE_MUTEX(pmu_reserve_mutex);
368+
369+static void
370+hw_perf_event_destroy(struct perf_event *event)
371+{
372+ if (atomic_dec_and_mutex_lock(&active_events, &pmu_reserve_mutex)) {
373+ armpmu_release_hardware();
374+ mutex_unlock(&pmu_reserve_mutex);
375+ }
376+}
377+
378+static int
379+__hw_perf_event_init(struct perf_event *event)
380+{
381+ struct hw_perf_event *hwc = &event->hw;
382+ int mapping, err;
383+
384+ /* Decode the generic type into an ARM event identifier. */
385+ if (PERF_TYPE_HARDWARE == event->attr.type) {
386+ mapping = armpmu->event_map(event->attr.config);
387+ } else if (PERF_TYPE_HW_CACHE == event->attr.type) {
388+ mapping = armpmu_map_cache_event(event->attr.config);
389+ } else if (PERF_TYPE_RAW == event->attr.type) {
390+ mapping = armpmu->raw_event(event->attr.config);
391+ } else {
392+ pr_debug("event type %x not supported\n", event->attr.type);
393+ return -EOPNOTSUPP;
394+ }
395+
396+ if (mapping < 0) {
397+ pr_debug("event %x:%llx not supported\n", event->attr.type,
398+ event->attr.config);
399+ return mapping;
400+ }
401+
402+ /*
403+ * Check whether we need to exclude the counter from certain modes.
404+ * The ARM performance counters are on all of the time so if someone
405+ * has asked us for some excludes then we have to fail.
406+ */
407+ if (event->attr.exclude_kernel || event->attr.exclude_user ||
408+ event->attr.exclude_hv || event->attr.exclude_idle) {
409+ pr_debug("ARM performance counters do not support "
410+ "mode exclusion\n");
411+ return -EPERM;
412+ }
413+
414+ /*
415+ * We don't assign an index until we actually place the event onto
416+ * hardware. Use -1 to signify that we haven't decided where to put it
417+ * yet. For SMP systems, each core has it's own PMU so we can't do any
418+ * clever allocation or constraints checking at this point.
419+ */
420+ hwc->idx = -1;
421+
422+ /*
423+ * Store the event encoding into the config_base field. config and
424+ * event_base are unused as the only 2 things we need to know are
425+ * the event mapping and the counter to use. The counter to use is
426+ * also the indx and the config_base is the event type.
427+ */
428+ hwc->config_base = (unsigned long)mapping;
429+ hwc->config = 0;
430+ hwc->event_base = 0;
431+
432+ if (!hwc->sample_period) {
433+ hwc->sample_period = armpmu->max_period;
434+ hwc->last_period = hwc->sample_period;
435+ atomic64_set(&hwc->period_left, hwc->sample_period);
436+ }
437+
438+ err = 0;
439+ if (event->group_leader != event) {
440+ err = validate_group(event);
441+ if (err)
442+ return -EINVAL;
443+ }
444+
445+ return err;
446+}
447+
448+const struct pmu *
449+hw_perf_event_init(struct perf_event *event)
450+{
451+ int err = 0;
452+
453+ if (!armpmu)
454+ return ERR_PTR(-ENODEV);
455+
456+ event->destroy = hw_perf_event_destroy;
457+
458+ if (!atomic_inc_not_zero(&active_events)) {
459+ if (atomic_read(&active_events) > perf_max_events) {
460+ atomic_dec(&active_events);
461+ return ERR_PTR(-ENOSPC);
462+ }
463+
464+ mutex_lock(&pmu_reserve_mutex);
465+ if (atomic_read(&active_events) == 0) {
466+ err = armpmu_reserve_hardware();
467+ }
468+
469+ if (!err)
470+ atomic_inc(&active_events);
471+ mutex_unlock(&pmu_reserve_mutex);
472+ }
473+
474+ if (err)
475+ return ERR_PTR(err);
476+
477+ err = __hw_perf_event_init(event);
478+ if (err)
479+ hw_perf_event_destroy(event);
480+
481+ return err ? ERR_PTR(err) : &pmu;
482+}
483+
484+void
485+hw_perf_enable(void)
486+{
487+ /* Enable all of the perf events on hardware. */
488+ int idx;
489+ struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events);
490+
491+ if (!armpmu)
492+ return;
493+
494+ for (idx = 0; idx <= armpmu->num_events; ++idx) {
495+ struct perf_event *event = cpuc->events[idx];
496+
497+ if (!event)
498+ continue;
499+
500+ armpmu->enable(&event->hw, idx);
501+ }
502+
503+ armpmu->start();
504+}
505+
506+void
507+hw_perf_disable(void)
508+{
509+ if (armpmu)
510+ armpmu->stop();
511+}
512+
513+/*
514+ * ARMv6 Performance counter handling code.
515+ *
516+ * ARMv6 has 2 configurable performance counters and a single cycle counter.
517+ * They all share a single reset bit but can be written to zero so we can use
518+ * that for a reset.
519+ *
520+ * The counters can't be individually enabled or disabled so when we remove
521+ * one event and replace it with another we could get spurious counts from the
522+ * wrong event. However, we can take advantage of the fact that the
523+ * performance counters can export events to the event bus, and the event bus
524+ * itself can be monitored. This requires that we *don't* export the events to
525+ * the event bus. The procedure for disabling a configurable counter is:
526+ * - change the counter to count the ETMEXTOUT[0] signal (0x20). This
527+ * effectively stops the counter from counting.
528+ * - disable the counter's interrupt generation (each counter has it's
529+ * own interrupt enable bit).
530+ * Once stopped, the counter value can be written as 0 to reset.
531+ *
532+ * To enable a counter:
533+ * - enable the counter's interrupt generation.
534+ * - set the new event type.
535+ *
536+ * Note: the dedicated cycle counter only counts cycles and can't be
537+ * enabled/disabled independently of the others. When we want to disable the
538+ * cycle counter, we have to just disable the interrupt reporting and start
539+ * ignoring that counter. When re-enabling, we have to reset the value and
540+ * enable the interrupt.
541+ */
542+
543+enum armv6_perf_types {
544+ ARMV6_PERFCTR_ICACHE_MISS = 0x0,
545+ ARMV6_PERFCTR_IBUF_STALL = 0x1,
546+ ARMV6_PERFCTR_DDEP_STALL = 0x2,
547+ ARMV6_PERFCTR_ITLB_MISS = 0x3,
548+ ARMV6_PERFCTR_DTLB_MISS = 0x4,
549+ ARMV6_PERFCTR_BR_EXEC = 0x5,
550+ ARMV6_PERFCTR_BR_MISPREDICT = 0x6,
551+ ARMV6_PERFCTR_INSTR_EXEC = 0x7,
552+ ARMV6_PERFCTR_DCACHE_HIT = 0x9,
553+ ARMV6_PERFCTR_DCACHE_ACCESS = 0xA,
554+ ARMV6_PERFCTR_DCACHE_MISS = 0xB,
555+ ARMV6_PERFCTR_DCACHE_WBACK = 0xC,
556+ ARMV6_PERFCTR_SW_PC_CHANGE = 0xD,
557+ ARMV6_PERFCTR_MAIN_TLB_MISS = 0xF,
558+ ARMV6_PERFCTR_EXPL_D_ACCESS = 0x10,
559+ ARMV6_PERFCTR_LSU_FULL_STALL = 0x11,
560+ ARMV6_PERFCTR_WBUF_DRAINED = 0x12,
561+ ARMV6_PERFCTR_CPU_CYCLES = 0xFF,
562+ ARMV6_PERFCTR_NOP = 0x20,
563+};
564+
565+enum armv6_counters {
566+ ARMV6_CYCLE_COUNTER = 1,
567+ ARMV6_COUNTER0,
568+ ARMV6_COUNTER1,
569+};
570+
571+/*
572+ * The hardware events that we support. We do support cache operations but
573+ * we have harvard caches and no way to combine instruction and data
574+ * accesses/misses in hardware.
575+ */
576+static const unsigned armv6_perf_map[PERF_COUNT_HW_MAX] = {
577+ [PERF_COUNT_HW_CPU_CYCLES] = ARMV6_PERFCTR_CPU_CYCLES,
578+ [PERF_COUNT_HW_INSTRUCTIONS] = ARMV6_PERFCTR_INSTR_EXEC,
579+ [PERF_COUNT_HW_CACHE_REFERENCES] = HW_OP_UNSUPPORTED,
580+ [PERF_COUNT_HW_CACHE_MISSES] = HW_OP_UNSUPPORTED,
581+ [PERF_COUNT_HW_BRANCH_INSTRUCTIONS] = ARMV6_PERFCTR_BR_EXEC,
582+ [PERF_COUNT_HW_BRANCH_MISSES] = ARMV6_PERFCTR_BR_MISPREDICT,
583+ [PERF_COUNT_HW_BUS_CYCLES] = HW_OP_UNSUPPORTED,
584+};
585+
586+static const unsigned armv6_perf_cache_map[PERF_COUNT_HW_CACHE_MAX]
587+ [PERF_COUNT_HW_CACHE_OP_MAX]
588+ [PERF_COUNT_HW_CACHE_RESULT_MAX] = {
589+ [C(L1D)] = {
590+ /*
591+ * The performance counters don't differentiate between read
592+ * and write accesses/misses so this isn't strictly correct,
593+ * but it's the best we can do. Writes and reads get
594+ * combined.
595+ */
596+ [C(OP_READ)] = {
597+ [C(RESULT_ACCESS)] = ARMV6_PERFCTR_DCACHE_ACCESS,
598+ [C(RESULT_MISS)] = ARMV6_PERFCTR_DCACHE_MISS,
599+ },
600+ [C(OP_WRITE)] = {
601+ [C(RESULT_ACCESS)] = ARMV6_PERFCTR_DCACHE_ACCESS,
602+ [C(RESULT_MISS)] = ARMV6_PERFCTR_DCACHE_MISS,
603+ },
604+ [C(OP_PREFETCH)] = {
605+ [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
606+ [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
607+ },
608+ },
609+ [C(L1I)] = {
610+ [C(OP_READ)] = {
611+ [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
612+ [C(RESULT_MISS)] = ARMV6_PERFCTR_ICACHE_MISS,
613+ },
614+ [C(OP_WRITE)] = {
615+ [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
616+ [C(RESULT_MISS)] = ARMV6_PERFCTR_ICACHE_MISS,
617+ },
618+ [C(OP_PREFETCH)] = {
619+ [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
620+ [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
621+ },
622+ },
623+ [C(LL)] = {
624+ [C(OP_READ)] = {
625+ [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
626+ [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
627+ },
628+ [C(OP_WRITE)] = {
629+ [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
630+ [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
631+ },
632+ [C(OP_PREFETCH)] = {
633+ [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
634+ [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
635+ },
636+ },
637+ [C(DTLB)] = {
638+ /*
639+ * The ARM performance counters can count micro DTLB misses,
640+ * micro ITLB misses and main TLB misses. There isn't an event
641+ * for TLB misses, so use the micro misses here and if users
642+ * want the main TLB misses they can use a raw counter.
643+ */
644+ [C(OP_READ)] = {
645+ [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
646+ [C(RESULT_MISS)] = ARMV6_PERFCTR_DTLB_MISS,
647+ },
648+ [C(OP_WRITE)] = {
649+ [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
650+ [C(RESULT_MISS)] = ARMV6_PERFCTR_DTLB_MISS,
651+ },
652+ [C(OP_PREFETCH)] = {
653+ [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
654+ [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
655+ },
656+ },
657+ [C(ITLB)] = {
658+ [C(OP_READ)] = {
659+ [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
660+ [C(RESULT_MISS)] = ARMV6_PERFCTR_ITLB_MISS,
661+ },
662+ [C(OP_WRITE)] = {
663+ [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
664+ [C(RESULT_MISS)] = ARMV6_PERFCTR_ITLB_MISS,
665+ },
666+ [C(OP_PREFETCH)] = {
667+ [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
668+ [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
669+ },
670+ },
671+ [C(BPU)] = {
672+ [C(OP_READ)] = {
673+ [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
674+ [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
675+ },
676+ [C(OP_WRITE)] = {
677+ [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
678+ [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
679+ },
680+ [C(OP_PREFETCH)] = {
681+ [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
682+ [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
683+ },
684+ },
685+};
686+
687+enum armv6mpcore_perf_types {
688+ ARMV6MPCORE_PERFCTR_ICACHE_MISS = 0x0,
689+ ARMV6MPCORE_PERFCTR_IBUF_STALL = 0x1,
690+ ARMV6MPCORE_PERFCTR_DDEP_STALL = 0x2,
691+ ARMV6MPCORE_PERFCTR_ITLB_MISS = 0x3,
692+ ARMV6MPCORE_PERFCTR_DTLB_MISS = 0x4,
693+ ARMV6MPCORE_PERFCTR_BR_EXEC = 0x5,
694+ ARMV6MPCORE_PERFCTR_BR_NOTPREDICT = 0x6,
695+ ARMV6MPCORE_PERFCTR_BR_MISPREDICT = 0x7,
696+ ARMV6MPCORE_PERFCTR_INSTR_EXEC = 0x8,
697+ ARMV6MPCORE_PERFCTR_DCACHE_RDACCESS = 0xA,
698+ ARMV6MPCORE_PERFCTR_DCACHE_RDMISS = 0xB,
699+ ARMV6MPCORE_PERFCTR_DCACHE_WRACCESS = 0xC,
700+ ARMV6MPCORE_PERFCTR_DCACHE_WRMISS = 0xD,
701+ ARMV6MPCORE_PERFCTR_DCACHE_EVICTION = 0xE,
702+ ARMV6MPCORE_PERFCTR_SW_PC_CHANGE = 0xF,
703+ ARMV6MPCORE_PERFCTR_MAIN_TLB_MISS = 0x10,
704+ ARMV6MPCORE_PERFCTR_EXPL_MEM_ACCESS = 0x11,
705+ ARMV6MPCORE_PERFCTR_LSU_FULL_STALL = 0x12,
706+ ARMV6MPCORE_PERFCTR_WBUF_DRAINED = 0x13,
707+ ARMV6MPCORE_PERFCTR_CPU_CYCLES = 0xFF,
708+};
709+
710+/*
711+ * The hardware events that we support. We do support cache operations but
712+ * we have harvard caches and no way to combine instruction and data
713+ * accesses/misses in hardware.
714+ */
715+static const unsigned armv6mpcore_perf_map[PERF_COUNT_HW_MAX] = {
716+ [PERF_COUNT_HW_CPU_CYCLES] = ARMV6MPCORE_PERFCTR_CPU_CYCLES,
717+ [PERF_COUNT_HW_INSTRUCTIONS] = ARMV6MPCORE_PERFCTR_INSTR_EXEC,
718+ [PERF_COUNT_HW_CACHE_REFERENCES] = HW_OP_UNSUPPORTED,
719+ [PERF_COUNT_HW_CACHE_MISSES] = HW_OP_UNSUPPORTED,
720+ [PERF_COUNT_HW_BRANCH_INSTRUCTIONS] = ARMV6MPCORE_PERFCTR_BR_EXEC,
721+ [PERF_COUNT_HW_BRANCH_MISSES] = ARMV6MPCORE_PERFCTR_BR_MISPREDICT,
722+ [PERF_COUNT_HW_BUS_CYCLES] = HW_OP_UNSUPPORTED,
723+};
724+
725+static const unsigned armv6mpcore_perf_cache_map[PERF_COUNT_HW_CACHE_MAX]
726+ [PERF_COUNT_HW_CACHE_OP_MAX]
727+ [PERF_COUNT_HW_CACHE_RESULT_MAX] = {
728+ [C(L1D)] = {
729+ [C(OP_READ)] = {
730+ [C(RESULT_ACCESS)] =
731+ ARMV6MPCORE_PERFCTR_DCACHE_RDACCESS,
732+ [C(RESULT_MISS)] =
733+ ARMV6MPCORE_PERFCTR_DCACHE_RDMISS,
734+ },
735+ [C(OP_WRITE)] = {
736+ [C(RESULT_ACCESS)] =
737+ ARMV6MPCORE_PERFCTR_DCACHE_WRACCESS,
738+ [C(RESULT_MISS)] =
739+ ARMV6MPCORE_PERFCTR_DCACHE_WRMISS,
740+ },
741+ [C(OP_PREFETCH)] = {
742+ [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
743+ [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
744+ },
745+ },
746+ [C(L1I)] = {
747+ [C(OP_READ)] = {
748+ [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
749+ [C(RESULT_MISS)] = ARMV6MPCORE_PERFCTR_ICACHE_MISS,
750+ },
751+ [C(OP_WRITE)] = {
752+ [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
753+ [C(RESULT_MISS)] = ARMV6MPCORE_PERFCTR_ICACHE_MISS,
754+ },
755+ [C(OP_PREFETCH)] = {
756+ [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
757+ [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
758+ },
759+ },
760+ [C(LL)] = {
761+ [C(OP_READ)] = {
762+ [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
763+ [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
764+ },
765+ [C(OP_WRITE)] = {
766+ [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
767+ [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
768+ },
769+ [C(OP_PREFETCH)] = {
770+ [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
771+ [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
772+ },
773+ },
774+ [C(DTLB)] = {
775+ /*
776+ * The ARM performance counters can count micro DTLB misses,
777+ * micro ITLB misses and main TLB misses. There isn't an event
778+ * for TLB misses, so use the micro misses here and if users
779+ * want the main TLB misses they can use a raw counter.
780+ */
781+ [C(OP_READ)] = {
782+ [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
783+ [C(RESULT_MISS)] = ARMV6MPCORE_PERFCTR_DTLB_MISS,
784+ },
785+ [C(OP_WRITE)] = {
786+ [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
787+ [C(RESULT_MISS)] = ARMV6MPCORE_PERFCTR_DTLB_MISS,
788+ },
789+ [C(OP_PREFETCH)] = {
790+ [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
791+ [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
792+ },
793+ },
794+ [C(ITLB)] = {
795+ [C(OP_READ)] = {
796+ [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
797+ [C(RESULT_MISS)] = ARMV6MPCORE_PERFCTR_ITLB_MISS,
798+ },
799+ [C(OP_WRITE)] = {
800+ [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
801+ [C(RESULT_MISS)] = ARMV6MPCORE_PERFCTR_ITLB_MISS,
802+ },
803+ [C(OP_PREFETCH)] = {
804+ [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
805+ [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
806+ },
807+ },
808+ [C(BPU)] = {
809+ [C(OP_READ)] = {
810+ [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
811+ [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
812+ },
813+ [C(OP_WRITE)] = {
814+ [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
815+ [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
816+ },
817+ [C(OP_PREFETCH)] = {
818+ [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
819+ [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
820+ },
821+ },
822+};
823+
824+static inline unsigned long
825+armv6_pmcr_read(void)
826+{
827+ u32 val;
828+ asm volatile("mrc p15, 0, %0, c15, c12, 0" : "=r"(val));
829+ return val;
830+}
831+
832+static inline void
833+armv6_pmcr_write(unsigned long val)
834+{
835+ asm volatile("mcr p15, 0, %0, c15, c12, 0" : : "r"(val));
836+}
837+
838+#define ARMV6_PMCR_ENABLE (1 << 0)
839+#define ARMV6_PMCR_CTR01_RESET (1 << 1)
840+#define ARMV6_PMCR_CCOUNT_RESET (1 << 2)
841+#define ARMV6_PMCR_CCOUNT_DIV (1 << 3)
842+#define ARMV6_PMCR_COUNT0_IEN (1 << 4)
843+#define ARMV6_PMCR_COUNT1_IEN (1 << 5)
844+#define ARMV6_PMCR_CCOUNT_IEN (1 << 6)
845+#define ARMV6_PMCR_COUNT0_OVERFLOW (1 << 8)
846+#define ARMV6_PMCR_COUNT1_OVERFLOW (1 << 9)
847+#define ARMV6_PMCR_CCOUNT_OVERFLOW (1 << 10)
848+#define ARMV6_PMCR_EVT_COUNT0_SHIFT 20
849+#define ARMV6_PMCR_EVT_COUNT0_MASK (0xFF << ARMV6_PMCR_EVT_COUNT0_SHIFT)
850+#define ARMV6_PMCR_EVT_COUNT1_SHIFT 12
851+#define ARMV6_PMCR_EVT_COUNT1_MASK (0xFF << ARMV6_PMCR_EVT_COUNT1_SHIFT)
852+
853+#define ARMV6_PMCR_OVERFLOWED_MASK \
854+ (ARMV6_PMCR_COUNT0_OVERFLOW | ARMV6_PMCR_COUNT1_OVERFLOW | \
855+ ARMV6_PMCR_CCOUNT_OVERFLOW)
856+
857+static inline int
858+armv6_pmcr_has_overflowed(unsigned long pmcr)
859+{
860+ return (pmcr & ARMV6_PMCR_OVERFLOWED_MASK);
861+}
862+
863+static inline int
864+armv6_pmcr_counter_has_overflowed(unsigned long pmcr,
865+ enum armv6_counters counter)
866+{
867+ int ret = 0;
868+
869+ if (ARMV6_CYCLE_COUNTER == counter)
870+ ret = pmcr & ARMV6_PMCR_CCOUNT_OVERFLOW;
871+ else if (ARMV6_COUNTER0 == counter)
872+ ret = pmcr & ARMV6_PMCR_COUNT0_OVERFLOW;
873+ else if (ARMV6_COUNTER1 == counter)
874+ ret = pmcr & ARMV6_PMCR_COUNT1_OVERFLOW;
875+ else
876+ WARN_ONCE(1, "invalid counter number (%d)\n", counter);
877+
878+ return ret;
879+}
880+
881+static inline u32
882+armv6pmu_read_counter(int counter)
883+{
884+ unsigned long value = 0;
885+
886+ if (ARMV6_CYCLE_COUNTER == counter)
887+ asm volatile("mrc p15, 0, %0, c15, c12, 1" : "=r"(value));
888+ else if (ARMV6_COUNTER0 == counter)
889+ asm volatile("mrc p15, 0, %0, c15, c12, 2" : "=r"(value));
890+ else if (ARMV6_COUNTER1 == counter)
891+ asm volatile("mrc p15, 0, %0, c15, c12, 3" : "=r"(value));
892+ else
893+ WARN_ONCE(1, "invalid counter number (%d)\n", counter);
894+
895+ return value;
896+}
897+
898+static inline void
899+armv6pmu_write_counter(int counter,
900+ u32 value)
901+{
902+ if (ARMV6_CYCLE_COUNTER == counter)
903+ asm volatile("mcr p15, 0, %0, c15, c12, 1" : : "r"(value));
904+ else if (ARMV6_COUNTER0 == counter)
905+ asm volatile("mcr p15, 0, %0, c15, c12, 2" : : "r"(value));
906+ else if (ARMV6_COUNTER1 == counter)
907+ asm volatile("mcr p15, 0, %0, c15, c12, 3" : : "r"(value));
908+ else
909+ WARN_ONCE(1, "invalid counter number (%d)\n", counter);
910+}
911+
912+void
913+armv6pmu_enable_event(struct hw_perf_event *hwc,
914+ int idx)
915+{
916+ unsigned long val, mask, evt, flags;
917+
918+ if (ARMV6_CYCLE_COUNTER == idx) {
919+ mask = 0;
920+ evt = ARMV6_PMCR_CCOUNT_IEN;
921+ } else if (ARMV6_COUNTER0 == idx) {
922+ mask = ARMV6_PMCR_EVT_COUNT0_MASK;
923+ evt = (hwc->config_base << ARMV6_PMCR_EVT_COUNT0_SHIFT) |
924+ ARMV6_PMCR_COUNT0_IEN;
925+ } else if (ARMV6_COUNTER1 == idx) {
926+ mask = ARMV6_PMCR_EVT_COUNT1_MASK;
927+ evt = (hwc->config_base << ARMV6_PMCR_EVT_COUNT1_SHIFT) |
928+ ARMV6_PMCR_COUNT1_IEN;
929+ } else {
930+ WARN_ONCE(1, "invalid counter number (%d)\n", idx);
931+ return;
932+ }
933+
934+ /*
935+ * Mask out the current event and set the counter to count the event
936+ * that we're interested in.
937+ */
938+ spin_lock_irqsave(&pmu_lock, flags);
939+ val = armv6_pmcr_read();
940+ val &= ~mask;
941+ val |= evt;
942+ armv6_pmcr_write(val);
943+ spin_unlock_irqrestore(&pmu_lock, flags);
944+}
945+
946+static irqreturn_t
947+armv6pmu_handle_irq(int irq_num,
948+ void *dev)
949+{
950+ unsigned long pmcr = armv6_pmcr_read();
951+ struct perf_sample_data data;
952+ struct cpu_hw_events *cpuc;
953+ struct pt_regs *regs;
954+ int idx;
955+
956+ if (!armv6_pmcr_has_overflowed(pmcr))
957+ return IRQ_NONE;
958+
959+ regs = get_irq_regs();
960+
961+ /*
962+ * The interrupts are cleared by writing the overflow flags back to
963+ * the control register. All of the other bits don't have any effect
964+ * if they are rewritten, so write the whole value back.
965+ */
966+ armv6_pmcr_write(pmcr);
967+
968+ data.addr = 0;
969+
970+ cpuc = &__get_cpu_var(cpu_hw_events);
971+ for (idx = 0; idx <= armpmu->num_events; ++idx) {
972+ struct perf_event *event = cpuc->events[idx];
973+ struct hw_perf_event *hwc;
974+
975+ if (!test_bit(idx, cpuc->active_mask))
976+ continue;
977+
978+ /*
979+ * We have a single interrupt for all counters. Check that
980+ * each counter has overflowed before we process it.
981+ */
982+ if (!armv6_pmcr_counter_has_overflowed(pmcr, idx))
983+ continue;
984+
985+ hwc = &event->hw;
986+ armpmu_event_update(event, hwc, idx);
987+ data.period = event->hw.last_period;
988+ if (!armpmu_event_set_period(event, hwc, idx))
989+ continue;
990+
991+ if (perf_event_overflow(event, 0, &data, regs))
992+ armpmu->disable(hwc, idx);
993+ }
994+
995+ /*
996+ * Handle the pending perf events.
997+ *
998+ * Note: this call *must* be run with interrupts enabled. For
999+ * platforms that can have the PMU interrupts raised as a PMI, this
1000+ * will not work.
1001+ */
1002+ perf_event_do_pending();
1003+
1004+ return IRQ_HANDLED;
1005+}
1006+
1007+static void
1008+armv6pmu_start(void)
1009+{
1010+ unsigned long flags, val;
1011+
1012+ spin_lock_irqsave(&pmu_lock, flags);
1013+ val = armv6_pmcr_read();
1014+ val |= ARMV6_PMCR_ENABLE;
1015+ armv6_pmcr_write(val);
1016+ spin_unlock_irqrestore(&pmu_lock, flags);
1017+}
1018+
1019+void
1020+armv6pmu_stop(void)
1021+{
1022+ unsigned long flags, val;
1023+
1024+ spin_lock_irqsave(&pmu_lock, flags);
1025+ val = armv6_pmcr_read();
1026+ val &= ~ARMV6_PMCR_ENABLE;
1027+ armv6_pmcr_write(val);
1028+ spin_unlock_irqrestore(&pmu_lock, flags);
1029+}
1030+
1031+static inline int
1032+armv6pmu_event_map(int config)
1033+{
1034+ int mapping = armv6_perf_map[config];
1035+ if (HW_OP_UNSUPPORTED == mapping)
1036+ mapping = -EOPNOTSUPP;
1037+ return mapping;
1038+}
1039+
1040+static inline int
1041+armv6mpcore_pmu_event_map(int config)
1042+{
1043+ int mapping = armv6mpcore_perf_map[config];
1044+ if (HW_OP_UNSUPPORTED == mapping)
1045+ mapping = -EOPNOTSUPP;
1046+ return mapping;
1047+}
1048+
1049+static u64
1050+armv6pmu_raw_event(u64 config)
1051+{
1052+ return config & 0xff;
1053+}
1054+
1055+static int
1056+armv6pmu_get_event_idx(struct cpu_hw_events *cpuc,
1057+ struct hw_perf_event *event)
1058+{
1059+ /* Always place a cycle counter into the cycle counter. */
1060+ if (ARMV6_PERFCTR_CPU_CYCLES == event->config_base) {
1061+ if (test_and_set_bit(ARMV6_CYCLE_COUNTER, cpuc->used_mask))
1062+ return -EAGAIN;
1063+
1064+ return ARMV6_CYCLE_COUNTER;
1065+ } else {
1066+ /*
1067+ * For anything other than a cycle counter, try and use
1068+ * counter0 and counter1.
1069+ */
1070+ if (!test_and_set_bit(ARMV6_COUNTER1, cpuc->used_mask)) {
1071+ return ARMV6_COUNTER1;
1072+ }
1073+
1074+ if (!test_and_set_bit(ARMV6_COUNTER0, cpuc->used_mask)) {
1075+ return ARMV6_COUNTER0;
1076+ }
1077+
1078+ /* The counters are all in use. */
1079+ return -EAGAIN;
1080+ }
1081+}
1082+
1083+static void
1084+armv6pmu_disable_event(struct hw_perf_event *hwc,
1085+ int idx)
1086+{
1087+ unsigned long val, mask, evt, flags;
1088+
1089+ if (ARMV6_CYCLE_COUNTER == idx) {
1090+ mask = ARMV6_PMCR_CCOUNT_IEN;
1091+ evt = 0;
1092+ } else if (ARMV6_COUNTER0 == idx) {
1093+ mask = ARMV6_PMCR_COUNT0_IEN | ARMV6_PMCR_EVT_COUNT0_MASK;
1094+ evt = ARMV6_PERFCTR_NOP << ARMV6_PMCR_EVT_COUNT0_SHIFT;
1095+ } else if (ARMV6_COUNTER1 == idx) {
1096+ mask = ARMV6_PMCR_COUNT1_IEN | ARMV6_PMCR_EVT_COUNT1_MASK;
1097+ evt = ARMV6_PERFCTR_NOP << ARMV6_PMCR_EVT_COUNT1_SHIFT;
1098+ } else {
1099+ WARN_ONCE(1, "invalid counter number (%d)\n", idx);
1100+ return;
1101+ }
1102+
1103+ /*
1104+ * Mask out the current event and set the counter to count the number
1105+ * of ETM bus signal assertion cycles. The external reporting should
1106+ * be disabled and so this should never increment.
1107+ */
1108+ spin_lock_irqsave(&pmu_lock, flags);
1109+ val = armv6_pmcr_read();
1110+ val &= ~mask;
1111+ val |= evt;
1112+ armv6_pmcr_write(val);
1113+ spin_unlock_irqrestore(&pmu_lock, flags);
1114+}
1115+
1116+static void
1117+armv6mpcore_pmu_disable_event(struct hw_perf_event *hwc,
1118+ int idx)
1119+{
1120+ unsigned long val, mask, flags, evt = 0;
1121+
1122+ if (ARMV6_CYCLE_COUNTER == idx) {
1123+ mask = ARMV6_PMCR_CCOUNT_IEN;
1124+ } else if (ARMV6_COUNTER0 == idx) {
1125+ mask = ARMV6_PMCR_COUNT0_IEN;
1126+ } else if (ARMV6_COUNTER1 == idx) {
1127+ mask = ARMV6_PMCR_COUNT1_IEN;
1128+ } else {
1129+ WARN_ONCE(1, "invalid counter number (%d)\n", idx);
1130+ return;
1131+ }
1132+
1133+ /*
1134+ * Unlike UP ARMv6, we don't have a way of stopping the counters. We
1135+ * simply disable the interrupt reporting.
1136+ */
1137+ spin_lock_irqsave(&pmu_lock, flags);
1138+ val = armv6_pmcr_read();
1139+ val &= ~mask;
1140+ val |= evt;
1141+ armv6_pmcr_write(val);
1142+ spin_unlock_irqrestore(&pmu_lock, flags);
1143+}
1144+
1145+static const struct arm_pmu armv6pmu = {
1146+ .name = "v6",
1147+ .handle_irq = armv6pmu_handle_irq,
1148+ .enable = armv6pmu_enable_event,
1149+ .disable = armv6pmu_disable_event,
1150+ .event_map = armv6pmu_event_map,
1151+ .raw_event = armv6pmu_raw_event,
1152+ .read_counter = armv6pmu_read_counter,
1153+ .write_counter = armv6pmu_write_counter,
1154+ .get_event_idx = armv6pmu_get_event_idx,
1155+ .start = armv6pmu_start,
1156+ .stop = armv6pmu_stop,
1157+ .num_events = 3,
1158+ .max_period = (1LLU << 32) - 1,
1159+};
1160+
1161+/*
1162+ * ARMv6mpcore is almost identical to single core ARMv6 with the exception
1163+ * that some of the events have different enumerations and that there is no
1164+ * *hack* to stop the programmable counters. To stop the counters we simply
1165+ * disable the interrupt reporting and update the event. When unthrottling we
1166+ * reset the period and enable the interrupt reporting.
1167+ */
1168+static const struct arm_pmu armv6mpcore_pmu = {
1169+ .name = "v6mpcore",
1170+ .handle_irq = armv6pmu_handle_irq,
1171+ .enable = armv6pmu_enable_event,
1172+ .disable = armv6mpcore_pmu_disable_event,
1173+ .event_map = armv6mpcore_pmu_event_map,
1174+ .raw_event = armv6pmu_raw_event,
1175+ .read_counter = armv6pmu_read_counter,
1176+ .write_counter = armv6pmu_write_counter,
1177+ .get_event_idx = armv6pmu_get_event_idx,
1178+ .start = armv6pmu_start,
1179+ .stop = armv6pmu_stop,
1180+ .num_events = 3,
1181+ .max_period = (1LLU << 32) - 1,
1182+};
1183+
1184+/*
1185+ * ARMv7 Cortex-A8 and Cortex-A9 Performance Events handling code.
1186+ *
1187+ * Copied from ARMv6 code, with the low level code inspired
1188+ * by the ARMv7 Oprofile code.
1189+ *
1190+ * Cortex-A8 has up to 4 configurable performance counters and
1191+ * a single cycle counter.
1192+ * Cortex-A9 has up to 31 configurable performance counters and
1193+ * a single cycle counter.
1194+ *
1195+ * All counters can be enabled/disabled and IRQ masked separately. The cycle
1196+ * counter and all 4 performance counters together can be reset separately.
1197+ */
1198+
1199+#define ARMV7_PMU_CORTEX_A8_NAME "ARMv7 Cortex-A8"
1200+
1201+#define ARMV7_PMU_CORTEX_A9_NAME "ARMv7 Cortex-A9"
1202+
1203+/* Common ARMv7 event types */
1204+enum armv7_perf_types {
1205+ ARMV7_PERFCTR_PMNC_SW_INCR = 0x00,
1206+ ARMV7_PERFCTR_IFETCH_MISS = 0x01,
1207+ ARMV7_PERFCTR_ITLB_MISS = 0x02,
1208+ ARMV7_PERFCTR_DCACHE_REFILL = 0x03,
1209+ ARMV7_PERFCTR_DCACHE_ACCESS = 0x04,
1210+ ARMV7_PERFCTR_DTLB_REFILL = 0x05,
1211+ ARMV7_PERFCTR_DREAD = 0x06,
1212+ ARMV7_PERFCTR_DWRITE = 0x07,
1213+
1214+ ARMV7_PERFCTR_EXC_TAKEN = 0x09,
1215+ ARMV7_PERFCTR_EXC_EXECUTED = 0x0A,
1216+ ARMV7_PERFCTR_CID_WRITE = 0x0B,
1217+ /* ARMV7_PERFCTR_PC_WRITE is equivalent to HW_BRANCH_INSTRUCTIONS.
1218+ * It counts:
1219+ * - all branch instructions,
1220+ * - instructions that explicitly write the PC,
1221+ * - exception generating instructions.
1222+ */
1223+ ARMV7_PERFCTR_PC_WRITE = 0x0C,
1224+ ARMV7_PERFCTR_PC_IMM_BRANCH = 0x0D,
1225+ ARMV7_PERFCTR_UNALIGNED_ACCESS = 0x0F,
1226+ ARMV7_PERFCTR_PC_BRANCH_MIS_PRED = 0x10,
1227+ ARMV7_PERFCTR_CLOCK_CYCLES = 0x11,
1228+
1229+ ARMV7_PERFCTR_PC_BRANCH_MIS_USED = 0x12,
1230+
1231+ ARMV7_PERFCTR_CPU_CYCLES = 0xFF
1232+};
1233+
1234+/* ARMv7 Cortex-A8 specific event types */
1235+enum armv7_a8_perf_types {
1236+ ARMV7_PERFCTR_INSTR_EXECUTED = 0x08,
1237+
1238+ ARMV7_PERFCTR_PC_PROC_RETURN = 0x0E,
1239+
1240+ ARMV7_PERFCTR_WRITE_BUFFER_FULL = 0x40,
1241+ ARMV7_PERFCTR_L2_STORE_MERGED = 0x41,
1242+ ARMV7_PERFCTR_L2_STORE_BUFF = 0x42,
1243+ ARMV7_PERFCTR_L2_ACCESS = 0x43,
1244+ ARMV7_PERFCTR_L2_CACH_MISS = 0x44,
1245+ ARMV7_PERFCTR_AXI_READ_CYCLES = 0x45,
1246+ ARMV7_PERFCTR_AXI_WRITE_CYCLES = 0x46,
1247+ ARMV7_PERFCTR_MEMORY_REPLAY = 0x47,
1248+ ARMV7_PERFCTR_UNALIGNED_ACCESS_REPLAY = 0x48,
1249+ ARMV7_PERFCTR_L1_DATA_MISS = 0x49,
1250+ ARMV7_PERFCTR_L1_INST_MISS = 0x4A,
1251+ ARMV7_PERFCTR_L1_DATA_COLORING = 0x4B,
1252+ ARMV7_PERFCTR_L1_NEON_DATA = 0x4C,
1253+ ARMV7_PERFCTR_L1_NEON_CACH_DATA = 0x4D,
1254+ ARMV7_PERFCTR_L2_NEON = 0x4E,
1255+ ARMV7_PERFCTR_L2_NEON_HIT = 0x4F,
1256+ ARMV7_PERFCTR_L1_INST = 0x50,
1257+ ARMV7_PERFCTR_PC_RETURN_MIS_PRED = 0x51,
1258+ ARMV7_PERFCTR_PC_BRANCH_FAILED = 0x52,
1259+ ARMV7_PERFCTR_PC_BRANCH_TAKEN = 0x53,
1260+ ARMV7_PERFCTR_PC_BRANCH_EXECUTED = 0x54,
1261+ ARMV7_PERFCTR_OP_EXECUTED = 0x55,
1262+ ARMV7_PERFCTR_CYCLES_INST_STALL = 0x56,
1263+ ARMV7_PERFCTR_CYCLES_INST = 0x57,
1264+ ARMV7_PERFCTR_CYCLES_NEON_DATA_STALL = 0x58,
1265+ ARMV7_PERFCTR_CYCLES_NEON_INST_STALL = 0x59,
1266+ ARMV7_PERFCTR_NEON_CYCLES = 0x5A,
1267+
1268+ ARMV7_PERFCTR_PMU0_EVENTS = 0x70,
1269+ ARMV7_PERFCTR_PMU1_EVENTS = 0x71,
1270+ ARMV7_PERFCTR_PMU_EVENTS = 0x72,
1271+};
1272+
1273+/* ARMv7 Cortex-A9 specific event types */
1274+enum armv7_a9_perf_types {
1275+ ARMV7_PERFCTR_JAVA_HW_BYTECODE_EXEC = 0x40,
1276+ ARMV7_PERFCTR_JAVA_SW_BYTECODE_EXEC = 0x41,
1277+ ARMV7_PERFCTR_JAZELLE_BRANCH_EXEC = 0x42,
1278+
1279+ ARMV7_PERFCTR_COHERENT_LINE_MISS = 0x50,
1280+ ARMV7_PERFCTR_COHERENT_LINE_HIT = 0x51,
1281+
1282+ ARMV7_PERFCTR_ICACHE_DEP_STALL_CYCLES = 0x60,
1283+ ARMV7_PERFCTR_DCACHE_DEP_STALL_CYCLES = 0x61,
1284+ ARMV7_PERFCTR_TLB_MISS_DEP_STALL_CYCLES = 0x62,
1285+ ARMV7_PERFCTR_STREX_EXECUTED_PASSED = 0x63,
1286+ ARMV7_PERFCTR_STREX_EXECUTED_FAILED = 0x64,
1287+ ARMV7_PERFCTR_DATA_EVICTION = 0x65,
1288+ ARMV7_PERFCTR_ISSUE_STAGE_NO_INST = 0x66,
1289+ ARMV7_PERFCTR_ISSUE_STAGE_EMPTY = 0x67,
1290+ ARMV7_PERFCTR_INST_OUT_OF_RENAME_STAGE = 0x68,
1291+
1292+ ARMV7_PERFCTR_PREDICTABLE_FUNCT_RETURNS = 0x6E,
1293+
1294+ ARMV7_PERFCTR_MAIN_UNIT_EXECUTED_INST = 0x70,
1295+ ARMV7_PERFCTR_SECOND_UNIT_EXECUTED_INST = 0x71,
1296+ ARMV7_PERFCTR_LD_ST_UNIT_EXECUTED_INST = 0x72,
1297+ ARMV7_PERFCTR_FP_EXECUTED_INST = 0x73,
1298+ ARMV7_PERFCTR_NEON_EXECUTED_INST = 0x74,
1299+
1300+ ARMV7_PERFCTR_PLD_FULL_DEP_STALL_CYCLES = 0x80,
1301+ ARMV7_PERFCTR_DATA_WR_DEP_STALL_CYCLES = 0x81,
1302+ ARMV7_PERFCTR_ITLB_MISS_DEP_STALL_CYCLES = 0x82,
1303+ ARMV7_PERFCTR_DTLB_MISS_DEP_STALL_CYCLES = 0x83,
1304+ ARMV7_PERFCTR_MICRO_ITLB_MISS_DEP_STALL_CYCLES = 0x84,
1305+ ARMV7_PERFCTR_MICRO_DTLB_MISS_DEP_STALL_CYCLES = 0x85,
1306+ ARMV7_PERFCTR_DMB_DEP_STALL_CYCLES = 0x86,
1307+
1308+ ARMV7_PERFCTR_INTGR_CLK_ENABLED_CYCLES = 0x8A,
1309+ ARMV7_PERFCTR_DATA_ENGINE_CLK_EN_CYCLES = 0x8B,
1310+
1311+ ARMV7_PERFCTR_ISB_INST = 0x90,
1312+ ARMV7_PERFCTR_DSB_INST = 0x91,
1313+ ARMV7_PERFCTR_DMB_INST = 0x92,
1314+ ARMV7_PERFCTR_EXT_INTERRUPTS = 0x93,
1315+
1316+ ARMV7_PERFCTR_PLE_CACHE_LINE_RQST_COMPLETED = 0xA0,
1317+ ARMV7_PERFCTR_PLE_CACHE_LINE_RQST_SKIPPED = 0xA1,
1318+ ARMV7_PERFCTR_PLE_FIFO_FLUSH = 0xA2,
1319+ ARMV7_PERFCTR_PLE_RQST_COMPLETED = 0xA3,
1320+ ARMV7_PERFCTR_PLE_FIFO_OVERFLOW = 0xA4,
1321+ ARMV7_PERFCTR_PLE_RQST_PROG = 0xA5
1322+};
1323+
1324+/*
1325+ * Cortex-A8 HW events mapping
1326+ *
1327+ * The hardware events that we support. We do support cache operations but
1328+ * we have harvard caches and no way to combine instruction and data
1329+ * accesses/misses in hardware.
1330+ */
1331+static const unsigned armv7_a8_perf_map[PERF_COUNT_HW_MAX] = {
1332+ [PERF_COUNT_HW_CPU_CYCLES] = ARMV7_PERFCTR_CPU_CYCLES,
1333+ [PERF_COUNT_HW_INSTRUCTIONS] = ARMV7_PERFCTR_INSTR_EXECUTED,
1334+ [PERF_COUNT_HW_CACHE_REFERENCES] = HW_OP_UNSUPPORTED,
1335+ [PERF_COUNT_HW_CACHE_MISSES] = HW_OP_UNSUPPORTED,
1336+ [PERF_COUNT_HW_BRANCH_INSTRUCTIONS] = ARMV7_PERFCTR_PC_WRITE,
1337+ [PERF_COUNT_HW_BRANCH_MISSES] = ARMV7_PERFCTR_PC_BRANCH_MIS_PRED,
1338+ [PERF_COUNT_HW_BUS_CYCLES] = ARMV7_PERFCTR_CLOCK_CYCLES,
1339+};
1340+
1341+static const unsigned armv7_a8_perf_cache_map[PERF_COUNT_HW_CACHE_MAX]
1342+ [PERF_COUNT_HW_CACHE_OP_MAX]
1343+ [PERF_COUNT_HW_CACHE_RESULT_MAX] = {
1344+ [C(L1D)] = {
1345+ /*
1346+ * The performance counters don't differentiate between read
1347+ * and write accesses/misses so this isn't strictly correct,
1348+ * but it's the best we can do. Writes and reads get
1349+ * combined.
1350+ */
1351+ [C(OP_READ)] = {
1352+ [C(RESULT_ACCESS)] = ARMV7_PERFCTR_DCACHE_ACCESS,
1353+ [C(RESULT_MISS)] = ARMV7_PERFCTR_DCACHE_REFILL,
1354+ },
1355+ [C(OP_WRITE)] = {
1356+ [C(RESULT_ACCESS)] = ARMV7_PERFCTR_DCACHE_ACCESS,
1357+ [C(RESULT_MISS)] = ARMV7_PERFCTR_DCACHE_REFILL,
1358+ },
1359+ [C(OP_PREFETCH)] = {
1360+ [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
1361+ [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
1362+ },
1363+ },
1364+ [C(L1I)] = {
1365+ [C(OP_READ)] = {
1366+ [C(RESULT_ACCESS)] = ARMV7_PERFCTR_L1_INST,
1367+ [C(RESULT_MISS)] = ARMV7_PERFCTR_L1_INST_MISS,
1368+ },
1369+ [C(OP_WRITE)] = {
1370+ [C(RESULT_ACCESS)] = ARMV7_PERFCTR_L1_INST,
1371+ [C(RESULT_MISS)] = ARMV7_PERFCTR_L1_INST_MISS,
1372+ },
1373+ [C(OP_PREFETCH)] = {
1374+ [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
1375+ [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
1376+ },
1377+ },
1378+ [C(LL)] = {
1379+ [C(OP_READ)] = {
1380+ [C(RESULT_ACCESS)] = ARMV7_PERFCTR_L2_ACCESS,
1381+ [C(RESULT_MISS)] = ARMV7_PERFCTR_L2_CACH_MISS,
1382+ },
1383+ [C(OP_WRITE)] = {
1384+ [C(RESULT_ACCESS)] = ARMV7_PERFCTR_L2_ACCESS,
1385+ [C(RESULT_MISS)] = ARMV7_PERFCTR_L2_CACH_MISS,
1386+ },
1387+ [C(OP_PREFETCH)] = {
1388+ [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
1389+ [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
1390+ },
1391+ },
1392+ [C(DTLB)] = {
1393+ /*
1394+ * Only ITLB misses and DTLB refills are supported.
1395+ * If users want the DTLB refills misses a raw counter
1396+ * must be used.
1397+ */
1398+ [C(OP_READ)] = {
1399+ [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
1400+ [C(RESULT_MISS)] = ARMV7_PERFCTR_DTLB_REFILL,
1401+ },
1402+ [C(OP_WRITE)] = {
1403+ [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
1404+ [C(RESULT_MISS)] = ARMV7_PERFCTR_DTLB_REFILL,
1405+ },
1406+ [C(OP_PREFETCH)] = {
1407+ [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
1408+ [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
1409+ },
1410+ },
1411+ [C(ITLB)] = {
1412+ [C(OP_READ)] = {
1413+ [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
1414+ [C(RESULT_MISS)] = ARMV7_PERFCTR_ITLB_MISS,
1415+ },
1416+ [C(OP_WRITE)] = {
1417+ [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
1418+ [C(RESULT_MISS)] = ARMV7_PERFCTR_ITLB_MISS,
1419+ },
1420+ [C(OP_PREFETCH)] = {
1421+ [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
1422+ [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
1423+ },
1424+ },
1425+ [C(BPU)] = {
1426+ [C(OP_READ)] = {
1427+ [C(RESULT_ACCESS)] = ARMV7_PERFCTR_PC_WRITE,
1428+ [C(RESULT_MISS)]
1429+ = ARMV7_PERFCTR_PC_BRANCH_MIS_PRED,
1430+ },
1431+ [C(OP_WRITE)] = {
1432+ [C(RESULT_ACCESS)] = ARMV7_PERFCTR_PC_WRITE,
1433+ [C(RESULT_MISS)]
1434+ = ARMV7_PERFCTR_PC_BRANCH_MIS_PRED,
1435+ },
1436+ [C(OP_PREFETCH)] = {
1437+ [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
1438+ [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
1439+ },
1440+ },
1441+};
1442+
1443+/*
1444+ * Cortex-A9 HW events mapping
1445+ */
1446+static const unsigned armv7_a9_perf_map[PERF_COUNT_HW_MAX] = {
1447+ [PERF_COUNT_HW_CPU_CYCLES] = ARMV7_PERFCTR_CPU_CYCLES,
1448+ [PERF_COUNT_HW_INSTRUCTIONS] =
1449+ ARMV7_PERFCTR_INST_OUT_OF_RENAME_STAGE,
1450+ [PERF_COUNT_HW_CACHE_REFERENCES] = ARMV7_PERFCTR_COHERENT_LINE_HIT,
1451+ [PERF_COUNT_HW_CACHE_MISSES] = ARMV7_PERFCTR_COHERENT_LINE_MISS,
1452+ [PERF_COUNT_HW_BRANCH_INSTRUCTIONS] = ARMV7_PERFCTR_PC_WRITE,
1453+ [PERF_COUNT_HW_BRANCH_MISSES] = ARMV7_PERFCTR_PC_BRANCH_MIS_PRED,
1454+ [PERF_COUNT_HW_BUS_CYCLES] = ARMV7_PERFCTR_CLOCK_CYCLES,
1455+};
1456+
1457+static const unsigned armv7_a9_perf_cache_map[PERF_COUNT_HW_CACHE_MAX]
1458+ [PERF_COUNT_HW_CACHE_OP_MAX]
1459+ [PERF_COUNT_HW_CACHE_RESULT_MAX] = {
1460+ [C(L1D)] = {
1461+ /*
1462+ * The performance counters don't differentiate between read
1463+ * and write accesses/misses so this isn't strictly correct,
1464+ * but it's the best we can do. Writes and reads get
1465+ * combined.
1466+ */
1467+ [C(OP_READ)] = {
1468+ [C(RESULT_ACCESS)] = ARMV7_PERFCTR_DCACHE_ACCESS,
1469+ [C(RESULT_MISS)] = ARMV7_PERFCTR_DCACHE_REFILL,
1470+ },
1471+ [C(OP_WRITE)] = {
1472+ [C(RESULT_ACCESS)] = ARMV7_PERFCTR_DCACHE_ACCESS,
1473+ [C(RESULT_MISS)] = ARMV7_PERFCTR_DCACHE_REFILL,
1474+ },
1475+ [C(OP_PREFETCH)] = {
1476+ [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
1477+ [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
1478+ },
1479+ },
1480+ [C(L1I)] = {
1481+ [C(OP_READ)] = {
1482+ [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
1483+ [C(RESULT_MISS)] = ARMV7_PERFCTR_IFETCH_MISS,
1484+ },
1485+ [C(OP_WRITE)] = {
1486+ [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
1487+ [C(RESULT_MISS)] = ARMV7_PERFCTR_IFETCH_MISS,
1488+ },
1489+ [C(OP_PREFETCH)] = {
1490+ [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
1491+ [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
1492+ },
1493+ },
1494+ [C(LL)] = {
1495+ [C(OP_READ)] = {
1496+ [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
1497+ [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
1498+ },
1499+ [C(OP_WRITE)] = {
1500+ [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
1501+ [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
1502+ },
1503+ [C(OP_PREFETCH)] = {
1504+ [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
1505+ [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
1506+ },
1507+ },
1508+ [C(DTLB)] = {
1509+ /*
1510+ * Only ITLB misses and DTLB refills are supported.
1511+ * If users want the DTLB refills misses a raw counter
1512+ * must be used.
1513+ */
1514+ [C(OP_READ)] = {
1515+ [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
1516+ [C(RESULT_MISS)] = ARMV7_PERFCTR_DTLB_REFILL,
1517+ },
1518+ [C(OP_WRITE)] = {
1519+ [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
1520+ [C(RESULT_MISS)] = ARMV7_PERFCTR_DTLB_REFILL,
1521+ },
1522+ [C(OP_PREFETCH)] = {
1523+ [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
1524+ [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
1525+ },
1526+ },
1527+ [C(ITLB)] = {
1528+ [C(OP_READ)] = {
1529+ [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
1530+ [C(RESULT_MISS)] = ARMV7_PERFCTR_ITLB_MISS,
1531+ },
1532+ [C(OP_WRITE)] = {
1533+ [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
1534+ [C(RESULT_MISS)] = ARMV7_PERFCTR_ITLB_MISS,
1535+ },
1536+ [C(OP_PREFETCH)] = {
1537+ [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
1538+ [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
1539+ },
1540+ },
1541+ [C(BPU)] = {
1542+ [C(OP_READ)] = {
1543+ [C(RESULT_ACCESS)] = ARMV7_PERFCTR_PC_WRITE,
1544+ [C(RESULT_MISS)]
1545+ = ARMV7_PERFCTR_PC_BRANCH_MIS_PRED,
1546+ },
1547+ [C(OP_WRITE)] = {
1548+ [C(RESULT_ACCESS)] = ARMV7_PERFCTR_PC_WRITE,
1549+ [C(RESULT_MISS)]
1550+ = ARMV7_PERFCTR_PC_BRANCH_MIS_PRED,
1551+ },
1552+ [C(OP_PREFETCH)] = {
1553+ [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
1554+ [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
1555+ },
1556+ },
1557+};
1558+
1559+/*
1560+ * Perf Events counters
1561+ */
1562+enum armv7_counters {
1563+ ARMV7_CYCLE_COUNTER = 1, /* Cycle counter */
1564+ ARMV7_COUNTER0 = 2, /* First event counter */
1565+};
1566+
1567+/*
1568+ * The cycle counter is ARMV7_CYCLE_COUNTER.
1569+ * The first event counter is ARMV7_COUNTER0.
1570+ * The last event counter is (ARMV7_COUNTER0 + armpmu->num_events - 1).
1571+ */
1572+#define ARMV7_COUNTER_LAST (ARMV7_COUNTER0 + armpmu->num_events - 1)
1573+
1574+/*
1575+ * ARMv7 low level PMNC access
1576+ */
1577+
1578+/*
1579+ * Per-CPU PMNC: config reg
1580+ */
1581+#define ARMV7_PMNC_E (1 << 0) /* Enable all counters */
1582+#define ARMV7_PMNC_P (1 << 1) /* Reset all counters */
1583+#define ARMV7_PMNC_C (1 << 2) /* Cycle counter reset */
1584+#define ARMV7_PMNC_D (1 << 3) /* CCNT counts every 64th cpu cycle */
1585+#define ARMV7_PMNC_X (1 << 4) /* Export to ETM */
1586+#define ARMV7_PMNC_DP (1 << 5) /* Disable CCNT if non-invasive debug*/
1587+#define ARMV7_PMNC_N_SHIFT 11 /* Number of counters supported */
1588+#define ARMV7_PMNC_N_MASK 0x1f
1589+#define ARMV7_PMNC_MASK 0x3f /* Mask for writable bits */
1590+
1591+/*
1592+ * Available counters
1593+ */
1594+#define ARMV7_CNT0 0 /* First event counter */
1595+#define ARMV7_CCNT 31 /* Cycle counter */
1596+
1597+/* Perf Event to low level counters mapping */
1598+#define ARMV7_EVENT_CNT_TO_CNTx (ARMV7_COUNTER0 - ARMV7_CNT0)
1599+
1600+/*
1601+ * CNTENS: counters enable reg
1602+ */
1603+#define ARMV7_CNTENS_P(idx) (1 << (idx - ARMV7_EVENT_CNT_TO_CNTx))
1604+#define ARMV7_CNTENS_C (1 << ARMV7_CCNT)
1605+
1606+/*
1607+ * CNTENC: counters disable reg
1608+ */
1609+#define ARMV7_CNTENC_P(idx) (1 << (idx - ARMV7_EVENT_CNT_TO_CNTx))
1610+#define ARMV7_CNTENC_C (1 << ARMV7_CCNT)
1611+
1612+/*
1613+ * INTENS: counters overflow interrupt enable reg
1614+ */
1615+#define ARMV7_INTENS_P(idx) (1 << (idx - ARMV7_EVENT_CNT_TO_CNTx))
1616+#define ARMV7_INTENS_C (1 << ARMV7_CCNT)
1617+
1618+/*
1619+ * INTENC: counters overflow interrupt disable reg
1620+ */
1621+#define ARMV7_INTENC_P(idx) (1 << (idx - ARMV7_EVENT_CNT_TO_CNTx))
1622+#define ARMV7_INTENC_C (1 << ARMV7_CCNT)
1623+
1624+/*
1625+ * EVTSEL: Event selection reg
1626+ */
1627+#define ARMV7_EVTSEL_MASK 0x7f /* Mask for writable bits */
1628+
1629+/*
1630+ * SELECT: Counter selection reg
1631+ */
1632+#define ARMV7_SELECT_MASK 0x1f /* Mask for writable bits */
1633+
1634+/*
1635+ * FLAG: counters overflow flag status reg
1636+ */
1637+#define ARMV7_FLAG_P(idx) (1 << (idx - ARMV7_EVENT_CNT_TO_CNTx))
1638+#define ARMV7_FLAG_C (1 << ARMV7_CCNT)
1639+#define ARMV7_FLAG_MASK 0xffffffff /* Mask for writable bits */
1640+#define ARMV7_OVERFLOWED_MASK ARMV7_FLAG_MASK
1641+
1642+static inline unsigned long armv7_pmnc_read(void)
1643+{
1644+ u32 val;
1645+ asm volatile("mrc p15, 0, %0, c9, c12, 0" : "=r"(val));
1646+ return val;
1647+}
1648+
1649+static inline void armv7_pmnc_write(unsigned long val)
1650+{
1651+ val &= ARMV7_PMNC_MASK;
1652+ asm volatile("mcr p15, 0, %0, c9, c12, 0" : : "r"(val));
1653+}
1654+
1655+static inline int armv7_pmnc_has_overflowed(unsigned long pmnc)
1656+{
1657+ return pmnc & ARMV7_OVERFLOWED_MASK;
1658+}
1659+
1660+static inline int armv7_pmnc_counter_has_overflowed(unsigned long pmnc,
1661+ enum armv7_counters counter)
1662+{
1663+ int ret;
1664+
1665+ if (counter == ARMV7_CYCLE_COUNTER)
1666+ ret = pmnc & ARMV7_FLAG_C;
1667+ else if ((counter >= ARMV7_COUNTER0) && (counter <= ARMV7_COUNTER_LAST))
1668+ ret = pmnc & ARMV7_FLAG_P(counter);
1669+ else
1670+ pr_err("CPU%u checking wrong counter %d overflow status\n",
1671+ smp_processor_id(), counter);
1672+
1673+ return ret;
1674+}
1675+
1676+static inline int armv7_pmnc_select_counter(unsigned int idx)
1677+{
1678+ u32 val;
1679+
1680+ if ((idx < ARMV7_COUNTER0) || (idx > ARMV7_COUNTER_LAST)) {
1681+ pr_err("CPU%u selecting wrong PMNC counter"
1682+ " %d\n", smp_processor_id(), idx);
1683+ return -1;
1684+ }
1685+
1686+ val = (idx - ARMV7_EVENT_CNT_TO_CNTx) & ARMV7_SELECT_MASK;
1687+ asm volatile("mcr p15, 0, %0, c9, c12, 5" : : "r" (val));
1688+
1689+ return idx;
1690+}
1691+
1692+static inline u32 armv7pmu_read_counter(int idx)
1693+{
1694+ unsigned long value = 0;
1695+
1696+ if (idx == ARMV7_CYCLE_COUNTER)
1697+ asm volatile("mrc p15, 0, %0, c9, c13, 0" : "=r" (value));
1698+ else if ((idx >= ARMV7_COUNTER0) && (idx <= ARMV7_COUNTER_LAST)) {
1699+ if (armv7_pmnc_select_counter(idx) == idx)
1700+ asm volatile("mrc p15, 0, %0, c9, c13, 2"
1701+ : "=r" (value));
1702+ } else
1703+ pr_err("CPU%u reading wrong counter %d\n",
1704+ smp_processor_id(), idx);
1705+
1706+ return value;
1707+}
1708+
1709+static inline void armv7pmu_write_counter(int idx, u32 value)
1710+{
1711+ if (idx == ARMV7_CYCLE_COUNTER)
1712+ asm volatile("mcr p15, 0, %0, c9, c13, 0" : : "r" (value));
1713+ else if ((idx >= ARMV7_COUNTER0) && (idx <= ARMV7_COUNTER_LAST)) {
1714+ if (armv7_pmnc_select_counter(idx) == idx)
1715+ asm volatile("mcr p15, 0, %0, c9, c13, 2"
1716+ : : "r" (value));
1717+ } else
1718+ pr_err("CPU%u writing wrong counter %d\n",
1719+ smp_processor_id(), idx);
1720+}
1721+
1722+static inline void armv7_pmnc_write_evtsel(unsigned int idx, u32 val)
1723+{
1724+ if (armv7_pmnc_select_counter(idx) == idx) {
1725+ val &= ARMV7_EVTSEL_MASK;
1726+ asm volatile("mcr p15, 0, %0, c9, c13, 1" : : "r" (val));
1727+ }
1728+}
1729+
1730+static inline u32 armv7_pmnc_enable_counter(unsigned int idx)
1731+{
1732+ u32 val;
1733+
1734+ if ((idx != ARMV7_CYCLE_COUNTER) &&
1735+ ((idx < ARMV7_COUNTER0) || (idx > ARMV7_COUNTER_LAST))) {
1736+ pr_err("CPU%u enabling wrong PMNC counter"
1737+ " %d\n", smp_processor_id(), idx);
1738+ return -1;
1739+ }
1740+
1741+ if (idx == ARMV7_CYCLE_COUNTER)
1742+ val = ARMV7_CNTENS_C;
1743+ else
1744+ val = ARMV7_CNTENS_P(idx);
1745+
1746+ asm volatile("mcr p15, 0, %0, c9, c12, 1" : : "r" (val));
1747+
1748+ return idx;
1749+}
1750+
1751+static inline u32 armv7_pmnc_disable_counter(unsigned int idx)
1752+{
1753+ u32 val;
1754+
1755+
1756+ if ((idx != ARMV7_CYCLE_COUNTER) &&
1757+ ((idx < ARMV7_COUNTER0) || (idx > ARMV7_COUNTER_LAST))) {
1758+ pr_err("CPU%u disabling wrong PMNC counter"
1759+ " %d\n", smp_processor_id(), idx);
1760+ return -1;
1761+ }
1762+
1763+ if (idx == ARMV7_CYCLE_COUNTER)
1764+ val = ARMV7_CNTENC_C;
1765+ else
1766+ val = ARMV7_CNTENC_P(idx);
1767+
1768+ asm volatile("mcr p15, 0, %0, c9, c12, 2" : : "r" (val));
1769+
1770+ return idx;
1771+}
1772+
1773+static inline u32 armv7_pmnc_enable_intens(unsigned int idx)
1774+{
1775+ u32 val;
1776+
1777+ if ((idx != ARMV7_CYCLE_COUNTER) &&
1778+ ((idx < ARMV7_COUNTER0) || (idx > ARMV7_COUNTER_LAST))) {
1779+ pr_err("CPU%u enabling wrong PMNC counter"
1780+ " interrupt enable %d\n", smp_processor_id(), idx);
1781+ return -1;
1782+ }
1783+
1784+ if (idx == ARMV7_CYCLE_COUNTER)
1785+ val = ARMV7_INTENS_C;
1786+ else
1787+ val = ARMV7_INTENS_P(idx);
1788+
1789+ asm volatile("mcr p15, 0, %0, c9, c14, 1" : : "r" (val));
1790+
1791+ return idx;
1792+}
1793+
1794+static inline u32 armv7_pmnc_disable_intens(unsigned int idx)
1795+{
1796+ u32 val;
1797+
1798+ if ((idx != ARMV7_CYCLE_COUNTER) &&
1799+ ((idx < ARMV7_COUNTER0) || (idx > ARMV7_COUNTER_LAST))) {
1800+ pr_err("CPU%u disabling wrong PMNC counter"
1801+ " interrupt enable %d\n", smp_processor_id(), idx);
1802+ return -1;
1803+ }
1804+
1805+ if (idx == ARMV7_CYCLE_COUNTER)
1806+ val = ARMV7_INTENC_C;
1807+ else
1808+ val = ARMV7_INTENC_P(idx);
1809+
1810+ asm volatile("mcr p15, 0, %0, c9, c14, 2" : : "r" (val));
1811+
1812+ return idx;
1813+}
1814+
1815+static inline u32 armv7_pmnc_getreset_flags(void)
1816+{
1817+ u32 val;
1818+
1819+ /* Read */
1820+ asm volatile("mrc p15, 0, %0, c9, c12, 3" : "=r" (val));
1821+
1822+ /* Write to clear flags */
1823+ val &= ARMV7_FLAG_MASK;
1824+ asm volatile("mcr p15, 0, %0, c9, c12, 3" : : "r" (val));
1825+
1826+ return val;
1827+}
1828+
1829+#ifdef DEBUG
1830+static void armv7_pmnc_dump_regs(void)
1831+{
1832+ u32 val;
1833+ unsigned int cnt;
1834+
1835+ printk(KERN_INFO "PMNC registers dump:\n");
1836+
1837+ asm volatile("mrc p15, 0, %0, c9, c12, 0" : "=r" (val));
1838+ printk(KERN_INFO "PMNC =0x%08x\n", val);
1839+
1840+ asm volatile("mrc p15, 0, %0, c9, c12, 1" : "=r" (val));
1841+ printk(KERN_INFO "CNTENS=0x%08x\n", val);
1842+
1843+ asm volatile("mrc p15, 0, %0, c9, c14, 1" : "=r" (val));
1844+ printk(KERN_INFO "INTENS=0x%08x\n", val);
1845+
1846+ asm volatile("mrc p15, 0, %0, c9, c12, 3" : "=r" (val));
1847+ printk(KERN_INFO "FLAGS =0x%08x\n", val);
1848+
1849+ asm volatile("mrc p15, 0, %0, c9, c12, 5" : "=r" (val));
1850+ printk(KERN_INFO "SELECT=0x%08x\n", val);
1851+
1852+ asm volatile("mrc p15, 0, %0, c9, c13, 0" : "=r" (val));
1853+ printk(KERN_INFO "CCNT =0x%08x\n", val);
1854+
1855+ for (cnt = ARMV7_COUNTER0; cnt < ARMV7_COUNTER_LAST; cnt++) {
1856+ armv7_pmnc_select_counter(cnt);
1857+ asm volatile("mrc p15, 0, %0, c9, c13, 2" : "=r" (val));
1858+ printk(KERN_INFO "CNT[%d] count =0x%08x\n",
1859+ cnt-ARMV7_EVENT_CNT_TO_CNTx, val);
1860+ asm volatile("mrc p15, 0, %0, c9, c13, 1" : "=r" (val));
1861+ printk(KERN_INFO "CNT[%d] evtsel=0x%08x\n",
1862+ cnt-ARMV7_EVENT_CNT_TO_CNTx, val);
1863+ }
1864+}
1865+#endif
1866+
1867+void armv7pmu_enable_event(struct hw_perf_event *hwc, int idx)
1868+{
1869+ unsigned long flags;
1870+
1871+ /*
1872+ * Enable counter and interrupt, and set the counter to count
1873+ * the event that we're interested in.
1874+ */
1875+ spin_lock_irqsave(&pmu_lock, flags);
1876+
1877+ /*
1878+ * Disable counter
1879+ */
1880+ armv7_pmnc_disable_counter(idx);
1881+
1882+ /*
1883+ * Set event (if destined for PMNx counters)
1884+ * We don't need to set the event if it's a cycle count
1885+ */
1886+ if (idx != ARMV7_CYCLE_COUNTER)
1887+ armv7_pmnc_write_evtsel(idx, hwc->config_base);
1888+
1889+ /*
1890+ * Enable interrupt for this counter
1891+ */
1892+ armv7_pmnc_enable_intens(idx);
1893+
1894+ /*
1895+ * Enable counter
1896+ */
1897+ armv7_pmnc_enable_counter(idx);
1898+
1899+ spin_unlock_irqrestore(&pmu_lock, flags);
1900+}
1901+
1902+static void armv7pmu_disable_event(struct hw_perf_event *hwc, int idx)
1903+{
1904+ unsigned long flags;
1905+
1906+ /*
1907+ * Disable counter and interrupt
1908+ */
1909+ spin_lock_irqsave(&pmu_lock, flags);
1910+
1911+ /*
1912+ * Disable counter
1913+ */
1914+ armv7_pmnc_disable_counter(idx);
1915+
1916+ /*
1917+ * Disable interrupt for this counter
1918+ */
1919+ armv7_pmnc_disable_intens(idx);
1920+
1921+ spin_unlock_irqrestore(&pmu_lock, flags);
1922+}
1923+
1924+static irqreturn_t armv7pmu_handle_irq(int irq_num, void *dev)
1925+{
1926+ unsigned long pmnc;
1927+ struct perf_sample_data data;
1928+ struct cpu_hw_events *cpuc;
1929+ struct pt_regs *regs;
1930+ int idx;
1931+
1932+ /*
1933+ * Get and reset the IRQ flags
1934+ */
1935+ pmnc = armv7_pmnc_getreset_flags();
1936+
1937+ /*
1938+ * Did an overflow occur?
1939+ */
1940+ if (!armv7_pmnc_has_overflowed(pmnc))
1941+ return IRQ_NONE;
1942+
1943+ /*
1944+ * Handle the counter(s) overflow(s)
1945+ */
1946+ regs = get_irq_regs();
1947+
1948+ data.addr = 0;
1949+
1950+ cpuc = &__get_cpu_var(cpu_hw_events);
1951+ for (idx = 0; idx <= armpmu->num_events; ++idx) {
1952+ struct perf_event *event = cpuc->events[idx];
1953+ struct hw_perf_event *hwc;
1954+
1955+ if (!test_bit(idx, cpuc->active_mask))
1956+ continue;
1957+
1958+ /*
1959+ * We have a single interrupt for all counters. Check that
1960+ * each counter has overflowed before we process it.
1961+ */
1962+ if (!armv7_pmnc_counter_has_overflowed(pmnc, idx))
1963+ continue;
1964+
1965+ hwc = &event->hw;
1966+ armpmu_event_update(event, hwc, idx);
1967+ data.period = event->hw.last_period;
1968+ if (!armpmu_event_set_period(event, hwc, idx))
1969+ continue;
1970+
1971+ if (perf_event_overflow(event, 0, &data, regs))
1972+ armpmu->disable(hwc, idx);
1973+ }
1974+
1975+ /*
1976+ * Handle the pending perf events.
1977+ *
1978+ * Note: this call *must* be run with interrupts enabled. For
1979+ * platforms that can have the PMU interrupts raised as a PMI, this
1980+ * will not work.
1981+ */
1982+ perf_event_do_pending();
1983+
1984+ return IRQ_HANDLED;
1985+}
1986+
1987+static void armv7pmu_start(void)
1988+{
1989+ unsigned long flags;
1990+
1991+ spin_lock_irqsave(&pmu_lock, flags);
1992+ /* Enable all counters */
1993+ armv7_pmnc_write(armv7_pmnc_read() | ARMV7_PMNC_E);
1994+ spin_unlock_irqrestore(&pmu_lock, flags);
1995+}
1996+
1997+static void armv7pmu_stop(void)
1998+{
1999+ unsigned long flags;
2000+
2001+ spin_lock_irqsave(&pmu_lock, flags);
2002+ /* Disable all counters */
2003+ armv7_pmnc_write(armv7_pmnc_read() & ~ARMV7_PMNC_E);
2004+ spin_unlock_irqrestore(&pmu_lock, flags);
2005+}
2006+
2007+static inline int armv7_a8_pmu_event_map(int config)
2008+{
2009+ int mapping = armv7_a8_perf_map[config];
2010+ if (HW_OP_UNSUPPORTED == mapping)
2011+ mapping = -EOPNOTSUPP;
2012+ return mapping;
2013+}
2014+
2015+static inline int armv7_a9_pmu_event_map(int config)
2016+{
2017+ int mapping = armv7_a9_perf_map[config];
2018+ if (HW_OP_UNSUPPORTED == mapping)
2019+ mapping = -EOPNOTSUPP;
2020+ return mapping;
2021+}
2022+
2023+static u64 armv7pmu_raw_event(u64 config)
2024+{
2025+ return config & 0xff;
2026+}
2027+
2028+static int armv7pmu_get_event_idx(struct cpu_hw_events *cpuc,
2029+ struct hw_perf_event *event)
2030+{
2031+ int idx;
2032+
2033+ /* Always place a cycle counter into the cycle counter. */
2034+ if (event->config_base == ARMV7_PERFCTR_CPU_CYCLES) {
2035+ if (test_and_set_bit(ARMV7_CYCLE_COUNTER, cpuc->used_mask))
2036+ return -EAGAIN;
2037+
2038+ return ARMV7_CYCLE_COUNTER;
2039+ } else {
2040+ /*
2041+ * For anything other than a cycle counter, try and use
2042+ * the events counters
2043+ */
2044+ for (idx = ARMV7_COUNTER0; idx <= armpmu->num_events; ++idx) {
2045+ if (!test_and_set_bit(idx, cpuc->used_mask))
2046+ return idx;
2047+ }
2048+
2049+ /* The counters are all in use. */
2050+ return -EAGAIN;
2051+ }
2052+}
2053+
2054+static struct arm_pmu armv7pmu = {
2055+ .handle_irq = armv7pmu_handle_irq,
2056+ .enable = armv7pmu_enable_event,
2057+ .disable = armv7pmu_disable_event,
2058+ .raw_event = armv7pmu_raw_event,
2059+ .read_counter = armv7pmu_read_counter,
2060+ .write_counter = armv7pmu_write_counter,
2061+ .get_event_idx = armv7pmu_get_event_idx,
2062+ .start = armv7pmu_start,
2063+ .stop = armv7pmu_stop,
2064+ .max_period = (1LLU << 32) - 1,
2065+};
2066+
2067+static u32 __init armv7_reset_read_pmnc(void)
2068+{
2069+ u32 nb_cnt;
2070+
2071+ /* Initialize & Reset PMNC: C and P bits */
2072+ armv7_pmnc_write(ARMV7_PMNC_P | ARMV7_PMNC_C);
2073+
2074+ /* Read the nb of CNTx counters supported from PMNC */
2075+ nb_cnt = (armv7_pmnc_read() >> ARMV7_PMNC_N_SHIFT) & ARMV7_PMNC_N_MASK;
2076+
2077+ /* Add the CPU cycles counter and return */
2078+ return nb_cnt + 1;
2079+}
2080+
2081+static int __init
2082+init_hw_perf_events(void)
2083+{
2084+ unsigned long cpuid = read_cpuid_id();
2085+ unsigned long implementor = (cpuid & 0xFF000000) >> 24;
2086+ unsigned long part_number = (cpuid & 0xFFF0);
2087+
2088+ /* We only support ARM CPUs implemented by ARM at the moment. */
2089+ if (0x41 == implementor) {
2090+ switch (part_number) {
2091+ case 0xB360: /* ARM1136 */
2092+ case 0xB560: /* ARM1156 */
2093+ case 0xB760: /* ARM1176 */
2094+ armpmu = &armv6pmu;
2095+ memcpy(armpmu_perf_cache_map, armv6_perf_cache_map,
2096+ sizeof(armv6_perf_cache_map));
2097+ perf_max_events = armv6pmu.num_events;
2098+ break;
2099+ case 0xB020: /* ARM11mpcore */
2100+ armpmu = &armv6mpcore_pmu;
2101+ memcpy(armpmu_perf_cache_map,
2102+ armv6mpcore_perf_cache_map,
2103+ sizeof(armv6mpcore_perf_cache_map));
2104+ perf_max_events = armv6mpcore_pmu.num_events;
2105+ break;
2106+ case 0xC080: /* Cortex-A8 */
2107+ armv7pmu.name = ARMV7_PMU_CORTEX_A8_NAME;
2108+ memcpy(armpmu_perf_cache_map, armv7_a8_perf_cache_map,
2109+ sizeof(armv7_a8_perf_cache_map));
2110+ armv7pmu.event_map = armv7_a8_pmu_event_map;
2111+ armpmu = &armv7pmu;
2112+
2113+ /* Reset PMNC and read the nb of CNTx counters
2114+ supported */
2115+ armv7pmu.num_events = armv7_reset_read_pmnc();
2116+ perf_max_events = armv7pmu.num_events;
2117+ break;
2118+ case 0xC090: /* Cortex-A9 */
2119+ armv7pmu.name = ARMV7_PMU_CORTEX_A9_NAME;
2120+ memcpy(armpmu_perf_cache_map, armv7_a9_perf_cache_map,
2121+ sizeof(armv7_a9_perf_cache_map));
2122+ armv7pmu.event_map = armv7_a9_pmu_event_map;
2123+ armpmu = &armv7pmu;
2124+
2125+ /* Reset PMNC and read the nb of CNTx counters
2126+ supported */
2127+ armv7pmu.num_events = armv7_reset_read_pmnc();
2128+ perf_max_events = armv7pmu.num_events;
2129+ break;
2130+ default:
2131+ pr_info("no hardware support available\n");
2132+ perf_max_events = -1;
2133+ }
2134+ }
2135+
2136+ if (armpmu)
2137+ pr_info("enabled with %s PMU driver, %d counters available\n",
2138+ armpmu->name, armpmu->num_events);
2139+
2140+ return 0;
2141+}
2142+arch_initcall(init_hw_perf_events);
2143+
2144+/*
2145+ * Callchain handling code.
2146+ */
2147+static inline void
2148+callchain_store(struct perf_callchain_entry *entry,
2149+ u64 ip)
2150+{
2151+ if (entry->nr < PERF_MAX_STACK_DEPTH)
2152+ entry->ip[entry->nr++] = ip;
2153+}
2154+
2155+/*
2156+ * The registers we're interested in are at the end of the variable
2157+ * length saved register structure. The fp points at the end of this
2158+ * structure so the address of this struct is:
2159+ * (struct frame_tail *)(xxx->fp)-1
2160+ *
2161+ * This code has been adapted from the ARM OProfile support.
2162+ */
2163+struct frame_tail {
2164+ struct frame_tail *fp;
2165+ unsigned long sp;
2166+ unsigned long lr;
2167+} __attribute__((packed));
2168+
2169+/*
2170+ * Get the return address for a single stackframe and return a pointer to the
2171+ * next frame tail.
2172+ */
2173+static struct frame_tail *
2174+user_backtrace(struct frame_tail *tail,
2175+ struct perf_callchain_entry *entry)
2176+{
2177+ struct frame_tail buftail;
2178+
2179+ /* Also check accessibility of one struct frame_tail beyond */
2180+ if (!access_ok(VERIFY_READ, tail, sizeof(buftail)))
2181+ return NULL;
2182+ if (__copy_from_user_inatomic(&buftail, tail, sizeof(buftail)))
2183+ return NULL;
2184+
2185+ callchain_store(entry, buftail.lr);
2186+
2187+ /*
2188+ * Frame pointers should strictly progress back up the stack
2189+ * (towards higher addresses).
2190+ */
2191+ if (tail >= buftail.fp)
2192+ return NULL;
2193+
2194+ return buftail.fp - 1;
2195+}
2196+
2197+static void
2198+perf_callchain_user(struct pt_regs *regs,
2199+ struct perf_callchain_entry *entry)
2200+{
2201+ struct frame_tail *tail;
2202+
2203+ callchain_store(entry, PERF_CONTEXT_USER);
2204+
2205+ if (!user_mode(regs))
2206+ regs = task_pt_regs(current);
2207+
2208+ tail = (struct frame_tail *)regs->ARM_fp - 1;
2209+
2210+ while (tail && !((unsigned long)tail & 0x3))
2211+ tail = user_backtrace(tail, entry);
2212+}
2213+
2214+/*
2215+ * Gets called by walk_stackframe() for every stackframe. This will be called
2216+ * whist unwinding the stackframe and is like a subroutine return so we use
2217+ * the PC.
2218+ */
2219+static int
2220+callchain_trace(struct stackframe *fr,
2221+ void *data)
2222+{
2223+ struct perf_callchain_entry *entry = data;
2224+ callchain_store(entry, fr->pc);
2225+ return 0;
2226+}
2227+
2228+static void
2229+perf_callchain_kernel(struct pt_regs *regs,
2230+ struct perf_callchain_entry *entry)
2231+{
2232+ struct stackframe fr;
2233+
2234+ callchain_store(entry, PERF_CONTEXT_KERNEL);
2235+ fr.fp = regs->ARM_fp;
2236+ fr.sp = regs->ARM_sp;
2237+ fr.lr = regs->ARM_lr;
2238+ fr.pc = regs->ARM_pc;
2239+ walk_stackframe(&fr, callchain_trace, entry);
2240+}
2241+
2242+static void
2243+perf_do_callchain(struct pt_regs *regs,
2244+ struct perf_callchain_entry *entry)
2245+{
2246+ int is_user;
2247+
2248+ if (!regs)
2249+ return;
2250+
2251+ is_user = user_mode(regs);
2252+
2253+ if (!current || !current->pid)
2254+ return;
2255+
2256+ if (is_user && current->state != TASK_RUNNING)
2257+ return;
2258+
2259+ if (!is_user)
2260+ perf_callchain_kernel(regs, entry);
2261+
2262+ if (current->mm)
2263+ perf_callchain_user(regs, entry);
2264+}
2265+
2266+static DEFINE_PER_CPU(struct perf_callchain_entry, pmc_irq_entry);
2267+
2268+struct perf_callchain_entry *
2269+perf_callchain(struct pt_regs *regs)
2270+{
2271+ struct perf_callchain_entry *entry = &__get_cpu_var(pmc_irq_entry);
2272+
2273+ entry->nr = 0;
2274+ perf_do_callchain(regs, entry);
2275+ return entry;
2276+}
arch/arm/kernel/pmu.c+103−0
@@ -0,0 +1,103 @@
1+/*
2+ * linux/arch/arm/kernel/pmu.c
3+ *
4+ * Copyright (C) 2009 picoChip Designs Ltd, Jamie Iles
5+ *
6+ * This program is free software; you can redistribute it and/or modify
7+ * it under the terms of the GNU General Public License version 2 as
8+ * published by the Free Software Foundation.
9+ *
10+ */
11+
12+#include <linux/cpumask.h>
13+#include <linux/err.h>
14+#include <linux/interrupt.h>
15+#include <linux/kernel.h>
16+#include <linux/module.h>
17+
18+#include <asm/pmu.h>
19+
20+/*
21+ * Define the IRQs for the system. We could use something like a platform
22+ * device but that seems fairly heavyweight for this. Also, the performance
23+ * counters can't be removed or hotplugged.
24+ *
25+ * Ordering is important: init_pmu() will use the ordering to set the affinity
26+ * to the corresponding core. e.g. the first interrupt will go to cpu 0, the
27+ * second goes to cpu 1 etc.
28+ */
29+static const int irqs[] = {
30+#if defined(CONFIG_ARCH_OMAP2)
31+ 3,
32+#elif defined(CONFIG_ARCH_BCMRING)
33+ IRQ_PMUIRQ,
34+#elif defined(CONFIG_MACH_REALVIEW_EB)
35+ IRQ_EB11MP_PMU_CPU0,
36+ IRQ_EB11MP_PMU_CPU1,
37+ IRQ_EB11MP_PMU_CPU2,
38+ IRQ_EB11MP_PMU_CPU3,
39+#elif defined(CONFIG_ARCH_OMAP3)
40+ INT_34XX_BENCH_MPU_EMUL,
41+#elif defined(CONFIG_ARCH_IOP32X)
42+ IRQ_IOP32X_CORE_PMU,
43+#elif defined(CONFIG_ARCH_IOP33X)
44+ IRQ_IOP33X_CORE_PMU,
45+#elif defined(CONFIG_ARCH_PXA)
46+ IRQ_PMU,
47+#endif
48+};
49+
50+static const struct pmu_irqs pmu_irqs = {
51+ .irqs = irqs,
52+ .num_irqs = ARRAY_SIZE(irqs),
53+};
54+
55+static volatile long pmu_lock;
56+
57+const struct pmu_irqs *
58+reserve_pmu(void)
59+{
60+ return test_and_set_bit_lock(0, &pmu_lock) ? ERR_PTR(-EBUSY) :
61+ &pmu_irqs;
62+}
63+EXPORT_SYMBOL_GPL(reserve_pmu);
64+
65+int
66+release_pmu(const struct pmu_irqs *irqs)
67+{
68+ if (WARN_ON(irqs != &pmu_irqs))
69+ return -EINVAL;
70+ clear_bit_unlock(0, &pmu_lock);
71+ return 0;
72+}
73+EXPORT_SYMBOL_GPL(release_pmu);
74+
75+static int
76+set_irq_affinity(int irq,
77+ unsigned int cpu)
78+{
79+#ifdef CONFIG_SMP
80+ int err = irq_set_affinity(irq, cpumask_of(cpu));
81+ if (err)
82+ pr_warning("unable to set irq affinity (irq=%d, cpu=%u)\n",
83+ irq, cpu);
84+ return err;
85+#else
86+ return 0;
87+#endif
88+}
89+
90+int
91+init_pmu(void)
92+{
93+ int i, err = 0;
94+
95+ for (i = 0; i < pmu_irqs.num_irqs; ++i) {
96+ err = set_irq_affinity(pmu_irqs.irqs[i], i);
97+ if (err)
98+ break;
99+ }
100+
101+ return err;
102+}
103+EXPORT_SYMBOL_GPL(init_pmu);
arch/arm/kernel/ptrace.c+35−18
@@ -499,10 +499,41 @@ static struct undef_hook thumb_break_hook = { · 498 unmodified lines
499499 .fn = break_trap,
500500 };
501501
502+static int thumb2_break_trap(struct pt_regs *regs, unsigned int instr)
503+{
504+ unsigned int instr2;
505+ void __user *pc;
506+
507+ /* Check the second half of the instruction. */
508+ pc = (void __user *)(instruction_pointer(regs) + 2);
509+
510+ if (processor_mode(regs) == SVC_MODE) {
511+ instr2 = *(u16 *) pc;
512+ } else {
513+ get_user(instr2, (u16 __user *)pc);
514+ }
515+
516+ if (instr2 == 0xa000) {
517+ ptrace_break(current, regs);
518+ return 0;
519+ } else {
520+ return 1;
521+ }
522+}
523+
524+static struct undef_hook thumb2_break_hook = {
525+ .instr_mask = 0xffff,
526+ .instr_val = 0xf7f0,
527+ .cpsr_mask = PSR_T_BIT,
528+ .cpsr_val = PSR_T_BIT,
529+ .fn = thumb2_break_trap,
530+};
531+
502532 static int __init ptrace_break_init(void)
503533 {
504534 register_undef_hook(&arm_break_hook);
505535 register_undef_hook(&thumb_break_hook);
536+ register_undef_hook(&thumb2_break_hook);
506537 return 0;
507538 }
508539
@@ -669,7 +700,7 @@ static int ptrace_getvfpregs(struct task_struct *tsk, void __user *data) · 160 unmodified lines
669700 union vfp_state *vfp = &thread->vfpstate;
670701 struct user_vfp __user *ufp = data;
671702
672− vfp_sync_state(thread);
703+ vfp_sync_hwstate(thread);
673704
674705 /* copy the floating point registers */
675706 if (copy_to_user(&ufp->fpregs, &vfp->hard.fpregs,
@@ -692,7 +723,7 @@ static int ptrace_setvfpregs(struct task_struct *tsk, void __user *data) · 16 unmodified lines
692723 union vfp_state *vfp = &thread->vfpstate;
693724 struct user_vfp __user *ufp = data;
694725
695− vfp_sync_state(thread);
726+ vfp_sync_hwstate(thread);
696727
697728 /* copy the floating point registers */
698729 if (copy_from_user(&vfp->hard.fpregs, &ufp->fpregs,
@@ -703,6 +734,8 @@ static int ptrace_setvfpregs(struct task_struct *tsk, void __user *data) · 4 unmodified lines
703734 if (get_user(vfp->hard.fpscr, &ufp->fpscr))
704735 return -EFAULT;
705736
737+ vfp_flush_hwstate(thread);
738+
706739 return 0;
707740 }
708741 #endif
@@ -712,26 +745,10 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data) · 3 unmodified lines
712745 int ret;
713746
714747 switch (request) {
715− /*
716− * read word at location "addr" in the child process.
717− */
718− case PTRACE_PEEKTEXT:
719− case PTRACE_PEEKDATA:
720− ret = generic_ptrace_peekdata(child, addr, data);
721− break;
722−
723748 case PTRACE_PEEKUSR:
724749 ret = ptrace_read_user(child, addr, (unsigned long __user *)data);
725750 break;
726751
727− /*
728− * write the word at location addr.
729− */
730− case PTRACE_POKETEXT:
731− case PTRACE_POKEDATA:
732− ret = generic_ptrace_pokedata(child, addr, data);
733− break;
734−
735752 case PTRACE_POKEUSR:
736753 ret = ptrace_write_user(child, addr, data);
737754 break;
arch/arm/kernel/setup.c+31−48
@@ -24,6 +24,7 @@ · 23 unmodified lines
2424 #include <linux/interrupt.h>
2525 #include <linux/smp.h>
2626 #include <linux/fs.h>
27+#include <linux/proc_fs.h>
2728
2829 #include <asm/unified.h>
2930 #include <asm/cpu.h>
@@ -118,7 +119,7 @@ EXPORT_SYMBOL(elf_platform); · 88 unmodified lines
118119
119120 static const char *cpu_name;
120121 static const char *machine_name;
121−static char __initdata command_line[COMMAND_LINE_SIZE];
122+static char __initdata cmd_line[COMMAND_LINE_SIZE];
122123
123124 static char default_command_line[COMMAND_LINE_SIZE] __initdata = CONFIG_CMDLINE;
124125 static union { char c[4]; unsigned long l; } endian_test __initdata = { { 'l', '?', '?', 'b' } };
@@ -418,10 +419,11 @@ static int __init arm_add_memory(unsigned long start, unsigned long size) · 293 unmodified lines
418419 * Pick out the memory size. We look for mem=size@start,
419420 * where start and size are "size[KkMm]"
420421 */
421−static void __init early_mem(char **p)
422+static int __init early_mem(char *p)
422423 {
423424 static int usermem __initdata = 0;
424425 unsigned long size, start;
426+ char *endp;
425427
426428 /*
427429 * If the user specifies memory size, we
@@ -434,52 +436,15 @@ static void __init early_mem(char **p) · 6 unmodified lines
434436 }
435437
436438 start = PHYS_OFFSET;
437− size = memparse(*p, p);
438− if (**p == '@')
439− start = memparse(*p + 1, p);
439+ size = memparse(p, &endp);
440+ if (*endp == '@')
441+ start = memparse(endp + 1, NULL);
440442
441443 arm_add_memory(start, size);
442−}
443−__early_param("mem=", early_mem);
444444
445−/*
446− * Initial parsing of the command line.
447− */
448−static void __init parse_cmdline(char **cmdline_p, char *from)
449−{
450− char c = ' ', *to = command_line;
451− int len = 0;
452−
453− for (;;) {
454− if (c == ' ') {
455− extern struct early_params __early_begin, __early_end;
456− struct early_params *p;
457−
458− for (p = &__early_begin; p < &__early_end; p++) {
459− int arglen = strlen(p->arg);
460−
461− if (memcmp(from, p->arg, arglen) == 0) {
462− if (to != command_line)
463− to -= 1;
464− from += arglen;
465− p->fn(&from);
466−
467− while (*from != ' ' && *from != '\0')
468− from++;
469− break;
470− }
471− }
472− }
473− c = *from++;
474− if (!c)
475− break;
476− if (COMMAND_LINE_SIZE <= ++len)
477− break;
478− *to++ = c;
479− }
480− *to = '\0';
481− *cmdline_p = command_line;
445+ return 0;
482446 }
447+early_param("mem", early_mem);
483448
484449 static void __init
485450 setup_ramdisk(int doload, int prompt, int image_start, unsigned int rd_sz)
@@ -740,9 +705,15 @@ void __init setup_arch(char **cmdline_p) · 254 unmodified lines
740705 init_mm.end_data = (unsigned long) _edata;
741706 init_mm.brk = (unsigned long) _end;
742707
743− memcpy(boot_command_line, from, COMMAND_LINE_SIZE);
744− boot_command_line[COMMAND_LINE_SIZE-1] = '\0';
745− parse_cmdline(cmdline_p, from);
708+ /* parse_early_param needs a boot_command_line */
709+ strlcpy(boot_command_line, from, COMMAND_LINE_SIZE);
710+
711+ /* populate cmd_line too for later use, preserving boot_command_line */
712+ strlcpy(cmd_line, boot_command_line, COMMAND_LINE_SIZE);
713+ *cmdline_p = cmd_line;
714+
715+ parse_early_param();
716+
746717 paging_init(mdesc);
747718 request_standard_resources(&meminfo, mdesc);
748719
@@ -783,9 +754,21 @@ static int __init topology_init(void) · 34 unmodified lines
783754
784755 return 0;
785756 }
786−
787757 subsys_initcall(topology_init);
788758
759+#ifdef CONFIG_HAVE_PROC_CPU
760+static int __init proc_cpu_init(void)
761+{
762+ struct proc_dir_entry *res;
763+
764+ res = proc_mkdir("cpu", NULL);
765+ if (!res)
766+ return -ENOMEM;
767+ return 0;
768+}
769+fs_initcall(proc_cpu_init);
770+#endif
771+
789772 static const char *hwcap_str[] = {
790773 "swp",
791774 "half",
arch/arm/kernel/time.c+0−178
@@ -10,11 +10,6 @@ · 9 unmodified lines
1010 *
1111 * This file contains the ARM-specific time handling details:
1212 * reading the RTC at bootup, etc...
13− *
14− * 1994-07-02 Alan Modra
15− * fixed set_rtc_mmss, fixed time.year for >= 2000, new mktime
16− * 1998-12-20 Updated NTP code according to technical memorandum Jan '96
17− * "A Kernel Model for Precision Timekeeping" by Dave Mills
1813 */
1914 #include <linux/module.h>
2015 #include <linux/kernel.h>
@@ -77,11 +72,6 @@ unsigned long profile_pc(struct pt_regs *regs) · 56 unmodified lines
7772 EXPORT_SYMBOL(profile_pc);
7873 #endif
7974
80−/*
81− * hook for setting the RTC's idea of the current time.
82− */
83−int (*set_rtc)(void);
84−
8575 #ifndef CONFIG_GENERIC_TIME
8676 static unsigned long dummy_gettimeoffset(void)
8777 {
@@ -89,140 +79,6 @@ static unsigned long dummy_gettimeoffset(void) · 1 unmodified line
8979 }
9080 #endif
9181
92−static unsigned long next_rtc_update;
93−
94−/*
95− * If we have an externally synchronized linux clock, then update
96− * CMOS clock accordingly every ~11 minutes. set_rtc() has to be
97− * called as close as possible to 500 ms before the new second
98− * starts.
99− */
100−static inline void do_set_rtc(void)
101−{
102− if (!ntp_synced() || set_rtc == NULL)
103− return;
104−
105− if (next_rtc_update &&
106− time_before((unsigned long)xtime.tv_sec, next_rtc_update))
107− return;
108−
109− if (xtime.tv_nsec < 500000000 - ((unsigned) tick_nsec >> 1) &&
110− xtime.tv_nsec >= 500000000 + ((unsigned) tick_nsec >> 1))
111− return;
112−
113− if (set_rtc())
114− /*
115− * rtc update failed. Try again in 60s
116− */
117− next_rtc_update = xtime.tv_sec + 60;
118− else
119− next_rtc_update = xtime.tv_sec + 660;
120−}
121−
122−#ifdef CONFIG_LEDS
123−
124−static void dummy_leds_event(led_event_t evt)
125−{
126−}
127−
128−void (*leds_event)(led_event_t) = dummy_leds_event;
129−
130−struct leds_evt_name {
131− const char name[8];
132− int on;
133− int off;
134−};
135−
136−static const struct leds_evt_name evt_names[] = {
137− { "amber", led_amber_on, led_amber_off },
138− { "blue", led_blue_on, led_blue_off },
139− { "green", led_green_on, led_green_off },
140− { "red", led_red_on, led_red_off },
141−};
142−
143−static ssize_t leds_store(struct sys_device *dev,
144− struct sysdev_attribute *attr,
145− const char *buf, size_t size)
146−{
147− int ret = -EINVAL, len = strcspn(buf, " ");
148−
149− if (len > 0 && buf[len] == '\0')
150− len--;
151−
152− if (strncmp(buf, "claim", len) == 0) {
153− leds_event(led_claim);
154− ret = size;
155− } else if (strncmp(buf, "release", len) == 0) {
156− leds_event(led_release);
157− ret = size;
158− } else {
159− int i;
160−
161− for (i = 0; i < ARRAY_SIZE(evt_names); i++) {
162− if (strlen(evt_names[i].name) != len ||
163− strncmp(buf, evt_names[i].name, len) != 0)
164− continue;
165− if (strncmp(buf+len, " on", 3) == 0) {
166− leds_event(evt_names[i].on);
167− ret = size;
168− } else if (strncmp(buf+len, " off", 4) == 0) {
169− leds_event(evt_names[i].off);
170− ret = size;
171− }
172− break;
173− }
174− }
175− return ret;
176−}
177−
178−static SYSDEV_ATTR(event, 0200, NULL, leds_store);
179−
180−static int leds_suspend(struct sys_device *dev, pm_message_t state)
181−{
182− leds_event(led_stop);
183− return 0;
184−}
185−
186−static int leds_resume(struct sys_device *dev)
187−{
188− leds_event(led_start);
189− return 0;
190−}
191−
192−static int leds_shutdown(struct sys_device *dev)
193−{
194− leds_event(led_halted);
195− return 0;
196−}
197−
198−static struct sysdev_class leds_sysclass = {
199− .name = "leds",
200− .shutdown = leds_shutdown,
201− .suspend = leds_suspend,
202− .resume = leds_resume,
203−};
204−
205−static struct sys_device leds_device = {
206− .id = 0,
207− .cls = &leds_sysclass,
208−};
209−
210−static int __init leds_init(void)
211−{
212− int ret;
213− ret = sysdev_class_register(&leds_sysclass);
214− if (ret == 0)
215− ret = sysdev_register(&leds_device);
216− if (ret == 0)
217− ret = sysdev_create_file(&leds_device, &attr_event);
218− return ret;
219−}
220−
221−device_initcall(leds_init);
222−
223−EXPORT_SYMBOL(leds_event);
224−#endif
225−
22682 #ifdef CONFIG_LEDS_TIMER
22783 static inline void do_leds(void)
22884 {
@@ -295,39 +151,6 @@ int do_settimeofday(struct timespec *tv) · 66 unmodified lines
295151 EXPORT_SYMBOL(do_settimeofday);
296152 #endif /* !CONFIG_GENERIC_TIME */
297153
298−/**
299− * save_time_delta - Save the offset between system time and RTC time
300− * @delta: pointer to timespec to store delta
301− * @rtc: pointer to timespec for current RTC time
302− *
303− * Return a delta between the system time and the RTC time, such
304− * that system time can be restored later with restore_time_delta()
305− */
306−void save_time_delta(struct timespec *delta, struct timespec *rtc)
307−{
308− set_normalized_timespec(delta,
309− xtime.tv_sec - rtc->tv_sec,
310− xtime.tv_nsec - rtc->tv_nsec);
311−}
312−EXPORT_SYMBOL(save_time_delta);
313−
314−/**
315− * restore_time_delta - Restore the current system time
316− * @delta: delta returned by save_time_delta()
317− * @rtc: pointer to timespec for current RTC time
318− */
319−void restore_time_delta(struct timespec *delta, struct timespec *rtc)
320−{
321− struct timespec ts;
322−
323− set_normalized_timespec(&ts,
324− delta->tv_sec + rtc->tv_sec,
325− delta->tv_nsec + rtc->tv_nsec);
326−
327− do_settimeofday(&ts);
328−}
329−EXPORT_SYMBOL(restore_time_delta);
330−
331154 #ifndef CONFIG_GENERIC_CLOCKEVENTS
332155 /*
333156 * Kernel system timer support.
@@ -336,7 +159,6 @@ void timer_tick(void) · 2 unmodified lines
336159 {
337160 profile_tick(CPU_PROFILING);
338161 do_leds();
339− do_set_rtc();
340162 write_seqlock(&xtime_lock);
341163 do_timer(1);
342164 write_sequnlock(&xtime_lock);
arch/arm/kernel/traps.c+25−10
@@ -12,15 +12,17 @@ · 11 unmodified lines
1212 * 'linux/arch/arm/lib/traps.S'. Mostly a debugging aid, but will probably
1313 * kill the offending process.
1414 */
15−#include <linux/module.h>
1615 #include <linux/signal.h>
17−#include <linux/spinlock.h>
1816 #include <linux/personality.h>
1917 #include <linux/kallsyms.h>
20−#include <linux/delay.h>
18+#include <linux/spinlock.h>
19+#include <linux/uaccess.h>
2120 #include <linux/hardirq.h>
21+#include <linux/kdebug.h>
22+#include <linux/module.h>
23+#include <linux/kexec.h>
24+#include <linux/delay.h>
2225 #include <linux/init.h>
23−#include <linux/uaccess.h>
2426
2527 #include <asm/atomic.h>
2628 #include <asm/cacheflush.h>
@@ -224,14 +226,21 @@ void show_stack(struct task_struct *tsk, unsigned long *sp) · 197 unmodified lines
224226 #define S_SMP ""
225227 #endif
226228
227−static void __die(const char *str, int err, struct thread_info *thread, struct pt_regs *regs)
229+static int __die(const char *str, int err, struct thread_info *thread, struct pt_regs *regs)
228230 {
229231 struct task_struct *tsk = thread->task;
230232 static int die_counter;
233+ int ret;
231234
232235 printk(KERN_EMERG "Internal error: %s: %x [#%d]" S_PREEMPT S_SMP "\n",
233236 str, err, ++die_counter);
234237 sysfs_printk_last_file();
238+
239+ /* trap and error numbers are mostly meaningless on ARM */
240+ ret = notify_die(DIE_OOPS, str, regs, err, tsk->thread.trap_no, SIGSEGV);
241+ if (ret == NOTIFY_STOP)
242+ return ret;
243+
235244 print_modules();
236245 __show_regs(regs);
237246 printk(KERN_EMERG "Process %.*s (pid: %d, stack limit = 0x%p)\n",
@@ -243,6 +252,8 @@ static void __die(const char *str, int err, struct thread_info *thread, struct p · 5 unmodified lines
243252 dump_backtrace(regs, tsk);
244253 dump_instr(KERN_EMERG, regs);
245254 }
255+
256+ return ret;
246257 }
247258
248259 DEFINE_SPINLOCK(die_lock);
@@ -250,16 +261,21 @@ DEFINE_SPINLOCK(die_lock); · 1 unmodified line
250261 /*
251262 * This function is protected against re-entrancy.
252263 */
253−NORET_TYPE void die(const char *str, struct pt_regs *regs, int err)
264+void die(const char *str, struct pt_regs *regs, int err)
254265 {
255266 struct thread_info *thread = current_thread_info();
267+ int ret;
256268
257269 oops_enter();
258270
259271 spin_lock_irq(&die_lock);
260272 console_verbose();
261273 bust_spinlocks(1);
262− __die(str, err, thread, regs);
274+ ret = __die(str, err, thread, regs);
275+
276+ if (regs && kexec_should_crash(thread->task))
277+ crash_kexec(regs);
278+
263279 bust_spinlocks(0);
264280 add_taint(TAINT_DIE);
265281 spin_unlock_irq(&die_lock);
@@ -267,11 +283,10 @@ NORET_TYPE void die(const char *str, struct pt_regs *regs, int err) · 1 unmodified line
267283
268284 if (in_interrupt())
269285 panic("Fatal exception in interrupt");
270−
271286 if (panic_on_oops)
272287 panic("Fatal exception");
273−
274− do_exit(SIGSEGV);
288+ if (ret != NOTIFY_STOP)
289+ do_exit(SIGSEGV);
275290 }
276291
277292 void arm_notify_die(const char *str, struct pt_regs *regs,
arch/arm/kernel/vmlinux.lds.S+0−4
@@ -43,10 +43,6 @@ SECTIONS · 42 unmodified lines
4343
4444 INIT_SETUP(16)
4545
46− __early_begin = .;
47− *(.early_param.init)
48− __early_end = .;
49−
5046 INIT_CALLS
5147 CON_INITCALL
5248 SECURITY_INITCALL
arch/arm/mach-aaec2000/include/mach/debug-macro.S+1−1
@@ -10,7 +10,7 @@ · 9 unmodified lines
1010 */
1111
1212 #include "hardware.h"
13− .macro addruart,rx
13+ .macro addruart, rx, tmp
1414 mrc p15, 0, \rx, c1, c0
1515 tst \rx, #1 @ MMU enabled?
1616 moveq \rx, #0x80000000 @ physical
arch/arm/mach-at91/Kconfig+23−0
@@ -89,6 +89,12 @@ config ARCH_AT91CAP9 · 88 unmodified lines
8989 select GENERIC_CLOCKEVENTS
9090 select HAVE_FB_ATMEL
9191
92+config ARCH_AT572D940HF
93+ bool "AT572D940HF"
94+ select CPU_ARM926T
95+ select GENERIC_TIME
96+ select GENERIC_CLOCKEVENTS
97+
9298 config ARCH_AT91X40
9399 bool "AT91x40"
94100
@@ -390,6 +396,23 @@ endif · 295 unmodified lines
390396
391397 # ----------------------------------------------------------
392398
399+if ARCH_AT572D940HF
400+
401+comment "AT572D940HF Board Type"
402+
403+config MACH_AT572D940HFEB
404+ bool "AT572D940HF-EK"
405+ depends on ARCH_AT572D940HF
406+ select HAVE_AT91_DATAFLASH_CARD
407+ select HAVE_NAND_ATMEL_BUSWIDTH_16
408+ help
409+ Select this if you are using Atmel's AT572D940HF-EK evaluation kit.
410+ <http://www.atmel.com/products/diopsis/default.asp>
411+
412+endif
413+
414+# ----------------------------------------------------------
415+
393416 if ARCH_AT91X40
394417
395418 comment "AT91X40 Board Type"
arch/arm/mach-at91/Makefile+4−0
@@ -19,6 +19,7 @@ obj-$(CONFIG_ARCH_AT91SAM9RL) += at91sam9rl.o at91sam926x_time.o at91sam9rl_devi · 18 unmodified lines
1919 obj-$(CONFIG_ARCH_AT91SAM9G20) += at91sam9260.o at91sam926x_time.o at91sam9260_devices.o sam9_smc.o
2020 obj-$(CONFIG_ARCH_AT91SAM9G45) += at91sam9g45.o at91sam926x_time.o at91sam9g45_devices.o sam9_smc.o
2121 obj-$(CONFIG_ARCH_AT91CAP9) += at91cap9.o at91sam926x_time.o at91cap9_devices.o sam9_smc.o
22+obj-$(CONFIG_ARCH_AT572D940HF) += at572d940hf.o at91sam926x_time.o at572d940hf_devices.o sam9_smc.o
2223 obj-$(CONFIG_ARCH_AT91X40) += at91x40.o at91x40_time.o
2324
2425 # AT91RM9200 board-specific support
@@ -69,6 +70,9 @@ obj-$(CONFIG_MACH_AT91SAM9G45EKES) += board-sam9m10g45ek.o · 44 unmodified lines
6970 # AT91CAP9 board-specific support
7071 obj-$(CONFIG_MACH_AT91CAP9ADK) += board-cap9adk.o
7172
73+# AT572D940HF board-specific support
74+obj-$(CONFIG_MACH_AT572D940HFEB) += board-at572d940hf_ek.o
75+
7276 # AT91X40 board-specific support
7377 obj-$(CONFIG_MACH_AT91EB01) += board-eb01.o
7478
arch/arm/mach-at91/at572d940hf.c+377−0
@@ -0,0 +1,377 @@
1+/*
2+ * arch/arm/mach-at91/at572d940hf.c
3+ *
4+ * Antonio R. Costa <costa.antonior@gmail.com>
5+ * Copyright (C) 2008 Atmel
6+ *
7+ * Copyright (C) 2005 SAN People
8+ *
9+ * This program is free software; you can redistribute it and/or modify
10+ * it under the terms of the GNU General Public License as published by
11+ * the Free Software Foundation; either version 2 of the License, or
12+ * (at your option) any later version.
13+ *
14+ * This program is distributed in the hope that it will be useful,
15+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
16+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17+ * GNU General Public License for more details.
18+ *
19+ * You should have received a copy of the GNU General Public License
20+ * along with this program; if not, write to the Free Software
21+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22+ *
23+ */
24+
25+#include <linux/module.h>
26+
27+#include <asm/mach/irq.h>
28+#include <asm/mach/arch.h>
29+#include <asm/mach/map.h>
30+#include <mach/at572d940hf.h>
31+#include <mach/at91_pmc.h>
32+#include <mach/at91_rstc.h>
33+
34+#include "generic.h"
35+#include "clock.h"
36+
37+static struct map_desc at572d940hf_io_desc[] __initdata = {
38+ {
39+ .virtual = AT91_VA_BASE_SYS,
40+ .pfn = __phys_to_pfn(AT91_BASE_SYS),
41+ .length = SZ_16K,
42+ .type = MT_DEVICE,
43+ }, {
44+ .virtual = AT91_IO_VIRT_BASE - AT572D940HF_SRAM_SIZE,
45+ .pfn = __phys_to_pfn(AT572D940HF_SRAM_BASE),
46+ .length = AT572D940HF_SRAM_SIZE,
47+ .type = MT_DEVICE,
48+ },
49+};
50+
51+/* --------------------------------------------------------------------
52+ * Clocks
53+ * -------------------------------------------------------------------- */
54+
55+/*
56+ * The peripheral clocks.
57+ */
58+static struct clk pioA_clk = {
59+ .name = "pioA_clk",
60+ .pmc_mask = 1 << AT572D940HF_ID_PIOA,
61+ .type = CLK_TYPE_PERIPHERAL,
62+};
63+static struct clk pioB_clk = {
64+ .name = "pioB_clk",
65+ .pmc_mask = 1 << AT572D940HF_ID_PIOB,
66+ .type = CLK_TYPE_PERIPHERAL,
67+};
68+static struct clk pioC_clk = {
69+ .name = "pioC_clk",
70+ .pmc_mask = 1 << AT572D940HF_ID_PIOC,
71+ .type = CLK_TYPE_PERIPHERAL,
72+};
73+static struct clk macb_clk = {
74+ .name = "macb_clk",
75+ .pmc_mask = 1 << AT572D940HF_ID_EMAC,
76+ .type = CLK_TYPE_PERIPHERAL,
77+};
78+static struct clk usart0_clk = {
79+ .name = "usart0_clk",
80+ .pmc_mask = 1 << AT572D940HF_ID_US0,
81+ .type = CLK_TYPE_PERIPHERAL,
82+};
83+static struct clk usart1_clk = {
84+ .name = "usart1_clk",
85+ .pmc_mask = 1 << AT572D940HF_ID_US1,
86+ .type = CLK_TYPE_PERIPHERAL,
87+};
88+static struct clk usart2_clk = {
89+ .name = "usart2_clk",
90+ .pmc_mask = 1 << AT572D940HF_ID_US2,
91+ .type = CLK_TYPE_PERIPHERAL,
92+};
93+static struct clk mmc_clk = {
94+ .name = "mci_clk",
95+ .pmc_mask = 1 << AT572D940HF_ID_MCI,
96+ .type = CLK_TYPE_PERIPHERAL,
97+};
98+static struct clk udc_clk = {
99+ .name = "udc_clk",
100+ .pmc_mask = 1 << AT572D940HF_ID_UDP,
101+ .type = CLK_TYPE_PERIPHERAL,
102+};
103+static struct clk twi0_clk = {
104+ .name = "twi0_clk",
105+ .pmc_mask = 1 << AT572D940HF_ID_TWI0,
106+ .type = CLK_TYPE_PERIPHERAL,
107+};
108+static struct clk spi0_clk = {
109+ .name = "spi0_clk",
110+ .pmc_mask = 1 << AT572D940HF_ID_SPI0,
111+ .type = CLK_TYPE_PERIPHERAL,
112+};
113+static struct clk spi1_clk = {
114+ .name = "spi1_clk",
115+ .pmc_mask = 1 << AT572D940HF_ID_SPI1,
116+ .type = CLK_TYPE_PERIPHERAL,
117+};
118+static struct clk ssc0_clk = {
119+ .name = "ssc0_clk",
120+ .pmc_mask = 1 << AT572D940HF_ID_SSC0,
121+ .type = CLK_TYPE_PERIPHERAL,
122+};
123+static struct clk ssc1_clk = {
124+ .name = "ssc1_clk",
125+ .pmc_mask = 1 << AT572D940HF_ID_SSC1,
126+ .type = CLK_TYPE_PERIPHERAL,
127+};
128+static struct clk ssc2_clk = {
129+ .name = "ssc2_clk",
130+ .pmc_mask = 1 << AT572D940HF_ID_SSC2,
131+ .type = CLK_TYPE_PERIPHERAL,
132+};
133+static struct clk tc0_clk = {
134+ .name = "tc0_clk",
135+ .pmc_mask = 1 << AT572D940HF_ID_TC0,
136+ .type = CLK_TYPE_PERIPHERAL,
137+};
138+static struct clk tc1_clk = {
139+ .name = "tc1_clk",
140+ .pmc_mask = 1 << AT572D940HF_ID_TC1,
141+ .type = CLK_TYPE_PERIPHERAL,
142+};
143+static struct clk tc2_clk = {
144+ .name = "tc2_clk",
145+ .pmc_mask = 1 << AT572D940HF_ID_TC2,
146+ .type = CLK_TYPE_PERIPHERAL,
147+};
148+static struct clk ohci_clk = {
149+ .name = "ohci_clk",
150+ .pmc_mask = 1 << AT572D940HF_ID_UHP,
151+ .type = CLK_TYPE_PERIPHERAL,
152+};
153+static struct clk ssc3_clk = {
154+ .name = "ssc3_clk",
155+ .pmc_mask = 1 << AT572D940HF_ID_SSC3,
156+ .type = CLK_TYPE_PERIPHERAL,
157+};
158+static struct clk twi1_clk = {
159+ .name = "twi1_clk",
160+ .pmc_mask = 1 << AT572D940HF_ID_TWI1,
161+ .type = CLK_TYPE_PERIPHERAL,
162+};
163+static struct clk can0_clk = {
164+ .name = "can0_clk",
165+ .pmc_mask = 1 << AT572D940HF_ID_CAN0,
166+ .type = CLK_TYPE_PERIPHERAL,
167+};
168+static struct clk can1_clk = {
169+ .name = "can1_clk",
170+ .pmc_mask = 1 << AT572D940HF_ID_CAN1,
171+ .type = CLK_TYPE_PERIPHERAL,
172+};
173+static struct clk mAgicV_clk = {
174+ .name = "mAgicV_clk",
175+ .pmc_mask = 1 << AT572D940HF_ID_MSIRQ0,
176+ .type = CLK_TYPE_PERIPHERAL,
177+};
178+
179+
180+static struct clk *periph_clocks[] __initdata = {
181+ &pioA_clk,
182+ &pioB_clk,
183+ &pioC_clk,
184+ &macb_clk,
185+ &usart0_clk,
186+ &usart1_clk,
187+ &usart2_clk,
188+ &mmc_clk,
189+ &udc_clk,
190+ &twi0_clk,
191+ &spi0_clk,
192+ &spi1_clk,
193+ &ssc0_clk,
194+ &ssc1_clk,
195+ &ssc2_clk,
196+ &tc0_clk,
197+ &tc1_clk,
198+ &tc2_clk,
199+ &ohci_clk,
200+ &ssc3_clk,
201+ &twi1_clk,
202+ &can0_clk,
203+ &can1_clk,
204+ &mAgicV_clk,
205+ /* irq0 .. irq2 */
206+};
207+
208+/*
209+ * The five programmable clocks.
210+ * You must configure pin multiplexing to bring these signals out.
211+ */
212+static struct clk pck0 = {
213+ .name = "pck0",
214+ .pmc_mask = AT91_PMC_PCK0,
215+ .type = CLK_TYPE_PROGRAMMABLE,
216+ .id = 0,
217+};
218+static struct clk pck1 = {
219+ .name = "pck1",
220+ .pmc_mask = AT91_PMC_PCK1,
221+ .type = CLK_TYPE_PROGRAMMABLE,
222+ .id = 1,
223+};
224+static struct clk pck2 = {
225+ .name = "pck2",
226+ .pmc_mask = AT91_PMC_PCK2,
227+ .type = CLK_TYPE_PROGRAMMABLE,
228+ .id = 2,
229+};
230+static struct clk pck3 = {
231+ .name = "pck3",
232+ .pmc_mask = AT91_PMC_PCK3,
233+ .type = CLK_TYPE_PROGRAMMABLE,
234+ .id = 3,
235+};
236+
237+static struct clk mAgicV_mem_clk = {
238+ .name = "mAgicV_mem_clk",
239+ .pmc_mask = AT91_PMC_PCK4,
240+ .type = CLK_TYPE_PROGRAMMABLE,
241+ .id = 4,
242+};
243+
244+/* HClocks */
245+static struct clk hck0 = {
246+ .name = "hck0",
247+ .pmc_mask = AT91_PMC_HCK0,
248+ .type = CLK_TYPE_SYSTEM,
249+ .id = 0,
250+};
251+static struct clk hck1 = {
252+ .name = "hck1",
253+ .pmc_mask = AT91_PMC_HCK1,
254+ .type = CLK_TYPE_SYSTEM,
255+ .id = 1,
256+};
257+
258+static void __init at572d940hf_register_clocks(void)
259+{
260+ int i;
261+
262+ for (i = 0; i < ARRAY_SIZE(periph_clocks); i++)
263+ clk_register(periph_clocks[i]);
264+
265+ clk_register(&pck0);
266+ clk_register(&pck1);
267+ clk_register(&pck2);
268+ clk_register(&pck3);
269+ clk_register(&mAgicV_mem_clk);
270+
271+ clk_register(&hck0);
272+ clk_register(&hck1);
273+}
274+
275+/* --------------------------------------------------------------------
276+ * GPIO
277+ * -------------------------------------------------------------------- */
278+
279+static struct at91_gpio_bank at572d940hf_gpio[] = {
280+ {
281+ .id = AT572D940HF_ID_PIOA,
282+ .offset = AT91_PIOA,
283+ .clock = &pioA_clk,
284+ }, {
285+ .id = AT572D940HF_ID_PIOB,
286+ .offset = AT91_PIOB,
287+ .clock = &pioB_clk,
288+ }, {
289+ .id = AT572D940HF_ID_PIOC,
290+ .offset = AT91_PIOC,
291+ .clock = &pioC_clk,
292+ }
293+};
294+
295+static void at572d940hf_reset(void)
296+{
297+ at91_sys_write(AT91_RSTC_CR, AT91_RSTC_KEY | AT91_RSTC_PROCRST | AT91_RSTC_PERRST);
298+}
299+
300+
301+/* --------------------------------------------------------------------
302+ * AT572D940HF processor initialization
303+ * -------------------------------------------------------------------- */
304+
305+void __init at572d940hf_initialize(unsigned long main_clock)
306+{
307+ /* Map peripherals */
308+ iotable_init(at572d940hf_io_desc, ARRAY_SIZE(at572d940hf_io_desc));
309+
310+ at91_arch_reset = at572d940hf_reset;
311+ at91_extern_irq = (1 << AT572D940HF_ID_IRQ0) | (1 << AT572D940HF_ID_IRQ1)
312+ | (1 << AT572D940HF_ID_IRQ2);
313+
314+ /* Init clock subsystem */
315+ at91_clock_init(main_clock);
316+
317+ /* Register the processor-specific clocks */
318+ at572d940hf_register_clocks();
319+
320+ /* Register GPIO subsystem */
321+ at91_gpio_init(at572d940hf_gpio, 3);
322+}
323+
324+/* --------------------------------------------------------------------
325+ * Interrupt initialization
326+ * -------------------------------------------------------------------- */
327+
328+/*
329+ * The default interrupt priority levels (0 = lowest, 7 = highest).
330+ */
331+static unsigned int at572d940hf_default_irq_priority[NR_AIC_IRQS] __initdata = {
332+ 7, /* Advanced Interrupt Controller */
333+ 7, /* System Peripherals */
334+ 0, /* Parallel IO Controller A */
335+ 0, /* Parallel IO Controller B */
336+ 0, /* Parallel IO Controller C */
337+ 3, /* Ethernet */
338+ 6, /* USART 0 */
339+ 6, /* USART 1 */
340+ 6, /* USART 2 */
341+ 0, /* Multimedia Card Interface */
342+ 4, /* USB Device Port */
343+ 0, /* Two-Wire Interface 0 */
344+ 6, /* Serial Peripheral Interface 0 */
345+ 6, /* Serial Peripheral Interface 1 */
346+ 5, /* Serial Synchronous Controller 0 */
347+ 5, /* Serial Synchronous Controller 1 */
348+ 5, /* Serial Synchronous Controller 2 */
349+ 0, /* Timer Counter 0 */
350+ 0, /* Timer Counter 1 */
351+ 0, /* Timer Counter 2 */
352+ 3, /* USB Host port */
353+ 3, /* Serial Synchronous Controller 3 */
354+ 0, /* Two-Wire Interface 1 */
355+ 0, /* CAN Controller 0 */
356+ 0, /* CAN Controller 1 */
357+ 0, /* mAgicV HALT line */
358+ 0, /* mAgicV SIRQ0 line */
359+ 0, /* mAgicV exception line */
360+ 0, /* mAgicV end of DMA line */
361+ 0, /* Advanced Interrupt Controller */
362+ 0, /* Advanced Interrupt Controller */
363+ 0, /* Advanced Interrupt Controller */
364+};
365+
366+void __init at572d940hf_init_interrupts(unsigned int priority[NR_AIC_IRQS])
367+{
368+ if (!priority)
369+ priority = at572d940hf_default_irq_priority;
370+
371+ /* Initialize the AIC interrupt controller */
372+ at91_aic_init(priority);
373+
374+ /* Enable GPIO interrupts */
375+ at91_gpio_irq_setup();
376+}
377+
arch/arm/mach-at91/at572d940hf_devices.c+970−0
@@ -0,0 +1,970 @@
1+/*
2+ * arch/arm/mach-at91/at572d940hf_devices.c
3+ *
4+ * Copyright (C) 2008 Atmel Antonio R. Costa <costa.antonior@gmail.com>
5+ * Copyright (C) 2005 Thibaut VARENE <varenet@parisc-linux.org>
6+ * Copyright (C) 2005 David Brownell
7+ *
8+ * This program is free software; you can redistribute it and/or modify
9+ * it under the terms of the GNU General Public License as published by
10+ * the Free Software Foundation; either version 2 of the License, or
11+ * (at your option) any later version.
12+ *
13+ * This program is distributed in the hope that it will be useful,
14+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
15+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16+ * GNU General Public License for more details.
17+ *
18+ * You should have received a copy of the GNU General Public License
19+ * along with this program; if not, write to the Free Software
20+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21+ *
22+ */
23+
24+#include <asm/mach/arch.h>
25+#include <asm/mach/map.h>
26+
27+#include <linux/dma-mapping.h>
28+#include <linux/platform_device.h>
29+
30+#include <mach/board.h>
31+#include <mach/gpio.h>
32+#include <mach/at572d940hf.h>
33+#include <mach/at572d940hf_matrix.h>
34+#include <mach/at91sam9_smc.h>
35+
36+#include "generic.h"
37+#include "sam9_smc.h"
38+
39+
40+/* --------------------------------------------------------------------
41+ * USB Host
42+ * -------------------------------------------------------------------- */
43+
44+#if defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE)
45+static u64 ohci_dmamask = DMA_BIT_MASK(32);
46+static struct at91_usbh_data usbh_data;
47+
48+static struct resource usbh_resources[] = {
49+ [0] = {
50+ .start = AT572D940HF_UHP_BASE,
51+ .end = AT572D940HF_UHP_BASE + SZ_1M - 1,
52+ .flags = IORESOURCE_MEM,
53+ },
54+ [1] = {
55+ .start = AT572D940HF_ID_UHP,
56+ .end = AT572D940HF_ID_UHP,
57+ .flags = IORESOURCE_IRQ,
58+ },
59+};
60+
61+static struct platform_device at572d940hf_usbh_device = {
62+ .name = "at91_ohci",
63+ .id = -1,
64+ .dev = {
65+ .dma_mask = &ohci_dmamask,
66+ .coherent_dma_mask = DMA_BIT_MASK(32),
67+ .platform_data = &usbh_data,
68+ },
69+ .resource = usbh_resources,
70+ .num_resources = ARRAY_SIZE(usbh_resources),
71+};
72+
73+void __init at91_add_device_usbh(struct at91_usbh_data *data)
74+{
75+ if (!data)
76+ return;
77+
78+ usbh_data = *data;
79+ platform_device_register(&at572d940hf_usbh_device);
80+
81+}
82+#else
83+void __init at91_add_device_usbh(struct at91_usbh_data *data) {}
84+#endif
85+
86+
87+/* --------------------------------------------------------------------
88+ * USB Device (Gadget)
89+ * -------------------------------------------------------------------- */
90+
91+#ifdef CONFIG_USB_GADGET_AT91
92+static struct at91_udc_data udc_data;
93+
94+static struct resource udc_resources[] = {
95+ [0] = {
96+ .start = AT572D940HF_BASE_UDP,
97+ .end = AT572D940HF_BASE_UDP + SZ_16K - 1,
98+ .flags = IORESOURCE_MEM,
99+ },
100+ [1] = {
101+ .start = AT572D940HF_ID_UDP,
102+ .end = AT572D940HF_ID_UDP,
103+ .flags = IORESOURCE_IRQ,
104+ },
105+};
106+
107+static struct platform_device at572d940hf_udc_device = {
108+ .name = "at91_udc",
109+ .id = -1,
110+ .dev = {
111+ .platform_data = &udc_data,
112+ },
113+ .resource = udc_resources,
114+ .num_resources = ARRAY_SIZE(udc_resources),
115+};
116+
117+void __init at91_add_device_udc(struct at91_udc_data *data)
118+{
119+ if (!data)
120+ return;
121+
122+ if (data->vbus_pin) {
123+ at91_set_gpio_input(data->vbus_pin, 0);
124+ at91_set_deglitch(data->vbus_pin, 1);
125+ }
126+
127+ /* Pullup pin is handled internally */
128+
129+ udc_data = *data;
130+ platform_device_register(&at572d940hf_udc_device);
131+}
132+#else
133+void __init at91_add_device_udc(struct at91_udc_data *data) {}
134+#endif
135+
136+
137+/* --------------------------------------------------------------------
138+ * Ethernet
139+ * -------------------------------------------------------------------- */
140+
141+#if defined(CONFIG_MACB) || defined(CONFIG_MACB_MODULE)
142+static u64 eth_dmamask = DMA_BIT_MASK(32);
143+static struct at91_eth_data eth_data;
144+
145+static struct resource eth_resources[] = {
146+ [0] = {
147+ .start = AT572D940HF_BASE_EMAC,
148+ .end = AT572D940HF_BASE_EMAC + SZ_16K - 1,
149+ .flags = IORESOURCE_MEM,
150+ },
151+ [1] = {
152+ .start = AT572D940HF_ID_EMAC,
153+ .end = AT572D940HF_ID_EMAC,
154+ .flags = IORESOURCE_IRQ,
155+ },
156+};
157+
158+static struct platform_device at572d940hf_eth_device = {
159+ .name = "macb",
160+ .id = -1,
161+ .dev = {
162+ .dma_mask = &eth_dmamask,
163+ .coherent_dma_mask = DMA_BIT_MASK(32),
164+ .platform_data = &eth_data,
165+ },
166+ .resource = eth_resources,
167+ .num_resources = ARRAY_SIZE(eth_resources),
168+};
169+
170+void __init at91_add_device_eth(struct at91_eth_data *data)
171+{
172+ if (!data)
173+ return;
174+
175+ if (data->phy_irq_pin) {
176+ at91_set_gpio_input(data->phy_irq_pin, 0);
177+ at91_set_deglitch(data->phy_irq_pin, 1);
178+ }
179+
180+ /* Only RMII is supported */
181+ data->is_rmii = 1;
182+
183+ /* Pins used for RMII */
184+ at91_set_A_periph(AT91_PIN_PA16, 0); /* ETXCK_EREFCK */
185+ at91_set_A_periph(AT91_PIN_PA17, 0); /* ERXDV */
186+ at91_set_A_periph(AT91_PIN_PA18, 0); /* ERX0 */
187+ at91_set_A_periph(AT91_PIN_PA19, 0); /* ERX1 */
188+ at91_set_A_periph(AT91_PIN_PA20, 0); /* ERXER */
189+ at91_set_A_periph(AT91_PIN_PA23, 0); /* ETXEN */
190+ at91_set_A_periph(AT91_PIN_PA21, 0); /* ETX0 */
191+ at91_set_A_periph(AT91_PIN_PA22, 0); /* ETX1 */
192+ at91_set_A_periph(AT91_PIN_PA13, 0); /* EMDIO */
193+ at91_set_A_periph(AT91_PIN_PA14, 0); /* EMDC */
194+
195+ eth_data = *data;
196+ platform_device_register(&at572d940hf_eth_device);
197+}
198+#else
199+void __init at91_add_device_eth(struct at91_eth_data *data) {}
200+#endif
201+
202+
203+/* --------------------------------------------------------------------
204+ * MMC / SD
205+ * -------------------------------------------------------------------- */
206+
207+#if defined(CONFIG_MMC_AT91) || defined(CONFIG_MMC_AT91_MODULE)
208+static u64 mmc_dmamask = DMA_BIT_MASK(32);
209+static struct at91_mmc_data mmc_data;
210+
211+static struct resource mmc_resources[] = {
212+ [0] = {
213+ .start = AT572D940HF_BASE_MCI,
214+ .end = AT572D940HF_BASE_MCI + SZ_16K - 1,
215+ .flags = IORESOURCE_MEM,
216+ },
217+ [1] = {
218+ .start = AT572D940HF_ID_MCI,
219+ .end = AT572D940HF_ID_MCI,
220+ .flags = IORESOURCE_IRQ,
221+ },
222+};
223+
224+static struct platform_device at572d940hf_mmc_device = {
225+ .name = "at91_mci",
226+ .id = -1,
227+ .dev = {
228+ .dma_mask = &mmc_dmamask,
229+ .coherent_dma_mask = DMA_BIT_MASK(32),
230+ .platform_data = &mmc_data,
231+ },
232+ .resource = mmc_resources,
233+ .num_resources = ARRAY_SIZE(mmc_resources),
234+};
235+
236+void __init at91_add_device_mmc(short mmc_id, struct at91_mmc_data *data)
237+{
238+ if (!data)
239+ return;
240+
241+ /* input/irq */
242+ if (data->det_pin) {
243+ at91_set_gpio_input(data->det_pin, 1);
244+ at91_set_deglitch(data->det_pin, 1);
245+ }
246+ if (data->wp_pin)
247+ at91_set_gpio_input(data->wp_pin, 1);
248+ if (data->vcc_pin)
249+ at91_set_gpio_output(data->vcc_pin, 0);
250+
251+ /* CLK */
252+ at91_set_A_periph(AT91_PIN_PC22, 0);
253+
254+ /* CMD */
255+ at91_set_A_periph(AT91_PIN_PC23, 1);
256+
257+ /* DAT0, maybe DAT1..DAT3 */
258+ at91_set_A_periph(AT91_PIN_PC24, 1);
259+ if (data->wire4) {
260+ at91_set_A_periph(AT91_PIN_PC25, 1);
261+ at91_set_A_periph(AT91_PIN_PC26, 1);
262+ at91_set_A_periph(AT91_PIN_PC27, 1);
263+ }
264+
265+ mmc_data = *data;
266+ platform_device_register(&at572d940hf_mmc_device);
267+}
268+#else
269+void __init at91_add_device_mmc(short mmc_id, struct at91_mmc_data *data) {}
270+#endif
271+
272+
273+/* --------------------------------------------------------------------
274+ * NAND / SmartMedia
275+ * -------------------------------------------------------------------- */
276+
277+#if defined(CONFIG_MTD_NAND_ATMEL) || defined(CONFIG_MTD_NAND_ATMEL_MODULE)
278+static struct atmel_nand_data nand_data;
279+
280+#define NAND_BASE AT91_CHIPSELECT_3
281+
282+static struct resource nand_resources[] = {
283+ {
284+ .start = NAND_BASE,
285+ .end = NAND_BASE + SZ_256M - 1,
286+ .flags = IORESOURCE_MEM,
287+ }
288+};
289+
290+static struct platform_device at572d940hf_nand_device = {
291+ .name = "atmel_nand",
292+ .id = -1,
293+ .dev = {
294+ .platform_data = &nand_data,
295+ },
296+ .resource = nand_resources,
297+ .num_resources = ARRAY_SIZE(nand_resources),
298+};
299+
300+void __init at91_add_device_nand(struct atmel_nand_data *data)
301+{
302+ unsigned long csa;
303+
304+ if (!data)
305+ return;
306+
307+ csa = at91_sys_read(AT91_MATRIX_EBICSA);
308+ at91_sys_write(AT91_MATRIX_EBICSA, csa | AT91_MATRIX_CS3A_SMC_SMARTMEDIA);
309+
310+ /* enable pin */
311+ if (data->enable_pin)
312+ at91_set_gpio_output(data->enable_pin, 1);
313+
314+ /* ready/busy pin */
315+ if (data->rdy_pin)
316+ at91_set_gpio_input(data->rdy_pin, 1);
317+
318+ /* card detect pin */
319+ if (data->det_pin)
320+ at91_set_gpio_input(data->det_pin, 1);
321+
322+ at91_set_A_periph(AT91_PIN_PB28, 0); /* A[22] */
323+ at91_set_B_periph(AT91_PIN_PA28, 0); /* NANDOE */
324+ at91_set_B_periph(AT91_PIN_PA29, 0); /* NANDWE */
325+
326+ nand_data = *data;
327+ platform_device_register(&at572d940hf_nand_device);
328+}
329+
330+#else
331+void __init at91_add_device_nand(struct atmel_nand_data *data) {}
332+#endif
333+
334+
335+/* --------------------------------------------------------------------
336+ * TWI (i2c)
337+ * -------------------------------------------------------------------- */
338+
339+/*
340+ * Prefer the GPIO code since the TWI controller isn't robust
341+ * (gets overruns and underruns under load) and can only issue
342+ * repeated STARTs in one scenario (the driver doesn't yet handle them).
343+ */
344+
345+#if defined(CONFIG_I2C_GPIO) || defined(CONFIG_I2C_GPIO_MODULE)
346+
347+static struct i2c_gpio_platform_data pdata = {
348+ .sda_pin = AT91_PIN_PC7,
349+ .sda_is_open_drain = 1,
350+ .scl_pin = AT91_PIN_PC8,
351+ .scl_is_open_drain = 1,
352+ .udelay = 2, /* ~100 kHz */
353+};
354+
355+static struct platform_device at572d940hf_twi_device {
356+ .name = "i2c-gpio",
357+ .id = -1,
358+ .dev.platform_data = &pdata,
359+};
360+
361+void __init at91_add_device_i2c(struct i2c_board_info *devices, int nr_devices)
362+{
363+ at91_set_GPIO_periph(AT91_PIN_PC7, 1); /* TWD (SDA) */
364+ at91_set_multi_drive(AT91_PIN_PC7, 1);
365+
366+ at91_set_GPIO_periph(AT91_PIN_PA8, 1); /* TWCK (SCL) */
367+ at91_set_multi_drive(AT91_PIN_PC8, 1);
368+
369+ i2c_register_board_info(0, devices, nr_devices);
370+ platform_device_register(&at572d940hf_twi_device);
371+}
372+
373+#elif defined(CONFIG_I2C_AT91) || defined(CONFIG_I2C_AT91_MODULE)
374+
375+static struct resource twi0_resources[] = {
376+ [0] = {
377+ .start = AT572D940HF_BASE_TWI0,
378+ .end = AT572D940HF_BASE_TWI0 + SZ_16K - 1,
379+ .flags = IORESOURCE_MEM,
380+ },
381+ [1] = {
382+ .start = AT572D940HF_ID_TWI0,
383+ .end = AT572D940HF_ID_TWI0,
384+ .flags = IORESOURCE_IRQ,
385+ },
386+};
387+
388+static struct platform_device at572d940hf_twi0_device = {
389+ .name = "at91_i2c",
390+ .id = 0,
391+ .resource = twi0_resources,
392+ .num_resources = ARRAY_SIZE(twi0_resources),
393+};
394+
395+static struct resource twi1_resources[] = {
396+ [0] = {
397+ .start = AT572D940HF_BASE_TWI1,
398+ .end = AT572D940HF_BASE_TWI1 + SZ_16K - 1,
399+ .flags = IORESOURCE_MEM,
400+ },
401+ [1] = {
402+ .start = AT572D940HF_ID_TWI1,
403+ .end = AT572D940HF_ID_TWI1,
404+ .flags = IORESOURCE_IRQ,
405+ },
406+};
407+
408+static struct platform_device at572d940hf_twi1_device = {
409+ .name = "at91_i2c",
410+ .id = 1,
411+ .resource = twi1_resources,
412+ .num_resources = ARRAY_SIZE(twi1_resources),
413+};
414+
415+void __init at91_add_device_i2c(struct i2c_board_info *devices, int nr_devices)
416+{
417+ /* pins used for TWI0 interface */
418+ at91_set_A_periph(AT91_PIN_PC7, 0); /* TWD */
419+ at91_set_multi_drive(AT91_PIN_PC7, 1);
420+
421+ at91_set_A_periph(AT91_PIN_PC8, 0); /* TWCK */
422+ at91_set_multi_drive(AT91_PIN_PC8, 1);
423+
424+ /* pins used for TWI1 interface */
425+ at91_set_A_periph(AT91_PIN_PC20, 0); /* TWD */
426+ at91_set_multi_drive(AT91_PIN_PC20, 1);
427+
428+ at91_set_A_periph(AT91_PIN_PC21, 0); /* TWCK */
429+ at91_set_multi_drive(AT91_PIN_PC21, 1);
430+
431+ i2c_register_board_info(0, devices, nr_devices);
432+ platform_device_register(&at572d940hf_twi0_device);
433+ platform_device_register(&at572d940hf_twi1_device);
434+}
435+#else
436+void __init at91_add_device_i2c(struct i2c_board_info *devices, int nr_devices) {}
437+#endif
438+
439+
440+/* --------------------------------------------------------------------
441+ * SPI
442+ * -------------------------------------------------------------------- */
443+
444+#if defined(CONFIG_SPI_ATMEL) || defined(CONFIG_SPI_ATMEL_MODULE)
445+static u64 spi_dmamask = DMA_BIT_MASK(32);
446+
447+static struct resource spi0_resources[] = {
448+ [0] = {
449+ .start = AT572D940HF_BASE_SPI0,
450+ .end = AT572D940HF_BASE_SPI0 + SZ_16K - 1,
451+ .flags = IORESOURCE_MEM,
452+ },
453+ [1] = {
454+ .start = AT572D940HF_ID_SPI0,
455+ .end = AT572D940HF_ID_SPI0,
456+ .flags = IORESOURCE_IRQ,
457+ },
458+};
459+
460+static struct platform_device at572d940hf_spi0_device = {
461+ .name = "atmel_spi",
462+ .id = 0,
463+ .dev = {
464+ .dma_mask = &spi_dmamask,
465+ .coherent_dma_mask = DMA_BIT_MASK(32),
466+ },
467+ .resource = spi0_resources,
468+ .num_resources = ARRAY_SIZE(spi0_resources),
469+};
470+
471+static const unsigned spi0_standard_cs[4] = { AT91_PIN_PA3, AT91_PIN_PA4, AT91_PIN_PA5, AT91_PIN_PA6 };
472+
473+static struct resource spi1_resources[] = {
474+ [0] = {
475+ .start = AT572D940HF_BASE_SPI1,
476+ .end = AT572D940HF_BASE_SPI1 + SZ_16K - 1,
477+ .flags = IORESOURCE_MEM,
478+ },
479+ [1] = {
480+ .start = AT572D940HF_ID_SPI1,
481+ .end = AT572D940HF_ID_SPI1,
482+ .flags = IORESOURCE_IRQ,
483+ },
484+};
485+
486+static struct platform_device at572d940hf_spi1_device = {
487+ .name = "atmel_spi",
488+ .id = 1,
489+ .dev = {
490+ .dma_mask = &spi_dmamask,
491+ .coherent_dma_mask = DMA_BIT_MASK(32),
492+ },
493+ .resource = spi1_resources,
494+ .num_resources = ARRAY_SIZE(spi1_resources),
495+};
496+
497+static const unsigned spi1_standard_cs[4] = { AT91_PIN_PC3, AT91_PIN_PC4, AT91_PIN_PC5, AT91_PIN_PC6 };
498+
499+void __init at91_add_device_spi(struct spi_board_info *devices, int nr_devices)
500+{
501+ int i;
502+ unsigned long cs_pin;
503+ short enable_spi0 = 0;
504+ short enable_spi1 = 0;
505+
506+ /* Choose SPI chip-selects */
507+ for (i = 0; i < nr_devices; i++) {
508+ if (devices[i].controller_data)
509+ cs_pin = (unsigned long) devices[i].controller_data;
510+ else if (devices[i].bus_num == 0)
511+ cs_pin = spi0_standard_cs[devices[i].chip_select];
512+ else
513+ cs_pin = spi1_standard_cs[devices[i].chip_select];
514+
515+ if (devices[i].bus_num == 0)
516+ enable_spi0 = 1;
517+ else
518+ enable_spi1 = 1;
519+
520+ /* enable chip-select pin */
521+ at91_set_gpio_output(cs_pin, 1);
522+
523+ /* pass chip-select pin to driver */
524+ devices[i].controller_data = (void *) cs_pin;
525+ }
526+
527+ spi_register_board_info(devices, nr_devices);
528+
529+ /* Configure SPI bus(es) */
530+ if (enable_spi0) {
531+ at91_set_A_periph(AT91_PIN_PA0, 0); /* SPI0_MISO */
532+ at91_set_A_periph(AT91_PIN_PA1, 0); /* SPI0_MOSI */
533+ at91_set_A_periph(AT91_PIN_PA2, 0); /* SPI0_SPCK */
534+
535+ at91_clock_associate("spi0_clk", &at572d940hf_spi0_device.dev, "spi_clk");
536+ platform_device_register(&at572d940hf_spi0_device);
537+ }
538+ if (enable_spi1) {
539+ at91_set_A_periph(AT91_PIN_PC0, 0); /* SPI1_MISO */
540+ at91_set_A_periph(AT91_PIN_PC1, 0); /* SPI1_MOSI */
541+ at91_set_A_periph(AT91_PIN_PC2, 0); /* SPI1_SPCK */
542+
543+ at91_clock_associate("spi1_clk", &at572d940hf_spi1_device.dev, "spi_clk");
544+ platform_device_register(&at572d940hf_spi1_device);
545+ }
546+}
547+#else
548+void __init at91_add_device_spi(struct spi_board_info *devices, int nr_devices) {}
549+#endif
550+
551+
552+/* --------------------------------------------------------------------
553+ * Timer/Counter blocks
554+ * -------------------------------------------------------------------- */
555+
556+#ifdef CONFIG_ATMEL_TCLIB
557+
558+static struct resource tcb_resources[] = {
559+ [0] = {
560+ .start = AT572D940HF_BASE_TCB,
561+ .end = AT572D940HF_BASE_TCB + SZ_16K - 1,
562+ .flags = IORESOURCE_MEM,
563+ },
564+ [1] = {
565+ .start = AT572D940HF_ID_TC0,
566+ .end = AT572D940HF_ID_TC0,
567+ .flags = IORESOURCE_IRQ,
568+ },
569+ [2] = {
570+ .start = AT572D940HF_ID_TC1,
571+ .end = AT572D940HF_ID_TC1,
572+ .flags = IORESOURCE_IRQ,
573+ },
574+ [3] = {
575+ .start = AT572D940HF_ID_TC2,
576+ .end = AT572D940HF_ID_TC2,
577+ .flags = IORESOURCE_IRQ,
578+ },
579+};
580+
581+static struct platform_device at572d940hf_tcb_device = {
582+ .name = "atmel_tcb",
583+ .id = 0,
584+ .resource = tcb_resources,
585+ .num_resources = ARRAY_SIZE(tcb_resources),
586+};
587+
588+static void __init at91_add_device_tc(void)
589+{
590+ /* this chip has a separate clock and irq for each TC channel */
591+ at91_clock_associate("tc0_clk", &at572d940hf_tcb_device.dev, "t0_clk");
592+ at91_clock_associate("tc1_clk", &at572d940hf_tcb_device.dev, "t1_clk");
593+ at91_clock_associate("tc2_clk", &at572d940hf_tcb_device.dev, "t2_clk");
594+ platform_device_register(&at572d940hf_tcb_device);
595+}
596+#else
597+static void __init at91_add_device_tc(void) { }
598+#endif
599+
600+
601+/* --------------------------------------------------------------------
602+ * RTT
603+ * -------------------------------------------------------------------- */
604+
605+static struct resource rtt_resources[] = {
606+ {
607+ .start = AT91_BASE_SYS + AT91_RTT,
608+ .end = AT91_BASE_SYS + AT91_RTT + SZ_16 - 1,
609+ .flags = IORESOURCE_MEM,
610+ }
611+};
612+
613+static struct platform_device at572d940hf_rtt_device = {
614+ .name = "at91_rtt",
615+ .id = 0,
616+ .resource = rtt_resources,
617+ .num_resources = ARRAY_SIZE(rtt_resources),
618+};
619+
620+static void __init at91_add_device_rtt(void)
621+{
622+ platform_device_register(&at572d940hf_rtt_device);
623+}
624+
625+
626+/* --------------------------------------------------------------------
627+ * Watchdog
628+ * -------------------------------------------------------------------- */
629+
630+#if defined(CONFIG_AT91SAM9X_WATCHDOG) || defined(CONFIG_AT91SAM9X_WATCHDOG_MODULE)
631+static struct platform_device at572d940hf_wdt_device = {
632+ .name = "at91_wdt",
633+ .id = -1,
634+ .num_resources = 0,
635+};
636+
637+static void __init at91_add_device_watchdog(void)
638+{
639+ platform_device_register(&at572d940hf_wdt_device);
640+}
641+#else
642+static void __init at91_add_device_watchdog(void) {}
643+#endif
644+
645+
646+/* --------------------------------------------------------------------
647+ * UART
648+ * -------------------------------------------------------------------- */
649+
650+#if defined(CONFIG_SERIAL_ATMEL)
651+static struct resource dbgu_resources[] = {
652+ [0] = {
653+ .start = AT91_VA_BASE_SYS + AT91_DBGU,
654+ .end = AT91_VA_BASE_SYS + AT91_DBGU + SZ_512 - 1,
655+ .flags = IORESOURCE_MEM,
656+ },
657+ [1] = {
658+ .start = AT91_ID_SYS,
659+ .end = AT91_ID_SYS,
660+ .flags = IORESOURCE_IRQ,
661+ },
662+};
663+
664+static struct atmel_uart_data dbgu_data = {
665+ .use_dma_tx = 0,
666+ .use_dma_rx = 0, /* DBGU not capable of receive DMA */
667+ .regs = (void __iomem *)(AT91_VA_BASE_SYS + AT91_DBGU),
668+};
669+
670+static u64 dbgu_dmamask = DMA_BIT_MASK(32);
671+
672+static struct platform_device at572d940hf_dbgu_device = {
673+ .name = "atmel_usart",
674+ .id = 0,
675+ .dev = {
676+ .dma_mask = &dbgu_dmamask,
677+ .coherent_dma_mask = DMA_BIT_MASK(32),
678+ .platform_data = &dbgu_data,
679+ },
680+ .resource = dbgu_resources,
681+ .num_resources = ARRAY_SIZE(dbgu_resources),
682+};
683+
684+static inline void configure_dbgu_pins(void)
685+{
686+ at91_set_A_periph(AT91_PIN_PC31, 1); /* DTXD */
687+ at91_set_A_periph(AT91_PIN_PC30, 0); /* DRXD */
688+}
689+
690+static struct resource uart0_resources[] = {
691+ [0] = {
692+ .start = AT572D940HF_BASE_US0,
693+ .end = AT572D940HF_BASE_US0 + SZ_16K - 1,
694+ .flags = IORESOURCE_MEM,
695+ },
696+ [1] = {
697+ .start = AT572D940HF_ID_US0,
698+ .end = AT572D940HF_ID_US0,
699+ .flags = IORESOURCE_IRQ,
700+ },
701+};
702+
703+static struct atmel_uart_data uart0_data = {
704+ .use_dma_tx = 1,
705+ .use_dma_rx = 1,
706+};
707+
708+static u64 uart0_dmamask = DMA_BIT_MASK(32);
709+
710+static struct platform_device at572d940hf_uart0_device = {
711+ .name = "atmel_usart",
712+ .id = 1,
713+ .dev = {
714+ .dma_mask = &uart0_dmamask,
715+ .coherent_dma_mask = DMA_BIT_MASK(32),
716+ .platform_data = &uart0_data,
717+ },
718+ .resource = uart0_resources,
719+ .num_resources = ARRAY_SIZE(uart0_resources),
720+};
721+
722+static inline void configure_usart0_pins(unsigned pins)
723+{
724+ at91_set_A_periph(AT91_PIN_PA8, 1); /* TXD0 */
725+ at91_set_A_periph(AT91_PIN_PA7, 0); /* RXD0 */
726+
727+ if (pins & ATMEL_UART_RTS)
728+ at91_set_A_periph(AT91_PIN_PA10, 0); /* RTS0 */
729+ if (pins & ATMEL_UART_CTS)
730+ at91_set_A_periph(AT91_PIN_PA9, 0); /* CTS0 */
731+}
732+
733+static struct resource uart1_resources[] = {
734+ [0] = {
735+ .start = AT572D940HF_BASE_US1,
736+ .end = AT572D940HF_BASE_US1 + SZ_16K - 1,
737+ .flags = IORESOURCE_MEM,
738+ },
739+ [1] = {
740+ .start = AT572D940HF_ID_US1,
741+ .end = AT572D940HF_ID_US1,
742+ .flags = IORESOURCE_IRQ,
743+ },
744+};
745+
746+static struct atmel_uart_data uart1_data = {
747+ .use_dma_tx = 1,
748+ .use_dma_rx = 1,
749+};
750+
751+static u64 uart1_dmamask = DMA_BIT_MASK(32);
752+
753+static struct platform_device at572d940hf_uart1_device = {
754+ .name = "atmel_usart",
755+ .id = 2,
756+ .dev = {
757+ .dma_mask = &uart1_dmamask,
758+ .coherent_dma_mask = DMA_BIT_MASK(32),
759+ .platform_data = &uart1_data,
760+ },
761+ .resource = uart1_resources,
762+ .num_resources = ARRAY_SIZE(uart1_resources),
763+};
764+
765+static inline void configure_usart1_pins(unsigned pins)
766+{
767+ at91_set_A_periph(AT91_PIN_PC10, 1); /* TXD1 */
768+ at91_set_A_periph(AT91_PIN_PC9 , 0); /* RXD1 */
769+
770+ if (pins & ATMEL_UART_RTS)
771+ at91_set_A_periph(AT91_PIN_PC12, 0); /* RTS1 */
772+ if (pins & ATMEL_UART_CTS)
773+ at91_set_A_periph(AT91_PIN_PC11, 0); /* CTS1 */
774+}
775+
776+static struct resource uart2_resources[] = {
777+ [0] = {
778+ .start = AT572D940HF_BASE_US2,
779+ .end = AT572D940HF_BASE_US2 + SZ_16K - 1,
780+ .flags = IORESOURCE_MEM,
781+ },
782+ [1] = {
783+ .start = AT572D940HF_ID_US2,
784+ .end = AT572D940HF_ID_US2,
785+ .flags = IORESOURCE_IRQ,
786+ },
787+};
788+
789+static struct atmel_uart_data uart2_data = {
790+ .use_dma_tx = 1,
791+ .use_dma_rx = 1,
792+};
793+
794+static u64 uart2_dmamask = DMA_BIT_MASK(32);
795+
796+static struct platform_device at572d940hf_uart2_device = {
797+ .name = "atmel_usart",
798+ .id = 3,
799+ .dev = {
800+ .dma_mask = &uart2_dmamask,
801+ .coherent_dma_mask = DMA_BIT_MASK(32),
802+ .platform_data = &uart2_data,
803+ },
804+ .resource = uart2_resources,
805+ .num_resources = ARRAY_SIZE(uart2_resources),
806+};
807+
808+static inline void configure_usart2_pins(unsigned pins)
809+{
810+ at91_set_A_periph(AT91_PIN_PC15, 1); /* TXD2 */
811+ at91_set_A_periph(AT91_PIN_PC14, 0); /* RXD2 */
812+
813+ if (pins & ATMEL_UART_RTS)
814+ at91_set_A_periph(AT91_PIN_PC17, 0); /* RTS2 */
815+ if (pins & ATMEL_UART_CTS)
816+ at91_set_A_periph(AT91_PIN_PC16, 0); /* CTS2 */
817+}
818+
819+static struct platform_device *__initdata at91_uarts[ATMEL_MAX_UART]; /* the UARTs to use */
820+struct platform_device *atmel_default_console_device; /* the serial console device */
821+
822+void __init at91_register_uart(unsigned id, unsigned portnr, unsigned pins)
823+{
824+ struct platform_device *pdev;
825+
826+ switch (id) {
827+ case 0: /* DBGU */
828+ pdev = &at572d940hf_dbgu_device;
829+ configure_dbgu_pins();
830+ at91_clock_associate("mck", &pdev->dev, "usart");
831+ break;
832+ case AT572D940HF_ID_US0:
833+ pdev = &at572d940hf_uart0_device;
834+ configure_usart0_pins(pins);
835+ at91_clock_associate("usart0_clk", &pdev->dev, "usart");
836+ break;
837+ case AT572D940HF_ID_US1:
838+ pdev = &at572d940hf_uart1_device;
839+ configure_usart1_pins(pins);
840+ at91_clock_associate("usart1_clk", &pdev->dev, "usart");
841+ break;
842+ case AT572D940HF_ID_US2:
843+ pdev = &at572d940hf_uart2_device;
844+ configure_usart2_pins(pins);
845+ at91_clock_associate("usart2_clk", &pdev->dev, "usart");
846+ break;
847+ default:
848+ return;
849+ }
850+ pdev->id = portnr; /* update to mapped ID */
851+
852+ if (portnr < ATMEL_MAX_UART)
853+ at91_uarts[portnr] = pdev;
854+}
855+
856+void __init at91_set_serial_console(unsigned portnr)
857+{
858+ if (portnr < ATMEL_MAX_UART)
859+ atmel_default_console_device = at91_uarts[portnr];
860+}
861+
862+void __init at91_add_device_serial(void)
863+{
864+ int i;
865+
866+ for (i = 0; i < ATMEL_MAX_UART; i++) {
867+ if (at91_uarts[i])
868+ platform_device_register(at91_uarts[i]);
869+ }
870+
871+ if (!atmel_default_console_device)
872+ printk(KERN_INFO "AT91: No default serial console defined.\n");
873+}
874+
875+#else
876+void __init at91_register_uart(unsigned id, unsigned portnr, unsigned pins) {}
877+void __init at91_set_serial_console(unsigned portnr) {}
878+void __init at91_add_device_serial(void) {}
879+#endif
880+
881+
882+/* --------------------------------------------------------------------
883+ * mAgic
884+ * -------------------------------------------------------------------- */
885+
886+#ifdef CONFIG_MAGICV
887+static struct resource mAgic_resources[] = {
888+ {
889+ .start = AT91_MAGIC_PM_BASE,
890+ .end = AT91_MAGIC_PM_BASE + AT91_MAGIC_PM_SIZE - 1,
891+ .flags = IORESOURCE_MEM,
892+ },
893+ {
894+ .start = AT91_MAGIC_DM_I_BASE,
895+ .end = AT91_MAGIC_DM_I_BASE + AT91_MAGIC_DM_I_SIZE - 1,
896+ .flags = IORESOURCE_MEM,
897+ },
898+ {
899+ .start = AT91_MAGIC_DM_F_BASE,
900+ .end = AT91_MAGIC_DM_F_BASE + AT91_MAGIC_DM_F_SIZE - 1,
901+ .flags = IORESOURCE_MEM,
902+ },
903+ {
904+ .start = AT91_MAGIC_DM_DB_BASE,
905+ .end = AT91_MAGIC_DM_DB_BASE + AT91_MAGIC_DM_DB_SIZE - 1,
906+ .flags = IORESOURCE_MEM,
907+ },
908+ {
909+ .start = AT91_MAGIC_REGS_BASE,
910+ .end = AT91_MAGIC_REGS_BASE + AT91_MAGIC_REGS_SIZE - 1,
911+ .flags = IORESOURCE_MEM,
912+ },
913+ {
914+ .start = AT91_MAGIC_EXTPAGE_BASE,
915+ .end = AT91_MAGIC_EXTPAGE_BASE + AT91_MAGIC_EXTPAGE_SIZE - 1,
916+ .flags = IORESOURCE_MEM,
917+ },
918+ {
919+ .start = AT572D940HF_ID_MSIRQ0,
920+ .end = AT572D940HF_ID_MSIRQ0,
921+ .flags = IORESOURCE_IRQ,
922+ },
923+ {
924+ .start = AT572D940HF_ID_MHALT,
925+ .end = AT572D940HF_ID_MHALT,
926+ .flags = IORESOURCE_IRQ,
927+ },
928+ {
929+ .start = AT572D940HF_ID_MEXC,
930+ .end = AT572D940HF_ID_MEXC,
931+ .flags = IORESOURCE_IRQ,
932+ },
933+ {
934+ .start = AT572D940HF_ID_MEDMA,
935+ .end = AT572D940HF_ID_MEDMA,
936+ .flags = IORESOURCE_IRQ,
937+ },
938+};
939+
940+static struct platform_device mAgic_device = {
941+ .name = "mAgic",
942+ .id = -1,
943+ .num_resources = ARRAY_SIZE(mAgic_resources),
944+ .resource = mAgic_resources,
945+};
946+
947+void __init at91_add_device_mAgic(void)
948+{
949+ platform_device_register(&mAgic_device);
950+}
951+#else
952+void __init at91_add_device_mAgic(void) {}
953+#endif
954+
955+
956+/* -------------------------------------------------------------------- */
957+
958+/*
959+ * These devices are always present and don't need any board-specific
960+ * setup.
961+ */
962+static int __init at91_add_standard_devices(void)
963+{
964+ at91_add_device_rtt();
965+ at91_add_device_watchdog();
966+ at91_add_device_tc();
967+ return 0;
968+}
969+
970+arch_initcall(at91_add_standard_devices);
arch/arm/mach-at91/board-at572d940hf_ek.c+328−0
@@ -0,0 +1,328 @@
1+/*
2+ * linux/arch/arm/mach-at91/board-at572d940hf_ek.c
3+ *
4+ * Copyright (C) 2008 Atmel Antonio R. Costa <costa.antonior@gmail.com>
5+ * Copyright (C) 2005 SAN People
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; either version 2 of the License, or
10+ * (at your option) any later version.
11+ *
12+ * This program is distributed in the hope that it will be useful,
13+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
14+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15+ * GNU General Public License for more details.
16+ *
17+ * You should have received a copy of the GNU General Public License
18+ * along with this program; if not, write to the Free Software
19+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20+ */
21+
22+#include <linux/types.h>
23+#include <linux/init.h>
24+#include <linux/mm.h>
25+#include <linux/module.h>
26+#include <linux/platform_device.h>
27+#include <linux/spi/spi.h>
28+#include <linux/spi/ds1305.h>
29+#include <linux/irq.h>
30+#include <linux/mtd/physmap.h>
31+
32+#include <mach/hardware.h>
33+#include <asm/setup.h>
34+#include <asm/mach-types.h>
35+#include <asm/irq.h>
36+
37+#include <asm/mach/arch.h>
38+#include <asm/mach/map.h>
39+#include <asm/mach/irq.h>
40+
41+#include <mach/board.h>
42+#include <mach/gpio.h>
43+#include <mach/at91sam9_smc.h>
44+
45+#include "sam9_smc.h"
46+#include "generic.h"
47+
48+
49+static void __init eb_map_io(void)
50+{
51+ /* Initialize processor: 12.500 MHz crystal */
52+ at572d940hf_initialize(12000000);
53+
54+ /* DBGU on ttyS0. (Rx & Tx only) */
55+ at91_register_uart(0, 0, 0);
56+
57+ /* USART0 on ttyS1. (Rx & Tx only) */
58+ at91_register_uart(AT572D940HF_ID_US0, 1, 0);
59+
60+ /* USART1 on ttyS2. (Rx & Tx only) */
61+ at91_register_uart(AT572D940HF_ID_US1, 2, 0);
62+
63+ /* USART2 on ttyS3. (Tx & Rx only */
64+ at91_register_uart(AT572D940HF_ID_US2, 3, 0);
65+
66+ /* set serial console to ttyS0 (ie, DBGU) */
67+ at91_set_serial_console(0);
68+}
69+
70+static void __init eb_init_irq(void)
71+{
72+ at572d940hf_init_interrupts(NULL);
73+}
74+
75+
76+/*
77+ * USB Host Port
78+ */
79+static struct at91_usbh_data __initdata eb_usbh_data = {
80+ .ports = 2,
81+};
82+
83+
84+/*
85+ * USB Device Port
86+ */
87+static struct at91_udc_data __initdata eb_udc_data = {
88+ .vbus_pin = 0, /* no VBUS detection,UDC always on */
89+ .pullup_pin = 0, /* pull-up driven by UDC */
90+};
91+
92+
93+/*
94+ * MCI (SD/MMC)
95+ */
96+static struct at91_mmc_data __initdata eb_mmc_data = {
97+ .wire4 = 1,
98+/* .det_pin = ... not connected */
99+/* .wp_pin = ... not connected */
100+/* .vcc_pin = ... not connected */
101+};
102+
103+
104+/*
105+ * MACB Ethernet device
106+ */
107+static struct at91_eth_data __initdata eb_eth_data = {
108+ .phy_irq_pin = AT91_PIN_PB25,
109+ .is_rmii = 1,
110+};
111+
112+/*
113+ * NOR flash
114+ */
115+
116+static struct mtd_partition eb_nor_partitions[] = {
117+ {
118+ .name = "Raw Environment",
119+ .offset = 0,
120+ .size = SZ_4M,
121+ .mask_flags = 0,
122+ },
123+ {
124+ .name = "OS FS",
125+ .offset = MTDPART_OFS_APPEND,
126+ .size = 3 * SZ_1M,
127+ .mask_flags = 0,
128+ },
129+ {
130+ .name = "APP FS",
131+ .offset = MTDPART_OFS_APPEND,
132+ .size = MTDPART_SIZ_FULL,
133+ .mask_flags = 0,
134+ },
135+};
136+
137+static void nor_flash_set_vpp(struct map_info* mi, int i) {
138+};
139+
140+static struct physmap_flash_data nor_flash_data = {
141+ .width = 4,
142+ .parts = eb_nor_partitions,
143+ .nr_parts = ARRAY_SIZE(eb_nor_partitions),
144+ .set_vpp = nor_flash_set_vpp,
145+};
146+
147+static struct resource nor_flash_resources[] = {
148+ {
149+ .start = AT91_CHIPSELECT_0,
150+ .end = AT91_CHIPSELECT_0 + SZ_16M - 1,
151+ .flags = IORESOURCE_MEM,
152+ },
153+};
154+
155+static struct platform_device nor_flash = {
156+ .name = "physmap-flash",
157+ .id = 0,
158+ .dev = {
159+ .platform_data = &nor_flash_data,
160+ },
161+ .resource = nor_flash_resources,
162+ .num_resources = ARRAY_SIZE(nor_flash_resources),
163+};
164+
165+static struct sam9_smc_config __initdata eb_nor_smc_config = {
166+ .ncs_read_setup = 1,
167+ .nrd_setup = 1,
168+ .ncs_write_setup = 1,
169+ .nwe_setup = 1,
170+
171+ .ncs_read_pulse = 7,
172+ .nrd_pulse = 7,
173+ .ncs_write_pulse = 7,
174+ .nwe_pulse = 7,
175+
176+ .read_cycle = 9,
177+ .write_cycle = 9,
178+
179+ .mode = AT91_SMC_READMODE | AT91_SMC_WRITEMODE | AT91_SMC_EXNWMODE_DISABLE | AT91_SMC_BAT_WRITE | AT91_SMC_DBW_32,
180+ .tdf_cycles = 1,
181+};
182+
183+static void __init eb_add_device_nor(void)
184+{
185+ /* configure chip-select 0 (NOR) */
186+ sam9_smc_configure(0, &eb_nor_smc_config);
187+ platform_device_register(&nor_flash);
188+}
189+
190+/*
191+ * NAND flash
192+ */
193+static struct mtd_partition __initdata eb_nand_partition[] = {
194+ {
195+ .name = "Partition 1",
196+ .offset = 0,
197+ .size = SZ_16M,
198+ },
199+ {
200+ .name = "Partition 2",
201+ .offset = MTDPART_OFS_NXTBLK,
202+ .size = MTDPART_SIZ_FULL,
203+ }
204+};
205+
206+static struct mtd_partition * __init nand_partitions(int size, int *num_partitions)
207+{
208+ *num_partitions = ARRAY_SIZE(eb_nand_partition);
209+ return eb_nand_partition;
210+}
211+
212+static struct atmel_nand_data __initdata eb_nand_data = {
213+ .ale = 22,
214+ .cle = 21,
215+/* .det_pin = ... not connected */
216+/* .rdy_pin = AT91_PIN_PC16, */
217+ .enable_pin = AT91_PIN_PA15,
218+ .partition_info = nand_partitions,
219+#if defined(CONFIG_MTD_NAND_AT91_BUSWIDTH_16)
220+ .bus_width_16 = 1,
221+#else
222+ .bus_width_16 = 0,
223+#endif
224+};
225+
226+static struct sam9_smc_config __initdata eb_nand_smc_config = {
227+ .ncs_read_setup = 0,
228+ .nrd_setup = 0,
229+ .ncs_write_setup = 1,
230+ .nwe_setup = 1,
231+
232+ .ncs_read_pulse = 3,
233+ .nrd_pulse = 3,
234+ .ncs_write_pulse = 3,
235+ .nwe_pulse = 3,
236+
237+ .read_cycle = 5,
238+ .write_cycle = 5,
239+
240+ .mode = AT91_SMC_READMODE | AT91_SMC_WRITEMODE | AT91_SMC_EXNWMODE_DISABLE,
241+ .tdf_cycles = 12,
242+};
243+
244+static void __init eb_add_device_nand(void)
245+{
246+ /* setup bus-width (8 or 16) */
247+ if (eb_nand_data.bus_width_16)
248+ eb_nand_smc_config.mode |= AT91_SMC_DBW_16;
249+ else
250+ eb_nand_smc_config.mode |= AT91_SMC_DBW_8;
251+
252+ /* configure chip-select 3 (NAND) */
253+ sam9_smc_configure(3, &eb_nand_smc_config);
254+
255+ at91_add_device_nand(&eb_nand_data);
256+}
257+
258+
259+/*
260+ * SPI devices
261+ */
262+static struct resource rtc_resources[] = {
263+ [0] = {
264+ .start = AT572D940HF_ID_IRQ1,
265+ .end = AT572D940HF_ID_IRQ1,
266+ .flags = IORESOURCE_IRQ,
267+ },
268+};
269+
270+static struct ds1305_platform_data ds1306_data = {
271+ .is_ds1306 = true,
272+ .en_1hz = false,
273+};
274+
275+static struct spi_board_info eb_spi_devices[] = {
276+ { /* RTC Dallas DS1306 */
277+ .modalias = "rtc-ds1305",
278+ .chip_select = 3,
279+ .mode = SPI_CS_HIGH | SPI_CPOL | SPI_CPHA,
280+ .max_speed_hz = 500000,
281+ .bus_num = 0,
282+ .irq = AT572D940HF_ID_IRQ1,
283+ .platform_data = (void *) &ds1306_data,
284+ },
285+#if defined(CONFIG_MTD_AT91_DATAFLASH_CARD)
286+ { /* Dataflash card */
287+ .modalias = "mtd_dataflash",
288+ .chip_select = 0,
289+ .max_speed_hz = 15 * 1000 * 1000,
290+ .bus_num = 0,
291+ },
292+#endif
293+};
294+
295+static void __init eb_board_init(void)
296+{
297+ /* Serial */
298+ at91_add_device_serial();
299+ /* USB Host */
300+ at91_add_device_usbh(&eb_usbh_data);
301+ /* USB Device */
302+ at91_add_device_udc(&eb_udc_data);
303+ /* I2C */
304+ at91_add_device_i2c(NULL, 0);
305+ /* NOR */
306+ eb_add_device_nor();
307+ /* NAND */
308+ eb_add_device_nand();
309+ /* SPI */
310+ at91_add_device_spi(eb_spi_devices, ARRAY_SIZE(eb_spi_devices));
311+ /* MMC */
312+ at91_add_device_mmc(0, &eb_mmc_data);
313+ /* Ethernet */
314+ at91_add_device_eth(&eb_eth_data);
315+ /* mAgic */
316+ at91_add_device_mAgic();
317+}
318+
319+MACHINE_START(AT572D940HFEB, "Atmel AT91D940HF-EB")
320+ /* Maintainer: Atmel <costa.antonior@gmail.com> */
321+ .phys_io = AT91_BASE_SYS,
322+ .io_pg_offst = (AT91_VA_BASE_SYS >> 18) & 0xfffc,
323+ .boot_params = AT91_SDRAM_BASE + 0x100,
324+ .timer = &at91sam926x_timer,
325+ .map_io = eb_map_io,
326+ .init_irq = eb_init_irq,
327+ .init_machine = eb_board_init,
328+MACHINE_END
arch/arm/mach-at91/clock.c+5−3
@@ -29,6 +29,7 @@ · 28 unmodified lines
2929 #include <mach/cpu.h>
3030
3131 #include "clock.h"
32+#include "generic.h"
3233
3334
3435 /*
@@ -628,7 +629,7 @@ static void __init at91_pllb_usbfs_clock_init(unsigned long main_clock) · 593 unmodified lines
628629 at91_sys_write(AT91_PMC_SCER, AT91RM9200_PMC_MCKUDP);
629630 } else if (cpu_is_at91sam9260() || cpu_is_at91sam9261() ||
630631 cpu_is_at91sam9263() || cpu_is_at91sam9g20() ||
631− cpu_is_at91sam9g10()) {
632+ cpu_is_at91sam9g10() || cpu_is_at572d940hf()) {
632633 uhpck.pmc_mask = AT91SAM926x_PMC_UHP;
633634 udpck.pmc_mask = AT91SAM926x_PMC_UDP;
634635 } else if (cpu_is_at91cap9()) {
@@ -711,12 +712,13 @@ int __init at91_clock_init(unsigned long main_clock) · 76 unmodified lines
711712 /*
712713 * USB HS clock init
713714 */
714− if (cpu_has_utmi())
715+ if (cpu_has_utmi()) {
715716 /*
716717 * multiplier is hard-wired to 40
717718 * (obtain the USB High Speed 480 MHz when input is 12 MHz)
718719 */
719720 utmi_clk.rate_hz = 40 * utmi_clk.parent->rate_hz;
721+ }
720722
721723 /*
722724 * USB FS clock init
@@ -746,7 +748,7 @@ int __init at91_clock_init(unsigned long main_clock) · 23 unmodified lines
746748 mck.rate_hz = (mckr & AT91_PMC_MDIV) == AT91SAM9_PMC_MDIV_3 ?
747749 freq / 3 : freq / (1 << ((mckr & AT91_PMC_MDIV) >> 8)); /* mdiv */
748750 } else {
749− mck.rate_hz = freq / (1 << ((mckr & AT91_PMC_MDIV) >> 8)); /* mdiv */
751+ mck.rate_hz = freq / (1 << ((mckr & AT91_PMC_MDIV) >> 8)); /* mdiv */
750752 }
751753
752754 /* Register the PMC's standard clocks */
arch/arm/mach-at91/clock.h+1−1
@@ -22,7 +22,7 @@ struct clk { · 21 unmodified lines
2222 struct clk *parent;
2323 u32 pmc_mask;
2424 void (*mode)(struct clk *, int);
25− unsigned id:2; /* PCK0..3, or 32k/main/a/b */
25+ unsigned id:3; /* PCK0..4, or 32k/main/a/b */
2626 unsigned type; /* clock type */
2727 u16 users;
2828 };
arch/arm/mach-at91/generic.h+2−0
@@ -17,6 +17,7 @@ extern void __init at91sam9rl_initialize(unsigned long main_clock); · 16 unmodified lines
1717 extern void __init at91sam9g45_initialize(unsigned long main_clock);
1818 extern void __init at91x40_initialize(unsigned long main_clock);
1919 extern void __init at91cap9_initialize(unsigned long main_clock);
20+extern void __init at572d940hf_initialize(unsigned long main_clock);
2021
2122 /* Interrupts */
2223 extern void __init at91rm9200_init_interrupts(unsigned int priority[]);
@@ -27,6 +28,7 @@ extern void __init at91sam9rl_init_interrupts(unsigned int priority[]); · 4 unmodified lines
2728 extern void __init at91sam9g45_init_interrupts(unsigned int priority[]);
2829 extern void __init at91x40_init_interrupts(unsigned int priority[]);
2930 extern void __init at91cap9_init_interrupts(unsigned int priority[]);
31+extern void __init at572d940hf_init_interrupts(unsigned int priority[]);
3032 extern void __init at91_aic_init(unsigned int priority[]);
3133
3234 /* Timer */
arch/arm/mach-at91/include/mach/at572d940hf.h+123−0
@@ -0,0 +1,123 @@
1+/*
2+ * include/mach/at572d940hf.h
3+ *
4+ * Antonio R. Costa <costa.antonior@gmail.com>
5+ * Copyright (C) 2008 Atmel
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; either version 2 of the License, or
10+ * (at your option) any later version.
11+ *
12+ * This program is distributed in the hope that it will be useful,
13+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
14+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15+ * GNU General Public License for more details.
16+ *
17+ * You should have received a copy of the GNU General Public License
18+ * along with this program; if not, write to the Free Software
19+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20+ *
21+ */
22+
23+#ifndef AT572D940HF_H
24+#define AT572D940HF_H
25+
26+/*
27+ * Peripheral identifiers/interrupts.
28+ */
29+#define AT91_ID_FIQ 0 /* Advanced Interrupt Controller (FIQ) */
30+#define AT91_ID_SYS 1 /* System Peripherals */
31+#define AT572D940HF_ID_PIOA 2 /* Parallel IO Controller A */
32+#define AT572D940HF_ID_PIOB 3 /* Parallel IO Controller B */
33+#define AT572D940HF_ID_PIOC 4 /* Parallel IO Controller C */
34+#define AT572D940HF_ID_EMAC 5 /* MACB ethernet controller */
35+#define AT572D940HF_ID_US0 6 /* USART 0 */
36+#define AT572D940HF_ID_US1 7 /* USART 1 */
37+#define AT572D940HF_ID_US2 8 /* USART 2 */
38+#define AT572D940HF_ID_MCI 9 /* Multimedia Card Interface */
39+#define AT572D940HF_ID_UDP 10 /* USB Device Port */
40+#define AT572D940HF_ID_TWI0 11 /* Two-Wire Interface 0 */
41+#define AT572D940HF_ID_SPI0 12 /* Serial Peripheral Interface 0 */
42+#define AT572D940HF_ID_SPI1 13 /* Serial Peripheral Interface 1 */
43+#define AT572D940HF_ID_SSC0 14 /* Serial Synchronous Controller 0 */
44+#define AT572D940HF_ID_SSC1 15 /* Serial Synchronous Controller 1 */
45+#define AT572D940HF_ID_SSC2 16 /* Serial Synchronous Controller 2 */
46+#define AT572D940HF_ID_TC0 17 /* Timer Counter 0 */
47+#define AT572D940HF_ID_TC1 18 /* Timer Counter 1 */
48+#define AT572D940HF_ID_TC2 19 /* Timer Counter 2 */
49+#define AT572D940HF_ID_UHP 20 /* USB Host port */
50+#define AT572D940HF_ID_SSC3 21 /* Serial Synchronous Controller 3 */
51+#define AT572D940HF_ID_TWI1 22 /* Two-Wire Interface 1 */
52+#define AT572D940HF_ID_CAN0 23 /* CAN Controller 0 */
53+#define AT572D940HF_ID_CAN1 24 /* CAN Controller 1 */
54+#define AT572D940HF_ID_MHALT 25 /* mAgicV HALT line */
55+#define AT572D940HF_ID_MSIRQ0 26 /* mAgicV SIRQ0 line */
56+#define AT572D940HF_ID_MEXC 27 /* mAgicV exception line */
57+#define AT572D940HF_ID_MEDMA 28 /* mAgicV end of DMA line */
58+#define AT572D940HF_ID_IRQ0 29 /* External Interrupt Source (IRQ0) */
59+#define AT572D940HF_ID_IRQ1 30 /* External Interrupt Source (IRQ1) */
60+#define AT572D940HF_ID_IRQ2 31 /* External Interrupt Source (IRQ2) */
61+
62+
63+/*
64+ * User Peripheral physical base addresses.
65+ */
66+#define AT572D940HF_BASE_TCB 0xfffa0000
67+#define AT572D940HF_BASE_TC0 0xfffa0000
68+#define AT572D940HF_BASE_TC1 0xfffa0040
69+#define AT572D940HF_BASE_TC2 0xfffa0080
70+#define AT572D940HF_BASE_UDP 0xfffa4000
71+#define AT572D940HF_BASE_MCI 0xfffa8000
72+#define AT572D940HF_BASE_TWI0 0xfffac000
73+#define AT572D940HF_BASE_US0 0xfffb0000
74+#define AT572D940HF_BASE_US1 0xfffb4000
75+#define AT572D940HF_BASE_US2 0xfffb8000
76+#define AT572D940HF_BASE_SSC0 0xfffbc000
77+#define AT572D940HF_BASE_SSC1 0xfffc0000
78+#define AT572D940HF_BASE_SSC2 0xfffc4000
79+#define AT572D940HF_BASE_SPI0 0xfffc8000
80+#define AT572D940HF_BASE_SPI1 0xfffcc000
81+#define AT572D940HF_BASE_SSC3 0xfffd0000
82+#define AT572D940HF_BASE_TWI1 0xfffd4000
83+#define AT572D940HF_BASE_EMAC 0xfffd8000
84+#define AT572D940HF_BASE_CAN0 0xfffdc000
85+#define AT572D940HF_BASE_CAN1 0xfffe0000
86+#define AT91_BASE_SYS 0xffffea00
87+
88+
89+/*
90+ * System Peripherals (offset from AT91_BASE_SYS)
91+ */
92+#define AT91_SDRAMC (0xffffea00 - AT91_BASE_SYS)
93+#define AT91_SMC (0xffffec00 - AT91_BASE_SYS)
94+#define AT91_MATRIX (0xffffee00 - AT91_BASE_SYS)
95+#define AT91_AIC (0xfffff000 - AT91_BASE_SYS)
96+#define AT91_DBGU (0xfffff200 - AT91_BASE_SYS)
97+#define AT91_PIOA (0xfffff400 - AT91_BASE_SYS)
98+#define AT91_PIOB (0xfffff600 - AT91_BASE_SYS)
99+#define AT91_PIOC (0xfffff800 - AT91_BASE_SYS)
100+#define AT91_PMC (0xfffffc00 - AT91_BASE_SYS)
101+#define AT91_RSTC (0xfffffd00 - AT91_BASE_SYS)
102+#define AT91_RTT (0xfffffd20 - AT91_BASE_SYS)
103+#define AT91_PIT (0xfffffd30 - AT91_BASE_SYS)
104+#define AT91_WDT (0xfffffd40 - AT91_BASE_SYS)
105+
106+#define AT91_USART0 AT572D940HF_ID_US0
107+#define AT91_USART1 AT572D940HF_ID_US1
108+#define AT91_USART2 AT572D940HF_ID_US2
109+
110+
111+/*
112+ * Internal Memory.
113+ */
114+#define AT572D940HF_SRAM_BASE 0x00300000 /* Internal SRAM base address */
115+#define AT572D940HF_SRAM_SIZE (48 * SZ_1K) /* Internal SRAM size (48Kb) */
116+
117+#define AT572D940HF_ROM_BASE 0x00400000 /* Internal ROM base address */
118+#define AT572D940HF_ROM_SIZE SZ_32K /* Internal ROM size (32Kb) */
119+
120+#define AT572D940HF_UHP_BASE 0x00500000 /* USB Host controller */
121+
122+
123+#endif
arch/arm/mach-at91/include/mach/at572d940hf_matrix.h+123−0
@@ -0,0 +1,123 @@
1+/*
2+ * include/mach//at572d940hf_matrix.h
3+ *
4+ * Antonio R. Costa <costa.antonior@gmail.com>
5+ * Copyright (C) 2008 Atmel
6+ *
7+ * Copyright (C) 2005 SAN People
8+ *
9+ * This program is free software; you can redistribute it and/or modify
10+ * it under the terms of the GNU General Public License as published by
11+ * the Free Software Foundation; either version 2 of the License, or
12+ * (at your option) any later version.
13+ *
14+ * This program is distributed in the hope that it will be useful,
15+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
16+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17+ * GNU General Public License for more details.
18+ *
19+ * You should have received a copy of the GNU General Public License
20+ * along with this program; if not, write to the Free Software
21+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22+ */
23+
24+#ifndef AT572D940HF_MATRIX_H
25+#define AT572D940HF_MATRIX_H
26+
27+#define AT91_MATRIX_MCFG0 (AT91_MATRIX + 0x00) /* Master Configuration Register 0 */
28+#define AT91_MATRIX_MCFG1 (AT91_MATRIX + 0x04) /* Master Configuration Register 1 */
29+#define AT91_MATRIX_MCFG2 (AT91_MATRIX + 0x08) /* Master Configuration Register 2 */
30+#define AT91_MATRIX_MCFG3 (AT91_MATRIX + 0x0C) /* Master Configuration Register 3 */
31+#define AT91_MATRIX_MCFG4 (AT91_MATRIX + 0x10) /* Master Configuration Register 4 */
32+#define AT91_MATRIX_MCFG5 (AT91_MATRIX + 0x14) /* Master Configuration Register 5 */
33+
34+#define AT91_MATRIX_ULBT (7 << 0) /* Undefined Length Burst Type */
35+#define AT91_MATRIX_ULBT_INFINITE (0 << 0)
36+#define AT91_MATRIX_ULBT_SINGLE (1 << 0)
37+#define AT91_MATRIX_ULBT_FOUR (2 << 0)
38+#define AT91_MATRIX_ULBT_EIGHT (3 << 0)
39+#define AT91_MATRIX_ULBT_SIXTEEN (4 << 0)
40+
41+#define AT91_MATRIX_SCFG0 (AT91_MATRIX + 0x40) /* Slave Configuration Register 0 */
42+#define AT91_MATRIX_SCFG1 (AT91_MATRIX + 0x44) /* Slave Configuration Register 1 */
43+#define AT91_MATRIX_SCFG2 (AT91_MATRIX + 0x48) /* Slave Configuration Register 2 */
44+#define AT91_MATRIX_SCFG3 (AT91_MATRIX + 0x4C) /* Slave Configuration Register 3 */
45+#define AT91_MATRIX_SCFG4 (AT91_MATRIX + 0x50) /* Slave Configuration Register 4 */
46+#define AT91_MATRIX_SLOT_CYCLE (0xff << 0) /* Maximum Number of Allowed Cycles for a Burst */
47+#define AT91_MATRIX_DEFMSTR_TYPE (3 << 16) /* Default Master Type */
48+#define AT91_MATRIX_DEFMSTR_TYPE_NONE (0 << 16)
49+#define AT91_MATRIX_DEFMSTR_TYPE_LAST (1 << 16)
50+#define AT91_MATRIX_DEFMSTR_TYPE_FIXED (2 << 16)
51+#define AT91_MATRIX_FIXED_DEFMSTR (0x7 << 18) /* Fixed Index of Default Master */
52+#define AT91_MATRIX_ARBT (3 << 24) /* Arbitration Type */
53+#define AT91_MATRIX_ARBT_ROUND_ROBIN (0 << 24)
54+#define AT91_MATRIX_ARBT_FIXED_PRIORITY (1 << 24)
55+
56+#define AT91_MATRIX_PRAS0 (AT91_MATRIX + 0x80) /* Priority Register A for Slave 0 */
57+#define AT91_MATRIX_PRAS1 (AT91_MATRIX + 0x88) /* Priority Register A for Slave 1 */
58+#define AT91_MATRIX_PRAS2 (AT91_MATRIX + 0x90) /* Priority Register A for Slave 2 */
59+#define AT91_MATRIX_PRAS3 (AT91_MATRIX + 0x98) /* Priority Register A for Slave 3 */
60+#define AT91_MATRIX_PRAS4 (AT91_MATRIX + 0xA0) /* Priority Register A for Slave 4 */
61+
62+#define AT91_MATRIX_M0PR (3 << 0) /* Master 0 Priority */
63+#define AT91_MATRIX_M1PR (3 << 4) /* Master 1 Priority */
64+#define AT91_MATRIX_M2PR (3 << 8) /* Master 2 Priority */
65+#define AT91_MATRIX_M3PR (3 << 12) /* Master 3 Priority */
66+#define AT91_MATRIX_M4PR (3 << 16) /* Master 4 Priority */
67+#define AT91_MATRIX_M5PR (3 << 20) /* Master 5 Priority */
68+#define AT91_MATRIX_M6PR (3 << 24) /* Master 6 Priority */
69+
70+#define AT91_MATRIX_MRCR (AT91_MATRIX + 0x100) /* Master Remap Control Register */
71+#define AT91_MATRIX_RCB0 (1 << 0) /* Remap Command for AHB Master 0 (ARM926EJ-S Instruction Master) */
72+#define AT91_MATRIX_RCB1 (1 << 1) /* Remap Command for AHB Master 1 (ARM926EJ-S Data Master) */
73+
74+#define AT91_MATRIX_SFR0 (AT91_MATRIX + 0x110) /* Special Function Register 0 */
75+#define AT91_MATRIX_SFR1 (AT91_MATRIX + 0x114) /* Special Function Register 1 */
76+#define AT91_MATRIX_SFR2 (AT91_MATRIX + 0x118) /* Special Function Register 2 */
77+#define AT91_MATRIX_SFR3 (AT91_MATRIX + 0x11C) /* Special Function Register 3 */
78+#define AT91_MATRIX_SFR4 (AT91_MATRIX + 0x120) /* Special Function Register 4 */
79+#define AT91_MATRIX_SFR5 (AT91_MATRIX + 0x124) /* Special Function Register 5 */
80+#define AT91_MATRIX_SFR6 (AT91_MATRIX + 0x128) /* Special Function Register 6 */
81+#define AT91_MATRIX_SFR7 (AT91_MATRIX + 0x12C) /* Special Function Register 7 */
82+#define AT91_MATRIX_SFR8 (AT91_MATRIX + 0x130) /* Special Function Register 8 */
83+#define AT91_MATRIX_SFR9 (AT91_MATRIX + 0x134) /* Special Function Register 9 */
84+#define AT91_MATRIX_SFR10 (AT91_MATRIX + 0x138) /* Special Function Register 10 */
85+#define AT91_MATRIX_SFR11 (AT91_MATRIX + 0x13C) /* Special Function Register 11 */
86+#define AT91_MATRIX_SFR12 (AT91_MATRIX + 0x140) /* Special Function Register 12 */
87+#define AT91_MATRIX_SFR13 (AT91_MATRIX + 0x144) /* Special Function Register 13 */
88+#define AT91_MATRIX_SFR14 (AT91_MATRIX + 0x148) /* Special Function Register 14 */
89+#define AT91_MATRIX_SFR15 (AT91_MATRIX + 0x14C) /* Special Function Register 15 */
90+
91+
92+/*
93+ * The following registers / bits are not defined in the Datasheet (Revision A)
94+ */
95+
96+#define AT91_MATRIX_TCR (AT91_MATRIX + 0x100) /* TCM Configuration Register */
97+#define AT91_MATRIX_ITCM_SIZE (0xf << 0) /* Size of ITCM enabled memory block */
98+#define AT91_MATRIX_ITCM_0 (0 << 0)
99+#define AT91_MATRIX_ITCM_16 (5 << 0)
100+#define AT91_MATRIX_ITCM_32 (6 << 0)
101+#define AT91_MATRIX_ITCM_64 (7 << 0)
102+#define AT91_MATRIX_DTCM_SIZE (0xf << 4) /* Size of DTCM enabled memory block */
103+#define AT91_MATRIX_DTCM_0 (0 << 4)
104+#define AT91_MATRIX_DTCM_16 (5 << 4)
105+#define AT91_MATRIX_DTCM_32 (6 << 4)
106+#define AT91_MATRIX_DTCM_64 (7 << 4)
107+
108+#define AT91_MATRIX_EBICSA (AT91_MATRIX + 0x11C) /* EBI Chip Select Assignment Register */
109+#define AT91_MATRIX_CS1A (1 << 1) /* Chip Select 1 Assignment */
110+#define AT91_MATRIX_CS1A_SMC (0 << 1)
111+#define AT91_MATRIX_CS1A_SDRAMC (1 << 1)
112+#define AT91_MATRIX_CS3A (1 << 3) /* Chip Select 3 Assignment */
113+#define AT91_MATRIX_CS3A_SMC (0 << 3)
114+#define AT91_MATRIX_CS3A_SMC_SMARTMEDIA (1 << 3)
115+#define AT91_MATRIX_CS4A (1 << 4) /* Chip Select 4 Assignment */
116+#define AT91_MATRIX_CS4A_SMC (0 << 4)
117+#define AT91_MATRIX_CS4A_SMC_CF1 (1 << 4)
118+#define AT91_MATRIX_CS5A (1 << 5) /* Chip Select 5 Assignment */
119+#define AT91_MATRIX_CS5A_SMC (0 << 5)
120+#define AT91_MATRIX_CS5A_SMC_CF2 (1 << 5)
121+#define AT91_MATRIX_DBPUC (1 << 8) /* Data Bus Pull-up Configuration */
122+
123+#endif
arch/arm/mach-at91/include/mach/at91_pmc.h+1−0
@@ -32,6 +32,7 @@ · 31 unmodified lines
3232 #define AT91_PMC_PCK1 (1 << 9) /* Programmable Clock 1 */
3333 #define AT91_PMC_PCK2 (1 << 10) /* Programmable Clock 2 */
3434 #define AT91_PMC_PCK3 (1 << 11) /* Programmable Clock 3 */
35+#define AT91_PMC_PCK4 (1 << 12) /* Programmable Clock 4 [AT572D940HF only] */
3536 #define AT91_PMC_HCK0 (1 << 16) /* AHB Clock (USB host) [AT91SAM9261 only] */
3637 #define AT91_PMC_HCK1 (1 << 17) /* AHB Clock (LCD) [AT91SAM9261 only] */
3738
arch/arm/mach-at91/include/mach/board.h+4−1
@@ -87,7 +87,7 @@ struct at91_eth_data { · 86 unmodified lines
8787 extern void __init at91_add_device_eth(struct at91_eth_data *data);
8888
8989 #if defined(CONFIG_ARCH_AT91SAM9260) || defined(CONFIG_ARCH_AT91SAM9263) || defined(CONFIG_ARCH_AT91SAM9G20) || defined(CONFIG_ARCH_AT91CAP9) \
90− || defined(CONFIG_ARCH_AT91SAM9G45)
90+ || defined(CONFIG_ARCH_AT91SAM9G45) || defined(CONFIG_ARCH_AT572D940HF)
9191 #define eth_platform_data at91_eth_data
9292 #endif
9393
@@ -205,6 +205,9 @@ extern void __init at91_init_leds(u8 cpu_led, u8 timer_led); · 111 unmodified lines
205205 extern void __init at91_gpio_leds(struct gpio_led *leds, int nr);
206206 extern void __init at91_pwm_leds(struct gpio_led *leds, int nr);
207207
208+ /* AT572D940HF DSP */
209+extern void __init at91_add_device_mAgic(void);
210+
208211 /* FIXME: this needs a better location, but gets stuff building again */
209212 extern int at91_suspend_entering_slow_clock(void);
210213
arch/arm/mach-at91/include/mach/cpu.h+8−0
@@ -33,6 +33,8 @@ · 32 unmodified lines
3333 #define ARCH_ID_AT91SAM9XE256 0x329a93a0
3434 #define ARCH_ID_AT91SAM9XE512 0x329aa3a0
3535
36+#define ARCH_ID_AT572D940HF 0x0e0303e0
37+
3638 #define ARCH_ID_AT91M40800 0x14080044
3739 #define ARCH_ID_AT91R40807 0x44080746
3840 #define ARCH_ID_AT91M40807 0x14080745
@@ -141,6 +143,12 @@ static inline unsigned long at91cap9_rev_identify(void) · 102 unmodified lines
141143 #define cpu_is_at91cap9_revC() (0)
142144 #endif
143145
146+#ifdef CONFIG_ARCH_AT572D940HF
147+#define cpu_is_at572d940hf() (at91_cpu_identify() == ARCH_ID_AT572D940HF)
148+#else
149+#define cpu_is_at572d940hf() (0)
150+#endif
151+
144152 /*
145153 * Since this is ARM, we will never run on any AVR32 CPU. But these
146154 * definitions may reduce clutter in common drivers.
arch/arm/mach-at91/include/mach/debug-macro.S+1−1
@@ -14,7 +14,7 @@ · 13 unmodified lines
1414 #include <mach/hardware.h>
1515 #include <mach/at91_dbgu.h>
1616
17− .macro addruart,rx
17+ .macro addruart, rx, tmp
1818 mrc p15, 0, \rx, c1, c0
1919 tst \rx, #1 @ MMU enabled?
2020 ldreq \rx, =(AT91_BASE_SYS + AT91_DBGU) @ System peripherals (phys address)
arch/arm/mach-at91/include/mach/hardware.h+2−0
@@ -32,6 +32,8 @@ · 31 unmodified lines
3232 #include <mach/at91cap9.h>
3333 #elif defined(CONFIG_ARCH_AT91X40)
3434 #include <mach/at91x40.h>
35+#elif defined(CONFIG_ARCH_AT572D940HF)
36+#include <mach/at572d940hf.h>
3537 #else
3638 #error "Unsupported AT91 processor"
3739 #endif
arch/arm/mach-at91/include/mach/timex.h+5−0
@@ -82,6 +82,11 @@ · 81 unmodified lines
8282 #define AT91X40_MASTER_CLOCK 40000000
8383 #define CLOCK_TICK_RATE (AT91X40_MASTER_CLOCK)
8484
85+#elif defined(CONFIG_ARCH_AT572D940HF)
86+
87+#define AT572D940HF_MASTER_CLOCK 80000000
88+#define CLOCK_TICK_RATE (AT572D940HF_MASTER_CLOCK/16)
89+
8590 #endif
8691
8792 #endif
arch/arm/mach-bcmring/core.c+1−2
@@ -142,8 +142,7 @@ void __init bcmring_amba_init(void) · 141 unmodified lines
142142
143143 chipcHw_busInterfaceClockEnable(bus_clock);
144144
145− for (i = 0; i < ARRAY_SIZE(lookups); i++)
146− clkdev_add(&lookups[i]);
145+ clkdev_add_table(lookups, ARRAY_SIZE(lookups));
147146
148147 for (i = 0; i < ARRAY_SIZE(amba_devs); i++) {
149148 struct amba_device *d = amba_devs[i];
arch/arm/mach-clps711x/include/mach/debug-macro.S+1−1
@@ -13,7 +13,7 @@ · 12 unmodified lines
1313
1414 #include <asm/hardware/clps7111.h>
1515
16− .macro addruart,rx
16+ .macro addruart, rx, tmp
1717 mrc p15, 0, \rx, c1, c0
1818 tst \rx, #1 @ MMU enabled?
1919 moveq \rx, #CLPS7111_PHYS_BASE
arch/arm/mach-davinci/Kconfig+4−0
@@ -91,10 +91,14 @@ config MACH_DAVINCI_DM6467_EVM · 90 unmodified lines
9191 bool "TI DM6467 EVM"
9292 default ARCH_DAVINCI_DM646x
9393 depends on ARCH_DAVINCI_DM646x
94+ select MACH_DAVINCI_DM6467TEVM
9495 help
9596 Configure this option to specify the whether the board used
9697 for development is a DM6467 EVM
9798
99+config MACH_DAVINCI_DM6467TEVM
100+ bool
101+
98102 config MACH_DAVINCI_DM365_EVM
99103 bool "TI DM365 EVM"
100104 default ARCH_DAVINCI_DM365
arch/arm/mach-davinci/Makefile+2−1
@@ -26,7 +26,7 @@ obj-$(CONFIG_MACH_SFFSDR) += board-sffsdr.o · 25 unmodified lines
2626 obj-$(CONFIG_MACH_NEUROS_OSD2) += board-neuros-osd2.o
2727 obj-$(CONFIG_MACH_DAVINCI_DM355_EVM) += board-dm355-evm.o
2828 obj-$(CONFIG_MACH_DM355_LEOPARD) += board-dm355-leopard.o
29−obj-$(CONFIG_MACH_DAVINCI_DM6467_EVM) += board-dm646x-evm.o
29+obj-$(CONFIG_MACH_DAVINCI_DM6467_EVM) += board-dm646x-evm.o cdce949.o
3030 obj-$(CONFIG_MACH_DAVINCI_DM365_EVM) += board-dm365-evm.o
3131 obj-$(CONFIG_MACH_DAVINCI_DA830_EVM) += board-da830-evm.o
3232 obj-$(CONFIG_MACH_DAVINCI_DA850_EVM) += board-da850-evm.o
@@ -34,3 +34,4 @@ obj-$(CONFIG_MACH_DAVINCI_DA850_EVM) += board-da850-evm.o · 1 unmodified line
3434 # Power Management
3535 obj-$(CONFIG_CPU_FREQ) += cpufreq.o
3636 obj-$(CONFIG_CPU_IDLE) += cpuidle.o
37+obj-$(CONFIG_SUSPEND) += pm.o sleep.o
arch/arm/mach-davinci/board-da830-evm.c+2−2
@@ -112,7 +112,7 @@ static __init void da830_evm_usb_init(void) · 111 unmodified lines
112112 * Set up USB clock/mode in the CFGCHIP2 register.
113113 * FYI: CFGCHIP2 is 0x0000ef00 initially.
114114 */
115− cfgchip2 = __raw_readl(DA8XX_SYSCFG_VIRT(DA8XX_CFGCHIP2_REG));
115+ cfgchip2 = __raw_readl(DA8XX_SYSCFG0_VIRT(DA8XX_CFGCHIP2_REG));
116116
117117 /* USB2.0 PHY reference clock is 24 MHz */
118118 cfgchip2 &= ~CFGCHIP2_REFFREQ;
@@ -139,7 +139,7 @@ static __init void da830_evm_usb_init(void) · 20 unmodified lines
139139 cfgchip2 |= CFGCHIP2_SESENDEN | CFGCHIP2_VBDTCTEN;
140140 #endif
141141
142− __raw_writel(cfgchip2, DA8XX_SYSCFG_VIRT(DA8XX_CFGCHIP2_REG));
142+ __raw_writel(cfgchip2, DA8XX_SYSCFG0_VIRT(DA8XX_CFGCHIP2_REG));
143143
144144 /* USB_REFCLKIN is not used. */
145145 ret = davinci_cfg_reg(DA830_USB0_DRVVBUS);
arch/arm/mach-davinci/board-da850-evm.c+32−2
@@ -46,8 +46,20 @@ · 45 unmodified lines
4646
4747 static struct mtd_partition da850_evm_norflash_partition[] = {
4848 {
49− .name = "NOR filesystem",
49+ .name = "bootloaders + env",
5050 .offset = 0,
51+ .size = SZ_512K,
52+ .mask_flags = MTD_WRITEABLE,
53+ },
54+ {
55+ .name = "kernel",
56+ .offset = MTDPART_OFS_APPEND,
57+ .size = SZ_2M,
58+ .mask_flags = 0,
59+ },
60+ {
61+ .name = "filesystem",
62+ .offset = MTDPART_OFS_APPEND,
5163 .size = MTDPART_SIZ_FULL,
5264 .mask_flags = 0,
5365 },
@@ -77,6 +89,18 @@ static struct platform_device da850_evm_norflash_device = { · 23 unmodified lines
7789 .resource = da850_evm_norflash_resource,
7890 };
7991
92+static struct davinci_pm_config da850_pm_pdata = {
93+ .sleepcount = 128,
94+};
95+
96+static struct platform_device da850_pm_device = {
97+ .name = "pm-davinci",
98+ .dev = {
99+ .platform_data = &da850_pm_pdata,
100+ },
101+ .id = -1,
102+};
103+
80104 /* DA850/OMAP-L138 EVM includes a 512 MByte large-page NAND flash
81105 * (128K blocks). It may be used instead of the (default) SPI flash
82106 * to boot, using TI's tools to install the secondary boot loader
@@ -119,6 +143,7 @@ static struct davinci_nand_pdata da850_evm_nandflash_data = { · 36 unmodified lines
119143 .parts = da850_evm_nandflash_partition,
120144 .nr_parts = ARRAY_SIZE(da850_evm_nandflash_partition),
121145 .ecc_mode = NAND_ECC_HW,
146+ .ecc_bits = 4,
122147 .options = NAND_USE_FLASH_BBT,
123148 };
124149
@@ -537,7 +562,7 @@ static int __init da850_evm_config_emac(void) · 412 unmodified lines
537562 if (!machine_is_davinci_da850_evm())
538563 return 0;
539564
540− cfg_chip3_base = DA8XX_SYSCFG_VIRT(DA8XX_CFGCHIP3_REG);
565+ cfg_chip3_base = DA8XX_SYSCFG0_VIRT(DA8XX_CFGCHIP3_REG);
541566
542567 val = __raw_readl(cfg_chip3_base);
543568
@@ -696,6 +721,11 @@ static __init void da850_evm_init(void) · 152 unmodified lines
696721 if (ret)
697722 pr_warning("da850_evm_init: cpuidle registration failed: %d\n",
698723 ret);
724+
725+ ret = da850_register_pm(&da850_pm_device);
726+ if (ret)
727+ pr_warning("da850_evm_init: suspend registration failed: %d\n",
728+ ret);
699729 }
700730
701731 #ifdef CONFIG_SERIAL_8250_CONSOLE
arch/arm/mach-davinci/board-dm355-evm.c+2−0
@@ -111,6 +111,8 @@ static struct platform_device davinci_nand_device = { · 110 unmodified lines
111111 static struct davinci_i2c_platform_data i2c_pdata = {
112112 .bus_freq = 400 /* kHz */,
113113 .bus_delay = 0 /* usec */,
114+ .sda_pin = 15,
115+ .scl_pin = 14,
114116 };
115117
116118 static struct snd_platform_data dm355_evm_snd_data;
arch/arm/mach-davinci/board-dm365-evm.c+94−0
@@ -24,6 +24,8 @@ · 23 unmodified lines
2424 #include <linux/mtd/partitions.h>
2525 #include <linux/mtd/nand.h>
2626 #include <linux/input.h>
27+#include <linux/spi/spi.h>
28+#include <linux/spi/eeprom.h>
2729
2830 #include <asm/mach-types.h>
2931 #include <asm/mach/arch.h>
@@ -37,6 +39,8 @@ · 7 unmodified lines
3739 #include <mach/nand.h>
3840 #include <mach/keyscan.h>
3941
42+#include <media/tvp514x.h>
43+
4044 static inline int have_imager(void)
4145 {
4246 /* REVISIT when it's supported, trigger via Kconfig */
@@ -306,6 +310,73 @@ static void dm365evm_mmc_configure(void) · 263 unmodified lines
306310 davinci_cfg_reg(DM365_SD1_DATA0);
307311 }
308312
313+static struct tvp514x_platform_data tvp5146_pdata = {
314+ .clk_polarity = 0,
315+ .hs_polarity = 1,
316+ .vs_polarity = 1
317+};
318+
319+#define TVP514X_STD_ALL (V4L2_STD_NTSC | V4L2_STD_PAL)
320+/* Inputs available at the TVP5146 */
321+static struct v4l2_input tvp5146_inputs[] = {
322+ {
323+ .index = 0,
324+ .name = "Composite",
325+ .type = V4L2_INPUT_TYPE_CAMERA,
326+ .std = TVP514X_STD_ALL,
327+ },
328+ {
329+ .index = 1,
330+ .name = "S-Video",
331+ .type = V4L2_INPUT_TYPE_CAMERA,
332+ .std = TVP514X_STD_ALL,
333+ },
334+};
335+
336+/*
337+ * this is the route info for connecting each input to decoder
338+ * ouput that goes to vpfe. There is a one to one correspondence
339+ * with tvp5146_inputs
340+ */
341+static struct vpfe_route tvp5146_routes[] = {
342+ {
343+ .input = INPUT_CVBS_VI2B,
344+ .output = OUTPUT_10BIT_422_EMBEDDED_SYNC,
345+ },
346+{
347+ .input = INPUT_SVIDEO_VI2C_VI1C,
348+ .output = OUTPUT_10BIT_422_EMBEDDED_SYNC,
349+ },
350+};
351+
352+static struct vpfe_subdev_info vpfe_sub_devs[] = {
353+ {
354+ .name = "tvp5146",
355+ .grp_id = 0,
356+ .num_inputs = ARRAY_SIZE(tvp5146_inputs),
357+ .inputs = tvp5146_inputs,
358+ .routes = tvp5146_routes,
359+ .can_route = 1,
360+ .ccdc_if_params = {
361+ .if_type = VPFE_BT656,
362+ .hdpol = VPFE_PINPOL_POSITIVE,
363+ .vdpol = VPFE_PINPOL_POSITIVE,
364+ },
365+ .board_info = {
366+ I2C_BOARD_INFO("tvp5146", 0x5d),
367+ .platform_data = &tvp5146_pdata,
368+ },
369+ },
370+};
371+
372+static struct vpfe_config vpfe_cfg = {
373+ .num_subdevs = ARRAY_SIZE(vpfe_sub_devs),
374+ .sub_devs = vpfe_sub_devs,
375+ .i2c_adapter_id = 1,
376+ .card_name = "DM365 EVM",
377+ .ccdc = "ISIF",
378+};
379+
309380 static void __init evm_init_i2c(void)
310381 {
311382 davinci_init_i2c(&i2c_pdata);
@@ -497,9 +568,29 @@ static struct davinci_uart_config uart_config __initdata = { · 185 unmodified lines
497568
498569 static void __init dm365_evm_map_io(void)
499570 {
571+ /* setup input configuration for VPFE input devices */
572+ dm365_set_vpfe_config(&vpfe_cfg);
500573 dm365_init();
501574 }
502575
576+static struct spi_eeprom at25640 = {
577+ .byte_len = SZ_64K / 8,
578+ .name = "at25640",
579+ .page_size = 32,
580+ .flags = EE_ADDR2,
581+};
582+
583+static struct spi_board_info dm365_evm_spi_info[] __initconst = {
584+ {
585+ .modalias = "at25",
586+ .platform_data = &at25640,
587+ .max_speed_hz = 10 * 1000 * 1000,
588+ .bus_num = 0,
589+ .chip_select = 0,
590+ .mode = SPI_MODE_0,
591+ },
592+};
593+
503594 static __init void dm365_evm_init(void)
504595 {
505596 evm_init_i2c();
@@ -516,6 +607,9 @@ static __init void dm365_evm_init(void) · 10 unmodified lines
516607 dm365_init_asp(&dm365_evm_snd_data);
517608 dm365_init_rtc();
518609 dm365_init_ks(&dm365evm_ks_data);
610+
611+ dm365_init_spi0(BIT(0), dm365_evm_spi_info,
612+ ARRAY_SIZE(dm365_evm_spi_info));
519613 }
520614
521615 static __init void dm365_evm_irq_init(void)
arch/arm/mach-davinci/board-dm644x-evm.c+2−0
@@ -629,6 +629,8 @@ static struct i2c_board_info __initdata i2c_info[] = { · 628 unmodified lines
629629 static struct davinci_i2c_platform_data i2c_pdata = {
630630 .bus_freq = 20 /* kHz */,
631631 .bus_delay = 100 /* usec */,
632+ .sda_pin = 44,
633+ .scl_pin = 43,
632634 };
633635
634636 static void __init evm_init_i2c(void)
arch/arm/mach-davinci/board-dm646x-evm.c+99−44
@@ -30,6 +30,7 @@ · 29 unmodified lines
3030 #include <linux/mtd/mtd.h>
3131 #include <linux/mtd/nand.h>
3232 #include <linux/mtd/partitions.h>
33+#include <linux/clk.h>
3334
3435 #include <asm/mach-types.h>
3536 #include <asm/mach/arch.h>
@@ -39,54 +40,13 @@ · 3 unmodified lines
3940 #include <mach/serial.h>
4041 #include <mach/i2c.h>
4142 #include <mach/nand.h>
43+#include <mach/clock.h>
44+#include <mach/cdce949.h>
4245
43−#if defined(CONFIG_BLK_DEV_PALMCHIP_BK3710) || \
44− defined(CONFIG_BLK_DEV_PALMCHIP_BK3710_MODULE)
45−#define HAS_ATA 1
46−#else
47−#define HAS_ATA 0
48−#endif
49−
50−#define DAVINCI_ASYNC_EMIF_CONTROL_BASE 0x20008000
51−#define DAVINCI_ASYNC_EMIF_DATA_CE0_BASE 0x42000000
46+#include "clock.h"
5247
5348 #define NAND_BLOCK_SIZE SZ_128K
5449
55−/* CPLD Register 0 bits to control ATA */
56−#define DM646X_EVM_ATA_RST BIT(0)
57−#define DM646X_EVM_ATA_PWD BIT(1)
58−
59−#define DM646X_EVM_PHY_MASK (0x2)
60−#define DM646X_EVM_MDIO_FREQUENCY (2200000) /* PHY bus frequency */
61−
62−#define VIDCLKCTL_OFFSET (DAVINCI_SYSTEM_MODULE_BASE + 0x38)
63−#define VSCLKDIS_OFFSET (DAVINCI_SYSTEM_MODULE_BASE + 0x6c)
64−#define VCH2CLK_MASK (BIT_MASK(10) | BIT_MASK(9) | BIT_MASK(8))
65−#define VCH2CLK_SYSCLK8 (BIT(9))
66−#define VCH2CLK_AUXCLK (BIT(9) | BIT(8))
67−#define VCH3CLK_MASK (BIT_MASK(14) | BIT_MASK(13) | BIT_MASK(12))
68−#define VCH3CLK_SYSCLK8 (BIT(13))
69−#define VCH3CLK_AUXCLK (BIT(14) | BIT(13))
70−
71−#define VIDCH2CLK (BIT(10))
72−#define VIDCH3CLK (BIT(11))
73−#define VIDCH1CLK (BIT(4))
74−#define TVP7002_INPUT (BIT(4))
75−#define TVP5147_INPUT (~BIT(4))
76−#define VPIF_INPUT_ONE_CHANNEL (BIT(5))
77−#define VPIF_INPUT_TWO_CHANNEL (~BIT(5))
78−#define TVP5147_CH0 "tvp514x-0"
79−#define TVP5147_CH1 "tvp514x-1"
80−
81−static void __iomem *vpif_vidclkctl_reg;
82−static void __iomem *vpif_vsclkdis_reg;
83−/* spin lock for updating above registers */
84−static spinlock_t vpif_reg_lock;
85−
86−static struct davinci_uart_config uart_config __initdata = {
87− .enabled_uarts = (1 << 0),
88−};
89−
9050 /* Note: We are setting first partition as 'bootloader' constituting UBL, U-Boot
9151 * and U-Boot environment this avoids dependency on any particular combination
9252 * of UBL, U-Boot or flashing tools etc.
@@ -120,6 +80,9 @@ static struct davinci_nand_pdata davinci_nand_data = { · 27 unmodified lines
12080 .options = 0,
12181 };
12282
83+#define DAVINCI_ASYNC_EMIF_CONTROL_BASE 0x20008000
84+#define DAVINCI_ASYNC_EMIF_DATA_CE0_BASE 0x42000000
85+
12386 static struct resource davinci_nand_resources[] = {
12487 {
12588 .start = DAVINCI_ASYNC_EMIF_DATA_CE0_BASE,
@@ -144,6 +107,17 @@ static struct platform_device davinci_nand_device = { · 18 unmodified lines
144107 },
145108 };
146109
110+#if defined(CONFIG_BLK_DEV_PALMCHIP_BK3710) || \
111+ defined(CONFIG_BLK_DEV_PALMCHIP_BK3710_MODULE)
112+#define HAS_ATA 1
113+#else
114+#define HAS_ATA 0
115+#endif
116+
117+/* CPLD Register 0 bits to control ATA */
118+#define DM646X_EVM_ATA_RST BIT(0)
119+#define DM646X_EVM_ATA_PWD BIT(1)
120+
147121 /* CPLD Register 0 Client: used for I/O Control */
148122 static int cpld_reg0_probe(struct i2c_client *client,
149123 const struct i2c_device_id *id)
@@ -417,6 +391,9 @@ static struct i2c_board_info __initdata i2c_info[] = { · 267 unmodified lines
417391 {
418392 I2C_BOARD_INFO("cpld_video", 0x3b),
419393 },
394+ {
395+ I2C_BOARD_INFO("cdce949", 0x6c),
396+ },
420397 };
421398
422399 static struct davinci_i2c_platform_data i2c_pdata = {
@@ -424,6 +401,30 @@ static struct davinci_i2c_platform_data i2c_pdata = { · 1 unmodified line
424401 .bus_delay = 0 /* usec */,
425402 };
426403
404+#define VIDCLKCTL_OFFSET (DAVINCI_SYSTEM_MODULE_BASE + 0x38)
405+#define VSCLKDIS_OFFSET (DAVINCI_SYSTEM_MODULE_BASE + 0x6c)
406+#define VCH2CLK_MASK (BIT_MASK(10) | BIT_MASK(9) | BIT_MASK(8))
407+#define VCH2CLK_SYSCLK8 (BIT(9))
408+#define VCH2CLK_AUXCLK (BIT(9) | BIT(8))
409+#define VCH3CLK_MASK (BIT_MASK(14) | BIT_MASK(13) | BIT_MASK(12))
410+#define VCH3CLK_SYSCLK8 (BIT(13))
411+#define VCH3CLK_AUXCLK (BIT(14) | BIT(13))
412+
413+#define VIDCH2CLK (BIT(10))
414+#define VIDCH3CLK (BIT(11))
415+#define VIDCH1CLK (BIT(4))
416+#define TVP7002_INPUT (BIT(4))
417+#define TVP5147_INPUT (~BIT(4))
418+#define VPIF_INPUT_ONE_CHANNEL (BIT(5))
419+#define VPIF_INPUT_TWO_CHANNEL (~BIT(5))
420+#define TVP5147_CH0 "tvp514x-0"
421+#define TVP5147_CH1 "tvp514x-1"
422+
423+static void __iomem *vpif_vidclkctl_reg;
424+static void __iomem *vpif_vsclkdis_reg;
425+/* spin lock for updating above registers */
426+static spinlock_t vpif_reg_lock;
427+
427428 static int set_vpif_clock(int mux_mode, int hd)
428429 {
429430 unsigned long flags;
@@ -685,11 +686,44 @@ static void __init evm_init_i2c(void) · 255 unmodified lines
685686 evm_init_video();
686687 }
687688
689+#define CDCE949_XIN_RATE 27000000
690+
691+/* CDCE949 support - "lpsc" field is overridden to work as clock number */
692+static struct clk cdce_clk_in = {
693+ .name = "cdce_xin",
694+ .rate = CDCE949_XIN_RATE,
695+};
696+
697+static struct clk_lookup cdce_clks[] = {
698+ CLK(NULL, "xin", &cdce_clk_in),
699+ CLK(NULL, NULL, NULL),
700+};
701+
702+static void __init cdce_clk_init(void)
703+{
704+ struct clk_lookup *c;
705+ struct clk *clk;
706+
707+ for (c = cdce_clks; c->clk; c++) {
708+ clk = c->clk;
709+ clkdev_add(c);
710+ clk_register(clk);
711+ }
712+}
713+
688714 static void __init davinci_map_io(void)
689715 {
690716 dm646x_init();
717+ cdce_clk_init();
691718 }
692719
720+static struct davinci_uart_config uart_config __initdata = {
721+ .enabled_uarts = (1 << 0),
722+};
723+
724+#define DM646X_EVM_PHY_MASK (0x2)
725+#define DM646X_EVM_MDIO_FREQUENCY (2200000) /* PHY bus frequency */
726+
693727 static __init void evm_init(void)
694728 {
695729 struct davinci_soc_info *soc_info = &davinci_soc_info;
@@ -713,6 +747,17 @@ static __init void davinci_dm646x_evm_irq_init(void) · 17 unmodified lines
713747 davinci_irq_init();
714748 }
715749
750+#define DM646X_EVM_REF_FREQ 27000000
751+#define DM6467T_EVM_REF_FREQ 33000000
752+
753+void __init dm646x_board_setup_refclk(struct clk *clk)
754+{
755+ if (machine_is_davinci_dm6467tevm())
756+ clk->rate = DM6467T_EVM_REF_FREQ;
757+ else
758+ clk->rate = DM646X_EVM_REF_FREQ;
759+}
760+
716761 MACHINE_START(DAVINCI_DM6467_EVM, "DaVinci DM646x EVM")
717762 .phys_io = IO_PHYS,
718763 .io_pg_offst = (__IO_ADDRESS(IO_PHYS) >> 18) & 0xfffc,
@@ -723,3 +768,13 @@ MACHINE_START(DAVINCI_DM6467_EVM, "DaVinci DM646x EVM") · 4 unmodified lines
723768 .init_machine = evm_init,
724769 MACHINE_END
725770
771+MACHINE_START(DAVINCI_DM6467TEVM, "DaVinci DM6467T EVM")
772+ .phys_io = IO_PHYS,
773+ .io_pg_offst = (__IO_ADDRESS(IO_PHYS) >> 18) & 0xfffc,
774+ .boot_params = (0x80000100),
775+ .map_io = davinci_map_io,
776+ .init_irq = davinci_dm646x_evm_irq_init,
777+ .timer = &davinci_timer,
778+ .init_machine = evm_init,
779+MACHINE_END
780+
arch/arm/mach-davinci/cdce949.c+293−0
@@ -0,0 +1,293 @@
1+/*
2+ * TI CDCE949 clock synthesizer driver
3+ *
4+ * Note: This implementation assumes an input of 27MHz to the CDCE.
5+ * This is by no means constrained by CDCE hardware although the datasheet
6+ * does use this as an example for all illustrations and more importantly:
7+ * that is the crystal input on boards it is currently used on.
8+ *
9+ * Copyright (C) 2009 Texas Instruments Incorporated. http://www.ti.com/
10+ *
11+ * This program is free software; you can redistribute it and/or modify
12+ * it under the terms of the GNU General Public License version 2 as
13+ * published by the Free Software Foundation.
14+ *
15+ */
16+#include <linux/kernel.h>
17+#include <linux/clk.h>
18+#include <linux/platform_device.h>
19+#include <linux/i2c.h>
20+
21+#include <mach/clock.h>
22+
23+#include "clock.h"
24+
25+static struct i2c_client *cdce_i2c_client;
26+static DEFINE_MUTEX(cdce_mutex);
27+
28+/* CDCE register descriptor */
29+struct cdce_reg {
30+ u8 addr;
31+ u8 val;
32+};
33+
34+/* Per-Output (Y1, Y2 etc.) frequency descriptor */
35+struct cdce_freq {
36+ /* Frequency in KHz */
37+ unsigned long frequency;
38+ /*
39+ * List of registers to program to obtain a particular frequency.
40+ * 0x0 in register address and value is the end of list marker.
41+ */
42+ struct cdce_reg *reglist;
43+};
44+
45+#define CDCE_FREQ_TABLE_ENTRY(line, out) \
46+{ \
47+ .reglist = cdce_y ##line## _ ##out, \
48+ .frequency = out, \
49+}
50+
51+/* List of CDCE outputs */
52+struct cdce_output {
53+ /* List of frequencies on this output */
54+ struct cdce_freq *freq_table;
55+ /* Number of possible frequencies */
56+ int size;
57+};
58+
59+/*
60+ * Finding out the values to program into CDCE949 registers for a particular
61+ * frequency output is not a simple calculation. Have a look at the datasheet
62+ * for the details. There is desktop software available to help users with
63+ * the calculations. Here, we just depend on the output of that software
64+ * (or hand calculations) instead trying to runtime calculate the register
65+ * values and inflicting misery on ourselves.
66+ */
67+static struct cdce_reg cdce_y1_148500[] = {
68+ { 0x13, 0x00 },
69+ /* program PLL1_0 multiplier */
70+ { 0x18, 0xaf },
71+ { 0x19, 0x50 },
72+ { 0x1a, 0x02 },
73+ { 0x1b, 0xc9 },
74+ /* program PLL1_11 multiplier */
75+ { 0x1c, 0x00 },
76+ { 0x1d, 0x40 },
77+ { 0x1e, 0x02 },
78+ { 0x1f, 0xc9 },
79+ /* output state selection */
80+ { 0x15, 0x00 },
81+ { 0x14, 0xef },
82+ /* switch MUX to PLL1 output */
83+ { 0x14, 0x6f },
84+ { 0x16, 0x06 },
85+ /* set P2DIV divider, P3DIV and input crystal */
86+ { 0x17, 0x06 },
87+ { 0x01, 0x00 },
88+ { 0x05, 0x48 },
89+ { 0x02, 0x80 },
90+ /* enable and disable PLL */
91+ { 0x02, 0xbc },
92+ { 0x03, 0x01 },
93+ { },
94+};
95+
96+static struct cdce_reg cdce_y1_74250[] = {
97+ { 0x13, 0x00 },
98+ { 0x18, 0xaf },
99+ { 0x19, 0x50 },
100+ { 0x1a, 0x02 },
101+ { 0x1b, 0xc9 },
102+ { 0x1c, 0x00 },
103+ { 0x1d, 0x40 },
104+ { 0x1e, 0x02 },
105+ { 0x1f, 0xc9 },
106+ /* output state selection */
107+ { 0x15, 0x00 },
108+ { 0x14, 0xef },
109+ /* switch MUX to PLL1 output */
110+ { 0x14, 0x6f },
111+ { 0x16, 0x06 },
112+ /* set P2DIV divider, P3DIV and input crystal */
113+ { 0x17, 0x06 },
114+ { 0x01, 0x00 },
115+ { 0x05, 0x48 },
116+ { 0x02, 0x80 },
117+ /* enable and disable PLL */
118+ { 0x02, 0xbc },
119+ { 0x03, 0x02 },
120+ { },
121+};
122+
123+static struct cdce_reg cdce_y1_27000[] = {
124+ { 0x13, 0x00 },
125+ { 0x18, 0x00 },
126+ { 0x19, 0x40 },
127+ { 0x1a, 0x02 },
128+ { 0x1b, 0x08 },
129+ { 0x1c, 0x00 },
130+ { 0x1d, 0x40 },
131+ { 0x1e, 0x02 },
132+ { 0x1f, 0x08 },
133+ { 0x15, 0x02 },
134+ { 0x14, 0xed },
135+ { 0x16, 0x01 },
136+ { 0x17, 0x01 },
137+ { 0x01, 0x00 },
138+ { 0x05, 0x50 },
139+ { 0x02, 0xb4 },
140+ { 0x03, 0x01 },
141+ { },
142+};
143+
144+static struct cdce_freq cdce_y1_freqs[] = {
145+ CDCE_FREQ_TABLE_ENTRY(1, 148500),
146+ CDCE_FREQ_TABLE_ENTRY(1, 74250),
147+ CDCE_FREQ_TABLE_ENTRY(1, 27000),
148+};
149+
150+static struct cdce_reg cdce_y5_13500[] = {
151+ { 0x27, 0x08 },
152+ { 0x28, 0x00 },
153+ { 0x29, 0x40 },
154+ { 0x2a, 0x02 },
155+ { 0x2b, 0x08 },
156+ { 0x24, 0x6f },
157+ { },
158+};
159+
160+static struct cdce_reg cdce_y5_16875[] = {
161+ { 0x27, 0x08 },
162+ { 0x28, 0x9f },
163+ { 0x29, 0xb0 },
164+ { 0x2a, 0x02 },
165+ { 0x2b, 0x89 },
166+ { 0x24, 0x6f },
167+ { },
168+};
169+
170+static struct cdce_reg cdce_y5_27000[] = {
171+ { 0x27, 0x04 },
172+ { 0x28, 0x00 },
173+ { 0x29, 0x40 },
174+ { 0x2a, 0x02 },
175+ { 0x2b, 0x08 },
176+ { 0x24, 0x6f },
177+ { },
178+};
179+static struct cdce_reg cdce_y5_54000[] = {
180+ { 0x27, 0x04 },
181+ { 0x28, 0xff },
182+ { 0x29, 0x80 },
183+ { 0x2a, 0x02 },
184+ { 0x2b, 0x07 },
185+ { 0x24, 0x6f },
186+ { },
187+};
188+
189+static struct cdce_reg cdce_y5_81000[] = {
190+ { 0x27, 0x02 },
191+ { 0x28, 0xbf },
192+ { 0x29, 0xa0 },
193+ { 0x2a, 0x03 },
194+ { 0x2b, 0x0a },
195+ { 0x24, 0x6f },
196+ { },
197+};
198+
199+static struct cdce_freq cdce_y5_freqs[] = {
200+ CDCE_FREQ_TABLE_ENTRY(5, 13500),
201+ CDCE_FREQ_TABLE_ENTRY(5, 16875),
202+ CDCE_FREQ_TABLE_ENTRY(5, 27000),
203+ CDCE_FREQ_TABLE_ENTRY(5, 54000),
204+ CDCE_FREQ_TABLE_ENTRY(5, 81000),
205+};
206+
207+
208+static struct cdce_output output_list[] = {
209+ [1] = { cdce_y1_freqs, ARRAY_SIZE(cdce_y1_freqs) },
210+ [5] = { cdce_y5_freqs, ARRAY_SIZE(cdce_y5_freqs) },
211+};
212+
213+int cdce_set_rate(struct clk *clk, unsigned long rate)
214+{
215+ int i, ret = 0;
216+ struct cdce_freq *freq_table = output_list[clk->lpsc].freq_table;
217+ struct cdce_reg *regs = NULL;
218+
219+ if (!cdce_i2c_client)
220+ return -ENODEV;
221+
222+ if (!freq_table)
223+ return -EINVAL;
224+
225+ for (i = 0; i < output_list[clk->lpsc].size; i++) {
226+ if (freq_table[i].frequency == rate / 1000) {
227+ regs = freq_table[i].reglist;
228+ break;
229+ }
230+ }
231+
232+ if (!regs)
233+ return -EINVAL;
234+
235+ mutex_lock(&cdce_mutex);
236+ for (i = 0; regs[i].addr; i++) {
237+ ret = i2c_smbus_write_byte_data(cdce_i2c_client,
238+ regs[i].addr | 0x80, regs[i].val);
239+ if (ret)
240+ break;
241+ }
242+ mutex_unlock(&cdce_mutex);
243+
244+ if (!ret)
245+ clk->rate = rate;
246+
247+ return ret;
248+}
249+
250+static int cdce_probe(struct i2c_client *client,
251+ const struct i2c_device_id *id)
252+{
253+ cdce_i2c_client = client;
254+ return 0;
255+}
256+
257+static int __devexit cdce_remove(struct i2c_client *client)
258+{
259+ cdce_i2c_client = NULL;
260+ return 0;
261+}
262+
263+static const struct i2c_device_id cdce_id[] = {
264+ {"cdce949", 0},
265+ {},
266+};
267+MODULE_DEVICE_TABLE(i2c, cdce_id);
268+
269+static struct i2c_driver cdce_driver = {
270+ .driver = {
271+ .owner = THIS_MODULE,
272+ .name = "cdce949",
273+ },
274+ .probe = cdce_probe,
275+ .remove = __devexit_p(cdce_remove),
276+ .id_table = cdce_id,
277+};
278+
279+static int __init cdce_init(void)
280+{
281+ return i2c_add_driver(&cdce_driver);
282+}
283+subsys_initcall(cdce_init);
284+
285+static void __exit cdce_exit(void)
286+{
287+ i2c_del_driver(&cdce_driver);
288+}
289+module_exit(cdce_exit);
290+
291+MODULE_AUTHOR("Texas Instruments");
292+MODULE_DESCRIPTION("CDCE949 clock synthesizer driver");
293+MODULE_LICENSE("GPL v2");
arch/arm/mach-davinci/clock.c+39−54
@@ -49,7 +49,8 @@ static void __clk_disable(struct clk *clk) · 48 unmodified lines
4949 {
5050 if (WARN_ON(clk->usecount == 0))
5151 return;
52− if (--clk->usecount == 0 && !(clk->flags & CLK_PLL))
52+ if (--clk->usecount == 0 && !(clk->flags & CLK_PLL) &&
53+ (clk->flags & CLK_PSC))
5354 davinci_psc_config(psc_domain(clk), clk->gpsc, clk->lpsc, 0);
5455 if (clk->parent)
5556 __clk_disable(clk->parent);
@@ -124,9 +125,10 @@ int clk_set_rate(struct clk *clk, unsigned long rate) · 68 unmodified lines
124125 if (clk == NULL || IS_ERR(clk))
125126 return ret;
126127
127− spin_lock_irqsave(&clockfw_lock, flags);
128128 if (clk->set_rate)
129129 ret = clk->set_rate(clk, rate);
130+
131+ spin_lock_irqsave(&clockfw_lock, flags);
130132 if (ret == 0) {
131133 if (clk->recalc)
132134 clk->rate = clk->recalc(clk);
@@ -363,6 +365,7 @@ int davinci_set_pllrate(struct pll_data *pll, unsigned int prediv, · 230 unmodified lines
363365 {
364366 u32 ctrl;
365367 unsigned int locktime;
368+ unsigned long flags;
366369
367370 if (pll->base == NULL)
368371 return -EINVAL;
@@ -376,25 +379,23 @@ int davinci_set_pllrate(struct pll_data *pll, unsigned int prediv, · 7 unmodified lines
376379 locktime = ((2000 * prediv) / 100);
377380 prediv = (prediv - 1) | PLLDIV_EN;
378381 } else {
379− locktime = 20;
382+ locktime = PLL_LOCK_TIME;
380383 }
381384 if (postdiv)
382385 postdiv = (postdiv - 1) | PLLDIV_EN;
383386 if (mult)
384387 mult = mult - 1;
385388
389+ /* Protect against simultaneous calls to PLL setting seqeunce */
390+ spin_lock_irqsave(&clockfw_lock, flags);
391+
386392 ctrl = __raw_readl(pll->base + PLLCTL);
387393
388394 /* Switch the PLL to bypass mode */
389395 ctrl &= ~(PLLCTL_PLLENSRC | PLLCTL_PLLEN);
390396 __raw_writel(ctrl, pll->base + PLLCTL);
391397
392− /*
393− * Wait for 4 OSCIN/CLKIN cycles to ensure that the PLLC has switched
394− * to bypass mode. Delay of 1us ensures we are good for all > 4MHz
395− * OSCIN/CLKIN inputs. Typically the input is ~25MHz.
396− */
397− udelay(1);
398+ udelay(PLL_BYPASS_TIME);
398399
399400 /* Reset and enable PLL */
400401 ctrl &= ~(PLLCTL_PLLRST | PLLCTL_PLLDIS);
@@ -408,11 +409,7 @@ int davinci_set_pllrate(struct pll_data *pll, unsigned int prediv, · 7 unmodified lines
408409 if (pll->flags & PLL_HAS_POSTDIV)
409410 __raw_writel(postdiv, pll->base + POSTDIV);
410411
411− /*
412− * Wait for PLL to reset properly, OMAP-L138 datasheet says
413− * 'min' time = 125ns
414− */
415− udelay(1);
412+ udelay(PLL_RESET_TIME);
416413
417414 /* Bring PLL out of reset */
418415 ctrl |= PLLCTL_PLLRST;
@@ -424,17 +421,20 @@ int davinci_set_pllrate(struct pll_data *pll, unsigned int prediv, · 5 unmodified lines
424421 ctrl |= PLLCTL_PLLEN;
425422 __raw_writel(ctrl, pll->base + PLLCTL);
426423
424+ spin_unlock_irqrestore(&clockfw_lock, flags);
425+
427426 return 0;
428427 }
429428 EXPORT_SYMBOL(davinci_set_pllrate);
430429
431−int __init davinci_clk_init(struct davinci_clk *clocks)
430+int __init davinci_clk_init(struct clk_lookup *clocks)
432431 {
433− struct davinci_clk *c;
432+ struct clk_lookup *c;
434433 struct clk *clk;
434+ size_t num_clocks = 0;
435435
436− for (c = clocks; c->lk.clk; c++) {
437− clk = c->lk.clk;
436+ for (c = clocks; c->clk; c++) {
437+ clk = c->clk;
438438
439439 if (!clk->recalc) {
440440
@@ -457,35 +457,23 @@ int __init davinci_clk_init(struct davinci_clk *clocks) · 16 unmodified lines
457457 if (clk->lpsc)
458458 clk->flags |= CLK_PSC;
459459
460− clkdev_add(&c->lk);
461460 clk_register(clk);
461+ num_clocks++;
462462
463463 /* Turn on clocks that Linux doesn't otherwise manage */
464464 if (clk->flags & ALWAYS_ENABLED)
465465 clk_enable(clk);
466466 }
467467
468− return 0;
469−}
470−
471−#ifdef CONFIG_PROC_FS
472−#include <linux/proc_fs.h>
473−#include <linux/seq_file.h>
468+ clkdev_add_table(clocks, num_clocks);
474469
475−static void *davinci_ck_start(struct seq_file *m, loff_t *pos)
476−{
477− return *pos < 1 ? (void *)1 : NULL;
470+ return 0;
478471 }
479472
480−static void *davinci_ck_next(struct seq_file *m, void *v, loff_t *pos)
481−{
482− ++*pos;
483− return NULL;
484−}
473+#ifdef CONFIG_DEBUG_FS
485474
486−static void davinci_ck_stop(struct seq_file *m, void *v)
487−{
488−}
475+#include <linux/debugfs.h>
476+#include <linux/seq_file.h>
489477
490478 #define CLKNAME_MAX 10 /* longest clock name */
491479 #define NEST_DELTA 2
@@ -525,41 +513,38 @@ dump_clock(struct seq_file *s, unsigned nest, struct clk *parent) · 33 unmodified lines
525513
526514 static int davinci_ck_show(struct seq_file *m, void *v)
527515 {
528− /* Show clock tree; we know the main oscillator is first.
529− * We trust nonzero usecounts equate to PSC enables...
516+ struct clk *clk;
517+
518+ /*
519+ * Show clock tree; We trust nonzero usecounts equate to PSC enables...
530520 */
531521 mutex_lock(&clocks_mutex);
532− if (!list_empty(&clocks))
533− dump_clock(m, 0, list_first_entry(&clocks, struct clk, node));
522+ list_for_each_entry(clk, &clocks, node)
523+ if (!clk->parent)
524+ dump_clock(m, 0, clk);
534525 mutex_unlock(&clocks_mutex);
535526
536527 return 0;
537528 }
538529
539−static const struct seq_operations davinci_ck_op = {
540− .start = davinci_ck_start,
541− .next = davinci_ck_next,
542− .stop = davinci_ck_stop,
543− .show = davinci_ck_show
544−};
545−
546530 static int davinci_ck_open(struct inode *inode, struct file *file)
547531 {
548− return seq_open(file, &davinci_ck_op);
532+ return single_open(file, davinci_ck_show, NULL);
549533 }
550534
551−static const struct file_operations proc_davinci_ck_operations = {
535+static const struct file_operations davinci_ck_operations = {
552536 .open = davinci_ck_open,
553537 .read = seq_read,
554538 .llseek = seq_lseek,
555− .release = seq_release,
539+ .release = single_release,
556540 };
557541
558−static int __init davinci_ck_proc_init(void)
542+static int __init davinci_clk_debugfs_init(void)
559543 {
560− proc_create("davinci_clocks", 0, NULL, &proc_davinci_ck_operations);
544+ debugfs_create_file("davinci_clocks", S_IFREG | S_IRUGO, NULL, NULL,
545+ &davinci_ck_operations);
561546 return 0;
562547
563548 }
564−__initcall(davinci_ck_proc_init);
565−#endif /* CONFIG_DEBUG_PROC_FS */
549+device_initcall(davinci_clk_debugfs_init);
550+#endif /* CONFIG_DEBUG_FS */
arch/arm/mach-davinci/clock.h+29−16
@@ -12,9 +12,6 @@ · 11 unmodified lines
1212 #ifndef __ARCH_ARM_DAVINCI_CLOCK_H
1313 #define __ARCH_ARM_DAVINCI_CLOCK_H
1414
15−#include <linux/list.h>
16−#include <asm/clkdev.h>
17−
1815 #define DAVINCI_PLL1_BASE 0x01c40800
1916 #define DAVINCI_PLL2_BASE 0x01c40c00
2017 #define MAX_PLL 2
@@ -53,6 +50,26 @@ · 32 unmodified lines
5350 #define PLLDIV_EN BIT(15)
5451 #define PLLDIV_RATIO_MASK 0x1f
5552
53+/*
54+ * OMAP-L138 system reference guide recommends a wait for 4 OSCIN/CLKIN
55+ * cycles to ensure that the PLLC has switched to bypass mode. Delay of 1us
56+ * ensures we are good for all > 4MHz OSCIN/CLKIN inputs. Typically the input
57+ * is ~25MHz. Units are micro seconds.
58+ */
59+#define PLL_BYPASS_TIME 1
60+/* From OMAP-L138 datasheet table 6-4. Units are micro seconds */
61+#define PLL_RESET_TIME 1
62+/*
63+ * From OMAP-L138 datasheet table 6-4; assuming prediv = 1, sqrt(pllm) = 4
64+ * Units are micro seconds.
65+ */
66+#define PLL_LOCK_TIME 20
67+
68+#ifndef __ASSEMBLER__
69+
70+#include <linux/list.h>
71+#include <asm/clkdev.h>
72+
5673 struct pll_data {
5774 u32 phys_base;
5875 void __iomem *base;
@@ -89,23 +106,19 @@ struct clk { · 30 unmodified lines
89106 #define CLK_PLL BIT(4) /* PLL-derived clock */
90107 #define PRE_PLL BIT(5) /* source is before PLL mult/div */
91108
92−struct davinci_clk {
93− struct clk_lookup lk;
94−};
95−
96−#define CLK(dev, con, ck) \
97− { \
98− .lk = { \
99− .dev_id = dev, \
100− .con_id = con, \
101− .clk = ck, \
102− }, \
103− }
109+#define CLK(dev, con, ck) \
110+ { \
111+ .dev_id = dev, \
112+ .con_id = con, \
113+ .clk = ck, \
114+ } \
104115
105−int davinci_clk_init(struct davinci_clk *clocks);
116+int davinci_clk_init(struct clk_lookup *clocks);
106117 int davinci_set_pllrate(struct pll_data *pll, unsigned int prediv,
107118 unsigned int mult, unsigned int postdiv);
108119
109120 extern struct platform_device davinci_wdt_device;
110121
111122 #endif
123+
124+#endif
arch/arm/mach-davinci/common.c+1−1
@@ -11,13 +11,13 @@ · 10 unmodified lines
1111 #include <linux/module.h>
1212 #include <linux/io.h>
1313 #include <linux/etherdevice.h>
14+#include <linux/davinci_emac.h>
1415
1516 #include <asm/tlb.h>
1617 #include <asm/mach/map.h>
1718
1819 #include <mach/common.h>
1920 #include <mach/cputype.h>
20−#include <mach/emac.h>
2121
2222 #include "clock.h"
2323
arch/arm/mach-davinci/cpuidle.c+5−33
@@ -19,6 +19,7 @@ · 18 unmodified lines
1919 #include <asm/proc-fns.h>
2020
2121 #include <mach/cpuidle.h>
22+#include <mach/memory.h>
2223
2324 #define DAVINCI_CPUIDLE_MAX_STATES 2
2425
@@ -39,10 +40,6 @@ static struct cpuidle_driver davinci_idle_driver = { · 14 unmodified lines
3940 static DEFINE_PER_CPU(struct cpuidle_device, davinci_cpuidle_device);
4041 static void __iomem *ddr2_reg_base;
4142
42−#define DDR2_SDRCR_OFFSET 0xc
43−#define DDR2_SRPD_BIT BIT(23)
44−#define DDR2_LPMODEN_BIT BIT(31)
45−
4643 static void davinci_save_ddr_power(int enter, bool pdown)
4744 {
4845 u32 val;
@@ -109,8 +106,6 @@ static int __init davinci_cpuidle_probe(struct platform_device *pdev) · 60 unmodified lines
109106 int ret;
110107 struct cpuidle_device *device;
111108 struct davinci_cpuidle_config *pdata = pdev->dev.platform_data;
112− struct resource *ddr2_regs;
113− resource_size_t len;
114109
115110 device = &per_cpu(davinci_cpuidle_device, smp_processor_id());
116111
@@ -119,28 +114,12 @@ static int __init davinci_cpuidle_probe(struct platform_device *pdev) · 2 unmodified lines
119114 return -ENOENT;
120115 }
121116
122− ddr2_regs = platform_get_resource(pdev, IORESOURCE_MEM, 0);
123− if (!ddr2_regs) {
124− dev_err(&pdev->dev, "cannot get DDR2 controller register base");
125− return -ENODEV;
126− }
127−
128− len = resource_size(ddr2_regs);
129−
130− ddr2_regs = request_mem_region(ddr2_regs->start, len, ddr2_regs->name);
131− if (!ddr2_regs)
132− return -EBUSY;
133−
134− ddr2_reg_base = ioremap(ddr2_regs->start, len);
135− if (!ddr2_reg_base) {
136− ret = -ENOMEM;
137− goto ioremap_fail;
138− }
117+ ddr2_reg_base = pdata->ddr2_ctlr_base;
139118
140119 ret = cpuidle_register_driver(&davinci_idle_driver);
141120 if (ret) {
142121 dev_err(&pdev->dev, "failed to register driver\n");
143− goto driver_register_fail;
122+ return ret;
144123 }
145124
146125 /* Wait for interrupt state */
@@ -167,18 +146,11 @@ static int __init davinci_cpuidle_probe(struct platform_device *pdev) · 20 unmodified lines
167146 ret = cpuidle_register_device(device);
168147 if (ret) {
169148 dev_err(&pdev->dev, "failed to register device\n");
170− goto device_register_fail;
149+ cpuidle_unregister_driver(&davinci_idle_driver);
150+ return ret;
171151 }
172152
173153 return 0;
174−
175−device_register_fail:
176− cpuidle_unregister_driver(&davinci_idle_driver);
177−driver_register_fail:
178− iounmap(ddr2_reg_base);
179−ioremap_fail:
180− release_mem_region(ddr2_regs->start, len);
181− return ret;
182154 }
183155
184156 static struct platform_driver davinci_cpuidle_driver = {
arch/arm/mach-davinci/da830.c+5−5
@@ -371,7 +371,7 @@ static struct clk rmii_clk = { · 370 unmodified lines
371371 .parent = &pll0_sysclk7,
372372 };
373373
374−static struct davinci_clk da830_clks[] = {
374+static struct clk_lookup da830_clks[] = {
375375 CLK(NULL, "ref", &ref_clk),
376376 CLK(NULL, "pll0", &pll0_clk),
377377 CLK(NULL, "pll0_aux", &pll0_aux_clk),
@@ -1208,13 +1208,13 @@ static struct davinci_soc_info davinci_soc_info_da830 = { · 830 unmodified lines
12081208
12091209 void __init da830_init(void)
12101210 {
1211− da8xx_syscfg_base = ioremap(DA8XX_SYSCFG_BASE, SZ_4K);
1212− if (WARN(!da8xx_syscfg_base, "Unable to map syscfg module"))
1211+ da8xx_syscfg0_base = ioremap(DA8XX_SYSCFG0_BASE, SZ_4K);
1212+ if (WARN(!da8xx_syscfg0_base, "Unable to map syscfg0 module"))
12131213 return;
12141214
12151215 davinci_soc_info_da830.jtag_id_base =
1216− DA8XX_SYSCFG_VIRT(DA8XX_JTAG_ID_REG);
1217− davinci_soc_info_da830.pinmux_base = DA8XX_SYSCFG_VIRT(0x120);
1216+ DA8XX_SYSCFG0_VIRT(DA8XX_JTAG_ID_REG);
1217+ davinci_soc_info_da830.pinmux_base = DA8XX_SYSCFG0_VIRT(0x120);
12181218
12191219 davinci_common_init(&davinci_soc_info_da830);
12201220 }
arch/arm/mach-davinci/da850.c+74−16
@@ -26,6 +26,7 @@ · 25 unmodified lines
2626 #include <mach/time.h>
2727 #include <mach/da8xx.h>
2828 #include <mach/cpufreq.h>
29+#include <mach/pm.h>
2930
3031 #include "clock.h"
3132 #include "mux.h"
@@ -40,6 +41,7 @@ · 8 unmodified lines
4041 #define DA850_REF_FREQ 24000000
4142
4243 #define CFGCHIP3_ASYNC3_CLKSRC BIT(4)
44+#define CFGCHIP3_PLL1_MASTER_LOCK BIT(5)
4345 #define CFGCHIP0_PLL_MASTER_LOCK BIT(4)
4446
4547 static int da850_set_armrate(struct clk *clk, unsigned long rate);
@@ -333,7 +335,7 @@ static struct clk aemif_clk = { · 287 unmodified lines
333335 .flags = ALWAYS_ENABLED,
334336 };
335337
336−static struct davinci_clk da850_clks[] = {
338+static struct clk_lookup da850_clks[] = {
337339 CLK(NULL, "ref", &ref_clk),
338340 CLK(NULL, "pll0", &pll0_clk),
339341 CLK(NULL, "pll0_aux", &pll0_aux_clk),
@@ -535,6 +537,7 @@ static const struct mux_config da850_pins[] = { · 195 unmodified lines
535537 MUX_CFG(DA850, GPIO2_15, 5, 0, 15, 8, false)
536538 MUX_CFG(DA850, GPIO4_0, 10, 28, 15, 8, false)
537539 MUX_CFG(DA850, GPIO4_1, 10, 24, 15, 8, false)
540+ MUX_CFG(DA850, RTC_ALARM, 0, 28, 15, 2, false)
538541 #endif
539542 };
540543
@@ -770,6 +773,12 @@ static struct map_desc da850_io_desc[] = { · 229 unmodified lines
770773 .length = DA8XX_CP_INTC_SIZE,
771774 .type = MT_DEVICE
772775 },
776+ {
777+ .virtual = SRAM_VIRT,
778+ .pfn = __phys_to_pfn(DA8XX_ARM_RAM_BASE),
779+ .length = SZ_8K,
780+ .type = MT_DEVICE
781+ },
773782 };
774783
775784 static void __iomem *da850_psc_bases[] = {
@@ -825,12 +834,12 @@ static struct davinci_timer_info da850_timer_info = { · 49 unmodified lines
825834 static void da850_set_async3_src(int pllnum)
826835 {
827836 struct clk *clk, *newparent = pllnum ? &pll1_sysclk2 : &pll0_sysclk2;
828− struct davinci_clk *c;
837+ struct clk_lookup *c;
829838 unsigned int v;
830839 int ret;
831840
832− for (c = da850_clks; c->lk.clk; c++) {
833− clk = c->lk.clk;
841+ for (c = da850_clks; c->clk; c++) {
842+ clk = c->clk;
834843 if (clk->flags & DA850_CLK_ASYNC3) {
835844 ret = clk_set_parent(clk, newparent);
836845 WARN(ret, "DA850: unable to re-parent clock %s",
@@ -838,12 +847,12 @@ static void da850_set_async3_src(int pllnum) · 1 unmodified line
838847 }
839848 }
840849
841− v = __raw_readl(DA8XX_SYSCFG_VIRT(DA8XX_CFGCHIP3_REG));
850+ v = __raw_readl(DA8XX_SYSCFG0_VIRT(DA8XX_CFGCHIP3_REG));
842851 if (pllnum)
843852 v |= CFGCHIP3_ASYNC3_CLKSRC;
844853 else
845854 v &= ~CFGCHIP3_ASYNC3_CLKSRC;
846− __raw_writel(v, DA8XX_SYSCFG_VIRT(DA8XX_CFGCHIP3_REG));
855+ __raw_writel(v, DA8XX_SYSCFG0_VIRT(DA8XX_CFGCHIP3_REG));
847856 }
848857
849858 #ifdef CONFIG_CPU_FREQ
@@ -987,7 +996,6 @@ static int da850_set_pll0rate(struct clk *clk, unsigned long index) · 137 unmodified lines
987996 unsigned int prediv, mult, postdiv;
988997 struct da850_opp *opp;
989998 struct pll_data *pll = clk->pll_data;
990− unsigned int v;
991999 int ret;
9921000
9931001 opp = (struct da850_opp *) da850_freq_table[index].index;
@@ -995,11 +1003,6 @@ static int da850_set_pll0rate(struct clk *clk, unsigned long index) · 1 unmodified line
9951003 mult = opp->mult;
9961004 postdiv = opp->postdiv;
9971005
998− /* Unlock writing to PLL registers */
999− v = __raw_readl(DA8XX_SYSCFG_VIRT(DA8XX_CFGCHIP0_REG));
1000− v &= ~CFGCHIP0_PLL_MASTER_LOCK;
1001− __raw_writel(v, DA8XX_SYSCFG_VIRT(DA8XX_CFGCHIP0_REG));
1002−
10031006 ret = davinci_set_pllrate(pll, prediv, mult, postdiv);
10041007 if (WARN_ON(ret))
10051008 return ret;
@@ -1028,6 +1031,43 @@ static int da850_round_armrate(struct clk *clk, unsigned long rate) · 22 unmodified lines
10281031 }
10291032 #endif
10301033
1034+int da850_register_pm(struct platform_device *pdev)
1035+{
1036+ int ret;
1037+ struct davinci_pm_config *pdata = pdev->dev.platform_data;
1038+
1039+ ret = davinci_cfg_reg(DA850_RTC_ALARM);
1040+ if (ret)
1041+ return ret;
1042+
1043+ pdata->ddr2_ctlr_base = da8xx_get_mem_ctlr();
1044+ pdata->deepsleep_reg = DA8XX_SYSCFG1_VIRT(DA8XX_DEEPSLEEP_REG);
1045+ pdata->ddrpsc_num = DA8XX_LPSC1_EMIF3C;
1046+
1047+ pdata->cpupll_reg_base = ioremap(DA8XX_PLL0_BASE, SZ_4K);
1048+ if (!pdata->cpupll_reg_base)
1049+ return -ENOMEM;
1050+
1051+ pdata->ddrpll_reg_base = ioremap(DA8XX_PLL1_BASE, SZ_4K);
1052+ if (!pdata->ddrpll_reg_base) {
1053+ ret = -ENOMEM;
1054+ goto no_ddrpll_mem;
1055+ }
1056+
1057+ pdata->ddrpsc_reg_base = ioremap(DA8XX_PSC1_BASE, SZ_4K);
1058+ if (!pdata->ddrpsc_reg_base) {
1059+ ret = -ENOMEM;
1060+ goto no_ddrpsc_mem;
1061+ }
1062+
1063+ return platform_device_register(pdev);
1064+
1065+no_ddrpsc_mem:
1066+ iounmap(pdata->ddrpll_reg_base);
1067+no_ddrpll_mem:
1068+ iounmap(pdata->cpupll_reg_base);
1069+ return ret;
1070+}
10311071
10321072 static struct davinci_soc_info davinci_soc_info_da850 = {
10331073 .io_desc = da850_io_desc,
@@ -1049,17 +1089,25 @@ static struct davinci_soc_info davinci_soc_info_da850 = { · 15 unmodified lines
10491089 .gpio_irq = IRQ_DA8XX_GPIO0,
10501090 .serial_dev = &da8xx_serial_device,
10511091 .emac_pdata = &da8xx_emac_pdata,
1092+ .sram_dma = DA8XX_ARM_RAM_BASE,
1093+ .sram_len = SZ_8K,
10521094 };
10531095
10541096 void __init da850_init(void)
10551097 {
1056− da8xx_syscfg_base = ioremap(DA8XX_SYSCFG_BASE, SZ_4K);
1057− if (WARN(!da8xx_syscfg_base, "Unable to map syscfg module"))
1098+ unsigned int v;
1099+
1100+ da8xx_syscfg0_base = ioremap(DA8XX_SYSCFG0_BASE, SZ_4K);
1101+ if (WARN(!da8xx_syscfg0_base, "Unable to map syscfg0 module"))
1102+ return;
1103+
1104+ da8xx_syscfg1_base = ioremap(DA8XX_SYSCFG1_BASE, SZ_4K);
1105+ if (WARN(!da8xx_syscfg1_base, "Unable to map syscfg1 module"))
10581106 return;
10591107
10601108 davinci_soc_info_da850.jtag_id_base =
1061− DA8XX_SYSCFG_VIRT(DA8XX_JTAG_ID_REG);
1062− davinci_soc_info_da850.pinmux_base = DA8XX_SYSCFG_VIRT(0x120);
1109+ DA8XX_SYSCFG0_VIRT(DA8XX_JTAG_ID_REG);
1110+ davinci_soc_info_da850.pinmux_base = DA8XX_SYSCFG0_VIRT(0x120);
10631111
10641112 davinci_common_init(&davinci_soc_info_da850);
10651113
@@ -1071,4 +1119,14 @@ void __init da850_init(void) · 5 unmodified lines
10711119 * be any noticible change even in non-DVFS use cases.
10721120 */
10731121 da850_set_async3_src(1);
1122+
1123+ /* Unlock writing to PLL0 registers */
1124+ v = __raw_readl(DA8XX_SYSCFG0_VIRT(DA8XX_CFGCHIP0_REG));
1125+ v &= ~CFGCHIP0_PLL_MASTER_LOCK;
1126+ __raw_writel(v, DA8XX_SYSCFG0_VIRT(DA8XX_CFGCHIP0_REG));
1127+
1128+ /* Unlock writing to PLL1 registers */
1129+ v = __raw_readl(DA8XX_SYSCFG0_VIRT(DA8XX_CFGCHIP3_REG));
1130+ v &= ~CFGCHIP3_PLL1_MASTER_LOCK;
1131+ __raw_writel(v, DA8XX_SYSCFG0_VIRT(DA8XX_CFGCHIP3_REG));
10741132 }
arch/arm/mach-davinci/devices-da8xx.c+131−15
@@ -24,8 +24,10 @@ · 23 unmodified lines
2424 #include "clock.h"
2525
2626 #define DA8XX_TPCC_BASE 0x01c00000
27+#define DA850_TPCC1_BASE 0x01e30000
2728 #define DA8XX_TPTC0_BASE 0x01c08000
2829 #define DA8XX_TPTC1_BASE 0x01c08400
30+#define DA850_TPTC2_BASE 0x01e38000
2931 #define DA8XX_WDOG_BASE 0x01c21000 /* DA8XX_TIMER64P1_BASE */
3032 #define DA8XX_I2C0_BASE 0x01c22000
3133 #define DA8XX_RTC_BASE 0x01C23000
@@ -42,7 +44,8 @@ · 10 unmodified lines
4244 #define DA8XX_MDIO_REG_OFFSET 0x4000
4345 #define DA8XX_EMAC_CTRL_RAM_SIZE SZ_8K
4446
45−void __iomem *da8xx_syscfg_base;
47+void __iomem *da8xx_syscfg0_base;
48+void __iomem *da8xx_syscfg1_base;
4649
4750 static struct plat_serial8250_port da8xx_serial_pdata[] = {
4851 {
@@ -82,11 +85,6 @@ struct platform_device da8xx_serial_device = { · 33 unmodified lines
8285 },
8386 };
8487
85−static const s8 da8xx_dma_chan_no_event[] = {
86− 20, 21,
87− -1
88−};
89−
9088 static const s8 da8xx_queue_tc_mapping[][2] = {
9189 /* {event queue no, TC no} */
9290 {0, 0},
@@ -101,20 +99,52 @@ static const s8 da8xx_queue_priority_mapping[][2] = { · 8 unmodified lines
10199 {-1, -1}
102100 };
103101
104−static struct edma_soc_info da8xx_edma_info[] = {
102+static const s8 da850_queue_tc_mapping[][2] = {
103+ /* {event queue no, TC no} */
104+ {0, 0},
105+ {-1, -1}
106+};
107+
108+static const s8 da850_queue_priority_mapping[][2] = {
109+ /* {event queue no, Priority} */
110+ {0, 3},
111+ {-1, -1}
112+};
113+
114+static struct edma_soc_info da830_edma_info[] = {
105115 {
106116 .n_channel = 32,
107117 .n_region = 4,
108118 .n_slot = 128,
109119 .n_tc = 2,
110120 .n_cc = 1,
111− .noevent = da8xx_dma_chan_no_event,
112121 .queue_tc_mapping = da8xx_queue_tc_mapping,
113122 .queue_priority_mapping = da8xx_queue_priority_mapping,
114123 },
115124 };
116125
117−static struct resource da8xx_edma_resources[] = {
126+static struct edma_soc_info da850_edma_info[] = {
127+ {
128+ .n_channel = 32,
129+ .n_region = 4,
130+ .n_slot = 128,
131+ .n_tc = 2,
132+ .n_cc = 1,
133+ .queue_tc_mapping = da8xx_queue_tc_mapping,
134+ .queue_priority_mapping = da8xx_queue_priority_mapping,
135+ },
136+ {
137+ .n_channel = 32,
138+ .n_region = 4,
139+ .n_slot = 128,
140+ .n_tc = 1,
141+ .n_cc = 1,
142+ .queue_tc_mapping = da850_queue_tc_mapping,
143+ .queue_priority_mapping = da850_queue_priority_mapping,
144+ },
145+};
146+
147+static struct resource da830_edma_resources[] = {
118148 {
119149 .name = "edma_cc0",
120150 .start = DA8XX_TPCC_BASE,
@@ -145,19 +175,91 @@ static struct resource da8xx_edma_resources[] = { · 24 unmodified lines
145175 },
146176 };
147177
148−static struct platform_device da8xx_edma_device = {
178+static struct resource da850_edma_resources[] = {
179+ {
180+ .name = "edma_cc0",
181+ .start = DA8XX_TPCC_BASE,
182+ .end = DA8XX_TPCC_BASE + SZ_32K - 1,
183+ .flags = IORESOURCE_MEM,
184+ },
185+ {
186+ .name = "edma_tc0",
187+ .start = DA8XX_TPTC0_BASE,
188+ .end = DA8XX_TPTC0_BASE + SZ_1K - 1,
189+ .flags = IORESOURCE_MEM,
190+ },
191+ {
192+ .name = "edma_tc1",
193+ .start = DA8XX_TPTC1_BASE,
194+ .end = DA8XX_TPTC1_BASE + SZ_1K - 1,
195+ .flags = IORESOURCE_MEM,
196+ },
197+ {
198+ .name = "edma_cc1",
199+ .start = DA850_TPCC1_BASE,
200+ .end = DA850_TPCC1_BASE + SZ_32K - 1,
201+ .flags = IORESOURCE_MEM,
202+ },
203+ {
204+ .name = "edma_tc2",
205+ .start = DA850_TPTC2_BASE,
206+ .end = DA850_TPTC2_BASE + SZ_1K - 1,
207+ .flags = IORESOURCE_MEM,
208+ },
209+ {
210+ .name = "edma0",
211+ .start = IRQ_DA8XX_CCINT0,
212+ .flags = IORESOURCE_IRQ,
213+ },
214+ {
215+ .name = "edma0_err",
216+ .start = IRQ_DA8XX_CCERRINT,
217+ .flags = IORESOURCE_IRQ,
218+ },
219+ {
220+ .name = "edma1",
221+ .start = IRQ_DA850_CCINT1,
222+ .flags = IORESOURCE_IRQ,
223+ },
224+ {
225+ .name = "edma1_err",
226+ .start = IRQ_DA850_CCERRINT1,
227+ .flags = IORESOURCE_IRQ,
228+ },
229+};
230+
231+static struct platform_device da830_edma_device = {
149232 .name = "edma",
150233 .id = -1,
151234 .dev = {
152− .platform_data = da8xx_edma_info,
235+ .platform_data = da830_edma_info,
153236 },
154− .num_resources = ARRAY_SIZE(da8xx_edma_resources),
155− .resource = da8xx_edma_resources,
237+ .num_resources = ARRAY_SIZE(da830_edma_resources),
238+ .resource = da830_edma_resources,
239+};
240+
241+static struct platform_device da850_edma_device = {
242+ .name = "edma",
243+ .id = -1,
244+ .dev = {
245+ .platform_data = da850_edma_info,
246+ },
247+ .num_resources = ARRAY_SIZE(da850_edma_resources),
248+ .resource = da850_edma_resources,
156249 };
157250
158251 int __init da8xx_register_edma(void)
159252 {
160− return platform_device_register(&da8xx_edma_device);
253+ struct platform_device *pdev;
254+
255+ if (cpu_is_davinci_da830())
256+ pdev = &da830_edma_device;
257+ else if (cpu_is_davinci_da850())
258+ pdev = &da850_edma_device;
259+ else
260+ return -ENODEV;
261+
262+ return platform_device_register(pdev);
161263 }
162264
163265 static struct resource da8xx_i2c_resources0[] = {
@@ -495,6 +597,19 @@ int da8xx_register_rtc(void) · 331 unmodified lines
495597 return ret;
496598 }
497599
600+static void __iomem *da8xx_ddr2_ctlr_base;
601+void __iomem * __init da8xx_get_mem_ctlr(void)
602+{
603+ if (da8xx_ddr2_ctlr_base)
604+ return da8xx_ddr2_ctlr_base;
605+
606+ da8xx_ddr2_ctlr_base = ioremap(DA8XX_DDR2_CTL_BASE, SZ_32K);
607+ if (!da8xx_ddr2_ctlr_base)
608+ pr_warning("%s: Unable to map DDR2 controller", __func__);
609+
610+ return da8xx_ddr2_ctlr_base;
611+}
612+
498613 static struct resource da8xx_cpuidle_resources[] = {
499614 {
500615 .start = DA8XX_DDR2_CTL_BASE,
@@ -520,6 +635,7 @@ static struct platform_device da8xx_cpuidle_device = { · 19 unmodified lines
520635
521636 int __init da8xx_register_cpuidle(void)
522637 {
638+ da8xx_cpuidle_pdata.ddr2_ctlr_base = da8xx_get_mem_ctlr();
639+
523640 return platform_device_register(&da8xx_cpuidle_device);
524641 }
525−
arch/arm/mach-davinci/dm355.c+59−33
@@ -29,6 +29,7 @@ · 28 unmodified lines
2929 #include <mach/serial.h>
3030 #include <mach/common.h>
3131 #include <mach/asp.h>
32+#include <mach/spi.h>
3233
3334 #include "clock.h"
3435 #include "mux.h"
@@ -125,7 +126,6 @@ static struct clk vpss_slave_clk = { · 90 unmodified lines
125126 .lpsc = DAVINCI_LPSC_VPSSSLV,
126127 };
127128
128−
129129 static struct clk clkout1_clk = {
130130 .name = "clkout1",
131131 .parent = &pll1_aux_clk,
@@ -335,7 +335,7 @@ static struct clk usb_clk = { · 203 unmodified lines
335335 .lpsc = DAVINCI_LPSC_USB,
336336 };
337337
338−static struct davinci_clk dm355_clks[] = {
338+static struct clk_lookup dm355_clks[] = {
339339 CLK(NULL, "ref", &ref_clk),
340340 CLK(NULL, "pll1", &pll1_clk),
341341 CLK(NULL, "pll1_sysclk1", &pll1_sysclk1),
@@ -363,9 +363,9 @@ static struct davinci_clk dm355_clks[] = { · 21 unmodified lines
363363 CLK("davinci-asp.1", NULL, &asp1_clk),
364364 CLK("davinci_mmc.0", NULL, &mmcsd0_clk),
365365 CLK("davinci_mmc.1", NULL, &mmcsd1_clk),
366− CLK(NULL, "spi0", &spi0_clk),
367− CLK(NULL, "spi1", &spi1_clk),
368− CLK(NULL, "spi2", &spi2_clk),
366+ CLK("spi_davinci.0", NULL, &spi0_clk),
367+ CLK("spi_davinci.1", NULL, &spi1_clk),
368+ CLK("spi_davinci.2", NULL, &spi2_clk),
369369 CLK(NULL, "gpio", &gpio_clk),
370370 CLK(NULL, "aemif", &aemif_clk),
371371 CLK(NULL, "pwm0", &pwm0_clk),
@@ -392,24 +392,40 @@ static struct resource dm355_spi0_resources[] = { · 20 unmodified lines
392392 .flags = IORESOURCE_MEM,
393393 },
394394 {
395− .start = IRQ_DM355_SPINT0_1,
395+ .start = IRQ_DM355_SPINT0_0,
396396 .flags = IORESOURCE_IRQ,
397397 },
398− /* Not yet used, so not included:
399− * IORESOURCE_IRQ:
400− * - IRQ_DM355_SPINT0_0
401− * IORESOURCE_DMA:
402− * - DAVINCI_DMA_SPI_SPIX
403− * - DAVINCI_DMA_SPI_SPIR
404− */
398+ {
399+ .start = 17,
400+ .flags = IORESOURCE_DMA,
401+ },
402+ {
403+ .start = 16,
404+ .flags = IORESOURCE_DMA,
405+ },
406+ {
407+ .start = EVENTQ_1,
408+ .flags = IORESOURCE_DMA,
409+ },
405410 };
406411
412+static struct davinci_spi_platform_data dm355_spi0_pdata = {
413+ .version = SPI_VERSION_1,
414+ .num_chipselect = 2,
415+ .clk_internal = 1,
416+ .cs_hold = 1,
417+ .intr_level = 0,
418+ .poll_mode = 1, /* 0 -> interrupt mode 1-> polling mode */
419+ .c2tdelay = 0,
420+ .t2cdelay = 0,
421+};
407422 static struct platform_device dm355_spi0_device = {
408423 .name = "spi_davinci",
409424 .id = 0,
410425 .dev = {
411426 .dma_mask = &dm355_spi0_dma_mask,
412427 .coherent_dma_mask = DMA_BIT_MASK(32),
428+ .platform_data = &dm355_spi0_pdata,
413429 },
414430 .num_resources = ARRAY_SIZE(dm355_spi0_resources),
415431 .resource = dm355_spi0_resources,
@@ -564,13 +580,6 @@ static u8 dm355_default_priorities[DAVINCI_N_AINTC_IRQ] = { · 148 unmodified lines
564580
565581 /*----------------------------------------------------------------------*/
566582
567−static const s8 dma_chan_dm355_no_event[] = {
568− 12, 13, 24, 56, 57,
569− 58, 59, 60, 61, 62,
570− 63,
571− -1
572−};
573−
574583 static const s8
575584 queue_tc_mapping[][2] = {
576585 /* {event queue no, TC no} */
@@ -594,7 +603,6 @@ static struct edma_soc_info dm355_edma_info[] = { · 17 unmodified lines
594603 .n_slot = 128,
595604 .n_tc = 2,
596605 .n_cc = 1,
597− .noevent = dma_chan_dm355_no_event,
598606 .queue_tc_mapping = queue_tc_mapping,
599607 .queue_priority_mapping = queue_priority_mapping,
600608 },
@@ -665,6 +673,17 @@ static struct platform_device dm355_asp1_device = { · 64 unmodified lines
665673 .resource = dm355_asp1_resources,
666674 };
667675
676+static void dm355_ccdc_setup_pinmux(void)
677+{
678+ davinci_cfg_reg(DM355_VIN_PCLK);
679+ davinci_cfg_reg(DM355_VIN_CAM_WEN);
680+ davinci_cfg_reg(DM355_VIN_CAM_VD);
681+ davinci_cfg_reg(DM355_VIN_CAM_HD);
682+ davinci_cfg_reg(DM355_VIN_YIN_EN);
683+ davinci_cfg_reg(DM355_VIN_CINL_EN);
684+ davinci_cfg_reg(DM355_VIN_CINH_EN);
685+}
686+
668687 static struct resource dm355_vpss_resources[] = {
669688 {
670689 /* VPSS BL Base address */
@@ -701,6 +720,10 @@ static struct resource vpfe_resources[] = { · 30 unmodified lines
701720 .end = IRQ_VDINT1,
702721 .flags = IORESOURCE_IRQ,
703722 },
723+};
724+
725+static u64 vpfe_capture_dma_mask = DMA_BIT_MASK(32);
726+static struct resource dm355_ccdc_resource[] = {
704727 /* CCDC Base address */
705728 {
706729 .flags = IORESOURCE_MEM,
@@ -708,8 +731,18 @@ static struct resource vpfe_resources[] = { · 1 unmodified line
708731 .end = 0x01c70600 + 0x1ff,
709732 },
710733 };
734+static struct platform_device dm355_ccdc_dev = {
735+ .name = "dm355_ccdc",
736+ .id = -1,
737+ .num_resources = ARRAY_SIZE(dm355_ccdc_resource),
738+ .resource = dm355_ccdc_resource,
739+ .dev = {
740+ .dma_mask = &vpfe_capture_dma_mask,
741+ .coherent_dma_mask = DMA_BIT_MASK(32),
742+ .platform_data = dm355_ccdc_setup_pinmux,
743+ },
744+};
711745
712−static u64 vpfe_capture_dma_mask = DMA_BIT_MASK(32);
713746 static struct platform_device vpfe_capture_dev = {
714747 .name = CAPTURE_DRV_NAME,
715748 .id = -1,
@@ -857,20 +890,13 @@ static int __init dm355_init_devices(void) · 141 unmodified lines
857890 if (!cpu_is_davinci_dm355())
858891 return 0;
859892
893+ /* Add ccdc clock aliases */
894+ clk_add_alias("master", dm355_ccdc_dev.name, "vpss_master", NULL);
895+ clk_add_alias("slave", dm355_ccdc_dev.name, "vpss_master", NULL);
860896 davinci_cfg_reg(DM355_INT_EDMA_CC);
861897 platform_device_register(&dm355_edma_device);
862898 platform_device_register(&dm355_vpss_device);
863− /*
864− * setup Mux configuration for vpfe input and register
865− * vpfe capture platform device
866− */
867− davinci_cfg_reg(DM355_VIN_PCLK);
868− davinci_cfg_reg(DM355_VIN_CAM_WEN);
869− davinci_cfg_reg(DM355_VIN_CAM_VD);
870− davinci_cfg_reg(DM355_VIN_CAM_HD);
871− davinci_cfg_reg(DM355_VIN_YIN_EN);
872− davinci_cfg_reg(DM355_VIN_CINL_EN);
873− davinci_cfg_reg(DM355_VIN_CINH_EN);
899+ platform_device_register(&dm355_ccdc_dev);
874900 platform_device_register(&vpfe_capture_dev);
875901
876902 return 0;
arch/arm/mach-davinci/dm365.c+209−4
@@ -18,6 +18,7 @@ · 17 unmodified lines
1818 #include <linux/platform_device.h>
1919 #include <linux/dma-mapping.h>
2020 #include <linux/gpio.h>
21+#include <linux/spi/spi.h>
2122
2223 #include <asm/mach/map.h>
2324
@@ -32,6 +33,8 @@ · 8 unmodified lines
3233 #include <mach/common.h>
3334 #include <mach/asp.h>
3435 #include <mach/keyscan.h>
36+#include <mach/spi.h>
37+
3538
3639 #include "clock.h"
3740 #include "mux.h"
@@ -403,7 +406,7 @@ static struct clk mjcp_clk = { · 365 unmodified lines
403406 .lpsc = DM365_LPSC_MJCP,
404407 };
405408
406−static struct davinci_clk dm365_clks[] = {
409+static struct clk_lookup dm365_clks[] = {
407410 CLK(NULL, "ref", &ref_clk),
408411 CLK(NULL, "pll1", &pll1_clk),
409412 CLK(NULL, "pll1_aux", &pll1_aux_clk),
@@ -455,7 +458,7 @@ static struct davinci_clk dm365_clks[] = { · 45 unmodified lines
455458 CLK(NULL, "timer3", &timer3_clk),
456459 CLK(NULL, "usb", &usb_clk),
457460 CLK("davinci_emac.1", NULL, &emac_clk),
458− CLK("voice_codec", NULL, &voicecodec_clk),
461+ CLK("davinci_voicecodec", NULL, &voicecodec_clk),
459462 CLK("davinci-asp.0", NULL, &asp0_clk),
460463 CLK(NULL, "rto", &rto_clk),
461464 CLK(NULL, "mjcp", &mjcp_clk),
@@ -606,9 +609,78 @@ INT_CFG(DM365, INT_NSF_DISABLE, 25, 1, 0, false) · 144 unmodified lines
606609
607610 EVT_CFG(DM365, EVT2_ASP_TX, 0, 1, 0, false)
608611 EVT_CFG(DM365, EVT3_ASP_RX, 1, 1, 0, false)
612+EVT_CFG(DM365, EVT2_VC_TX, 0, 1, 1, false)
613+EVT_CFG(DM365, EVT3_VC_RX, 1, 1, 1, false)
609614 #endif
610615 };
611616
617+static u64 dm365_spi0_dma_mask = DMA_BIT_MASK(32);
618+
619+static struct davinci_spi_platform_data dm365_spi0_pdata = {
620+ .version = SPI_VERSION_1,
621+ .num_chipselect = 2,
622+ .clk_internal = 1,
623+ .cs_hold = 1,
624+ .intr_level = 0,
625+ .poll_mode = 1, /* 0 -> interrupt mode 1-> polling mode */
626+ .c2tdelay = 0,
627+ .t2cdelay = 0,
628+};
629+
630+static struct resource dm365_spi0_resources[] = {
631+ {
632+ .start = 0x01c66000,
633+ .end = 0x01c667ff,
634+ .flags = IORESOURCE_MEM,
635+ },
636+ {
637+ .start = IRQ_DM365_SPIINT0_0,
638+ .flags = IORESOURCE_IRQ,
639+ },
640+ {
641+ .start = 17,
642+ .flags = IORESOURCE_DMA,
643+ },
644+ {
645+ .start = 16,
646+ .flags = IORESOURCE_DMA,
647+ },
648+ {
649+ .start = EVENTQ_3,
650+ .flags = IORESOURCE_DMA,
651+ },
652+};
653+
654+static struct platform_device dm365_spi0_device = {
655+ .name = "spi_davinci",
656+ .id = 0,
657+ .dev = {
658+ .dma_mask = &dm365_spi0_dma_mask,
659+ .coherent_dma_mask = DMA_BIT_MASK(32),
660+ .platform_data = &dm365_spi0_pdata,
661+ },
662+ .num_resources = ARRAY_SIZE(dm365_spi0_resources),
663+ .resource = dm365_spi0_resources,
664+};
665+
666+void __init dm365_init_spi0(unsigned chipselect_mask,
667+ struct spi_board_info *info, unsigned len)
668+{
669+ davinci_cfg_reg(DM365_SPI0_SCLK);
670+ davinci_cfg_reg(DM365_SPI0_SDI);
671+ davinci_cfg_reg(DM365_SPI0_SDO);
672+
673+ /* not all slaves will be wired up */
674+ if (chipselect_mask & BIT(0))
675+ davinci_cfg_reg(DM365_SPI0_SDENA0);
676+ if (chipselect_mask & BIT(1))
677+ davinci_cfg_reg(DM365_SPI0_SDENA1);
678+
679+ spi_register_board_info(info, len);
680+
681+ platform_device_register(&dm365_spi0_device);
682+}
683+
612684 static struct emac_platform_data dm365_emac_pdata = {
613685 .ctrl_reg_offset = DM365_EMAC_CNTRL_OFFSET,
614686 .ctrl_mod_reg_offset = DM365_EMAC_CNTRL_MOD_OFFSET,
@@ -754,7 +826,7 @@ static struct edma_soc_info dm365_edma_info[] = { · 139 unmodified lines
754826 .n_cc = 1,
755827 .queue_tc_mapping = dm365_queue_tc_mapping,
756828 .queue_priority_mapping = dm365_queue_priority_mapping,
757− .default_queue = EVENTQ_2,
829+ .default_queue = EVENTQ_3,
758830 },
759831 };
760832
@@ -835,6 +907,31 @@ static struct platform_device dm365_asp_device = { · 74 unmodified lines
835907 .resource = dm365_asp_resources,
836908 };
837909
910+static struct resource dm365_vc_resources[] = {
911+ {
912+ .start = DAVINCI_DM365_VC_BASE,
913+ .end = DAVINCI_DM365_VC_BASE + SZ_1K - 1,
914+ .flags = IORESOURCE_MEM,
915+ },
916+ {
917+ .start = DAVINCI_DMA_VC_TX,
918+ .end = DAVINCI_DMA_VC_TX,
919+ .flags = IORESOURCE_DMA,
920+ },
921+ {
922+ .start = DAVINCI_DMA_VC_RX,
923+ .end = DAVINCI_DMA_VC_RX,
924+ .flags = IORESOURCE_DMA,
925+ },
926+};
927+
928+static struct platform_device dm365_vc_device = {
929+ .name = "davinci_voicecodec",
930+ .id = -1,
931+ .num_resources = ARRAY_SIZE(dm365_vc_resources),
932+ .resource = dm365_vc_resources,
933+};
934+
838935 static struct resource dm365_rtc_resources[] = {
839936 {
840937 .start = DM365_RTC_BASE,
@@ -991,6 +1088,14 @@ void __init dm365_init_asp(struct snd_platform_data *pdata) · 150 unmodified lines
9911088 platform_device_register(&dm365_asp_device);
9921089 }
9931090
1091+void __init dm365_init_vc(struct snd_platform_data *pdata)
1092+{
1093+ davinci_cfg_reg(DM365_EVT2_VC_TX);
1094+ davinci_cfg_reg(DM365_EVT3_VC_RX);
1095+ dm365_vc_device.dev.platform_data = pdata;
1096+ platform_device_register(&dm365_vc_device);
1097+}
1098+
9941099 void __init dm365_init_ks(struct davinci_ks_platform_data *pdata)
9951100 {
9961101 dm365_ks_device.dev.platform_data = pdata;
@@ -1008,6 +1113,97 @@ void __init dm365_init(void) · 11 unmodified lines
10081113 davinci_common_init(&davinci_soc_info_dm365);
10091114 }
10101115
1116+static struct resource dm365_vpss_resources[] = {
1117+ {
1118+ /* VPSS ISP5 Base address */
1119+ .name = "isp5",
1120+ .start = 0x01c70000,
1121+ .end = 0x01c70000 + 0xff,
1122+ .flags = IORESOURCE_MEM,
1123+ },
1124+ {
1125+ /* VPSS CLK Base address */
1126+ .name = "vpss",
1127+ .start = 0x01c70200,
1128+ .end = 0x01c70200 + 0xff,
1129+ .flags = IORESOURCE_MEM,
1130+ },
1131+};
1132+
1133+static struct platform_device dm365_vpss_device = {
1134+ .name = "vpss",
1135+ .id = -1,
1136+ .dev.platform_data = "dm365_vpss",
1137+ .num_resources = ARRAY_SIZE(dm365_vpss_resources),
1138+ .resource = dm365_vpss_resources,
1139+};
1140+
1141+static struct resource vpfe_resources[] = {
1142+ {
1143+ .start = IRQ_VDINT0,
1144+ .end = IRQ_VDINT0,
1145+ .flags = IORESOURCE_IRQ,
1146+ },
1147+ {
1148+ .start = IRQ_VDINT1,
1149+ .end = IRQ_VDINT1,
1150+ .flags = IORESOURCE_IRQ,
1151+ },
1152+};
1153+
1154+static u64 vpfe_capture_dma_mask = DMA_BIT_MASK(32);
1155+static struct platform_device vpfe_capture_dev = {
1156+ .name = CAPTURE_DRV_NAME,
1157+ .id = -1,
1158+ .num_resources = ARRAY_SIZE(vpfe_resources),
1159+ .resource = vpfe_resources,
1160+ .dev = {
1161+ .dma_mask = &vpfe_capture_dma_mask,
1162+ .coherent_dma_mask = DMA_BIT_MASK(32),
1163+ },
1164+};
1165+
1166+static void dm365_isif_setup_pinmux(void)
1167+{
1168+ davinci_cfg_reg(DM365_VIN_CAM_WEN);
1169+ davinci_cfg_reg(DM365_VIN_CAM_VD);
1170+ davinci_cfg_reg(DM365_VIN_CAM_HD);
1171+ davinci_cfg_reg(DM365_VIN_YIN4_7_EN);
1172+ davinci_cfg_reg(DM365_VIN_YIN0_3_EN);
1173+}
1174+
1175+static struct resource isif_resource[] = {
1176+ /* ISIF Base address */
1177+ {
1178+ .start = 0x01c71000,
1179+ .end = 0x01c71000 + 0x1ff,
1180+ .flags = IORESOURCE_MEM,
1181+ },
1182+ /* ISIF Linearization table 0 */
1183+ {
1184+ .start = 0x1C7C000,
1185+ .end = 0x1C7C000 + 0x2ff,
1186+ .flags = IORESOURCE_MEM,
1187+ },
1188+ /* ISIF Linearization table 1 */
1189+ {
1190+ .start = 0x1C7C400,
1191+ .end = 0x1C7C400 + 0x2ff,
1192+ .flags = IORESOURCE_MEM,
1193+ },
1194+};
1195+static struct platform_device dm365_isif_dev = {
1196+ .name = "isif",
1197+ .id = -1,
1198+ .num_resources = ARRAY_SIZE(isif_resource),
1199+ .resource = isif_resource,
1200+ .dev = {
1201+ .dma_mask = &vpfe_capture_dma_mask,
1202+ .coherent_dma_mask = DMA_BIT_MASK(32),
1203+ .platform_data = dm365_isif_setup_pinmux,
1204+ },
1205+};
1206+
10111207 static int __init dm365_init_devices(void)
10121208 {
10131209 if (!cpu_is_davinci_dm365())
@@ -1016,7 +1212,16 @@ static int __init dm365_init_devices(void) · 2 unmodified lines
10161212 davinci_cfg_reg(DM365_INT_EDMA_CC);
10171213 platform_device_register(&dm365_edma_device);
10181214 platform_device_register(&dm365_emac_device);
1019−
1215+ /* Add isif clock alias */
1216+ clk_add_alias("master", dm365_isif_dev.name, "vpss_master", NULL);
1217+ platform_device_register(&dm365_vpss_device);
1218+ platform_device_register(&dm365_isif_dev);
1219+ platform_device_register(&vpfe_capture_dev);
10201220 return 0;
10211221 }
10221222 postcore_initcall(dm365_init_devices);
1223+
1224+void dm365_set_vpfe_config(struct vpfe_config *cfg)
1225+{
1226+ vpfe_capture_dev.dev.platform_data = cfg;
1227+}
arch/arm/mach-davinci/dm644x.c+21−12
@@ -277,7 +277,7 @@ static struct clk timer2_clk = { · 276 unmodified lines
277277 .usecount = 1, /* REVISIT: why cant' this be disabled? */
278278 };
279279
280−struct davinci_clk dm644x_clks[] = {
280+struct clk_lookup dm644x_clks[] = {
281281 CLK(NULL, "ref", &ref_clk),
282282 CLK(NULL, "pll1", &pll1_clk),
283283 CLK(NULL, "pll1_sysclk1", &pll1_sysclk1),
@@ -479,15 +479,6 @@ static u8 dm644x_default_priorities[DAVINCI_N_AINTC_IRQ] = { · 195 unmodified lines
479479
480480 /*----------------------------------------------------------------------*/
481481
482−static const s8 dma_chan_dm644x_no_event[] = {
483− 0, 1, 12, 13, 14,
484− 15, 25, 30, 31, 45,
485− 46, 47, 55, 56, 57,
486− 58, 59, 60, 61, 62,
487− 63,
488− -1
489−};
490−
491482 static const s8
492483 queue_tc_mapping[][2] = {
493484 /* {event queue no, TC no} */
@@ -511,7 +502,6 @@ static struct edma_soc_info dm644x_edma_info[] = { · 17 unmodified lines
511502 .n_slot = 128,
512503 .n_tc = 2,
513504 .n_cc = 1,
514− .noevent = dma_chan_dm644x_no_event,
515505 .queue_tc_mapping = queue_tc_mapping,
516506 .queue_priority_mapping = queue_priority_mapping,
517507 },
@@ -612,6 +602,11 @@ static struct resource vpfe_resources[] = { · 94 unmodified lines
612602 .end = IRQ_VDINT1,
613603 .flags = IORESOURCE_IRQ,
614604 },
605+};
606+
607+static u64 vpfe_capture_dma_mask = DMA_BIT_MASK(32);
608+static struct resource dm644x_ccdc_resource[] = {
609+ /* CCDC Base address */
615610 {
616611 .start = 0x01c70400,
617612 .end = 0x01c70400 + 0xff,
@@ -619,7 +614,17 @@ static struct resource vpfe_resources[] = { · 1 unmodified line
619614 },
620615 };
621616
622−static u64 vpfe_capture_dma_mask = DMA_BIT_MASK(32);
617+static struct platform_device dm644x_ccdc_dev = {
618+ .name = "dm644x_ccdc",
619+ .id = -1,
620+ .num_resources = ARRAY_SIZE(dm644x_ccdc_resource),
621+ .resource = dm644x_ccdc_resource,
622+ .dev = {
623+ .dma_mask = &vpfe_capture_dma_mask,
624+ .coherent_dma_mask = DMA_BIT_MASK(32),
625+ },
626+};
627+
623628 static struct platform_device vpfe_capture_dev = {
624629 .name = CAPTURE_DRV_NAME,
625630 .id = -1,
@@ -769,9 +774,13 @@ static int __init dm644x_init_devices(void) · 143 unmodified lines
769774 if (!cpu_is_davinci_dm644x())
770775 return 0;
771776
777+ /* Add ccdc clock aliases */
778+ clk_add_alias("master", dm644x_ccdc_dev.name, "vpss_master", NULL);
779+ clk_add_alias("slave", dm644x_ccdc_dev.name, "vpss_slave", NULL);
772780 platform_device_register(&dm644x_edma_device);
773781 platform_device_register(&dm644x_emac_device);
774782 platform_device_register(&dm644x_vpss_device);
783+ platform_device_register(&dm644x_ccdc_dev);
775784 platform_device_register(&vpfe_capture_dev);
776785
777786 return 0;
arch/arm/mach-davinci/dm646x.c+2−12
@@ -42,7 +42,6 @@ · 41 unmodified lines
4242 /*
4343 * Device specific clocks
4444 */
45−#define DM646X_REF_FREQ 27000000
4645 #define DM646X_AUX_FREQ 24000000
4746
4847 static struct pll_data pll1_data = {
@@ -57,7 +56,6 @@ static struct pll_data pll2_data = { · 8 unmodified lines
5756
5857 static struct clk ref_clk = {
5958 .name = "ref_clk",
60− .rate = DM646X_REF_FREQ,
6159 };
6260
6361 static struct clk aux_clkin = {
@@ -313,7 +311,7 @@ static struct clk vpif1_clk = { · 249 unmodified lines
313311 .flags = ALWAYS_ENABLED,
314312 };
315313
316−struct davinci_clk dm646x_clks[] = {
314+struct clk_lookup dm646x_clks[] = {
317315 CLK(NULL, "ref", &ref_clk),
318316 CLK(NULL, "aux", &aux_clkin),
319317 CLK(NULL, "pll1", &pll1_clk),
@@ -513,14 +511,6 @@ static u8 dm646x_default_priorities[DAVINCI_N_AINTC_IRQ] = { · 193 unmodified lines
513511
514512 /*----------------------------------------------------------------------*/
515513
516−static const s8 dma_chan_dm646x_no_event[] = {
517− 0, 1, 2, 3, 13,
518− 14, 15, 24, 25, 26,
519− 27, 30, 31, 54, 55,
520− 56,
521− -1
522−};
523−
524514 /* Four Transfer Controllers on DM646x */
525515 static const s8
526516 dm646x_queue_tc_mapping[][2] = {
@@ -549,7 +539,6 @@ static struct edma_soc_info dm646x_edma_info[] = { · 22 unmodified lines
549539 .n_slot = 512,
550540 .n_tc = 4,
551541 .n_cc = 1,
552− .noevent = dma_chan_dm646x_no_event,
553542 .queue_tc_mapping = dm646x_queue_tc_mapping,
554543 .queue_priority_mapping = dm646x_queue_priority_mapping,
555544 },
@@ -925,6 +914,7 @@ void dm646x_setup_vpif(struct vpif_display_config *display_config, · 369 unmodified lines
925914
926915 void __init dm646x_init(void)
927916 {
917+ dm646x_board_setup_refclk(&ref_clk);
928918 davinci_common_init(&davinci_soc_info_dm646x);
929919 }
930920
arch/arm/mach-davinci/dma.c+51−16
@@ -226,11 +226,11 @@ struct edma { · 225 unmodified lines
226226 */
227227 DECLARE_BITMAP(edma_inuse, EDMA_MAX_PARAMENTRY);
228228
229− /* The edma_noevent bit for each channel is clear unless
230− * it doesn't trigger DMA events on this platform. It uses a
231− * bit of SOC-specific initialization code.
229+ /* The edma_unused bit for each channel is clear unless
230+ * it is not being used on this platform. It uses a bit
231+ * of SOC-specific initialization code.
232232 */
233− DECLARE_BITMAP(edma_noevent, EDMA_MAX_DMACH);
233+ DECLARE_BITMAP(edma_unused, EDMA_MAX_DMACH);
234234
235235 unsigned irq_res_start;
236236 unsigned irq_res_end;
@@ -243,6 +243,7 @@ struct edma { · 6 unmodified lines
243243 };
244244
245245 static struct edma *edma_info[EDMA_MAX_CC];
246+static int arch_num_cc;
246247
247248 /* dummy param set used to (re)initialize parameter RAM slots */
248249 static const struct edmacc_param dummy_paramset = {
@@ -555,8 +556,27 @@ static int reserve_contiguous_slots(int ctlr, unsigned int id, · 306 unmodified lines
555556 return EDMA_CTLR_CHAN(ctlr, i - num_slots + 1);
556557 }
557558
559+static int prepare_unused_channel_list(struct device *dev, void *data)
560+{
561+ struct platform_device *pdev = to_platform_device(dev);
562+ int i, ctlr;
563+
564+ for (i = 0; i < pdev->num_resources; i++) {
565+ if ((pdev->resource[i].flags & IORESOURCE_DMA) &&
566+ (int)pdev->resource[i].start >= 0) {
567+ ctlr = EDMA_CTLR(pdev->resource[i].start);
568+ clear_bit(EDMA_CHAN_SLOT(pdev->resource[i].start),
569+ edma_info[ctlr]->edma_unused);
570+ }
571+ }
572+
573+ return 0;
574+}
575+
558576 /*-----------------------------------------------------------------------*/
559577
578+static bool unused_chan_list_done;
579+
560580 /* Resource alloc/free: dma channels, parameter RAM slots */
561581
562582 /**
@@ -594,7 +614,22 @@ int edma_alloc_channel(int channel, · 31 unmodified lines
594614 void *data,
595615 enum dma_event_q eventq_no)
596616 {
597− unsigned i, done, ctlr = 0;
617+ unsigned i, done = 0, ctlr = 0;
618+ int ret = 0;
619+
620+ if (!unused_chan_list_done) {
621+ /*
622+ * Scan all the platform devices to find out the EDMA channels
623+ * used and clear them in the unused list, making the rest
624+ * available for ARM usage.
625+ */
626+ ret = bus_for_each_dev(&platform_bus_type, NULL, NULL,
627+ prepare_unused_channel_list);
628+ if (ret < 0)
629+ return ret;
630+
631+ unused_chan_list_done = true;
632+ }
598633
599634 if (channel >= 0) {
600635 ctlr = EDMA_CTLR(channel);
@@ -602,15 +637,15 @@ int edma_alloc_channel(int channel, · 1 unmodified line
602637 }
603638
604639 if (channel < 0) {
605− for (i = 0; i < EDMA_MAX_CC; i++) {
640+ for (i = 0; i < arch_num_cc; i++) {
606641 channel = 0;
607642 for (;;) {
608643 channel = find_next_bit(edma_info[i]->
609− edma_noevent,
644+ edma_unused,
610645 edma_info[i]->num_channels,
611646 channel);
612647 if (channel == edma_info[i]->num_channels)
613− return -ENOMEM;
648+ break;
614649 if (!test_and_set_bit(channel,
615650 edma_info[i]->edma_inuse)) {
616651 done = 1;
@@ -622,6 +657,8 @@ int edma_alloc_channel(int channel, · 5 unmodified lines
622657 if (done)
623658 break;
624659 }
660+ if (!done)
661+ return -ENOMEM;
625662 } else if (channel >= edma_info[ctlr]->num_channels) {
626663 return -EINVAL;
627664 } else if (test_and_set_bit(channel, edma_info[ctlr]->edma_inuse)) {
@@ -642,7 +679,7 @@ int edma_alloc_channel(int channel, · 14 unmodified lines
642679
643680 map_dmach_queue(ctlr, channel, eventq_no);
644681
645− return channel;
682+ return EDMA_CTLR_CHAN(ctlr, channel);
646683 }
647684 EXPORT_SYMBOL(edma_alloc_channel);
648685
@@ -1219,7 +1256,7 @@ int edma_start(unsigned channel) · 570 unmodified lines
12191256 unsigned int mask = (1 << (channel & 0x1f));
12201257
12211258 /* EDMA channels without event association */
1222− if (test_bit(channel, edma_info[ctlr]->edma_noevent)) {
1259+ if (test_bit(channel, edma_info[ctlr]->edma_unused)) {
12231260 pr_debug("EDMA: ESR%d %08x\n", j,
12241261 edma_shadow0_read_array(ctlr, SH_ESR, j));
12251262 edma_shadow0_write_array(ctlr, SH_ESR, j, mask);
@@ -1344,7 +1381,6 @@ static int __init edma_probe(struct platform_device *pdev) · 118 unmodified lines
13441381 const s8 (*queue_tc_mapping)[2];
13451382 int i, j, found = 0;
13461383 int status = -1;
1347− const s8 *noevent;
13481384 int irq[EDMA_MAX_CC] = {0, 0};
13491385 int err_irq[EDMA_MAX_CC] = {0, 0};
13501386 struct resource *r[EDMA_MAX_CC] = {NULL};
@@ -1407,11 +1443,9 @@ static int __init edma_probe(struct platform_device *pdev) · 56 unmodified lines
14071443 memcpy_toio(edmacc_regs_base[j] + PARM_OFFSET(i),
14081444 &dummy_paramset, PARM_SIZE);
14091445
1410− noevent = info[j].noevent;
1411− if (noevent) {
1412− while (*noevent != -1)
1413− set_bit(*noevent++, edma_info[j]->edma_noevent);
1414− }
1446+ /* Mark all channels as unused */
1447+ memset(edma_info[j]->edma_unused, 0xff,
1448+ sizeof(edma_info[j]->edma_unused));
14151449
14161450 sprintf(irq_name, "edma%d", j);
14171451 irq[j] = platform_get_irq_byname(pdev, irq_name);
@@ -1467,6 +1501,7 @@ static int __init edma_probe(struct platform_device *pdev) · 49 unmodified lines
14671501 edma_write_array2(j, EDMA_DRAE, i, 1, 0x0);
14681502 edma_write_array(j, EDMA_QRAE, i, 0x0);
14691503 }
1504+ arch_num_cc++;
14701505 }
14711506
14721507 if (tc_errs_handled) {
arch/arm/mach-davinci/include/mach/cdce949.h+19−0
@@ -0,0 +1,19 @@
1+/*
2+ * TI CDCE949 off-chip clock synthesizer support
3+ *
4+ * 2009 (C) Texas Instruments, Inc. http://www.ti.com/
5+ *
6+ * This file is licensed under the terms of the GNU General Public License
7+ * version 2. This program is licensed "as is" without any warranty of any
8+ * kind, whether express or implied.
9+ */
10+#ifndef _MACH_DAVINCI_CDCE949_H
11+#define _MACH_DAVINCI_CDCE949_H
12+
13+#include <linux/clk.h>
14+
15+#include <mach/clock.h>
16+
17+int cdce_set_rate(struct clk *clk, unsigned long rate);
18+
19+#endif
arch/arm/mach-davinci/include/mach/common.h+1−1
@@ -43,7 +43,7 @@ struct davinci_soc_info { · 42 unmodified lines
4343 void __iomem *jtag_id_base;
4444 struct davinci_id *ids;
4545 unsigned long ids_num;
46− struct davinci_clk *cpu_clks;
46+ struct clk_lookup *cpu_clks;
4747 void __iomem **psc_bases;
4848 unsigned long psc_bases_num;
4949 void __iomem *pinmux_base;
arch/arm/mach-davinci/include/mach/cpuidle.h+1−0
@@ -12,6 +12,7 @@ · 11 unmodified lines
1212
1313 struct davinci_cpuidle_config {
1414 u32 ddr2_pdown;
15+ void __iomem *ddr2_ctlr_base;
1516 };
1617
1718 #endif
arch/arm/mach-davinci/include/mach/da8xx.h+14−4
@@ -13,15 +13,17 @@ · 12 unmodified lines
1313
1414 #include <video/da8xx-fb.h>
1515
16+#include <linux/davinci_emac.h>
1617 #include <mach/serial.h>
1718 #include <mach/edma.h>
1819 #include <mach/i2c.h>
19−#include <mach/emac.h>
2020 #include <mach/asp.h>
2121 #include <mach/mmc.h>
2222 #include <mach/usb.h>
23+#include <mach/pm.h>
2324
24−extern void __iomem *da8xx_syscfg_base;
25+extern void __iomem *da8xx_syscfg0_base;
26+extern void __iomem *da8xx_syscfg1_base;
2527
2628 /*
2729 * The cp_intc interrupt controller for the da8xx isn't in the same
@@ -34,13 +36,17 @@ extern void __iomem *da8xx_syscfg_base; · 6 unmodified lines
3436 #define DA8XX_CP_INTC_SIZE SZ_8K
3537 #define DA8XX_CP_INTC_VIRT (IO_VIRT - DA8XX_CP_INTC_SIZE - SZ_4K)
3638
37−#define DA8XX_SYSCFG_BASE (IO_PHYS + 0x14000)
38−#define DA8XX_SYSCFG_VIRT(x) (da8xx_syscfg_base + (x))
39+#define DA8XX_SYSCFG0_BASE (IO_PHYS + 0x14000)
40+#define DA8XX_SYSCFG0_VIRT(x) (da8xx_syscfg0_base + (x))
3941 #define DA8XX_JTAG_ID_REG 0x18
4042 #define DA8XX_CFGCHIP0_REG 0x17c
4143 #define DA8XX_CFGCHIP2_REG 0x184
4244 #define DA8XX_CFGCHIP3_REG 0x188
4345
46+#define DA8XX_SYSCFG1_BASE (IO_PHYS + 0x22C000)
47+#define DA8XX_SYSCFG1_VIRT(x) (da8xx_syscfg1_base + (x))
48+#define DA8XX_DEEPSLEEP_REG 0x8
49+
4450 #define DA8XX_PSC0_BASE 0x01c10000
4551 #define DA8XX_PLL0_BASE 0x01c11000
4652 #define DA8XX_TIMER64P0_BASE 0x01c20000
@@ -48,11 +54,13 @@ extern void __iomem *da8xx_syscfg_base; · 1 unmodified line
4854 #define DA8XX_GPIO_BASE 0x01e26000
4955 #define DA8XX_PSC1_BASE 0x01e27000
5056 #define DA8XX_LCD_CNTRL_BASE 0x01e13000
57+#define DA8XX_PLL1_BASE 0x01e1a000
5158 #define DA8XX_MMCSD0_BASE 0x01c40000
5259 #define DA8XX_AEMIF_CS2_BASE 0x60000000
5360 #define DA8XX_AEMIF_CS3_BASE 0x62000000
5461 #define DA8XX_AEMIF_CTL_BASE 0x68000000
5562 #define DA8XX_DDR2_CTL_BASE 0xb0000000
63+#define DA8XX_ARM_RAM_BASE 0xffff0000
5664
5765 #define PINMUX0 0x00
5866 #define PINMUX1 0x04
@@ -90,6 +98,8 @@ void __init da8xx_register_mcasp(int id, struct snd_platform_data *pdata); · 31 unmodified lines
9098 int da8xx_register_rtc(void);
9199 int da850_register_cpufreq(void);
92100 int da8xx_register_cpuidle(void);
101+void __iomem * __init da8xx_get_mem_ctlr(void);
102+int da850_register_pm(struct platform_device *pdev);
93103
94104 extern struct platform_device da8xx_serial_device;
95105 extern struct emac_platform_data da8xx_emac_pdata;
arch/arm/mach-davinci/include/mach/debug-macro.S+1−1
@@ -19,7 +19,7 @@ · 18 unmodified lines
1919 #include <linux/serial_reg.h>
2020 #define UART_SHIFT 2
2121
22− .macro addruart, rx
22+ .macro addruart, rx, tmp
2323 mrc p15, 0, \rx, c1, c0
2424 tst \rx, #1 @ MMU enabled?
2525 moveq \rx, #0x01000000 @ physical base address
arch/arm/mach-davinci/include/mach/dm365.h+10−1
@@ -14,10 +14,11 @@ · 13 unmodified lines
1414 #define __ASM_ARCH_DM665_H
1515
1616 #include <linux/platform_device.h>
17+#include <linux/davinci_emac.h>
1718 #include <mach/hardware.h>
18−#include <mach/emac.h>
1919 #include <mach/asp.h>
2020 #include <mach/keyscan.h>
21+#include <media/davinci/vpfe_capture.h>
2122
2223 #define DM365_EMAC_BASE (0x01D07000)
2324 #define DM365_EMAC_CNTRL_OFFSET (0x0000)
@@ -31,9 +32,17 @@ · 7 unmodified lines
3132
3233 #define DM365_RTC_BASE (0x01C69000)
3334
35+#define DAVINCI_DM365_VC_BASE (0x01D0C000)
36+#define DAVINCI_DMA_VC_TX 2
37+#define DAVINCI_DMA_VC_RX 3
38+
3439 void __init dm365_init(void);
3540 void __init dm365_init_asp(struct snd_platform_data *pdata);
41+void __init dm365_init_vc(struct snd_platform_data *pdata);
3642 void __init dm365_init_ks(struct davinci_ks_platform_data *pdata);
3743 void __init dm365_init_rtc(void);
44+void dm365_init_spi0(unsigned chipselect_mask,
45+ struct spi_board_info *info, unsigned len);
3846
47+void dm365_set_vpfe_config(struct vpfe_config *cfg);
3948 #endif /* __ASM_ARCH_DM365_H */
arch/arm/mach-davinci/include/mach/dm644x.h+1−1
@@ -22,8 +22,8 @@ · 21 unmodified lines
2222 #ifndef __ASM_ARCH_DM644X_H
2323 #define __ASM_ARCH_DM644X_H
2424
25+#include <linux/davinci_emac.h>
2526 #include <mach/hardware.h>
26−#include <mach/emac.h>
2727 #include <mach/asp.h>
2828 #include <media/davinci/vpfe_capture.h>
2929
arch/arm/mach-davinci/include/mach/dm646x.h+3−1
@@ -12,10 +12,11 @@ · 11 unmodified lines
1212 #define __ASM_ARCH_DM646X_H
1313
1414 #include <mach/hardware.h>
15−#include <mach/emac.h>
1615 #include <mach/asp.h>
1716 #include <linux/i2c.h>
1817 #include <linux/videodev2.h>
18+#include <linux/clk.h>
19+#include <linux/davinci_emac.h>
1920
2021 #define DM646X_EMAC_BASE (0x01C80000)
2122 #define DM646X_EMAC_CNTRL_OFFSET (0x0000)
@@ -30,6 +31,7 @@ void __init dm646x_init(void); · 8 unmodified lines
3031 void __init dm646x_init_ide(void);
3132 void __init dm646x_init_mcasp0(struct snd_platform_data *pdata);
3233 void __init dm646x_init_mcasp1(struct snd_platform_data *pdata);
34+void __init dm646x_board_setup_refclk(struct clk *clk);
3335
3436 void dm646x_video_init(void);
3537
arch/arm/mach-davinci/include/mach/edma.h+0−2
@@ -280,8 +280,6 @@ struct edma_soc_info { · 279 unmodified lines
280280 unsigned n_cc;
281281 enum dma_event_q default_queue;
282282
283− /* list of channels with no even trigger; terminated by "-1" */
284− const s8 *noevent;
285283 const s8 (*queue_tc_mapping)[2];
286284 const s8 (*queue_priority_mapping)[2];
287285 };
arch/arm/mach-davinci/include/mach/hardware.h+1−1
@@ -27,7 +27,7 @@ · 26 unmodified lines
2727 /*
2828 * I/O mapping
2929 */
30−#define IO_PHYS 0x01c00000
30+#define IO_PHYS 0x01c00000UL
3131 #define IO_OFFSET 0xfd000000 /* Virtual IO = 0xfec00000 */
3232 #define IO_SIZE 0x00400000
3333 #define IO_VIRT (IO_PHYS + IO_OFFSET)
arch/arm/mach-davinci/include/mach/i2c.h+2−0
@@ -16,6 +16,8 @@ · 15 unmodified lines
1616 struct davinci_i2c_platform_data {
1717 unsigned int bus_freq; /* standard bus frequency (kHz) */
1818 unsigned int bus_delay; /* post-transaction delay (usec) */
19+ unsigned int sda_pin; /* GPIO pin ID to use for SDA */
20+ unsigned int scl_pin; /* GPIO pin ID to use for SCL */
1921 };
2022
2123 /* for board setup code */
arch/arm/mach-davinci/include/mach/memory.h+5−0
@@ -31,6 +31,11 @@ · 30 unmodified lines
3131 #define PHYS_OFFSET DAVINCI_DDR_BASE
3232 #endif
3333
34+#define DDR2_SDRCR_OFFSET 0xc
35+#define DDR2_SRPD_BIT BIT(23)
36+#define DDR2_MCLKSTOPEN_BIT BIT(30)
37+#define DDR2_LPMODEN_BIT BIT(31)
38+
3439 /*
3540 * Increase size of DMA-consistent memory region
3641 */
arch/arm/mach-davinci/include/mach/mux.h+3−0
@@ -327,6 +327,8 @@ enum davinci_dm365_index { · 326 unmodified lines
327327 /* EDMA event muxing */
328328 DM365_EVT2_ASP_TX,
329329 DM365_EVT3_ASP_RX,
330+ DM365_EVT2_VC_TX,
331+ DM365_EVT3_VC_RX,
330332 DM365_EVT26_MMC0_RX,
331333 };
332334
@@ -899,6 +901,7 @@ enum davinci_da850_index { · 566 unmodified lines
899901 DA850_GPIO2_15,
900902 DA850_GPIO4_0,
901903 DA850_GPIO4_1,
904+ DA850_RTC_ALARM,
902905 };
903906
904907 #ifdef CONFIG_DAVINCI_MUX
arch/arm/mach-davinci/include/mach/pm.h+54−0
@@ -0,0 +1,54 @@
1+/*
2+ * TI DaVinci platform support for power management.
3+ *
4+ * Copyright (C) 2009 Texas Instruments, Inc. http://www.ti.com/
5+ *
6+ * This program is free software; you can redistribute it and/or
7+ * modify it under the terms of the GNU General Public License as
8+ * published by the Free Software Foundation version 2.
9+ *
10+ * This program is distributed "as is" WITHOUT ANY WARRANTY of any
11+ * kind, whether express or implied; without even the implied warranty
12+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13+ * GNU General Public License for more details.
14+ */
15+#ifndef _MACH_DAVINCI_PM_H
16+#define _MACH_DAVINCI_PM_H
17+
18+/*
19+ * Caution: Assembly code in sleep.S makes assumtion on the order
20+ * of the members of this structure.
21+ */
22+struct davinci_pm_config {
23+ void __iomem *ddr2_ctlr_base;
24+ void __iomem *ddrpsc_reg_base;
25+ int ddrpsc_num;
26+ void __iomem *ddrpll_reg_base;
27+ void __iomem *deepsleep_reg;
28+ void __iomem *cpupll_reg_base;
29+ /*
30+ * Note on SLEEPCOUNT:
31+ * The SLEEPCOUNT feature is mainly intended for cases in which
32+ * the internal oscillator is used. The internal oscillator is
33+ * fully disabled in deep sleep mode. When you exist deep sleep
34+ * mode, the oscillator will be turned on and will generate very
35+ * small oscillations which will not be detected by the deep sleep
36+ * counter. Eventually those oscillations will grow to an amplitude
37+ * large enough to start incrementing the deep sleep counter.
38+ * In this case recommendation from hardware engineers is that the
39+ * SLEEPCOUNT be set to 4096. This means that 4096 valid clock cycles
40+ * must be detected before the clock is passed to the rest of the
41+ * system.
42+ * In the case that the internal oscillator is not used and the
43+ * clock is generated externally, the SLEEPCOUNT value can be very
44+ * small since the clock input is assumed to be stable before SoC
45+ * is taken out of deepsleep mode. A value of 128 would be more than
46+ * adequate.
47+ */
48+ int sleepcount;
49+};
50+
51+extern unsigned int davinci_cpu_suspend_sz;
52+extern void davinci_cpu_suspend(struct davinci_pm_config *);
53+
54+#endif
arch/arm/mach-davinci/include/mach/psc.h+15−0
@@ -180,8 +180,23 @@ · 179 unmodified lines
180180 #define DA8XX_LPSC1_CR_P3_SS 26
181181 #define DA8XX_LPSC1_L3_CBA_RAM 31
182182
183+/* PSC register offsets */
184+#define EPCPR 0x070
185+#define PTCMD 0x120
186+#define PTSTAT 0x128
187+#define PDSTAT 0x200
188+#define PDCTL1 0x304
189+#define MDSTAT 0x800
190+#define MDCTL 0xA00
191+
192+#define MDSTAT_STATE_MASK 0x1f
193+
194+#ifndef __ASSEMBLER__
195+
183196 extern int davinci_psc_is_clk_active(unsigned int ctlr, unsigned int id);
184197 extern void davinci_psc_config(unsigned int domain, unsigned int ctlr,
185198 unsigned int id, char enable);
186199
200+#endif
201+
187202 #endif /* __ASM_ARCH_PSC_H */
arch/arm/mach-davinci/include/mach/spi.h+44−0
@@ -0,0 +1,44 @@
1+/*
2+ * Copyright 2009 Texas Instruments.
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 as published by
6+ * the Free Software Foundation; either version 2 of the License, or
7+ * (at your option) any later version.
8+ *
9+ * This program is distributed in the hope that it will be useful,
10+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
11+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12+ * GNU General Public License for more details.
13+ *
14+ * You should have received a copy of the GNU General Public License
15+ * along with this program; if not, write to the Free Software
16+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
17+ */
18+
19+#ifndef __ARCH_ARM_DAVINCI_SPI_H
20+#define __ARCH_ARM_DAVINCI_SPI_H
21+
22+enum {
23+ SPI_VERSION_1, /* For DM355/DM365/DM6467 */
24+ SPI_VERSION_2, /* For DA8xx */
25+};
26+
27+struct davinci_spi_platform_data {
28+ u8 version;
29+ u8 num_chipselect;
30+ u8 wdelay;
31+ u8 odd_parity;
32+ u8 parity_enable;
33+ u8 wait_enable;
34+ u8 timer_disable;
35+ u8 clk_internal;
36+ u8 cs_hold;
37+ u8 intr_level;
38+ u8 poll_mode;
39+ u8 use_dma;
40+ u8 c2tdelay;
41+ u8 t2cdelay;
42+};
43+
44+#endif /* __ARCH_ARM_DAVINCI_SPI_H */
arch/arm/mach-davinci/include/mach/timex.h+6−1
@@ -11,7 +11,12 @@ · 10 unmodified lines
1111 #ifndef __ASM_ARCH_TIMEX_H
1212 #define __ASM_ARCH_TIMEX_H
1313
14−/* The source frequency for the timers is the 27MHz clock */
14+/*
15+ * Alert: Not all timers of the DaVinci family run at a frequency of 27MHz,
16+ * but we should be fine as long as CLOCK_TICK_RATE or LATCH (see include/
17+ * linux/jiffies.h) are not used directly in code. Currently none of the
18+ * code relevant to DaVinci platform depends on these values directly.
19+ */
1520 #define CLOCK_TICK_RATE 27000000
1621
1722 #endif /* __ASM_ARCH_TIMEX_H__ */
arch/arm/mach-davinci/io.c+1−1
@@ -24,7 +24,7 @@ void __iomem *davinci_ioremap(unsigned long p, size_t size, unsigned int type) · 23 unmodified lines
2424 if (BETWEEN(p, IO_PHYS, IO_SIZE))
2525 return XLATE(p, IO_PHYS, IO_VIRT);
2626
27− return __arm_ioremap(p, size, type);
27+ return __arm_ioremap_caller(p, size, type, __builtin_return_address(0));
2828 }
2929 EXPORT_SYMBOL(davinci_ioremap);
3030
arch/arm/mach-davinci/pm.c+158−0
@@ -0,0 +1,158 @@
1+/*
2+ * DaVinci Power Management Routines
3+ *
4+ * Copyright (C) 2009 Texas Instruments, Inc. http://www.ti.com/
5+ *
6+ * This program is free software; you can redistribute it and/or modify
7+ * it under the terms of the GNU General Public License version 2 as
8+ * published by the Free Software Foundation.
9+ */
10+
11+#include <linux/pm.h>
12+#include <linux/suspend.h>
13+#include <linux/module.h>
14+#include <linux/platform_device.h>
15+#include <linux/clk.h>
16+#include <linux/spinlock.h>
17+
18+#include <asm/cacheflush.h>
19+#include <asm/delay.h>
20+
21+#include <mach/da8xx.h>
22+#include <mach/sram.h>
23+#include <mach/pm.h>
24+
25+#include "clock.h"
26+
27+#define DEEPSLEEP_SLEEPCOUNT_MASK 0xFFFF
28+
29+static void (*davinci_sram_suspend) (struct davinci_pm_config *);
30+static struct davinci_pm_config *pdata;
31+
32+static void davinci_sram_push(void *dest, void *src, unsigned int size)
33+{
34+ memcpy(dest, src, size);
35+ flush_icache_range((unsigned long)dest, (unsigned long)(dest + size));
36+}
37+
38+static void davinci_pm_suspend(void)
39+{
40+ unsigned val;
41+
42+ if (pdata->cpupll_reg_base != pdata->ddrpll_reg_base) {
43+
44+ /* Switch CPU PLL to bypass mode */
45+ val = __raw_readl(pdata->cpupll_reg_base + PLLCTL);
46+ val &= ~(PLLCTL_PLLENSRC | PLLCTL_PLLEN);
47+ __raw_writel(val, pdata->cpupll_reg_base + PLLCTL);
48+
49+ udelay(PLL_BYPASS_TIME);
50+
51+ /* Powerdown CPU PLL */
52+ val = __raw_readl(pdata->cpupll_reg_base + PLLCTL);
53+ val |= PLLCTL_PLLPWRDN;
54+ __raw_writel(val, pdata->cpupll_reg_base + PLLCTL);
55+ }
56+
57+ /* Configure sleep count in deep sleep register */
58+ val = __raw_readl(pdata->deepsleep_reg);
59+ val &= ~DEEPSLEEP_SLEEPCOUNT_MASK,
60+ val |= pdata->sleepcount;
61+ __raw_writel(val, pdata->deepsleep_reg);
62+
63+ /* System goes to sleep in this call */
64+ davinci_sram_suspend(pdata);
65+
66+ if (pdata->cpupll_reg_base != pdata->ddrpll_reg_base) {
67+
68+ /* put CPU PLL in reset */
69+ val = __raw_readl(pdata->cpupll_reg_base + PLLCTL);
70+ val &= ~PLLCTL_PLLRST;
71+ __raw_writel(val, pdata->cpupll_reg_base + PLLCTL);
72+
73+ /* put CPU PLL in power down */
74+ val = __raw_readl(pdata->cpupll_reg_base + PLLCTL);
75+ val &= ~PLLCTL_PLLPWRDN;
76+ __raw_writel(val, pdata->cpupll_reg_base + PLLCTL);
77+
78+ /* wait for CPU PLL reset */
79+ udelay(PLL_RESET_TIME);
80+
81+ /* bring CPU PLL out of reset */
82+ val = __raw_readl(pdata->cpupll_reg_base + PLLCTL);
83+ val |= PLLCTL_PLLRST;
84+ __raw_writel(val, pdata->cpupll_reg_base + PLLCTL);
85+
86+ /* Wait for CPU PLL to lock */
87+ udelay(PLL_LOCK_TIME);
88+
89+ /* Remove CPU PLL from bypass mode */
90+ val = __raw_readl(pdata->cpupll_reg_base + PLLCTL);

68 more lines aren’t shown here.

arch/arm/mach-davinci/psc.c+0−11

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

arch/arm/mach-davinci/sleep.S+224−0

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

arch/arm/mach-dove/include/mach/debug-macro.S+1−1

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

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

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

arch/arm/mach-ebsa110/include/mach/debug-macro.S+1−1

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

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

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

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

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

arch/arm/mach-ep93xx/clock.c+18−14

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

arch/arm/mach-ep93xx/core.c+45−232

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

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

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

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

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

arch/arm/mach-ep93xx/gpio.c+231−4

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

arch/arm/mach-ep93xx/include/mach/debug-macro.S+1−1

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

arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h+5−17

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

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

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

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

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

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

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

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

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

arch/arm/mach-footbridge/common.c+4−3

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

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

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

arch/arm/mach-gemini/include/mach/debug-macro.S+1−1

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

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

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

arch/arm/mach-h720x/include/mach/debug-macro.S+1−1

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

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

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

arch/arm/mach-integrator/include/mach/debug-macro.S+1−1

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

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

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

arch/arm/mach-iop13xx/include/mach/debug-macro.S+1−1

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

arch/arm/mach-iop13xx/io.c+4−3

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

arch/arm/mach-iop32x/include/mach/debug-macro.S+1−1

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

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

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

arch/arm/mach-iop33x/include/mach/debug-macro.S+1−1

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

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

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

arch/arm/mach-ixp2000/include/mach/debug-macro.S+1−1

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

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

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

arch/arm/mach-ixp23xx/include/mach/debug-macro.S+1−1

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

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

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

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

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

arch/arm/mach-ixp4xx/include/mach/debug-macro.S+1−1

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

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

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

arch/arm/mach-kirkwood/include/mach/debug-macro.S+1−1

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

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

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

arch/arm/mach-ks8695/include/mach/debug-macro.S+1−1

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

arch/arm/mach-l7200/include/mach/debug-macro.S+1−1

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

arch/arm/mach-lh7a40x/include/mach/debug-macro.S+1−1

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

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

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

arch/arm/mach-loki/include/mach/debug-macro.S+1−1

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

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

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

arch/arm/mach-mmp/clock.c+0−8

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

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

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

arch/arm/mach-mmp/include/mach/debug-macro.S+1−1

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

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

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

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

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

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

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

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

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

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

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

arch/arm/mach-mv78xx0/include/mach/debug-macro.S+1−1

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

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

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

arch/arm/mach-mx1/clock.c+1−3

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

arch/arm/mach-mx2/clock_imx21.c+1−3

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

arch/arm/mach-mx2/clock_imx27.c+1−3

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

arch/arm/mach-mx25/clock.c+1−4

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

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

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

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

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

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

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

arch/arm/mach-netx/include/mach/debug-macro.S+1−1

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

arch/arm/mach-nomadik/cpu-8815.c+8−0

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

arch/arm/mach-nomadik/include/mach/debug-macro.S+1−1

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

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

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

arch/arm/mach-ns9xxx/include/mach/debug-macro.S+1−1

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

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

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

arch/arm/mach-nuc93x/Kconfig+19−0

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

arch/arm/mach-nuc93x/Makefile+14−0

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

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

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

arch/arm/mach-nuc93x/clock.c+83−0

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

arch/arm/mach-nuc93x/clock.h+36−0

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

arch/arm/mach-nuc93x/cpu.c+135−0

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

arch/arm/mach-nuc93x/cpu.h+48−0

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

arch/arm/mach-nuc93x/dev.c+42−0

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

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

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

arch/arm/mach-nuc93x/include/mach/entry-macro.S+32−0

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

arch/arm/mach-nuc93x/include/mach/hardware.h+22−0

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

arch/arm/mach-nuc93x/include/mach/io.h+28−0

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

arch/arm/mach-nuc93x/include/mach/irqs.h+59−0

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

arch/arm/mach-nuc93x/include/mach/map.h+139−0

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

arch/arm/mach-nuc93x/include/mach/memory.h+21−0

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

arch/arm/mach-nuc93x/include/mach/regs-clock.h+53−0

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

arch/arm/mach-nuc93x/include/mach/regs-ebi.h+33−0

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

arch/arm/mach-nuc93x/include/mach/regs-irq.h+42−0

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

arch/arm/mach-nuc93x/include/mach/regs-serial.h+52−0

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

arch/arm/mach-nuc93x/include/mach/regs-timer.h+28−0

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

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

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

arch/arm/mach-nuc93x/include/mach/timex.h+25−0

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

arch/arm/mach-nuc93x/include/mach/uncompress.h+50−0

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

arch/arm/mach-nuc93x/include/mach/vmalloc.h+23−0

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

arch/arm/mach-nuc93x/irq.c+66−0

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

arch/arm/mach-nuc93x/mach-nuc932evb.c+45−0

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

arch/arm/mach-nuc93x/nuc932.c+65−0

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

arch/arm/mach-nuc93x/nuc932.h+29−0

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

arch/arm/mach-nuc93x/time.c+100−0

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

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

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

arch/arm/mach-omap1/board-fsample.c+5−4

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

arch/arm/mach-omap1/board-h2.c+5−4

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

arch/arm/mach-omap1/board-h3.c+5−4

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

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

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

arch/arm/mach-omap1/board-osk.c+5−4

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

arch/arm/mach-omap1/board-palmte.c+5−4

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

arch/arm/mach-omap1/board-palmtt.c+5−4

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

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

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

arch/arm/mach-omap1/board-perseus2.c+5−4

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

arch/arm/mach-omap1/board-sx1.c+6−5

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

arch/arm/mach-omap1/board-voiceblue.c+5−4

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

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

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

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

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

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

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

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

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

arch/arm/mach-omap1/i2c.c+1−5

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

arch/arm/mach-omap1/include/mach/debug-macro.S+76−14

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

arch/arm/mach-omap1/mailbox.c+7−2

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

arch/arm/mach-omap1/mcbsp.c+13−3

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

arch/arm/mach-omap1/serial.c+3−3

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

arch/arm/mach-omap2/Kconfig+28−33

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

arch/arm/mach-omap2/Makefile+60−27

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

arch/arm/mach-omap2/board-2430sdp.c+14−9

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

arch/arm/mach-omap2/board-3430sdp.c+142−9

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

arch/arm/mach-omap2/board-3630sdp.c+2−2

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

arch/arm/mach-omap2/board-4430sdp.c+67−5

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

arch/arm/mach-omap2/board-am3517evm.c+236−1

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

arch/arm/mach-omap2/board-apollon.c+1−1

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

arch/arm/mach-omap2/board-cm-t35.c+249−6

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

arch/arm/mach-omap2/board-devkit8000.c+697−0

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

arch/arm/mach-omap2/board-generic.c+1−1

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

arch/arm/mach-omap2/board-h4.c+4−5

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

arch/arm/mach-omap2/board-igep0020.c+278−7

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

arch/arm/mach-omap2/board-ldp.c+11−5

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

arch/arm/mach-omap2/board-n8x0.c+446−1

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

arch/arm/mach-omap2/board-omap3beagle.c+11−5

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

arch/arm/mach-omap2/board-omap3evm.c+269−30

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

arch/arm/mach-omap2/board-omap3pandora.c+179−17

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

arch/arm/mach-omap2/board-omap3touchbook.c+11−5

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

arch/arm/mach-omap2/board-overo.c+11−5

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

arch/arm/mach-omap2/board-rx51-peripherals.c+51−12

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

arch/arm/mach-omap2/board-rx51.c+52−2

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

arch/arm/mach-omap2/board-sdp-flash.c+272−0

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

arch/arm/mach-omap2/board-zoom-peripherals.c+19−4

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

arch/arm/mach-omap2/board-zoom2.c+1−1

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

arch/arm/mach-omap2/board-zoom3.c+16−2

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

arch/arm/mach-omap2/clkt2xxx_apll.c+122−0

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

arch/arm/mach-omap2/clkt2xxx_dpllcore.c+173−0

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

arch/arm/mach-omap2/clkt2xxx_osc.c+62−0

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

arch/arm/mach-omap2/clkt2xxx_sys.c+50−0

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

arch/arm/mach-omap2/clkt2xxx_virt_prcm_set.c+254−0

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

arch/arm/mach-omap2/clkt34xx_dpll3m2.c+121−0

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

arch/arm/mach-omap2/clkt_clksel.c+409−0

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

arch/arm/mach-omap2/clkt_dpll.c+386−0

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

arch/arm/mach-omap2/clock.c+217−812

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

arch/arm/mach-omap2/clock.h+46−4

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

arch/arm/mach-omap2/clock2420_data.c+1910−0

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

arch/arm/mach-omap2/clock2430.c+59−0

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

arch/arm/mach-omap2/clock2430_data.crenamed from arch/arm/mach-omap2/clock2xxx_data.c+171−472

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

arch/arm/mach-omap2/clock2xxx.c+23−576

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

arch/arm/mach-omap2/clock2xxx.h+17−14

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

arch/arm/mach-omap2/clock34xx.c+17−244

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

arch/arm/mach-omap2/clock34xx.h+5−14

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

arch/arm/mach-omap2/clock3517.c+124−0

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

arch/arm/mach-omap2/clock3517.h+14−0

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

arch/arm/mach-omap2/clock36xx.c+72−0

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

arch/arm/mach-omap2/clock36xx.h+13−0

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

arch/arm/mach-omap2/clock3xxx.c+104−0

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

arch/arm/mach-omap2/clock3xxx.h+21−0

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

arch/arm/mach-omap2/clock3xxx_data.crenamed from arch/arm/mach-omap2/clock34xx_data.c+600−288

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

arch/arm/mach-omap2/clock44xx.c+0−33

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

arch/arm/mach-omap2/clock44xx.h+9−4

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

arch/arm/mach-omap2/clock44xx_data.c+343−391

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

arch/arm/mach-omap2/clockdomain.c+607−181

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

arch/arm/mach-omap2/clockdomains.h+622−50

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

arch/arm/mach-omap2/clockdomains44xx.h+250−0

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

arch/arm/mach-omap2/cm-regbits-34xx.h+27−1

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

arch/arm/mach-omap2/cm-regbits-44xx.h+268−268

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

arch/arm/mach-omap2/cm.h+6−2

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

arch/arm/mach-omap2/control.c+5−1

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

arch/arm/mach-omap2/cpuidle34xx.c+190−36

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

arch/arm/mach-omap2/devices.c+34−11

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

arch/arm/mach-omap2/dpll3xxx.crenamed from arch/arm/mach-omap2/dpll.c+126−65

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

arch/arm/mach-omap2/emu.c+3−0

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

arch/arm/mach-omap2/gpmc-nand.c+139−0

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

arch/arm/mach-omap2/gpmc.c+4−2

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

arch/arm/mach-omap2/hsmmc.c+266−0

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

arch/arm/mach-omap2/hsmmc.hrenamed from arch/arm/mach-omap2/mmc-twl4030.h+8−6

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

arch/arm/mach-omap2/i2c.c+1−5

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

arch/arm/mach-omap2/id.c+6−0

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

arch/arm/mach-omap2/include/mach/am35xx.h+26−0

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

arch/arm/mach-omap2/include/mach/board-sdp.h+21−0

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

arch/arm/mach-omap2/include/mach/debug-macro.S+102−30

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

arch/arm/mach-omap2/include/mach/entry-macro.S+108−20

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

arch/arm/mach-omap2/io.c+59−48

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

arch/arm/mach-omap2/mailbox.c+34−13

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

arch/arm/mach-omap2/mcbsp.c+19−5

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

arch/arm/mach-omap2/mmc-twl4030.c+0−542

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

arch/arm/mach-omap2/mux.c+37−15

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

arch/arm/mach-omap2/mux.h+1−1

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

arch/arm/mach-omap2/omap_hwmod.c+225−90

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

arch/arm/mach-omap2/omap_hwmod_2420_data.crenamed from arch/arm/mach-omap2/omap_hwmod_2420.h+23−15

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

arch/arm/mach-omap2/omap_hwmod_2430_data.crenamed from arch/arm/mach-omap2/omap_hwmod_2430.h+23−15

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

arch/arm/mach-omap2/omap_hwmod_34xx.h+0−168

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

arch/arm/mach-omap2/omap_hwmod_3xxx_data.c+181−0

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

arch/arm/mach-omap2/omap_hwmod_common_data.c+68−0

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

arch/arm/mach-omap2/omap_hwmod_common_data.h+24−0

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

arch/arm/mach-omap2/opp2xxx.h+5−0

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

arch/arm/mach-omap2/pm-debug.c+15−10

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

arch/arm/mach-omap2/pm.h+20−0

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

arch/arm/mach-omap2/pm24xx.c+33−21

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

arch/arm/mach-omap2/pm34xx.c+28−15

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

arch/arm/mach-omap2/powerdomain.c+294−482

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

arch/arm/mach-omap2/powerdomains.h+47−87

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

arch/arm/mach-omap2/powerdomains24xx.h+3−88

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

arch/arm/mach-omap2/powerdomains34xx.h+9−150

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

arch/arm/mach-omap2/powerdomains44xx.h+310−0

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

arch/arm/mach-omap2/prcm-common.h+9−0

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

arch/arm/mach-omap2/prcm.c+75−39

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

arch/arm/mach-omap2/prm-regbits-44xx.h+505−505

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

arch/arm/mach-omap2/prm.h+12−5

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

arch/arm/mach-omap2/sdram-numonyx-m65kxxxxam.h+51−0

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

arch/arm/mach-omap2/sdrc.c+9−2

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

arch/arm/mach-omap2/serial.c+63−17

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

arch/arm/mach-omap2/sleep34xx.S+58−3

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

arch/arm/mach-omap2/timer-gp.c+0−5

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

arch/arm/mach-omap2/timer-mpu.c+1−1

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

arch/arm/mach-omap2/usb-musb.c+14−68

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

arch/arm/mach-orion5x/include/mach/debug-macro.S+1−1

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

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

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

arch/arm/mach-pnx4008/clock.c+91−82

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

arch/arm/mach-pnx4008/clock.h+3−3

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

arch/arm/mach-pnx4008/i2c.c+6−102

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

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

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

arch/arm/mach-pnx4008/include/mach/debug-macro.S+1−1

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

arch/arm/mach-pnx4008/include/mach/timex.h+0−54

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

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

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

arch/arm/mach-pnx4008/time.c+2−0

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

arch/arm/mach-pnx4008/time.h+70−0

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

arch/arm/mach-pxa/clock.c+0−8

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

arch/arm/mach-pxa/clock.h+0−4

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

arch/arm/mach-pxa/eseries.c+1−1

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

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

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

arch/arm/mach-pxa/include/mach/debug-macro.S+1−1

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

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

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

arch/arm/mach-pxa/pxa25x.c+2−2

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

arch/arm/mach-pxa/pxa27x.c+1−1

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

arch/arm/mach-pxa/pxa300.c+2−2

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

arch/arm/mach-pxa/pxa320.c+1−1

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

arch/arm/mach-pxa/pxa3xx.c+1−1

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

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

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

arch/arm/mach-realview/include/mach/debug-macro.S+1−1

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

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

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

arch/arm/mach-rpc/include/mach/debug-macro.S+1−1

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

arch/arm/mach-s3c2410/include/mach/debug-macro.S+1−1

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

arch/arm/mach-s3c24a0/include/mach/debug-macro.S+1−1

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

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

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

arch/arm/mach-s3c6400/include/mach/debug-macro.S+1−1

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

arch/arm/mach-s5pc100/include/mach/debug-macro.S+1−1

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

arch/arm/mach-sa1100/include/mach/debug-macro.S+1−1

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

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

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

arch/arm/mach-shark/include/mach/debug-macro.S+1−1

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

arch/arm/mach-u300/clock.c+13−16

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

arch/arm/mach-u300/core.c+1027−2

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

arch/arm/mach-u300/gpio.c+1−1

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

arch/arm/mach-u300/include/mach/debug-macro.S+1−1

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

arch/arm/mach-u300/include/mach/dma_channels.h+69−0

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

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

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

arch/arm/mach-ux500/board-mop500.c+88−0

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

arch/arm/mach-ux500/clock.c+1−4

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

arch/arm/mach-ux500/cpu-u8500.c+1−0

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

arch/arm/mach-ux500/include/mach/debug-macro.S+6−5

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

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

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

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

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

arch/arm/mach-versatile/include/mach/debug-macro.S+1−1

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

arch/arm/mach-w90x900/clock.c+0−9

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

arch/arm/mach-w90x900/clock.h+0−1

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

arch/arm/mach-w90x900/cpu.c+12−1

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

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

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

arch/arm/mm/Kconfig+4−4

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

arch/arm/mm/alignment.c+1−5

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

arch/arm/mm/cache-fa.S+28−4

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

arch/arm/mm/cache-l2x0.c+62−10

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

arch/arm/mm/cache-v3.S+20−23

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

arch/arm/mm/cache-v4.S+20−23

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

arch/arm/mm/cache-v4wb.S+28−4

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

arch/arm/mm/cache-v4wt.S+26−14

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

arch/arm/mm/cache-v6.S+30−4

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

arch/arm/mm/cache-v7.S+30−4

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

arch/arm/mm/context.c+110−14

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

arch/arm/mm/copypage-feroceon.c+2−1

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

arch/arm/mm/copypage-v3.c+1−1

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

arch/arm/mm/copypage-v4mc.c+1−1

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

arch/arm/mm/copypage-v4wb.c+2−1

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

arch/arm/mm/copypage-v4wt.c+1−1

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

arch/arm/mm/copypage-v6.c+2−2

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

arch/arm/mm/copypage-xsc3.c+2−1

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

arch/arm/mm/copypage-xscale.c+1−1

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

arch/arm/mm/dma-mapping.c+85−77

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

arch/arm/mm/fault-armv.c+46−39

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

arch/arm/mm/fault.c+7−0

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

arch/arm/mm/flush.c+43−8

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

arch/arm/mm/init.c+99−14

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

arch/arm/mm/ioremap.c+34−23

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

arch/arm/mm/mmu.c+21−20

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

arch/arm/mm/nommu.c+12−0

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

arch/arm/mm/proc-arm1020.S+28−4

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

arch/arm/mm/proc-arm1020e.S+28−4

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

arch/arm/mm/proc-arm1022.S+28−4

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

arch/arm/mm/proc-arm1026.S+28−4

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

arch/arm/mm/proc-arm920.S+28−4

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

arch/arm/mm/proc-arm922.S+28−4

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

arch/arm/mm/proc-arm925.S+28−4

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

arch/arm/mm/proc-arm926.S+28−4

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

arch/arm/mm/proc-arm940.S+28−4

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

arch/arm/mm/proc-arm946.S+28−4

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

arch/arm/mm/proc-feroceon.S+46−8

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

arch/arm/mm/proc-mohawk.S+28−4

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

arch/arm/mm/proc-xsc3.S+28−4

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

arch/arm/mm/proc-xscale.S+43−6

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

arch/arm/oprofile/op_model_arm11_core.c+2−2

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

arch/arm/oprofile/op_model_arm11_core.h+2−2

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

arch/arm/oprofile/op_model_mpcore.c+22−20

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

arch/arm/oprofile/op_model_v6.c+19−11

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

arch/arm/oprofile/op_model_v7.c+19−11

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

arch/arm/oprofile/op_model_v7.h+2−2

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

arch/arm/oprofile/op_model_xscale.c+19−16

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

arch/arm/plat-iop/io.c+2−1

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

arch/arm/plat-mxc/Makefile+4−0

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

arch/arm/plat-mxc/include/mach/debug-macro.S+1−1

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

arch/arm/plat-mxc/include/mach/vmalloc.h+1−1

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

arch/arm/plat-mxc/ssi-fiq-ksym.c+20−0

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

arch/arm/plat-mxc/ssi-fiq.S+134−0

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

arch/arm/plat-nomadik/include/plat/i2c.h+37−0

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

arch/arm/plat-omap/Kconfig+33−25

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

arch/arm/plat-omap/clock.c+49−3

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

arch/arm/plat-omap/common.c+46−23

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

arch/arm/plat-omap/devices.c+38−1

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

arch/arm/plat-omap/dma.c+5−5

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

arch/arm/plat-omap/dmtimer.c+55−71

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

arch/arm/plat-omap/gpio.c+166−136

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

arch/arm/plat-omap/i2c.c+12−6

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

arch/arm/plat-omap/include/plat/clkdev_omap.h+17−9

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

arch/arm/plat-omap/include/plat/clock.h+70−30

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

arch/arm/plat-omap/include/plat/clockdomain.h+64−34

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

arch/arm/plat-omap/include/plat/common.h+17−7

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

arch/arm/plat-omap/include/plat/control.h+38−2

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

arch/arm/plat-omap/include/plat/cpu.h+16−76

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

arch/arm/plat-omap/include/plat/display.h+66−51

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

arch/arm/plat-omap/include/plat/dma-44xx.h+147−0

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

arch/arm/plat-omap/include/plat/dma.h+3−83

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

arch/arm/plat-omap/include/plat/flash.h+16−0

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

arch/arm/plat-omap/include/plat/gpmc.h+3−1

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

arch/arm/plat-omap/include/plat/i2c.h+2−3

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

arch/arm/plat-omap/include/plat/io.h+32−10

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

arch/arm/plat-omap/include/plat/irqs-44xx.h+144−0

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

arch/arm/plat-omap/include/plat/irqs.h+13−89

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

arch/arm/plat-omap/include/plat/mcbsp.h+66−6

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

arch/arm/plat-omap/include/plat/memory.h+1−2

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

arch/arm/plat-omap/include/plat/menelaus.h+1−1

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

arch/arm/plat-omap/include/plat/mmc.h+25−10

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

arch/arm/plat-omap/include/plat/multi.h+94−0

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

arch/arm/plat-omap/include/plat/mux.h+1−1

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

arch/arm/plat-omap/include/plat/nand.h+9−1

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

arch/arm/plat-omap/include/plat/omap16xx.h+37−37

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

arch/arm/plat-omap/include/plat/omap24xx.h+3−3

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

arch/arm/plat-omap/include/plat/omap34xx.h+3−3

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

arch/arm/plat-omap/include/plat/omap44xx.h+4−0

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

arch/arm/plat-omap/include/plat/omap_device.h+9−2

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

arch/arm/plat-omap/include/plat/omap_hwmod.h+102−36

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

arch/arm/plat-omap/include/plat/powerdomain.h+33−62

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

arch/arm/plat-omap/include/plat/prcm.h+10−1

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

arch/arm/plat-omap/include/plat/serial.h+49−21

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

arch/arm/plat-omap/include/plat/uncompress.h+133−48

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

arch/arm/plat-omap/include/plat/usb.h+10−1

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

arch/arm/plat-omap/io.c+1−5

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

arch/arm/plat-omap/iommu.c+3−3

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

arch/arm/plat-omap/iopgtable.h+39−11

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

arch/arm/plat-omap/mailbox.c+7−1

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

arch/arm/plat-omap/mcbsp.c+594−180

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

arch/arm/plat-omap/omap_device.c+84−18

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

arch/arm/plat-omap/sram.c+1−1

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

arch/arm/plat-s3c/include/mach/vmalloc.h+1−1

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

arch/arm/plat-stmp3xxx/clock.c+1−2

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

arch/arm/plat-stmp3xxx/include/mach/debug-macro.S+1−1

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

arch/arm/plat-stmp3xxx/include/mach/vmalloc.h+1−1

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

arch/arm/vfp/vfpmodule.c+36−19

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

arch/avr32/include/asm/pgtable.h+1−1

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

arch/avr32/mm/tlb.c+2−2

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

arch/cris/arch-v10/kernel/irq.c+1−1

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

arch/cris/arch-v32/drivers/pci/bios.c+7−9

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

arch/cris/arch-v32/kernel/irq.c+1−1

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

arch/cris/arch-v32/kernel/pinmux.c+2−2

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

arch/cris/arch-v32/mach-a3/pinmux.c+1−1

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

arch/cris/arch-v32/mach-fs/pinmux.c+2−2

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

arch/cris/include/asm/pgtable.h+1−1

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

arch/cris/kernel/irq.c+1−1

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

arch/frv/include/asm/pgtable.h+1−1

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

arch/frv/mb93090-mb00/pci-frv.c+7−9

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

arch/h8300/mm/memory.c+2−2

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

arch/ia64/Kconfig+0−17

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

arch/ia64/Makefile+0−1

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

arch/ia64/configs/bigsur_defconfig+0−2

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

arch/ia64/configs/generic_defconfig+0−2

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

arch/ia64/configs/gensparse_defconfig+0−2

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

arch/ia64/configs/sim_defconfig+0−2

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

arch/ia64/configs/tiger_defconfig+0−1

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

arch/ia64/configs/xen_domu_defconfig+0−2

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

arch/ia64/configs/zx1_defconfig+0−2

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

arch/ia64/hp/common/aml_nfw.c+3−3

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

arch/ia64/ia32/Makefile+0−11

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

arch/ia64/ia32/audit.c+0−42

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

arch/ia64/ia32/binfmt_elf32.c+0−245

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

arch/ia64/ia32/elfcore32.h+0−148

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

arch/ia64/ia32/ia32_entry.S+0−468

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

arch/ia64/ia32/ia32_ldt.c+0−146

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

arch/ia64/ia32/ia32_signal.c+0−1010

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

arch/ia64/ia32/ia32_support.c+0−253

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

arch/ia64/ia32/ia32_traps.c+0−156

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

arch/ia64/ia32/ia32priv.h+0−532

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

arch/ia64/ia32/sys_ia32.c+0−2765

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

arch/ia64/include/asm/acpi.h+26−0

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

arch/ia64/include/asm/ia32.h+0−40

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

arch/ia64/include/asm/pgtable.h+1−1

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

arch/ia64/include/asm/processor.h+0−46

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

arch/ia64/include/asm/scatterlist.h+1−23

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

arch/ia64/include/asm/syscall.h+0−81

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

arch/ia64/include/asm/system.h+1−10

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

arch/ia64/include/asm/unistd.h+0−14

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

arch/ia64/kernel/Makefile+2−4

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

arch/ia64/kernel/acpi.c+1−32

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

arch/ia64/kernel/audit.c+0−21

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

arch/ia64/kernel/entry.S+0−39

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

arch/ia64/kernel/ivt.S+0−114

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

arch/ia64/kernel/kprobes.c+1−1

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

arch/ia64/kernel/perfmon.c+2−2

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

arch/ia64/kernel/process.c+7−52

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

arch/ia64/kernel/ptrace.c+2−12

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

arch/ia64/kernel/setup.c+0−5

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

arch/ia64/kernel/signal.c+14−40

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

arch/ia64/kernel/smpboot.c+0−5

This diff is large: its 19 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/kernel/traps.c+0−9

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

arch/ia64/kvm/Kconfig+1−0

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

arch/ia64/mm/init.c+0−5

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

arch/ia64/pci/pci.c+8−14

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

arch/ia64/uv/kernel/setup.c+1−1

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

arch/ia64/xen/hypercall.S+0−5

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

arch/ia64/xen/xen_pv_ops.c+0−16

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

arch/m32r/include/asm/tlbflush.h+1−1

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

arch/m32r/mm/fault-nommu.c+1−1

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

arch/m32r/mm/fault.c+3−3

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

arch/m68k/Kconfig+1−5

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

arch/m68k/amiga/config.c+1−1

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

arch/m68k/configs/mac_defconfig+5−2

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

arch/m68k/configs/multi_defconfig+5−1

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

arch/m68k/include/asm/machw.h+0−25

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

arch/m68k/include/asm/macints.h+5−17

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

arch/m68k/include/asm/pgtable_mm.h+1−1

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

arch/m68k/include/asm/ptrace.h+2−0

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

arch/m68k/include/asm/sigcontext.h+6−0

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

arch/m68k/include/asm/siginfo.h+0−91

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

arch/m68k/include/asm/swab.h+1−1

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

arch/m68k/include/asm/thread_info_mm.h+1−0

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

arch/m68k/include/asm/thread_info_no.h+1−0

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

arch/m68k/include/asm/ucontext.h+4−0

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

arch/m68k/include/asm/unistd.h+5−1

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

arch/m68k/include/asm/virtconvert.h+1−6

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

arch/m68k/kernel/entry.S+4−0

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

arch/m68k/kernel/process.c+4−0

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

arch/m68k/kernel/ptrace.c+5−0

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

arch/m68k/kernel/signal.c+7−0

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

arch/m68k/kernel/sys_m68k.c+81−0

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

arch/m68k/mac/Makefile+1−1

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

arch/m68k/mac/config.c+217−127

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

arch/m68k/mac/debug.c+0−365

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

arch/m68k/mac/macints.c+18−83

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

arch/m68k/mac/oss.c+4−16

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

arch/m68k/mac/via.c+0−7

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

arch/m68k/mm/kmap.c+2−3

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

arch/m68knommu/kernel/process.c+4−0

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

arch/m68knommu/kernel/ptrace.c+5−0

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

arch/m68knommu/kernel/sys_m68k.c+36−0

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

arch/m68knommu/kernel/syscalltable.S+4−0

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

arch/m68knommu/mm/memory.c+0−1

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

arch/microblaze/Kconfig+1−0

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

arch/microblaze/include/asm/prom.h+0−20

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

arch/microblaze/include/asm/tlbflush.h+1−1

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

arch/microblaze/kernel/of_platform.c+1−1

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

arch/microblaze/kernel/prom.c+13−977

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

arch/mips/Kconfig+5−3

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

arch/mips/Kconfig.debug+26−0

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

arch/mips/Makefile+14−5

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

arch/mips/alchemy/Kconfig+21−7

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

arch/mips/alchemy/common/Makefile+4−3

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

arch/mips/alchemy/common/clocks.c+0−7

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

arch/mips/alchemy/common/dbdma.c+99−88

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

arch/mips/alchemy/common/dma.c+31−5

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

arch/mips/alchemy/common/gpiolib-au1000.c+3−7

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

arch/mips/alchemy/common/irq.c+222−214

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

arch/mips/alchemy/common/platform.c+119−34

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

arch/mips/alchemy/common/prom.c+6−22

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

arch/mips/alchemy/common/puts.c+0−68

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

arch/mips/alchemy/common/reset.c+0−188

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

arch/mips/alchemy/common/setup.c+7−33

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

arch/mips/alchemy/common/time.c+30−5

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

arch/mips/alchemy/devboards/Makefile+4−2

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

arch/mips/alchemy/devboards/bcsr.c+148−0

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

arch/mips/alchemy/devboards/db1200/Makefile+1−0

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

arch/mips/alchemy/devboards/db1200/platform.c+561−0

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

arch/mips/alchemy/devboards/db1200/setup.c+118−0

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

arch/mips/alchemy/devboards/db1x00/Makefile+1−1

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

arch/mips/alchemy/devboards/db1x00/board_setup.c+155−49

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

arch/mips/alchemy/devboards/db1x00/irqmap.c+0−90

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

arch/mips/alchemy/devboards/db1x00/platform.c+118−0

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

arch/mips/alchemy/devboards/pb1000/board_setup.c+16−18

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

arch/mips/alchemy/devboards/pb1100/Makefile+1−1

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

arch/mips/alchemy/devboards/pb1100/board_setup.c+15−40

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

arch/mips/alchemy/devboards/pb1100/platform.c+50−0

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

arch/mips/alchemy/devboards/pb1200/Makefile+1−1

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

arch/mips/alchemy/devboards/pb1200/board_setup.c+56−40

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

arch/mips/alchemy/devboards/pb1200/irqmap.c+0−134

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

arch/mips/alchemy/devboards/pb1200/platform.c+45−18

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

arch/mips/alchemy/devboards/pb1500/Makefile+1−1

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

arch/mips/alchemy/devboards/pb1500/board_setup.c+21−33

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

arch/mips/alchemy/devboards/pb1500/platform.c+49−0

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

arch/mips/alchemy/devboards/pb1550/Makefile+1−1

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

arch/mips/alchemy/devboards/pb1550/board_setup.c+24−25

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

arch/mips/alchemy/devboards/pb1550/platform.c+69−0

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

arch/mips/alchemy/devboards/platform.c+222−0

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

arch/mips/alchemy/devboards/platform.h+21−0

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

arch/mips/alchemy/devboards/pm.c+32−0

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

arch/mips/alchemy/devboards/prom.c+5−0

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

arch/mips/alchemy/mtx-1/Makefile+1−1

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

arch/mips/alchemy/mtx-1/board_setup.c+38−11

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

arch/mips/alchemy/mtx-1/init.c+6−0

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

arch/mips/alchemy/mtx-1/irqmap.c+0−56

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

arch/mips/alchemy/xxs1500/Makefile+3−1

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

arch/mips/alchemy/xxs1500/board_setup.c+34−26

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

arch/mips/alchemy/xxs1500/init.c+6−0

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

arch/mips/alchemy/xxs1500/irqmap.c+0−52

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

arch/mips/alchemy/xxs1500/platform.c+63−0

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

arch/mips/ar7/clock.c+80−29

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

arch/mips/ar7/gpio.c+98−15

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

arch/mips/ar7/memory.c+1−2

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

arch/mips/ar7/platform.c+381−332

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

arch/mips/ar7/prom.c+32−46

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

arch/mips/ar7/setup.c+7−8

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

arch/mips/ar7/time.c+11−1

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

arch/mips/bcm47xx/gpio.c+0−1

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

arch/mips/bcm47xx/prom.c+0−1

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

arch/mips/bcm47xx/setup.c+0−1

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

arch/mips/bcm47xx/wgt634u.c+0−1

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

arch/mips/bcm63xx/boards/board_bcm963xx.c+0−1

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

arch/mips/bcm63xx/timer.c+17−17

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

arch/mips/boot/compressed/Makefile+7−4

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

arch/mips/boot/compressed/dbg.c+2−2

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

arch/mips/boot/compressed/decompress.c+2−2

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

arch/mips/boot/compressed/uart-alchemy.c+7−0

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

arch/mips/cavium-octeon/dma-octeon.c+5−5

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

arch/mips/cavium-octeon/executive/cvmx-bootmem.c+3−3

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

arch/mips/cavium-octeon/executive/cvmx-sysinfo.c+0−1

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

arch/mips/cavium-octeon/octeon-irq.c+117−43

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

arch/mips/cavium-octeon/octeon-platform.c+85−0

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

arch/mips/cavium-octeon/smp.c+1−1

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

arch/mips/cobalt/pci.c+1−1

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

arch/mips/configs/db1000_defconfig+585−565

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

arch/mips/configs/db1100_defconfig+591−546

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

arch/mips/configs/db1200_defconfig+949−629

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

arch/mips/configs/db1500_defconfig+595−777

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

arch/mips/configs/db1550_defconfig+775−605

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

arch/mips/configs/lemote2f_defconfig+670−294

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

arch/mips/configs/pb1100_defconfig+612−547

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

arch/mips/configs/pb1200_defconfig+1568−0

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

arch/mips/configs/pb1500_defconfig+713−611

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

arch/mips/configs/pb1550_defconfig+761−593

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

arch/mips/dec/kn01-berr.c+5−5

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

arch/mips/dec/prom/locore.S+0−1

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

arch/mips/include/asm/atomic.h+8−8

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

arch/mips/include/asm/barrier.h+43−17

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

arch/mips/include/asm/bitops.h+4−4

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

arch/mips/include/asm/cmpxchg.h+5−5

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

arch/mips/include/asm/cpu-features.h+3−0

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

arch/mips/include/asm/cpu.h+1−1

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

arch/mips/include/asm/current.h+1−23

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

arch/mips/include/asm/dec/kn01.h+0−1

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

arch/mips/include/asm/device.h+0−1

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

arch/mips/include/asm/elf.h+7−7

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

arch/mips/include/asm/ftrace.h+1−1

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

arch/mips/include/asm/i8259.h+3−3

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

arch/mips/include/asm/io.h+18−0

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

arch/mips/include/asm/mach-ar7/ar7.h+3−20

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

arch/mips/include/asm/mach-ar7/gpio.h+8−78

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

arch/mips/include/asm/mach-au1x00/au1000.h+383−493

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

arch/mips/include/asm/mach-au1x00/au1100_mmc.h+1−1

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

arch/mips/include/asm/mach-au1x00/au1xxx_dbdma.h+2−21

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

arch/mips/include/asm/mach-au1x00/au1xxx_eth.h+17−0

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

arch/mips/include/asm/mach-au1x00/gpio-au1000.h+80−84

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

arch/mips/include/asm/mach-au1x00/gpio.h+1−1

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

arch/mips/include/asm/mach-au1x00/ioremap.h+1−1

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

arch/mips/include/asm/mach-au1x00/prom.h+0−1

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

arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h+0−1

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

arch/mips/include/asm/mach-cavium-octeon/cpu-feature-overrides.h+3−0

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

arch/mips/include/asm/mach-db1x00/bcsr.h+238−0

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

arch/mips/include/asm/mach-db1x00/db1200.h+6−150

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

arch/mips/include/asm/mach-db1x00/db1x00.h+0−100

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

arch/mips/include/asm/mach-loongson/cpu-feature-overrides.h+1−1

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

arch/mips/include/asm/mach-loongson/cs5536/cs5536_vsm.h+1−1

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

arch/mips/include/asm/mach-loongson/loongson.h+2−3

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

arch/mips/include/asm/mach-loongson/machine.h+2−2

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

arch/mips/include/asm/mach-loongson/mem.h+1−1

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

arch/mips/include/asm/mach-loongson/pci.h+1−12

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

arch/mips/include/asm/mach-pb1x00/pb1100.h+0−85

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

arch/mips/include/asm/mach-pb1x00/pb1200.h+2−120

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

arch/mips/include/asm/mach-pb1x00/pb1500.h+0−49

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

arch/mips/include/asm/mach-pb1x00/pb1550.h+0−96

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

arch/mips/include/asm/mach-pnx833x/irq-mapping.h+0−1

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

arch/mips/include/asm/mach-powertv/interrupts.h+0−1

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

arch/mips/include/asm/mipsregs.h+15−0

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

arch/mips/include/asm/msc01_ic.h+0−1

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

arch/mips/include/asm/nile4.h+0−1

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

arch/mips/include/asm/octeon/octeon-feature.h+2−6

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

arch/mips/include/asm/octeon/octeon.h+5−0

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

arch/mips/include/asm/page.h+0−12

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

arch/mips/include/asm/param.h+1−16

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

arch/mips/include/asm/parport.h+1−15

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

arch/mips/include/asm/pgalloc.h+2−2

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

arch/mips/include/asm/pgtable-32.h+2−2

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

arch/mips/include/asm/pgtable-64.h+36−4

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

arch/mips/include/asm/pgtable-bits.h+105−15

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

arch/mips/include/asm/pgtable.h+19−12

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

arch/mips/include/asm/pmc-sierra/msp71xx/msp_prom.h+0−1

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

arch/mips/include/asm/serial.h+1−22

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

arch/mips/include/asm/sgialib.h+0−45

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

arch/mips/include/asm/sibyte/bigsur.h+0−1

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

arch/mips/include/asm/sibyte/sb1250_ldt.h+0−1

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

arch/mips/include/asm/sn/klkernvars.h+0−1

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

arch/mips/include/asm/sparsemem.h+0−1

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

arch/mips/include/asm/spinlock.h+44−76

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

arch/mips/include/asm/spinlock_types.h+18−6

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

arch/mips/include/asm/system.h+4−0

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

arch/mips/include/asm/txx9/generic.h+0−1

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

arch/mips/include/asm/uasm.hrenamed from arch/mips/mm/uasm.h+4−0

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

arch/mips/include/asm/ucontext.h+1−21

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

arch/mips/jazz/irq.c+5−5

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

arch/mips/kernel/Makefile+1−0

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

arch/mips/kernel/asm-offsets.c+4−0

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

arch/mips/kernel/cevt-gt641xx.c+5−5

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

arch/mips/kernel/cpu-probe.c+25−5

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

arch/mips/kernel/ftrace.c+1−1

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

arch/mips/kernel/i8259.c+11−11

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

arch/mips/kernel/irq-gt641xx.c+9−9

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

arch/mips/kernel/linux32.c+0−1

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

arch/mips/kernel/mcount.S+1−1

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

arch/mips/kernel/octeon_switch.S+0−1

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

arch/mips/kernel/rtlx.c+0−1

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

arch/mips/kernel/spinlock_test.c+141−0

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

arch/mips/kernel/traps.c+14−9

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

arch/mips/kernel/vpe.c+0−1

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

arch/mips/lasat/picvue.h+0−1

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

arch/mips/loongson/common/cmdline.c+4−5

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

arch/mips/loongson/common/cs5536/cs5536_acc.c+1−1

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

arch/mips/loongson/common/cs5536/cs5536_ehci.c+1−1

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

arch/mips/loongson/common/cs5536/cs5536_ide.c+1−1

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

arch/mips/loongson/common/cs5536/cs5536_isa.c+1−1

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

arch/mips/loongson/common/cs5536/cs5536_mfgpt.c+1−1

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

arch/mips/loongson/common/cs5536/cs5536_ohci.c+1−1

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

arch/mips/loongson/common/cs5536/cs5536_pci.c+1−1

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

arch/mips/loongson/common/early_printk.c+1−1

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

arch/mips/loongson/common/env.c+23−6

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

arch/mips/loongson/common/init.c+1−1

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

arch/mips/loongson/common/machtype.c+9−3

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

arch/mips/loongson/common/mem.c+4−3

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

arch/mips/loongson/common/platform.c+1−1

This diff is large: its 8 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/loongson/common/reset.c+14−6

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

arch/mips/loongson/common/serial.c+1−1

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

arch/mips/loongson/common/time.c+2−2

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

arch/mips/loongson/common/uart_base.c+1−1

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

arch/mips/loongson/fuloong-2e/reset.c+2−2

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

arch/mips/loongson/lemote-2f/Makefile+1−1

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

arch/mips/loongson/lemote-2f/ec_kb3310b.c+2−2

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

arch/mips/loongson/lemote-2f/irq.c+2−2

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

arch/mips/loongson/lemote-2f/machtype.c+45−0

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

arch/mips/loongson/lemote-2f/pm.c+1−1

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

arch/mips/loongson/lemote-2f/reset.c+1−1

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

arch/mips/math-emu/ieee754d.c+0−1

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

arch/mips/math-emu/ieee754dp.c+0−1

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

arch/mips/math-emu/ieee754sp.c+0−1

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

arch/mips/math-emu/ieee754xcpt.c+0−1

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

arch/mips/mm/c-octeon.c+4−4

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

arch/mips/mm/cache.c+37−16

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

arch/mips/mm/fault.c+25−2

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

arch/mips/mm/hugetlbpage.c+0−1

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

arch/mips/mm/init.c+3−3

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

arch/mips/mm/page.c+1−1

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

arch/mips/mm/pgtable-64.c+27−17

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

arch/mips/mm/tlb-r4k.c+16−68

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

arch/mips/mm/tlbex.c+151−37

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

arch/mips/mm/uasm.c+8−4

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

arch/mips/mti-malta/malta-int.c+3−3

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

arch/mips/nxp/pnx833x/common/interrupts.c+18−19

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

arch/mips/nxp/pnx833x/common/prom.c+0−6

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

arch/mips/nxp/pnx8550/common/prom.c+0−1

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

arch/mips/oprofile/common.c+4−3

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

arch/mips/oprofile/op_model_loongson2.c+1−8

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

arch/mips/pci/fixup-cobalt.c+61−0

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

arch/mips/pci/fixup-lemote2f.c+1−1

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

arch/mips/pci/ops-loongson2.c+1−3

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

arch/mips/pci/ops-pmcmsp.c+1−1

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

arch/mips/pci/pci-bcm47xx.c+0−1

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

arch/mips/pci/pci-octeon.c+2−4

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

arch/mips/pci/pci.c+3−5

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

arch/mips/pmc-sierra/msp71xx/msp_irq_cic.c+0−1

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

arch/mips/pmc-sierra/msp71xx/msp_prom.c+0−6

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

arch/mips/pmc-sierra/yosemite/atmel_read_eeprom.c+1−1

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

arch/mips/pmc-sierra/yosemite/atmel_read_eeprom.h+0−1

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

arch/mips/pmc-sierra/yosemite/ht.c+5−5

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

arch/mips/pmc-sierra/yosemite/smp.c+4−4

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

arch/mips/power/cpu.c+2−2

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

arch/mips/power/hibernate.S+2−2

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

arch/mips/powertv/asic/asic_devices.c+0−4

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

arch/mips/powertv/asic/asic_int.c+3−3

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

arch/mips/powertv/powertv_setup.c+49−53

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

arch/mips/sgi-ip27/ip27-klnuma.c+0−1

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

arch/mips/sgi-ip27/ip27-nmi.c+3−4

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

arch/mips/sgi-ip32/ip32-irq.c+1−8

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

arch/mips/sibyte/bcm1480/irq.c+7−7

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

arch/mips/sibyte/common/sb_tbprof.c+0−1

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

arch/mips/sibyte/sb1250/irq.c+7−7

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

arch/mips/sni/rm200.c+11−11

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

arch/mips/txx9/generic/setup.c+0−5

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

arch/mips/txx9/jmr3927/setup.c+0−7

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

arch/mips/txx9/rbtx4927/setup.c+0−7

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

arch/mips/txx9/rbtx4938/setup.c+0−6

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

arch/mn10300/include/asm/pgtable.h+1−1

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

arch/mn10300/mm/mmu-context.c+2−1

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

arch/mn10300/unit-asb2305/pci-asb2305.c+7−9

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

arch/mn10300/unit-asb2305/pci.c+2−4

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

arch/parisc/include/asm/cacheflush.h+12−0

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

arch/parisc/include/asm/pgtable.h+1−1

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

arch/parisc/kernel/cache.c+2−2

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

arch/parisc/kernel/pci.c+5−5

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

arch/powerpc/Kconfig+29−1

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

arch/powerpc/boot/dts/arches.dts+12−0

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

arch/powerpc/boot/dts/gef_ppc9a.dts+16−0

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

arch/powerpc/boot/dts/gef_sbc310.dts+18−1

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

arch/powerpc/boot/dts/gef_sbc610.dts+58−8

This diff is large: its 80 lines aren’t shown here.

arch/powerpc/boot/dts/glacier.dts+67−9

This diff is large: its 195 lines aren’t shown here.

arch/powerpc/boot/dts/katmai.dts+52−19

This diff is large: its 144 lines aren’t shown here.

arch/powerpc/boot/dts/mpc5121ads.dts+33−22

This diff is large: its 147 lines aren’t shown here.

arch/powerpc/boot/dts/mpc8568mds.dts+62−3

This diff is large: its 77 lines aren’t shown here.

arch/powerpc/boot/dts/mpc8569mds.dts+42−5

This diff is large: its 122 lines aren’t shown here.

arch/powerpc/configs/44x/katmai_defconfig+89−5

This diff is large: its 135 lines aren’t shown here.

arch/powerpc/configs/86xx/gef_ppc9a_defconfig+46−1

This diff is large: its 54 lines aren’t shown here.

arch/powerpc/configs/86xx/gef_sbc610_defconfig+54−11

This diff is large: its 115 lines aren’t shown here.

arch/powerpc/configs/mpc512x_defconfig+1694−0

This diff is large: its 1695 lines aren’t shown here.

arch/powerpc/configs/ppc64_defconfig+44−32

This diff is large: its 223 lines aren’t shown here.

arch/powerpc/configs/ps3_defconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/configs/pseries_defconfig+35−28

This diff is large: its 195 lines aren’t shown here.

arch/powerpc/include/asm/asm-compat.h+3−2

This diff is large: its 26 lines aren’t shown here.

arch/powerpc/include/asm/atomic.h+24−24

This diff is large: its 193 lines aren’t shown here.

arch/powerpc/include/asm/bitops.h+30−26

This diff is large: its 86 lines aren’t shown here.

arch/powerpc/include/asm/cputable.h+2−2

This diff is large: its 12 lines aren’t shown here.

arch/powerpc/include/asm/cputime.h+3−4

This diff is large: its 14 lines aren’t shown here.

arch/powerpc/include/asm/feature-fixups.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/include/asm/futex.h+3−3

This diff is large: its 26 lines aren’t shown here.

arch/powerpc/include/asm/hardirq.h+29−1

This diff is large: its 31 lines aren’t shown here.

arch/powerpc/include/asm/local.h+6−6

This diff is large: its 54 lines aren’t shown here.

arch/powerpc/include/asm/mpc5121.h+24−0

This diff is large: its 25 lines aren’t shown here.

arch/powerpc/include/asm/mpc52xx_psc.h+4−0

This diff is large: its 12 lines aren’t shown here.

arch/powerpc/include/asm/mpic.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/include/asm/mutex.h+3−3

This diff is large: its 27 lines aren’t shown here.

arch/powerpc/include/asm/param.h+1−22

This diff is large: its 24 lines aren’t shown here.

arch/powerpc/include/asm/pgtable.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/include/asm/pmac_feature.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/include/asm/ppc-opcode.h+18−0

This diff is large: its 43 lines aren’t shown here.

arch/powerpc/include/asm/ppc-pci.h+5−0

This diff is large: its 12 lines aren’t shown here.

arch/powerpc/include/asm/processor.h+34−2

This diff is large: its 44 lines aren’t shown here.

arch/powerpc/include/asm/prom.h+0−18

This diff is large: its 34 lines aren’t shown here.

arch/powerpc/include/asm/ptrace.h+77−0

This diff is large: its 89 lines aren’t shown here.

arch/powerpc/include/asm/reg_booke.h+95−1

This diff is large: its 129 lines aren’t shown here.

arch/powerpc/include/asm/spinlock.h+17−15

This diff is large: its 93 lines aren’t shown here.

arch/powerpc/include/asm/synch.h+8−4

This diff is large: its 20 lines aren’t shown here.

arch/powerpc/include/asm/system.h+13−8

This diff is large: its 77 lines aren’t shown here.

arch/powerpc/include/asm/topology.h+27−21

This diff is large: its 55 lines aren’t shown here.

arch/powerpc/kernel/entry_64.S+1−2

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/kernel/firmware.c+1−1

This diff is large: its 7 lines aren’t shown here.

arch/powerpc/kernel/head_fsl_booke.S+2−2

This diff is large: its 14 lines aren’t shown here.

arch/powerpc/kernel/irq.c+93−47

This diff is large: its 265 lines aren’t shown here.

arch/powerpc/kernel/kgdb.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/kernel/kprobes.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/kernel/lparcfg.c+5−5

This diff is large: its 43 lines aren’t shown here.

arch/powerpc/kernel/nvram_64.c+3−3

This diff is large: its 20 lines aren’t shown here.

arch/powerpc/kernel/of_platform.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/kernel/pci-common.c+10−14

This diff is large: its 53 lines aren’t shown here.

arch/powerpc/kernel/pci_64.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/kernel/pci_of_scan.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/kernel/perf_callchain.c+0−3

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/kernel/perf_event.c+5−5

This diff is large: its 35 lines aren’t shown here.

arch/powerpc/kernel/pmc.c+5−5

This diff is large: its 43 lines aren’t shown here.

arch/powerpc/kernel/process.c+96−20

This diff is large: its 168 lines aren’t shown here.

arch/powerpc/kernel/prom.c+49−838

This diff is large: its 1018 lines aren’t shown here.

arch/powerpc/kernel/prom_init.c+79−2

This diff is large: its 121 lines aren’t shown here.

arch/powerpc/kernel/ptrace.c+488−28

This diff is large: its 600 lines aren’t shown here.

arch/powerpc/kernel/signal.c+2−4

This diff is large: its 20 lines aren’t shown here.

arch/powerpc/kernel/signal_32.c+10−6

This diff is large: its 48 lines aren’t shown here.

arch/powerpc/kernel/time.c+6−4

This diff is large: its 31 lines aren’t shown here.

arch/powerpc/kernel/traps.c+95−33

This diff is large: its 207 lines aren’t shown here.

arch/powerpc/kvm/Kconfig+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/lib/copypage_64.S+14−14

This diff is large: its 77 lines aren’t shown here.

arch/powerpc/lib/copyuser_64.S+57−23

This diff is large: its 144 lines aren’t shown here.

arch/powerpc/lib/feature-fixups.c+2−1

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/mm/40x_mmu.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/mm/hash_native_64.c+9−10

This diff is large: its 82 lines aren’t shown here.

arch/powerpc/mm/mem.c+2−2

This diff is large: its 16 lines aren’t shown here.

arch/powerpc/mm/mmu_context_hash64.c+5−5

This diff is large: its 41 lines aren’t shown here.

arch/powerpc/mm/mmu_context_nohash.c+7−7

This diff is large: its 57 lines aren’t shown here.

arch/powerpc/mm/tlb_low_64e.S+1−1

This diff is large: its 7 lines aren’t shown here.

arch/powerpc/mm/tlb_nohash.c+3−3

This diff is large: its 22 lines aren’t shown here.

arch/powerpc/platforms/512x/clock.c+1−5

This diff is large: its 17 lines aren’t shown here.

arch/powerpc/platforms/512x/mpc5121_ads.c+2−1

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/512x/mpc5121_ads_cpld.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/512x/mpc5121_generic.c+2−1

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/512x/mpc512x.h+3−0

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/512x/mpc512x_shared.c+43−0

This diff is large: its 62 lines aren’t shown here.

arch/powerpc/platforms/85xx/mpc85xx_mds.c+27−0

This diff is large: its 53 lines aren’t shown here.

arch/powerpc/platforms/85xx/socrates_fpga_pic.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/85xx/stx_gp3.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/85xx/xes_mpc85xx.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/cell/beat_htab.c+12−12

This diff is large: its 90 lines aren’t shown here.

arch/powerpc/platforms/cell/beat_interrupt.c+10−10

This diff is large: its 64 lines aren’t shown here.

arch/powerpc/platforms/cell/cbe_powerbutton.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/cell/interrupt.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/platforms/cell/ras.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/cell/spider-pic.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/cell/spu_manage.c+3−3

This diff is large: its 27 lines aren’t shown here.

arch/powerpc/platforms/fsl_uli1575.c+6−6

This diff is large: its 27 lines aren’t shown here.

arch/powerpc/platforms/iseries/irq.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/iseries/proc.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/iseries/setup.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/pasemi/cpufreq.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/powermac/bootx_init.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/platforms/powermac/cpufreq_32.c+7−7

This diff is large: its 39 lines aren’t shown here.

arch/powerpc/platforms/powermac/cpufreq_64.c+7−7

This diff is large: its 29 lines aren’t shown here.

arch/powerpc/platforms/powermac/feature.c+4−4

This diff is large: its 23 lines aren’t shown here.

arch/powerpc/platforms/powermac/nvram.c+7−7

This diff is large: its 53 lines aren’t shown here.

arch/powerpc/platforms/powermac/pfunc_base.c+12−12

This diff is large: its 85 lines aren’t shown here.

arch/powerpc/platforms/powermac/pfunc_core.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/powermac/pic.c+20−20

This diff is large: its 143 lines aren’t shown here.

arch/powerpc/platforms/powermac/smp.c+6−6

This diff is large: its 40 lines aren’t shown here.

arch/powerpc/platforms/powermac/time.c+4−4

This diff is large: its 22 lines aren’t shown here.

arch/powerpc/platforms/powermac/udbg_scc.c+3−3

This diff is large: its 13 lines aren’t shown here.

arch/powerpc/platforms/pseries/eeh.c+9−9

This diff is large: its 81 lines aren’t shown here.

arch/powerpc/platforms/pseries/eeh_driver.c+5−5

This diff is large: its 39 lines aren’t shown here.

arch/powerpc/platforms/pseries/eeh_event.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/pseries/hotplug-cpu.c+5−17

This diff is large: its 30 lines aren’t shown here.

arch/powerpc/platforms/pseries/hvCall_inst.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/pseries/pci_dlpar.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/pseries/phyp_dump.c+3−3

This diff is large: its 27 lines aren’t shown here.

arch/powerpc/platforms/pseries/smp.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/pseries/xics.c+14−18

This diff is large: its 80 lines aren’t shown here.

arch/powerpc/sysdev/cpm1.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/sysdev/cpm2_pic.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/sysdev/fsl_msi.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/sysdev/grackle.c+2−2

This diff is large: its 12 lines aren’t shown here.

arch/powerpc/sysdev/i8259.c+12−12

This diff is large: its 100 lines aren’t shown here.

arch/powerpc/sysdev/ipic.c+11−11

This diff is large: its 97 lines aren’t shown here.

arch/powerpc/sysdev/mpc8xx_pic.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/sysdev/mpic.c+20−20

This diff is large: its 168 lines aren’t shown here.

arch/powerpc/sysdev/mpic_pasemi_msi.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/sysdev/mv64x60_dev.c+3−0

This diff is large: its 24 lines aren’t shown here.

arch/powerpc/sysdev/ppc4xx_soc.c+2−1

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/sysdev/qe_lib/qe_ic.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/sysdev/qe_lib/qe_io.c+4−4

This diff is large: its 31 lines aren’t shown here.

arch/powerpc/sysdev/uic.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/xmon/xmon.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/s390/Kconfig+6−0

This diff is large: its 20 lines aren’t shown here.

arch/s390/Kconfig.debug+13−0

This diff is large: its 18 lines aren’t shown here.

arch/s390/Makefile+10−3

This diff is large: its 57 lines aren’t shown here.

arch/s390/boot/Makefile+8−0

This diff is large: its 19 lines aren’t shown here.

arch/s390/boot/compressed/Makefile+60−0

This diff is large: its 61 lines aren’t shown here.

arch/s390/boot/compressed/head31.S+51−0

This diff is large: its 52 lines aren’t shown here.

arch/s390/boot/compressed/head64.S+48−0

This diff is large: its 49 lines aren’t shown here.

arch/s390/boot/compressed/misc.c+158−0

This diff is large: its 159 lines aren’t shown here.

arch/s390/boot/compressed/vmlinux.lds.S+55−0

This diff is large: its 56 lines aren’t shown here.

arch/s390/boot/compressed/vmlinux.scr+10−0

This diff is large: its 11 lines aren’t shown here.

arch/s390/crypto/aes_s390.c+3−3

This diff is large: its 18 lines aren’t shown here.

arch/s390/defconfig+7−0

This diff is large: its 14 lines aren’t shown here.

arch/s390/hypfs/hypfs_diag.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/s390/include/asm/atomic.h+11−75

This diff is large: its 167 lines aren’t shown here.

arch/s390/include/asm/bitops.h+20−63

This diff is large: its 160 lines aren’t shown here.

arch/s390/include/asm/bug.h+2−8

This diff is large: its 31 lines aren’t shown here.

arch/s390/include/asm/crw.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/s390/include/asm/etr.h+6−6

This diff is large: its 42 lines aren’t shown here.

arch/s390/include/asm/irqflags.h+0−36

This diff is large: its 50 lines aren’t shown here.

arch/s390/include/asm/lowcore.h+58−192

This diff is large: its 325 lines aren’t shown here.

arch/s390/include/asm/page.h+0−3

This diff is large: its 10 lines aren’t shown here.

arch/s390/include/asm/pgtable.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/s390/include/asm/processor.h+9−9

This diff is large: its 45 lines aren’t shown here.

arch/s390/include/asm/qdio.h+2−1

This diff is large: its 10 lines aren’t shown here.

arch/s390/include/asm/rwsem.h+73−74

This diff is large: its 271 lines aren’t shown here.

arch/s390/include/asm/setup.h+6−3

This diff is large: its 31 lines aren’t shown here.

arch/s390/include/asm/sigp.h+69−73

This diff is large: its 202 lines aren’t shown here.

arch/s390/include/asm/smp.h+37−1

This diff is large: its 45 lines aren’t shown here.

arch/s390/include/asm/spinlock.h+0−18

This diff is large: its 32 lines aren’t shown here.

arch/s390/include/asm/swab.h+8−8

This diff is large: its 30 lines aren’t shown here.

arch/s390/include/asm/sysinfo.h+2−1

This diff is large: its 10 lines aren’t shown here.

arch/s390/include/asm/system.h+85−83

This diff is large: its 291 lines aren’t shown here.

arch/s390/include/asm/thread_info.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/s390/include/asm/timex.h+6−16

This diff is large: its 65 lines aren’t shown here.

arch/s390/include/asm/uaccess.h+12−0

This diff is large: its 27 lines aren’t shown here.

arch/s390/include/asm/vdso.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/s390/kernel/Makefile+3−0

This diff is large: its 13 lines aren’t shown here.

arch/s390/kernel/asm-offsets.c+92−7

This diff is large: its 130 lines aren’t shown here.

arch/s390/kernel/base.S+1−1

This diff is large: its 10 lines aren’t shown here.

arch/s390/kernel/dis.c+285−84

This diff is large: its 520 lines aren’t shown here.

arch/s390/kernel/early.c+18−4

This diff is large: its 38 lines aren’t shown here.

arch/s390/kernel/entry.S+0−1

This diff is large: its 8 lines aren’t shown here.

arch/s390/kernel/entry64.S+0−2

This diff is large: its 12 lines aren’t shown here.

arch/s390/kernel/ftrace.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/s390/kernel/head.S+22−38

This diff is large: its 139 lines aren’t shown here.

arch/s390/kernel/head31.S+12−4

This diff is large: its 45 lines aren’t shown here.

arch/s390/kernel/head64.S+12−80

This diff is large: its 131 lines aren’t shown here.

arch/s390/kernel/ipl.c+27−14

This diff is large: its 125 lines aren’t shown here.

arch/s390/kernel/machine_kexec.c+8−2

This diff is large: its 24 lines aren’t shown here.

arch/s390/kernel/reipl.S+1−1

This diff is large: its 9 lines aren’t shown here.

arch/s390/kernel/reipl64.S+1−1

This diff is large: its 9 lines aren’t shown here.

arch/s390/kernel/sclp.S+32−4

This diff is large: its 80 lines aren’t shown here.

arch/s390/kernel/setup.c+4−7

This diff is large: its 36 lines aren’t shown here.

arch/s390/kernel/smp.c+62−46

This diff is large: its 244 lines aren’t shown here.

arch/s390/kernel/switch_cpu.S+58−0

This diff is large: its 59 lines aren’t shown here.

arch/s390/kernel/switch_cpu64.S+51−0

This diff is large: its 52 lines aren’t shown here.

arch/s390/kernel/swsusp_asm64.S+1−1

This diff is large: its 9 lines aren’t shown here.

arch/s390/kernel/time.c+0−8

This diff is large: its 15 lines aren’t shown here.

arch/s390/kernel/vdso.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/s390/kvm/Kconfig+1−0

This diff is large: its 8 lines aren’t shown here.

arch/s390/kvm/diag.c+2−2

This diff is large: its 17 lines aren’t shown here.

arch/s390/kvm/intercept.c+9−9

This diff is large: its 69 lines aren’t shown here.

arch/s390/kvm/interrupt.c+6−6

This diff is large: its 36 lines aren’t shown here.

arch/s390/kvm/kvm-s390.c+12−11

This diff is large: its 73 lines aren’t shown here.

arch/s390/kvm/priv.c+1−1

This diff is large: its 7 lines aren’t shown here.

arch/s390/kvm/sigp.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/s390/lib/Makefile+1−1

This diff is large: its 9 lines aren’t shown here.

arch/s390/lib/spinlock.c+37−16

This diff is large: its 81 lines aren’t shown here.

arch/s390/lib/usercopy.c+8−0

This diff is large: its 9 lines aren’t shown here.

arch/s390/mm/extmem.c+6−6

This diff is large: its 50 lines aren’t shown here.

arch/s390/mm/fault.c+2−3

This diff is large: its 25 lines aren’t shown here.

arch/s390/mm/init.c+17−16

This diff is large: its 51 lines aren’t shown here.

arch/score/include/asm/pgtable.h+2−1

This diff is large: its 11 lines aren’t shown here.

arch/score/mm/init.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/Kconfig+14−18

This diff is large: its 103 lines aren’t shown here.

arch/sh/Kconfig.cpu+2−1

This diff is large: its 10 lines aren’t shown here.

arch/sh/Makefile+7−3

This diff is large: its 46 lines aren’t shown here.

arch/sh/boards/Kconfig+8−0

This diff is large: its 15 lines aren’t shown here.

arch/sh/boards/Makefile+1−0

This diff is large: its 5 lines aren’t shown here.

arch/sh/boards/board-magicpanelr2.c+37−37

This diff is large: its 208 lines aren’t shown here.

arch/sh/boards/board-polaris.c+17−20

This diff is large: its 72 lines aren’t shown here.

arch/sh/boards/board-sh7785lcr.c+15−17

This diff is large: its 58 lines aren’t shown here.

arch/sh/boards/board-shmin.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/sh/boards/board-titan.crenamed from arch/sh/boards/mach-titan/setup.c+2−22

This diff is large: its 29 lines aren’t shown here.

arch/sh/boards/board-urquell.c+30−16

This diff is large: its 84 lines aren’t shown here.

arch/sh/boards/mach-ap325rxa/setup.c+12−12

This diff is large: its 77 lines aren’t shown here.

arch/sh/boards/mach-cayman/irq.c+8−8

This diff is large: its 46 lines aren’t shown here.

arch/sh/boards/mach-dreamcast/irq.c+27−0

This diff is large: its 31 lines aren’t shown here.

arch/sh/boards/mach-dreamcast/rtc.c+10−10

This diff is large: its 37 lines aren’t shown here.

arch/sh/boards/mach-dreamcast/setup.c+1−17

This diff is large: its 32 lines aren’t shown here.

arch/sh/boards/mach-ecovec24/sdram.S+59−0

This diff is large: its 71 lines aren’t shown here.

arch/sh/boards/mach-ecovec24/setup.c+65−22

This diff is large: its 217 lines aren’t shown here.

arch/sh/boards/mach-highlander/irq-r7780mp.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/boards/mach-highlander/irq-r7780rp.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/boards/mach-highlander/irq-r7785rp.c+8−8

This diff is large: its 29 lines aren’t shown here.

arch/sh/boards/mach-highlander/psw.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/sh/boards/mach-highlander/setup.c+7−7

This diff is large: its 50 lines aren’t shown here.

arch/sh/boards/mach-hp6xx/hp6xx_apm.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/boards/mach-hp6xx/pm.c+19−19

This diff is large: its 83 lines aren’t shown here.

arch/sh/boards/mach-hp6xx/setup.c+6−6

This diff is large: its 26 lines aren’t shown here.

arch/sh/boards/mach-kfr2r09/setup.c+8−8

This diff is large: its 51 lines aren’t shown here.

arch/sh/boards/mach-landisk/gio.c+6−6

This diff is large: its 46 lines aren’t shown here.

arch/sh/boards/mach-landisk/irq.c+3−3

This diff is large: its 24 lines aren’t shown here.

arch/sh/boards/mach-landisk/psw.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/sh/boards/mach-landisk/setup.c+3−3

This diff is large: its 27 lines aren’t shown here.

arch/sh/boards/mach-lboxre2/setup.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/sh/boards/mach-microdev/io.c+2−2

This diff is large: its 13 lines aren’t shown here.

arch/sh/boards/mach-microdev/irq.c+5−5

This diff is large: its 35 lines aren’t shown here.

arch/sh/boards/mach-migor/setup.c+6−18

This diff is large: its 67 lines aren’t shown here.

arch/sh/boards/mach-r2d/irq.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/sh/boards/mach-r2d/setup.c+4−4

This diff is large: its 35 lines aren’t shown here.

arch/sh/boards/mach-rsk/devices-rsk7203.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/boards/mach-sdk7780/irq.c+2−2

This diff is large: its 12 lines aren’t shown here.

arch/sh/boards/mach-sdk7780/setup.c+10−19

This diff is large: its 55 lines aren’t shown here.

arch/sh/boards/mach-sdk7786/Makefile+1−0

This diff is large: its 2 lines aren’t shown here.

arch/sh/boards/mach-sdk7786/fpga.c+72−0

This diff is large: its 73 lines aren’t shown here.

arch/sh/boards/mach-sdk7786/irq.c+48−0

This diff is large: its 49 lines aren’t shown here.

arch/sh/boards/mach-sdk7786/setup.c+189−0

This diff is large: its 190 lines aren’t shown here.

arch/sh/boards/mach-se/7206/io.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/boards/mach-se/7206/irq.c+22−21

This diff is large: its 99 lines aren’t shown here.

arch/sh/boards/mach-se/7206/setup.c+6−9

This diff is large: its 31 lines aren’t shown here.

arch/sh/boards/mach-se/7343/irq.c+26−19

This diff is large: its 80 lines aren’t shown here.

arch/sh/boards/mach-se/7343/setup.c+19−24

This diff is large: its 104 lines aren’t shown here.

arch/sh/boards/mach-se/770x/irq.c+7−7

This diff is large: its 21 lines aren’t shown here.

arch/sh/boards/mach-se/770x/setup.c+6−9

This diff is large: its 31 lines aren’t shown here.

arch/sh/boards/mach-se/7721/irq.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/boards/mach-se/7721/setup.c+10−13

This diff is large: its 46 lines aren’t shown here.

arch/sh/boards/mach-se/7722/irq.c+5−5

This diff is large: its 36 lines aren’t shown here.

arch/sh/boards/mach-se/7722/setup.c+23−32

This diff is large: its 83 lines aren’t shown here.

arch/sh/boards/mach-se/7724/irq.c+39−23

This diff is large: its 95 lines aren’t shown here.

arch/sh/boards/mach-se/7724/sdram.S+79−0

This diff is large: its 91 lines aren’t shown here.

arch/sh/boards/mach-se/7724/setup.c+60−54

This diff is large: its 247 lines aren’t shown here.

arch/sh/boards/mach-se/7780/irq.c+9−9

This diff is large: its 47 lines aren’t shown here.

arch/sh/boards/mach-se/7780/setup.c+19−28

This diff is large: its 77 lines aren’t shown here.

arch/sh/boards/mach-sh03/rtc.c+25−25

This diff is large: its 79 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/boards/mach-sh7763rdp/irq.c+5−5

This diff is large: its 24 lines aren’t shown here.

arch/sh/boards/mach-sh7763rdp/setup.c+20−20

This diff is large: its 71 lines aren’t shown here.

arch/sh/boards/mach-snapgear/setup.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/boards/mach-systemh/irq.c+6−6

This diff is large: its 30 lines aren’t shown here.

arch/sh/boards/mach-titan/Makefile+0−5

This diff is large: its 6 lines aren’t shown here.

arch/sh/boards/mach-titan/io.c+0−108

This diff is large: its 109 lines aren’t shown here.

arch/sh/boards/mach-x3proto/ilsel.c+4−4

This diff is large: its 25 lines aren’t shown here.

arch/sh/boards/mach-x3proto/setup.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/boot/Makefile+16−14

This diff is large: its 59 lines aren’t shown here.

arch/sh/boot/compressed/Makefile+3−4

This diff is large: its 25 lines aren’t shown here.

arch/sh/boot/compressed/misc.c+4−19

This diff is large: its 50 lines aren’t shown here.

arch/sh/cchips/hd6446x/hd64461.c+25−11

This diff is large: its 61 lines aren’t shown here.

arch/sh/configs/sdk7786_defconfig+1754−0

This diff is large: its 1755 lines aren’t shown here.

arch/sh/drivers/dma/dma-pvr2.c+5−5

This diff is large: its 26 lines aren’t shown here.

arch/sh/drivers/dma/dma-sh.c+17−14

This diff is large: its 99 lines aren’t shown here.

arch/sh/drivers/dma/dmabrg.c+11−11

This diff is large: its 52 lines aren’t shown here.

arch/sh/drivers/heartbeat.c+17−5

This diff is large: its 50 lines aren’t shown here.

arch/sh/drivers/pci/Makefile+2−3

This diff is large: its 22 lines aren’t shown here.

arch/sh/drivers/pci/common.c+162−0

This diff is large: its 163 lines aren’t shown here.

arch/sh/drivers/pci/fixups-dreamcast.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/drivers/pci/fixups-r7780rp.c+0−12

This diff is large: its 16 lines aren’t shown here.

arch/sh/drivers/pci/fixups-rts7751r2d.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/sh/drivers/pci/fixups-sdk7780.c+0−19

This diff is large: its 23 lines aren’t shown here.

arch/sh/drivers/pci/fixups-se7751.c+3−3

This diff is large: its 16 lines aren’t shown here.

arch/sh/drivers/pci/ops-sh4.c+1−29

This diff is large: its 44 lines aren’t shown here.

arch/sh/drivers/pci/pci-dreamcast.c+15−17

This diff is large: its 50 lines aren’t shown here.

arch/sh/drivers/pci/pci-sh4.h+14−4

This diff is large: its 51 lines aren’t shown here.

arch/sh/drivers/pci/pci-sh5.c+8−11

This diff is large: its 38 lines aren’t shown here.

arch/sh/drivers/pci/pci-sh5.h+6−6

This diff is large: its 21 lines aren’t shown here.

arch/sh/drivers/pci/pci-sh7751.c+23−29

This diff is large: its 108 lines aren’t shown here.

arch/sh/drivers/pci/pci-sh7780.c+332−76

This diff is large: its 474 lines aren’t shown here.

arch/sh/drivers/pci/pci-sh7780.h+7−57

This diff is large: its 93 lines aren’t shown here.

arch/sh/drivers/pci/pci.c+138−35

This diff is large: its 274 lines aren’t shown here.

arch/sh/drivers/pci/pcie-sh7786.c+138−67

This diff is large: its 293 lines aren’t shown here.

arch/sh/drivers/pci/pcie-sh7786.h+8−66

This diff is large: its 107 lines aren’t shown here.

arch/sh/drivers/superhyway/ops-sh4-202.c+4−4

This diff is large: its 22 lines aren’t shown here.

arch/sh/include/asm/Kbuild+3−1

This diff is large: its 10 lines aren’t shown here.

arch/sh/include/asm/addrspace.h+10−8

This diff is large: its 38 lines aren’t shown here.

arch/sh/include/asm/alignment.h+21−0

This diff is large: its 22 lines aren’t shown here.

arch/sh/include/asm/atomic-grb.h+0−46

This diff is large: its 51 lines aren’t shown here.

arch/sh/include/asm/atomic-llsc.h+0−27

This diff is large: its 32 lines aren’t shown here.

arch/sh/include/asm/atomic.h+29−44

This diff is large: its 88 lines aren’t shown here.

arch/sh/include/asm/cacheflush.h+8−0

This diff is large: its 15 lines aren’t shown here.

arch/sh/include/asm/clock.h+10−1

This diff is large: its 19 lines aren’t shown here.

arch/sh/include/asm/cmpxchg-grb.h+3−4

This diff is large: its 15 lines aren’t shown here.

arch/sh/include/asm/dma-mapping.h+0−2

This diff is large: its 9 lines aren’t shown here.

arch/sh/include/asm/dma-sh.h+47−8

This diff is large: its 90 lines aren’t shown here.

arch/sh/include/asm/dwarf.h+7−12

This diff is large: its 38 lines aren’t shown here.

arch/sh/include/asm/fixmap.h+14−1

This diff is large: its 31 lines aren’t shown here.

arch/sh/include/asm/fpu.h+12−23

This diff is large: its 63 lines aren’t shown here.

arch/sh/include/asm/hw_breakpoint.h+67−0

This diff is large: its 68 lines aren’t shown here.

arch/sh/include/asm/io.h+132−37

This diff is large: its 227 lines aren’t shown here.

arch/sh/include/asm/kdebug.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/sh/include/asm/mmu.h+28−21

This diff is large: its 78 lines aren’t shown here.

arch/sh/include/asm/mmu_context.h+3−3

This diff is large: its 21 lines aren’t shown here.

arch/sh/include/asm/mmu_context_32.h+2−2

This diff is large: its 14 lines aren’t shown here.

arch/sh/include/asm/module.h+16−1

This diff is large: its 24 lines aren’t shown here.

arch/sh/include/asm/page.h+11−8

This diff is large: its 54 lines aren’t shown here.

arch/sh/include/asm/pci.h+41−18

This diff is large: its 90 lines aren’t shown here.

arch/sh/include/asm/pgalloc.h+10−22

This diff is large: its 56 lines aren’t shown here.

arch/sh/include/asm/pgtable-2level.h+23−0

This diff is large: its 24 lines aren’t shown here.

arch/sh/include/asm/pgtable-3level.h+56−0

This diff is large: its 57 lines aren’t shown here.

arch/sh/include/asm/pgtable.h+9−20

This diff is large: its 65 lines aren’t shown here.

arch/sh/include/asm/pgtable_32.h+4−0

This diff is large: its 24 lines aren’t shown here.

arch/sh/include/asm/pgtable_64.h+14−12

This diff is large: its 48 lines aren’t shown here.

arch/sh/include/asm/processor.h+21−0

This diff is large: its 35 lines aren’t shown here.

arch/sh/include/asm/processor_32.h+14−21

This diff is large: its 70 lines aren’t shown here.

arch/sh/include/asm/processor_64.h+14−9

This diff is large: its 57 lines aren’t shown here.

arch/sh/include/asm/ptrace.h+13−7

This diff is large: its 45 lines aren’t shown here.

arch/sh/include/asm/reboot.h+21−0

This diff is large: its 22 lines aren’t shown here.

arch/sh/include/asm/setup.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/sh/include/asm/sh_bios.h+12−3

This diff is large: its 31 lines aren’t shown here.

arch/sh/include/asm/siu.h+26−0

This diff is large: its 27 lines aren’t shown here.

arch/sh/include/asm/suspend.h+1−0

This diff is large: its 7 lines aren’t shown here.

arch/sh/include/asm/system.h+5−4

This diff is large: its 43 lines aren’t shown here.

arch/sh/include/asm/system_32.h+12−3

This diff is large: its 36 lines aren’t shown here.

arch/sh/include/asm/system_64.h+8−2

This diff is large: its 31 lines aren’t shown here.

arch/sh/include/asm/thread_info.h+6−4

This diff is large: its 21 lines aren’t shown here.

arch/sh/include/asm/tlb.h+17−0

This diff is large: its 31 lines aren’t shown here.

arch/sh/include/asm/ubc.h+0−64

This diff is large: its 65 lines aren’t shown here.

arch/sh/include/asm/uncached.h+18−0

This diff is large: its 19 lines aren’t shown here.

arch/sh/include/asm/vmlinux.lds.h+8−0

This diff is large: its 13 lines aren’t shown here.

arch/sh/include/asm/watchdog.h+9−9

This diff is large: its 81 lines aren’t shown here.

arch/sh/include/cpu-sh2/cpu/ubc.h+0−32

This diff is large: its 33 lines aren’t shown here.

arch/sh/include/cpu-sh2/cpu/watchdog.h+2−2

This diff is large: its 18 lines aren’t shown here.

arch/sh/include/cpu-sh3/cpu/dac.h+6−6

This diff is large: its 32 lines aren’t shown here.

arch/sh/include/cpu-sh3/cpu/dma.h+12−8

This diff is large: its 33 lines aren’t shown here.

arch/sh/include/cpu-sh3/cpu/ubc.h+0−42

This diff is large: its 43 lines aren’t shown here.

arch/sh/include/cpu-sh4/cpu/addrspace.h+9−0

This diff is large: its 16 lines aren’t shown here.

arch/sh/include/cpu-sh4/cpu/dma-sh4a.h+79−29

This diff is large: its 160 lines aren’t shown here.

arch/sh/include/cpu-sh4/cpu/dma.h+19−16

This diff is large: its 61 lines aren’t shown here.

arch/sh/include/cpu-sh4/cpu/mmu_context.h+4−0

This diff is large: its 11 lines aren’t shown here.

arch/sh/include/cpu-sh4/cpu/sq.h+2−1

This diff is large: its 17 lines aren’t shown here.

arch/sh/include/cpu-sh4/cpu/ubc.h+0−64

This diff is large: its 65 lines aren’t shown here.

arch/sh/include/mach-common/mach/magicpanelr2.h+6−6

This diff is large: its 19 lines aren’t shown here.

arch/sh/include/mach-dreamcast/mach/sysasic.h+5−0

This diff is large: its 11 lines aren’t shown here.

arch/sh/include/mach-sdk7786/mach/fpga.h+114−0

This diff is large: its 115 lines aren’t shown here.

arch/sh/include/mach-sdk7786/mach/irq.h+7−0

This diff is large: its 8 lines aren’t shown here.

arch/sh/include/mach-se/mach/se7343.h+22−30

This diff is large: its 68 lines aren’t shown here.

arch/sh/kernel/Makefile+5−3

This diff is large: its 29 lines aren’t shown here.

arch/sh/kernel/cpu/Makefile+2−0

This diff is large: its 8 lines aren’t shown here.

arch/sh/kernel/cpu/adc.c+6−6

This diff is large: its 26 lines aren’t shown here.

arch/sh/kernel/cpu/clock-cpg.c+99−5

This diff is large: its 140 lines aren’t shown here.

arch/sh/kernel/cpu/fpu.c+84−0

This diff is large: its 85 lines aren’t shown here.

arch/sh/kernel/cpu/init.c+75−50

This diff is large: its 220 lines aren’t shown here.

arch/sh/kernel/cpu/irq/intc-sh5.c+7−7

This diff is large: its 51 lines aren’t shown here.

arch/sh/kernel/cpu/sh2/clock-sh7619.c+3−3

This diff is large: its 27 lines aren’t shown here.

arch/sh/kernel/cpu/sh2a/clock-sh7201.c+4−4

This diff is large: its 36 lines aren’t shown here.

arch/sh/kernel/cpu/sh2a/clock-sh7203.c+3−3

This diff is large: its 27 lines aren’t shown here.

arch/sh/kernel/cpu/sh2a/clock-sh7206.c+4−4

This diff is large: its 36 lines aren’t shown here.

arch/sh/kernel/cpu/sh2a/fpu.c+23−88

This diff is large: its 214 lines aren’t shown here.

arch/sh/kernel/cpu/sh3/clock-sh3.c+4−4

This diff is large: its 36 lines aren’t shown here.

arch/sh/kernel/cpu/sh3/clock-sh7705.c+4−4

This diff is large: its 36 lines aren’t shown here.

arch/sh/kernel/cpu/sh3/clock-sh7706.c+4−4

This diff is large: its 36 lines aren’t shown here.

arch/sh/kernel/cpu/sh3/clock-sh7709.c+4−4

This diff is large: its 36 lines aren’t shown here.

arch/sh/kernel/cpu/sh3/clock-sh7710.c+4−4

This diff is large: its 36 lines aren’t shown here.

arch/sh/kernel/cpu/sh3/clock-sh7712.c+3−3

This diff is large: its 27 lines aren’t shown here.

arch/sh/kernel/cpu/sh3/ex.S+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/kernel/cpu/sh3/probe.c+14−14

This diff is large: its 56 lines aren’t shown here.

arch/sh/kernel/cpu/sh3/setup-sh3.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/kernel/cpu/sh4/clock-sh4-202.c+5−5

This diff is large: its 40 lines aren’t shown here.

arch/sh/kernel/cpu/sh4/clock-sh4.c+4−4

This diff is large: its 36 lines aren’t shown here.

arch/sh/kernel/cpu/sh4/fpu.c+39−120

This diff is large: its 298 lines aren’t shown here.

arch/sh/kernel/cpu/sh4/probe.c+8−6

This diff is large: its 52 lines aren’t shown here.

arch/sh/kernel/cpu/sh4/setup-sh4-202.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/kernel/cpu/sh4/setup-sh7750.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/kernel/cpu/sh4/setup-sh7760.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/kernel/cpu/sh4/sq.c+11−12

This diff is large: its 78 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/Makefile+5−4

This diff is large: its 13 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/clock-sh7343.c+5−1

This diff is large: its 19 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/clock-sh7366.c+5−1

This diff is large: its 19 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/clock-sh7722.c+25−4

This diff is large: its 62 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/clock-sh7723.c+25−5

This diff is large: its 60 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/clock-sh7724.c+17−2

This diff is large: its 39 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/clock-sh7757.c+4−4

This diff is large: its 36 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/clock-sh7763.c+4−4

This diff is large: its 36 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/clock-sh7770.c+4−4

This diff is large: its 36 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/clock-sh7780.c+5−5

This diff is large: its 45 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/clock-sh7785.c+5−1

This diff is large: its 17 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/clock-sh7786.c+90−94

This diff is large: its 230 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/clock-shx3.c+5−5

This diff is large: its 45 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/pinmux-sh7722.c+11−10

This diff is large: its 49 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/setup-sh7722.c+12−8

This diff is large: its 62 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/setup-sh7723.c+22−17

This diff is large: its 107 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/setup-sh7724.c+21−18

This diff is large: its 107 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/setup-sh7757.c+13−13

This diff is large: its 64 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/setup-sh7763.c+10−10

This diff is large: its 50 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/setup-sh7770.c+12−12

This diff is large: its 58 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/setup-sh7780.c+12−12

This diff is large: its 58 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/setup-sh7785.c+13−13

This diff is large: its 64 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/setup-sh7786.c+12−12

This diff is large: its 60 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/smp-shx3.c+4−1

This diff is large: its 12 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/ubc.c+133−0

This diff is large: its 134 lines aren’t shown here.

arch/sh/kernel/cpu/sh5/clock-sh5.c+4−4

This diff is large: its 36 lines aren’t shown here.

arch/sh/kernel/cpu/sh5/entry.S+3−3

This diff is large: its 27 lines aren’t shown here.

arch/sh/kernel/cpu/sh5/fpu.c+6−59

This diff is large: its 97 lines aren’t shown here.

arch/sh/kernel/cpu/shmobile/pm.c+2−1

This diff is large: its 10 lines aren’t shown here.

arch/sh/kernel/cpu/shmobile/sleep.S+119−2

This diff is large: its 157 lines aren’t shown here.

arch/sh/kernel/debugtraps.S+0−1

This diff is large: its 8 lines aren’t shown here.

arch/sh/kernel/dwarf.c+120−54

This diff is large: its 304 lines aren’t shown here.

arch/sh/kernel/early_printk.c+0−85

This diff is large: its 86 lines aren’t shown here.

arch/sh/kernel/head_32.S+220−1

This diff is large: its 253 lines aren’t shown here.

arch/sh/kernel/head_64.S+0−2

This diff is large: its 16 lines aren’t shown here.

arch/sh/kernel/hw_breakpoint.c+463−0

This diff is large: its 464 lines aren’t shown here.

arch/sh/kernel/idle.c+11−3

This diff is large: its 29 lines aren’t shown here.

arch/sh/kernel/io_trapped.c+10−8

This diff is large: its 49 lines aren’t shown here.

arch/sh/kernel/kgdb.c+41−5

This diff is large: its 74 lines aren’t shown here.

arch/sh/kernel/machine_kexec.c+5−11

This diff is large: its 40 lines aren’t shown here.

arch/sh/kernel/perf_callchain.c+0−3

This diff is large: its 10 lines aren’t shown here.

arch/sh/kernel/process.c+100−0

This diff is large: its 101 lines aren’t shown here.

arch/sh/kernel/process_32.c+24−140

This diff is large: its 248 lines aren’t shown here.

arch/sh/kernel/process_64.c+2−25

This diff is large: its 41 lines aren’t shown here.

arch/sh/kernel/ptrace_32.c+57−25

This diff is large: its 144 lines aren’t shown here.

arch/sh/kernel/ptrace_64.c+8−8

This diff is large: its 59 lines aren’t shown here.

arch/sh/kernel/reboot.c+98−0

This diff is large: its 99 lines aren’t shown here.

arch/sh/kernel/setup.c+6−6

This diff is large: its 31 lines aren’t shown here.

arch/sh/kernel/sh_bios.c+122−7

This diff is large: its 165 lines aren’t shown here.

arch/sh/kernel/signal_32.c+5−5

This diff is large: its 39 lines aren’t shown here.

arch/sh/kernel/signal_64.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/sh/kernel/smp.c+0−9

This diff is large: its 16 lines aren’t shown here.

arch/sh/kernel/traps.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/sh/kernel/traps_32.c+18−163

This diff is large: its 273 lines aren’t shown here.

arch/sh/kernel/traps_64.c+14−14

This diff is large: its 54 lines aren’t shown here.

arch/sh/kernel/vmlinux.lds.S+12−30

This diff is large: its 76 lines aren’t shown here.

arch/sh/math-emu/math.c+6−6

This diff is large: its 37 lines aren’t shown here.

arch/sh/mm/Kconfig+13−35

This diff is large: its 81 lines aren’t shown here.

arch/sh/mm/Makefile+7−5

This diff is large: its 39 lines aren’t shown here.

arch/sh/mm/alignment.c+189−0

This diff is large: its 190 lines aren’t shown here.

arch/sh/mm/cache-debugfs.c+3−4

This diff is large: its 28 lines aren’t shown here.

arch/sh/mm/cache-sh2.c+6−6

This diff is large: its 43 lines aren’t shown here.

arch/sh/mm/cache-sh2a.c+10−10

This diff is large: its 62 lines aren’t shown here.

arch/sh/mm/cache-sh3.c+3−3

This diff is large: its 24 lines aren’t shown here.

arch/sh/mm/cache-sh4.c+10−17

This diff is large: its 68 lines aren’t shown here.

arch/sh/mm/cache-sh7705.c+6−6

This diff is large: its 44 lines aren’t shown here.

arch/sh/mm/cache.c+11−2

This diff is large: its 28 lines aren’t shown here.

arch/sh/mm/fault_32.c+4−1

This diff is large: its 19 lines aren’t shown here.

arch/sh/mm/init.c+93−73

This diff is large: its 261 lines aren’t shown here.

arch/sh/mm/ioremap.crenamed from arch/sh/mm/ioremap_32.c+40−23

This diff is large: its 125 lines aren’t shown here.

arch/sh/mm/ioremap_64.c+0−326

This diff is large: its 327 lines aren’t shown here.

arch/sh/mm/ioremap_fixed.c+128−0

This diff is large: its 129 lines aren’t shown here.

arch/sh/mm/nommu.c+4−0

This diff is large: its 8 lines aren’t shown here.

arch/sh/mm/pgtable.c+56−0

This diff is large: its 57 lines aren’t shown here.

arch/sh/mm/pmb.c+440−146

This diff is large: its 819 lines aren’t shown here.

arch/sh/mm/tlb-pteaex.c+1−2

This diff is large: its 10 lines aren’t shown here.

arch/sh/mm/tlb-sh3.c+3−3

This diff is large: its 24 lines aren’t shown here.

arch/sh/mm/tlb-sh4.c+6−7

This diff is large: its 51 lines aren’t shown here.

arch/sh/mm/tlb-sh5.c+39−0

This diff is large: its 43 lines aren’t shown here.

arch/sh/mm/tlb-urb.c+81−0

This diff is large: its 82 lines aren’t shown here.

arch/sh/mm/tlbflush_32.c+2−2

This diff is large: its 12 lines aren’t shown here.

arch/sh/mm/tlbflush_64.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/mm/uncached.c+34−0

This diff is large: its 35 lines aren’t shown here.

arch/sh/tools/mach-types+1−0

This diff is large: its 8 lines aren’t shown here.

arch/sparc/include/asm/pgtable_32.h+2−2

This diff is large: its 12 lines aren’t shown here.

arch/sparc/include/asm/pgtable_64.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sparc/include/asm/scatterlist.h+1−20

This diff is large: its 29 lines aren’t shown here.

arch/sparc/kernel/devices.c+1−3

This diff is large: its 16 lines aren’t shown here.

arch/sparc/kernel/leon_kernel.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sparc/kernel/leon_smp.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/sparc/kernel/of_device_32.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sparc/kernel/of_device_64.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sparc/kernel/pci.c+78−2

This diff is large: its 92 lines aren’t shown here.

arch/sparc/kernel/pcic.c+3−4

This diff is large: its 22 lines aren’t shown here.

arch/sparc/kernel/perf_event.c+5−5

This diff is large: its 35 lines aren’t shown here.

arch/sparc/kernel/prom.h+0−3

This diff is large: its 10 lines aren’t shown here.

arch/sparc/kernel/prom_common.c+3−15

This diff is large: its 46 lines aren’t shown here.

arch/sparc/kernel/setup_32.c+0−2

This diff is large: its 9 lines aren’t shown here.

arch/sparc/kernel/smp_64.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sparc/kernel/sun4d_smp.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sparc/kernel/sys_sparc32.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/sparc/kernel/unaligned_64.c+3−8

This diff is large: its 38 lines aren’t shown here.

arch/sparc/mm/fault_32.c+62−48

This diff is large: its 208 lines aren’t shown here.

arch/sparc/mm/fault_64.c+31−3

This diff is large: its 61 lines aren’t shown here.

arch/sparc/mm/init_64.c+2−1

This diff is large: its 15 lines aren’t shown here.

arch/sparc/mm/nosun4c.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sparc/mm/srmmu.c+3−3

This diff is large: its 22 lines aren’t shown here.

arch/sparc/mm/sun4c.c+3−3

This diff is large: its 27 lines aren’t shown here.

arch/sparc/prom/console_32.c+0−1

This diff is large: its 6 lines aren’t shown here.

arch/sparc/prom/console_64.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/sparc/prom/devmap.c+0−1

This diff is large: its 6 lines aren’t shown here.

arch/sparc/prom/devops_32.c+0−2

This diff is large: its 7 lines aren’t shown here.

arch/sparc/prom/init_32.c+0−1

This diff is large: its 6 lines aren’t shown here.

arch/sparc/prom/palloc.c+0−1

This diff is large: its 6 lines aren’t shown here.

arch/sparc/prom/ranges.c+0−2

This diff is large: its 9 lines aren’t shown here.

arch/sparc/prom/segment.c+0−1

This diff is large: its 6 lines aren’t shown here.

arch/sparc/prom/tree_32.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/sparc/prom/tree_64.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/um/drivers/ubd_kern.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/um/include/asm/pgtable.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/um/sys-x86_64/Makefile+2−1

This diff is large: its 10 lines aren’t shown here.

arch/x86/Kconfig.cpu+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/Makefile+0−2

This diff is large: its 10 lines aren’t shown here.

arch/x86/boot/compressed/misc.c+4−11

This diff is large: its 53 lines aren’t shown here.

arch/x86/boot/mkcpustr.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/boot/video-vga.c+1−8

This diff is large: its 24 lines aren’t shown here.

arch/x86/boot/video.c+7−0

This diff is large: its 19 lines aren’t shown here.

arch/x86/ia32/ia32_aout.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/include/asm/alternative.h+11−1

This diff is large: its 36 lines aren’t shown here.

arch/x86/include/asm/atomic.h+297−2

This diff is large: its 303 lines aren’t shown here.

arch/x86/include/asm/atomic64_32.h+160−0

This diff is large: its 161 lines aren’t shown here.

arch/x86/include/asm/atomic64_64.h+224−0

This diff is large: its 225 lines aren’t shown here.

arch/x86/include/asm/atomic_32.h+0−415

This diff is large: its 416 lines aren’t shown here.

arch/x86/include/asm/atomic_64.h+0−485

This diff is large: its 486 lines aren’t shown here.

arch/x86/include/asm/cpufeature.h+4−0

This diff is large: its 11 lines aren’t shown here.

arch/x86/include/asm/debugreg.h+3−0

This diff is large: its 10 lines aren’t shown here.

arch/x86/include/asm/fb.h+0−4

This diff is large: its 11 lines aren’t shown here.

arch/x86/include/asm/fixmap.h+11−5

This diff is large: its 26 lines aren’t shown here.

arch/x86/include/asm/i387.h+10−2

This diff is large: its 19 lines aren’t shown here.

arch/x86/include/asm/io.h+152−3

This diff is large: its 173 lines aren’t shown here.

arch/x86/include/asm/io_32.h+0−196

This diff is large: its 197 lines aren’t shown here.

arch/x86/include/asm/io_64.h+0−181

This diff is large: its 182 lines aren’t shown here.

arch/x86/include/asm/mmzone_64.h+0−6

This diff is large: its 12 lines aren’t shown here.

arch/x86/include/asm/nmi.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/include/asm/numa_64.h+5−0

This diff is large: its 12 lines aren’t shown here.

arch/x86/include/asm/numaq.h+4−0

This diff is large: its 11 lines aren’t shown here.

arch/x86/include/asm/page_types.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/include/asm/pci_x86.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/include/asm/perf_event.h+14−2

This diff is large: its 30 lines aren’t shown here.

arch/x86/include/asm/pgalloc.h+5−0

This diff is large: its 12 lines aren’t shown here.

arch/x86/include/asm/pgtable_32.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/include/asm/pgtable_64.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/include/asm/ptrace.h+0−4

This diff is large: its 11 lines aren’t shown here.

arch/x86/include/asm/rwsem.h+49−32

This diff is large: its 184 lines aren’t shown here.

arch/x86/include/asm/smp.h+9−0

This diff is large: its 23 lines aren’t shown here.

arch/x86/include/asm/stacktrace.h+0−2

This diff is large: its 9 lines aren’t shown here.

arch/x86/include/asm/uaccess_64.h+20−1

This diff is large: its 35 lines aren’t shown here.

arch/x86/include/asm/user.h+58−0

This diff is large: its 64 lines aren’t shown here.

arch/x86/include/asm/uv/bios.h+7−4

This diff is large: its 45 lines aren’t shown here.

arch/x86/include/asm/uv/uv.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/include/asm/uv/uv_hub.h+2−1

This diff is large: its 10 lines aren’t shown here.

arch/x86/include/asm/x86_init.h+2−0

This diff is large: its 16 lines aren’t shown here.

arch/x86/include/asm/xsave.h+2−0

This diff is large: its 12 lines aren’t shown here.

arch/x86/kernel/acpi/boot.c+21−0

This diff is large: its 42 lines aren’t shown here.

arch/x86/kernel/alternative.c+21−1

This diff is large: its 43 lines aren’t shown here.

arch/x86/kernel/apic/apic.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/apic/io_apic.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/apic/numaq_32.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/apic/x2apic_uv_x.c+81−8

This diff is large: its 163 lines aren’t shown here.

arch/x86/kernel/apm_32.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/x86/kernel/bios_uv.c+33−6

This diff is large: its 92 lines aren’t shown here.

arch/x86/kernel/cpu/addon_cpuid_features.c+4−0

This diff is large: its 11 lines aren’t shown here.

arch/x86/kernel/cpu/cpufreq/powernow-k8.c+3−3

This diff is large: its 27 lines aren’t shown here.

arch/x86/kernel/cpu/intel_cacheinfo.c+199−135

This diff is large: its 432 lines aren’t shown here.

arch/x86/kernel/cpu/mtrr/Makefile+1−1

This diff is large: its 5 lines aren’t shown here.

arch/x86/kernel/cpu/mtrr/amd.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/cpu/mtrr/centaur.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/cpu/mtrr/cyrix.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/cpu/mtrr/generic.c+5−5

This diff is large: its 45 lines aren’t shown here.

arch/x86/kernel/cpu/mtrr/main.c+3−3

This diff is large: its 18 lines aren’t shown here.

arch/x86/kernel/cpu/mtrr/mtrr.h+3−3

This diff is large: its 22 lines aren’t shown here.

arch/x86/kernel/cpu/mtrr/state.c+0−94

This diff is large: its 95 lines aren’t shown here.

arch/x86/kernel/cpu/perf_event.c+534−1320

This diff is large: its 2175 lines aren’t shown here.

arch/x86/kernel/cpu/perf_event_amd.c+416−0

This diff is large: its 417 lines aren’t shown here.

arch/x86/kernel/cpu/perf_event_intel.c+971−0

This diff is large: its 972 lines aren’t shown here.

arch/x86/kernel/cpu/perf_event_p6.c+157−0

This diff is large: its 158 lines aren’t shown here.

arch/x86/kernel/cpu/perfctr-watchdog.c+0−11

This diff is large: its 18 lines aren’t shown here.

arch/x86/kernel/dumpstack_32.c+0−5

This diff is large: its 12 lines aren’t shown here.

arch/x86/kernel/dumpstack_64.c+1−5

This diff is large: its 20 lines aren’t shown here.

arch/x86/kernel/e820.c+8−0

This diff is large: its 20 lines aren’t shown here.

arch/x86/kernel/efi.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/hpet.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/hw_breakpoint.c+7−3

This diff is large: its 24 lines aren’t shown here.

arch/x86/kernel/i387.c+67−4

This diff is large: its 99 lines aren’t shown here.

arch/x86/kernel/kprobes.c+4−1

This diff is large: its 19 lines aren’t shown here.

arch/x86/kernel/microcode_intel.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/process.c+7−0

This diff is large: its 14 lines aren’t shown here.

arch/x86/kernel/process_32.c+0−6

This diff is large: its 13 lines aren’t shown here.

arch/x86/kernel/process_64.c+0−6

This diff is large: its 13 lines aren’t shown here.

arch/x86/kernel/ptrace.c+32−26

This diff is large: its 107 lines aren’t shown here.

arch/x86/kernel/setup.c+20−1

This diff is large: its 43 lines aren’t shown here.

arch/x86/kernel/smpboot.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/kernel/traps.c+3−0

This diff is large: its 10 lines aren’t shown here.

arch/x86/kernel/tsc.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/x86/kernel/uv_sysfs.c+3−3

This diff is large: its 23 lines aren’t shown here.

arch/x86/kernel/x8664_ksyms_64.c+2−1

This diff is large: its 10 lines aren’t shown here.

arch/x86/kernel/x86_init.c+3−0

This diff is large: its 14 lines aren’t shown here.

arch/x86/kernel/xsave.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/kvm/Kconfig+1−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/lib/Makefile+3−2

This diff is large: its 21 lines aren’t shown here.

arch/x86/lib/cache-smp.c+19−0

This diff is large: its 20 lines aren’t shown here.

arch/x86/lib/copy_user_64.S+0−6

This diff is large: its 13 lines aren’t shown here.

arch/x86/lib/io_64.c+0−25

This diff is large: its 26 lines aren’t shown here.

arch/x86/lib/memcpy_64.S+8−15

This diff is large: its 54 lines aren’t shown here.

arch/x86/lib/memset_64.S+6−12

This diff is large: its 42 lines aren’t shown here.

arch/x86/lib/rwsem_64.S+81−0

This diff is large: its 82 lines aren’t shown here.

arch/x86/mm/init.c+0−7

This diff is large: its 17 lines aren’t shown here.

arch/x86/mm/init_32.c+5−3

This diff is large: its 30 lines aren’t shown here.

arch/x86/mm/ioremap.c+4−37

This diff is large: its 55 lines aren’t shown here.

arch/x86/mm/kmemcheck/kmemcheck.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/mm/kmemcheck/shadow.c+14−2

This diff is large: its 41 lines aren’t shown here.

arch/x86/mm/kmemcheck/shadow.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/x86/mm/mmap.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/x86/mm/numa_64.c+101−134

This diff is large: its 275 lines aren’t shown here.

arch/x86/mm/pgtable.c+26−5

This diff is large: its 50 lines aren’t shown here.

arch/x86/mm/tlb.c+4−4

This diff is large: its 36 lines aren’t shown here.

arch/x86/oprofile/nmi_int.c+9−8

This diff is large: its 63 lines aren’t shown here.

arch/x86/oprofile/op_model_amd.c+158−86

This diff is large: its 447 lines aren’t shown here.

arch/x86/oprofile/op_model_p4.c+0−6

This diff is large: its 13 lines aren’t shown here.

arch/x86/oprofile/op_model_ppro.c+11−6

This diff is large: its 45 lines aren’t shown here.

arch/x86/oprofile/op_x86_model.h+20−0

This diff is large: its 27 lines aren’t shown here.

arch/x86/pci/acpi.c+49−33

This diff is large: its 133 lines aren’t shown here.

arch/x86/pci/bus_numa.c+2−1

This diff is large: its 16 lines aren’t shown here.

arch/x86/pci/bus_numa.h+1−2

This diff is large: its 10 lines aren’t shown here.

arch/x86/pci/common.c+3−0

This diff is large: its 10 lines aren’t shown here.

arch/x86/pci/i386.c+6−8

This diff is large: its 29 lines aren’t shown here.

arch/x86/pci/irq.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/x86/pci/mmconfig-shared.c+6−11

This diff is large: its 29 lines aren’t shown here.

arch/x86/pci/numaq_32.c+1−5

This diff is large: its 20 lines aren’t shown here.

arch/x86/tools/test_get_len.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/xtensa/include/asm/pgtable.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/xtensa/kernel/pci.c+7−8

This diff is large: its 34 lines aren’t shown here.

arch/xtensa/mm/cache.c+2−2

This diff is large: its 12 lines aren’t shown here.

arch/xtensa/platforms/iss/network.c+1−1

This diff is large: its 9 lines aren’t shown here.

block/blk-cgroup.c+0−14

This diff is large: its 21 lines aren’t shown here.

block/blk-cgroup.h+0−3

This diff is large: its 10 lines aren’t shown here.

block/blk-core.c+15−19

This diff is large: its 77 lines aren’t shown here.

block/blk-ioc.c+1−1

This diff is large: its 9 lines aren’t shown here.

block/blk-merge.c+2−6

This diff is large: its 22 lines aren’t shown here.

block/blk-settings.c+42−89

This diff is large: its 252 lines aren’t shown here.

block/blk-sysfs.c+7−4

This diff is large: its 26 lines aren’t shown here.

block/cfq-iosched.c+68−79

This diff is large: its 335 lines aren’t shown here.

block/elevator.c+10−1

This diff is large: its 25 lines aren’t shown here.

crypto/Kconfig+10−0

This diff is large: its 17 lines aren’t shown here.

crypto/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

crypto/ablkcipher.c+2−2

This diff is large: its 17 lines aren’t shown here.

crypto/aead.c+2−2

This diff is large: its 16 lines aren’t shown here.

crypto/aes_generic.c+2−2

This diff is large: its 15 lines aren’t shown here.

crypto/algapi.c+2−2

This diff is large: its 18 lines aren’t shown here.

crypto/anubis.c+11−11

This diff is large: its 58 lines aren’t shown here.

crypto/api.c+6−7

This diff is large: its 50 lines aren’t shown here.

crypto/authenc.c+5−5

This diff is large: its 41 lines aren’t shown here.

crypto/blowfish.c+9−9

This diff is large: its 57 lines aren’t shown here.

crypto/camellia.c+308−308

This diff is large: its 703 lines aren’t shown here.

crypto/cast5.c+7−7

This diff is large: its 28 lines aren’t shown here.

crypto/cast6.c+62−60

This diff is large: its 225 lines aren’t shown here.

crypto/cipher.c+1−1

This diff is large: its 9 lines aren’t shown here.

crypto/compress.c+2−2

This diff is large: its 18 lines aren’t shown here.

crypto/crc32c.c+3−3

This diff is large: its 24 lines aren’t shown here.

crypto/crypto_null.c+4−4

This diff is large: its 32 lines aren’t shown here.

crypto/deflate.c+10−10

This diff is large: its 77 lines aren’t shown here.

crypto/des_generic.c+1−2

This diff is large: its 10 lines aren’t shown here.

crypto/ecb.c+1−1

This diff is large: its 9 lines aren’t shown here.

crypto/fcrypt.c+3−3

This diff is large: its 25 lines aren’t shown here.

crypto/gcm.c+287−0

This diff is large: its 321 lines aren’t shown here.

crypto/md5.c+24−16

This diff is large: its 100 lines aren’t shown here.

crypto/pcrypt.c+445−0

This diff is large: its 446 lines aren’t shown here.

crypto/testmgr.c+84−0

This diff is large: its 108 lines aren’t shown here.

drivers/Makefile+1−0

This diff is large: its 8 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+4−11

This diff is large: its 44 lines aren’t shown here.

drivers/acpi/acpica/acglobal.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/achware.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/acinterp.h+20−24

This diff is large: its 150 lines aren’t shown here.

drivers/acpi/acpica/aclocal.h+5−3

This diff is large: its 36 lines aren’t shown here.

drivers/acpi/acpica/acmacros.h+7−7

This diff is large: its 49 lines aren’t shown here.

drivers/acpi/acpica/acnamesp.h+12−6

This diff is large: its 39 lines aren’t shown here.

drivers/acpi/acpica/acobject.h+4−2

This diff is large: its 29 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+9−13

This diff is large: its 66 lines aren’t shown here.

drivers/acpi/acpica/amlcode.h+1−1

This diff is large: its 9 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+6−6

This diff is large: its 40 lines aren’t shown here.

drivers/acpi/acpica/dsinit.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/dsmethod.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/dsmthdat.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/dsobject.c+2−2

This diff is large: its 18 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+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/evgpe.c+19−144

This diff is large: its 241 lines aren’t shown here.

drivers/acpi/acpica/evgpeblk.c+34−55

This diff is large: its 165 lines aren’t shown here.

drivers/acpi/acpica/evmisc.c+10−4

This diff is large: its 28 lines aren’t shown here.

drivers/acpi/acpica/evregion.c+3−4

This diff is large: its 28 lines aren’t shown here.

drivers/acpi/acpica/evrgnini.c+2−2

This diff is large: its 18 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+140−51

This diff is large: its 276 lines aren’t shown here.

drivers/acpi/acpica/evxfevnt.c+72−26

This diff is large: its 200 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+7−10

This diff is large: its 45 lines aren’t shown here.

drivers/acpi/acpica/exconvrt.c+9−12

This diff is large: its 64 lines aren’t shown here.

drivers/acpi/acpica/excreate.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/exdump.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/exfield.c+4−5

This diff is large: its 37 lines aren’t shown here.

drivers/acpi/acpica/exfldio.c+27−32

This diff is large: its 177 lines aren’t shown here.

drivers/acpi/acpica/exmisc.c+5−7

This diff is large: its 40 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+8−8

This diff is large: its 65 lines aren’t shown here.

drivers/acpi/acpica/exoparg2.c+3−3

This diff is large: its 27 lines aren’t shown here.

drivers/acpi/acpica/exoparg3.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/acpi/acpica/exoparg6.c+5−5

This diff is large: its 39 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+16−19

This diff is large: its 121 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+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/acpi/acpica/exutils.c+12−12

This diff is large: its 78 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+3−5

This diff is large: its 29 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+2−2

This diff is large: its 18 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+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/nsalloc.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/nsdump.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/nsdumpdv.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/nseval.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/nsinit.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/nsload.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/nsnames.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/nsobject.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/nsparse.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/nspredef.c+36−17

This diff is large: its 119 lines aren’t shown here.

drivers/acpi/acpica/nsrepair.c+174−1

This diff is large: its 203 lines aren’t shown here.

drivers/acpi/acpica/nsrepair2.c+10−100

This diff is large: its 175 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+34−20

This diff is large: its 75 lines aren’t shown here.

drivers/acpi/acpica/nsxfname.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/nsxfobj.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/psargs.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/acpi/acpica/psloop.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/psopcode.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/psparse.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/psscope.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/pstree.c+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+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/rsaddr.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/rscalc.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/rscreate.c+2−2

This diff is large: its 18 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+2−3

This diff is large: its 19 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+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/acpi/acpica/utglobal.c+2−2

This diff is large: its 18 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+11−16

This diff is large: its 69 lines aren’t shown here.

drivers/acpi/acpica/utmisc.c+7−9

This diff is large: its 39 lines aren’t shown here.

drivers/acpi/acpica/utmutex.c+4−14

This diff is large: its 61 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/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/battery.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/acpi/button.c+11−4

This diff is large: its 30 lines aren’t shown here.

drivers/acpi/ec.c+21−11

This diff is large: its 94 lines aren’t shown here.

drivers/acpi/glue.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/acpi/internal.h+0−2

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/osl.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/acpi/pci_bind.c+13−1

This diff is large: its 36 lines aren’t shown here.

drivers/acpi/pci_root.c+9−0

This diff is large: its 37 lines aren’t shown here.

drivers/acpi/power_meter.c+15−15

This diff is large: its 51 lines aren’t shown here.

drivers/acpi/processor_idle.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/processor_throttling.c+12−12

This diff is large: its 105 lines aren’t shown here.

drivers/acpi/scan.c+28−10

This diff is large: its 66 lines aren’t shown here.

drivers/acpi/sleep.c+12−3

This diff is large: its 22 lines aren’t shown here.

drivers/acpi/system.c+2−2

This diff is large: its 13 lines aren’t shown here.

drivers/acpi/utils.c+8−8

This diff is large: its 39 lines aren’t shown here.

drivers/acpi/video.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/wakeup.c+29−55

This diff is large: its 137 lines aren’t shown here.

drivers/ata/Kconfig+2−2

This diff is large: its 12 lines aren’t shown here.

drivers/ata/ahci.c+223−24

This diff is large: its 425 lines aren’t shown here.

drivers/ata/ata_generic.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/ata/ata_piix.c+23−5

This diff is large: its 64 lines aren’t shown here.

drivers/ata/libata-acpi.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/ata/libata-core.c+11−6

This diff is large: its 33 lines aren’t shown here.

drivers/ata/libata-scsi.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/ata/libata-sff.c+39−11

This diff is large: its 87 lines aren’t shown here.

drivers/ata/pata_acpi.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/ata/pata_ali.c+4−6

This diff is large: its 38 lines aren’t shown here.

drivers/ata/pata_amd.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/ata/pata_artop.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/ata/pata_at91.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/ata/pata_atiixp.c+12−2

This diff is large: its 57 lines aren’t shown here.

drivers/ata/pata_cmd640.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/ata/pata_cmd64x.c+13−14

This diff is large: its 90 lines aren’t shown here.

drivers/ata/pata_cs5530.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/ata/pata_cs5535.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/ata/pata_cs5536.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/ata/pata_cypress.c+7−5

This diff is large: its 38 lines aren’t shown here.

drivers/ata/pata_efar.c+19−3

This diff is large: its 91 lines aren’t shown here.

drivers/ata/pata_hpt366.c+6−17

This diff is large: its 60 lines aren’t shown here.

drivers/ata/pata_hpt37x.c+85−104

This diff is large: its 288 lines aren’t shown here.

drivers/ata/pata_hpt3x2n.c+56−64

This diff is large: its 176 lines aren’t shown here.

drivers/ata/pata_it8213.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/ata/pata_it821x.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/ata/pata_jmicron.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/ata/pata_marvell.c+2−2

This diff is large: its 16 lines aren’t shown here.

drivers/ata/pata_netcell.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/ata/pata_ns87410.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/ata/pata_ns87415.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/ata/pata_oldpiix.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/ata/pata_opti.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/ata/pata_optidma.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/ata/pata_pcmcia.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/ata/pata_pdc202xx_old.c+15−2

This diff is large: its 52 lines aren’t shown here.

drivers/ata/pata_piccolo.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/ata/pata_radisys.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/ata/pata_rz1000.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/ata/pata_sc1200.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/ata/pata_serverworks.c+4−3

This diff is large: its 35 lines aren’t shown here.

drivers/ata/pata_sil680.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/ata/pata_sis.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/ata/pata_sl82c105.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/ata/pata_triflex.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/ata/pata_via.c+97−113

This diff is large: its 317 lines aren’t shown here.

drivers/ata/sata_nv.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/ata/sata_via.c+20−3

This diff is large: its 68 lines aren’t shown here.

drivers/atm/fore200e.c+4−7

This diff is large: its 31 lines aren’t shown here.

drivers/atm/idt77252.c+1−4

This diff is large: its 12 lines aren’t shown here.

drivers/atm/lanai.c+3−11

This diff is large: its 28 lines aren’t shown here.

drivers/atm/nicstar.c+1−3

This diff is large: its 11 lines aren’t shown here.

drivers/base/power/main.c+132−11

This diff is large: its 297 lines aren’t shown here.

drivers/base/power/power.h+3−3

This diff is large: its 14 lines aren’t shown here.

drivers/base/power/runtime.c+45−0

This diff is large: its 59 lines aren’t shown here.

drivers/base/power/sysfs.c+100−0

This diff is large: its 132 lines aren’t shown here.

drivers/block/DAC960.c+3−3

This diff is large: its 20 lines aren’t shown here.

drivers/block/ataflop.c+0−2

This diff is large: its 9 lines aren’t shown here.

drivers/block/brd.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/block/cciss.c+107−111

This diff is large: its 367 lines aren’t shown here.

drivers/block/cciss.h+6−15

This diff is large: its 67 lines aren’t shown here.

drivers/block/cciss_cmd.h+31−133

This diff is large: its 267 lines aren’t shown here.

drivers/block/cciss_scsi.c+89−56

This diff is large: its 353 lines aren’t shown here.

drivers/block/cciss_scsi.h+9−9

This diff is large: its 26 lines aren’t shown here.

drivers/block/cpqarray.c+1−4

This diff is large: its 13 lines aren’t shown here.

drivers/block/drbd/drbd_nl.c+2−3

This diff is large: its 12 lines aren’t shown here.

drivers/block/floppy.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/block/hd.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/block/mg_disk.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/block/paride/pd.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/block/paride/pf.c+1−2

This diff is large: its 10 lines aren’t shown here.

drivers/block/pktcdvd.c+25−72

This diff is large: its 221 lines aren’t shown here.

drivers/block/ps3disk.c+2−3

This diff is large: its 19 lines aren’t shown here.

drivers/block/ps3vram.c+3−4

This diff is large: its 14 lines aren’t shown here.

drivers/block/sunvdc.c+2−3

This diff is large: its 12 lines aren’t shown here.

drivers/block/swim.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/block/sx8.c+2−3

This diff is large: its 19 lines aren’t shown here.

drivers/block/ub.c+3−4

This diff is large: its 22 lines aren’t shown here.

drivers/block/viodasd.c+38−53

This diff is large: its 239 lines aren’t shown here.

drivers/block/virtio_blk.c+47−16

This diff is large: its 131 lines aren’t shown here.

drivers/block/xd.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/block/xen-blkfront.c+3−4

This diff is large: its 27 lines aren’t shown here.

drivers/block/xsysace.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/bluetooth/ath3k.c+2−0

This diff is large: its 9 lines aren’t shown here.

drivers/bluetooth/bcm203x.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/bluetooth/bfusb.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/bluetooth/bluecard_cs.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/bluetooth/bpa10x.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/bluetooth/bt3c_cs.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/bluetooth/btmrvl_debugfs.c+7−7

This diff is large: its 48 lines aren’t shown here.

drivers/bluetooth/btmrvl_main.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/bluetooth/btmrvl_sdio.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/bluetooth/btsdio.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/bluetooth/btuart_cs.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/bluetooth/btusb.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/bluetooth/dtl1_cs.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/bluetooth/hci_ldisc.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/bluetooth/hci_vhci.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/cdrom/gdrom.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/cdrom/viocd.c+2−3

This diff is large: its 12 lines aren’t shown here.

drivers/char/Kconfig+8−0

This diff is large: its 15 lines aren’t shown here.

drivers/char/agp/intel-agp.c+4−11

This diff is large: its 37 lines aren’t shown here.

drivers/char/hvc_beat.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/char/hvc_console.c+5−4

This diff is large: its 30 lines aren’t shown here.

drivers/char/hvc_console.h+5−4

This diff is large: its 25 lines aren’t shown here.

drivers/char/hvc_iseries.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/char/hvc_iucv.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/char/hvc_rtas.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/char/hvc_udbg.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/char/hvc_vio.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/char/hvc_xen.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/char/hw_random/Kconfig+13−1

This diff is large: its 25 lines aren’t shown here.

drivers/char/hw_random/Makefile+1−0

This diff is large: its 5 lines aren’t shown here.

drivers/char/hw_random/nomadik-rng.c+103−0

This diff is large: its 104 lines aren’t shown here.

drivers/char/keyboard.c+16−13

This diff is large: its 57 lines aren’t shown here.

drivers/char/nvram.c+0−3

This diff is large: its 23 lines aren’t shown here.

drivers/char/pcmcia/cm4000_cs.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/char/virtio_console.c+1432−146

This diff is large: its 1696 lines aren’t shown here.

drivers/char/vme_scc.c+6−6

This diff is large: its 54 lines aren’t shown here.

drivers/clocksource/sh_cmt.c+26−41

This diff is large: its 121 lines aren’t shown here.

drivers/clocksource/sh_mtu2.c+3−3

This diff is large: its 19 lines aren’t shown here.

drivers/clocksource/sh_tmu.c+3−3

This diff is large: its 19 lines aren’t shown here.

drivers/crypto/amcc/crypto4xx_core.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/crypto/geode-aes.c+4−4

This diff is large: its 26 lines aren’t shown here.

drivers/crypto/talitos.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/dma/shdma.c+297−114

This diff is large: its 585 lines aren’t shown here.

drivers/dma/shdma.h+2−5

This diff is large: its 23 lines aren’t shown here.

drivers/firewire/sbp2.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/firmware/iscsi_ibft.c+4−10

This diff is large: its 35 lines aren’t shown here.

drivers/gpu/drm/radeon/radeon_combios.c+22−22

This diff is large: its 70 lines aren’t shown here.

drivers/gpu/vga/Kconfig+8−0

This diff is large: its 12 lines aren’t shown here.

drivers/gpu/vga/vgaarb.c+21−6

This diff is large: its 63 lines aren’t shown here.

drivers/hid/Kconfig+50−4

This diff is large: its 108 lines aren’t shown here.

drivers/hid/Makefile+9−0

This diff is large: its 32 lines aren’t shown here.

drivers/hid/hid-3m-pct.c+290−0

This diff is large: its 291 lines aren’t shown here.

drivers/hid/hid-apple.c+12−5

This diff is large: its 31 lines aren’t shown here.

drivers/hid/hid-core.c+16−7

This diff is large: its 95 lines aren’t shown here.

drivers/hid/hid-debug.c+3−3

This diff is large: its 17 lines aren’t shown here.

drivers/hid/hid-ids.h+30−7

This diff is large: its 104 lines aren’t shown here.

drivers/hid/hid-input.c+9−3

This diff is large: its 36 lines aren’t shown here.

drivers/hid/hid-lg.c+6−1

This diff is large: its 35 lines aren’t shown here.

drivers/hid/hid-lg.h+6−0

This diff is large: its 11 lines aren’t shown here.

drivers/hid/hid-lg3ff.c+176−0

This diff is large: its 177 lines aren’t shown here.

drivers/hid/hid-lgff.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/hid/hid-magicmouse.c+449−0

This diff is large: its 450 lines aren’t shown here.

drivers/hid/hid-mosart.c+273−0

This diff is large: its 274 lines aren’t shown here.

drivers/hid/hid-ntrig.c+147−65

This diff is large: its 323 lines aren’t shown here.

drivers/hid/hid-ortek.c+56−0

This diff is large: its 57 lines aren’t shown here.

drivers/hid/hid-quanta.c+260−0

This diff is large: its 261 lines aren’t shown here.

drivers/hid/hid-sony.c+20−3

This diff is large: its 58 lines aren’t shown here.

drivers/hid/hid-stantum.c+283−0

This diff is large: its 284 lines aren’t shown here.

drivers/hid/hid-wacom.c+28−0

This diff is large: its 50 lines aren’t shown here.

drivers/hid/hidraw.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/hid/usbhid/hid-core.c+33−9

This diff is large: its 116 lines aren’t shown here.

drivers/hid/usbhid/hid-quirks.c+3−0

This diff is large: its 19 lines aren’t shown here.

drivers/hid/usbhid/usbhid.h+2−0

This diff is large: its 15 lines aren’t shown here.

drivers/hwmon/ams/ams-core.c+7−4

This diff is large: its 32 lines aren’t shown here.

drivers/hwmon/ams/ams-i2c.c+2−0

This diff is large: its 9 lines aren’t shown here.

drivers/hwmon/ams/ams-pmu.c+2−0

This diff is large: its 9 lines aren’t shown here.

drivers/hwmon/ams/ams.h+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/i2c/busses/Kconfig+10−0

This diff is large: its 17 lines aren’t shown here.

drivers/i2c/busses/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/i2c/busses/i2c-octeon.c+651−0

This diff is large: its 652 lines aren’t shown here.

drivers/i2c/busses/i2c-pnx.c+155−130

This diff is large: its 648 lines aren’t shown here.

drivers/ide/au1xxx-ide.c+9−12

This diff is large: its 45 lines aren’t shown here.

drivers/ide/ide-acpi.c+4−4

This diff is large: its 32 lines aren’t shown here.

drivers/ide/ide-disk.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/ide/ide-floppy.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/ide/ide-probe.c+2−3

This diff is large: its 19 lines aren’t shown here.

drivers/ieee1394/sbp2.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/infiniband/hw/cxgb3/iwch_cm.c+2−9

This diff is large: its 18 lines aren’t shown here.

drivers/infiniband/hw/nes/nes_nic.c+49−36

This diff is large: its 152 lines aren’t shown here.

drivers/infiniband/ulp/ipoib/ipoib_cm.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/infiniband/ulp/ipoib/ipoib_multicast.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/input/evdev.c+2−0

This diff is large: its 9 lines aren’t shown here.

drivers/input/gameport/emu10k1-gp.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/input/gameport/fm801-gp.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/input/gameport/gameport.c+40−58

This diff is large: its 254 lines aren’t shown here.

drivers/input/gameport/ns558.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/input/input-compat.h+0−2

This diff is large: its 9 lines aren’t shown here.

drivers/input/input.c+72−18

This diff is large: its 185 lines aren’t shown here.

drivers/input/joydev.c+17−17

This diff is large: its 68 lines aren’t shown here.

drivers/input/joystick/Kconfig+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/input/joystick/gamecon.c+434−230

This diff is large: its 1016 lines aren’t shown here.

drivers/input/joystick/xpad.c+158−95

This diff is large: its 425 lines aren’t shown here.

drivers/input/keyboard/Kconfig+24−9

This diff is large: its 91 lines aren’t shown here.

drivers/input/keyboard/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/input/keyboard/adp5588-keys.c+4−2

This diff is large: its 24 lines aren’t shown here.

drivers/input/keyboard/atkbd.c+161−148

This diff is large: its 547 lines aren’t shown here.

drivers/input/keyboard/ep93xx_keypad.c+15−25

This diff is large: its 91 lines aren’t shown here.

drivers/input/keyboard/gpio_keys.c+307−11

This diff is large: its 396 lines aren’t shown here.

drivers/input/keyboard/imx_keypad.c+594−0

This diff is large: its 595 lines aren’t shown here.

drivers/input/keyboard/qt2160.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/input/keyboard/sh_keysc.c+91−54

This diff is large: its 245 lines aren’t shown here.

drivers/input/misc/apanel.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/input/misc/atlas_btns.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/input/misc/rotary_encoder.c+14−0

This diff is large: its 28 lines aren’t shown here.

drivers/input/misc/uinput.c+1−3

This diff is large: its 25 lines aren’t shown here.

drivers/input/misc/winbond-cir.c+104−109

This diff is large: its 267 lines aren’t shown here.

drivers/input/mouse/hgpk.c+0−4

This diff is large: its 11 lines aren’t shown here.

drivers/input/serio/pcips2.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/input/serio/serio.c+56−75

This diff is large: its 296 lines aren’t shown here.

drivers/input/serio/xilinx_ps2.c+3−3

This diff is large: its 27 lines aren’t shown here.

drivers/input/tablet/gtco.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/input/tablet/wacom.h+3−2

This diff is large: its 25 lines aren’t shown here.

drivers/input/tablet/wacom_sys.c+50−20

This diff is large: its 148 lines aren’t shown here.

drivers/input/tablet/wacom_wac.c+231−177

This diff is large: its 596 lines aren’t shown here.

drivers/input/tablet/wacom_wac.h+9−8

This diff is large: its 41 lines aren’t shown here.

drivers/input/touchscreen/Kconfig+5−1

This diff is large: its 20 lines aren’t shown here.

drivers/input/touchscreen/ads7846.c+27−1

This diff is large: its 84 lines aren’t shown here.

drivers/input/touchscreen/elo.c+120−105

This diff is large: its 283 lines aren’t shown here.

drivers/input/touchscreen/mainstone-wm97xx.c+3−0

This diff is large: its 10 lines aren’t shown here.

drivers/input/touchscreen/s3c2410_ts.c+17−14

This diff is large: its 52 lines aren’t shown here.

drivers/input/touchscreen/tsc2007.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/input/touchscreen/usbtouchscreen.c+299−18

This diff is large: its 485 lines aren’t shown here.

drivers/input/touchscreen/zylonite-wm97xx.c+3−0

This diff is large: its 10 lines aren’t shown here.

drivers/input/xen-kbdfront.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/isdn/Kconfig+28−15

This diff is large: its 67 lines aren’t shown here.

drivers/isdn/capi/Kconfig+8−8

This diff is large: its 36 lines aren’t shown here.

drivers/isdn/capi/capi.c+574−629

This diff is large: its 1871 lines aren’t shown here.

drivers/isdn/capi/capidrv.c+33−70

This diff is large: its 183 lines aren’t shown here.

drivers/isdn/capi/capifs.c+69−57

This diff is large: its 175 lines aren’t shown here.

drivers/isdn/capi/capifs.h+19−2

This diff is large: its 25 lines aren’t shown here.

drivers/isdn/capi/kcapi.c+451−366

This diff is large: its 1355 lines aren’t shown here.

drivers/isdn/capi/kcapi.h+8−5

This diff is large: its 25 lines aren’t shown here.

drivers/isdn/capi/kcapi_proc.c+24−17

This diff is large: its 110 lines aren’t shown here.

drivers/isdn/gigaset/asyncdata.c+4−2

This diff is large: its 26 lines aren’t shown here.

drivers/isdn/gigaset/bas-gigaset.c+6−12

This diff is large: its 58 lines aren’t shown here.

drivers/isdn/gigaset/capi.c+41−65

This diff is large: its 229 lines aren’t shown here.

drivers/isdn/gigaset/common.c+20−29

This diff is large: its 166 lines aren’t shown here.

drivers/isdn/gigaset/ev-layer.c+32−31

This diff is large: its 251 lines aren’t shown here.

drivers/isdn/gigaset/gigaset.h+4−7

This diff is large: its 48 lines aren’t shown here.

drivers/isdn/gigaset/i4l.c+6−46

This diff is large: its 102 lines aren’t shown here.

drivers/isdn/gigaset/interface.c+4−8

This diff is large: its 54 lines aren’t shown here.

drivers/isdn/gigaset/isocdata.c+31−13

This diff is large: its 70 lines aren’t shown here.

drivers/isdn/gigaset/proc.c+0−2

This diff is large: its 9 lines aren’t shown here.

drivers/isdn/gigaset/usb-gigaset.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/isdn/hardware/avm/avmcard.h+2−4

This diff is large: its 19 lines aren’t shown here.

drivers/isdn/hardware/avm/b1.c+31−23

This diff is large: its 112 lines aren’t shown here.

drivers/isdn/hardware/avm/b1dma.c+37−34

This diff is large: its 137 lines aren’t shown here.

drivers/isdn/hardware/avm/b1isa.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/isdn/hardware/avm/b1pci.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/isdn/hardware/avm/b1pcmcia.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/isdn/hardware/avm/c4.c+31−22

This diff is large: its 110 lines aren’t shown here.

drivers/isdn/hardware/avm/t1isa.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/isdn/hardware/avm/t1pci.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/isdn/hardware/eicon/capimain.c+24−16

This diff is large: its 65 lines aren’t shown here.

drivers/isdn/hardware/eicon/diva_didd.c+24−21

This diff is large: its 71 lines aren’t shown here.

drivers/isdn/hardware/eicon/divasi.c+25−23

This diff is large: its 72 lines aren’t shown here.

drivers/isdn/hardware/eicon/divasproc.c+87−111

This diff is large: its 298 lines aren’t shown here.

drivers/isdn/hardware/mISDN/hfcmulti.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/isdn/hardware/mISDN/mISDNinfineon.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/isdn/hardware/mISDN/w6692.c+2−0

This diff is large: its 16 lines aren’t shown here.

drivers/isdn/hisax/Kconfig+9−9

This diff is large: its 81 lines aren’t shown here.

drivers/isdn/hisax/avm_pci.c+3−3

This diff is large: its 27 lines aren’t shown here.

drivers/isdn/hisax/bkm_a4t.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/isdn/hisax/bkm_a8.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/isdn/hisax/diva.c+7−7

This diff is large: its 60 lines aren’t shown here.

drivers/isdn/hisax/elsa.c+4−4

This diff is large: its 36 lines aren’t shown here.

drivers/isdn/hisax/enternow_pci.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/isdn/hisax/gazel.c+4−4

This diff is large: its 36 lines aren’t shown here.

drivers/isdn/hisax/hfc_pci.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/isdn/hisax/hisax.h+23−0

This diff is large: its 27 lines aren’t shown here.

drivers/isdn/hisax/isar.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/isdn/hisax/niccy.c+3−3

This diff is large: its 24 lines aren’t shown here.

drivers/isdn/hisax/nj_s.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/isdn/hisax/nj_u.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/isdn/hisax/sedlbauer.c+3−3

This diff is large: its 27 lines aren’t shown here.

drivers/isdn/hisax/telespci.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/isdn/hisax/w6692.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/isdn/hysdn/hycapi.c+28−28

This diff is large: its 95 lines aren’t shown here.

drivers/isdn/i4l/Kconfig+0−7

This diff is large: its 15 lines aren’t shown here.

drivers/macintosh/Kconfig+5−2

This diff is large: its 21 lines aren’t shown here.

drivers/macintosh/adb.c+6−4

This diff is large: its 20 lines aren’t shown here.

drivers/macintosh/mac_hid.c+196−70

This diff is large: its 298 lines aren’t shown here.

drivers/macintosh/therm_adt746x.c+25−11

This diff is large: its 96 lines aren’t shown here.

drivers/macintosh/therm_pm72.c+4−4

This diff is large: its 23 lines aren’t shown here.

drivers/macintosh/therm_windtunnel.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/macintosh/via-cuda.c+41−33

This diff is large: its 137 lines aren’t shown here.

drivers/macintosh/via-pmu-backlight.c+4−4

This diff is large: its 18 lines aren’t shown here.

drivers/macintosh/via-pmu.c+4−4

This diff is large: its 22 lines aren’t shown here.

drivers/macintosh/windfarm_core.c+3−3

This diff is large: its 13 lines aren’t shown here.

drivers/macintosh/windfarm_cpufreq_clamp.c+3−3

This diff is large: its 13 lines aren’t shown here.

drivers/macintosh/windfarm_lm75_sensor.c+3−3

This diff is large: its 13 lines aren’t shown here.

drivers/macintosh/windfarm_max6690_sensor.c+3−3

This diff is large: its 13 lines aren’t shown here.

drivers/macintosh/windfarm_pm112.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/macintosh/windfarm_pm121.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/macintosh/windfarm_pm81.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/macintosh/windfarm_pm91.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/macintosh/windfarm_smu_sensors.c+3−3

This diff is large: its 13 lines aren’t shown here.

drivers/md/linear.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/md/multipath.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/md/raid0.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/md/raid1.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/md/raid10.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/md/raid5.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/IR/Makefile+1−1

This diff is large: its 7 lines aren’t shown here.

drivers/media/IR/ir-functions.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/IR/ir-keymaps.c+99−0

This diff is large: its 103 lines aren’t shown here.

drivers/media/IR/ir-keytable.c+40−21

This diff is large: its 155 lines aren’t shown here.

drivers/media/IR/ir-sysfs.c+211−0

This diff is large: its 212 lines aren’t shown here.

drivers/media/common/saa7146_fops.c+6−5

This diff is large: its 21 lines aren’t shown here.

drivers/media/common/tuners/tuner-types.c+21−0

This diff is large: its 35 lines aren’t shown here.

drivers/media/common/tuners/tuner-xc2028.c+62−17

This diff is large: its 111 lines aren’t shown here.

drivers/media/dvb/Kconfig+4−0

This diff is large: its 11 lines aren’t shown here.

drivers/media/dvb/Makefile+2−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/dvb/bt8xx/bt878.c+4−17

This diff is large: its 48 lines aren’t shown here.

drivers/media/dvb/bt8xx/dst.c+8−4

This diff is large: its 26 lines aren’t shown here.

drivers/media/dvb/dm1105/Kconfig+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/media/dvb/dm1105/dm1105.c+265−240

This diff is large: its 857 lines aren’t shown here.

drivers/media/dvb/dvb-core/dvb_frontend.c+5−7

This diff is large: its 47 lines aren’t shown here.

drivers/media/dvb/dvb-core/dvb_net.c+6−9

This diff is large: its 52 lines aren’t shown here.

drivers/media/dvb/dvb-core/dvb_ringbuffer.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/media/dvb/dvb-usb/Kconfig+8−0

This diff is large: its 12 lines aren’t shown here.

drivers/media/dvb/dvb-usb/Makefile+3−0

This diff is large: its 10 lines aren’t shown here.

drivers/media/dvb/dvb-usb/af9015.c+179−172

This diff is large: its 434 lines aren’t shown here.

drivers/media/dvb/dvb-usb/af9015.h+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/media/dvb/dvb-usb/az6027.c+1151−0

This diff is large: its 1152 lines aren’t shown here.

drivers/media/dvb/dvb-usb/az6027.h+14−0

This diff is large: its 15 lines aren’t shown here.

drivers/media/dvb/dvb-usb/cxusb.c+3−0

This diff is large: its 10 lines aren’t shown here.

drivers/media/dvb/dvb-usb/dib0700.h+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/media/dvb/dvb-usb/dib0700_core.c+196−1

This diff is large: its 211 lines aren’t shown here.

drivers/media/dvb/dvb-usb/dib0700_devices.c+11−149

This diff is large: its 182 lines aren’t shown here.

drivers/media/dvb/dvb-usb/dvb-usb-ids.h+8−1

This diff is large: its 42 lines aren’t shown here.

drivers/media/dvb/dvb-usb/dvb-usb-init.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/dvb/dvb-usb/dvb-usb-remote.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/media/dvb/dvb-usb/dw2102.c+85−10

This diff is large: its 184 lines aren’t shown here.

drivers/media/dvb/dvb-usb/friio-fe.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/dvb/dvb-usb/m920x.c+141−0

This diff is large: its 207 lines aren’t shown here.

drivers/media/dvb/dvb-usb/m920x.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/dvb/dvb-usb/opera1.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/dvb/firewire/firedtv-1394.c+12−7

This diff is large: its 36 lines aren’t shown here.

drivers/media/dvb/firewire/firedtv-avc.c+277−237

This diff is large: its 963 lines aren’t shown here.

drivers/media/dvb/firewire/firedtv-dvb.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/media/dvb/firewire/firedtv-fw.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/dvb/firewire/firedtv.h+3−3

This diff is large: its 20 lines aren’t shown here.

drivers/media/dvb/frontends/af9013.h+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/media/dvb/frontends/atbm8830.c+16−0

This diff is large: its 30 lines aren’t shown here.

drivers/media/dvb/frontends/dib0090.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/dvb/frontends/dib8000.c+2−0

This diff is large: its 9 lines aren’t shown here.

drivers/media/dvb/frontends/dibx000_common.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/dvb/frontends/lnbp21.c+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/media/dvb/frontends/si21xx.c+16−22

This diff is large: its 91 lines aren’t shown here.

drivers/media/dvb/frontends/stv0900.h+2−0

This diff is large: its 9 lines aren’t shown here.

drivers/media/dvb/frontends/stv0900_core.c+98−11

This diff is large: its 205 lines aren’t shown here.

drivers/media/dvb/frontends/stv0900_priv.h+11−0

This diff is large: its 37 lines aren’t shown here.

drivers/media/dvb/frontends/stv0900_reg.h+6−0

This diff is large: its 36 lines aren’t shown here.

drivers/media/dvb/frontends/stv0900_sw.c+44−10

This diff is large: its 124 lines aren’t shown here.

drivers/media/dvb/frontends/stv090x.c+365−121

This diff is large: its 1180 lines aren’t shown here.

drivers/media/dvb/frontends/stv090x.h+11−2

This diff is large: its 32 lines aren’t shown here.

drivers/media/dvb/frontends/stv090x_priv.h+13−4

This diff is large: its 37 lines aren’t shown here.

drivers/media/dvb/frontends/stv6110x.c+120−68

This diff is large: its 342 lines aren’t shown here.

drivers/media/dvb/frontends/stv6110x.h+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/media/dvb/frontends/stv6110x_priv.h+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/media/dvb/frontends/tda665x.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/dvb/frontends/tda8261.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/dvb/frontends/zl10036.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/dvb/frontends/zl10039.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/media/dvb/mantis/mantis_hif.c+0−2

This diff is large: its 9 lines aren’t shown here.

drivers/media/dvb/mantis/mantis_input.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/dvb/mantis/mantis_pci.c+0−5

This diff is large: its 12 lines aren’t shown here.

drivers/media/dvb/ngene/Kconfig+9−0

This diff is large: its 10 lines aren’t shown here.

drivers/media/dvb/ngene/Makefile+11−0

This diff is large: its 12 lines aren’t shown here.

drivers/media/dvb/ngene/ngene-core.c+2024−0

This diff is large: its 2025 lines aren’t shown here.

drivers/media/dvb/ngene/ngene.h+859−0

This diff is large: its 860 lines aren’t shown here.

drivers/media/dvb/siano/sms-cards.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/media/dvb/siano/smscoreapi.c+5−2

This diff is large: its 21 lines aren’t shown here.

drivers/media/dvb/siano/smscoreapi.h+76−1

This diff is large: its 98 lines aren’t shown here.

drivers/media/dvb/siano/smsdvb.c+291−27

This diff is large: its 452 lines aren’t shown here.

drivers/media/dvb/siano/smsir.c+3−3

This diff is large: its 13 lines aren’t shown here.

drivers/media/dvb/ttpci/av7110_ir.c+8−6

This diff is large: its 36 lines aren’t shown here.

drivers/media/dvb/ttpci/budget-ci.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/dvb/ttpci/budget.c+2−2

This diff is large: its 19 lines aren’t shown here.

drivers/media/radio/Kconfig+23−0

This diff is large: its 35 lines aren’t shown here.

drivers/media/radio/Makefile+2−0

This diff is large: its 9 lines aren’t shown here.

drivers/media/radio/radio-timb.c+244−0

This diff is large: its 245 lines aren’t shown here.

drivers/media/radio/saa7706h.c+451−0

This diff is large: its 452 lines aren’t shown here.

drivers/media/radio/si470x/radio-si470x-common.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/radio/si470x/radio-si470x-usb.c+5−3

This diff is large: its 32 lines aren’t shown here.

drivers/media/video/Kconfig+34−2

This diff is large: its 101 lines aren’t shown here.

drivers/media/video/Makefile+2−0

This diff is large: its 16 lines aren’t shown here.

drivers/media/video/bt819.c+5−5

This diff is large: its 45 lines aren’t shown here.

drivers/media/video/bt8xx/bttv-driver.c+7−2

This diff is large: its 37 lines aren’t shown here.

drivers/media/video/bt8xx/bttv-input.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/media/video/cafe_ccic.c+3−3

This diff is large: its 34 lines aren’t shown here.

drivers/media/video/cpia.c+0−3

This diff is large: its 10 lines aren’t shown here.

drivers/media/video/cx18/Kconfig+11−0

This diff is large: its 15 lines aren’t shown here.

drivers/media/video/cx18/Makefile+2−0

This diff is large: its 11 lines aren’t shown here.

drivers/media/video/cx18/cx18-alsa-main.c+293−0

This diff is large: its 294 lines aren’t shown here.

drivers/media/video/cx18/cx18-alsa-mixer.c+175−0

This diff is large: its 176 lines aren’t shown here.

drivers/media/video/cx18/cx18-alsa-mixer.h+23−0

This diff is large: its 24 lines aren’t shown here.

drivers/media/video/cx18/cx18-alsa-pcm.c+354−0

This diff is large: its 355 lines aren’t shown here.

drivers/media/video/cx18/cx18-alsa-pcm.h+27−0

This diff is large: its 28 lines aren’t shown here.

drivers/media/video/cx18/cx18-alsa.h+75−0

This diff is large: its 76 lines aren’t shown here.

drivers/media/video/cx18/cx18-cards.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/video/cx18/cx18-driver.c+60−10

This diff is large: its 151 lines aren’t shown here.

drivers/media/video/cx18/cx18-driver.h+35−15

This diff is large: its 104 lines aren’t shown here.

drivers/media/video/cx18/cx18-dvb.c+14−8

This diff is large: its 63 lines aren’t shown here.

drivers/media/video/cx18/cx18-fileops.c+123−82

This diff is large: its 305 lines aren’t shown here.

drivers/media/video/cx18/cx18-fileops.h+3−0

This diff is large: its 7 lines aren’t shown here.

drivers/media/video/cx18/cx18-ioctl.c+134−1

This diff is large: its 145 lines aren’t shown here.

drivers/media/video/cx18/cx18-mailbox.c+42−3

This diff is large: its 68 lines aren’t shown here.

drivers/media/video/cx18/cx18-queue.c+3−0

This diff is large: its 10 lines aren’t shown here.

drivers/media/video/cx18/cx18-streams.c+61−11

This diff is large: its 146 lines aren’t shown here.

drivers/media/video/cx18/cx18-streams.h+10−0

This diff is large: its 17 lines aren’t shown here.

drivers/media/video/cx18/cx18-version.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/video/cx18/cx23418.h+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/media/video/cx231xx/cx231xx-dvb.c+4−4

This diff is large: its 24 lines aren’t shown here.

drivers/media/video/cx231xx/cx231xx-input.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/video/cx23885/cx23885-417.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/media/video/cx23885/cx23885-cards.c+32−0

This diff is large: its 67 lines aren’t shown here.

drivers/media/video/cx23885/cx23885-dvb.c+8−9

This diff is large: its 38 lines aren’t shown here.

drivers/media/video/cx23885/cx23885-input.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/video/cx23885/cx23885-video.c+13−0

This diff is large: its 27 lines aren’t shown here.

drivers/media/video/cx23885/cx23885.h+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/media/video/cx25840/cx25840-core.c+41−13

This diff is large: its 90 lines aren’t shown here.

drivers/media/video/cx88/cx88-alsa.c+6−4

This diff is large: its 23 lines aren’t shown here.

drivers/media/video/cx88/cx88-cards.c+23−0

This diff is large: its 44 lines aren’t shown here.

drivers/media/video/cx88/cx88-dvb.c+214−0

This diff is large: its 228 lines aren’t shown here.

drivers/media/video/cx88/cx88-input.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/media/video/cx88/cx88-mpeg.c+3−0

This diff is large: its 10 lines aren’t shown here.

drivers/media/video/cx88/cx88.h+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/media/video/dabusb.c+2−0

This diff is large: its 9 lines aren’t shown here.

drivers/media/video/davinci/Makefile+1−0

This diff is large: its 5 lines aren’t shown here.

drivers/media/video/davinci/dm355_ccdc.c+257−153

This diff is large: its 767 lines aren’t shown here.

drivers/media/video/davinci/dm644x_ccdc.c+225−136

This diff is large: its 721 lines aren’t shown here.

drivers/media/video/davinci/isif.c+1172−0

This diff is large: its 1173 lines aren’t shown here.

drivers/media/video/davinci/isif_regs.h+269−0

This diff is large: its 270 lines aren’t shown here.

drivers/media/video/davinci/vpfe_capture.c+13−118

This diff is large: its 242 lines aren’t shown here.

drivers/media/video/davinci/vpss.c+235−54

This diff is large: its 428 lines aren’t shown here.

drivers/media/video/em28xx/em28xx-cards.c+73−7

This diff is large: its 166 lines aren’t shown here.

drivers/media/video/em28xx/em28xx-core.c+16−3

This diff is large: its 33 lines aren’t shown here.

drivers/media/video/em28xx/em28xx-dvb.c+3−0

This diff is large: its 18 lines aren’t shown here.

drivers/media/video/em28xx/em28xx-input.c+87−26

This diff is large: its 169 lines aren’t shown here.

drivers/media/video/em28xx/em28xx-reg.h+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/media/video/em28xx/em28xx-vbi.c+10−7

This diff is large: its 38 lines aren’t shown here.

drivers/media/video/em28xx/em28xx-video.c+38−20

This diff is large: its 110 lines aren’t shown here.

drivers/media/video/em28xx/em28xx.h+5−1

This diff is large: its 27 lines aren’t shown here.

drivers/media/video/et61x251/Kconfig+5−1

This diff is large: its 13 lines aren’t shown here.

drivers/media/video/gspca/Kconfig+43−3

This diff is large: its 80 lines aren’t shown here.

drivers/media/video/gspca/Makefile+8−0

This diff is large: its 42 lines aren’t shown here.

drivers/media/video/gspca/benq.c+322−0

This diff is large: its 323 lines aren’t shown here.

drivers/media/video/gspca/coarse_expo_autogain.h+116−0

This diff is large: its 117 lines aren’t shown here.

drivers/media/video/gspca/conex.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/media/video/gspca/cpia1.c+2022−0

This diff is large: its 2023 lines aren’t shown here.

drivers/media/video/gspca/etoms.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/media/video/gspca/gl860/gl860.c+5−5

This diff is large: its 45 lines aren’t shown here.

drivers/media/video/gspca/gspca.c+238−21

This diff is large: its 420 lines aren’t shown here.

drivers/media/video/gspca/gspca.h+23−7

This diff is large: its 86 lines aren’t shown here.

drivers/media/video/gspca/m5602/m5602_mt9m111.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/media/video/gspca/m5602/m5602_ov7660.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/video/gspca/m5602/m5602_ov7660.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/video/gspca/m5602/m5602_ov9650.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/video/gspca/m5602/m5602_po1030.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/video/gspca/m5602/m5602_s5k4aa.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/video/gspca/m5602/m5602_s5k83a.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/video/gspca/mars.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/video/gspca/mr97310a.c+193−33

This diff is large: its 443 lines aren’t shown here.

drivers/media/video/gspca/ov519.c+130−21

This diff is large: its 407 lines aren’t shown here.

drivers/media/video/gspca/ov534.c+117−1136

This diff is large: its 1576 lines aren’t shown here.

drivers/media/video/gspca/ov534_9.c+1477−0

This diff is large: its 1478 lines aren’t shown here.

drivers/media/video/gspca/pac207.c+24−1

This diff is large: its 53 lines aren’t shown here.

drivers/media/video/gspca/pac7302.c+188−223

This diff is large: its 851 lines aren’t shown here.

drivers/media/video/gspca/pac7311.c+118−133

This diff is large: its 509 lines aren’t shown here.

drivers/media/video/gspca/pac_common.h+4−5

This diff is large: its 16 lines aren’t shown here.

drivers/media/video/gspca/sn9c2028.c+757−0

This diff is large: its 758 lines aren’t shown here.

drivers/media/video/gspca/sn9c2028.h+51−0

This diff is large: its 52 lines aren’t shown here.

drivers/media/video/gspca/sn9c20x.c+17−16

This diff is large: its 85 lines aren’t shown here.

drivers/media/video/gspca/sonixb.c+330−121

This diff is large: its 746 lines aren’t shown here.

drivers/media/video/gspca/sonixj.c+264−77

This diff is large: its 646 lines aren’t shown here.

drivers/media/video/gspca/spca500.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/media/video/gspca/spca501.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/video/gspca/spca505.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/video/gspca/spca506.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/media/video/gspca/spca508.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/video/gspca/spca561.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/media/video/gspca/sq905c.c+44−1

This diff is large: its 79 lines aren’t shown here.

drivers/media/video/gspca/stk014.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/video/gspca/stv0680.c+13−3

This diff is large: its 60 lines aren’t shown here.

drivers/media/video/gspca/stv06xx/stv06xx.c+30−2

This diff is large: its 67 lines aren’t shown here.

drivers/media/video/gspca/sunplus.c+21−165

This diff is large: its 249 lines aren’t shown here.

drivers/media/video/gspca/t613.c+50−1

This diff is large: its 107 lines aren’t shown here.

drivers/media/video/gspca/tv8532.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/video/gspca/vc032x.c+621−73

This diff is large: its 1007 lines aren’t shown here.

drivers/media/video/gspca/zc3xx.c+352−327

This diff is large: its 1661 lines aren’t shown here.

drivers/media/video/hdpvr/hdpvr-core.c+3−2

This diff is large: its 23 lines aren’t shown here.

drivers/media/video/hdpvr/hdpvr-video.c+3−2

This diff is large: its 19 lines aren’t shown here.

drivers/media/video/hdpvr/hdpvr.h+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/media/video/hexium_gemini.c+7−2

This diff is large: its 27 lines aren’t shown here.

drivers/media/video/hexium_orion.c+4−0

This diff is large: its 11 lines aren’t shown here.

drivers/media/video/ir-kbd-i2c.c+3−2

This diff is large: its 26 lines aren’t shown here.

drivers/media/video/ivtv/ivtv-cards.c+48−0

This diff is large: its 62 lines aren’t shown here.

drivers/media/video/ivtv/ivtv-cards.h+3−1

This diff is large: its 18 lines aren’t shown here.

drivers/media/video/ivtv/ivtv-driver.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/media/video/ivtv/ivtv-firmware.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/video/ivtv/ivtv-irq.c+8−6

This diff is large: its 59 lines aren’t shown here.

drivers/media/video/ivtv/ivtv-mailbox.c+5−4

This diff is large: its 16 lines aren’t shown here.

drivers/media/video/ivtv/ivtv-mailbox.h+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/media/video/ivtv/ivtv-streams.c+5−1

This diff is large: its 16 lines aren’t shown here.

drivers/media/video/ivtv/ivtv-udma.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/media/video/mt9v022.c+8−9

This diff is large: its 28 lines aren’t shown here.

drivers/media/video/mxb.c+7−3

This diff is large: its 32 lines aren’t shown here.

drivers/media/video/ov772x.c+7−15

This diff is large: its 64 lines aren’t shown here.

drivers/media/video/pvrusb2/pvrusb2-hdw-internal.h+10−2

This diff is large: its 29 lines aren’t shown here.

drivers/media/video/pvrusb2/pvrusb2-hdw.c+46−7

This diff is large: its 136 lines aren’t shown here.

drivers/media/video/pvrusb2/pvrusb2-hdw.h+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/media/video/pxa_camera.c+0−10

This diff is large: its 19 lines aren’t shown here.

drivers/media/video/rj54n1cb0c.c+6−6

This diff is large: its 51 lines aren’t shown here.

drivers/media/video/saa7115.c+16−11

This diff is large: its 101 lines aren’t shown here.

drivers/media/video/saa7127.c+40−7

This diff is large: its 77 lines aren’t shown here.

drivers/media/video/saa7134/saa7134-cards.c+47−5

This diff is large: its 87 lines aren’t shown here.

drivers/media/video/saa7134/saa7134-input.c+4−3

This diff is large: its 28 lines aren’t shown here.

drivers/media/video/saa7134/saa7134-video.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/video/saa7134/saa7134.h+2−1

This diff is large: its 17 lines aren’t shown here.

drivers/media/video/saa7164/saa7164-api.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/video/sh_mobile_ceu_camera.c+18−0

This diff is large: its 32 lines aren’t shown here.

drivers/media/video/sn9c102/Kconfig+4−1

This diff is large: its 12 lines aren’t shown here.

drivers/media/video/sn9c102/sn9c102_devtable.h+5−1

This diff is large: its 26 lines aren’t shown here.

drivers/media/video/soc_camera.c+30−6

This diff is large: its 74 lines aren’t shown here.

drivers/media/video/soc_mediabus.c+32−16

This diff is large: its 132 lines aren’t shown here.

drivers/media/video/tlg2300/Kconfig+16−0

This diff is large: its 17 lines aren’t shown here.

drivers/media/video/tlg2300/Makefile+9−0

This diff is large: its 10 lines aren’t shown here.

drivers/media/video/tlg2300/pd-alsa.c+332−0

This diff is large: its 333 lines aren’t shown here.

drivers/media/video/tlg2300/pd-common.h+282−0

This diff is large: its 283 lines aren’t shown here.

drivers/media/video/tlg2300/pd-dvb.c+593−0

This diff is large: its 594 lines aren’t shown here.

drivers/media/video/tlg2300/pd-main.c+539−0

This diff is large: its 540 lines aren’t shown here.

drivers/media/video/tlg2300/pd-radio.c+420−0

This diff is large: its 421 lines aren’t shown here.

drivers/media/video/tlg2300/pd-video.c+1667−0

This diff is large: its 1668 lines aren’t shown here.

drivers/media/video/tlg2300/vendorcmds.h+243−0

This diff is large: its 244 lines aren’t shown here.

drivers/media/video/tuner-core.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/media/video/tveeprom.c+1−4

This diff is large: its 12 lines aren’t shown here.

drivers/media/video/tvp7002.c+1187−0

This diff is large: its 1188 lines aren’t shown here.

drivers/media/video/tvp7002_reg.h+150−0

This diff is large: its 151 lines aren’t shown here.

drivers/media/video/tw9910.c+4−4

This diff is large: its 15 lines aren’t shown here.

drivers/media/video/usbvision/usbvision-video.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/video/uvc/uvc_ctrl.c+149−93

This diff is large: its 398 lines aren’t shown here.

drivers/media/video/uvc/uvc_driver.c+55−19

This diff is large: its 124 lines aren’t shown here.

drivers/media/video/uvc/uvc_queue.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/media/video/uvc/uvc_v4l2.c+3−1

This diff is large: its 18 lines aren’t shown here.

drivers/media/video/uvc/uvc_video.c+10−0

This diff is large: its 24 lines aren’t shown here.

drivers/media/video/uvc/uvcvideo.h+7−12

This diff is large: its 54 lines aren’t shown here.

drivers/media/video/v4l2-compat-ioctl32.c+4−1

This diff is large: its 19 lines aren’t shown here.

drivers/media/video/videobuf-dma-sg.c+2−0

This diff is large: its 9 lines aren’t shown here.

drivers/media/video/videobuf-vmalloc.c+2−0

This diff is large: its 9 lines aren’t shown here.

drivers/media/video/vivi.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/video/zc0301/Kconfig+5−1

This diff is large: its 13 lines aren’t shown here.

drivers/media/video/zoran/zoran_device.c+4−2

This diff is large: its 27 lines aren’t shown here.

drivers/media/video/zoran/zoran_driver.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/media/video/zr364xx.c+35−2

This diff is large: its 72 lines aren’t shown here.

drivers/memstick/core/mspro_block.c+2−3

This diff is large: its 12 lines aren’t shown here.

drivers/message/fusion/mptbase.c+3−2

This diff is large: its 19 lines aren’t shown here.

drivers/message/fusion/mptbase.h+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/message/fusion/mptctl.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/message/fusion/mptfc.c+11−6

This diff is large: its 41 lines aren’t shown here.

drivers/message/fusion/mptsas.c+206−5

This diff is large: its 246 lines aren’t shown here.

drivers/message/fusion/mptscsih.c+7−2

This diff is large: its 17 lines aren’t shown here.

drivers/message/i2o/i2o_block.c+2−3

This diff is large: its 12 lines aren’t shown here.

drivers/message/i2o/i2o_proc.c+3−8

This diff is large: its 25 lines aren’t shown here.

drivers/mfd/Kconfig+11−1

This diff is large: its 26 lines aren’t shown here.

drivers/mfd/Makefile+2−1

This diff is large: its 8 lines aren’t shown here.

drivers/mfd/timberdale.c+727−0

This diff is large: its 728 lines aren’t shown here.

drivers/mfd/timberdale.h+130−0

This diff is large: its 131 lines aren’t shown here.

drivers/mfd/twl-core.c+15−3

This diff is large: its 32 lines aren’t shown here.

drivers/misc/iwmc3200top/fw-download.c+26−24

This diff is large: its 158 lines aren’t shown here.

drivers/misc/iwmc3200top/iwmc3200top.h+1−3

This diff is large: its 11 lines aren’t shown here.

drivers/misc/iwmc3200top/log.h+22−9

This diff is large: its 61 lines aren’t shown here.

drivers/misc/iwmc3200top/main.c+24−35

This diff is large: its 145 lines aren’t shown here.

drivers/mmc/card/queue.c+4−6

This diff is large: its 25 lines aren’t shown here.

drivers/mmc/host/au1xmmc.c+8−4

This diff is large: its 27 lines aren’t shown here.

drivers/mmc/host/mmci.c+27−14

This diff is large: its 127 lines aren’t shown here.

drivers/mmc/host/omap_hsmmc.c+384−16

This diff is large: its 550 lines aren’t shown here.

drivers/mtd/maps/Kconfig+0−15

This diff is large: its 29 lines aren’t shown here.

drivers/mtd/maps/Makefile+0−2

This diff is large: its 16 lines aren’t shown here.

drivers/mtd/maps/alchemy-flash.c+0−166

This diff is large: its 167 lines aren’t shown here.

drivers/mtd/maps/omap_nor.c+0−188

This diff is large: its 189 lines aren’t shown here.

drivers/mtd/nand/Kconfig+2−2

This diff is large: its 13 lines aren’t shown here.

drivers/mtd/nand/au1550nd.c+3−1

This diff is large: its 18 lines aren’t shown here.

drivers/mtd/nand/omap2.c+4−31

This diff is large: its 84 lines aren’t shown here.

drivers/mtd/nand/sh_flctl.c+49−20

This diff is large: its 211 lines aren’t shown here.

drivers/net/3c501.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/3c505.c+6−7

This diff is large: its 34 lines aren’t shown here.

drivers/net/3c509.c+6−4

This diff is large: its 27 lines aren’t shown here.

drivers/net/3c515.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/3c523.c+6−7

This diff is large: its 34 lines aren’t shown here.

drivers/net/3c527.c+7−10

This diff is large: its 40 lines aren’t shown here.

drivers/net/3c59x.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/7990.c+2−4

This diff is large: its 22 lines aren’t shown here.

drivers/net/8139cp.c+34−47

This diff is large: its 240 lines aren’t shown here.

drivers/net/8139too.c+85−111

This diff is large: its 446 lines aren’t shown here.

drivers/net/82596.c+9−6

This diff is large: its 47 lines aren’t shown here.

drivers/net/Kconfig+66−18

This diff is large: its 154 lines aren’t shown here.

drivers/net/Makefile+5−0

This diff is large: its 40 lines aren’t shown here.

drivers/net/a2065.c+2−4

This diff is large: its 22 lines aren’t shown here.

drivers/net/acenic.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/amd8111e.c+9−12

This diff is large: its 66 lines aren’t shown here.

drivers/net/amd8111e.h+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/appletalk/ltpc.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/arcnet/com20020-pci.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ariadne.c+1−3

This diff is large: its 19 lines aren’t shown here.

drivers/net/arm/am79c961a.c+6−6

This diff is large: its 37 lines aren’t shown here.

drivers/net/arm/at91_ether.c+3−6

This diff is large: its 26 lines aren’t shown here.

drivers/net/arm/ep93xx_eth.c+68−72

This diff is large: its 251 lines aren’t shown here.

drivers/net/arm/ether3.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/arm/ixp4xx_eth.c+8−5

This diff is large: its 31 lines aren’t shown here.

drivers/net/arm/ks8695net.c+10−13

This diff is large: its 61 lines aren’t shown here.

drivers/net/arm/w90p910_ether.c+4−4

This diff is large: its 15 lines aren’t shown here.

drivers/net/at1700.c+3−5

This diff is large: its 25 lines aren’t shown here.

drivers/net/atarilance.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/atl1c/atl1c.h+9−2

This diff is large: its 25 lines aren’t shown here.

drivers/net/atl1c/atl1c_ethtool.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/atl1c/atl1c_hw.c+71−12

This diff is large: its 130 lines aren’t shown here.

drivers/net/atl1c/atl1c_hw.h+5−0

This diff is large: its 26 lines aren’t shown here.

drivers/net/atl1c/atl1c_main.c+109−17

This diff is large: its 203 lines aren’t shown here.

drivers/net/atl1e/atl1e_hw.c+11−12

This diff is large: its 71 lines aren’t shown here.

drivers/net/atl1e/atl1e_main.c+70−90

This diff is large: its 477 lines aren’t shown here.

drivers/net/atl1e/atl1e_param.c+20−15

This diff is large: its 107 lines aren’t shown here.

drivers/net/atlx/atl1.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/atlx/atl2.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/atlx/atlx.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/atp.c+4−5

This diff is large: its 30 lines aren’t shown here.

drivers/net/au1000_eth.c+225−223

This diff is large: its 644 lines aren’t shown here.

drivers/net/au1000_eth.h+9−0

This diff is large: its 16 lines aren’t shown here.

drivers/net/b44.c+46−48

This diff is large: its 263 lines aren’t shown here.

drivers/net/bcm63xx_enet.c+6−9

This diff is large: its 39 lines aren’t shown here.

drivers/net/benet/Kconfig+2−2

This diff is large: its 9 lines aren’t shown here.

drivers/net/benet/be.h+11−8

This diff is large: its 82 lines aren’t shown here.

drivers/net/benet/be_cmds.c+93−25

This diff is large: its 239 lines aren’t shown here.

drivers/net/benet/be_cmds.h+24−5

This diff is large: its 77 lines aren’t shown here.

drivers/net/benet/be_ethtool.c+61−4

This diff is large: its 107 lines aren’t shown here.

drivers/net/benet/be_hw.h+84−37

This diff is large: its 161 lines aren’t shown here.

drivers/net/benet/be_main.c+358−182

This diff is large: its 874 lines aren’t shown here.

drivers/net/bfin_mac.c+3−5

This diff is large: its 28 lines aren’t shown here.

drivers/net/bmac.c+6−7

This diff is large: its 54 lines aren’t shown here.

drivers/net/bnx2.c+208−202

This diff is large: its 853 lines aren’t shown here.

drivers/net/bnx2.h+2−1

This diff is large: its 17 lines aren’t shown here.

drivers/net/bnx2x.h+31−22

This diff is large: its 93 lines aren’t shown here.

drivers/net/bnx2x_fw_defs.h+6−1

This diff is large: its 20 lines aren’t shown here.

drivers/net/bnx2x_hsi.h+6−4

This diff is large: its 30 lines aren’t shown here.

drivers/net/bnx2x_init_ops.h+9−4

This diff is large: its 29 lines aren’t shown here.

drivers/net/bnx2x_link.c+6−15

This diff is large: its 42 lines aren’t shown here.

drivers/net/bnx2x_main.c+141−143

This diff is large: its 766 lines aren’t shown here.

drivers/net/bonding/bond_main.c+20−7

This diff is large: its 86 lines aren’t shown here.

drivers/net/bonding/bonding.h+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/can/at91_can.c+4−0

This diff is large: its 18 lines aren’t shown here.

drivers/net/can/bfin_can.c+4−0

This diff is large: its 18 lines aren’t shown here.

drivers/net/can/dev.c+8−0

This diff is large: its 43 lines aren’t shown here.

drivers/net/can/mcp251x.c+208−218

This diff is large: its 748 lines aren’t shown here.

drivers/net/can/mscan/Kconfig+4−3

This diff is large: its 17 lines aren’t shown here.

drivers/net/can/mscan/mpc5xxx_can.c+205−43

This diff is large: its 345 lines aren’t shown here.

drivers/net/can/mscan/mscan.c+45−13

This diff is large: its 124 lines aren’t shown here.

drivers/net/can/mscan/mscan.h+46−40

This diff is large: its 168 lines aren’t shown here.

drivers/net/can/sja1000/Kconfig+12−0

This diff is large: its 17 lines aren’t shown here.

drivers/net/can/sja1000/Makefile+1−0

This diff is large: its 7 lines aren’t shown here.

drivers/net/can/sja1000/ems_pci.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/can/sja1000/kvaser_pci.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/can/sja1000/plx_pci.c+472−0

This diff is large: its 473 lines aren’t shown here.

drivers/net/can/sja1000/sja1000.c+25−2

This diff is large: its 62 lines aren’t shown here.

drivers/net/can/ti_hecc.c+68−5

This diff is large: its 186 lines aren’t shown here.

drivers/net/can/usb/Kconfig+1−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/can/usb/ems_usb.c+4−2

This diff is large: its 20 lines aren’t shown here.

drivers/net/can/vcan.c+9−3

This diff is large: its 47 lines aren’t shown here.

drivers/net/cassini.c+188−249

This diff is large: its 914 lines aren’t shown here.

drivers/net/chelsio/common.h+6−38

This diff is large: its 76 lines aren’t shown here.

drivers/net/chelsio/cxgb2.c+9−11

This diff is large: its 80 lines aren’t shown here.

drivers/net/chelsio/espi.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/chelsio/pm3393.c+12−10

This diff is large: its 46 lines aren’t shown here.

drivers/net/chelsio/sge.c+6−6

This diff is large: its 51 lines aren’t shown here.

drivers/net/chelsio/subr.c+18−16

This diff is large: its 128 lines aren’t shown here.

drivers/net/chelsio/vsc7326.c+12−12

This diff is large: its 90 lines aren’t shown here.

drivers/net/cnic.c+107−99

This diff is large: its 587 lines aren’t shown here.

drivers/net/cnic.h+8−5

This diff is large: its 33 lines aren’t shown here.

drivers/net/cnic_defs.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/cnic_if.h+3−3

This diff is large: its 19 lines aren’t shown here.

drivers/net/cpmac.c+10−4

This diff is large: its 44 lines aren’t shown here.

drivers/net/cris/eth_v10.c+3−5

This diff is large: its 33 lines aren’t shown here.

drivers/net/cs89x0.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/cxgb3/common.h+1−27

This diff is large: its 42 lines aren’t shown here.

drivers/net/cxgb3/cxgb3_main.c+3−7

This diff is large: its 41 lines aren’t shown here.

drivers/net/cxgb3/cxgb3_offload.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/cxgb3/sge.c+12−4

This diff is large: its 46 lines aren’t shown here.

drivers/net/cxgb3/t3_hw.c+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/net/cxgb3/xgmac.c+11−7

This diff is large: its 48 lines aren’t shown here.

drivers/net/davinci_emac.c+41−26

This diff is large: its 224 lines aren’t shown here.

drivers/net/de620.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/declance.c+2−4

This diff is large: its 22 lines aren’t shown here.

drivers/net/defxx.c+10−14

This diff is large: its 57 lines aren’t shown here.

drivers/net/depca.c+2−3

This diff is large: its 20 lines aren’t shown here.

drivers/net/dl2k.c+3−6

This diff is large: its 23 lines aren’t shown here.

drivers/net/dl2k.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/dm9000.c+2−3

This diff is large: its 19 lines aren’t shown here.

drivers/net/e100.c+11−7

This diff is large: its 50 lines aren’t shown here.

drivers/net/e1000/e1000.h+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/net/e1000/e1000_ethtool.c+18−1

This diff is large: its 33 lines aren’t shown here.

drivers/net/e1000/e1000_main.c+23−23

This diff is large: its 99 lines aren’t shown here.

drivers/net/e1000e/82571.c+38−30

This diff is large: its 115 lines aren’t shown here.

drivers/net/e1000e/defines.h+2−0

This diff is large: its 9 lines aren’t shown here.

drivers/net/e1000e/e1000.h+14−5

This diff is large: its 54 lines aren’t shown here.

drivers/net/e1000e/es2lan.c+31−1

This diff is large: its 66 lines aren’t shown here.

drivers/net/e1000e/ethtool.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/e1000e/hw.h+10−2

This diff is large: its 49 lines aren’t shown here.

drivers/net/e1000e/ich8lan.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/net/e1000e/lib.c+125−105

This diff is large: its 294 lines aren’t shown here.

drivers/net/e1000e/netdev.c+15−30

This diff is large: its 110 lines aren’t shown here.

drivers/net/eepro.c+10−11

This diff is large: its 58 lines aren’t shown here.

drivers/net/eexpress.c+9−13

This diff is large: its 51 lines aren’t shown here.

drivers/net/ehea/ehea_main.c+4−5

This diff is large: its 36 lines aren’t shown here.

drivers/net/enc28j60.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/enic/enic.h+4−1

This diff is large: its 22 lines aren’t shown here.

drivers/net/enic/enic_main.c+138−70

This diff is large: its 371 lines aren’t shown here.

drivers/net/enic/enic_res.c+9−7

This diff is large: its 55 lines aren’t shown here.

drivers/net/enic/vnic_dev.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/enic/vnic_enet.h+5−0

This diff is large: its 19 lines aren’t shown here.

drivers/net/enic/vnic_intr.c+7−1

This diff is large: its 20 lines aren’t shown here.

drivers/net/enic/vnic_intr.h+3−0

This diff is large: its 17 lines aren’t shown here.

drivers/net/enic/vnic_nic.h+6−6

This diff is large: its 19 lines aren’t shown here.

drivers/net/epic100.c+4−5

This diff is large: its 34 lines aren’t shown here.

drivers/net/eth16i.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethoc.c+7−7

This diff is large: its 56 lines aren’t shown here.

drivers/net/ewrk3.c+2−3

This diff is large: its 20 lines aren’t shown here.

drivers/net/fealnx.c+3−5

This diff is large: its 30 lines aren’t shown here.

drivers/net/fec.c+52−32

This diff is large: its 140 lines aren’t shown here.

drivers/net/fec_mpc52xx.c+1−4

This diff is large: its 21 lines aren’t shown here.

drivers/net/forcedeth.c+3−5

This diff is large: its 36 lines aren’t shown here.

drivers/net/fs_enet/Kconfig+7−3

This diff is large: its 31 lines aren’t shown here.

drivers/net/fs_enet/fs_enet-main.c+69−24

This diff is large: its 181 lines aren’t shown here.

drivers/net/fs_enet/fs_enet.h+48−1

This diff is large: its 58 lines aren’t shown here.

drivers/net/fs_enet/mac-fcc.c+5−4

This diff is large: its 30 lines aren’t shown here.

drivers/net/fs_enet/mac-fec.c+38−24

This diff is large: its 216 lines aren’t shown here.

drivers/net/fs_enet/mac-scc.c+6−7

This diff is large: its 41 lines aren’t shown here.

drivers/net/fs_enet/mii-fec.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/gianfar.c+2−2

This diff is large: its 14 lines aren’t shown here.

drivers/net/greth.c+1634−0

This diff is large: its 1635 lines aren’t shown here.

drivers/net/greth.h+143−0

This diff is large: its 144 lines aren’t shown here.

drivers/net/hamachi.c+7−6

This diff is large: its 33 lines aren’t shown here.

drivers/net/hp100.c+7−6

This diff is large: its 46 lines aren’t shown here.

drivers/net/ibm_newemac/core.c+4−4

This diff is large: its 26 lines aren’t shown here.

drivers/net/ibmlana.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ibmveth.c+4−4

This diff is large: its 29 lines aren’t shown here.

drivers/net/igb/e1000_82575.c+46−19

This diff is large: its 97 lines aren’t shown here.

drivers/net/igb/e1000_82575.h+5−0

This diff is large: its 19 lines aren’t shown here.

drivers/net/igb/e1000_defines.h+1−6

This diff is large: its 21 lines aren’t shown here.

drivers/net/igb/e1000_hw.h+0−7

This diff is large: its 20 lines aren’t shown here.

drivers/net/igb/e1000_mac.c+0−70

This diff is large: its 77 lines aren’t shown here.

drivers/net/igb/e1000_mac.h+0−2

This diff is large: its 9 lines aren’t shown here.

drivers/net/igb/e1000_phy.c+35−0

This diff is large: its 42 lines aren’t shown here.

drivers/net/igb/e1000_phy.h+2−0

This diff is large: its 9 lines aren’t shown here.

drivers/net/igb/e1000_regs.h+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/net/igb/igb.h+10−6

This diff is large: its 80 lines aren’t shown here.

drivers/net/igb/igb_ethtool.c+63−30

This diff is large: its 218 lines aren’t shown here.

drivers/net/igb/igb_main.c+276−138

This diff is large: its 961 lines aren’t shown here.

drivers/net/igbvf/netdev.c+9−22

This diff is large: its 66 lines aren’t shown here.

drivers/net/ioc3-eth.c+5−6

This diff is large: its 42 lines aren’t shown here.

drivers/net/ipg.c+5−8

This diff is large: its 44 lines aren’t shown here.

drivers/net/irda/Kconfig+10−0

This diff is large: its 17 lines aren’t shown here.

drivers/net/irda/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/net/irda/au1k_ir.c+5−9

This diff is large: its 48 lines aren’t shown here.

drivers/net/irda/donauboe.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/irda/sh_sir.c+823−0

This diff is large: its 824 lines aren’t shown here.

drivers/net/irda/via-ircc.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/irda/vlsi_ir.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/isa-skeleton.c+0−718

This diff is large: its 719 lines aren’t shown here.

drivers/net/iseries_veth.c+3−5

This diff is large: its 30 lines aren’t shown here.

drivers/net/ixgb/ixgb.h+3−8

This diff is large: its 23 lines aren’t shown here.

drivers/net/ixgb/ixgb_main.c+55−49

This diff is large: its 241 lines aren’t shown here.

drivers/net/ixgbe/Makefile+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/net/ixgbe/ixgbe.h+43−11

This diff is large: its 125 lines aren’t shown here.

drivers/net/ixgbe/ixgbe_82599.c+157−76

This diff is large: its 362 lines aren’t shown here.

drivers/net/ixgbe/ixgbe_common.c+5−14

This diff is large: its 57 lines aren’t shown here.

drivers/net/ixgbe/ixgbe_common.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ixgbe/ixgbe_ethtool.c+157−38

This diff is large: its 352 lines aren’t shown here.

drivers/net/ixgbe/ixgbe_fcoe.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/ixgbe/ixgbe_main.c+529−147

This diff is large: its 1521 lines aren’t shown here.

drivers/net/ixgbe/ixgbe_mbx.c+479−0

This diff is large: its 480 lines aren’t shown here.

drivers/net/ixgbe/ixgbe_mbx.h+96−0

This diff is large: its 97 lines aren’t shown here.

drivers/net/ixgbe/ixgbe_sriov.c+362−0

This diff is large: its 363 lines aren’t shown here.

drivers/net/ixgbe/ixgbe_sriov.h+47−0

This diff is large: its 48 lines aren’t shown here.

drivers/net/ixgbe/ixgbe_type.h+64−2

This diff is large: its 157 lines aren’t shown here.

drivers/net/ixgbevf/Makefile+38−0

This diff is large: its 39 lines aren’t shown here.

drivers/net/ixgbevf/defines.h+292−0

This diff is large: its 293 lines aren’t shown here.

drivers/net/ixgbevf/ethtool.c+716−0

This diff is large: its 717 lines aren’t shown here.

drivers/net/ixgbevf/ixgbevf.h+318−0

This diff is large: its 319 lines aren’t shown here.

drivers/net/ixgbevf/ixgbevf_main.c+3578−0

This diff is large: its 3579 lines aren’t shown here.

drivers/net/ixgbevf/mbx.c+341−0

This diff is large: its 342 lines aren’t shown here.

drivers/net/ixgbevf/mbx.h+100−0

This diff is large: its 101 lines aren’t shown here.

drivers/net/ixgbevf/regs.h+85−0

This diff is large: its 86 lines aren’t shown here.

drivers/net/ixgbevf/vf.c+387−0

This diff is large: its 388 lines aren’t shown here.

drivers/net/ixgbevf/vf.h+168−0

This diff is large: its 169 lines aren’t shown here.

drivers/net/jme.c+29−33

This diff is large: its 209 lines aren’t shown here.

drivers/net/jme.h+7−34

This diff is large: its 51 lines aren’t shown here.

drivers/net/korina.c+4−6

This diff is large: its 36 lines aren’t shown here.

drivers/net/ks8851.c+3−4

This diff is large: its 18 lines aren’t shown here.

drivers/net/ks8851_mll.c+4−3

This diff is large: its 15 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.