History

Merge branches 'pm-cpufreq-fixes' and 'pm-sleep-fixes'

* pm-cpufreq-fixes: cpufreq: intel_pstate: Always set max P-state in performance mode cpufreq: intel_pstate: Set P-state upfront in performance mode * pm-sleep-fixes: PM / suspend: Fix missing KERN_CONT for suspend message

Rafael J. Wysocki committed 10 years ago

Commit 8b2ada22 parents 2f1d407 1adb46910915 files · +621093 −350043Browse files

Unified · Split

3516 files
  1. .gitattributes +2 −0
  2. .mailmap +6 −0
  3. CREDITS +22 −5
  4. Documentation/00-INDEX +2 −1
  5. Documentation/80211/cfg80211.rst +345 −0
  6. Documentation/80211/conf.py +5 −0
  7. Documentation/80211/index.rst +17 −0
  8. Documentation/80211/introduction.rst +17 −0
  9. Documentation/80211/mac80211-advanced.rst +295 −0
  10. Documentation/80211/mac80211.rst +216 −0
  11. Documentation/ABI/testing/sysfs-bus-rbd +26 −3
  12. Documentation/ABI/testing/sysfs-class-cxl +5 −2
  13. Documentation/ABI/testing/sysfs-class-led +2 −1
  14. Documentation/ABI/testing/sysfs-class-led-trigger-oneshot +36 −0
  15. Documentation/ABI/testing/sysfs-class-led-trigger-usbport +12 −0
  16. Documentation/ABI/testing/sysfs-class-mic.txt +1 −1
  17. Documentation/ABI/testing/sysfs-class-power +4 −4
  18. Documentation/ABI/testing/sysfs-driver-hid-logitech-lg4ff +15 −0
  19. Documentation/ABI/testing/sysfs-driver-wacom +5 −0
  20. Documentation/ABI/testing/sysfs-i2c-bmp085 +0 −31
  21. Documentation/ABI/testing/sysfs-kernel-irq +53 −0
  22. Documentation/Changes +169 −95
  23. Documentation/CodeOfConflict +1 −1
  24. Documentation/CodingStyle +260 −144
  25. Documentation/DMA-API-HOWTO.txt +3 −5
  26. Documentation/DMA-API.txt +17 −5
  27. Documentation/DMA-attributes.txt +17 −0
  28. Documentation/DocBook/80211.tmpl +0 −584
  29. Documentation/DocBook/Makefile +10 −2
  30. Documentation/DocBook/crypto-API.tmpl +26 −12
  31. Documentation/DocBook/device-drivers.tmpl +0 −521
  32. Documentation/DocBook/kernel-hacking.tmpl +1 −1
  33. Documentation/HOWTO +98 −50
  34. Documentation/Makefile +1 −3
  35. Documentation/Makefile.sphinx +49 −15
  36. Documentation/ManagementStyle +83 −71
  37. Documentation/PCI/pcieaer-howto.txt +9 −17
  38. Documentation/RCU/Design/Requirements/Requirements.html +22 −0
  39. Documentation/RCU/lockdep-splat.txt +1 −1
  40. Documentation/RCU/torture.txt +0 −15
  41. Documentation/SecurityBugs +8 −0
  42. Documentation/SubmitChecklist +69 −58
  43. Documentation/SubmittingDrivers +37 −17
  44. Documentation/SubmittingPatches +166 −146
  45. Documentation/accounting/Makefile +0 −7
  46. Documentation/accounting/delay-accounting.txt +3 −3
  47. Documentation/acpi/acpi-lid.txt +96 −0
  48. Documentation/acpi/gpio-properties.txt +5 −5
  49. Documentation/applying-patches.txt +221 −210
  50. Documentation/arm/00-INDEX +0 −2
  51. Documentation/arm/CCN.txt +10 −6
  52. Documentation/arm/sunxi/README +12 −1
  53. Documentation/arm64/silicon-errata.txt +2 −0
  54. Documentation/auxdisplay/Makefile +0 −7
  55. Documentation/auxdisplay/cfag12864b +1 −1
  56. Documentation/blackfin/00-INDEX +0 −4
  57. Documentation/blackfin/Makefile +0 −5
  58. Documentation/block/biodoc.txt +2 −2
  59. Documentation/clk.txt +22 −20
  60. Documentation/conf.py +93 −13
  61. Documentation/dev-tools/coccinelle.rst +190 −169
  62. Documentation/dev-tools/gcov.rst +256 −0
  63. Documentation/dev-tools/gdb-kernel-debugging.rst +45 −32
  64. Documentation/dev-tools/kasan.rst +173 −0
  65. Documentation/dev-tools/kcov.rst +42 −42
  66. Documentation/dev-tools/kmemcheck.rst +733 −0
  67. Documentation/dev-tools/kmemleak.rst +59 −43
  68. Documentation/dev-tools/sparse.rst +24 −15
  69. Documentation/dev-tools/tools.rst +25 −0
  70. Documentation/dev-tools/ubsan.rst +23 −19
  71. Documentation/development-process/1.Intro.rst +30 −38
  72. Documentation/development-process/2.Process.rst +30 −11
  73. Documentation/development-process/3.Early-stage.rst +16 −6
  74. Documentation/development-process/4.Coding.rst +30 −16
  75. Documentation/development-process/5.Posting.rst +20 −6
  76. Documentation/development-process/6.Followthrough.rst +10 −4
  77. Documentation/development-process/7.AdvancedTopics.rst +10 −3
  78. Documentation/development-process/8.Conclusion.rst +6 −2
  79. Documentation/development-process/conf.py +10 −0
  80. Documentation/development-process/development-process.rst +29 −0
  81. Documentation/development-process/index.rst +9 −0
  82. Documentation/devicetree/bindings/arm/altera/socfpga-eccmgr.txt +98 −0
  83. Documentation/devicetree/bindings/arm/arch_timer.txt +6 −0
  84. Documentation/devicetree/bindings/arm/bcm/brcm,bcm2835.txt +4 −0
  85. Documentation/devicetree/bindings/arm/davinci.txt +4 −0
  86. Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt +28 −11
  87. Documentation/devicetree/bindings/arm/marvell/armada-39x.txt +13 −2
  88. Documentation/devicetree/bindings/arm/marvell/marvell,orion5x.txt +25 −0
  89. Documentation/devicetree/bindings/arm/mediatek/mediatek,apmixedsys.txt +2 −1
  90. Documentation/devicetree/bindings/arm/mediatek/mediatek,bdpsys.txt +22 −0
  91. Documentation/devicetree/bindings/arm/mediatek/mediatek,ethsys.txt +22 −0
  92. Documentation/devicetree/bindings/arm/mediatek/mediatek,hifsys.txt +24 −0
  93. Documentation/devicetree/bindings/arm/mediatek/mediatek,imgsys.txt +2 −1
  94. Documentation/devicetree/bindings/arm/mediatek/mediatek,infracfg.txt +2 −1
  95. Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.txt +2 −1
  96. Documentation/devicetree/bindings/arm/mediatek/mediatek,pericfg.txt +2 −1
  97. Documentation/devicetree/bindings/arm/mediatek/mediatek,topckgen.txt +2 −1
  98. Documentation/devicetree/bindings/arm/mediatek/mediatek,vdecsys.txt +2 −1
  99. Documentation/devicetree/bindings/arm/omap/omap.txt +6 −0
  100. Documentation/devicetree/bindings/arm/rockchip.txt +12 −0
  101. Documentation/devicetree/bindings/arm/samsung/pmu.txt +1 −0
  102. Documentation/devicetree/bindings/arm/shmobile.txt +6 −0
  103. Documentation/devicetree/bindings/arm/sunxi.txt +1 −0
  104. Documentation/devicetree/bindings/arm/technologic.txt +6 −0
  105. Documentation/devicetree/bindings/arm/zte.txt +24 −0
  106. Documentation/devicetree/bindings/auxdisplay/img-ascii-lcd.txt +17 −0
  107. Documentation/devicetree/bindings/bus/qcom,ebi2.txt +138 −0
  108. Documentation/devicetree/bindings/clock/amlogic,gxbb-aoclkc.txt +45 −0
  109. Documentation/devicetree/bindings/clock/arm-syscon-icst.txt +32 −2
  110. Documentation/devicetree/bindings/clock/armada3700-periph-clock.txt +70 −0
  111. Documentation/devicetree/bindings/clock/armada3700-tbg-clock.txt +27 −0
  112. Documentation/devicetree/bindings/clock/armada3700-xtal-clock.txt +28 −0
  113. Documentation/devicetree/bindings/clock/at91-clock.txt +2 −1
  114. Documentation/devicetree/bindings/clock/brcm,bcm53573-ilp.txt +36 −0
  115. Documentation/devicetree/bindings/clock/clk-exynos-audss.txt +3 −1
  116. Documentation/devicetree/bindings/clock/exynos5410-clock.txt +13 −8
  117. Documentation/devicetree/bindings/clock/maxim,max77686.txt +93 −25
  118. Documentation/devicetree/bindings/clock/maxim,max77802.txt +0 −44
  119. Documentation/devicetree/bindings/clock/mvebu-core-clock.txt +1 −0
  120. Documentation/devicetree/bindings/clock/mvebu-gated-clock.txt +2 −0
  121. Documentation/devicetree/bindings/clock/qcom,gcc.txt +17 −0
  122. Documentation/devicetree/bindings/clock/qcom,lcc.txt +1 −0
  123. Documentation/devicetree/bindings/clock/st,stm32-rcc.txt +35 −7
  124. Documentation/devicetree/bindings/clock/st/st,clkgen-divmux.txt +0 −49
  125. Documentation/devicetree/bindings/clock/st/st,clkgen-mux.txt +8 −12
  126. Documentation/devicetree/bindings/clock/st/st,clkgen-pll.txt +10 −25
  127. Documentation/devicetree/bindings/clock/st/st,clkgen-prediv.txt +0 −36
  128. Documentation/devicetree/bindings/clock/st/st,clkgen-vcc.txt +0 −61
  129. Documentation/devicetree/bindings/clock/st/st,clkgen.txt +11 −43
  130. Documentation/devicetree/bindings/clock/st/st,flexgen.txt +4 −0
  131. Documentation/devicetree/bindings/clock/st/st,quadfs.txt +14 −17
  132. Documentation/devicetree/bindings/clock/sunxi-ccu.txt +4 −1
  133. Documentation/devicetree/bindings/clock/uniphier-clock.txt +134 −0
  134. Documentation/devicetree/bindings/clock/xgene.txt +18 −0
  135. Documentation/devicetree/bindings/clock/zx296718-clk.txt +35 −0
  136. Documentation/devicetree/bindings/devfreq/event/rockchip-dfi.txt +19 −0
  137. Documentation/devicetree/bindings/devfreq/rk3399_dmc.txt +209 −0
  138. Documentation/devicetree/bindings/display/bridge/dumb-vga-dac.txt +48 −0
  139. Documentation/devicetree/bindings/display/bridge/tda998x.txt +18 −0
  140. Documentation/devicetree/bindings/display/exynos/exynos_hdmi.txt +2 −2
  141. Documentation/devicetree/bindings/display/msm/hdmi.txt +4 −5
  142. Documentation/devicetree/bindings/display/panel/innolux,g101ice-l01.txt +7 −0
  143. Documentation/devicetree/bindings/display/panel/jdi,lt070me05000.txt +31 −0
  144. Documentation/devicetree/bindings/display/panel/tpo,tpg110.txt +47 −0
  145. Documentation/devicetree/bindings/display/rockchip/rockchip-vop.txt +3 −1
  146. Documentation/devicetree/bindings/display/sunxi/sun4i-drm.txt +41 −2
  147. Documentation/devicetree/bindings/display/tilcdc/tilcdc.txt +26 −0
  148. Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt +1 −0
  149. Documentation/devicetree/bindings/dma/renesas,rcar-dmac.txt +3 −1
  150. Documentation/devicetree/bindings/dma/sun6i-dma.txt +1 −0
  151. Documentation/devicetree/bindings/extcon/qcom,pm8941-misc.txt +41 −0
  152. Documentation/devicetree/bindings/firmware/meson/meson_sm.txt +15 −0
  153. Documentation/devicetree/bindings/gpio/brcm,bcm6345-gpio.txt +46 −0
  154. Documentation/devicetree/bindings/gpio/gpio-aspeed.txt +36 −0
  155. Documentation/devicetree/bindings/gpio/gpio-axp209.txt +30 −0
  156. Documentation/devicetree/bindings/gpio/gpio-tpic2810.txt +16 −0
  157. Documentation/devicetree/bindings/gpio/gpio-tps65086.txt +0 −16
  158. Documentation/devicetree/bindings/gpio/gpio-ts4900.txt +30 −0
  159. Documentation/devicetree/bindings/gpio/mrvl-gpio.txt +0 −23
  160. Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt +1 −0
  161. Documentation/devicetree/bindings/hwmon/ltc4151.txt +18 −0
  162. Documentation/devicetree/bindings/hwmon/max6650.txt +28 −0
  163. Documentation/devicetree/bindings/i2c/i2c-arb-gpio-challenge.txt +2 −6
  164. Documentation/devicetree/bindings/i2c/i2c-arb.txt +35 −0
  165. Documentation/devicetree/bindings/i2c/i2c-gate.txt +41 −0
  166. Documentation/devicetree/bindings/i2c/i2c-meson.txt +1 −1
  167. Documentation/devicetree/bindings/i2c/i2c-mux.txt +18 −5
  168. Documentation/devicetree/bindings/i2c/i2c-rcar.txt +1 −0
  169. Documentation/devicetree/bindings/i2c/i2c.txt +8 −0
  170. Documentation/devicetree/bindings/i2c/nxp,pca9541.txt +29 −0
  171. Documentation/devicetree/bindings/i2c/trivial-devices.txt +2 −1
  172. Documentation/devicetree/bindings/iio/accel/dmard06.txt +19 −0
  173. Documentation/devicetree/bindings/iio/accel/kionix,kxsd9.txt +22 −0
  174. Documentation/devicetree/bindings/iio/adc/mt6577_auxadc.txt +29 −0
  175. Documentation/devicetree/bindings/iio/adc/ti-adc12138.txt +37 −0
  176. Documentation/devicetree/bindings/iio/adc/ti-adc161s626.txt +16 −0
  177. Documentation/devicetree/bindings/iio/chemical/atlas,orp-sm.txt +22 −0
  178. Documentation/devicetree/bindings/iio/magnetometer/ak8974.txt +29 −0
  179. Documentation/devicetree/bindings/iio/pressure/zpa2326.txt +31 −0
  180. Documentation/devicetree/bindings/iio/proximity/sx9500.txt +24 −0
  181. Documentation/devicetree/bindings/iio/temperature/maxim_thermocouple.txt +21 −0
  182. Documentation/devicetree/bindings/infiniband/hisilicon-hns-roce.txt +109 −0
  183. Documentation/devicetree/bindings/input/adc-keys.txt +49 −0
  184. Documentation/devicetree/bindings/input/gpio-decoder.txt +23 −0
  185. Documentation/devicetree/bindings/input/gpio-keys-polled.txt +2 −3
  186. Documentation/devicetree/bindings/input/touchscreen/edt-ft5x06.txt +8 −0
  187. Documentation/devicetree/bindings/input/touchscreen/ektf2127.txt +27 −0
  188. Documentation/devicetree/bindings/input/touchscreen/focaltech-ft6236.txt +0 −35
  189. Documentation/devicetree/bindings/input/touchscreen/melfas_mip4.txt +21 −0
  190. Documentation/devicetree/bindings/input/touchscreen/silead_gsl1680.txt +1 −0
  191. Documentation/devicetree/bindings/input/tps65218-pwrbutton.txt +14 −3
  192. Documentation/devicetree/bindings/interrupt-controller/jcore,aic.txt +26 −0
  193. Documentation/devicetree/bindings/interrupt-controller/marvell,armada-8k-pic.txt +25 −0
  194. Documentation/devicetree/bindings/interrupt-controller/marvell,odmi-controller.txt +1 −1
  195. Documentation/devicetree/bindings/interrupt-controller/renesas,irqc.txt +3 −1
  196. Documentation/devicetree/bindings/interrupt-controller/st,stm32-exti.txt +20 −0
  197. Documentation/devicetree/bindings/iommu/arm,smmu-v3.txt +7 −1
  198. Documentation/devicetree/bindings/iommu/arm,smmu.txt +47 −14
  199. Documentation/devicetree/bindings/ipmi/aspeed,ast2400-bt-bmc.txt +23 −0
  200. Documentation/devicetree/bindings/ipmi/ipmi-smic.txt +0 −0
  201. Documentation/devicetree/bindings/leds/common.txt +7 −0
  202. Documentation/devicetree/bindings/leds/leds-bcm6328.txt +1 −1
  203. Documentation/devicetree/bindings/leds/leds-bcm6358.txt +1 −1
  204. Documentation/devicetree/bindings/leds/leds-gpio.txt +2 −7
  205. Documentation/devicetree/bindings/leds/leds-is31fl319x.txt +59 −0
  206. Documentation/devicetree/bindings/leds/leds-pm8058.txt +67 −0
  207. Documentation/devicetree/bindings/leds/register-bit-led.txt +2 −7
  208. Documentation/devicetree/bindings/mailbox/meson-mhu.txt +34 −0
  209. Documentation/devicetree/bindings/media/atmel-isc.txt +65 −0
  210. Documentation/devicetree/bindings/media/exynos4-fimc-is.txt +4 −3
  211. Documentation/devicetree/bindings/media/i2c/ad5820.txt +19 −0
  212. Documentation/devicetree/bindings/media/i2c/adv7180.txt +5 −0
  213. Documentation/devicetree/bindings/media/meson-ir.txt +4 −1
  214. Documentation/devicetree/bindings/media/renesas,fcp.txt +8 −1
  215. Documentation/devicetree/bindings/media/st,st-hva.txt +24 −0
  216. Documentation/devicetree/bindings/media/stih-cec.txt +25 −0
  217. Documentation/devicetree/bindings/memory-controllers/fsl/ddr.txt +2 −0
  218. Documentation/devicetree/bindings/mfd/ac100.txt +54 −0
  219. Documentation/devicetree/bindings/mfd/act8945a.txt +15 −7
  220. Documentation/devicetree/bindings/mfd/arizona.txt +18 −0
  221. Documentation/devicetree/bindings/mfd/aspeed-scu.txt +18 −0
  222. Documentation/devicetree/bindings/mfd/axp20x.txt +26 −2
  223. Documentation/devicetree/bindings/mfd/lp873x.txt +59 −0
  224. Documentation/devicetree/bindings/mfd/max77693.txt +6 −6
  225. Documentation/devicetree/bindings/mfd/qcom-pm8xxx.txt +1 −0
  226. Documentation/devicetree/bindings/mfd/qcom-rpm.txt +15 −0
  227. Documentation/devicetree/bindings/mfd/rk808.txt +34 −3
  228. Documentation/devicetree/bindings/mfd/samsung,exynos5433-lpass.txt +70 −0
  229. Documentation/devicetree/bindings/mfd/stmpe.txt +1 −1
  230. Documentation/devicetree/bindings/mfd/twl6040.txt +1 −0
  231. Documentation/devicetree/bindings/mips/brcm/soc.txt +2 −2
  232. Documentation/devicetree/bindings/mmc/arasan,sdhci.txt +3 −0
  233. Documentation/devicetree/bindings/mmc/brcm,sdhci-brcmstb.txt +3 −1
  234. Documentation/devicetree/bindings/mmc/mmc-pwrseq-simple.txt +2 −0
  235. Documentation/devicetree/bindings/mmc/mmc.txt +14 −1
  236. Documentation/devicetree/bindings/mmc/sdhci-st.txt +1 −1
  237. Documentation/devicetree/bindings/mmc/sunxi-mmc.txt +6 −1
  238. Documentation/devicetree/bindings/mmc/synopsys-dw-mshc.txt +4 −0
  239. Documentation/devicetree/bindings/mmc/tmio_mmc.txt +1 −0
  240. Documentation/devicetree/bindings/mtd/nand.txt +9 −0
  241. Documentation/devicetree/bindings/net/apm-xgene-enet.txt +3 −0
  242. Documentation/devicetree/bindings/net/brcm,amac.txt +24 −0
  243. Documentation/devicetree/bindings/net/brcm,bcm7445-switch-v4.0.txt +44 −1
  244. Documentation/devicetree/bindings/net/brcm,bgmac-nsp.txt +24 −0
  245. Documentation/devicetree/bindings/net/dsa/qca8k.txt +89 −0
  246. Documentation/devicetree/bindings/net/ethernet.txt +2 −2
  247. Documentation/devicetree/bindings/net/macb.txt +1 −0
  248. Documentation/devicetree/bindings/net/mediatek-net.txt +4 −2
  249. Documentation/devicetree/bindings/net/meson-dwmac.txt +37 −8
  250. Documentation/devicetree/bindings/net/micrel-ksz90x1.txt +4 −3
  251. Documentation/devicetree/bindings/net/mscc-phy-vsc8531.txt +58 −0
  252. Documentation/devicetree/bindings/net/qcom-emac.txt +111 −0
  253. Documentation/devicetree/bindings/net/renesas,ravb.txt +2 −1
  254. Documentation/devicetree/bindings/net/rockchip-dwmac.txt +6 −2
  255. Documentation/devicetree/bindings/net/sh_eth.txt +2 −0
  256. Documentation/devicetree/bindings/net/smsc911x.txt +11 −4
  257. Documentation/devicetree/bindings/net/snps,dwc-qos-ethernet.txt +95 −4
  258. Documentation/devicetree/bindings/net/stm32-dwmac.txt +32 −0
  259. Documentation/devicetree/bindings/net/wireless/esp,esp8089.txt +31 −0
  260. Documentation/devicetree/bindings/net/xilinx_gmii2rgmii.txt +35 −0
  261. Documentation/devicetree/bindings/nvmem/amlogic-efuse.txt +39 −0
  262. Documentation/devicetree/bindings/nvmem/rockchip-efuse.txt +11 −2
  263. Documentation/devicetree/bindings/pci/axis,artpec6-pcie.txt +4 −3
  264. Documentation/devicetree/bindings/pci/designware-pcie.txt +3 −0
  265. Documentation/devicetree/bindings/pci/pci-iommu.txt +171 −0
  266. Documentation/devicetree/bindings/pci/rockchip-pcie.txt +106 −0
  267. Documentation/devicetree/bindings/pci/xilinx-nwl-pcie.txt +3 −2
  268. Documentation/devicetree/bindings/perf/apm-xgene-pmu.txt +112 −0
  269. Documentation/devicetree/bindings/phy/bcm-ns-usb3-phy.txt +23 −0
  270. Documentation/devicetree/bindings/phy/meson-usb2-phy.txt +27 −0
  271. Documentation/devicetree/bindings/phy/mxs-usb-phy.txt +10 −0
  272. Documentation/devicetree/bindings/phy/phy-rockchip-inno-usb2.txt +64 −0
  273. Documentation/devicetree/bindings/phy/phy-rockchip-typec.txt +101 −0
  274. Documentation/devicetree/bindings/phy/rcar-gen3-phy-usb2.txt +4 −2
  275. Documentation/devicetree/bindings/phy/rockchip-pcie-phy.txt +31 −0
  276. Documentation/devicetree/bindings/phy/rockchip-usb-phy.txt +3 −0
  277. Documentation/devicetree/bindings/phy/sun4i-usb-phy.txt +1 −0
  278. Documentation/devicetree/bindings/phy/ti-phy.txt +2 −0
  279. Documentation/devicetree/bindings/pinctrl/allwinner,sunxi-pinctrl.txt +1 −0
  280. Documentation/devicetree/bindings/pinctrl/marvell,orion-pinctrl.txt +3 −1
  281. Documentation/devicetree/bindings/pinctrl/pinctrl-aspeed.txt +67 −0
  282. Documentation/devicetree/bindings/pinctrl/pinctrl-st.txt +21 −18
  283. Documentation/devicetree/bindings/pinctrl/qcom,pmic-gpio.txt +4 −1
  284. Documentation/devicetree/bindings/pinctrl/qcom,pmic-mpp.txt +4 −1
  285. Documentation/devicetree/bindings/pinctrl/renesas,pfc-pinctrl.txt +2 −0
  286. Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt +23 −21
  287. Documentation/devicetree/bindings/pinctrl/st,stm32-pinctrl.txt +5 −0
  288. Documentation/devicetree/bindings/power/act8945a-charger.txt +0 −35
  289. Documentation/devicetree/bindings/power/reset/axxia-reset.txt +0 −0
  290. Documentation/devicetree/bindings/power/reset/imx-snvs-poweroff.txt +0 −0
  291. Documentation/devicetree/bindings/power/reset/msm-poweroff.txt +0 −0
  292. Documentation/devicetree/bindings/power/reset/qnap-poweroff.txt +0 −0
  293. Documentation/devicetree/bindings/power/reset/restart-poweroff.txt +0 −0
  294. Documentation/devicetree/bindings/power/reset/st-reset.txt +4 −3
  295. Documentation/devicetree/bindings/power/supply/ab8500/btemp.txt +0 −0
  296. Documentation/devicetree/bindings/power/supply/ab8500/chargalg.txt +0 −0
  297. Documentation/devicetree/bindings/power/supply/ab8500/charger.txt +0 −0
  298. Documentation/devicetree/bindings/power/supply/ab8500/fg.txt +0 −0
  299. Documentation/devicetree/bindings/power/supply/act8945a-charger.txt +48 −0
  300. Documentation/devicetree/bindings/power/supply/axp20x_usb_power.txt +0 −0
  301. Documentation/devicetree/bindings/power/supply/bq2415x.txt +0 −0
  302. Documentation/devicetree/bindings/power/supply/bq24257.txt +0 −0
  303. Documentation/devicetree/bindings/power/supply/bq25890.txt +0 −0
  304. Documentation/devicetree/bindings/power/supply/charger-manager.txt +0 −0
  305. Documentation/devicetree/bindings/power/supply/da9150-charger.txt +0 −0
  306. Documentation/devicetree/bindings/power/supply/da9150-fg.txt +0 −0
  307. Documentation/devicetree/bindings/power/supply/gpio-charger.txt +0 −0
  308. Documentation/devicetree/bindings/power/supply/isp1704.txt +0 −0
  309. Documentation/devicetree/bindings/power/supply/lp8727_charger.txt +0 −0
  310. Documentation/devicetree/bindings/power/supply/ltc2941.txt +0 −0
  311. Documentation/devicetree/bindings/power/supply/max17042_battery.txt +0 −0
  312. Documentation/devicetree/bindings/power/supply/max8925_batter.txt +0 −0
  313. Documentation/devicetree/bindings/power/supply/olpc_battery.txt +0 −0
  314. Documentation/devicetree/bindings/power/supply/power_supply.txt +0 −0
  315. Documentation/devicetree/bindings/power/supply/qcom,coincell-charger.txt +0 −0
  316. Documentation/devicetree/bindings/power/supply/qcom_smbb.txt +0 −0
  317. Documentation/devicetree/bindings/power/supply/rt9455_charger.txt +0 −0
  318. Documentation/devicetree/bindings/power/supply/rx51-battery.txt +0 −0
  319. Documentation/devicetree/bindings/power/supply/sbs_sbs-battery.txt +0 −0
  320. Documentation/devicetree/bindings/power/supply/ti,bq24735.txt +0 −0
  321. Documentation/devicetree/bindings/power/supply/tps65090.txt +0 −0
  322. Documentation/devicetree/bindings/power/supply/tps65217_charger.txt +0 −0
  323. Documentation/devicetree/bindings/power/supply/twl-charger.txt +0 −0
  324. Documentation/devicetree/bindings/pwm/pwm-meson.txt +23 −0
  325. Documentation/devicetree/bindings/pwm/pwm-mtk-disp.txt +2 −1
  326. Documentation/devicetree/bindings/pwm/pwm-st.txt +5 −3
  327. Documentation/devicetree/bindings/pwm/pwm-sun4i.txt +1 −0
  328. Documentation/devicetree/bindings/regulator/ltc3676.txt +94 −0
  329. Documentation/devicetree/bindings/regulator/pv88080.txt +18 −5
  330. Documentation/devicetree/bindings/regulator/regulator.txt +1 −1
  331. Documentation/devicetree/bindings/remoteproc/qcom,wcnss-pil.txt +132 −0
  332. Documentation/devicetree/bindings/reset/st,stm32-rcc.txt +6 −0
  333. Documentation/devicetree/bindings/reset/uniphier-reset.txt +93 −0
  334. Documentation/devicetree/bindings/rtc/dallas,ds1390.txt +1 −1
  335. Documentation/devicetree/bindings/rtc/epson,rx8900.txt +22 −0
  336. Documentation/devicetree/bindings/rtc/rtc-omap.txt +21 −0
  337. Documentation/devicetree/bindings/serial/8250.txt +2 −0
  338. Documentation/devicetree/bindings/serial/st,stm32-usart.txt +46 −0
  339. Documentation/devicetree/bindings/soc/mediatek/auxadc.txt +0 −21
  340. Documentation/devicetree/bindings/sound/nau8810.txt +16 −0
  341. Documentation/devicetree/bindings/sound/nvidia,tegra-audio-sgtl5000.txt +42 −0
  342. Documentation/devicetree/bindings/sound/qcom,apq8016-sbc.txt +30 −0
  343. Documentation/devicetree/bindings/sound/renesas,rsrc-card.txt +0 −75
  344. Documentation/devicetree/bindings/sound/rockchip,rk3399-gru-sound.txt +22 −0
  345. Documentation/devicetree/bindings/sound/rt5659.txt +3 −0
  346. Documentation/devicetree/bindings/sound/rt5660.txt +47 −0
  347. Documentation/devicetree/bindings/sound/rt5663.txt +30 −0
  348. Documentation/devicetree/bindings/sound/simple-card.txt +37 −0
  349. Documentation/devicetree/bindings/sound/simple-scu-card.txt +110 −0
  350. Documentation/devicetree/bindings/sound/st,sti-asoc-card.txt +16 −36
  351. Documentation/devicetree/bindings/sound/sunxi,sun4i-spdif.txt +3 −0
  352. Documentation/devicetree/bindings/sound/tlv320aic31xx.txt +6 −3
  353. Documentation/devicetree/bindings/spi/brcm,spi-bcm-qspi.txt +233 −0
  354. Documentation/devicetree/bindings/spi/jcore,spi.txt +34 −0
  355. Documentation/devicetree/bindings/spi/spi-bus.txt +1 −1
  356. Documentation/devicetree/bindings/spi/spi-meson.txt +1 −1
  357. Documentation/devicetree/bindings/thermal/max77620_thermal.txt +70 −0
  358. Documentation/devicetree/bindings/thermal/mediatek-thermal.txt +3 −1
  359. Documentation/devicetree/bindings/thermal/nvidia,tegra124-soctherm.txt +119 −2
  360. Documentation/devicetree/bindings/thermal/qcom-tsens.txt +21 −0
  361. Documentation/devicetree/bindings/timer/jcore,pit.txt +24 −0
  362. Documentation/devicetree/bindings/timer/moxa,moxart-timer.txt +3 −1
  363. Documentation/devicetree/bindings/timer/oxsemi,rps-timer.txt +1 −1
  364. Documentation/devicetree/bindings/usb/ci-hdrc-usb2.txt +2 −0
  365. Documentation/devicetree/bindings/usb/dwc2.txt +6 −1
  366. Documentation/devicetree/bindings/usb/dwc3-cavium.txt +28 −0
  367. Documentation/devicetree/bindings/usb/dwc3.txt +7 −1
  368. Documentation/devicetree/bindings/usb/generic.txt +6 −0
  369. Documentation/devicetree/bindings/usb/renesas_usbhs.txt +1 −0
  370. Documentation/devicetree/bindings/usb/rockchip,dwc3.txt +59 −0
  371. Documentation/devicetree/bindings/usb/usb4604.txt +19 −0
  372. Documentation/devicetree/bindings/usb/usbmisc-imx.txt +1 −0
  373. Documentation/devicetree/bindings/vendor-prefixes.txt +28 −13
  374. Documentation/devicetree/bindings/watchdog/of-xilinx-wdt.txt +3 −0
  375. Documentation/devicetree/bindings/watchdog/st_lpc_wdt.txt +1 −2
  376. Documentation/devicetree/changesets.txt +5 −14
  377. Documentation/dmaengine/provider.txt +11 −0
  378. Documentation/docutils.conf +7 −0
  379. Documentation/driver-api/basics.rst +120 −0
  380. Documentation/driver-api/frame-buffer.rst +62 −0
  381. Documentation/driver-api/hsi.rst +88 −0
  382. Documentation/driver-api/i2c.rst +46 −0
  383. Documentation/driver-api/index.rst +26 −0
  384. Documentation/driver-api/infrastructure.rst +169 −0
  385. Documentation/driver-api/input.rst +51 −0
  386. Documentation/driver-api/message-based.rst +12 −0
  387. Documentation/driver-api/miscellaneous.rst +50 −0
  388. Documentation/driver-api/sound.rst +54 −0
  389. Documentation/driver-api/spi.rst +53 −0
  390. Documentation/driver-model/device.txt +1 −1
  391. Documentation/driver-model/devres.txt +8 −0
  392. Documentation/email-clients.txt +117 −97
  393. Documentation/features/perf/kprobes-event/arch-support.txt +1 −1
  394. Documentation/filesystems/00-INDEX +0 −2
  395. Documentation/filesystems/Locking +20 −12
  396. Documentation/filesystems/Makefile +0 −5
  397. Documentation/filesystems/autofs4-mount-control.txt +42 −29
  398. Documentation/filesystems/autofs4.txt +4 −4
  399. Documentation/filesystems/ceph.txt +4 −0
  400. Documentation/filesystems/dax.txt +9 −6
  401. Documentation/filesystems/directory-locking +1 −1
  402. Documentation/filesystems/f2fs.txt +1 −0
  403. Documentation/filesystems/porting +6 −2
  404. Documentation/filesystems/proc.txt +13 −27
  405. Documentation/filesystems/vfs.txt +33 −23
  406. Documentation/filesystems/xfs.txt +123 −0
  407. Documentation/gcov.txt +0 −257
  408. Documentation/gpio/board.txt +3 −3
  409. Documentation/gpio/driver.txt +6 −0
  410. Documentation/gpio/gpio-legacy.txt +4 −12
  411. Documentation/gpu/conf.py +5 −0
  412. Documentation/gpu/drm-internals.rst +6 −3
  413. Documentation/gpu/drm-kms-helpers.rst +120 −101
  414. Documentation/gpu/drm-kms.rst +118 −385
  415. Documentation/gpu/drm-mm.rst +29 −29
  416. Documentation/gpu/drm-uapi.rst +107 −0
  417. Documentation/gpu/i915.rst +3 −0
  418. Documentation/gpu/index.rst +8 −0
  419. Documentation/gpu/kms-properties.csv +0 −21
  420. Documentation/gpu/vgaarbiter.rst +80 −81
  421. Documentation/hid/intel-ish-hid.txt +454 −0
  422. Documentation/hsi.txt +0 −75
  423. Documentation/hwmon/adt7470 +17 −0
  424. Documentation/hwmon/hwmon-kernel-api.txt +229 −2
  425. Documentation/hwmon/max6650 +1 −0
  426. Documentation/hwmon/ucd9000 +10 −2
  427. Documentation/hwmon/xgene-hwmon +30 −0
  428. Documentation/i2c/slave-interface +5 −0
  429. Documentation/ia64/Makefile +0 −5
  430. Documentation/iio/iio_configfs.txt +2 −2
  431. Documentation/index.rst +5 −7
  432. Documentation/infiniband/sysfs.txt +30 −0
  433. Documentation/input/alps.txt +57 −0
  434. Documentation/ioctl/botching-up-ioctls.txt +8 −5
  435. Documentation/kasan.txt +0 −171
  436. Documentation/kbuild/kconfig-language.txt +38 −1
  437. Documentation/kbuild/makefiles.txt +16 −0
  438. Documentation/kdump/kdump.txt +9 −0
  439. Documentation/kernel-docs.txt +648 −727
  440. Documentation/kernel-documentation.rst +31 −0
  441. Documentation/kernel-parameters.txt +105 −30
  442. Documentation/kmemcheck.txt +0 −754
  443. Documentation/ko_KR/memory-barriers.txt +3135 −0
  444. Documentation/kprobes.txt +10 −0
  445. Documentation/kselftest.txt +3 −2
  446. Documentation/laptops/00-INDEX +0 −4
  447. Documentation/laptops/Makefile +0 −5
  448. Documentation/laptops/laptop-mode.txt +1 −1
  449. Documentation/leds/leds-mlxcpld.txt +110 −0
  450. Documentation/leds/ledtrig-oneshot.txt +2 −18
  451. Documentation/leds/ledtrig-usbport.txt +41 −0
  452. Documentation/livepatch/module-elf-format.txt +16 −4
  453. Documentation/locking/lglock.txt +0 −166
  454. Documentation/media/Makefile +2 −1
  455. Documentation/media/audio.h.rst.exceptions +3 −3
  456. Documentation/media/ca.h.rst.exceptions +16 −16
  457. Documentation/media/cec.h.rst.exceptions +0 −6
  458. Documentation/media/conf.py +10 −0
  459. Documentation/media/conf_nitpick.py +109 −0
  460. Documentation/media/dmx.h.rst.exceptions +44 −41
  461. Documentation/media/frontend.h.rst.exceptions +4 −4
  462. Documentation/media/index.rst +24 −0
  463. Documentation/media/intro.rst +1 −1
  464. Documentation/media/kapi/cec-core.rst +94 −53
  465. Documentation/media/kapi/dtv-core.rst +37 −3
  466. Documentation/media/kapi/mc-core.rst +13 −12
  467. Documentation/media/kapi/v4l2-dev.rst +6 −4
  468. Documentation/media/kapi/v4l2-event.rst +3 −3
  469. Documentation/media/kapi/v4l2-fh.rst +2 −2
  470. Documentation/media/kapi/v4l2-subdev.rst +6 −17
  471. Documentation/media/media_api_files/typical_media_device.pdf +0 −0
  472. Documentation/media/media_kapi.rst +1 −0
  473. Documentation/media/net.h.rst.exceptions +2 −2
  474. Documentation/media/uapi/cec/cec-func-close.rst +6 −3
  475. Documentation/media/uapi/cec/cec-func-ioctl.rst +7 −4
  476. Documentation/media/uapi/cec/cec-func-open.rst +6 −3
  477. Documentation/media/uapi/cec/cec-func-poll.rst +15 −3
  478. Documentation/media/uapi/cec/cec-intro.rst +3 −1
  479. Documentation/media/uapi/cec/cec-ioc-adap-g-caps.rst +9 −7
  480. Documentation/media/uapi/cec/cec-ioc-adap-g-log-addrs.rst +41 −11
  481. Documentation/media/uapi/cec/cec-ioc-adap-g-phys-addr.rst +10 −7
  482. Documentation/media/uapi/cec/cec-ioc-dqevent.rst +25 −21
  483. Documentation/media/uapi/cec/cec-ioc-g-mode.rst +13 −7
  484. Documentation/media/uapi/cec/cec-ioc-receive.rst +24 −14
  485. Documentation/media/uapi/dvb/audio-bilingual-channel-select.rst +5 −10
  486. Documentation/media/uapi/dvb/audio-channel-select.rst +5 −9
  487. Documentation/media/uapi/dvb/audio-clear-buffer.rst +3 −9
  488. Documentation/media/uapi/dvb/audio-continue.rst +3 −8
  489. Documentation/media/uapi/dvb/audio-fclose.rst +3 −1
  490. Documentation/media/uapi/dvb/audio-fopen.rst +5 −1
  491. Documentation/media/uapi/dvb/audio-fwrite.rst +3 −1
  492. Documentation/media/uapi/dvb/audio-get-capabilities.rst +5 −9
  493. Documentation/media/uapi/dvb/audio-get-pts.rst +5 −9
  494. Documentation/media/uapi/dvb/audio-get-status.rst +5 −9
  495. Documentation/media/uapi/dvb/audio-pause.rst +3 −8
  496. Documentation/media/uapi/dvb/audio-play.rst +3 −8
  497. Documentation/media/uapi/dvb/audio-select-source.rst +5 −9
  498. Documentation/media/uapi/dvb/audio-set-attributes.rst +6 −10
  499. Documentation/media/uapi/dvb/audio-set-av-sync.rst +7 −17
  500. Documentation/media/uapi/dvb/audio-set-bypass-mode.rst +7 −18
  501. Documentation/media/uapi/dvb/audio-set-ext-id.rst +5 −10
  502. Documentation/media/uapi/dvb/audio-set-id.rst +5 −10
  503. Documentation/media/uapi/dvb/audio-set-karaoke.rst +5 −9
  504. Documentation/media/uapi/dvb/audio-set-mixer.rst +5 −10
  505. Documentation/media/uapi/dvb/audio-set-mute.rst +7 −17
  506. Documentation/media/uapi/dvb/audio-set-streamtype.rst +5 −9
  507. Documentation/media/uapi/dvb/audio-stop.rst +3 −8
  508. Documentation/media/uapi/dvb/audio_data_types.rst +7 −30
  509. Documentation/media/uapi/dvb/ca-fclose.rst +5 −13
  510. Documentation/media/uapi/dvb/ca-fopen.rst +20 −31
  511. Documentation/media/uapi/dvb/ca-get-cap.rst +31 −20
  512. Documentation/media/uapi/dvb/ca-get-descr-info.rst +24 −20
  513. Documentation/media/uapi/dvb/ca-get-msg.rst +31 −16
  514. Documentation/media/uapi/dvb/ca-get-slot-info.rst +79 −13
  515. Documentation/media/uapi/dvb/ca-reset.rst +5 −19
  516. Documentation/media/uapi/dvb/ca-send-msg.rst +7 −23
  517. Documentation/media/uapi/dvb/ca-set-descr.rst +7 −23
  518. Documentation/media/uapi/dvb/ca-set-pid.rst +19 −18
  519. Documentation/media/uapi/dvb/ca_data_types.rst +6 −6
  520. Documentation/media/uapi/dvb/dmx-add-pid.rst +6 −22
  521. Documentation/media/uapi/dvb/dmx-fclose.rst +4 −12
  522. Documentation/media/uapi/dvb/dmx-fopen.rst +18 −27
  523. Documentation/media/uapi/dvb/dmx-fread.rst +10 −24
  524. Documentation/media/uapi/dvb/dmx-fwrite.rst +10 −24
  525. Documentation/media/uapi/dvb/dmx-get-caps.rst +7 −25
  526. Documentation/media/uapi/dvb/dmx-get-event.rst +6 −22
  527. Documentation/media/uapi/dvb/dmx-get-pes-pids.rst +7 −24
  528. Documentation/media/uapi/dvb/dmx-get-stc.rst +6 −25
  529. Documentation/media/uapi/dvb/dmx-remove-pid.rst +6 −22
  530. Documentation/media/uapi/dvb/dmx-set-buffer-size.rst +6 −23
  531. Documentation/media/uapi/dvb/dmx-set-filter.rst +6 −22
  532. Documentation/media/uapi/dvb/dmx-set-pes-filter.rst +7 −22
  533. Documentation/media/uapi/dvb/dmx-set-source.rst +7 −22
  534. Documentation/media/uapi/dvb/dmx-start.rst +5 −19
  535. Documentation/media/uapi/dvb/dmx-stop.rst +4 −18
  536. Documentation/media/uapi/dvb/dmx_types.rst +15 −25
  537. Documentation/media/uapi/dvb/dtv-fe-stats.rst +1 −1
  538. Documentation/media/uapi/dvb/dtv-properties.rst +1 −1
  539. Documentation/media/uapi/dvb/dtv-property.rst +1 −1
  540. Documentation/media/uapi/dvb/dtv-stats.rst +1 −1
  541. Documentation/media/uapi/dvb/dvb-fe-read-status.rst +3 −1
  542. Documentation/media/uapi/dvb/dvb-frontend-event.rst +1 −1
  543. Documentation/media/uapi/dvb/dvb-frontend-parameters.rst +5 −5
  544. Documentation/media/uapi/dvb/dvbapi.rst +3 −1
  545. Documentation/media/uapi/dvb/dvbproperty.rst +4 −2
  546. Documentation/media/uapi/dvb/examples.rst +3 −1
  547. Documentation/media/uapi/dvb/fe-bandwidth-t.rst +1 −4
  548. Documentation/media/uapi/dvb/fe-diseqc-recv-slave-reply.rst +5 −8
  549. Documentation/media/uapi/dvb/fe-diseqc-reset-overload.rst +2 −5
  550. Documentation/media/uapi/dvb/fe-diseqc-send-burst.rst +4 −11
  551. Documentation/media/uapi/dvb/fe-diseqc-send-master-cmd.rst +6 −8
  552. Documentation/media/uapi/dvb/fe-dishnetwork-send-legacy-cmd.rst +6 −10
  553. Documentation/media/uapi/dvb/fe-enable-high-lnb-voltage.rst +2 −4
  554. Documentation/media/uapi/dvb/fe-get-event.rst +8 −27
  555. Documentation/media/uapi/dvb/fe-get-frontend.rst +8 −22
  556. Documentation/media/uapi/dvb/fe-get-info.rst +11 −13
  557. Documentation/media/uapi/dvb/fe-get-property.rst +6 −5
  558. Documentation/media/uapi/dvb/fe-read-ber.rst +8 −22
  559. Documentation/media/uapi/dvb/fe-read-signal-strength.rst +7 −24
  560. Documentation/media/uapi/dvb/fe-read-snr.rst +7 −22
  561. Documentation/media/uapi/dvb/fe-read-status.rst +10 −9
  562. Documentation/media/uapi/dvb/fe-read-uncorrected-blocks.rst +7 −24
  563. Documentation/media/uapi/dvb/fe-set-frontend-tune-mode.rst +2 −4
  564. Documentation/media/uapi/dvb/fe-set-frontend.rst +8 −23
  565. Documentation/media/uapi/dvb/fe-set-tone.rst +4 −11
  566. Documentation/media/uapi/dvb/fe-set-voltage.rst +4 −6
  567. Documentation/media/uapi/dvb/fe-type-t.rst +5 −5
  568. Documentation/media/uapi/dvb/fe_property_parameters.rst +29 −48
  569. Documentation/media/uapi/dvb/frontend-stat-properties.rst +1 −1
  570. Documentation/media/uapi/dvb/frontend.rst +3 −1
  571. Documentation/media/uapi/dvb/frontend_f_close.rst +3 −3
  572. Documentation/media/uapi/dvb/frontend_f_open.rst +2 −2
  573. Documentation/media/uapi/dvb/net-add-if.rst +5 −13
  574. Documentation/media/uapi/dvb/net-get-if.rst +5 −7
  575. Documentation/media/uapi/dvb/net-remove-if.rst +2 −4
  576. Documentation/media/uapi/dvb/video-clear-buffer.rst +3 −1
  577. Documentation/media/uapi/dvb/video-command.rst +33 −1
  578. Documentation/media/uapi/dvb/video-continue.rst +3 −1
  579. Documentation/media/uapi/dvb/video-fast-forward.rst +3 −1
  580. Documentation/media/uapi/dvb/video-fclose.rst +2 −1
  581. Documentation/media/uapi/dvb/video-fopen.rst +4 −1
  582. Documentation/media/uapi/dvb/video-freeze.rst +3 −1
  583. Documentation/media/uapi/dvb/video-fwrite.rst +2 −1
  584. Documentation/media/uapi/dvb/video-get-capabilities.rst +3 −1
  585. Documentation/media/uapi/dvb/video-get-event.rst +20 −1
  586. Documentation/media/uapi/dvb/video-get-frame-count.rst +3 −1
  587. Documentation/media/uapi/dvb/video-get-frame-rate.rst +3 −1
  588. Documentation/media/uapi/dvb/video-get-navi.rst +11 −1
  589. Documentation/media/uapi/dvb/video-get-pts.rst +3 −1
  590. Documentation/media/uapi/dvb/video-get-size.rst +13 −1
  591. Documentation/media/uapi/dvb/video-get-status.rst +14 −1
  592. Documentation/media/uapi/dvb/video-play.rst +3 −1
  593. Documentation/media/uapi/dvb/video-select-source.rst +13 −1
  594. Documentation/media/uapi/dvb/video-set-attributes.rst +19 −1
  595. Documentation/media/uapi/dvb/video-set-blank.rst +3 −1
  596. Documentation/media/uapi/dvb/video-set-display-format.rst +3 −1
  597. Documentation/media/uapi/dvb/video-set-format.rst +12 −1
  598. Documentation/media/uapi/dvb/video-set-highlight.rst +27 −1
  599. Documentation/media/uapi/dvb/video-set-id.rst +3 −1
  600. Documentation/media/uapi/dvb/video-set-spu-palette.rst +11 −1
  601. Documentation/media/uapi/dvb/video-set-spu.rst +12 −1
  602. Documentation/media/uapi/dvb/video-set-streamtype.rst +3 −1
  603. Documentation/media/uapi/dvb/video-set-system.rst +3 −1
  604. Documentation/media/uapi/dvb/video-slowmotion.rst +3 −1
  605. Documentation/media/uapi/dvb/video-stillpicture.rst +3 −1
  606. Documentation/media/uapi/dvb/video-stop.rst +3 −1
  607. Documentation/media/uapi/dvb/video-try-command.rst +3 −1
  608. Documentation/media/uapi/dvb/video_types.rst +8 −8
  609. Documentation/media/uapi/gen-errors.rst +2 −0
  610. Documentation/media/uapi/mediactl/media-func-close.rst +3 −3
  611. Documentation/media/uapi/mediactl/media-func-ioctl.rst +3 −3
  612. Documentation/media/uapi/mediactl/media-func-open.rst +2 −2
  613. Documentation/media/uapi/mediactl/media-ioc-device-info.rst +6 −6
  614. Documentation/media/uapi/mediactl/media-ioc-enum-entities.rst +7 −7
  615. Documentation/media/uapi/mediactl/media-ioc-enum-links.rst +19 −15
  616. Documentation/media/uapi/mediactl/media-ioc-g-topology.rst +16 −12
  617. Documentation/media/uapi/mediactl/media-ioc-setup-link.rst +4 −6
  618. Documentation/media/uapi/mediactl/media-types.rst +30 −10
  619. Documentation/media/uapi/rc/lirc-get-features.rst +2 −4
  620. Documentation/media/uapi/rc/lirc-get-length.rst +2 −4
  621. Documentation/media/uapi/rc/lirc-get-rec-mode.rst +6 −5
  622. Documentation/media/uapi/rc/lirc-get-rec-resolution.rst +2 −4
  623. Documentation/media/uapi/rc/lirc-get-send-mode.rst +5 −4
  624. Documentation/media/uapi/rc/lirc-get-timeout.rst +5 −4
  625. Documentation/media/uapi/rc/lirc-read.rst +5 −2
  626. Documentation/media/uapi/rc/lirc-set-measure-carrier-mode.rst +2 −4
  627. Documentation/media/uapi/rc/lirc-set-rec-carrier-range.rst +2 −4
  628. Documentation/media/uapi/rc/lirc-set-rec-carrier.rst +2 −4
  629. Documentation/media/uapi/rc/lirc-set-rec-timeout-reports.rst +2 −4
  630. Documentation/media/uapi/rc/lirc-set-rec-timeout.rst +2 −4
  631. Documentation/media/uapi/rc/lirc-set-send-carrier.rst +2 −4
  632. Documentation/media/uapi/rc/lirc-set-send-duty-cycle.rst +2 −4
  633. Documentation/media/uapi/rc/lirc-set-transmitter-mask.rst +2 −4
  634. Documentation/media/uapi/rc/lirc-set-wideband-receiver.rst +5 −5
  635. Documentation/media/uapi/rc/lirc-write.rst +5 −3
  636. Documentation/media/uapi/rc/rc-tables.rst +2 −0
  637. Documentation/media/uapi/v4l/audio.rst +9 −7
  638. Documentation/media/uapi/v4l/buffer.rst +543 −861
  639. Documentation/media/uapi/v4l/control.rst +39 −100
  640. Documentation/media/uapi/v4l/crop.rst +16 −10
  641. Documentation/media/uapi/v4l/dev-capture.rst +8 −8
  642. Documentation/media/uapi/v4l/dev-codec.rst +3 −1
  643. Documentation/media/uapi/v4l/dev-osd.rst +14 −12
  644. Documentation/media/uapi/v4l/dev-output.rst +9 −9
  645. Documentation/media/uapi/v4l/dev-overlay.rst +19 −15
  646. Documentation/media/uapi/v4l/dev-radio.rst +1 −1
  647. Documentation/media/uapi/v4l/dev-raw-vbi.rst +110 −157
  648. Documentation/media/uapi/v4l/dev-raw-vbi_files/vbi_525.pdf +0 −0
  649. Documentation/media/uapi/v4l/dev-raw-vbi_files/vbi_625.pdf +0 −0
  650. Documentation/media/uapi/v4l/dev-rds.rst +72 −143
  651. Documentation/media/uapi/v4l/dev-sdr.rst +22 −35
  652. Documentation/media/uapi/v4l/dev-sliced-vbi.rst +309 −475
  653. Documentation/media/uapi/v4l/dev-subdev.rst +49 −84
  654. Documentation/media/uapi/v4l/dev-touch.rst +56 −0
  655. Documentation/media/uapi/v4l/devices.rst +1 −0
  656. Documentation/media/uapi/v4l/diff-v4l.rst +246 −514
  657. Documentation/media/uapi/v4l/dmabuf.rst +4 −4
  658. Documentation/media/uapi/v4l/extended-controls.rst +1110 −2221
  659. Documentation/media/uapi/v4l/field-order.rst +74 −122
  660. Documentation/media/uapi/v4l/format.rst +1 −1
  661. Documentation/media/uapi/v4l/func-close.rst +2 −2
  662. Documentation/media/uapi/v4l/func-ioctl.rst +2 −2
  663. Documentation/media/uapi/v4l/func-mmap.rst +9 −7
  664. Documentation/media/uapi/v4l/func-munmap.rst +4 −4
  665. Documentation/media/uapi/v4l/func-open.rst +2 −2
  666. Documentation/media/uapi/v4l/func-poll.rst +2 −2
  667. Documentation/media/uapi/v4l/func-read.rst +5 −3
  668. Documentation/media/uapi/v4l/func-select.rst +16 −2
  669. Documentation/media/uapi/v4l/func-write.rst +5 −3
  670. Documentation/media/uapi/v4l/hist-v4l2.rst +148 −261
  671. Documentation/media/uapi/v4l/libv4l-introduction.rst +46 −31
  672. Documentation/media/uapi/v4l/mmap.rst +6 −6
  673. Documentation/media/uapi/v4l/pixfmt-002.rst +120 −183
  674. Documentation/media/uapi/v4l/pixfmt-003.rst +68 −140
  675. Documentation/media/uapi/v4l/pixfmt-006.rst +102 −241
  676. Documentation/media/uapi/v4l/pixfmt-007.rst +301 −453
  677. Documentation/media/uapi/v4l/pixfmt-013.rst +73 −115
  678. Documentation/media/uapi/v4l/pixfmt-grey.rst +20 −53
  679. Documentation/media/uapi/v4l/pixfmt-indexed.rst +28 −54
  680. Documentation/media/uapi/v4l/pixfmt-m420.rst +80 −173
  681. Documentation/media/uapi/v4l/pixfmt-nv12.rst +80 −172
  682. Documentation/media/uapi/v4l/pixfmt-nv12m.rst +82 −176
  683. Documentation/media/uapi/v4l/pixfmt-nv12mt.rst +2 −4
  684. Documentation/media/uapi/v4l/pixfmt-nv12mt_files/nv12mt.gif +0 −0
  685. Documentation/media/uapi/v4l/pixfmt-nv12mt_files/nv12mt.png +0 −0
  686. Documentation/media/uapi/v4l/pixfmt-nv12mt_files/nv12mt_example.gif +0 −0
  687. Documentation/media/uapi/v4l/pixfmt-nv12mt_files/nv12mt_example.png +0 −0
  688. Documentation/media/uapi/v4l/pixfmt-nv16.rst +104 −221
  689. Documentation/media/uapi/v4l/pixfmt-nv16m.rst +105 −225
  690. Documentation/media/uapi/v4l/pixfmt-nv24.rst +56 −132
  691. Documentation/media/uapi/v4l/pixfmt-packed-rgb.rst +786 −1404
  692. Documentation/media/uapi/v4l/pixfmt-packed-yuv.rst +173 −296
  693. Documentation/media/uapi/v4l/pixfmt-reserved.rst +221 −326
  694. Documentation/media/uapi/v4l/pixfmt-rgb.rst +0 −3
  695. Documentation/media/uapi/v4l/pixfmt-sbggr16.rst +36 −88
  696. Documentation/media/uapi/v4l/pixfmt-sbggr8.rst +0 −81
  697. Documentation/media/uapi/v4l/pixfmt-sdr-cs08.rst +4 −17
  698. Documentation/media/uapi/v4l/pixfmt-sdr-cs14le.rst +6 −20
  699. Documentation/media/uapi/v4l/pixfmt-sdr-cu08.rst +4 −17
  700. Documentation/media/uapi/v4l/pixfmt-sdr-cu16le.rst +6 −19
  701. Documentation/media/uapi/v4l/pixfmt-sdr-ru12le.rst +4 −10
  702. Documentation/media/uapi/v4l/pixfmt-sgbrg8.rst +0 −81
  703. Documentation/media/uapi/v4l/pixfmt-sgrbg8.rst +0 −81
  704. Documentation/media/uapi/v4l/pixfmt-srggb10.rst +45 −89
  705. Documentation/media/uapi/v4l/pixfmt-srggb10alaw8.rst +0 −2
  706. Documentation/media/uapi/v4l/pixfmt-srggb10p.rst +42 −67
  707. Documentation/media/uapi/v4l/pixfmt-srggb12.rst +40 −84
  708. Documentation/media/uapi/v4l/pixfmt-srggb8.rst +33 −60
  709. Documentation/media/uapi/v4l/pixfmt-tch-td08.rst +52 −0
  710. Documentation/media/uapi/v4l/pixfmt-tch-td16.rst +67 −0
  711. Documentation/media/uapi/v4l/pixfmt-tch-tu08.rst +50 −0
  712. Documentation/media/uapi/v4l/pixfmt-tch-tu16.rst +66 −0
  713. Documentation/media/uapi/v4l/pixfmt-uv8.rst +21 −50
  714. Documentation/media/uapi/v4l/pixfmt-uyvy.rst +72 −159
  715. Documentation/media/uapi/v4l/pixfmt-vyuy.rst +72 −159
  716. Documentation/media/uapi/v4l/pixfmt-y10.rst +37 −82
  717. Documentation/media/uapi/v4l/pixfmt-y10b.rst +5 −17
  718. Documentation/media/uapi/v4l/pixfmt-y12.rst +37 −82
  719. Documentation/media/uapi/v4l/pixfmt-y12i.rst +3 −11
  720. Documentation/media/uapi/v4l/pixfmt-y16-be.rst +40 −83
  721. Documentation/media/uapi/v4l/pixfmt-y16.rst +40 −83
  722. Documentation/media/uapi/v4l/pixfmt-y41p.rst +108 −231
  723. Documentation/media/uapi/v4l/pixfmt-y8i.rst +37 −82
  724. Documentation/media/uapi/v4l/pixfmt-yuv410.rst +75 −156
  725. Documentation/media/uapi/v4l/pixfmt-yuv411p.rst +67 −166
  726. Documentation/media/uapi/v4l/pixfmt-yuv420.rst +90 −186
  727. Documentation/media/uapi/v4l/pixfmt-yuv420m.rst +92 −194
  728. Documentation/media/uapi/v4l/pixfmt-yuv422m.rst +82 −199
  729. Documentation/media/uapi/v4l/pixfmt-yuv422p.rst +80 −191
  730. Documentation/media/uapi/v4l/pixfmt-yuv444m.rst +88 −213
  731. Documentation/media/uapi/v4l/pixfmt-yuyv.rst +77 −164
  732. Documentation/media/uapi/v4l/pixfmt-yvyu.rst +72 −159
  733. Documentation/media/uapi/v4l/pixfmt-z16.rst +37 −82
  734. Documentation/media/uapi/v4l/pixfmt.rst +3 −2
  735. Documentation/media/uapi/v4l/planar-apis.rst +5 −5
  736. Documentation/media/uapi/v4l/rw.rst +1 −1
  737. Documentation/media/uapi/v4l/selection-api-005.rst +5 −5
  738. Documentation/media/uapi/v4l/standard.rst +7 −5
  739. Documentation/media/uapi/v4l/streaming-par.rst +1 −1
  740. Documentation/media/uapi/v4l/subdev-formats.rst +6341 −11507
  741. Documentation/media/uapi/v4l/tch-formats.rst +18 −0
  742. Documentation/media/uapi/v4l/tuner.rst +10 −8
  743. Documentation/media/uapi/v4l/userp.rst +7 −5
  744. Documentation/media/uapi/v4l/v4l2-selection-flags.rst +29 −56
  745. Documentation/media/uapi/v4l/v4l2-selection-targets.rst +56 −117
  746. Documentation/media/uapi/v4l/v4l2.rst +6 −6
  747. Documentation/media/uapi/v4l/video.rst +1 −1
  748. Documentation/media/uapi/v4l/vidioc-create-bufs.rst +31 −56
  749. Documentation/media/uapi/v4l/vidioc-cropcap.rst +55 −90
  750. Documentation/media/uapi/v4l/vidioc-dbg-g-chip-info.rst +45 −90
  751. Documentation/media/uapi/v4l/vidioc-dbg-g-register.rst +44 −90
  752. Documentation/media/uapi/v4l/vidioc-decoder-cmd.rst +132 −193
  753. Documentation/media/uapi/v4l/vidioc-dqevent.rst +269 −453
  754. Documentation/media/uapi/v4l/vidioc-dv-timings-cap.rst +89 −178
  755. Documentation/media/uapi/v4l/vidioc-encoder-cmd.rst +60 −94
  756. Documentation/media/uapi/v4l/vidioc-enum-dv-timings.rst +29 −44
  757. Documentation/media/uapi/v4l/vidioc-enum-fmt.rst +64 −101
  758. Documentation/media/uapi/v4l/vidioc-enum-frameintervals.rst +68 −138
  759. Documentation/media/uapi/v4l/vidioc-enum-framesizes.rst +80 −163
  760. Documentation/media/uapi/v4l/vidioc-enum-freq-bands.rst +76 −126
  761. Documentation/media/uapi/v4l/vidioc-enumaudio.rst +4 −6
  762. Documentation/media/uapi/v4l/vidioc-enumaudioout.rst +7 −7
  763. Documentation/media/uapi/v4l/vidioc-enuminput.rst +152 −286
  764. Documentation/media/uapi/v4l/vidioc-enumoutput.rst +81 −147
  765. Documentation/media/uapi/v4l/vidioc-enumstd.rst +118 −207
  766. Documentation/media/uapi/v4l/vidioc-expbuf.rst +38 −68
  767. Documentation/media/uapi/v4l/vidioc-g-audio.rst +45 −80
  768. Documentation/media/uapi/v4l/vidioc-g-audioout.rst +32 −54
  769. Documentation/media/uapi/v4l/vidioc-g-crop.rst +22 −28
  770. Documentation/media/uapi/v4l/vidioc-g-ctrl.rst +18 −25
  771. Documentation/media/uapi/v4l/vidioc-g-dv-timings.rst +173 −318
  772. Documentation/media/uapi/v4l/vidioc-g-edid.rst +42 −56
  773. Documentation/media/uapi/v4l/vidioc-g-enc-index.rst +63 −125
  774. Documentation/media/uapi/v4l/vidioc-g-ext-ctrls.rst +235 −354
  775. Documentation/media/uapi/v4l/vidioc-g-fbuf.rst +239 −385
  776. Documentation/media/uapi/v4l/vidioc-g-fmt.rst +57 −96
  777. Documentation/media/uapi/v4l/vidioc-g-frequency.rst +36 −55
  778. Documentation/media/uapi/v4l/vidioc-g-input.rst +6 −5
  779. Documentation/media/uapi/v4l/vidioc-g-jpegcomp.rst +52 −110
  780. Documentation/media/uapi/v4l/vidioc-g-modulator.rst +112 −175
  781. Documentation/media/uapi/v4l/vidioc-g-output.rst +6 −5
  782. Documentation/media/uapi/v4l/vidioc-g-parm.rst +163 −250
  783. Documentation/media/uapi/v4l/vidioc-g-priority.rst +31 −55
  784. Documentation/media/uapi/v4l/vidioc-g-selection.rst +43 −58
  785. Documentation/media/uapi/v4l/vidioc-g-sliced-vbi-cap.rst +129 −211
  786. Documentation/media/uapi/v4l/vidioc-g-std.rst +6 −7
  787. Documentation/media/uapi/v4l/vidioc-g-tuner.rst +346 −598
  788. Documentation/media/uapi/v4l/vidioc-log-status.rst +4 −1
  789. Documentation/media/uapi/v4l/vidioc-overlay.rst +2 −4
  790. Documentation/media/uapi/v4l/vidioc-prepare-buf.rst +3 −5
  791. Documentation/media/uapi/v4l/vidioc-qbuf.rst +18 −15
  792. Documentation/media/uapi/v4l/vidioc-query-dv-timings.rst +9 −6
  793. Documentation/media/uapi/v4l/vidioc-querybuf.rst +9 −11
  794. Documentation/media/uapi/v4l/vidioc-querycap.rst +208 −373
  795. Documentation/media/uapi/v4l/vidioc-queryctrl.rst +385 −635
  796. Documentation/media/uapi/v4l/vidioc-querystd.rst +5 −5
  797. Documentation/media/uapi/v4l/vidioc-reqbufs.rst +23 −43
  798. Documentation/media/uapi/v4l/vidioc-s-hw-freq-seek.rst +53 −93
  799. Documentation/media/uapi/v4l/vidioc-streamon.rst +9 −6
  800. Documentation/media/uapi/v4l/vidioc-subdev-enum-frame-interval.rst +33 −74
  801. Documentation/media/uapi/v4l/vidioc-subdev-enum-frame-size.rst +37 −82
  802. Documentation/media/uapi/v4l/vidioc-subdev-enum-mbus-code.rst +25 −50
  803. Documentation/media/uapi/v4l/vidioc-subdev-g-crop.rst +24 −43
  804. Documentation/media/uapi/v4l/vidioc-subdev-g-fmt.rst +33 −58
  805. Documentation/media/uapi/v4l/vidioc-subdev-g-frame-interval.rst +21 −34
  806. Documentation/media/uapi/v4l/vidioc-subdev-g-selection.rst +29 −56
  807. Documentation/media/uapi/v4l/vidioc-subscribe-event.rst +52 −75
  808. Documentation/media/v4l-drivers/bttv.rst +1 −0
  809. Documentation/media/v4l-drivers/cpia2.rst +3 −0
  810. Documentation/media/v4l-drivers/cx23885-cardlist.rst +1 −0
  811. Documentation/media/v4l-drivers/fourcc.rst +1 −1
  812. Documentation/media/v4l-drivers/si476x.rst +62 −54
  813. Documentation/media/v4l-drivers/zr364xx.rst +1 −1
  814. Documentation/media/video.h.rst.exceptions +10 −10
  815. Documentation/media/videodev2.h.rst.exceptions +108 −102
  816. Documentation/memory-barriers.txt +3 −2
  817. Documentation/mic/Makefile +0 −1
  818. Documentation/mic/mpssd/Makefile +0 −21
  819. Documentation/misc-devices/Makefile +0 −1
  820. Documentation/misc-devices/mei/Makefile +0 −5
  821. Documentation/networking/00-INDEX +2 −2
  822. Documentation/networking/Makefile +0 −1
  823. Documentation/networking/batman-adv.txt +11 −6
  824. Documentation/networking/dsa/dsa.txt +28 −5
  825. Documentation/networking/ena.txt +305 −0
  826. Documentation/networking/ip-sysctl.txt +23 −22
  827. Documentation/networking/ipvlan.txt +6 −1
  828. Documentation/networking/rxrpc.txt +46 −44
  829. Documentation/networking/strparser.txt +136 −0
  830. Documentation/networking/switchdev.txt +18 −22
  831. Documentation/networking/timestamping/Makefile +0 −14
  832. Documentation/pcmcia/Makefile +0 −7
  833. Documentation/pcmcia/devicetable.txt +2 −2
  834. Documentation/perf/xgene-pmu.txt +48 −0
  835. Documentation/power/power_supply_class.txt +2 −2
  836. Documentation/powerpc/cxlflash.txt +39 −5
  837. Documentation/powerpc/syscall64-abi.txt +105 −0
  838. Documentation/prctl/Makefile +0 −10
  839. Documentation/ptp/Makefile +0 −8
  840. Documentation/remoteproc.txt +3 −3
  841. Documentation/scheduler/sched-deadline.txt +18 −0
  842. Documentation/scsi/00-INDEX +0 −2
  843. Documentation/scsi/dtc3x80.txt +0 −43
  844. Documentation/scsi/g_NCR5380.txt +21 −13
  845. Documentation/scsi/in2000.txt +0 −202
  846. Documentation/scsi/scsi-parameters.txt +0 −20
  847. Documentation/scsi/smartpqi.txt +80 −0
  848. Documentation/serial/serial-rs485.txt +2 −3
  849. Documentation/sphinx-static/theme_overrides.css +14 −1
  850. Documentation/sphinx/cdomain.py +165 −0
  851. Documentation/sphinx/kernel-doc.py +8 −0
  852. Documentation/sphinx/kernel_include.py +7 −0
  853. Documentation/sphinx/load_config.py +32 −0
  854. Documentation/sphinx/parse-headers.pl +70 −59
  855. Documentation/sphinx/rstFlatTable.py +6 −0
  856. Documentation/spi/00-INDEX +0 −2
  857. Documentation/stable_api_nonsense.txt +26 −11
  858. Documentation/stable_kernel_rules.txt +75 −35
  859. Documentation/static-keys.txt +9 −0
  860. Documentation/sync_file.txt +14 −0
  861. Documentation/sysctl/README +1 −0
  862. Documentation/sysctl/fs.txt +7 −0
  863. Documentation/sysctl/user.txt +66 −0
  864. Documentation/thermal/sysfs-api.txt +19 −0
  865. Documentation/timers/00-INDEX +0 −4
  866. Documentation/timers/Makefile +0 −5
  867. Documentation/timers/hpet.txt +1 −1
  868. Documentation/trace/ftrace-design.txt +11 −0
  869. Documentation/trace/ftrace.txt +5 −5
  870. Documentation/trace/hwlat_detector.txt +79 −0
  871. Documentation/trace/kprobetrace.txt +6 −3
  872. Documentation/trace/uprobetracer.txt +6 −3
  873. Documentation/vDSO/Makefile +0 −17
  874. Documentation/virtual/kvm/devices/arm-vgic-its.txt +38 −0
  875. Documentation/virtual/kvm/devices/arm-vgic-v3.txt +206 −0
  876. Documentation/virtual/kvm/devices/arm-vgic.txt +17 −35
  877. Documentation/virtual/kvm/devices/vcpu.txt +3 −1
  878. Documentation/vme_api.txt +7 −6
  879. Documentation/watchdog/Makefile +0 −1
  880. Documentation/watchdog/src/Makefile +0 −5
  881. Documentation/watchdog/watchdog-api.txt +1 −1
  882. Documentation/watchdog/watchdog-kernel-api.txt +33 −0
  883. Documentation/watchdog/wdt.txt +1 −1
  884. Documentation/x86/protection-keys.txt +64 −6
  885. Documentation/x86/x86_64/mm.txt +3 −3
  886. Documentation/xtensa/mmu.txt +146 −27
  887. MAINTAINERS +464 −160
  888. Makefile +20 −9
  889. README +2 −6
  890. arch/Kconfig +73 −11
  891. arch/alpha/Kconfig +0 −1
  892. arch/alpha/include/asm/Kbuild +1 −0
  893. arch/alpha/include/asm/uaccess.h +9 −11
  894. arch/alpha/include/uapi/asm/mman.h +5 −0
  895. arch/alpha/kernel/Makefile +1 −1
  896. arch/alpha/kernel/alpha_ksyms.c +0 −102
  897. arch/alpha/kernel/machvec_impl.h +4 −2
  898. arch/alpha/kernel/ptrace.c +6 −3
  899. arch/alpha/kernel/setup.c +1 −0
  900. arch/alpha/kernel/vmlinux.lds.S +1 −0
  901. arch/alpha/lib/callback_srm.S +5 −0
  902. arch/alpha/lib/checksum.c +3 −0
  903. arch/alpha/lib/clear_page.S +2 −1
  904. arch/alpha/lib/clear_user.S +2 −0
  905. arch/alpha/lib/copy_page.S +2 −1
  906. arch/alpha/lib/copy_user.S +4 −15
  907. arch/alpha/lib/csum_ipv6_magic.S +2 −0
  908. arch/alpha/lib/csum_partial_copy.c +2 −0
  909. arch/alpha/lib/dec_and_lock.c +2 −0
  910. arch/alpha/lib/divide.S +3 −0
  911. arch/alpha/lib/ev6-clear_page.S +2 −1
  912. arch/alpha/lib/ev6-clear_user.S +2 −1
  913. arch/alpha/lib/ev6-copy_page.S +2 −1
  914. arch/alpha/lib/ev6-copy_user.S +3 −23
  915. arch/alpha/lib/ev6-csum_ipv6_magic.S +2 −0
  916. arch/alpha/lib/ev6-divide.S +3 −0
  917. arch/alpha/lib/ev6-memchr.S +2 −1
  918. arch/alpha/lib/ev6-memcpy.S +2 −1
  919. arch/alpha/lib/ev6-memset.S +6 −1
  920. arch/alpha/lib/ev67-strcat.S +2 −1
  921. arch/alpha/lib/ev67-strchr.S +2 −1
  922. arch/alpha/lib/ev67-strlen.S +2 −1
  923. arch/alpha/lib/ev67-strncat.S +2 −1
  924. arch/alpha/lib/ev67-strrchr.S +2 −1
  925. arch/alpha/lib/fpreg.c +7 −0
  926. arch/alpha/lib/memchr.S +2 −1
  927. arch/alpha/lib/memcpy.c +2 −3
  928. arch/alpha/lib/memmove.S +2 −1
  929. arch/alpha/lib/memset.S +6 −1
  930. arch/alpha/lib/strcat.S +2 −0
  931. arch/alpha/lib/strchr.S +2 −1
  932. arch/alpha/lib/strcpy.S +2 −1
  933. arch/alpha/lib/strlen.S +2 −1
  934. arch/alpha/lib/strncat.S +2 −1
  935. arch/alpha/lib/strncpy.S +2 −1
  936. arch/alpha/lib/strrchr.S +2 −1
  937. arch/arc/Kconfig +3 −3
  938. arch/arc/Makefile +2 −5
  939. arch/arc/boot/dts/abilis_tb100_dvk.dts +1 −0
  940. arch/arc/boot/dts/abilis_tb101_dvk.dts +1 −0
  941. arch/arc/boot/dts/axs101.dts +1 −0
  942. arch/arc/boot/dts/axs103.dts +1 −0
  943. arch/arc/boot/dts/axs103_idu.dts +1 −0
  944. arch/arc/boot/dts/nsim_700.dts +1 −0
  945. arch/arc/boot/dts/nsim_hs.dts +1 −0
  946. arch/arc/boot/dts/nsim_hs_idu.dts +1 −0
  947. arch/arc/boot/dts/nsimosci.dts +1 −0
  948. arch/arc/boot/dts/nsimosci_hs.dts +1 −0
  949. arch/arc/boot/dts/nsimosci_hs_idu.dts +1 −0
  950. arch/arc/boot/dts/vdk_hs38.dts +1 −0
  951. arch/arc/boot/dts/vdk_hs38_smp.dts +1 −0
  952. arch/arc/boot/dts/zebu_hs.dts +69 −0
  953. arch/arc/boot/dts/zebu_hs_idu.dts +85 −0
  954. arch/arc/configs/axs101_defconfig +3 −0
  955. arch/arc/configs/axs103_defconfig +3 −0
  956. arch/arc/configs/axs103_smp_defconfig +3 −0
  957. arch/arc/configs/nsim_hs_defconfig +4 −1
  958. arch/arc/configs/nsim_hs_smp_defconfig +3 −0
  959. arch/arc/configs/zebu_hs_defconfig +86 −0
  960. arch/arc/configs/zebu_hs_smp_defconfig +89 −0
  961. arch/arc/include/asm/Kbuild +1 −0
  962. arch/arc/include/asm/arcregs.h +1 −9
  963. arch/arc/include/asm/atomic.h +261 −2
  964. arch/arc/include/asm/cache.h +1 −1
  965. arch/arc/include/asm/dwarf.h +38 −0
  966. arch/arc/include/asm/elf.h +1 −2
  967. arch/arc/include/asm/irqflags-arcv2.h +1 −1
  968. arch/arc/include/asm/linkage.h +12 −0
  969. arch/arc/include/asm/perf_event.h +3 −0
  970. arch/arc/include/asm/uaccess.h +9 −2
  971. arch/arc/kernel/ctx_sw_asm.S +2 −1
  972. arch/arc/kernel/entry.S +5 −19
  973. arch/arc/kernel/intc-arcv2.c +1 −1
  974. arch/arc/kernel/module.c +8 −11
  975. arch/arc/kernel/perf_event.c +4 −2
  976. arch/arc/kernel/setup.c +3 −2
  977. arch/arc/kernel/signal.c +4 −4
  978. arch/arc/kernel/unwind.c +17 −7
  979. arch/arc/kernel/vmlinux.lds.S +5 −17
  980. arch/arc/lib/memcmp.S +2 −2
  981. arch/arc/lib/memcpy-700.S +2 −2
  982. arch/arc/lib/memcpy-archs.S +2 −2
  983. arch/arc/lib/memset-archs.S +4 −4
  984. arch/arc/lib/memset.S +4 −4
  985. arch/arc/lib/strchr-700.S +2 −2
  986. arch/arc/lib/strcmp-archs.S +2 −2
  987. arch/arc/lib/strcmp.S +2 −2
  988. arch/arc/lib/strcpy-700.S +2 −2
  989. arch/arc/lib/strlen.S +2 −2
  990. arch/arc/mm/cache.c +18 −5
  991. arch/arc/mm/ioremap.c +1 −1
  992. arch/arc/plat-sim/platform.c +1 −0
  993. arch/arm/Kconfig +4 −3
  994. arch/arm/Kconfig.debug +11 −11
  995. arch/arm/Makefile +0 −1
  996. arch/arm/boot/Makefile +2 −0
  997. arch/arm/boot/compressed/head.S +1 −1
  998. arch/arm/boot/dts/Makefile +47 −12
  999. arch/arm/boot/dts/am335x-baltos.dtsi +4 −4
  1000. arch/arm/boot/dts/am335x-base0033.dts +2 −2
  1001. arch/arm/boot/dts/am335x-bone-common.dtsi +6 −6
  1002. arch/arm/boot/dts/am335x-boneblack.dts +67 −15
  1003. arch/arm/boot/dts/am335x-chilisom.dtsi +1 −1
  1004. arch/arm/boot/dts/am335x-cm-t335.dts +4 −4
  1005. arch/arm/boot/dts/am335x-evm.dts +10 −8
  1006. arch/arm/boot/dts/am335x-evmsk.dts +36 −34
  1007. arch/arm/boot/dts/am335x-icev2.dts +28 −19
  1008. arch/arm/boot/dts/am335x-igep0033.dtsi +5 −5
  1009. arch/arm/boot/dts/am335x-lxm.dts +3 −3
  1010. arch/arm/boot/dts/am335x-nano.dts +2 −2
  1011. arch/arm/boot/dts/am335x-pepper.dts +9 −9
  1012. arch/arm/boot/dts/am335x-phycore-som.dtsi +3 −3
  1013. arch/arm/boot/dts/am335x-shc.dts +8 −8
  1014. arch/arm/boot/dts/am335x-sl50.dts +10 −5
  1015. arch/arm/boot/dts/am335x-wega.dtsi +63 −1
  1016. arch/arm/boot/dts/am33xx.dtsi +15 −77
  1017. arch/arm/boot/dts/am3517-craneboard.dts +1 −1
  1018. arch/arm/boot/dts/am3517-evm.dts +1 −1
  1019. arch/arm/boot/dts/am3517.dtsi +1 −1
  1020. arch/arm/boot/dts/am3517_mt_ventoux.dts +1 −1
  1021. arch/arm/boot/dts/am4372.dtsi +7 −3
  1022. arch/arm/boot/dts/am437x-cm-t43.dts +0 −6
  1023. arch/arm/boot/dts/am437x-gp-evm.dts +14 −7
  1024. arch/arm/boot/dts/am437x-idk-evm.dts +1 −1
  1025. arch/arm/boot/dts/am437x-sk-evm.dts +35 −10
  1026. arch/arm/boot/dts/am43x-epos-evm.dts +2 −9
  1027. arch/arm/boot/dts/am572x-idk.dts +1 −1
  1028. arch/arm/boot/dts/am57xx-beagle-x15-common.dtsi +596 −0
  1029. arch/arm/boot/dts/am57xx-beagle-x15-revb1.dts +24 −0
  1030. arch/arm/boot/dts/am57xx-beagle-x15.dts +7 −805
  1031. arch/arm/boot/dts/am57xx-cl-som-am57x.dts +2 −2
  1032. arch/arm/boot/dts/am57xx-idk-common.dtsi +49 −0
  1033. arch/arm/boot/dts/arm-realview-eb-11mp-bbrevd-ctrevb.dts +32 −0
  1034. arch/arm/boot/dts/arm-realview-eb-11mp-bbrevd.dts +28 −0
  1035. arch/arm/boot/dts/arm-realview-eb-11mp-ctrevb.dts +0 −0
  1036. arch/arm/boot/dts/arm-realview-eb-11mp.dts +1 −1
  1037. arch/arm/boot/dts/arm-realview-eb-a9mp-bbrevd.dts +28 −0
  1038. arch/arm/boot/dts/arm-realview-eb-bbrevd.dts +29 −0
  1039. arch/arm/boot/dts/arm-realview-eb-bbrevd.dtsi +45 −0
  1040. arch/arm/boot/dts/arm-realview-eb.dtsi +7 −16
  1041. arch/arm/boot/dts/armada-370-db.dts +15 −14
  1042. arch/arm/boot/dts/armada-370-seagate-personal-cloud.dtsi +20 −20
  1043. arch/arm/boot/dts/armada-370-synology-ds213j.dts +56 −56
  1044. arch/arm/boot/dts/armada-370-xp.dtsi +36 −20
  1045. arch/arm/boot/dts/armada-370.dtsi +16 −18
  1046. arch/arm/boot/dts/armada-385-db-ap.dts +41 −17
  1047. arch/arm/boot/dts/armada-385-linksys.dtsi +4 −5
  1048. arch/arm/boot/dts/armada-388-clearfog.dts +28 −28
  1049. arch/arm/boot/dts/armada-388-db.dts +13 −12
  1050. arch/arm/boot/dts/armada-388-gp.dts +15 −15
  1051. arch/arm/boot/dts/armada-388-rd.dts +13 −12
  1052. arch/arm/boot/dts/armada-38x.dtsi +33 −24
  1053. arch/arm/boot/dts/armada-390-db.dts +175 −0
  1054. arch/arm/boot/dts/armada-390.dtsi +3 −0
  1055. arch/arm/boot/dts/armada-395-gp.dts +163 −0
  1056. arch/arm/boot/dts/armada-395.dtsi +76 −0
  1057. arch/arm/boot/dts/armada-398-db.dts +32 −24
  1058. arch/arm/boot/dts/armada-398.dtsi +9 −1
  1059. arch/arm/boot/dts/armada-39x.dtsi +101 −25
  1060. arch/arm/boot/dts/armada-xp-axpwifiap.dts +12 −12
  1061. arch/arm/boot/dts/armada-xp-db.dts +12 −12
  1062. arch/arm/boot/dts/armada-xp-gp.dts +12 −12
  1063. arch/arm/boot/dts/armada-xp-linksys-mamba.dts +12 −12
  1064. arch/arm/boot/dts/armada-xp-synology-ds414.dts +56 −56
  1065. arch/arm/boot/dts/armada-xp.dtsi +18 −13
  1066. arch/arm/boot/dts/armv7-m.dtsi +0 −2
  1067. arch/arm/boot/dts/artpec6.dtsi +20 −11
  1068. arch/arm/boot/dts/axp209.dtsi +6 −0
  1069. arch/arm/boot/dts/bcm-nsp.dtsi +37 −0
  1070. arch/arm/boot/dts/bcm2835-rpi-a-plus.dts +1 −0
  1071. arch/arm/boot/dts/bcm2835-rpi-a.dts +1 −0
  1072. arch/arm/boot/dts/bcm2835-rpi-b-plus.dts +1 −0
  1073. arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts +1 −0
  1074. arch/arm/boot/dts/bcm2835-rpi-b.dts +1 −0
  1075. arch/arm/boot/dts/bcm2835-rpi-zero.dts +40 −0
  1076. arch/arm/boot/dts/bcm2835-rpi.dtsi +1 −0
  1077. arch/arm/boot/dts/bcm2836-rpi-2-b.dts +1 −0
  1078. arch/arm/boot/dts/bcm283x-rpi-usb-host.dtsi +3 −0
  1079. arch/arm/boot/dts/bcm283x.dtsi +11 −1
  1080. arch/arm/boot/dts/bcm5301x.dtsi +11 −0
  1081. arch/arm/boot/dts/bcm958522er.dts +130 −0
  1082. arch/arm/boot/dts/bcm958525er.dts +142 −0
  1083. arch/arm/boot/dts/bcm958525xmc.dts +43 −1
  1084. arch/arm/boot/dts/bcm958622hr.dts +170 −0
  1085. arch/arm/boot/dts/bcm958623hr.dts +178 −0
  1086. arch/arm/boot/dts/bcm958625hr.dts +70 −1
  1087. arch/arm/boot/dts/bcm958625k.dts +13 −0
  1088. arch/arm/boot/dts/bcm988312hr.dts +182 −0
  1089. arch/arm/boot/dts/berlin2-sony-nsz-gs7.dts +1 −1
  1090. arch/arm/boot/dts/berlin2.dtsi +3 −4
  1091. arch/arm/boot/dts/berlin2cd-google-chromecast.dts +1 −1
  1092. arch/arm/boot/dts/berlin2cd.dtsi +3 −2
  1093. arch/arm/boot/dts/berlin2q-marvell-dmp.dts +1 −1
  1094. arch/arm/boot/dts/berlin2q.dtsi +3 −5
  1095. arch/arm/boot/dts/da850-evm.dts +45 −6
  1096. arch/arm/boot/dts/da850-lcdk.dts +221 −0
  1097. arch/arm/boot/dts/da850.dtsi +51 −29
  1098. arch/arm/boot/dts/dm8148-evm.dts +2 −2
  1099. arch/arm/boot/dts/dm8148-t410.dts +2 −2
  1100. arch/arm/boot/dts/dm814x.dtsi +2 −2
  1101. arch/arm/boot/dts/dm8168-evm.dts +2 −2
  1102. arch/arm/boot/dts/dm816x.dtsi +2 −2
  1103. arch/arm/boot/dts/dra62x-j5eco-evm.dts +2 −2
  1104. arch/arm/boot/dts/dra7-evm.dts +7 −7
  1105. arch/arm/boot/dts/dra7.dtsi +10 −26
  1106. arch/arm/boot/dts/dra72-evm-common.dtsi +2 −2
  1107. arch/arm/boot/dts/dra72-evm-revc.dts +1 −1
  1108. arch/arm/boot/dts/dra72-evm.dts +1 −1
  1109. arch/arm/boot/dts/dra74x.dtsi +0 −1
  1110. arch/arm/boot/dts/dra7xx-clocks.dtsi +11 −4
  1111. arch/arm/boot/dts/efm32gg-dk3750.dts +3 −2
  1112. arch/arm/boot/dts/efm32gg.dtsi +4 −0
  1113. arch/arm/boot/dts/exynos3250-artik5.dtsi +2 −1
  1114. arch/arm/boot/dts/exynos3250-monk.dts +2 −1
  1115. arch/arm/boot/dts/exynos3250-pinctrl.dtsi +167 −179
  1116. arch/arm/boot/dts/exynos3250-rinato.dts +2 −1
  1117. arch/arm/boot/dts/exynos3250.dtsi +2 −1
  1118. arch/arm/boot/dts/exynos4.dtsi +2 −1
  1119. arch/arm/boot/dts/exynos4210-origen.dts +2 −1
  1120. arch/arm/boot/dts/exynos4210-pinctrl.dtsi +230 −228
  1121. arch/arm/boot/dts/exynos4210-smdkv310.dts +8 −7
  1122. arch/arm/boot/dts/exynos4210-trats.dts +2 −1
  1123. arch/arm/boot/dts/exynos4210-universal_c210.dts +7 −6
  1124. arch/arm/boot/dts/exynos4412-odroid-common.dtsi +8 −8
  1125. arch/arm/boot/dts/exynos4412-odroidu3.dts +2 −1
  1126. arch/arm/boot/dts/exynos4412-odroidx.dts +3 −2
  1127. arch/arm/boot/dts/exynos4412-odroidx2.dts +2 −1
  1128. arch/arm/boot/dts/exynos4412-origen.dts +8 −7
  1129. arch/arm/boot/dts/exynos4412-smdk4412.dts +8 −7
  1130. arch/arm/boot/dts/exynos4412-tiny4412.dts +2 −1
  1131. arch/arm/boot/dts/exynos4412-trats2.dts +2 −1
  1132. arch/arm/boot/dts/exynos4415-pinctrl.dtsi +149 −147
  1133. arch/arm/boot/dts/exynos4415.dtsi +2 −1
  1134. arch/arm/boot/dts/exynos4x12-pinctrl.dtsi +259 −266
  1135. arch/arm/boot/dts/exynos4x12.dtsi +4 −1
  1136. arch/arm/boot/dts/exynos5.dtsi +2 −1
  1137. arch/arm/boot/dts/exynos5250-arndale.dts +3 −2
  1138. arch/arm/boot/dts/exynos5250-pinctrl.dtsi +203 −201
  1139. arch/arm/boot/dts/exynos5250-smdk5250.dts +6 −5
  1140. arch/arm/boot/dts/exynos5250-snow-common.dtsi +41 −40
  1141. arch/arm/boot/dts/exynos5250-snow-rev5.dts +3 −3
  1142. arch/arm/boot/dts/exynos5250-snow.dts +3 −3
  1143. arch/arm/boot/dts/exynos5250-spring.dts +39 −38
  1144. arch/arm/boot/dts/exynos5260-pinctrl.dtsi +139 −141
  1145. arch/arm/boot/dts/exynos5260-xyref5260.dts +5 −4
  1146. arch/arm/boot/dts/exynos5260.dtsi +2 −2
  1147. arch/arm/boot/dts/exynos5410-odroidxu.dts +18 −20
  1148. arch/arm/boot/dts/exynos5410-pinctrl.dtsi +92 −90
  1149. arch/arm/boot/dts/exynos5410-smdk5410.dts +7 −6
  1150. arch/arm/boot/dts/exynos5420-arndale-octa.dts +18 −4
  1151. arch/arm/boot/dts/exynos5420-peach-pit.dts +66 −65
  1152. arch/arm/boot/dts/exynos5420-pinctrl.dtsi +179 −177
  1153. arch/arm/boot/dts/exynos5420-smdk5420.dts +12 −11
  1154. arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi +13 −12
  1155. arch/arm/boot/dts/exynos5440-sd5v1.dts +6 −0
  1156. arch/arm/boot/dts/exynos5440-ssdk5440.dts +6 −0
  1157. arch/arm/boot/dts/exynos5440.dtsi +2 −1
  1158. arch/arm/boot/dts/exynos54xx.dtsi +0 −1
  1159. arch/arm/boot/dts/exynos5800-peach-pi.dts +66 −65
  1160. arch/arm/boot/dts/imx35.dtsi +7 −0
  1161. arch/arm/boot/dts/imx50.dtsi +10 −0
  1162. arch/arm/boot/dts/imx53-usbarmory.dts +224 −0
  1163. arch/arm/boot/dts/imx53.dtsi +18 −0
  1164. arch/arm/boot/dts/imx6dl-gw553x.dts +55 −0
  1165. arch/arm/boot/dts/imx6dl-riotboard.dts +11 −11
  1166. arch/arm/boot/dts/imx6dl-ts4900.dts +49 −0
  1167. arch/arm/boot/dts/imx6dl.dtsi +53 −0
  1168. arch/arm/boot/dts/imx6q-arm2.dts +12 −12
  1169. arch/arm/boot/dts/imx6q-b450v3.dts +16 −0
  1170. arch/arm/boot/dts/imx6q-b650v3.dts +9 −0
  1171. arch/arm/boot/dts/imx6q-ba16.dtsi +12 −12
  1172. arch/arm/boot/dts/imx6q-bx50v3.dtsi +70 −0
  1173. arch/arm/boot/dts/imx6q-cm-fx6.dts +12 −12
  1174. arch/arm/boot/dts/imx6q-dmo-edmqmx6.dts +12 −12
  1175. arch/arm/boot/dts/imx6q-evi.dts +16 −12
  1176. arch/arm/boot/dts/imx6q-gw5400-a.dts +12 −12
  1177. arch/arm/boot/dts/imx6q-gw553x.dts +55 −0
  1178. arch/arm/boot/dts/imx6q-marsboard.dts +12 −12
  1179. arch/arm/boot/dts/imx6q-novena.dts +6 −6
  1180. arch/arm/boot/dts/imx6q-sbc6x.dts +12 −12
  1181. arch/arm/boot/dts/imx6q-tbs2910.dts +12 −12
  1182. arch/arm/boot/dts/imx6q-ts4900.dts +53 −0
  1183. arch/arm/boot/dts/imx6q.dtsi +37 −0
  1184. arch/arm/boot/dts/imx6qdl-apalis.dtsi +12 −12
  1185. arch/arm/boot/dts/imx6qdl-dfi-fs700-m60.dtsi +12 −12
  1186. arch/arm/boot/dts/imx6qdl-gw51xx.dtsi +24 −12
  1187. arch/arm/boot/dts/imx6qdl-gw52xx.dtsi +27 −12
  1188. arch/arm/boot/dts/imx6qdl-gw53xx.dtsi +27 −12
  1189. arch/arm/boot/dts/imx6qdl-gw54xx.dtsi +32 −12
  1190. arch/arm/boot/dts/imx6qdl-gw551x.dtsi +12 −0
  1191. arch/arm/boot/dts/imx6qdl-gw552x.dtsi +12 −0
  1192. arch/arm/boot/dts/imx6qdl-gw553x.dtsi +433 −0
  1193. arch/arm/boot/dts/imx6qdl-icore-rqs.dtsi +12 −12
  1194. arch/arm/boot/dts/imx6qdl-nit6xlite.dtsi +6 −6
  1195. arch/arm/boot/dts/imx6qdl-nitrogen6_max.dtsi +12 −12
  1196. arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi +12 −12
  1197. arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi +24 −12
  1198. arch/arm/boot/dts/imx6qdl-rex.dtsi +12 −12
  1199. arch/arm/boot/dts/imx6qdl-sabreauto.dtsi +12 −12
  1200. arch/arm/boot/dts/imx6qdl-sabrelite.dtsi +12 −12
  1201. arch/arm/boot/dts/imx6qdl-sabresd.dtsi +12 −12
  1202. arch/arm/boot/dts/imx6qdl-ts4900.dtsi +481 −0
  1203. arch/arm/boot/dts/imx6qdl-udoo.dtsi +12 −12
  1204. arch/arm/boot/dts/imx6qdl-wandboard.dtsi +12 −12
  1205. arch/arm/boot/dts/imx6qdl.dtsi +1 −1
  1206. arch/arm/boot/dts/imx6sl.dtsi +47 −0
  1207. arch/arm/boot/dts/imx6sx-pinfunc.h +14 −0
  1208. arch/arm/boot/dts/imx6sx-sabreauto.dts +1 −1
  1209. arch/arm/boot/dts/imx6sx.dtsi +22 −0
  1210. arch/arm/boot/dts/imx6ul-geam-kit.dts +101 −0
  1211. arch/arm/boot/dts/imx6ul-geam.dtsi +361 −0
  1212. arch/arm/boot/dts/imx6ul-pico-hobbit.dts +33 −0
  1213. arch/arm/boot/dts/imx6ul.dtsi +8 −1
  1214. arch/arm/boot/dts/imx7-colibri-eval-v3.dtsi +0 −4
  1215. arch/arm/boot/dts/imx7-colibri.dtsi +57 −4
  1216. arch/arm/boot/dts/imx7d-sdb.dts +1 −1
  1217. arch/arm/boot/dts/imx7d.dtsi +27 −15
  1218. arch/arm/boot/dts/imx7s-warp.dts +446 −0
  1219. arch/arm/boot/dts/imx7s.dtsi +215 −156
  1220. arch/arm/boot/dts/integratorap.dts +50 −1
  1221. arch/arm/boot/dts/integratorcp.dts +63 −11
  1222. arch/arm/boot/dts/keystone-k2e-evm.dts +10 −2
  1223. arch/arm/boot/dts/keystone-k2e.dtsi +2 −2
  1224. arch/arm/boot/dts/keystone-k2g.dtsi +32 −0
  1225. arch/arm/boot/dts/keystone-k2hk-evm.dts +5 −1
  1226. arch/arm/boot/dts/keystone-k2l-evm.dts +5 −1
  1227. arch/arm/boot/dts/keystone.dtsi +2 −2
  1228. arch/arm/boot/dts/kirkwood-ib62x0.dts +1 −1
  1229. arch/arm/boot/dts/kirkwood-openblocks_a6.dts +8 −1
  1230. arch/arm/boot/dts/kirkwood-openrd.dtsi +4 −0
  1231. arch/arm/boot/dts/logicpd-som-lv.dtsi +6 −5
  1232. arch/arm/boot/dts/logicpd-torpedo-som.dtsi +6 −0
  1233. arch/arm/boot/dts/lpc18xx.dtsi +7 −0
  1234. arch/arm/boot/dts/lpc32xx.dtsi +11 −1
  1235. arch/arm/boot/dts/lpc4337-ciaa.dts +1 −1
  1236. arch/arm/boot/dts/lpc4350-hitex-eval.dts +2 −2
  1237. arch/arm/boot/dts/lpc4357-ea4357-devkit.dts +1 −1
  1238. arch/arm/boot/dts/ls1021a-twr.dts +12 −1
  1239. arch/arm/boot/dts/meson8b.dtsi +21 −0
  1240. arch/arm/boot/dts/mps2.dtsi +1 −0
  1241. arch/arm/boot/dts/ntc-gr8-evb.dts +342 −0
  1242. arch/arm/boot/dts/ntc-gr8.dtsi +1087 −0
  1243. arch/arm/boot/dts/omap2.dtsi +2 −2
  1244. arch/arm/boot/dts/omap2420-h4.dts +1 −1
  1245. arch/arm/boot/dts/omap2420-n8x0-common.dtsi +1 −1
  1246. arch/arm/boot/dts/omap2430-sdp.dts +1 −1
  1247. arch/arm/boot/dts/omap3-beagle-xm.dts +1 −1
  1248. arch/arm/boot/dts/omap3-beagle.dts +1 −1
  1249. arch/arm/boot/dts/omap3-cm-t3x.dtsi +1 −1
  1250. arch/arm/boot/dts/omap3-devkit8000-common.dtsi +1 −1
  1251. arch/arm/boot/dts/omap3-evm-37xx.dts +1 −1
  1252. arch/arm/boot/dts/omap3-evm.dts +1 −1
  1253. arch/arm/boot/dts/omap3-gta04.dtsi +2 −2
  1254. arch/arm/boot/dts/omap3-igep.dtsi +1 −1
  1255. arch/arm/boot/dts/omap3-ldp.dts +1 −1
  1256. arch/arm/boot/dts/omap3-lilly-a83x.dtsi +1 −1
  1257. arch/arm/boot/dts/omap3-n900.dts +1 −1
  1258. arch/arm/boot/dts/omap3-n950-n9.dtsi +3 −3
  1259. arch/arm/boot/dts/omap3-overo-alto35-common.dtsi +1 −1
  1260. arch/arm/boot/dts/omap3-overo-base.dtsi +9 −1
  1261. arch/arm/boot/dts/omap3-overo-chestnut43-common.dtsi +2 −4
  1262. arch/arm/boot/dts/omap3-overo-common-lcd35.dtsi +1 −1
  1263. arch/arm/boot/dts/omap3-overo-gallop43-common.dtsi +2 −2
  1264. arch/arm/boot/dts/omap3-overo-palo35-common.dtsi +2 −2
  1265. arch/arm/boot/dts/omap3-overo-palo43-common.dtsi +2 −2
  1266. arch/arm/boot/dts/omap3-overo-tobi-common.dtsi +0 −2
  1267. arch/arm/boot/dts/omap3-overo-tobiduo-common.dtsi +0 −3
  1268. arch/arm/boot/dts/omap3-pandora-common.dtsi +5 −5
  1269. arch/arm/boot/dts/omap3-sniper.dts +1 −1
  1270. arch/arm/boot/dts/omap3-tao3530.dtsi +1 −1
  1271. arch/arm/boot/dts/omap3-zoom3.dts +1 −1
  1272. arch/arm/boot/dts/omap3.dtsi +3 −3
  1273. arch/arm/boot/dts/omap3430-sdp.dts +1 −1
  1274. arch/arm/boot/dts/omap34xx.dtsi +1 −1
  1275. arch/arm/boot/dts/omap36xx.dtsi +1 −1
  1276. arch/arm/boot/dts/omap4-duovero-parlor.dts +1 −1
  1277. arch/arm/boot/dts/omap4-duovero.dtsi +1 −1
  1278. arch/arm/boot/dts/omap4-kc1.dts +1 −1
  1279. arch/arm/boot/dts/omap4-panda-common.dtsi +3 −1
  1280. arch/arm/boot/dts/omap4-sdp.dts +1 −1
  1281. arch/arm/boot/dts/omap4-var-som-om44.dtsi +1 −1
  1282. arch/arm/boot/dts/omap4.dtsi +2 −2
  1283. arch/arm/boot/dts/omap5-board-common.dtsi +15 −14
  1284. arch/arm/boot/dts/omap5-cm-t54.dts +3 −3
  1285. arch/arm/boot/dts/omap5-igep0050.dts +40 −2
  1286. arch/arm/boot/dts/omap5-uevm.dts +16 −2
  1287. arch/arm/boot/dts/omap5.dtsi +12 −14
  1288. arch/arm/boot/dts/orion5x-mv88f5181.dtsi +49 −0
  1289. arch/arm/boot/dts/orion5x-netgear-wnr854t.dts +251 −0
  1290. arch/arm/boot/dts/orion5x.dtsi +2 −1
  1291. arch/arm/boot/dts/qcom-apq8060-dragonboard.dts +39 −0
  1292. arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dts +15 −0
  1293. arch/arm/boot/dts/qcom-apq8064.dtsi +160 −20
  1294. arch/arm/boot/dts/qcom-apq8084.dtsi +103 −0
  1295. arch/arm/boot/dts/qcom-ipq8064-ap148.dts +1 −0
  1296. arch/arm/boot/dts/qcom-msm8660.dtsi +57 −18
  1297. arch/arm/boot/dts/qcom-msm8974-lge-nexus5-hammerhead.dts +262 −0
  1298. arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dts +59 −22
  1299. arch/arm/boot/dts/qcom-msm8974.dtsi +139 −0
  1300. arch/arm/boot/dts/qcom-pm8941.dtsi +5 −0
  1301. arch/arm/boot/dts/r7s72100-rskrza1.dts +61 −0
  1302. arch/arm/boot/dts/r7s72100.dtsi +22 −0
  1303. arch/arm/boot/dts/r8a7790.dtsi +0 −23
  1304. arch/arm/boot/dts/r8a7791.dtsi +0 −18
  1305. arch/arm/boot/dts/r8a7792-blanche.dts +264 −0
  1306. arch/arm/boot/dts/r8a7792-wheat.dts +199 −0
  1307. arch/arm/boot/dts/r8a7792.dtsi +549 −5
  1308. arch/arm/boot/dts/r8a7794-alt.dts +106 −0
  1309. arch/arm/boot/dts/r8a7794-silk.dts +70 −0
  1310. arch/arm/boot/dts/r8a7794.dtsi +308 −1
  1311. arch/arm/boot/dts/rk3036.dtsi +11 −1
  1312. arch/arm/boot/dts/rk3288-evb-act8846.dts +4 −0
  1313. arch/arm/boot/dts/rk3288-evb-rk808.dts +4 −0
  1314. arch/arm/boot/dts/rk3288-evb.dtsi +44 −1
  1315. arch/arm/boot/dts/rk3288-fennec.dts +382 −0
  1316. arch/arm/boot/dts/rk3288-firefly-reload-core.dtsi +310 −0
  1317. arch/arm/boot/dts/rk3288-firefly-reload.dts +403 −0
  1318. arch/arm/boot/dts/rk3288-popmetal.dts +10 −2
  1319. arch/arm/boot/dts/rk3288.dtsi +41 −32
  1320. arch/arm/boot/dts/rk3xxx.dtsi +11 −1
  1321. arch/arm/boot/dts/s3c2416-pinctrl.dtsi +20 −18
  1322. arch/arm/boot/dts/s3c6410-mini6410.dts +2 −2
  1323. arch/arm/boot/dts/s3c64xx-pinctrl.dtsi +177 −179
  1324. arch/arm/boot/dts/s5pv210-aquila.dts +3 −3
  1325. arch/arm/boot/dts/s5pv210-goni.dts +1 −1
  1326. arch/arm/boot/dts/s5pv210-pinctrl.dtsi +239 −237
  1327. arch/arm/boot/dts/s5pv210-smdkc110.dts +1 −1
  1328. arch/arm/boot/dts/s5pv210-smdkv210.dts +1 −1
  1329. arch/arm/boot/dts/s5pv210-torbreck.dts +1 −1
  1330. arch/arm/boot/dts/s5pv210.dtsi +3 −1
  1331. arch/arm/boot/dts/sama5d2.dtsi +29 −0
  1332. arch/arm/boot/dts/skeleton.dtsi +4 −0
  1333. arch/arm/boot/dts/socfpga_arria10.dtsi +16 −0
  1334. arch/arm/boot/dts/socfpga_arria10_socdk_sdmmc.dts +12 −0
  1335. arch/arm/boot/dts/ste-nomadik-nhk15.dts +68 −0
  1336. arch/arm/boot/dts/ste-nomadik-stn8815.dtsi +28 −0
  1337. arch/arm/boot/dts/stih407-clock.dtsi +11 −11
  1338. arch/arm/boot/dts/stih407-family.dtsi +190 −5
  1339. arch/arm/boot/dts/stih407-pinctrl.dtsi +106 −34
  1340. arch/arm/boot/dts/stih407.dtsi +13 −3
  1341. arch/arm/boot/dts/stih410-b2260.dts +194 −0
  1342. arch/arm/boot/dts/stih410-clock.dtsi +10 −10
  1343. arch/arm/boot/dts/stih410.dtsi +39 −7
  1344. arch/arm/boot/dts/stih415-pinctrl.dtsi +27 −27
  1345. arch/arm/boot/dts/stih416-b2020e.dts +3 −3
  1346. arch/arm/boot/dts/stih416-pinctrl.dtsi +35 −30
  1347. arch/arm/boot/dts/stih416.dtsi +6 −2
  1348. arch/arm/boot/dts/stih418-b2199.dts +4 −4
  1349. arch/arm/boot/dts/stih418-clock.dtsi +10 −10
  1350. arch/arm/boot/dts/stih41x-b2000.dtsi +3 −2
  1351. arch/arm/boot/dts/stih41x-b2020.dtsi +3 −3
  1352. arch/arm/boot/dts/stihxxx-b2120.dtsi +48 −4
  1353. arch/arm/boot/dts/stm32f429.dtsi +10 −0
  1354. arch/arm/boot/dts/sun4i-a10-ba10-tvbox.dts +0 −4
  1355. arch/arm/boot/dts/sun5i-a13-empire-electronix-m712.dts +51 −0
  1356. arch/arm/boot/dts/sun5i-a13-inet-98v-rev2.dts +1 −163
  1357. arch/arm/boot/dts/sun5i-a13.dtsi +1 −1
  1358. arch/arm/boot/dts/sun5i-r8-chip.dts +10 −0
  1359. arch/arm/boot/dts/sun6i-a31.dtsi +101 −331
  1360. arch/arm/boot/dts/sun6i-a31s-colorfly-e708-q1.dts +1 −137
  1361. arch/arm/boot/dts/sun6i-a31s-inet-q972.dts +100 −0
  1362. arch/arm/boot/dts/sun6i-reference-design-tablet.dtsi +193 −0
  1363. arch/arm/boot/dts/sun7i-a20.dtsi +4 −4
  1364. arch/arm/boot/dts/sun8i-a23-a33.dtsi +116 −196
  1365. arch/arm/boot/dts/sun8i-a23-gt90h-v4.dts +7 −188
  1366. arch/arm/boot/dts/sun8i-a23-inet86dz.dts +9 −0
  1367. arch/arm/boot/dts/sun8i-a23-polaroid-mid2407pxe03.dts +68 −0
  1368. arch/arm/boot/dts/sun8i-a23-polaroid-mid2809pxe04.dts +51 −0
  1369. arch/arm/boot/dts/sun8i-a23.dtsi +13 −67
  1370. arch/arm/boot/dts/sun8i-a33-ga10h-v1.1.dts +28 −0
  1371. arch/arm/boot/dts/sun8i-a33-inet-d978-rev2.dts +108 −0
  1372. arch/arm/boot/dts/sun8i-a33-olinuxino.dts +226 −0
  1373. arch/arm/boot/dts/sun8i-a33.dtsi +159 −77
  1374. arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts +1 −1
  1375. arch/arm/boot/dts/sun8i-h3-nanopi-neo.dts +125 −0
  1376. arch/arm/boot/dts/sun8i-h3-orangepi-2.dts +28 −0
  1377. arch/arm/boot/dts/sun8i-h3-orangepi-lite.dts +178 −0
  1378. arch/arm/boot/dts/sun8i-h3-orangepi-one.dts +18 −0
  1379. arch/arm/boot/dts/sun8i-h3-orangepi-pc-plus.dts +88 −0
  1380. arch/arm/boot/dts/sun8i-h3-orangepi-pc.dts +18 −0
  1381. arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts +1 −1
  1382. arch/arm/boot/dts/sun8i-h3-orangepi-plus2e.dts +53 −0
  1383. arch/arm/boot/dts/sun8i-h3.dtsi +94 −5
  1384. arch/arm/boot/dts/sun8i-q8-common.dtsi +49 −0
  1385. arch/arm/boot/dts/sun8i-reference-design-tablet.dtsi +26 −0
  1386. arch/arm/boot/dts/sun9i-a80-cubieboard4.dts +145 −0
  1387. arch/arm/boot/dts/sun9i-a80-optimus.dts +150 −2
  1388. arch/arm/boot/dts/sun9i-a80.dtsi +6 −8
  1389. arch/arm/boot/dts/tegra114-dalmore.dts +1 −1
  1390. arch/arm/boot/dts/tegra114-roth.dts +1 −1
  1391. arch/arm/boot/dts/tegra114-tn7.dts +1 −1
  1392. arch/arm/boot/dts/tegra114.dtsi +4 −4
  1393. arch/arm/boot/dts/tegra124-jetson-tk1.dts +5 −17
  1394. arch/arm/boot/dts/tegra124.dtsi +82 −1
  1395. arch/arm/boot/dts/uniphier-common32.dtsi +56 −7
  1396. arch/arm/boot/dts/uniphier-ld4-ref.dts +6 −5
  1397. arch/arm/boot/dts/uniphier-ld4.dtsi +40 −19
  1398. arch/arm/boot/dts/uniphier-ld6b-ref.dts +6 −5
  1399. arch/arm/boot/dts/uniphier-ld6b.dtsi +9 −8
  1400. arch/arm/boot/dts/uniphier-pro4-ace.dts +6 −5
  1401. arch/arm/boot/dts/uniphier-pro4-ref.dts +6 −5
  1402. arch/arm/boot/dts/uniphier-pro4-sanji.dts +6 −5
  1403. arch/arm/boot/dts/uniphier-pro4.dtsi +41 −22
  1404. arch/arm/boot/dts/uniphier-pro5.dtsi +36 −22
  1405. arch/arm/boot/dts/uniphier-pxs2-gentil.dts +7 −5
  1406. arch/arm/boot/dts/uniphier-pxs2-vodka.dts +6 −5
  1407. arch/arm/boot/dts/uniphier-pxs2.dtsi +39 −23
  1408. arch/arm/boot/dts/uniphier-sld3-ref.dts +6 −5
  1409. arch/arm/boot/dts/uniphier-sld3.dtsi +51 −24
  1410. arch/arm/boot/dts/uniphier-sld8-ref.dts +6 −5
  1411. arch/arm/boot/dts/uniphier-sld8.dtsi +40 −19
  1412. arch/arm/boot/dts/vf-colibri-eval-v3.dtsi +12 −1
  1413. arch/arm/boot/dts/vf610m4.dtsi +1 −0
  1414. arch/arm/common/bL_switcher_dummy_if.c +1 −13
  1415. arch/arm/common/locomo.c +2 −3
  1416. arch/arm/common/sa1111.c +276 −190
  1417. arch/arm/configs/colibri_pxa270_defconfig +0 −1
  1418. arch/arm/configs/davinci_all_defconfig +25 −41
  1419. arch/arm/configs/exynos_defconfig +9 −2
  1420. arch/arm/configs/imx_v4_v5_defconfig +1 −2
  1421. arch/arm/configs/imx_v6_v7_defconfig +11 −6
  1422. arch/arm/configs/integrator_defconfig +3 −10
  1423. arch/arm/configs/keystone_defconfig +1 −0
  1424. arch/arm/configs/lpd270_defconfig +0 −1
  1425. arch/arm/configs/multi_v4t_defconfig +1 −3
  1426. arch/arm/configs/multi_v7_defconfig +11 −2
  1427. arch/arm/configs/mvebu_v5_defconfig +1 −4
  1428. arch/arm/configs/mvebu_v7_defconfig +3 −0
  1429. arch/arm/configs/omap2plus_defconfig +1 −1
  1430. arch/arm/configs/pxa255-idp_defconfig +0 −1
  1431. arch/arm/configs/pxa_defconfig +0 −2
  1432. arch/arm/configs/s3c2410_defconfig +0 −1
  1433. arch/arm/configs/trizeps4_defconfig +0 −2
  1434. arch/arm/crypto/aes-ce-glue.c +1 −1
  1435. arch/arm/crypto/ghash-ce-glue.c +25 −1
  1436. arch/arm/crypto/sha1-armv7-neon.S +0 −1
  1437. arch/arm/include/asm/Kbuild +1 −0
  1438. arch/arm/include/asm/arch_gicv3.h +81 −16
  1439. arch/arm/include/asm/assembler.h +4 −0
  1440. arch/arm/include/asm/cacheflush.h +0 −17
  1441. arch/arm/include/asm/cachetype.h +39 −0
  1442. arch/arm/include/asm/clocksource.h +8 −0
  1443. arch/arm/include/asm/cp15.h +15 −0
  1444. arch/arm/include/asm/cputype.h +32 −5
  1445. arch/arm/include/asm/delay.h +1 −1
  1446. arch/arm/include/asm/dma-mapping.h +1 −1
  1447. arch/arm/include/asm/flat.h +3 −2
  1448. arch/arm/include/asm/glue-cache.h +0 −4
  1449. arch/arm/include/asm/hardware/cache-l2x0.h +19 −0
  1450. arch/arm/include/asm/hardware/cache-uniphier.h +2 −18
  1451. arch/arm/include/asm/hardware/sa1111.h +3 −1
  1452. arch/arm/include/asm/hw_breakpoint.h +0 −1
  1453. arch/arm/include/asm/irq.h +3 −2
  1454. arch/arm/include/asm/kvm_asm.h +7 −0
  1455. arch/arm/include/asm/kvm_emulate.h +28 −7
  1456. arch/arm/include/asm/kvm_host.h +11 −6
  1457. arch/arm/include/asm/kvm_hyp.h +4 −14
  1458. arch/arm/include/asm/kvm_mmu.h +2 −26
  1459. arch/arm/include/asm/memory.h +3 −12
  1460. arch/arm/include/asm/module.h +2 −4
  1461. arch/arm/include/asm/pgtable-2level-hwdef.h +1 −0
  1462. arch/arm/include/asm/pgtable-3level-hwdef.h +1 −0
  1463. arch/arm/include/asm/trusted_foundations.h +0 −1
  1464. arch/arm/include/asm/uaccess.h +6 −5
  1465. arch/arm/include/asm/v7m.h +22 −0
  1466. arch/arm/include/debug/brcmstb.S +145 −0
  1467. arch/arm/include/uapi/asm/kvm.h +7 −0
  1468. arch/arm/kernel/Makefile +1 −1
  1469. arch/arm/kernel/armksyms.c +0 −183
  1470. arch/arm/kernel/cpuidle.c +1 −1
  1471. arch/arm/kernel/devtree.c +11 −3
  1472. arch/arm/kernel/entry-ftrace.S +3 −0
  1473. arch/arm/kernel/ftrace.c +1 −1
  1474. arch/arm/kernel/head-nommu.S +15 −1
  1475. arch/arm/kernel/head.S +3 −0
  1476. arch/arm/kernel/hyp-stub.S +13 −0
  1477. arch/arm/kernel/module-plts.c +144 −99
  1478. arch/arm/kernel/module.lds +1 −2
  1479. arch/arm/kernel/perf_event_v7.c +28 −19
  1480. arch/arm/kernel/process.c +1 −2
  1481. arch/arm/kernel/setup.c +12 −14
  1482. arch/arm/kernel/smccc-call.S +3 −0
  1483. arch/arm/kernel/smp.c +3 −12
  1484. arch/arm/kernel/vdso.c +7 −6
  1485. arch/arm/kernel/vmlinux-xip.lds.S +1 −0
  1486. arch/arm/kernel/vmlinux.lds.S +1 −0
  1487. arch/arm/kvm/Makefile +3 −0
  1488. arch/arm/kvm/arm.c +21 −10
  1489. arch/arm/kvm/coproc.c +35 −0
  1490. arch/arm/kvm/emulate.c +12 −99
  1491. arch/arm/kvm/handle_exit.c +22 −27
  1492. arch/arm/kvm/hyp/Makefile +1 −0
  1493. arch/arm/kvm/hyp/entry.S +31 −0
  1494. arch/arm/kvm/hyp/hyp-entry.S +15 −1
  1495. arch/arm/kvm/hyp/switch.c +20 −5
  1496. arch/arm/kvm/hyp/tlb.c +4 −11
  1497. arch/arm/kvm/mmio.c +0 −6
  1498. arch/arm/kvm/mmu.c +8 −3
  1499. arch/arm/lib/ashldi3.S +3 −0
  1500. arch/arm/lib/ashrdi3.S +3 −0
  1501. arch/arm/lib/bitops.h +5 −0
  1502. arch/arm/lib/bswapsdi2.S +3 −0
  1503. arch/arm/lib/clear_user.S +4 −0
  1504. arch/arm/lib/copy_from_user.S +5 −6
  1505. arch/arm/lib/copy_page.S +2 −0
  1506. arch/arm/lib/copy_to_user.S +4 −0
  1507. arch/arm/lib/csumipv6.S +2 −1
  1508. arch/arm/lib/csumpartial.S +2 −0
  1509. arch/arm/lib/csumpartialcopy.S +1 −0
  1510. arch/arm/lib/csumpartialcopygeneric.S +2 −0
  1511. arch/arm/lib/csumpartialcopyuser.S +1 −0
  1512. arch/arm/lib/delay.c +3 −1
  1513. arch/arm/lib/div64.S +2 −0
  1514. arch/arm/lib/findbit.S +9 −0
  1515. arch/arm/lib/getuser.S +9 −0
  1516. arch/arm/lib/io-readsb.S +2 −0
  1517. arch/arm/lib/io-readsl.S +2 −0
  1518. arch/arm/lib/io-readsw-armv3.S +2 −1
  1519. arch/arm/lib/io-readsw-armv4.S +2 −0
  1520. arch/arm/lib/io-writesb.S +2 −0
  1521. arch/arm/lib/io-writesl.S +2 −0
  1522. arch/arm/lib/io-writesw-armv3.S +2 −0
  1523. arch/arm/lib/io-writesw-armv4.S +2 −0
  1524. arch/arm/lib/lib1funcs.S +9 −0
  1525. arch/arm/lib/lshrdi3.S +3 −0
  1526. arch/arm/lib/memchr.S +2 −0
  1527. arch/arm/lib/memcpy.S +3 −0
  1528. arch/arm/lib/memmove.S +2 −0
  1529. arch/arm/lib/memset.S +3 −0
  1530. arch/arm/lib/memzero.S +2 −0
  1531. arch/arm/lib/muldi3.S +3 −0
  1532. arch/arm/lib/putuser.S +5 −0
  1533. arch/arm/lib/strchr.S +2 −0
  1534. arch/arm/lib/strrchr.S +2 −0
  1535. arch/arm/lib/uaccess_with_memcpy.c +3 −0
  1536. arch/arm/lib/ucmpdi2.S +3 −0
  1537. arch/arm/mach-at91/Kconfig +0 −1
  1538. arch/arm/mach-axxia/Kconfig +0 −2
  1539. arch/arm/mach-bcm/Kconfig +14 −1
  1540. arch/arm/mach-bcm/brcmstb.c +16 −0
  1541. arch/arm/mach-clps711x/Makefile.boot +0 −0
  1542. arch/arm/mach-clps711x/board-autcpu12.c +0 −275
  1543. arch/arm/mach-clps711x/board-cdb89712.c +0 −147
  1544. arch/arm/mach-clps711x/board-clep7312.c +0 −45
  1545. arch/arm/mach-clps711x/board-edb7211.c +0 −188
  1546. arch/arm/mach-clps711x/board-p720t.c +0 −373
  1547. arch/arm/mach-clps711x/common.c +0 −65
  1548. arch/arm/mach-clps711x/common.h +0 −23
  1549. arch/arm/mach-clps711x/devices.c +0 −149
  1550. arch/arm/mach-clps711x/devices.h +0 −12
  1551. arch/arm/mach-cns3xxx/Kconfig +0 −1
  1552. arch/arm/mach-davinci/da850.c +1 −0
  1553. arch/arm/mach-davinci/da8xx-dt.c +2 −0
  1554. arch/arm/mach-exynos/Kconfig +1 −2
  1555. arch/arm/mach-exynos/exynos.c +0 −15
  1556. arch/arm/mach-exynos/include/mach/map.h +0 −5
  1557. arch/arm/mach-exynos/suspend.c +6 −0
  1558. arch/arm/mach-footbridge/include/mach/hardware.h +1 −1
  1559. arch/arm/mach-imx/Kconfig +12 −40
  1560. arch/arm/mach-imx/Makefile +2 −7
  1561. arch/arm/mach-imx/common.h +1 −6
  1562. arch/arm/mach-imx/cpuidle-imx6q.c +1 −1
  1563. arch/arm/mach-imx/cpuidle-imx6sx.c +11 −0
  1564. arch/arm/mach-imx/devices-imx1.h +0 −30
  1565. arch/arm/mach-imx/devices/Makefile +0 −1
  1566. arch/arm/mach-imx/devices/devices-common.h +0 −12
  1567. arch/arm/mach-imx/devices/platform-imx-fb.c +0 −5
  1568. arch/arm/mach-imx/devices/platform-imx-i2c.c +0 −5
  1569. arch/arm/mach-imx/devices/platform-imx-uart.c +0 −37
  1570. arch/arm/mach-imx/devices/platform-spi_imx.c +0 −9
  1571. arch/arm/mach-imx/hardware.h +1 −2
  1572. arch/arm/mach-imx/iomux-mx1.h +0 −155
  1573. arch/arm/mach-imx/iomux-mx3.h +0 −34
  1574. arch/arm/mach-imx/mach-apf9328.c +0 −148
  1575. arch/arm/mach-imx/mach-armadillo5x0.c +23 −16
  1576. arch/arm/mach-imx/mach-imx1.c +21 −2
  1577. arch/arm/mach-imx/mach-imx27_visstrim_m10.c +17 −7
  1578. arch/arm/mach-imx/mach-imx6ul.c +4 −0
  1579. arch/arm/mach-imx/mach-kzm_arm11_01.c +10 −5
  1580. arch/arm/mach-imx/mach-mx21ads.c +9 −4
  1581. arch/arm/mach-imx/mach-mx27_3ds.c +20 −10
  1582. arch/arm/mach-imx/mach-mx27ads.c +10 −3
  1583. arch/arm/mach-imx/mach-mx31_3ds.c +23 −16
  1584. arch/arm/mach-imx/mach-mx31ads.c +9 −9
  1585. arch/arm/mach-imx/mach-mx31lilly.c +37 −13
  1586. arch/arm/mach-imx/mach-mx31lite.c +48 −20
  1587. arch/arm/mach-imx/mach-mx31moboard.c +14 −9
  1588. arch/arm/mach-imx/mach-mx35_3ds.c +10 −5
  1589. arch/arm/mach-imx/mach-pca100.c +15 −11
  1590. arch/arm/mach-imx/mach-pcm037.c +34 −35
  1591. arch/arm/mach-imx/mach-pcm043.c +8 −2
  1592. arch/arm/mach-imx/mach-qong.c +1 −1
  1593. arch/arm/mach-imx/mach-scb9328.c +0 −143
  1594. arch/arm/mach-imx/mach-vpr200.c +17 −12
  1595. arch/arm/mach-imx/mm-imx1.c +0 −67
  1596. arch/arm/mach-imx/mx1.h +0 −172
  1597. arch/arm/mach-imx/mx31lilly-db.c +0 −20
  1598. arch/arm/mach-imx/mx31lite-db.c +0 −33
  1599. arch/arm/mach-imx/pm-imx6.c +6 −6
  1600. arch/arm/mach-imx/ssi-fiq-ksym.c +0 −20
  1601. arch/arm/mach-imx/ssi-fiq.S +6 −1
  1602. arch/arm/mach-integrator/Kconfig +0 −1
  1603. arch/arm/mach-integrator/integrator_ap.c +0 −36
  1604. arch/arm/mach-integrator/integrator_cp.c +13 −110
  1605. arch/arm/mach-keystone/Kconfig +0 −2
  1606. arch/arm/mach-mv78xx0/common.c +2 −7
  1607. arch/arm/mach-mxs/mach-mxs.c +0 −77
  1608. arch/arm/mach-nomadik/Kconfig +1 −0
  1609. arch/arm/mach-omap1/board-h2-mmc.c +1 −1
  1610. arch/arm/mach-omap1/board-h2.c +1 −1
  1611. arch/arm/mach-omap1/board-h3-mmc.c +1 −1
  1612. arch/arm/mach-omap1/board-h3.c +1 −1
  1613. arch/arm/mach-omap1/board-htcherald.c +2 −2
  1614. arch/arm/mach-omap1/board-innovator.c +2 −2
  1615. arch/arm/mach-omap1/board-nokia770.c +2 −2
  1616. arch/arm/mach-omap1/board-sx1-mmc.c +1 −1
  1617. arch/arm/mach-omap1/devices.c +5 −5
  1618. arch/arm/mach-omap1/fb.c +1 −1
  1619. arch/arm/mach-omap1/include/mach/usb.h +1 −1
  1620. arch/arm/mach-omap1/mmc.h +1 −1
  1621. arch/arm/mach-omap1/usb.c +3 −3
  1622. arch/arm/mach-omap2/Kconfig +0 −12
  1623. arch/arm/mach-omap2/Makefile +0 −4
  1624. arch/arm/mach-omap2/board-flash.c +4 −6
  1625. arch/arm/mach-omap2/board-flash.h +3 −8
  1626. arch/arm/mach-omap2/board-ldp.c +0 −430
  1627. arch/arm/mach-omap2/board-n8x0.c +2 −3
  1628. arch/arm/mach-omap2/board-rx51-peripherals.c +0 −1312
  1629. arch/arm/mach-omap2/board-rx51-video.c +0 −67
  1630. arch/arm/mach-omap2/board-rx51.c +0 −141
  1631. arch/arm/mach-omap2/board-rx51.h +0 −11
  1632. arch/arm/mach-omap2/cm33xx.c +0 −6
  1633. arch/arm/mach-omap2/cminst44xx.c +0 −6
  1634. arch/arm/mach-omap2/common-board-devices.c +1 −2
  1635. arch/arm/mach-omap2/devices.c +3 −4
  1636. arch/arm/mach-omap2/drm.c +1 −1
  1637. arch/arm/mach-omap2/fb.c +1 −1
  1638. arch/arm/mach-omap2/gpmc-smsc911x.h +1 −1
  1639. arch/arm/mach-omap2/hsmmc.c +1 −1
  1640. arch/arm/mach-omap2/hsmmc.h +1 −1
  1641. arch/arm/mach-omap2/omap-wakeupgen.c +13 −22
  1642. arch/arm/mach-omap2/omap_hwmod.c +8 −0
  1643. arch/arm/mach-omap2/omap_hwmod.h +4 −0
  1644. arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c +2 −0
  1645. arch/arm/mach-omap2/omap_hwmod_3xxx_data.c +12 −0
  1646. arch/arm/mach-omap2/twl-common.c +1 −2
  1647. arch/arm/mach-orion5x/common.c +2 −2
  1648. arch/arm/mach-orion5x/common.h +1 −1
  1649. arch/arm/mach-orion5x/rd88f5181l-fxo-setup.c +2 −2
  1650. arch/arm/mach-orion5x/rd88f5181l-ge-setup.c +2 −3
  1651. arch/arm/mach-orion5x/rd88f6183ap-ge-setup.c +2 −4
  1652. arch/arm/mach-orion5x/wnr854t-setup.c +2 −2
  1653. arch/arm/mach-orion5x/wrt350n-v2-setup.c +2 −2
  1654. arch/arm/mach-pxa/Kconfig +11 −0
  1655. arch/arm/mach-pxa/Makefile +2 −1
  1656. arch/arm/mach-pxa/corgi_pm.c +4 −9
  1657. arch/arm/mach-pxa/devices.h +1 −0
  1658. arch/arm/mach-pxa/generic.h +0 −2
  1659. arch/arm/mach-pxa/hx4700.c +1 −1
  1660. arch/arm/mach-pxa/include/mach/dma.h +0 −1
  1661. arch/arm/mach-pxa/lubbock.c +14 −0
  1662. arch/arm/mach-pxa/magician.c +1 −5
  1663. arch/arm/mach-pxa/pm.c +3 −2
  1664. arch/arm/mach-pxa/pxa-dt.c +22 −13
  1665. arch/arm/mach-pxa/pxa25x.c +17 −9
  1666. arch/arm/mach-pxa/pxa27x.c +8 −6
  1667. arch/arm/mach-pxa/pxa3xx.c +7 −4
  1668. arch/arm/mach-pxa/pxa_cplds_irqs.c +15 −9
  1669. arch/arm/mach-pxa/sharpsl_pm.c +1 −1
  1670. arch/arm/mach-pxa/sharpsl_pm.h +1 −1
  1671. arch/arm/mach-pxa/spitz_pm.c +3 −6
  1672. arch/arm/mach-qcom/Makefile +0 −1
  1673. arch/arm/mach-realview/Kconfig +11 −61
  1674. arch/arm/mach-realview/Makefile +1 −11
  1675. arch/arm/mach-realview/board-eb.h +0 −94
  1676. arch/arm/mach-realview/board-pb1176.h +0 −81
  1677. arch/arm/mach-realview/board-pb11mp.h +0 −96
  1678. arch/arm/mach-realview/board-pba8.h +0 −71
  1679. arch/arm/mach-realview/board-pbx.h +0 −106
  1680. arch/arm/mach-realview/core.c +0 −405
  1681. arch/arm/mach-realview/core.h +0 −58
  1682. arch/arm/mach-realview/hardware.h +0 −40
  1683. arch/arm/mach-realview/hotplug.h +1 −0
  1684. arch/arm/mach-realview/irqs-eb.h +0 −114
  1685. arch/arm/mach-realview/irqs-pb1176.h +0 −77
  1686. arch/arm/mach-realview/irqs-pb11mp.h +0 −97
  1687. arch/arm/mach-realview/irqs-pba8.h +0 −71
  1688. arch/arm/mach-realview/irqs-pbx.h +0 −87
  1689. arch/arm/mach-realview/platform.h +0 −247
  1690. arch/arm/mach-realview/platsmp-dt.c +1 −2
  1691. arch/arm/mach-realview/platsmp.c +0 −86
  1692. arch/arm/mach-realview/realview_eb.c +0 −492
  1693. arch/arm/mach-realview/realview_pb1176.c +0 −395
  1694. arch/arm/mach-realview/realview_pb11mp.c +0 −385
  1695. arch/arm/mach-realview/realview_pba8.c +0 −307
  1696. arch/arm/mach-realview/realview_pbx.c +0 −402
  1697. arch/arm/mach-rpc/include/mach/hardware.h +1 −1
  1698. arch/arm/mach-s3c24xx/common.c +50 −5
  1699. arch/arm/mach-s3c24xx/mach-mini2440.c +20 −0
  1700. arch/arm/mach-s3c64xx/mach-crag6410-module.c +1 −2
  1701. arch/arm/mach-sa1100/clock.c +3 −2
  1702. arch/arm/mach-sa1100/generic.c +4 −0
  1703. arch/arm/mach-sa1100/generic.h +2 −0
  1704. arch/arm/mach-sa1100/h3xxx.c +1 −1
  1705. arch/arm/mach-sa1100/include/mach/hardware.h +1 −19
  1706. arch/arm/mach-sa1100/jornada720.c +16 −0
  1707. arch/arm/mach-shmobile/Kconfig +0 −1
  1708. arch/arm/mach-shmobile/platsmp-scu.c +8 −18
  1709. arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c +26 −36
  1710. arch/arm/mach-shmobile/setup-r8a7790.c +1 −1
  1711. arch/arm/mach-shmobile/setup-r8a7791.c +1 −1
  1712. arch/arm/mach-spear/Kconfig +0 −1
  1713. arch/arm/mach-sunxi/Kconfig +1 −0
  1714. arch/arm/mach-sunxi/sunxi.c +1 −0
  1715. arch/arm/mach-uniphier/Makefile +1 −1
  1716. arch/arm/mach-uniphier/headsmp.S +0 −43
  1717. arch/arm/mach-uniphier/platsmp.c +0 −209
  1718. arch/arm/mach-versatile/Kconfig +0 −1
  1719. arch/arm/mm/Kconfig +14 −3
  1720. arch/arm/mm/Makefile +3 −0
  1721. arch/arm/mm/cache-l2x0-pmu.c +584 −0
  1722. arch/arm/mm/cache-l2x0.c +8 −3
  1723. arch/arm/mm/cache-uniphier.c +3 −60
  1724. arch/arm/mm/cache-v7m.S +453 −0
  1725. arch/arm/mm/dma-mapping.c +65 −2
  1726. arch/arm/mm/fault.h +0 −1
  1727. arch/arm/mm/mmu.c +2 −2
  1728. arch/arm/mm/proc-macros.S +16 −0
  1729. arch/arm/mm/proc-v7.S +1 −0
  1730. arch/arm/mm/proc-v7m.S +94 −14
  1731. arch/arm/plat-orion/common.c +33 −52
  1732. arch/arm/plat-orion/include/plat/common.h +3 −7
  1733. arch/arm/plat-pxa/Makefile +0 −2
  1734. arch/arm/plat-pxa/dma.c +0 −386
  1735. arch/arm/plat-pxa/include/plat/dma.h +0 −100
  1736. arch/arm/plat-samsung/include/plat/map-s5p.h +0 −4
  1737. arch/arm/xen/enlighten.c +3 −4
  1738. arch/arm64/Kconfig +22 −17
  1739. arch/arm64/Kconfig.debug +0 −10
  1740. arch/arm64/Kconfig.platforms +25 −7
  1741. arch/arm64/Makefile +11 −1
  1742. arch/arm64/boot/dts/Makefile +1 −0
  1743. arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi +4 −4
  1744. arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts +11 −0
  1745. arch/arm64/boot/dts/amlogic/meson-gxbb-p200.dts +6 −0
  1746. arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi +35 −0
  1747. arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi +42 −0
  1748. arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi +330 −7
  1749. arch/arm64/boot/dts/apm/apm-mustang.dts +1 −0
  1750. arch/arm64/boot/dts/apm/apm-shadowcat.dtsi +127 −8
  1751. arch/arm64/boot/dts/apm/apm-storm.dtsi +88 −25
  1752. arch/arm64/boot/dts/broadcom/bcm2835-rpi.dtsi +1 −0
  1753. arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dts +2 −2
  1754. arch/arm64/boot/dts/broadcom/bcm2837.dtsi +1 −1
  1755. arch/arm64/boot/dts/broadcom/bcm283x-rpi-smsc9514.dtsi +1 −0
  1756. arch/arm64/boot/dts/broadcom/bcm283x.dtsi +1 −0
  1757. arch/arm64/boot/dts/broadcom/ns2.dtsi +12 −4
  1758. arch/arm64/boot/dts/cavium/thunder-88xx.dtsi +4 −4
  1759. arch/arm64/boot/dts/exynos/exynos7.dtsi +9 −4
  1760. arch/arm64/boot/dts/freescale/fsl-ls1043a-qds.dts +8 −6
  1761. arch/arm64/boot/dts/freescale/fsl-ls1043a-rdb.dts +8 −0
  1762. arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi +13 −5
  1763. arch/arm64/boot/dts/freescale/fsl-ls2080a-qds.dts +3 −0
  1764. arch/arm64/boot/dts/freescale/fsl-ls2080a-rdb.dts +4 −0
  1765. arch/arm64/boot/dts/freescale/fsl-ls2080a.dtsi +24 −4
  1766. arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts +84 −2
  1767. arch/arm64/boot/dts/hisilicon/hi6220.dtsi +61 −0
  1768. arch/arm64/boot/dts/hisilicon/hip05.dtsi +0 −5
  1769. arch/arm64/boot/dts/hisilicon/hip05_hns.dtsi +0 −180
  1770. arch/arm64/boot/dts/hisilicon/hip06-d03.dts +28 −0
  1771. arch/arm64/boot/dts/hisilicon/hip06.dtsi +365 −0
  1772. arch/arm64/boot/dts/marvell/Makefile +1 −0
  1773. arch/arm64/boot/dts/marvell/armada-8020.dtsi +1 −0
  1774. arch/arm64/boot/dts/marvell/armada-8040-db.dts +150 −0
  1775. arch/arm64/boot/dts/marvell/armada-8040.dtsi +1 −0
  1776. arch/arm64/boot/dts/marvell/armada-ap806.dtsi +18 −4
  1777. arch/arm64/boot/dts/marvell/armada-cp110-master.dtsi +3 −0
  1778. arch/arm64/boot/dts/marvell/armada-cp110-slave.dtsi +249 −0
  1779. arch/arm64/boot/dts/marvell/berlin4ct.dtsi +9 −3
  1780. arch/arm64/boot/dts/mediatek/mt8173-evb.dts +38 −0
  1781. arch/arm64/boot/dts/mediatek/mt8173.dtsi +77 −0
  1782. arch/arm64/boot/dts/nvidia/tegra132.dtsi +117 −2
  1783. arch/arm64/boot/dts/nvidia/tegra210-smaug.dts +120 −0
  1784. arch/arm64/boot/dts/nvidia/tegra210.dtsi +199 −7
  1785. arch/arm64/boot/dts/qcom/Makefile +1 −0
  1786. arch/arm64/boot/dts/qcom/apq8016-sbc-soc-pins.dtsi +48 −0
  1787. arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi +82 −0
  1788. arch/arm64/boot/dts/qcom/apq8096-db820c-pins.dtsi +39 −0
  1789. arch/arm64/boot/dts/qcom/apq8096-db820c.dts +7 −17
  1790. arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi +88 −0
  1791. arch/arm64/boot/dts/qcom/msm8916.dtsi +280 −6
  1792. arch/arm64/boot/dts/qcom/msm8996.dtsi +93 −1
  1793. arch/arm64/boot/dts/renesas/Makefile +1 −1
  1794. arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts +328 −0
  1795. arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts +87 −0
  1796. arch/arm64/boot/dts/renesas/r8a7795.dtsi +272 −4
  1797. arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts +16 −0
  1798. arch/arm64/boot/dts/renesas/r8a7796.dtsi +117 −0
  1799. arch/arm64/boot/dts/rockchip/Makefile +1 −0
  1800. arch/arm64/boot/dts/rockchip/rk3368-orion-r68-meta.dts +382 −0
  1801. arch/arm64/boot/dts/rockchip/rk3368-r88.dts +0 −1
  1802. arch/arm64/boot/dts/rockchip/rk3368.dtsi +10 −0
  1803. arch/arm64/boot/dts/rockchip/rk3399-evb.dts +87 −0
  1804. arch/arm64/boot/dts/rockchip/rk3399.dtsi +554 −53
  1805. arch/arm64/boot/dts/socionext/Makefile +3 −1
  1806. arch/arm64/boot/dts/socionext/uniphier-ld11-ref.dts +100 −0
  1807. arch/arm64/boot/dts/socionext/uniphier-ld11.dtsi +338 −0
  1808. arch/arm64/boot/dts/socionext/uniphier-ld20-ref.dts +6 −5
  1809. arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi +71 −31
  1810. arch/arm64/boot/dts/xilinx/zynqmp-ep108.dts +1 −1
  1811. arch/arm64/boot/dts/xilinx/zynqmp.dtsi +74 −34
  1812. arch/arm64/boot/dts/zte/Makefile +5 −0
  1813. arch/arm64/boot/dts/zte/zx296718-evb.dts +64 −0
  1814. arch/arm64/boot/dts/zte/zx296718.dtsi +292 −0
  1815. arch/arm64/configs/defconfig +33 −2
  1816. arch/arm64/crypto/aes-glue.c +1 −1
  1817. arch/arm64/include/asm/Kbuild +0 −5
  1818. arch/arm64/include/asm/acpi.h +6 −2
  1819. arch/arm64/include/asm/alternative.h +53 −18
  1820. arch/arm64/include/asm/arch_gicv3.h +19 −0
  1821. arch/arm64/include/asm/arch_timer.h +55 −27
  1822. arch/arm64/include/asm/assembler.h +49 −4
  1823. arch/arm64/include/asm/atomic_lse.h +27 −37
  1824. arch/arm64/include/asm/barrier.h +3 −0
  1825. arch/arm64/include/asm/cacheflush.h +2 −1
  1826. arch/arm64/include/asm/clocksource.h +8 −0
  1827. arch/arm64/include/asm/cmpxchg.h +1 −3
  1828. arch/arm64/include/asm/cpufeature.h +27 −17
  1829. arch/arm64/include/asm/cputype.h +1 −5
  1830. arch/arm64/include/asm/dcc.h +4 −10
  1831. arch/arm64/include/asm/debug-monitors.h +0 −2
  1832. arch/arm64/include/asm/esr.h +75 −9
  1833. arch/arm64/include/asm/exec.h +3 −0
  1834. arch/arm64/include/asm/hw_breakpoint.h +7 −8
  1835. arch/arm64/include/asm/insn.h +10 −1
  1836. arch/arm64/include/asm/io.h +4 −15
  1837. arch/arm64/include/asm/kvm_arm.h +2 −2
  1838. arch/arm64/include/asm/kvm_asm.h +7 −2
  1839. arch/arm64/include/asm/kvm_emulate.h +17 −5
  1840. arch/arm64/include/asm/kvm_host.h +6 −6
  1841. arch/arm64/include/asm/kvm_hyp.h +1 −0
  1842. arch/arm64/include/asm/kvm_mmu.h +3 −13
  1843. arch/arm64/include/asm/memory.h +6 −2
  1844. arch/arm64/include/asm/mmu_context.h +13 −23
  1845. arch/arm64/include/asm/module.h +5 −0
  1846. arch/arm64/include/asm/percpu.h +60 −68
  1847. arch/arm64/include/asm/pgtable-hwdef.h +1 −0
  1848. arch/arm64/include/asm/pgtable-prot.h +3 −2
  1849. arch/arm64/include/asm/pgtable.h +15 −5
  1850. arch/arm64/include/asm/processor.h +3 −5
  1851. arch/arm64/include/asm/sections.h +30 −0
  1852. arch/arm64/include/asm/spinlock.h +21 −16
  1853. arch/arm64/include/asm/suspend.h +3 −0
  1854. arch/arm64/include/asm/sysreg.h +32 −12
  1855. arch/arm64/include/asm/system_misc.h +0 −6
  1856. arch/arm64/include/asm/thread_info.h +3 −0
  1857. arch/arm64/include/asm/tlbflush.h +26 −8
  1858. arch/arm64/include/asm/traps.h +1 −5
  1859. arch/arm64/include/asm/uaccess.h +14 −4
  1860. arch/arm64/include/asm/virt.h +3 −12
  1861. arch/arm64/kernel/Makefile +2 −0
  1862. arch/arm64/kernel/acpi.c +10 −1
  1863. arch/arm64/kernel/acpi_numa.c +3 −1
  1864. arch/arm64/kernel/alternative.c +24 −4
  1865. arch/arm64/kernel/armv8_deprecated.c +22 −14
  1866. arch/arm64/kernel/asm-offsets.c +2 −0
  1867. arch/arm64/kernel/cacheinfo.c +3 −5
  1868. arch/arm64/kernel/cpu_errata.c +25 −2
  1869. arch/arm64/kernel/cpu_ops.c +2 −1
  1870. arch/arm64/kernel/cpufeature.c +85 −62
  1871. arch/arm64/kernel/cpuinfo.c +0 −2
  1872. arch/arm64/kernel/debug-monitors.c +15 −33
  1873. arch/arm64/kernel/entry-ftrace.S +1 −1
  1874. arch/arm64/kernel/entry.S +7 −17
  1875. arch/arm64/kernel/fpsimd.c +5 −17
  1876. arch/arm64/kernel/ftrace.c +1 −1
  1877. arch/arm64/kernel/head.S +113 −90
  1878. arch/arm64/kernel/hibernate-asm.S +3 −3
  1879. arch/arm64/kernel/hibernate.c +82 −36
  1880. arch/arm64/kernel/hw_breakpoint.c +16 −32
  1881. arch/arm64/kernel/insn.c +14 −1
  1882. arch/arm64/kernel/kaslr.c +2 −1
  1883. arch/arm64/kernel/kgdb.c +24 −12
  1884. arch/arm64/kernel/perf_event.c +78 −22
  1885. arch/arm64/kernel/probes/decode-insn.c +23 −25
  1886. arch/arm64/kernel/probes/kprobes.c +15 −21
  1887. arch/arm64/kernel/process.c +22 −18
  1888. arch/arm64/kernel/relocate_kernel.S +1 −1
  1889. arch/arm64/kernel/setup.c +8 −3
  1890. arch/arm64/kernel/signal.c +26 −10
  1891. arch/arm64/kernel/sleep.S +12 −19
  1892. arch/arm64/kernel/smp.c +20 −9
  1893. arch/arm64/kernel/smp_spin_table.c +2 −1
  1894. arch/arm64/kernel/stacktrace.c +25 −1
  1895. arch/arm64/kernel/suspend.c +17 −4
  1896. arch/arm64/kernel/sys_compat.c +1 −1
  1897. arch/arm64/kernel/traps.c +84 −45
  1898. arch/arm64/kernel/vdso.c +18 −18
  1899. arch/arm64/kernel/vmlinux.lds.S +20 −0
  1900. arch/arm64/kvm/Kconfig +2 −2
  1901. arch/arm64/kvm/Makefile +2 −1
  1902. arch/arm64/kvm/handle_exit.c +23 −0
  1903. arch/arm64/kvm/hyp.S +1 −5
  1904. arch/arm64/kvm/hyp/Makefile +1 −1
  1905. arch/arm64/kvm/hyp/debug-sr.c +1 −3
  1906. arch/arm64/kvm/hyp/entry.S +80 −48
  1907. arch/arm64/kvm/hyp/hyp-entry.S +44 −29
  1908. arch/arm64/kvm/hyp/switch.c +71 −13
  1909. arch/arm64/kvm/hyp/tlb.c +3 −10
  1910. arch/arm64/kvm/inject_fault.c +12 −0
  1911. arch/arm64/kvm/sys_regs.c +11 −20
  1912. arch/arm64/kvm/sys_regs_generic_v8.c +2 −4
  1913. arch/arm64/lib/copy_from_user.S +1 −6
  1914. arch/arm64/lib/copy_page.S +4 −9
  1915. arch/arm64/mm/cache.S +39 −43
  1916. arch/arm64/mm/dma-mapping.c +6 −5
  1917. arch/arm64/mm/extable.c +1 −1
  1918. arch/arm64/mm/fault.c +16 −6
  1919. arch/arm64/mm/flush.c +0 −2
  1920. arch/arm64/mm/init.c +23 −18
  1921. arch/arm64/mm/mm.h +0 −2
  1922. arch/arm64/mm/mmu.c +2 −13
  1923. arch/arm64/mm/numa.c +83 −32
  1924. arch/arm64/mm/pageattr.c +40 −1
  1925. arch/arm64/mm/pgd.c +0 −2
  1926. arch/arm64/mm/proc.S +6 −7
  1927. arch/avr32/include/asm/uaccess.h +10 −1
  1928. arch/avr32/kernel/avr32_ksyms.c +1 −1
  1929. arch/avr32/kernel/traps.c +2 −1
  1930. arch/avr32/kernel/vmlinux.lds.S +1 −0
  1931. arch/avr32/lib/copy_user.S +4 −4
  1932. arch/avr32/mm/fault.c +1 −1
  1933. arch/blackfin/Kconfig +1 −1
  1934. arch/blackfin/include/asm/uaccess.h +21 −12
  1935. arch/blackfin/kernel/ftrace-entry.S +2 −2
  1936. arch/blackfin/kernel/ftrace.c +1 −1
  1937. arch/blackfin/kernel/ptrace.c +3 −2
  1938. arch/blackfin/kernel/vmlinux.lds.S +1 −0
  1939. arch/blackfin/mach-bf561/coreb.c +1 −12
  1940. arch/c6x/kernel/vmlinux.lds.S +1 −0
  1941. arch/cris/Kconfig +1 −1
  1942. arch/cris/arch-v10/drivers/axisflashmap.c +0 −19
  1943. arch/cris/arch-v10/drivers/eeprom.c +1 −1
  1944. arch/cris/arch-v10/lib/dram_init.S +1 −1
  1945. arch/cris/arch-v32/drivers/cryptocop.c +2 −4
  1946. arch/cris/arch-v32/drivers/pci/bios.c +1 −1
  1947. arch/cris/arch-v32/drivers/sync_serial.c +6 −0
  1948. arch/cris/arch-v32/kernel/fasttimer.c +7 −8
  1949. arch/cris/arch-v32/kernel/irq.c +1 −2
  1950. arch/cris/arch-v32/kernel/ptrace.c +2 −2
  1951. arch/cris/arch-v32/mach-a3/dma.c +0 −1
  1952. arch/cris/arch-v32/mach-a3/dram_init.S +1 −1
  1953. arch/cris/arch-v32/mach-fs/dma.c +0 −1
  1954. arch/cris/arch-v32/mach-fs/dram_init.S +1 −1
  1955. arch/cris/arch-v32/mm/intmem.c +10 −3
  1956. arch/cris/configs/artpec_3_defconfig +0 −1
  1957. arch/cris/configs/dev88_defconfig +48 −0
  1958. arch/cris/configs/etrax-100lx_v2_defconfig +0 −1
  1959. arch/cris/configs/etraxfs_defconfig +0 −1
  1960. arch/cris/include/arch-v32/arch/cryptocop.h +1 −1
  1961. arch/cris/include/asm/io.h +1 −170
  1962. arch/cris/include/asm/uaccess.h +32 −39
  1963. arch/cris/include/uapi/arch-v10/arch/sv_addr_ag.h +1 −1
  1964. arch/cris/kernel/vmlinux.lds.S +1 −0
  1965. arch/cris/mm/fault.c +1 −1
  1966. arch/frv/include/asm/pgtable.h +1 −0
  1967. arch/frv/include/asm/segment.h +0 −1
  1968. arch/frv/include/asm/uaccess.h +9 −5
  1969. arch/frv/kernel/vmlinux.lds.S +1 −0
  1970. arch/h8300/kernel/vmlinux.lds.S +1 −0
  1971. arch/hexagon/include/asm/uaccess.h +2 −1
  1972. arch/hexagon/kernel/vmlinux.lds.S +1 −0
  1973. arch/ia64/hp/sim/boot/Makefile +1 −1
  1974. arch/ia64/include/asm/atomic.h +16 −0
  1975. arch/ia64/include/asm/export.h +3 −0
  1976. arch/ia64/include/asm/libata-portmap.h +0 −4
  1977. arch/ia64/include/asm/thread_info.h +1 −1
  1978. arch/ia64/include/asm/uaccess.h +13 −20
  1979. arch/ia64/kernel/acpi.c +1 −1
  1980. arch/ia64/kernel/entry.S +3 −0
  1981. arch/ia64/kernel/err_inject.c +1 −1
  1982. arch/ia64/kernel/esi_stub.S +2 −0
  1983. arch/ia64/kernel/head.S +2 −0
  1984. arch/ia64/kernel/ia64_ksyms.c +2 −92
  1985. arch/ia64/kernel/ivt.S +2 −0
  1986. arch/ia64/kernel/mca.c +9 −27
  1987. arch/ia64/kernel/pal.S +7 −0
  1988. arch/ia64/kernel/ptrace.c +9 −5
  1989. arch/ia64/kernel/setup.c +4 −0
  1990. arch/ia64/kernel/vmlinux.lds.S +1 −0
  1991. arch/ia64/lib/Makefile +3 −5
  1992. arch/ia64/lib/clear_page.S +2 −0
  1993. arch/ia64/lib/clear_user.S +2 −0
  1994. arch/ia64/lib/copy_page.S +2 −0
  1995. arch/ia64/lib/copy_page_mck.S +2 −0
  1996. arch/ia64/lib/copy_user.S +2 −0
  1997. arch/ia64/lib/flush.S +2 −0
  1998. arch/ia64/lib/idiv32.S +2 −0
  1999. arch/ia64/lib/idiv64.S +2 −0
  2000. arch/ia64/lib/ip_fast_csum.S +3 −0
  2001. arch/ia64/lib/memcpy.S +2 −0
  2002. arch/ia64/lib/memcpy_mck.S +3 −0
  2003. arch/ia64/lib/memset.S +2 −0
  2004. arch/ia64/lib/strlen.S +2 −0
  2005. arch/ia64/lib/strlen_user.S +2 −0
  2006. arch/ia64/lib/strncpy_from_user.S +2 −0
  2007. arch/ia64/lib/strnlen_user.S +2 −0
  2008. arch/ia64/lib/xor.S +5 −0
  2009. arch/m32r/include/asm/uaccess.h +1 −1
  2010. arch/m32r/kernel/ptrace.c +10 −5
  2011. arch/m32r/kernel/vmlinux.lds.S +1 −0
  2012. arch/m68k/Kconfig +0 −1
  2013. arch/m68k/Kconfig.cpu +6 −0
  2014. arch/m68k/amiga/config.c +1 −1
  2015. arch/m68k/atari/config.c +1 −1
  2016. arch/m68k/coldfire/clk.c +4 −0
  2017. arch/m68k/coldfire/head.S +4 −4
  2018. arch/m68k/coldfire/m528x.c +4 −4
  2019. arch/m68k/coldfire/m53xx.c +2 −6
  2020. arch/m68k/coldfire/m54xx.c +1 −39
  2021. arch/m68k/configs/amiga_defconfig +3 −0
  2022. arch/m68k/configs/apollo_defconfig +3 −0
  2023. arch/m68k/configs/atari_defconfig +3 −0
  2024. arch/m68k/configs/bvme6000_defconfig +3 −0
  2025. arch/m68k/configs/hp300_defconfig +3 −0
  2026. arch/m68k/configs/mac_defconfig +3 −0
  2027. arch/m68k/configs/multi_defconfig +3 −0
  2028. arch/m68k/configs/mvme147_defconfig +3 −0
  2029. arch/m68k/configs/mvme16x_defconfig +3 −0
  2030. arch/m68k/configs/q40_defconfig +3 −0
  2031. arch/m68k/configs/sun3_defconfig +3 −0
  2032. arch/m68k/configs/sun3x_defconfig +3 −0
  2033. arch/m68k/include/asm/bootinfo.h +6 −0
  2034. arch/m68k/include/asm/export.h +3 −0
  2035. arch/m68k/include/asm/m5441xsim.h +4 −0
  2036. arch/m68k/include/asm/m54xxacr.h +1 −1
  2037. arch/m68k/include/asm/m54xxsim.h +4 −0
  2038. arch/m68k/include/asm/mcfmmu.h +1 −0
  2039. arch/m68k/include/asm/nettel.h +1 −1
  2040. arch/m68k/include/asm/uaccess_no.h +0 −3
  2041. arch/m68k/include/uapi/asm/bootinfo.h +1 −0
  2042. arch/m68k/kernel/Makefile +2 −1
  2043. arch/m68k/kernel/m68k_ksyms.c +0 −32
  2044. arch/m68k/kernel/process.c +28 −28
  2045. arch/m68k/kernel/setup_mm.c +5 −3
  2046. arch/m68k/kernel/setup_no.c +13 −90
  2047. arch/m68k/kernel/signal.c +1 −1
  2048. arch/m68k/kernel/uboot.c +107 −0
  2049. arch/m68k/kernel/vmlinux-nommu.lds +1 −0
  2050. arch/m68k/kernel/vmlinux-std.lds +1 −0
  2051. arch/m68k/kernel/vmlinux-sun3.lds +1 −0
  2052. arch/m68k/lib/ashldi3.c +4 −0
  2053. arch/m68k/lib/ashrdi3.c +4 −0
  2054. arch/m68k/lib/divsi3.S +3 −0
  2055. arch/m68k/lib/lshrdi3.c +4 −0
  2056. arch/m68k/lib/modsi3.S +3 −0
  2057. arch/m68k/lib/muldi3.c +4 −0
  2058. arch/m68k/lib/mulsi3.S +2 −2
  2059. arch/m68k/lib/udivsi3.S +2 −2
  2060. arch/m68k/lib/umodsi3.S +2 −2
  2061. arch/m68k/mac/config.c +1 −1
  2062. arch/m68k/mm/mcfmmu.c +30 −1
  2063. arch/m68k/q40/config.c +1 −1
  2064. arch/metag/include/asm/atomic.h +1 −2
  2065. arch/metag/include/asm/uaccess.h +2 −1
  2066. arch/metag/kernel/vmlinux.lds.S +1 −0
  2067. arch/microblaze/include/asm/uaccess.h +7 −7
  2068. arch/microblaze/kernel/ftrace.c +1 −1
  2069. arch/microblaze/kernel/vmlinux.lds.S +1 −0
  2070. arch/microblaze/pci/pci-common.c +2 −2
  2071. arch/mips/Kbuild.platforms +1 −1
  2072. arch/mips/Kconfig +84 −39
  2073. arch/mips/Kconfig.debug +0 −36
  2074. arch/mips/Makefile +76 −5
  2075. arch/mips/alchemy/common/setup.c +3 −3
  2076. arch/mips/ath79/clock.c +1 −1
  2077. arch/mips/bcm47xx/serial.c +4 −7
  2078. arch/mips/bcm63xx/clk.c +3 −0
  2079. arch/mips/bmips/Kconfig +16 −4
  2080. arch/mips/bmips/setup.c +11 −1
  2081. arch/mips/boot/Makefile +66 −0
  2082. arch/mips/boot/dts/brcm/Makefile +22 −14
  2083. arch/mips/boot/dts/brcm/bcm3368-netgear-cvg834g.dts +22 −0
  2084. arch/mips/boot/dts/brcm/bcm3368.dtsi +101 −0
  2085. arch/mips/boot/dts/brcm/bcm63268-comtrend-vr-3032u.dts +108 −0
  2086. arch/mips/boot/dts/brcm/bcm63268.dtsi +134 −0
  2087. arch/mips/boot/dts/brcm/bcm6358-neufbox4-sercomm.dts +1 −0
  2088. arch/mips/boot/dts/brcm/bcm6362-neufbox6-sercomm.dts +22 −0
  2089. arch/mips/boot/dts/brcm/bcm6362.dtsi +134 −0
  2090. arch/mips/boot/dts/brcm/bcm7125.dtsi +30 −4
  2091. arch/mips/boot/dts/brcm/bcm7346.dtsi +92 −5
  2092. arch/mips/boot/dts/brcm/bcm7358.dtsi +84 −5
  2093. arch/mips/boot/dts/brcm/bcm7360.dtsi +84 −5
  2094. arch/mips/boot/dts/brcm/bcm7362.dtsi +84 −5
  2095. arch/mips/boot/dts/brcm/bcm7420.dtsi +38 −4
  2096. arch/mips/boot/dts/brcm/bcm7425.dtsi +104 −5
  2097. arch/mips/boot/dts/brcm/bcm7435.dtsi +104 −5
  2098. arch/mips/boot/dts/brcm/bcm97125cbmb.dts +4 −0
  2099. arch/mips/boot/dts/brcm/bcm97346dbsmb.dts +17 −0
  2100. arch/mips/boot/dts/brcm/bcm97358svmb.dts +13 −0
  2101. arch/mips/boot/dts/brcm/bcm97360svmb.dts +8 −0
  2102. arch/mips/boot/dts/brcm/bcm97362svmb.dts +13 −0
  2103. arch/mips/boot/dts/brcm/bcm97420c.dts +8 −0
  2104. arch/mips/boot/dts/brcm/bcm97425svmb.dts +21 −0
  2105. arch/mips/boot/dts/brcm/bcm97435svmb.dts +21 −0
  2106. arch/mips/boot/dts/brcm/bcm97xxx-nand-cs1-bch24.dtsi +25 −0
  2107. arch/mips/boot/dts/brcm/bcm97xxx-nand-cs1-bch4.dtsi +25 −0
  2108. arch/mips/boot/dts/cavium-octeon/dlink_dsr-1000n.dts +1 −44
  2109. arch/mips/boot/dts/cavium-octeon/dlink_dsr-500n-1000n.dtsi +58 −0
  2110. arch/mips/boot/dts/cavium-octeon/dlink_dsr-500n.dts +40 −0
  2111. arch/mips/boot/dts/mti/Makefile +1 −1
  2112. arch/mips/boot/dts/mti/malta.dts +99 −0
  2113. arch/mips/boot/dts/mti/sead3.dts +238 −0
  2114. arch/mips/cavium-octeon/executive/cvmx-helper-board.c +2 −335
  2115. arch/mips/cavium-octeon/executive/cvmx-helper-rgmii.c +1 −4
  2116. arch/mips/cavium-octeon/executive/cvmx-helper-sgmii.c +0 −1
  2117. arch/mips/cavium-octeon/executive/cvmx-helper-xaui.c +0 −2
  2118. arch/mips/cavium-octeon/executive/cvmx-helper.c +0 −10
  2119. arch/mips/cavium-octeon/octeon-irq.c +6 −0
  2120. arch/mips/cavium-octeon/octeon-platform.c +1 −1
  2121. arch/mips/cavium-octeon/setup.c +33 −19
  2122. arch/mips/cavium-octeon/smp.c +3 −21
  2123. arch/mips/configs/generic/32r1.config +2 −0
  2124. arch/mips/configs/generic/32r2.config +3 −0
  2125. arch/mips/configs/generic/32r6.config +2 −0
  2126. arch/mips/configs/generic/64r1.config +4 −0
  2127. arch/mips/configs/generic/64r2.config +5 −0
  2128. arch/mips/configs/generic/64r6.config +4 −0
  2129. arch/mips/configs/generic/board-sead-3.config +32 −0
  2130. arch/mips/configs/generic/eb.config +1 −0
  2131. arch/mips/configs/generic/el.config +1 −0
  2132. arch/mips/configs/generic/micro32r2.config +4 −0
  2133. arch/mips/configs/generic_defconfig +96 −0
  2134. arch/mips/configs/loongson1c_defconfig +126 −0
  2135. arch/mips/configs/malta_defconfig +3 −1
  2136. arch/mips/configs/malta_kvm_defconfig +3 −1
  2137. arch/mips/configs/malta_kvm_guest_defconfig +3 −1
  2138. arch/mips/configs/malta_qemu_32r6_defconfig +2 −0
  2139. arch/mips/configs/maltaaprp_defconfig +2 −0
  2140. arch/mips/configs/maltasmvp_defconfig +2 −0
  2141. arch/mips/configs/maltasmvp_eva_defconfig +2 −0
  2142. arch/mips/configs/maltaup_defconfig +2 −0
  2143. arch/mips/configs/maltaup_xpa_defconfig +3 −1
  2144. arch/mips/configs/pistachio_defconfig +0 −2
  2145. arch/mips/configs/sead3_defconfig +0 −121
  2146. arch/mips/configs/sead3micro_defconfig +0 −122
  2147. arch/mips/dec/int-handler.S +38 −2
  2148. arch/mips/generic/Kconfig +19 −0
  2149. arch/mips/generic/Makefile +15 −0
  2150. arch/mips/generic/Platform +14 −0
  2151. arch/mips/generic/board-sead3.c +376 −0
  2152. arch/mips/generic/init.c +176 −0
  2153. arch/mips/generic/irq.c +64 −0
  2154. arch/mips/generic/proc.c +29 −0
  2155. arch/mips/generic/vmlinux.its.S +31 −0
  2156. arch/mips/include/asm/addrspace.h +1 −2
  2157. arch/mips/include/asm/asmmacro.h +1 −0
  2158. arch/mips/include/asm/barrier.h +96 −0
  2159. arch/mips/include/asm/cacheflush.h +5 −0
  2160. arch/mips/include/asm/cpu-type.h +2 −1
  2161. arch/mips/include/asm/cpu.h +1 −0
  2162. arch/mips/include/asm/device.h +5 −0
  2163. arch/mips/include/asm/dma-coherence.h +12 −4
  2164. arch/mips/include/asm/dma-mapping.h +10 −0
  2165. arch/mips/include/asm/extable.h +13 −0
  2166. arch/mips/include/asm/i8259.h +11 −1
  2167. arch/mips/include/asm/irq.h +3 −2
  2168. arch/mips/include/asm/kexec.h +1 −0
  2169. arch/mips/include/asm/kvm_host.h +40 −23
  2170. arch/mips/include/asm/mach-cavium-octeon/mangle-port.h +2 −2
  2171. arch/mips/include/asm/mach-generic/dma-coherence.h +13 −1
  2172. arch/mips/include/asm/mach-generic/floppy.h +1 −5
  2173. arch/mips/include/asm/mach-generic/spaces.h +3 −5
  2174. arch/mips/include/asm/mach-ip27/spaces.h +1 −0
  2175. arch/mips/include/asm/mach-loongson32/irq.h +40 −1
  2176. arch/mips/include/asm/mach-loongson32/loongson1.h +5 −0
  2177. arch/mips/include/asm/mach-loongson32/platform.h +1 −0
  2178. arch/mips/include/asm/mach-loongson32/regs-clk.h +34 −0
  2179. arch/mips/include/asm/mach-loongson32/regs-mux.h +61 −0
  2180. arch/mips/include/asm/mach-loongson64/loongson.h +0 −1
  2181. arch/mips/include/asm/mach-paravirt/kernel-entry-init.h +2 −0
  2182. arch/mips/include/asm/mach-sead3/cpu-feature-overrides.h +0 −72
  2183. arch/mips/include/asm/mach-sead3/irq.h +0 −9
  2184. arch/mips/include/asm/mach-sead3/kernel-entry-init.h +0 −21
  2185. arch/mips/include/asm/mach-sead3/war.h +0 −24
  2186. arch/mips/include/asm/machine.h +63 −0
  2187. arch/mips/include/asm/mips-boards/sead3int.h +0 −32
  2188. arch/mips/include/asm/mips-cm.h +12 −0
  2189. arch/mips/include/asm/mipsregs.h +0 −2
  2190. arch/mips/include/asm/module.h +1 −1
  2191. arch/mips/include/asm/octeon/cvmx-helper-board.h +0 −30
  2192. arch/mips/include/asm/octeon/cvmx-mdio.h +0 −506
  2193. arch/mips/include/asm/pci.h +45 −15
  2194. arch/mips/include/asm/pgalloc.h +1 −5
  2195. arch/mips/include/asm/pgtable.h +0 −2
  2196. arch/mips/include/asm/pm-cps.h +4 −2
  2197. arch/mips/include/asm/ptrace.h +1 −1
  2198. arch/mips/include/asm/smp.h +14 −0
  2199. arch/mips/include/asm/uaccess.h +22 −8
  2200. arch/mips/include/asm/uprobes.h +0 −13
  2201. arch/mips/include/uapi/asm/mman.h +5 −0
  2202. arch/mips/include/uapi/asm/unistd.h +16 −6
  2203. arch/mips/kernel/binfmt_elfn32.c +1 −7
  2204. arch/mips/kernel/binfmt_elfo32.c +1 −7
  2205. arch/mips/kernel/branch.c +35 −1
  2206. arch/mips/kernel/cpu-probe.c +30 −23
  2207. arch/mips/kernel/crash.c +17 −1
  2208. arch/mips/kernel/ftrace.c +2 −2
  2209. arch/mips/kernel/genex.S +1 −2
  2210. arch/mips/kernel/kprobes.c +9 −58
  2211. arch/mips/kernel/linux32.c +0 −1
  2212. arch/mips/kernel/machine_kexec.c +1 −0
  2213. arch/mips/kernel/mips-cpc.c +14 −3
  2214. arch/mips/kernel/mips-r2-to-r6-emul.c +2 −1
  2215. arch/mips/kernel/module.c +1 −0
  2216. arch/mips/kernel/pm-cps.c +73 −87
  2217. arch/mips/kernel/probes-common.h +83 −0
  2218. arch/mips/kernel/proc.c +7 −0
  2219. arch/mips/kernel/process.c +13 −6
  2220. arch/mips/kernel/ptrace32.c +3 −2
  2221. arch/mips/kernel/scall32-o32.S +3 −0
  2222. arch/mips/kernel/scall64-64.S +3 −0
  2223. arch/mips/kernel/scall64-n32.S +3 −0
  2224. arch/mips/kernel/scall64-o32.S +3 −0
  2225. arch/mips/kernel/setup.c +8 −1
  2226. arch/mips/kernel/smp-cps.c +1 −1
  2227. arch/mips/kernel/smp-gic.c +0 −66
  2228. arch/mips/kernel/smp-mt.c +0 −23
  2229. arch/mips/kernel/smp.c +59 −13
  2230. arch/mips/kernel/traps.c +50 −3
  2231. arch/mips/kernel/uprobes.c +19 −96
  2232. arch/mips/kernel/vdso.c +4 −4
  2233. arch/mips/kernel/vmlinux.lds.S +1 −0
  2234. arch/mips/kvm/commpage.c +0 −1
  2235. arch/mips/kvm/dyntrans.c +2 −3
  2236. arch/mips/kvm/emulate.c +64 −15
  2237. arch/mips/kvm/interrupt.c +0 −1
  2238. arch/mips/kvm/mips.c +41 −0
  2239. arch/mips/kvm/mmu.c +14 −2
  2240. arch/mips/kvm/trap_emul.c +18 −1
  2241. arch/mips/lantiq/xway/vmmc.c +2 −4
  2242. arch/mips/lantiq/xway/xrx200_phy_fw.c +4 −8
  2243. arch/mips/lasat/picvue_proc.c +1 −0
  2244. arch/mips/lib/ashldi3.c +1 −1
  2245. arch/mips/lib/ashrdi3.c +1 −1
  2246. arch/mips/lib/bswapdi.c +2 −1
  2247. arch/mips/lib/bswapsi.c +2 −1
  2248. arch/mips/lib/cmpdi2.c +1 −1
  2249. arch/mips/lib/delay.c +1 −1
  2250. arch/mips/lib/iomap-pci.c +5 −1
  2251. arch/mips/lib/iomap.c +1 −1
  2252. arch/mips/lib/lshrdi3.c +1 −1
  2253. arch/mips/lib/ucmpdi2.c +1 −1
  2254. arch/mips/loongson32/Kconfig +15 −0
  2255. arch/mips/loongson32/Makefile +6 −0
  2256. arch/mips/loongson32/Platform +1 −0
  2257. arch/mips/loongson32/common/irq.c +52 −3
  2258. arch/mips/loongson32/common/platform.c +32 −0
  2259. arch/mips/loongson32/common/setup.c +4 −0
  2260. arch/mips/loongson32/ls1c/Makefile +5 −0
  2261. arch/mips/loongson32/ls1c/board.c +27 −0
  2262. arch/mips/loongson64/loongson-3/smp.c +8 −26
  2263. arch/mips/math-emu/cp1emu.c +0 −1
  2264. arch/mips/math-emu/dsemul.c +1 −0
  2265. arch/mips/mm/c-octeon.c +2 −0
  2266. arch/mips/mm/c-r3k.c +2 −0
  2267. arch/mips/mm/c-r4k.c +43 −20
  2268. arch/mips/mm/c-tx39.c +3 −0
  2269. arch/mips/mm/cache.c +6 −2
  2270. arch/mips/mm/dma-default.c +9 −9
  2271. arch/mips/mm/extable.c +1 −1
  2272. arch/mips/mm/fault.c +0 −1
  2273. arch/mips/mm/gup.c +1 −1
  2274. arch/mips/mm/highmem.c +2 −1
  2275. arch/mips/mm/init.c +10 −8
  2276. arch/mips/mm/ioremap.c +1 −1
  2277. arch/mips/mm/mmap.c +1 −1
  2278. arch/mips/mm/page.c +0 −1
  2279. arch/mips/mm/tlb-r4k.c +6 −3
  2280. arch/mips/mti-malta/malta-dt.c +0 −15
  2281. arch/mips/mti-malta/malta-dtshim.c +181 −6
  2282. arch/mips/mti-malta/malta-init.c +7 −10
  2283. arch/mips/mti-malta/malta-int.c +5 −106
  2284. arch/mips/mti-malta/malta-platform.c +1 −72
  2285. arch/mips/mti-malta/malta-reset.c +2 −19
  2286. arch/mips/mti-malta/malta-setup.c +8 −8
  2287. arch/mips/mti-sead3/Makefile +0 −15
  2288. arch/mips/mti-sead3/Platform +0 −7
  2289. arch/mips/mti-sead3/sead3-console.c +0 −46
  2290. arch/mips/mti-sead3/sead3-display.c +0 −77
  2291. arch/mips/mti-sead3/sead3-init.c +0 −152
  2292. arch/mips/mti-sead3/sead3-int.c +0 −42
  2293. arch/mips/mti-sead3/sead3-lcd.c +0 −43
  2294. arch/mips/mti-sead3/sead3-platform.c +0 −223
  2295. arch/mips/mti-sead3/sead3-reset.c +0 −40
  2296. arch/mips/mti-sead3/sead3-setup.c +0 −108
  2297. arch/mips/mti-sead3/sead3-time.c +0 −99
  2298. arch/mips/net/bpf_jit.c +0 −1
  2299. arch/mips/pci/Makefile +2 −0
  2300. arch/mips/pci/pci-alchemy.c +2 −1
  2301. arch/mips/pci/pci-ar71xx.c +1 −1
  2302. arch/mips/pci/pci-ar724x.c +1 −1
  2303. arch/mips/pci/pci-generic.c +52 −0
  2304. arch/mips/pci/pci-lantiq.c +0 −2
  2305. arch/mips/pci/pci-legacy.c +302 −0
  2306. arch/mips/pci/pci-mt7620.c +0 −3
  2307. arch/mips/pci/pci-octeon.c +2 −0
  2308. arch/mips/pci/pci-rt2880.c +0 −2
  2309. arch/mips/pci/pci-rt3883.c +0 −2
  2310. arch/mips/pci/pci.c +5 −292
  2311. arch/mips/pci/pcie-octeon.c +1 −1
  2312. arch/mips/pnx833x/common/platform.c +2 −6
  2313. arch/mips/ralink/timer.c +7 −21
  2314. arch/mips/txx9/Kconfig +1 −1
  2315. arch/mips/txx9/generic/pci.c +1 −5
  2316. arch/mips/txx9/generic/setup.c +35 −35
  2317. arch/mips/txx9/generic/setup_tx3927.c +0 −1
  2318. arch/mips/txx9/generic/setup_tx4927.c +0 −1
  2319. arch/mips/txx9/generic/setup_tx4938.c +0 −1
  2320. arch/mips/txx9/jmr3927/setup.c +9 −2
  2321. arch/mips/txx9/rbtx4927/setup.c +22 −10
  2322. arch/mips/txx9/rbtx4938/setup.c +1 −0
  2323. arch/mips/vdso/Makefile +1 −3
  2324. arch/mn10300/include/asm/processor.h +0 −1
  2325. arch/mn10300/include/asm/uaccess.h +1 −7
  2326. arch/mn10300/kernel/signal.c +3 −3
  2327. arch/mn10300/kernel/vmlinux.lds.S +1 −0
  2328. arch/mn10300/lib/usercopy.c +3 −1
  2329. arch/nios2/boot/dts/10m50_devboard.dts +1 −0
  2330. arch/nios2/include/asm/cpuinfo.h +4 −4
  2331. arch/nios2/include/asm/uaccess.h +8 −5
  2332. arch/nios2/kernel/cpuinfo.c +5 −10
  2333. arch/nios2/kernel/vmlinux.lds.S +1 −0
  2334. arch/openrisc/include/asm/uaccess.h +11 −28
  2335. arch/openrisc/kernel/vmlinux.lds.S +1 −0
  2336. arch/parisc/Kconfig +3 −2
  2337. arch/parisc/include/asm/dwarf.h +23 −0
  2338. arch/parisc/include/asm/linkage.h +12 −0
  2339. arch/parisc/include/asm/pgtable.h +3 −3
  2340. arch/parisc/include/asm/traps.h +1 −0
  2341. arch/parisc/include/asm/uaccess.h +37 −14
  2342. arch/parisc/include/uapi/asm/mman.h +5 −0
  2343. arch/parisc/kernel/cache.c +1 −1
  2344. arch/parisc/kernel/entry.S +24 −22
  2345. arch/parisc/kernel/ftrace.c +1 −1
  2346. arch/parisc/kernel/hpmc.S +10 −6
  2347. arch/parisc/kernel/inventory.c +1 −1
  2348. arch/parisc/kernel/pacache.S +45 −39
  2349. arch/parisc/kernel/real2.S +14 −10
  2350. arch/parisc/kernel/setup.c +8 −0
  2351. arch/parisc/kernel/smp.c +2 −2
  2352. arch/parisc/kernel/time.c +0 −6
  2353. arch/parisc/kernel/traps.c +2 −2
  2354. arch/parisc/kernel/vmlinux.lds.S +10 −7
  2355. arch/parisc/lib/fixup.S +8 −8
  2356. arch/parisc/lib/lusercopy.S +4 −4
  2357. arch/parisc/lib/memcpy.c +6 −5
  2358. arch/parisc/mm/fault.c +53 −2
  2359. arch/parisc/mm/init.c +64 −64
  2360. arch/powerpc/Kconfig +3 −8
  2361. arch/powerpc/Makefile +20 −27
  2362. arch/powerpc/boot/Makefile +55 −31
  2363. arch/powerpc/boot/cuboot-c2k.c +0 −1
  2364. arch/powerpc/boot/decompress.c +148 −0
  2365. arch/powerpc/boot/fixup-headers.sed +12 −0
  2366. arch/powerpc/boot/gunzip_util.c +0 −204
  2367. arch/powerpc/boot/gunzip_util.h +0 −45
  2368. arch/powerpc/boot/main.c +33 −18
  2369. arch/powerpc/boot/ops.h +3 −0
  2370. arch/powerpc/boot/stdbool.h +14 −0
  2371. arch/powerpc/boot/stdint.h +13 −0
  2372. arch/powerpc/boot/types.h +14 −0
  2373. arch/powerpc/boot/wrapper +45 −16
  2374. arch/powerpc/boot/xz_config.h +39 −0
  2375. arch/powerpc/configs/dpaa.config +1 −0
  2376. arch/powerpc/configs/powernv_defconfig +12 −7
  2377. arch/powerpc/configs/ppc64_defconfig +12 −7
  2378. arch/powerpc/configs/pseries_defconfig +12 −7
  2379. arch/powerpc/crypto/sha1-powerpc-asm.S +11 −2
  2380. arch/powerpc/include/asm/Kbuild +1 −0
  2381. arch/powerpc/include/asm/asm-prototypes.h +40 −3
  2382. arch/powerpc/include/asm/atomic.h +2 −2
  2383. arch/powerpc/include/asm/book3s/32/pgtable.h +2 −1
  2384. arch/powerpc/include/asm/book3s/64/mmu-hash.h +37 −0
  2385. arch/powerpc/include/asm/book3s/64/pgtable.h +5 −2
  2386. arch/powerpc/include/asm/book3s/64/radix.h +69 −19
  2387. arch/powerpc/include/asm/book3s/64/tlbflush-radix.h +1 −0
  2388. arch/powerpc/include/asm/cpu_has_feature.h +1 −1
  2389. arch/powerpc/include/asm/cputable.h +4 −1
  2390. arch/powerpc/include/asm/exception-64s.h +60 −88
  2391. arch/powerpc/include/asm/fadump.h +0 −4
  2392. arch/powerpc/include/asm/head-64.h +393 −0
  2393. arch/powerpc/include/asm/hw_irq.h +6 −0
  2394. arch/powerpc/include/asm/io.h +29 −0
  2395. arch/powerpc/include/asm/kvm_asm.h +10 −0
  2396. arch/powerpc/include/asm/kvm_book3s.h +39 −0
  2397. arch/powerpc/include/asm/kvm_book3s_64.h +8 −82
  2398. arch/powerpc/include/asm/kvm_host.h +57 −67
  2399. arch/powerpc/include/asm/kvm_ppc.h +28 −0
  2400. arch/powerpc/include/asm/libata-portmap.h +0 −4
  2401. arch/powerpc/include/asm/machdep.h +1 −1
  2402. arch/powerpc/include/asm/mmu-book3e.h +3 −0
  2403. arch/powerpc/include/asm/mmu.h +5 −0
  2404. arch/powerpc/include/asm/mmu_context.h +3 −1
  2405. arch/powerpc/include/asm/mmzone.h +3 −0
  2406. arch/powerpc/include/asm/mpic_msgr.h +3 −3
  2407. arch/powerpc/include/asm/nohash/32/pgtable.h +2 −1
  2408. arch/powerpc/include/asm/nohash/64/pgtable.h +2 −1
  2409. arch/powerpc/include/asm/opal.h +1 −0
  2410. arch/powerpc/include/asm/parport.h +1 −1
  2411. arch/powerpc/include/asm/pnv-pci.h +6 −1
  2412. arch/powerpc/include/asm/ppc-opcode.h +3 −0
  2413. arch/powerpc/include/asm/ppc_asm.h +16 −33
  2414. arch/powerpc/include/asm/processor.h +7 −9
  2415. arch/powerpc/include/asm/reg.h +7 −1
  2416. arch/powerpc/include/asm/reg_8xx.h +4 −0
  2417. arch/powerpc/include/asm/signal.h +0 −2
  2418. arch/powerpc/include/asm/tm.h +0 −5
  2419. arch/powerpc/include/asm/uaccess.h +7 −31
  2420. arch/powerpc/include/asm/unistd.h +4 −0
  2421. arch/powerpc/kernel/Makefile +12 −12
  2422. arch/powerpc/kernel/asm-offsets.c +7 −7
  2423. arch/powerpc/kernel/cputable.c +20 −0
  2424. arch/powerpc/kernel/eeh.c +3 −1
  2425. arch/powerpc/kernel/eeh_driver.c +9 −1
  2426. arch/powerpc/kernel/eeh_pe.c +1 −0
  2427. arch/powerpc/kernel/entry_32.S +2 −1
  2428. arch/powerpc/kernel/entry_64.S +12 −12
  2429. arch/powerpc/kernel/epapr_hcalls.S +2 −0
  2430. arch/powerpc/kernel/exceptions-64s.S +1008 −1060
  2431. arch/powerpc/kernel/fadump.c +12 −1
  2432. arch/powerpc/kernel/fpu.S +3 −26
  2433. arch/powerpc/kernel/ftrace.c +2 −1
  2434. arch/powerpc/kernel/head_32.S +5 −3
  2435. arch/powerpc/kernel/head_40x.S +2 −0
  2436. arch/powerpc/kernel/head_44x.S +2 −0
  2437. arch/powerpc/kernel/head_64.S +38 −17
  2438. arch/powerpc/kernel/head_8xx.S +65 −74
  2439. arch/powerpc/kernel/head_fsl_booke.S +2 −0
  2440. arch/powerpc/kernel/hw_breakpoint.c +6 −3
  2441. arch/powerpc/kernel/ibmebus.c +1 −1
  2442. arch/powerpc/kernel/idle_book3s.S +5 −5
  2443. arch/powerpc/kernel/iommu.c +4 −2
  2444. arch/powerpc/kernel/irq.c +11 −6
  2445. arch/powerpc/kernel/legacy_serial.c +7 −7
  2446. arch/powerpc/kernel/machine_kexec_64.c +23 −52
  2447. arch/powerpc/kernel/misc.S +2 −0
  2448. arch/powerpc/kernel/misc_32.S +13 −1
  2449. arch/powerpc/kernel/misc_64.S +25 −9
  2450. arch/powerpc/kernel/module.c +1 −1
  2451. arch/powerpc/kernel/nvram_64.c +5 −5
  2452. arch/powerpc/kernel/pci-common.c +4 −2
  2453. arch/powerpc/kernel/pci_32.c +2 −0
  2454. arch/powerpc/kernel/pci_of_scan.c +1 −1
  2455. arch/powerpc/kernel/ppc_ksyms.c +0 −37
  2456. arch/powerpc/kernel/ppc_ksyms_32.c +0 −60
  2457. arch/powerpc/kernel/process.c +106 −75
  2458. arch/powerpc/kernel/prom_init.c +82 −0
  2459. arch/powerpc/kernel/ptrace.c +98 −255
  2460. arch/powerpc/kernel/ptrace32.c +3 −2
  2461. arch/powerpc/kernel/setup-common.c +18 −9
  2462. arch/powerpc/kernel/setup_32.c +6 −0
  2463. arch/powerpc/kernel/signal.c +23 −18
  2464. arch/powerpc/kernel/signal.h +10 −8
  2465. arch/powerpc/kernel/signal_32.c +66 −56
  2466. arch/powerpc/kernel/signal_64.c +114 −93
  2467. arch/powerpc/kernel/syscalls.c +1 −0
  2468. arch/powerpc/kernel/time.c +2 −0
  2469. arch/powerpc/kernel/tm.S +50 −44
  2470. arch/powerpc/kernel/traps.c +101 −27
  2471. arch/powerpc/kernel/vdso64/Makefile +0 −6
  2472. arch/powerpc/kernel/vdso64/datapage.S +1 −1
  2473. arch/powerpc/kernel/vdso64/gettimeofday.S +1 −1
  2474. arch/powerpc/kernel/vector.S +3 −25
  2475. arch/powerpc/kernel/vmlinux.lds.S +53 −3
  2476. arch/powerpc/kvm/Kconfig +3 −0
  2477. arch/powerpc/kvm/Makefile +8 −11
  2478. arch/powerpc/kvm/book3s.c +7 −6
  2479. arch/powerpc/kvm/book3s_emulate.c +3 −1
  2480. arch/powerpc/kvm/book3s_hv.c +373 −160
  2481. arch/powerpc/kvm/book3s_hv_builtin.c +156 −0
  2482. arch/powerpc/kvm/book3s_hv_rm_xics.c +120 −0
  2483. arch/powerpc/kvm/book3s_hv_rmhandlers.S +109 −88
  2484. arch/powerpc/kvm/book3s_pr.c +9 −1
  2485. arch/powerpc/kvm/book3s_xics.c +56 −1
  2486. arch/powerpc/kvm/book3s_xics.h +2 −0
  2487. arch/powerpc/kvm/booke.c +1 −1
  2488. arch/powerpc/kvm/e500_mmu.c +37 −36
  2489. arch/powerpc/kvm/powerpc.c +61 −0
  2490. arch/powerpc/kvm/trace_hv.h +22 −0
  2491. arch/powerpc/lib/Makefile +2 −2
  2492. arch/powerpc/lib/checksum_32.S +7 −3
  2493. arch/powerpc/lib/checksum_64.S +3 −0
  2494. arch/powerpc/lib/copy_32.S +5 −0
  2495. arch/powerpc/lib/copypage_64.S +2 −0
  2496. arch/powerpc/lib/copyuser_64.S +3 −1
  2497. arch/powerpc/lib/hweight_64.S +5 −0
  2498. arch/powerpc/lib/mem_64.S +5 −0
  2499. arch/powerpc/lib/memcmp_64.S +2 −0
  2500. arch/powerpc/lib/memcpy_64.S +2 −0
  2501. arch/powerpc/lib/ppc_ksyms.c +0 −29
  2502. arch/powerpc/lib/string.S +6 −0
  2503. arch/powerpc/lib/string_64.S +2 −0
  2504. arch/powerpc/mm/Makefile +3 −4
  2505. arch/powerpc/mm/copro_fault.c +2 −0
  2506. arch/powerpc/mm/fault.c +2 −2
  2507. arch/powerpc/mm/hash_low_32.S +3 −0
  2508. arch/powerpc/mm/hash_native_64.c +2 −40
  2509. arch/powerpc/mm/hash_utils_64.c +106 −32
  2510. arch/powerpc/mm/hugetlbpage.c +7 −0
  2511. arch/powerpc/mm/init_32.c +1 −1
  2512. arch/powerpc/mm/mmu_context_iommu.c +77 −4
  2513. arch/powerpc/mm/mmu_context_nohash.c +24 −32
  2514. arch/powerpc/mm/numa.c +5 −41
  2515. arch/powerpc/mm/pgtable-book3s64.c +10 −1
  2516. arch/powerpc/mm/pgtable-radix.c +40 −0
  2517. arch/powerpc/mm/pgtable.c +1 −1
  2518. arch/powerpc/mm/slb_low.S +9 −6
  2519. arch/powerpc/mm/tlb-radix.c +24 −0
  2520. arch/powerpc/net/bpf_jit.h +2 −0
  2521. arch/powerpc/net/bpf_jit64.h +17 −9
  2522. arch/powerpc/net/bpf_jit_comp64.c +194 −70
  2523. arch/powerpc/oprofile/cell/spu_profiler.c +1 −1
  2524. arch/powerpc/oprofile/cell/spu_task_sync.c +2 −2
  2525. arch/powerpc/perf/core-book3s.c +1 −1
  2526. arch/powerpc/perf/hv-gpci.c +1 −1
  2527. arch/powerpc/perf/power7-pmu.c +1 −1
  2528. arch/powerpc/perf/power8-pmu.c +1 −1
  2529. arch/powerpc/perf/power9-pmu.c +1 −1
  2530. arch/powerpc/platforms/44x/warp.c +1 −1
  2531. arch/powerpc/platforms/512x/mpc5121_ads_cpld.c +4 −4
  2532. arch/powerpc/platforms/512x/mpc512x_lpbfifo.c +1 −1
  2533. arch/powerpc/platforms/52xx/mpc52xx_pic.c +1 −1
  2534. arch/powerpc/platforms/82xx/Kconfig +2 −2
  2535. arch/powerpc/platforms/82xx/ep8248e.c +3 −1
  2536. arch/powerpc/platforms/82xx/pq2ads-pci-pic.c +1 −1
  2537. arch/powerpc/platforms/83xx/asp834x.c +1 −3
  2538. arch/powerpc/platforms/83xx/km83xx.c +1 −4
  2539. arch/powerpc/platforms/83xx/misc.c +8 −0
  2540. arch/powerpc/platforms/83xx/mpc830x_rdb.c +1 −4
  2541. arch/powerpc/platforms/83xx/mpc831x_rdb.c +1 −4
  2542. arch/powerpc/platforms/83xx/mpc832x_mds.c +1 −4
  2543. arch/powerpc/platforms/83xx/mpc832x_rdb.c +2 −5
  2544. arch/powerpc/platforms/83xx/mpc834x_itx.c +1 −4
  2545. arch/powerpc/platforms/83xx/mpc834x_mds.c +1 −4
  2546. arch/powerpc/platforms/83xx/mpc836x_mds.c +1 −4
  2547. arch/powerpc/platforms/83xx/mpc836x_rdk.c +1 −4
  2548. arch/powerpc/platforms/83xx/mpc837x_mds.c +1 −4
  2549. arch/powerpc/platforms/83xx/mpc837x_rdb.c +1 −4
  2550. arch/powerpc/platforms/83xx/mpc83xx.h +1 −0
  2551. arch/powerpc/platforms/83xx/sbc834x.c +1 −4
  2552. arch/powerpc/platforms/83xx/suspend.c +2 −2
  2553. arch/powerpc/platforms/85xx/Kconfig +1 −1
  2554. arch/powerpc/platforms/85xx/bsc913x_qds.c +0 −1
  2555. arch/powerpc/platforms/85xx/bsc913x_rdb.c +0 −1
  2556. arch/powerpc/platforms/85xx/c293pcie.c +0 −1
  2557. arch/powerpc/platforms/85xx/common.c +1 −1
  2558. arch/powerpc/platforms/85xx/corenet_generic.c +0 −1
  2559. arch/powerpc/platforms/85xx/ge_imp3a.c +0 −1
  2560. arch/powerpc/platforms/85xx/mpc8536_ds.c +0 −1
  2561. arch/powerpc/platforms/85xx/mpc85xx_ads.c +0 −1
  2562. arch/powerpc/platforms/85xx/mpc85xx_cds.c +20 −9
  2563. arch/powerpc/platforms/85xx/mpc85xx_ds.c +2 −5
  2564. arch/powerpc/platforms/85xx/mpc85xx_mds.c +8 −4
  2565. arch/powerpc/platforms/85xx/mpc85xx_rdb.c +0 −10
  2566. arch/powerpc/platforms/85xx/mvme2500.c +0 −1
  2567. arch/powerpc/platforms/85xx/p1010rdb.c +0 −1
  2568. arch/powerpc/platforms/85xx/p1022_ds.c +0 −1
  2569. arch/powerpc/platforms/85xx/p1022_rdk.c +0 −1
  2570. arch/powerpc/platforms/85xx/p1023_rdb.c +0 −1
  2571. arch/powerpc/platforms/85xx/ppa8548.c +0 −1
  2572. arch/powerpc/platforms/85xx/qemu_e500.c +0 −1
  2573. arch/powerpc/platforms/85xx/sbc8548.c +0 −1
  2574. arch/powerpc/platforms/85xx/sgy_cts1000.c +5 −3
  2575. arch/powerpc/platforms/85xx/socrates.c +0 −1
  2576. arch/powerpc/platforms/85xx/socrates_fpga_pic.c +3 −3
  2577. arch/powerpc/platforms/85xx/stx_gp3.c +0 −1
  2578. arch/powerpc/platforms/85xx/tqm85xx.c +0 −1
  2579. arch/powerpc/platforms/85xx/twr_p102x.c +0 −1
  2580. arch/powerpc/platforms/85xx/xes_mpc85xx.c +0 −3
  2581. arch/powerpc/platforms/86xx/gef_ppc9a.c +0 −1
  2582. arch/powerpc/platforms/86xx/gef_sbc310.c +0 −1
  2583. arch/powerpc/platforms/86xx/gef_sbc610.c +0 −1
  2584. arch/powerpc/platforms/86xx/mpc8610_hpcd.c +0 −1
  2585. arch/powerpc/platforms/86xx/mpc86xx_hpcn.c +0 −1
  2586. arch/powerpc/platforms/86xx/mvme7100.c +0 −1
  2587. arch/powerpc/platforms/86xx/pic.c +2 −2
  2588. arch/powerpc/platforms/86xx/sbc8641d.c +0 −1
  2589. arch/powerpc/platforms/8xx/m8xx_setup.c +1 −1
  2590. arch/powerpc/platforms/Kconfig.cputype +2 −0
  2591. arch/powerpc/platforms/cell/axon_msi.c +3 −3
  2592. arch/powerpc/platforms/cell/cbe_regs.c +1 −1
  2593. arch/powerpc/platforms/cell/interrupt.c +6 −12
  2594. arch/powerpc/platforms/cell/iommu.c +2 −2
  2595. arch/powerpc/platforms/cell/pmu.c +2 −2
  2596. arch/powerpc/platforms/cell/ras.c +1 −1
  2597. arch/powerpc/platforms/cell/spider-pic.c +9 −9
  2598. arch/powerpc/platforms/cell/spu_base.c +8 −8
  2599. arch/powerpc/platforms/cell/spu_manage.c +6 −3
  2600. arch/powerpc/platforms/cell/spufs/inode.c +1 −1
  2601. arch/powerpc/platforms/chrp/setup.c +2 −2
  2602. arch/powerpc/platforms/embedded6xx/flipper-pic.c +1 −1
  2603. arch/powerpc/platforms/embedded6xx/hlwd-pic.c +2 −2
  2604. arch/powerpc/platforms/embedded6xx/mvme5100.c +2 −2
  2605. arch/powerpc/platforms/maple/pci.c +3 −3
  2606. arch/powerpc/platforms/maple/setup.c +2 −2
  2607. arch/powerpc/platforms/pasemi/Kconfig +10 −0
  2608. arch/powerpc/platforms/pasemi/gpio_mdio.c +2 −2
  2609. arch/powerpc/platforms/pasemi/iommu.c +1 −1
  2610. arch/powerpc/platforms/pasemi/misc.c +1 −1
  2611. arch/powerpc/platforms/pasemi/msi.c +2 −2
  2612. arch/powerpc/platforms/pasemi/setup.c +4 −4
  2613. arch/powerpc/platforms/powermac/low_i2c.c +3 −3
  2614. arch/powerpc/platforms/powermac/pfunc_base.c +2 −2
  2615. arch/powerpc/platforms/powermac/pfunc_core.c +1 −1
  2616. arch/powerpc/platforms/powermac/pic.c +3 −3
  2617. arch/powerpc/platforms/powermac/smp.c +26 −26
  2618. arch/powerpc/platforms/powernv/eeh-powernv.c +13 −5
  2619. arch/powerpc/platforms/powernv/npu-dma.c +1 −1
  2620. arch/powerpc/platforms/powernv/opal-irqchip.c +2 −2
  2621. arch/powerpc/platforms/powernv/opal-wrappers.S +1 −0
  2622. arch/powerpc/platforms/powernv/pci-cxl.c +2 −2
  2623. arch/powerpc/platforms/powernv/pci-ioda.c +118 −20
  2624. arch/powerpc/platforms/powernv/pci.c +4 −4
  2625. arch/powerpc/platforms/ps3/device-init.c +1 −1
  2626. arch/powerpc/platforms/ps3/interrupt.c +5 −5
  2627. arch/powerpc/platforms/ps3/smp.c +2 −2
  2628. arch/powerpc/platforms/ps3/spu.c +2 −2
  2629. arch/powerpc/platforms/pseries/dlpar.c +3 −2
  2630. arch/powerpc/platforms/pseries/event_sources.c +1 −1
  2631. arch/powerpc/platforms/pseries/lpar.c +2 −2
  2632. arch/powerpc/platforms/pseries/msi.c +3 −3
  2633. arch/powerpc/platforms/pseries/scanlog.c +1 −1
  2634. arch/powerpc/platforms/pseries/setup.c +3 −3
  2635. arch/powerpc/relocs_check.sh +3 −1
  2636. arch/powerpc/sysdev/axonram.c +3 −3
  2637. arch/powerpc/sysdev/cpm1.c +4 −6
  2638. arch/powerpc/sysdev/cpm2.c +0 −4
  2639. arch/powerpc/sysdev/cpm_common.c +15 −0
  2640. arch/powerpc/sysdev/dcr-low.S +3 −0
  2641. arch/powerpc/sysdev/ehv_pic.c +2 −2
  2642. arch/powerpc/sysdev/fsl_gtm.c +1 −1
  2643. arch/powerpc/sysdev/fsl_mpic_err.c +3 −3
  2644. arch/powerpc/sysdev/fsl_msi.c +6 −6
  2645. arch/powerpc/sysdev/fsl_pci.c +5 −7
  2646. arch/powerpc/sysdev/fsl_soc.c +20 −13
  2647. arch/powerpc/sysdev/fsl_soc.h +0 −2
  2648. arch/powerpc/sysdev/ge/ge_pic.c +4 −4
  2649. arch/powerpc/sysdev/i8259.c +2 −2
  2650. arch/powerpc/sysdev/ipic.c +2 −2
  2651. arch/powerpc/sysdev/mmio_nvram.c +1 −1
  2652. arch/powerpc/sysdev/mpc8xx_pic.c +1 −1
  2653. arch/powerpc/sysdev/mpic.c +8 −8
  2654. arch/powerpc/sysdev/mpic_msgr.c +2 −2
  2655. arch/powerpc/sysdev/mpic_u3msi.c +2 −2
  2656. arch/powerpc/sysdev/mv64x60_pic.c +1 −1
  2657. arch/powerpc/sysdev/pmi.c +1 −1
  2658. arch/powerpc/sysdev/ppc4xx_hsta_msi.c +3 −3
  2659. arch/powerpc/sysdev/ppc4xx_msi.c +3 −3
  2660. arch/powerpc/sysdev/ppc4xx_soc.c +1 −1
  2661. arch/powerpc/sysdev/tsi108_pci.c +1 −1
  2662. arch/powerpc/sysdev/uic.c +1 −1
  2663. arch/powerpc/sysdev/xics/icp-hv.c +3 −3
  2664. arch/powerpc/sysdev/xics/icp-native.c +3 −3
  2665. arch/powerpc/sysdev/xics/icp-opal.c +11 −9
  2666. arch/powerpc/sysdev/xics/xics-common.c +1 −1
  2667. arch/powerpc/xmon/spr_access.S +2 −2
  2668. arch/s390/Kconfig +4 −1
  2669. arch/s390/Makefile +2 −0
  2670. arch/s390/appldata/appldata_base.c +1 −1
  2671. arch/s390/boot/compressed/Makefile +1 −0
  2672. arch/s390/configs/default_defconfig +8 −3
  2673. arch/s390/configs/gcov_defconfig +10 −3
  2674. arch/s390/configs/performance_defconfig +10 −3
  2675. arch/s390/crypto/aes_s390.c +222 −368
  2676. arch/s390/crypto/crc32-vx.c +1 −1
  2677. arch/s390/crypto/des_s390.c +145 −185
  2678. arch/s390/crypto/ghash_s390.c +5 −15
  2679. arch/s390/crypto/prng.c +26 −75
  2680. arch/s390/crypto/sha1_s390.c +1 −1
  2681. arch/s390/crypto/sha256_s390.c +1 −1
  2682. arch/s390/crypto/sha512_s390.c +1 −1
  2683. arch/s390/crypto/sha_common.c +7 −16
  2684. arch/s390/hypfs/inode.c +2 −2
  2685. arch/s390/include/asm/Kbuild +1 −0
  2686. arch/s390/include/asm/cpacf.h +79 −99
  2687. arch/s390/include/asm/facilities_src.h +24 −0
  2688. arch/s390/include/asm/fpu/api.h +21 −11
  2689. arch/s390/include/asm/kvm_host.h +68 −68
  2690. arch/s390/include/asm/lowcore.h +2 −1
  2691. arch/s390/include/asm/mmu.h +1 −0
  2692. arch/s390/include/asm/mmu_context.h +1 −0
  2693. arch/s390/include/asm/pci.h +5 −0
  2694. arch/s390/include/asm/pgtable.h +25 −49
  2695. arch/s390/include/asm/tlbflush.h +20 −52
  2696. arch/s390/include/asm/uaccess.h +4 −4
  2697. arch/s390/include/asm/uprobes.h +0 −10
  2698. arch/s390/include/asm/vx-insn.h +114 −34
  2699. arch/s390/include/uapi/asm/Kbuild +1 −0
  2700. arch/s390/kernel/Makefile +4 −1
  2701. arch/s390/kernel/asm-offsets.c +1 −0
  2702. arch/s390/kernel/compat_linux.c +2 −2
  2703. arch/s390/kernel/crash_dump.c +1 −3
  2704. arch/s390/kernel/early.c +1 −1
  2705. arch/s390/kernel/entry.S +6 −0
  2706. arch/s390/kernel/fpu.c +122 −195
  2707. arch/s390/kernel/ftrace.c +2 −1
  2708. arch/s390/kernel/kprobes.c +2 −0
  2709. arch/s390/kernel/mcount.S +3 −0
  2710. arch/s390/kernel/nmi.c +39 −28
  2711. arch/s390/kernel/s390_ksyms.c +0 −15
  2712. arch/s390/kernel/sysinfo.c +1 −1
  2713. arch/s390/kernel/time.c +14 −72
  2714. arch/s390/kernel/traps.c +2 −1
  2715. arch/s390/kernel/vdso32/Makefile +2 −1
  2716. arch/s390/kernel/vdso64/Makefile +2 −1
  2717. arch/s390/kernel/vmlinux.lds.S +1 −0
  2718. arch/s390/kvm/gaccess.c +18 −19
  2719. arch/s390/kvm/guestdbg.c +30 −29
  2720. arch/s390/kvm/intercept.c +8 −2
  2721. arch/s390/kvm/interrupt.c +75 −23
  2722. arch/s390/kvm/kvm-s390.c +69 −54
  2723. arch/s390/kvm/kvm-s390.h +11 −3
  2724. arch/s390/kvm/priv.c +21 −0
  2725. arch/s390/kvm/vsie.c +1 −1
  2726. arch/s390/lib/mem.S +3 −0
  2727. arch/s390/mm/fault.c +13 −19
  2728. arch/s390/mm/gmap.c +15 −0
  2729. arch/s390/mm/gup.c +2 −1
  2730. arch/s390/mm/pageattr.c +2 −2
  2731. arch/s390/mm/pgtable.c +9 −9
  2732. arch/s390/pci/pci.c +9 −0
  2733. arch/s390/pci/pci_dma.c +170 −76
  2734. arch/score/include/asm/extable.h +11 −0
  2735. arch/score/include/asm/module.h +1 −1
  2736. arch/score/include/asm/uaccess.h +25 −29
  2737. arch/score/kernel/ptrace.c +6 −4
  2738. arch/score/kernel/traps.c +1 −0
  2739. arch/score/kernel/vmlinux.lds.S +1 −0
  2740. arch/sh/Makefile +1 −1
  2741. arch/sh/boards/Kconfig +10 −0
  2742. arch/sh/configs/j2_defconfig +2 −0
  2743. arch/sh/include/asm/atomic-llsc.h +1 −1
  2744. arch/sh/include/asm/uaccess.h +4 −3
  2745. arch/sh/include/asm/uaccess_64.h +1 −0
  2746. arch/sh/kernel/cpu/sh4a/smp-shx3.c +5 −21
  2747. arch/sh/kernel/ftrace.c +3 −3
  2748. arch/sh/kernel/vmlinux.lds.S +1 −0
  2749. arch/sh/mm/gup.c +2 −1
  2750. arch/sparc/Kconfig +0 −2
  2751. arch/sparc/include/asm/Kbuild +1 −0
  2752. arch/sparc/include/asm/elf_64.h +1 −1
  2753. arch/sparc/include/asm/extable_64.h +20 −0
  2754. arch/sparc/include/asm/ftrace.h +4 −0
  2755. arch/sparc/include/asm/hypervisor.h +1 −0
  2756. arch/sparc/include/asm/irq_64.h +3 −2
  2757. arch/sparc/include/asm/page_64.h +1 −0
  2758. arch/sparc/include/asm/smp_64.h +2 −0
  2759. arch/sparc/include/asm/string.h +34 −0
  2760. arch/sparc/include/asm/string_32.h +0 −56
  2761. arch/sparc/include/asm/string_64.h +0 −44
  2762. arch/sparc/include/asm/uaccess_32.h +6 −7
  2763. arch/sparc/include/asm/uaccess_64.h +4 −21
  2764. arch/sparc/kernel/Makefile +1 −1
  2765. arch/sparc/kernel/entry.S +3 −0
  2766. arch/sparc/kernel/ftrace.c +1 −1
  2767. arch/sparc/kernel/head_32.S +3 −0
  2768. arch/sparc/kernel/head_64.S +6 −1
  2769. arch/sparc/kernel/helpers.S +2 −0
  2770. arch/sparc/kernel/hvcalls.S +5 −0
  2771. arch/sparc/kernel/kprobes.c +1 −1
  2772. arch/sparc/kernel/pci_sun4v.c +41 −11
  2773. arch/sparc/kernel/process_64.c +5 −5
  2774. arch/sparc/kernel/ptrace_64.c +16 −8
  2775. arch/sparc/kernel/setup_64.c +26 −0
  2776. arch/sparc/kernel/smp_32.c +0 −2
  2777. arch/sparc/kernel/smp_64.c +14 −0
  2778. arch/sparc/kernel/sparc_ksyms.c +12 −0
  2779. arch/sparc/kernel/sparc_ksyms_32.c +0 −31
  2780. arch/sparc/kernel/sparc_ksyms_64.c +0 −53
  2781. arch/sparc/kernel/traps_64.c +1 −1
  2782. arch/sparc/kernel/unaligned_64.c +1 −1
  2783. arch/sparc/kernel/vmlinux.lds.S +1 −0
  2784. arch/sparc/lib/Makefile +0 −1
  2785. arch/sparc/lib/U1memcpy.S +2 −0
  2786. arch/sparc/lib/VISsave.S +2 −0
  2787. arch/sparc/lib/ashldi3.S +2 −0
  2788. arch/sparc/lib/ashrdi3.S +2 −0
  2789. arch/sparc/lib/atomic_64.S +12 −4
  2790. arch/sparc/lib/bitops.S +7 −0
  2791. arch/sparc/lib/blockops.S +3 −0
  2792. arch/sparc/lib/bzero.S +4 −0
  2793. arch/sparc/lib/checksum_32.S +3 −0
  2794. arch/sparc/lib/checksum_64.S +2 −0
  2795. arch/sparc/lib/clear_page.S +3 −0
  2796. arch/sparc/lib/copy_in_user.S +2 −0
  2797. arch/sparc/lib/copy_page.S +2 −0
  2798. arch/sparc/lib/copy_user.S +2 −0
  2799. arch/sparc/lib/csum_copy.S +3 −0
  2800. arch/sparc/lib/divdi3.S +2 −0
  2801. arch/sparc/lib/ffs.S +3 −0
  2802. arch/sparc/lib/hweight.S +5 −0
  2803. arch/sparc/lib/ipcsum.S +2 −0
  2804. arch/sparc/lib/ksyms.c +0 −174
  2805. arch/sparc/lib/locks.S +5 −0
  2806. arch/sparc/lib/lshrdi3.S +2 −0
  2807. arch/sparc/lib/mcount.S +2 −0
  2808. arch/sparc/lib/memcmp.S +2 −0
  2809. arch/sparc/lib/memcpy.S +3 −83
  2810. arch/sparc/lib/memmove.S +2 −0
  2811. arch/sparc/lib/memscan_32.S +4 −0
  2812. arch/sparc/lib/memscan_64.S +4 −0
  2813. arch/sparc/lib/memset.S +3 −0
  2814. arch/sparc/lib/muldi3.S +2 −0
  2815. arch/sparc/lib/strlen.S +2 −0
  2816. arch/sparc/lib/strncmp_32.S +2 −0
  2817. arch/sparc/lib/strncmp_64.S +2 −0
  2818. arch/sparc/lib/xor.S +9 −0
  2819. arch/sparc/mm/fault_64.c +2 −1
  2820. arch/sparc/mm/gup.c +2 −1
  2821. arch/sparc/mm/init_64.c +4 −20
  2822. arch/sparc/mm/tlb.c +31 −4
  2823. arch/sparc/mm/tsb.c +12 −6
  2824. arch/sparc/prom/ranges.c +24 −28
  2825. arch/tile/Kconfig +0 −1
  2826. arch/tile/include/asm/irq.h +3 −2
  2827. arch/tile/kernel/entry.S +1 −1
  2828. arch/tile/kernel/ftrace.c +1 −1
  2829. arch/tile/kernel/pmc.c +0 −3
  2830. arch/tile/kernel/process.c +17 −56
  2831. arch/tile/kernel/traps.c +7 −2
  2832. arch/tile/kernel/vmlinux.lds.S +1 −0
  2833. arch/tile/mm/mmap.c +1 −2
  2834. arch/um/drivers/harddog_kern.c +1 −24
  2835. arch/um/kernel/dyn.lds.S +1 −0
  2836. arch/um/kernel/skas/syscall.c +3 −7
  2837. arch/um/kernel/uml.lds.S +1 −0
  2838. arch/unicore32/kernel/process.c +1 −2
  2839. arch/unicore32/kernel/vmlinux.lds.S +1 −0
  2840. arch/x86/Kconfig +16 −17
  2841. arch/x86/Makefile +3 −2
  2842. arch/x86/boot/compressed/eboot.c +72 −102
  2843. arch/x86/boot/compressed/head_32.S +3 −3
  2844. arch/x86/boot/compressed/head_64.S +4 −4
  2845. arch/x86/configs/x86_64_defconfig +0 −1
  2846. arch/x86/entry/common.c +8 −16
  2847. arch/x86/entry/entry_32.S +54 −16
  2848. arch/x86/entry/entry_64.S +118 −41
  2849. arch/x86/entry/syscalls/syscall_32.tbl +3 −0
  2850. arch/x86/entry/syscalls/syscall_64.tbl +3 −0
  2851. arch/x86/entry/syscalls/syscalltbl.sh +9 −6
  2852. arch/x86/entry/thunk_32.S +3 −0
  2853. arch/x86/entry/thunk_64.S +3 −0
  2854. arch/x86/entry/vdso/vclock_gettime.c +1 −1
  2855. arch/x86/entry/vdso/vdso2c.h +1 −1
  2856. arch/x86/entry/vdso/vma.c +102 −73
  2857. arch/x86/events/amd/core.c +2 −2
  2858. arch/x86/events/amd/uncore.c +18 −4
  2859. arch/x86/events/core.c +34 −26
  2860. arch/x86/events/intel/bts.c +96 −30
  2861. arch/x86/events/intel/core.c +28 −21
  2862. arch/x86/events/intel/cqm.c +9 −0
  2863. arch/x86/events/intel/ds.c +84 −43
  2864. arch/x86/events/intel/lbr.c +34 −40
  2865. arch/x86/events/intel/pt.c +37 −5
  2866. arch/x86/events/intel/pt.h +5 −0
  2867. arch/x86/events/intel/rapl.c +5 −0
  2868. arch/x86/events/intel/uncore.c +11 −1
  2869. arch/x86/events/intel/uncore.h +7 −0
  2870. arch/x86/events/intel/uncore_snb.c +2 −0
  2871. arch/x86/events/intel/uncore_snbep.c +614 −12
  2872. arch/x86/events/perf_event.h +10 −3
  2873. arch/x86/ia32/ia32_signal.c +1 −1
  2874. arch/x86/include/asm/alternative.h +6 −2
  2875. arch/x86/include/asm/apic.h +2 −3
  2876. arch/x86/include/asm/cacheflush.h +0 −1
  2877. arch/x86/include/asm/cmpxchg.h +0 −44
  2878. arch/x86/include/asm/compat.h +4 −4
  2879. arch/x86/include/asm/cpufeatures.h +2 −1
  2880. arch/x86/include/asm/desc.h +1 −1
  2881. arch/x86/include/asm/e820.h +4 −2
  2882. arch/x86/include/asm/efi.h +17 −12
  2883. arch/x86/include/asm/export.h +4 −0
  2884. arch/x86/include/asm/extable.h +35 −0
  2885. arch/x86/include/asm/fpu/signal.h +6 −0
  2886. arch/x86/include/asm/fpu/xstate.h +6 −4
  2887. arch/x86/include/asm/ftrace.h +3 −0
  2888. arch/x86/include/asm/hypervisor.h +4 −0
  2889. arch/x86/include/asm/intel-family.h +3 −2
  2890. arch/x86/include/asm/intel-mid.h +2 −0
  2891. arch/x86/include/asm/intel_scu_ipc.h +2 −0
  2892. arch/x86/include/asm/irq.h +3 −2
  2893. arch/x86/include/asm/irqflags.h +8 −4
  2894. arch/x86/include/asm/kaslr.h +1 −0
  2895. arch/x86/include/asm/kdebug.h +0 −2
  2896. arch/x86/include/asm/kexec.h +1 −0
  2897. arch/x86/include/asm/kvm_host.h +41 −37
  2898. arch/x86/include/asm/mce.h +36 −30
  2899. arch/x86/include/asm/mmu.h +8 −0
  2900. arch/x86/include/asm/mmu_context.h +19 −6
  2901. arch/x86/include/asm/mpspec.h +2 −1
  2902. arch/x86/include/asm/msr-index.h +0 −1
  2903. arch/x86/include/asm/paravirt.h +0 −22
  2904. arch/x86/include/asm/paravirt_types.h +0 −8
  2905. arch/x86/include/asm/pci.h +14 −0
  2906. arch/x86/include/asm/percpu.h +3 −2
  2907. arch/x86/include/asm/pgtable_64_types.h +3 −1
  2908. arch/x86/include/asm/pgtable_types.h +0 −2
  2909. arch/x86/include/asm/pkeys.h +72 −1
  2910. arch/x86/include/asm/pmem.h +1 −4
  2911. arch/x86/include/asm/processor.h +14 −11
  2912. arch/x86/include/asm/pvclock.h +3 −2
  2913. arch/x86/include/asm/realmode.h +1 −1
  2914. arch/x86/include/asm/rwsem.h +5 −3
  2915. arch/x86/include/asm/sections.h +1 −1
  2916. arch/x86/include/asm/signal.h +4 −0
  2917. arch/x86/include/asm/smp.h +1 −3
  2918. arch/x86/include/asm/special_insns.h +7 −15
  2919. arch/x86/include/asm/spinlock.h +0 −174
  2920. arch/x86/include/asm/spinlock_types.h +0 −13
  2921. arch/x86/include/asm/stacktrace.h +60 −60
  2922. arch/x86/include/asm/string_64.h +18 −1
  2923. arch/x86/include/asm/switch_to.h +50 −114
  2924. arch/x86/include/asm/syscall.h +5 −15
  2925. arch/x86/include/asm/thread_info.h +5 −59
  2926. arch/x86/include/asm/traps.h +6 −0
  2927. arch/x86/include/asm/uaccess.h +8 −34
  2928. arch/x86/include/asm/unwind.h +63 −0
  2929. arch/x86/include/asm/uv/uv_bau.h +42 −3
  2930. arch/x86/include/asm/vdso.h +2 −0
  2931. arch/x86/include/asm/xen/events.h +0 −11
  2932. arch/x86/include/uapi/asm/mce.h +2 −0
  2933. arch/x86/include/uapi/asm/prctl.h +6 −0
  2934. arch/x86/kernel/Makefile +8 −3
  2935. arch/x86/kernel/acpi/Makefile +1 −0
  2936. arch/x86/kernel/acpi/boot.c +13 −26
  2937. arch/x86/kernel/acpi/cppc_msr.c +58 −0
  2938. arch/x86/kernel/acpi/cstate.c +1 −1
  2939. arch/x86/kernel/acpi/sleep.c +1 −1
  2940. arch/x86/kernel/apic/apic.c +84 −21
  2941. arch/x86/kernel/apic/apic_flat_64.c +6 −16
  2942. arch/x86/kernel/apic/apic_noop.c +1 −1
  2943. arch/x86/kernel/apic/apic_numachip.c +1 −4
  2944. arch/x86/kernel/apic/bigsmp_32.c +1 −1
  2945. arch/x86/kernel/apic/hw_nmi.c +9 −9
  2946. arch/x86/kernel/apic/io_apic.c +2 −2
  2947. arch/x86/kernel/apic/msi.c +1 −1
  2948. arch/x86/kernel/apic/probe_32.c +3 −3
  2949. arch/x86/kernel/apic/vector.c +20 −3
  2950. arch/x86/kernel/apic/x2apic_cluster.c +1 −1
  2951. arch/x86/kernel/apic/x2apic_phys.c +1 −1
  2952. arch/x86/kernel/apic/x2apic_uv_x.c +9 −31
  2953. arch/x86/kernel/asm-offsets.c +5 −2
  2954. arch/x86/kernel/asm-offsets_32.c +5 −0
  2955. arch/x86/kernel/asm-offsets_64.c +5 −0
  2956. arch/x86/kernel/cpu/common.c +20 −21
  2957. arch/x86/kernel/cpu/hypervisor.c +11 −0
  2958. arch/x86/kernel/cpu/mcheck/mce.c +33 −11
  2959. arch/x86/kernel/cpu/mcheck/mce_amd.c +167 −37
  2960. arch/x86/kernel/cpu/microcode/amd.c +10 −3
  2961. arch/x86/kernel/cpu/microcode/core.c +17 −35
  2962. arch/x86/kernel/cpu/mtrr/main.c +2 −2
  2963. arch/x86/kernel/cpu/mtrr/mtrr.h +1 −1
  2964. arch/x86/kernel/cpu/scattered.c +2 −0
  2965. arch/x86/kernel/cpu/vmware.c +15 −2
  2966. arch/x86/kernel/crash.c +19 −3
  2967. arch/x86/kernel/dumpstack.c +110 −148
  2968. arch/x86/kernel/dumpstack_32.c +92 −62
  2969. arch/x86/kernel/dumpstack_64.c +100 −218
  2970. arch/x86/kernel/e820.c +89 −64
  2971. arch/x86/kernel/early-quirks.c +6 −14
  2972. arch/x86/kernel/fpu/core.c +4 −0
  2973. arch/x86/kernel/fpu/init.c +0 −1
  2974. arch/x86/kernel/fpu/xstate.c +6 −1
  2975. arch/x86/kernel/ftrace.c +1 −1
  2976. arch/x86/kernel/head_32.S +6 −4
  2977. arch/x86/kernel/head_64.S +8 −7
  2978. arch/x86/kernel/hpet.c +94 −0
  2979. arch/x86/kernel/i386_ksyms_32.c +0 −47
  2980. arch/x86/kernel/irq_64.c +1 −2
  2981. arch/x86/kernel/kexec-bzimage64.c +2 −2
  2982. arch/x86/kernel/kgdb.c +4 −4
  2983. arch/x86/kernel/kprobes/core.c +9 −4
  2984. arch/x86/kernel/kprobes/opt.c +1 −1
  2985. arch/x86/kernel/ksysfs.c +1 −1
  2986. arch/x86/kernel/kvm.c +16 −272
  2987. arch/x86/kernel/kvmclock.c +2 −1
  2988. arch/x86/kernel/livepatch.c +65 −0
  2989. arch/x86/kernel/machine_kexec_64.c +3 −0
  2990. arch/x86/kernel/mcount_64.S +2 −0
  2991. arch/x86/kernel/mpparse.c +3 −0
  2992. arch/x86/kernel/paravirt-spinlocks.c +0 −7
  2993. arch/x86/kernel/paravirt.c +1 −2
  2994. arch/x86/kernel/paravirt_patch_32.c +2 −2
  2995. arch/x86/kernel/paravirt_patch_64.c +2 −2
  2996. arch/x86/kernel/process.c +33 −16
  2997. arch/x86/kernel/process_32.c +9 −24
  2998. arch/x86/kernel/process_64.c +46 −19
  2999. arch/x86/kernel/ptrace.c +7 −7
  3000. arch/x86/kernel/pvclock.c +1 −1
  3001. arch/x86/kernel/quirks.c +31 −0
  3002. arch/x86/kernel/reboot.c +1 −1
  3003. arch/x86/kernel/resource.c +2 −2
  3004. arch/x86/kernel/setup.c +17 −20
  3005. arch/x86/kernel/setup_percpu.c +2 −2
  3006. arch/x86/kernel/signal.c +12 −10
  3007. arch/x86/kernel/signal_compat.c +28 −3
  3008. arch/x86/kernel/smp.c +7 −0
  3009. arch/x86/kernel/smpboot.c +54 −39
  3010. arch/x86/kernel/stacktrace.c +34 −45
  3011. arch/x86/kernel/step.c +2 −1
  3012. arch/x86/kernel/sys_x86_64.c +1 −4
  3013. arch/x86/kernel/tboot.c +4 −4
  3014. arch/x86/kernel/traps.c +61 −0
  3015. arch/x86/kernel/tsc.c +9 −3
  3016. arch/x86/kernel/unwind_frame.c +93 −0
  3017. arch/x86/kernel/unwind_guess.c +53 −0
  3018. arch/x86/kernel/vmlinux.lds.S +1 −0
  3019. arch/x86/kernel/x8664_ksyms_64.c +0 −85
  3020. arch/x86/kernel/x86_init.c +3 −3
  3021. arch/x86/kvm/Makefile +1 −1
  3022. arch/x86/kvm/cpuid.c +2 −1
  3023. arch/x86/kvm/debugfs.c +69 −0
  3024. arch/x86/kvm/hyperv.c +141 −16
  3025. arch/x86/kvm/hyperv.h +3 −0
  3026. arch/x86/kvm/i8254.c +7 −7
  3027. arch/x86/kvm/ioapic.c +6 −4
  3028. arch/x86/kvm/lapic.c +3 −2
  3029. arch/x86/kvm/mmu.c +6 −6
  3030. arch/x86/kvm/pmu_amd.c +2 −2
  3031. arch/x86/kvm/svm.c +388 −31
  3032. arch/x86/kvm/vmx.c +136 −73
  3033. arch/x86/kvm/x86.c +111 −72
  3034. arch/x86/kvm/x86.h +1 −5
  3035. arch/x86/lib/checksum_32.S +3 −0
  3036. arch/x86/lib/clear_page_64.S +2 −0
  3037. arch/x86/lib/cmpxchg8b_emu.S +2 −0
  3038. arch/x86/lib/copy_page_64.S +2 −0
  3039. arch/x86/lib/copy_user_64.S +8 −0
  3040. arch/x86/lib/csum-partial_64.c +1 −0
  3041. arch/x86/lib/getuser.S +5 −0
  3042. arch/x86/lib/hweight.S +3 −0
  3043. arch/x86/lib/memcpy_64.S +7 −3
  3044. arch/x86/lib/memmove_64.S +3 −0
  3045. arch/x86/lib/memset_64.S +3 −0
  3046. arch/x86/lib/putuser.S +5 −0
  3047. arch/x86/lib/strstr_32.c +2 −1
  3048. arch/x86/mm/amdtopology.c +5 −17
  3049. arch/x86/mm/extable.c +1 −1
  3050. arch/x86/mm/fault.c +42 −1
  3051. arch/x86/mm/gup.c +1 −1
  3052. arch/x86/mm/init.c +3 −1
  3053. arch/x86/mm/kaslr.c +24 −2
  3054. arch/x86/mm/mpx.c +2 −3
  3055. arch/x86/mm/numa.c +13 −14
  3056. arch/x86/mm/pageattr.c +11 −10
  3057. arch/x86/mm/pat.c +10 −7
  3058. arch/x86/mm/pat_rbtree.c +1 −3
  3059. arch/x86/mm/pkeys.c +134 −8
  3060. arch/x86/mm/tlb.c +15 −0
  3061. arch/x86/oprofile/backtrace.c +24 −25
  3062. arch/x86/pci/Makefile +0 −2
  3063. arch/x86/pci/common.c +7 −0
  3064. arch/x86/pci/fixup.c +13 −7
  3065. arch/x86/pci/pcbios.c +5 −2
  3066. arch/x86/pci/xen.c +1 −1
  3067. arch/x86/platform/Makefile +1 −0
  3068. arch/x86/platform/atom/punit_atom_debug.c +1 −1
  3069. arch/x86/platform/efi/efi-bgrt.c +2 −11
  3070. arch/x86/platform/efi/efi.c +91 −109
  3071. arch/x86/platform/efi/efi_64.c +3 −22
  3072. arch/x86/platform/efi/quirks.c +114 −13
  3073. arch/x86/platform/intel-mid/device_libs/Makefile +4 −0
  3074. arch/x86/platform/intel-mid/device_libs/platform_bcm43xx.c +95 −0
  3075. arch/x86/platform/intel-mid/device_libs/platform_mrfld_sd.c +47 −0
  3076. arch/x86/platform/intel-mid/intel-mid.c +5 −0
  3077. arch/x86/platform/intel-mid/pwr.c +65 −11
  3078. arch/x86/platform/mellanox/Makefile +1 −0
  3079. arch/x86/platform/mellanox/mlx-platform.c +266 −0
  3080. arch/x86/platform/uv/bios_uv.c +11 −6
  3081. arch/x86/platform/uv/tlb_uv.c +111 −73
  3082. arch/x86/power/cpu.c +1 −1
  3083. arch/x86/ras/mce_amd_inj.c +31 −23
  3084. arch/x86/um/Makefile +1 −1
  3085. arch/x86/um/checksum_32.S +2 −0
  3086. arch/x86/um/ksyms.c +0 −13
  3087. arch/x86/um/ptrace_32.c +9 −5
  3088. arch/x86/um/ptrace_64.c +6 −1
  3089. arch/x86/xen/enlighten.c +108 −27
  3090. arch/x86/xen/grant-table.c +1 −1
  3091. arch/x86/xen/platform-pci-unplug.c +1 −1
  3092. arch/x86/xen/pmu.c +5 −2
  3093. arch/x86/xen/setup.c +1 −1
  3094. arch/x86/xen/smp.c +8 −45
  3095. arch/x86/xen/smp.h +13 −0
  3096. arch/x86/xen/spinlock.c +1 −249
  3097. arch/x86/xen/time.c +0 −5
  3098. arch/xtensa/Kconfig +78 −17
  3099. arch/xtensa/boot/boot-elf/boot.lds.S +1 −1
  3100. arch/xtensa/boot/boot-elf/bootstrap.S +6 −1
  3101. arch/xtensa/boot/boot-uboot/Makefile +1 −9
  3102. arch/xtensa/boot/dts/csp.dts +54 −0
  3103. arch/xtensa/boot/dts/xtfpga.dtsi +7 −8
  3104. arch/xtensa/configs/audio_kc705_defconfig +1 −1
  3105. arch/xtensa/configs/cadence_csp_defconfig +122 −0
  3106. arch/xtensa/configs/common_defconfig +4 −605
  3107. arch/xtensa/configs/generic_kc705_defconfig +1 −1
  3108. arch/xtensa/configs/iss_defconfig +2 −726
  3109. arch/xtensa/configs/nommu_kc705_defconfig +1 −1
  3110. arch/xtensa/configs/smp_lx200_defconfig +1 −1
  3111. arch/xtensa/include/asm/asm-uaccess.h +160 −0
  3112. arch/xtensa/include/asm/bitops.h +1 −1
  3113. arch/xtensa/include/asm/cacheasm.h +4 −7
  3114. arch/xtensa/include/asm/fixmap.h +5 −0
  3115. arch/xtensa/include/asm/highmem.h +5 −0
  3116. arch/xtensa/include/asm/initialize_mmu.h +30 −14
  3117. arch/xtensa/include/asm/kmem_layout.h +74 −0
  3118. arch/xtensa/include/asm/page.h +12 −15
  3119. arch/xtensa/include/asm/pgtable.h +4 −3
  3120. arch/xtensa/include/asm/platform.h +6 −0
  3121. arch/xtensa/include/asm/processor.h +1 −1
  3122. arch/xtensa/include/asm/sysmem.h +1 −20
  3123. arch/xtensa/include/asm/uaccess.h +0 −153
  3124. arch/xtensa/include/asm/vectors.h +24 −43
  3125. arch/xtensa/include/uapi/asm/mman.h +5 −0
  3126. arch/xtensa/include/uapi/asm/types.h +2 −1
  3127. arch/xtensa/include/uapi/asm/unistd.h +14 −1
  3128. arch/xtensa/kernel/coprocessor.S +1 −1
  3129. arch/xtensa/kernel/entry.S +4 −3
  3130. arch/xtensa/kernel/head.S +1 −1
  3131. arch/xtensa/kernel/setup.c +151 −37
  3132. arch/xtensa/kernel/time.c +39 −1
  3133. arch/xtensa/kernel/vmlinux.lds.S +3 −4
  3134. arch/xtensa/mm/init.c +19 −260
  3135. arch/xtensa/platforms/iss/include/platform/simcall.h +5 −0
  3136. arch/xtensa/platforms/iss/setup.c +6 −22
  3137. arch/xtensa/platforms/iss/simdisk.c +1 −0
  3138. arch/xtensa/platforms/xt2000/setup.c +1 −20
  3139. arch/xtensa/platforms/xtfpga/setup.c +41 −75
  3140. arch/xtensa/variants/csp/include/variant/core.h +575 −0
  3141. arch/xtensa/variants/csp/include/variant/tie-asm.h +194 −0
  3142. arch/xtensa/variants/csp/include/variant/tie.h +161 −0
  3143. block/Kconfig +6 −0
  3144. block/Makefile +2 −2
  3145. block/badblocks.c +4 −2
  3146. block/bio.c +3 −2
  3147. block/blk-cgroup.c +1 −3
  3148. block/blk-core.c +13 −3
  3149. block/blk-flush.c +3 −3
  3150. block/blk-lib.c +15 −0
  3151. block/blk-mq-cpu.c +0 −67
  3152. block/blk-mq-cpumap.c +5 −20
  3153. block/blk-mq-pci.c +47 −0
  3154. block/blk-mq-sysfs.c +25 −15
  3155. block/blk-mq-tag.c +117 −397
  3156. block/blk-mq-tag.h +12 −32
  3157. block/blk-mq.c +170 −235
  3158. block/blk-mq.h +7 −21
  3159. block/blk-softirq.c +11 −18
  3160. block/blk-sysfs.c +2 −2
  3161. block/blk-throttle.c +4 −2
  3162. block/blk.h +3 −8
  3163. block/cfq-iosched.c +10 −3
  3164. block/ioctl.c +12 −6
  3165. crypto/algif_hash.c +61 −12
  3166. crypto/async_tx/async_pq.c +4 −4
  3167. crypto/blkcipher.c +2 −1
  3168. crypto/crct10dif_generic.c +1 −4
  3169. crypto/cryptd.c +9 −3
  3170. crypto/crypto_engine.c +157 −46
  3171. crypto/drbg.c +15 −16
  3172. crypto/echainiv.c +24 −91
  3173. crypto/gcm.c +1 −1
  3174. crypto/ghash-generic.c +1 −12
  3175. crypto/mcryptd.c +1 −6
  3176. crypto/rsa-pkcs1pad.c +24 −17
  3177. crypto/rsa_helper.c +2 −2
  3178. crypto/testmgr.c +18 −6
  3179. crypto/testmgr.h +4 −0
  3180. crypto/xor.c +20 −21
  3181. crypto/xts.c +1 −1
  3182. drivers/Makefile +3 −3
  3183. drivers/acpi/Kconfig +10 −1
  3184. drivers/acpi/Makefile +4 −0
  3185. drivers/acpi/acpi_apd.c +24 −3
  3186. drivers/acpi/acpi_lpss.c +17 −0
  3187. drivers/acpi/acpi_pad.c +5 −0
  3188. drivers/acpi/acpi_platform.c +19 −1
  3189. drivers/acpi/acpi_processor.c +103 −1
  3190. drivers/acpi/acpi_watchdog.c +123 −0
  3191. drivers/acpi/acpica/Makefile +1 −0
  3192. drivers/acpi/acpica/acapps.h +6 −4
  3193. drivers/acpi/acpica/acdebug.h +1 −1
  3194. drivers/acpi/acpica/acevents.h +3 −0
  3195. drivers/acpi/acpica/acglobal.h +2 −0
  3196. drivers/acpi/acpica/aclocal.h +2 −0
  3197. drivers/acpi/acpica/acnamesp.h +8 −0
  3198. drivers/acpi/acpica/acparser.h +2 −0
  3199. drivers/acpi/acpica/actables.h +8 −4
  3200. drivers/acpi/acpica/acutils.h +27 −26
  3201. drivers/acpi/acpica/dbconvert.c +4 −3
  3202. drivers/acpi/acpica/dbexec.c +34 −28
  3203. drivers/acpi/acpica/dbfileio.c +6 −14
  3204. drivers/acpi/acpica/dbinput.c +2 −0
  3205. drivers/acpi/acpica/dbmethod.c +132 −0
  3206. drivers/acpi/acpica/dbobject.c +2 −2
  3207. drivers/acpi/acpica/dsmethod.c +12 −2
  3208. drivers/acpi/acpica/dsutils.c +8 −9
  3209. drivers/acpi/acpica/dswexec.c +2 −1
  3210. drivers/acpi/acpica/dswload2.c +2 −5
  3211. drivers/acpi/acpica/evgpe.c +57 −0
  3212. drivers/acpi/acpica/evgpeinit.c +5 −2
  3213. drivers/acpi/acpica/evrgnini.c +2 −1
  3214. drivers/acpi/acpica/evxfgpe.c +43 −0
  3215. drivers/acpi/acpica/exconcat.c +1 −1
  3216. drivers/acpi/acpica/exconfig.c +48 −93
  3217. drivers/acpi/acpica/exconvrt.c +4 −4
  3218. drivers/acpi/acpica/exmisc.c +2 −2
  3219. drivers/acpi/acpica/exoparg1.c +13 −10
  3220. drivers/acpi/acpica/exresop.c +6 −5
  3221. drivers/acpi/acpica/extrace.c +0 −25
  3222. drivers/acpi/acpica/exutils.c +8 −0
  3223. drivers/acpi/acpica/hwgpe.c +18 −5
  3224. drivers/acpi/acpica/nsaccess.c +3 −3
  3225. drivers/acpi/acpica/nsconvert.c +0 −1
  3226. drivers/acpi/acpica/nsdump.c +1 −1
  3227. drivers/acpi/acpica/nsload.c +12 −18
  3228. drivers/acpi/acpica/nsparse.c +134 −31
  3229. drivers/acpi/acpica/nsutils.c +50 −16
  3230. drivers/acpi/acpica/psparse.c +5 −1
  3231. drivers/acpi/acpica/psxface.c +84 −0
  3232. drivers/acpi/acpica/tbdata.c +141 −6
  3233. drivers/acpi/acpica/tbfadt.c +69 −67
  3234. drivers/acpi/acpica/tbfind.c +8 −4
  3235. drivers/acpi/acpica/tbinstal.c +9 −64
  3236. drivers/acpi/acpica/tbutils.c +2 −1
  3237. drivers/acpi/acpica/tbxface.c +2 −2
  3238. drivers/acpi/acpica/tbxfload.c +16 −50
  3239. drivers/acpi/acpica/tbxfroot.c +4 −1
  3240. drivers/acpi/acpica/utaddress.c +0 −8
  3241. drivers/acpi/acpica/utbuffer.c +14 −16
  3242. drivers/acpi/acpica/utdebug.c +37 −24
  3243. drivers/acpi/acpica/utdecode.c +1 −1
  3244. drivers/acpi/acpica/uthex.c +42 −4
  3245. drivers/acpi/acpica/utinit.c +1 −1
  3246. drivers/acpi/acpica/utnonansi.c +2 −355
  3247. drivers/acpi/acpica/utosi.c +17 −5
  3248. drivers/acpi/acpica/utpredef.c +0 −2
  3249. drivers/acpi/acpica/utprint.c +90 −15
  3250. drivers/acpi/acpica/utstrtoul64.c +348 −0
  3251. drivers/acpi/acpica/uttrack.c +1 −3
  3252. drivers/acpi/acpica/utxface.c +1 −1
  3253. drivers/acpi/acpica/utxfinit.c +5 −4
  3254. drivers/acpi/apei/erst.c +1 −1
  3255. drivers/acpi/apei/ghes.c +1 −1
  3256. drivers/acpi/arm64/Kconfig +6 −0
  3257. drivers/acpi/arm64/Makefile +1 −0
  3258. drivers/acpi/arm64/iort.c +368 −0
  3259. drivers/acpi/battery.c +6 −4
  3260. drivers/acpi/bus.c +7 −2
  3261. drivers/acpi/button.c +82 −3
  3262. drivers/acpi/cppc_acpi.c +513 −151
  3263. drivers/acpi/ec.c +381 −89
  3264. drivers/acpi/fan.c +11 −1
  3265. drivers/acpi/internal.h +13 −4
  3266. drivers/acpi/ioapic.c +26 −20
  3267. drivers/acpi/nfit/core.c +208 −50
  3268. drivers/acpi/nfit/mce.c +20 −6
  3269. drivers/acpi/nfit/nfit.h +17 −0
  3270. drivers/acpi/osl.c +10 −3
  3271. drivers/acpi/pci_irq.c +9 −1
  3272. drivers/acpi/pci_root.c +11 −1
  3273. drivers/acpi/processor_core.c +111 −22
  3274. drivers/acpi/processor_driver.c +49 −46
  3275. drivers/acpi/processor_idle.c +3 −2
  3276. drivers/acpi/processor_throttling.c +2 −2
  3277. drivers/acpi/property.c +68 −49
  3278. drivers/acpi/scan.c +2 −0
  3279. drivers/acpi/sleep.c +3 −3
  3280. drivers/acpi/spcr.c +111 −0
  3281. drivers/acpi/sysfs.c +61 −38
  3282. drivers/acpi/tables.c +9 −7
  3283. drivers/acpi/thermal.c +2 −1
  3284. drivers/amba/bus.c +5 −0
  3285. drivers/android/binder.c +1 −6
  3286. drivers/ata/ahci.c +32 −117
  3287. drivers/ata/ahci.h +5 −19
  3288. drivers/ata/ahci_qoriq.c +7 −13
  3289. drivers/ata/ahci_st.c +4 −0
  3290. drivers/ata/libahci.c +7 −2
  3291. drivers/ata/libata-scsi.c +253 −35
  3292. drivers/ata/pata_at91.c +1 −3
  3293. drivers/ata/pata_octeon_cf.c +1 −2
  3294. drivers/ata/sata_mv.c +2 −4
  3295. drivers/atm/eni.c +3 −2
  3296. drivers/atm/fore200e.c +3 −3
  3297. drivers/atm/he.c +6 −4
  3298. drivers/atm/iphase.c +12 −7
  3299. drivers/atm/nicstar.c +9 −6
  3300. drivers/atm/zatm.c +9 −7
  3301. drivers/auxdisplay/Kconfig +9 −0
  3302. drivers/auxdisplay/Makefile +1 −0
  3303. drivers/auxdisplay/img-ascii-lcd.c +443 −0
  3304. drivers/base/Kconfig +10 −0
  3305. drivers/base/attribute_container.c +1 −1
  3306. drivers/base/core.c +30 −10
  3307. drivers/base/cpu.c +6 −5
  3308. drivers/base/dd.c +24 −9
  3309. drivers/base/dma-coherent.c +6 −4
  3310. drivers/base/dma-mapping.c +7 −4
  3311. drivers/base/memory.c +4 −1
  3312. drivers/base/pinctrl.c +8 −4
  3313. drivers/base/platform-msi.c +1 −2
  3314. drivers/base/platform.c +11 −7
  3315. drivers/base/power/domain.c +352 −78
  3316. drivers/base/power/opp/core.c +3 −7
  3317. drivers/base/power/opp/of.c +12 −2
  3318. drivers/base/power/runtime.c +2 −2
  3319. drivers/base/regmap/internal.h +3 −2
  3320. drivers/base/regmap/regcache-rbtree.c +28 −10
  3321. drivers/base/regmap/regcache.c +3 −2
  3322. drivers/base/regmap/regmap-debugfs.c +13 −3
  3323. drivers/base/regmap/regmap.c +57 −13
  3324. drivers/base/soc.c +0 −9
  3325. drivers/bcma/driver_chipcommon.c +29 −3
  3326. drivers/bcma/main.c +4 −2
  3327. drivers/block/loop.c +4 −5
  3328. drivers/block/mtip32xx/mtip32xx.c +1 −2
  3329. drivers/block/nbd.c +160 −250
  3330. drivers/block/null_blk.c +79 −50
  3331. drivers/block/rbd.c +1253 −334
  3332. drivers/block/rbd_types.h +11 −0
  3333. drivers/block/virtio_blk.c +0 −1
  3334. drivers/block/xen-blkfront.c +0 −1
  3335. drivers/bluetooth/Kconfig +23 −0
  3336. drivers/bluetooth/Makefile +2 −0
  3337. drivers/bluetooth/bcm203x.c +1 −3
  3338. drivers/bluetooth/btqca.c +4 −4
  3339. drivers/bluetooth/btqcomsmd.c +182 −0
  3340. drivers/bluetooth/btrtl.c +95 −12
  3341. drivers/bluetooth/btusb.c +15 −8
  3342. drivers/bluetooth/btwilink.c +3 −1
  3343. drivers/bluetooth/hci_bcm.c +1 −1
  3344. drivers/bluetooth/hci_bcsp.c +74 −54
  3345. drivers/bluetooth/hci_intel.c +3 −3
  3346. drivers/bluetooth/hci_ldisc.c +21 −13
  3347. drivers/bluetooth/hci_mrvl.c +387 −0
  3348. drivers/bluetooth/hci_qca.c +1 −1
  3349. drivers/bluetooth/hci_uart.h +8 −1
  3350. drivers/bluetooth/hci_vhci.c +1 −15
  3351. drivers/bus/Kconfig +9 −5
  3352. drivers/bus/Makefile +1 −0
  3353. drivers/bus/arm-cci.c +19 −28
  3354. drivers/bus/arm-ccn.c +100 −66
  3355. drivers/bus/mips_cdmm.c +12 −58
  3356. drivers/bus/qcom-ebi2.c +408 −0
  3357. drivers/bus/tegra-aconnect.c +2 −20
  3358. drivers/bus/vexpress-config.c +1 −0
  3359. drivers/char/agp/intel-gtt.c +2 −0
  3360. drivers/char/bfin-otp.c +1 −39
  3361. drivers/char/hw_random/Kconfig +13 −0
  3362. drivers/char/hw_random/Makefile +1 −0
  3363. drivers/char/hw_random/amd-rng.c +78 −62
  3364. drivers/char/hw_random/bcm2835-rng.c +3 −2
  3365. drivers/char/hw_random/cavium-rng-vf.c +99 −0
  3366. drivers/char/hw_random/cavium-rng.c +94 −0
  3367. drivers/char/hw_random/core.c +20 −17
  3368. drivers/char/hw_random/geode-rng.c +19 −39
  3369. drivers/char/hw_random/meson-rng.c +0 −3
  3370. drivers/char/hw_random/omap-rng.c +2 −2
  3371. drivers/char/hw_random/omap3-rom-rng.c +2 −8
  3372. drivers/char/hw_random/pasemi-rng.c +8 −31
  3373. drivers/char/hw_random/pic32-rng.c +0 −1
  3374. drivers/char/hw_random/st-rng.c +1 −3
  3375. drivers/char/hw_random/tx4939-rng.c +1 −10
  3376. drivers/char/ipmi/Kconfig +8 −0
  3377. drivers/char/ipmi/Makefile +1 −0
  3378. drivers/char/ipmi/bt-bmc.c +505 −0
  3379. drivers/char/ipmi/ipmi_msghandler.c +3 −4
  3380. drivers/char/mem.c +6 −0
  3381. drivers/char/mwave/3780i.c +32 −32
  3382. drivers/char/mwave/3780i.h +4 −4
  3383. drivers/char/mwave/mwavedd.c +21 −21
  3384. drivers/char/mwave/mwavedd.h +7 −7
  3385. drivers/char/mwave/smapi.c +2 −2
  3386. drivers/char/mwave/smapi.h +1 −5
  3387. drivers/char/mwave/tp3780i.c +26 −26
  3388. drivers/char/ppdev.c +20 −5
  3389. drivers/char/random.c +27 −13
  3390. drivers/char/snsc.c +6 −1
  3391. drivers/char/sonypi.c +1 −1
  3392. drivers/char/tb0219.c +1 −0
  3393. drivers/char/tile-srom.c +15 −13
  3394. drivers/char/tpm/st33zp24/st33zp24.c +0 −2
  3395. drivers/char/tpm/tpm-dev.c +1 −1
  3396. drivers/char/tpm/tpm-interface.c +38 −46
  3397. drivers/char/tpm/tpm-sysfs.c +2 −2
  3398. drivers/char/tpm/tpm.h +24 −22
  3399. drivers/char/tpm/tpm2-cmd.c +66 −55
  3400. drivers/char/tpm/tpm_crb.c +24 −26
  3401. drivers/char/tpm/tpm_tis_core.c +15 −9
  3402. drivers/char/ttyprintk.c +31 −38
  3403. drivers/char/virtio_console.c +16 −10
  3404. drivers/char/xillybus/xillybus_core.c +2 −2
  3405. drivers/clk/Kconfig +6 −14
  3406. drivers/clk/Makefile +2 −3
  3407. drivers/clk/at91/clk-generated.c +17 −13
  3408. drivers/clk/at91/clk-h32mx.c +4 −4
  3409. drivers/clk/at91/clk-main.c +52 −36
  3410. drivers/clk/at91/clk-master.c +12 −9
  3411. drivers/clk/at91/clk-peripheral.c +23 −16
  3412. drivers/clk/at91/clk-pll.c +12 −9
  3413. drivers/clk/at91/clk-plldiv.c +13 −11
  3414. drivers/clk/at91/clk-programmable.c +13 −9
  3415. drivers/clk/at91/clk-slow.c +13 −362
  3416. drivers/clk/at91/clk-smd.c +13 −9
  3417. drivers/clk/at91/clk-system.c +13 −9
  3418. drivers/clk/at91/clk-usb.c +40 −29
  3419. drivers/clk/at91/clk-utmi.c +13 −9
  3420. drivers/clk/at91/sckc.c +463 −1
  3421. drivers/clk/at91/sckc.h +0 −22
  3422. drivers/clk/axis/clk-artpec6.c +2 −2
  3423. drivers/clk/bcm/Kconfig +29 −1
  3424. drivers/clk/bcm/Makefile +4 −4
  3425. drivers/clk/bcm/clk-bcm2835-aux.c +12 −16
  3426. drivers/clk/bcm/clk-bcm2835.c +106 −40
  3427. drivers/clk/bcm/clk-bcm53573-ilp.c +148 −0
  3428. drivers/clk/bcm/clk-kona-setup.c +37 −43
  3429. drivers/clk/bcm/clk-kona.c +4 −5
  3430. drivers/clk/bcm/clk-kona.h +2 −5
  3431. drivers/clk/berlin/berlin2-avpll.c +6 −6
  3432. drivers/clk/berlin/berlin2-avpll.h +2 −6
  3433. drivers/clk/berlin/berlin2-div.c +2 −2
  3434. drivers/clk/berlin/berlin2-div.h +2 −2
  3435. drivers/clk/berlin/berlin2-pll.c +3 −3
  3436. drivers/clk/berlin/berlin2-pll.h +3 −6
  3437. drivers/clk/berlin/bg2.c +52 −46
  3438. drivers/clk/berlin/bg2q.c +22 −17
  3439. drivers/clk/clk-asm9260.c +18 −13
  3440. drivers/clk/clk-axi-clkgen.c +6 −6
  3441. drivers/clk/clk-axm5516.c +17 −22
  3442. drivers/clk/clk-cdce706.c +22 −18
  3443. drivers/clk/clk-cdce925.c +23 −19
  3444. drivers/clk/clk-clps711x.c +39 −39
  3445. drivers/clk/clk-cs2000-cp.c +6 −10
  3446. drivers/clk/clk-divider.c +1 −1
  3447. drivers/clk/clk-efm32gg.c +35 −28
  3448. drivers/clk/clk-fixed-factor.c +65 −9
  3449. drivers/clk/clk-fixed-rate.c +64 −8
  3450. drivers/clk/clk-ls1x.c +0 −161
  3451. drivers/clk/clk-max-gen.c +0 −194
  3452. drivers/clk/clk-max-gen.h +0 −32
  3453. drivers/clk/clk-max77686.c +250 −12
  3454. drivers/clk/clk-max77802.c +0 −96
  3455. drivers/clk/clk-mb86s7x.c +10 −6
  3456. drivers/clk/clk-moxart.c +12 −10
  3457. drivers/clk/clk-nspire.c +10 −9
  3458. drivers/clk/clk-palmas.c +4 −8
  3459. drivers/clk/clk-pwm.c +4 −5
  3460. drivers/clk/clk-qoriq.c +5 −1
  3461. drivers/clk/clk-rk808.c +22 −22
  3462. drivers/clk/clk-scpi.c +14 −19
  3463. drivers/clk/clk-si514.c +5 −6
  3464. drivers/clk/clk-si5351.c +41 −30
  3465. drivers/clk/clk-si570.c +6 −7
  3466. drivers/clk/clk-twl6040.c +51 −36
  3467. drivers/clk/clk-vt8500.c +12 −10
  3468. drivers/clk/clk-wm831x.c +9 −12
  3469. drivers/clk/clk-xgene.c +221 −0
  3470. drivers/clk/clk.c +26 −23
  3471. drivers/clk/h8300/clk-div.c +5 −5
  3472. drivers/clk/h8300/clk-h8s2678.c +6 −6
  3473. drivers/clk/imx/clk-imx1.c +5 −41
  3474. drivers/clk/imx/clk-imx35.c +17 −15
  3475. drivers/clk/imx/clk-imx51-imx53.c +20 −0
  3476. drivers/clk/imx/clk-imx6q.c +34 −12
  3477. drivers/clk/imx/clk-imx7d.c +72 −45
  3478. drivers/clk/imx/clk.h +9 −0
  3479. drivers/clk/loongson1/Makefile +3 −0
  3480. drivers/clk/loongson1/clk-loongson1b.c +122 −0
  3481. drivers/clk/loongson1/clk-loongson1c.c +97 −0
  3482. drivers/clk/loongson1/clk.c +43 −0
  3483. drivers/clk/loongson1/clk.h +19 −0
  3484. drivers/clk/mediatek/Kconfig +21 −0
  3485. drivers/clk/mediatek/Makefile +3 −3
  3486. drivers/clk/mediatek/clk-gate.c +1 −1
  3487. drivers/clk/mediatek/clk-mt8173.c +3 −1
  3488. drivers/clk/mediatek/clk-mtk.c +6 −6
  3489. drivers/clk/mediatek/clk-pll.c +1 −1
  3490. drivers/clk/meson/Makefile +2 −2
  3491. drivers/clk/meson/clkc.h +1 −1
  3492. drivers/clk/meson/gxbb-aoclk.c +191 −0
  3493. drivers/clk/meson/gxbb.c +91 −86
  3494. drivers/clk/meson/gxbb.h +17 −14
  3495. drivers/clk/meson/meson8b.c +264 −35
  3496. drivers/clk/meson/meson8b.h +151 −0
  3497. drivers/clk/microchip/clk-core.c +3 −3
  3498. drivers/clk/microchip/clk-pic32mzda.c +1 −0
  3499. drivers/clk/mmp/clk-mmp2.c +1 −0
  3500. drivers/clk/mvebu/Kconfig +3 −0
  3501. drivers/clk/mvebu/Makefile +3 −0
  3502. drivers/clk/mvebu/armada-37xx-periph.c +447 −0
  3503. drivers/clk/mvebu/armada-37xx-tbg.c +158 −0
  3504. drivers/clk/mvebu/armada-37xx-xtal.c +91 −0
  3505. drivers/clk/mvebu/armada-39x.c +2 −0
  3506. drivers/clk/mvebu/cp110-system-controller.c +22 −9
  3507. drivers/clk/mvebu/orion.c +70 −0
  3508. drivers/clk/nxp/clk-lpc18xx-creg.c +2 −1
  3509. drivers/clk/nxp/clk-lpc32xx.c +1 −0
  3510. drivers/clk/qcom/Kconfig +19 −0
  3511. drivers/clk/qcom/Makefile +4 −1
  3512. drivers/clk/qcom/clk-regmap.c +2 −3
  3513. drivers/clk/qcom/clk-regmap.h +1 −2
  3514. drivers/clk/qcom/common.c +32 −26
  3515. drivers/clk/qcom/gcc-ipq4019.c +0 −1
  3516. drivers/clk/qcom/gcc-mdm9615.c +1727 −0
.gitattributes+2−0
@@ -0,0 +1,2 @@
1*.c diff=cpp
2*.h diff=cpp
.mailmap+6−0
@@ -69,11 +69,14 @@ James Bottomley <jejb@mulgrave.(none)> · 68 unmodified lines
69James Bottomley <jejb@titanic.il.steeleye.com>69James Bottomley <jejb@titanic.il.steeleye.com>
70James E Wilson <wilson@specifix.com>70James E Wilson <wilson@specifix.com>
71James Ketrenos <jketreno@io.(none)>71James Ketrenos <jketreno@io.(none)>
72Javi Merino <javi.merino@kernel.org> <javi.merino@arm.com>
72<javier@osg.samsung.com> <javier.martinez@collabora.co.uk>73<javier@osg.samsung.com> <javier.martinez@collabora.co.uk>
73Jean Tourrilhes <jt@hpl.hp.com>74Jean Tourrilhes <jt@hpl.hp.com>
74Jeff Garzik <jgarzik@pretzel.yyz.us>75Jeff Garzik <jgarzik@pretzel.yyz.us>
75Jens Axboe <axboe@suse.de>76Jens Axboe <axboe@suse.de>
76Jens Osterkamp <Jens.Osterkamp@de.ibm.com>77Jens Osterkamp <Jens.Osterkamp@de.ibm.com>
78Johan Hovold <johan@kernel.org> <jhovold@gmail.com>
79Johan Hovold <johan@kernel.org> <johan@hovoldconsulting.com>
77John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>80John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
78John Stultz <johnstul@us.ibm.com>81John Stultz <johnstul@us.ibm.com>
79<josh@joshtriplett.org> <josh@freedesktop.org>82<josh@joshtriplett.org> <josh@freedesktop.org>
@@ -88,6 +91,7 @@ Kay Sievers <kay.sievers@vrfy.org> · 8 unmodified lines
88Kenneth W Chen <kenneth.w.chen@intel.com>91Kenneth W Chen <kenneth.w.chen@intel.com>
89Konstantin Khlebnikov <koct9i@gmail.com> <k.khlebnikov@samsung.com>92Konstantin Khlebnikov <koct9i@gmail.com> <k.khlebnikov@samsung.com>
90Koushik <raghavendra.koushik@neterion.com>93Koushik <raghavendra.koushik@neterion.com>
94Krzysztof Kozlowski <krzk@kernel.org> <k.kozlowski@samsung.com>
91Krzysztof Kozlowski <krzk@kernel.org> <k.kozlowski.k@gmail.com>95Krzysztof Kozlowski <krzk@kernel.org> <k.kozlowski.k@gmail.com>
92Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>96Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
93Leonid I Ananiev <leonid.i.ananiev@intel.com>97Leonid I Ananiev <leonid.i.ananiev@intel.com>
@@ -123,6 +127,7 @@ Peter Oruba <peter@oruba.de> · 29 unmodified lines
123Peter Oruba <peter.oruba@amd.com>127Peter Oruba <peter.oruba@amd.com>
124Pratyush Anand <pratyush.anand@gmail.com> <pratyush.anand@st.com>128Pratyush Anand <pratyush.anand@gmail.com> <pratyush.anand@st.com>
125Praveen BP <praveenbp@ti.com>129Praveen BP <praveenbp@ti.com>
130Qais Yousef <qsyousef@gmail.com> <qais.yousef@imgtec.com>
126Rajesh Shah <rajesh.shah@intel.com>131Rajesh Shah <rajesh.shah@intel.com>
127Ralf Baechle <ralf@linux-mips.org>132Ralf Baechle <ralf@linux-mips.org>
128Ralf Wildenhues <Ralf.Wildenhues@gmx.de>133Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
@@ -158,6 +163,7 @@ Valdis Kletnieks <Valdis.Kletnieks@vt.edu> · 29 unmodified lines
158Viresh Kumar <vireshk@kernel.org> <viresh.kumar@st.com>163Viresh Kumar <vireshk@kernel.org> <viresh.kumar@st.com>
159Viresh Kumar <vireshk@kernel.org> <viresh.linux@gmail.com>164Viresh Kumar <vireshk@kernel.org> <viresh.linux@gmail.com>
160Viresh Kumar <vireshk@kernel.org> <viresh.kumar2@arm.com>165Viresh Kumar <vireshk@kernel.org> <viresh.kumar2@arm.com>
166Vlad Dogaru <ddvlad@gmail.com> <vlad.dogaru@intel.com>
161Vladimir Davydov <vdavydov.dev@gmail.com> <vdavydov@virtuozzo.com>167Vladimir Davydov <vdavydov.dev@gmail.com> <vdavydov@virtuozzo.com>
162Vladimir Davydov <vdavydov.dev@gmail.com> <vdavydov@parallels.com>168Vladimir Davydov <vdavydov.dev@gmail.com> <vdavydov@parallels.com>
163Takashi YOSHII <takashi.yoshii.zj@renesas.com>169Takashi YOSHII <takashi.yoshii.zj@renesas.com>
CREDITS+22−5
@@ -1090,6 +1090,10 @@ S: 6350 Stoneridge Mall Road · 1089 unmodified lines
1090S: Pleasanton, CA 945881090S: Pleasanton, CA 94588
1091S: USA1091S: USA
1092 1092
1093N: Dmitry Eremin-Solenikov
1094E: dbaryshkov@gmail.com
1095D: Power Supply Maintainer from v3.14 - v3.15
1096
1093N: Doug Evans1097N: Doug Evans
1094E: dje@cygnus.com1098E: dje@cygnus.com
1095D: Wrote Xenix FS (part of standard kernel since 0.99.15)1099D: Wrote Xenix FS (part of standard kernel since 0.99.15)
@@ -1944,6 +1948,11 @@ E: kraxel@bytesex.org · 848 unmodified lines
1944E: kraxel@suse.de1948E: kraxel@suse.de
1945D: video4linux, bttv, vesafb, some scsi, misc fixes1949D: video4linux, bttv, vesafb, some scsi, misc fixes
1946 1950
1951N: Hans J. Koch
1952D: USERSPACE I/O, MAX6650
1953D: Hans passed away in June 2016, and will be greatly missed.
1954W: https://lwn.net/Articles/691000/
1955
1947N: Harald Koenig1956N: Harald Koenig
1948E: koenig@tat.physik.uni-tuebingen.de1957E: koenig@tat.physik.uni-tuebingen.de
1949D: XFree86 (S3), DCF77, some kernel hacks and fixes1958D: XFree86 (S3), DCF77, some kernel hacks and fixes
@@ -2287,11 +2296,11 @@ D: Initial implementation of VC's, pty's and select() · 337 unmodified lines
2287 2296
2288N: Pavel Machek2297N: Pavel Machek
2289E: pavel@ucw.cz2298E: pavel@ucw.cz
2290D: Softcursor for vga, hypertech cdrom support, vcsa bugfix, nbd2299P: 4096R/92DFCE96 4FA7 9EEF FCD4 C44F C585 B8C7 C060 2241 92DF CE96
2300D: Softcursor for vga, hypertech cdrom support, vcsa bugfix, nbd,
2291D: sun4/330 port, capabilities for elf, speedup for rm on ext2, USB,2301D: sun4/330 port, capabilities for elf, speedup for rm on ext2, USB,
2292D: work on suspend-to-ram/disk, killing duplicates from ioctl322302D: work on suspend-to-ram/disk, killing duplicates from ioctl32,
2293S: Volkova 11312303D: Altera SoCFPGA and Nokia N900 support.
2294S: 198 00 Praha 9
2295S: Czech Republic2304S: Czech Republic
2296 2305
2297N: Paul Mackerras2306N: Paul Mackerras
@@ -3518,6 +3527,10 @@ S: 145 Howard St. · 1220 unmodified lines
3518S: Northborough, MA 015323527S: Northborough, MA 01532
3519S: USA3528S: USA
3520 3529
3530N: Doug Thompson
3531E: dougthompson@xmission.com
3532D: EDAC
3533
3521N: Tommy Thorn3534N: Tommy Thorn
3522E: Tommy.Thorn@irisa.fr3535E: Tommy.Thorn@irisa.fr
3523W: http://www.irisa.fr/prive/thorn/index.html3536W: http://www.irisa.fr/prive/thorn/index.html
@@ -3654,6 +3667,10 @@ S: Obere Heerbergstrasse 17 · 130 unmodified lines
3654S: 97078 Wuerzburg3667S: 97078 Wuerzburg
3655S: Germany3668S: Germany
3656 3669
3670N: Jason Uhlenkott
3671E: juhlenko@akamai.com
3672D: I3000 EDAC driver
3673
3657N: Greg Ungerer3674N: Greg Ungerer
3658E: gerg@snapgear.com3675E: gerg@snapgear.com
3659D: uClinux kernel hacker3676D: uClinux kernel hacker
@@ -3691,7 +3708,7 @@ S: Germany · 31 unmodified lines
3691N: Geert Uytterhoeven3708N: Geert Uytterhoeven
3692E: geert@linux-m68k.org3709E: geert@linux-m68k.org
3693W: http://users.telenet.be/geertu/3710W: http://users.telenet.be/geertu/
3694P: 1024/862678A6 C51D 361C 0BD1 4C90 B275 C553 6EEA 11BA 8626 78A63711P: 4096R/4804B4BC3F55EEFB 750D 82B0 A781 5431 5E25 925B 4804 B4BC 3F55 EEFB
3695D: m68k/Amiga and PPC/CHRP Longtrail coordinator3712D: m68k/Amiga and PPC/CHRP Longtrail coordinator
3696D: Frame buffer device and XF68_FBDev maintainer3713D: Frame buffer device and XF68_FBDev maintainer
3697D: m68k IDE maintainer3714D: m68k IDE maintainer
Documentation/00-INDEX+2−1
@@ -46,7 +46,8 @@ IRQ.txt · 45 unmodified lines
46Intel-IOMMU.txt46Intel-IOMMU.txt
47 - basic info on the Intel IOMMU virtualization support.47 - basic info on the Intel IOMMU virtualization support.
48Makefile48Makefile
49 - some files in Documentation dir are actually sample code to build49 - This file does nothing. Removing it breaks make htmldocs and
50 make distclean.
50ManagementStyle51ManagementStyle
51 - how to (attempt to) manage kernel hackers.52 - how to (attempt to) manage kernel hackers.
52RCU/53RCU/
Documentation/80211/cfg80211.rst+345−0
@@ -0,0 +1,345 @@
1==================
2cfg80211 subsystem
3==================
4
5Device registration
6===================
7
8.. kernel-doc:: include/net/cfg80211.h
9 :doc: Device registration
10
11.. kernel-doc:: include/net/cfg80211.h
12 :functions: ieee80211_channel_flags
13
14.. kernel-doc:: include/net/cfg80211.h
15 :functions: ieee80211_channel
16
17.. kernel-doc:: include/net/cfg80211.h
18 :functions: ieee80211_rate_flags
19
20.. kernel-doc:: include/net/cfg80211.h
21 :functions: ieee80211_rate
22
23.. kernel-doc:: include/net/cfg80211.h
24 :functions: ieee80211_sta_ht_cap
25
26.. kernel-doc:: include/net/cfg80211.h
27 :functions: ieee80211_supported_band
28
29.. kernel-doc:: include/net/cfg80211.h
30 :functions: cfg80211_signal_type
31
32.. kernel-doc:: include/net/cfg80211.h
33 :functions: wiphy_params_flags
34
35.. kernel-doc:: include/net/cfg80211.h
36 :functions: wiphy_flags
37
38.. kernel-doc:: include/net/cfg80211.h
39 :functions: wiphy
40
41.. kernel-doc:: include/net/cfg80211.h
42 :functions: wireless_dev
43
44.. kernel-doc:: include/net/cfg80211.h
45 :functions: wiphy_new
46
47.. kernel-doc:: include/net/cfg80211.h
48 :functions: wiphy_register
49
50.. kernel-doc:: include/net/cfg80211.h
51 :functions: wiphy_unregister
52
53.. kernel-doc:: include/net/cfg80211.h
54 :functions: wiphy_free
55
56.. kernel-doc:: include/net/cfg80211.h
57 :functions: wiphy_name
58
59.. kernel-doc:: include/net/cfg80211.h
60 :functions: wiphy_dev
61
62.. kernel-doc:: include/net/cfg80211.h
63 :functions: wiphy_priv
64
65.. kernel-doc:: include/net/cfg80211.h
66 :functions: priv_to_wiphy
67
68.. kernel-doc:: include/net/cfg80211.h
69 :functions: set_wiphy_dev
70
71.. kernel-doc:: include/net/cfg80211.h
72 :functions: wdev_priv
73
74.. kernel-doc:: include/net/cfg80211.h
75 :functions: ieee80211_iface_limit
76
77.. kernel-doc:: include/net/cfg80211.h
78 :functions: ieee80211_iface_combination
79
80.. kernel-doc:: include/net/cfg80211.h
81 :functions: cfg80211_check_combinations
82
83Actions and configuration
84=========================
85
86.. kernel-doc:: include/net/cfg80211.h
87 :doc: Actions and configuration
88
89.. kernel-doc:: include/net/cfg80211.h
90 :functions: cfg80211_ops
91
92.. kernel-doc:: include/net/cfg80211.h
93 :functions: vif_params
94
95.. kernel-doc:: include/net/cfg80211.h
96 :functions: key_params
97
98.. kernel-doc:: include/net/cfg80211.h
99 :functions: survey_info_flags
100
101.. kernel-doc:: include/net/cfg80211.h
102 :functions: survey_info
103
104.. kernel-doc:: include/net/cfg80211.h
105 :functions: cfg80211_beacon_data
106
107.. kernel-doc:: include/net/cfg80211.h
108 :functions: cfg80211_ap_settings
109
110.. kernel-doc:: include/net/cfg80211.h
111 :functions: station_parameters
112
113.. kernel-doc:: include/net/cfg80211.h
114 :functions: rate_info_flags
115
116.. kernel-doc:: include/net/cfg80211.h
117 :functions: rate_info
118
119.. kernel-doc:: include/net/cfg80211.h
120 :functions: station_info
121
122.. kernel-doc:: include/net/cfg80211.h
123 :functions: monitor_flags
124
125.. kernel-doc:: include/net/cfg80211.h
126 :functions: mpath_info_flags
127
128.. kernel-doc:: include/net/cfg80211.h
129 :functions: mpath_info
130
131.. kernel-doc:: include/net/cfg80211.h
132 :functions: bss_parameters
133
134.. kernel-doc:: include/net/cfg80211.h
135 :functions: ieee80211_txq_params
136
137.. kernel-doc:: include/net/cfg80211.h
138 :functions: cfg80211_crypto_settings
139
140.. kernel-doc:: include/net/cfg80211.h
141 :functions: cfg80211_auth_request
142
143.. kernel-doc:: include/net/cfg80211.h
144 :functions: cfg80211_assoc_request
145
146.. kernel-doc:: include/net/cfg80211.h
147 :functions: cfg80211_deauth_request
148
149.. kernel-doc:: include/net/cfg80211.h
150 :functions: cfg80211_disassoc_request
151
152.. kernel-doc:: include/net/cfg80211.h
153 :functions: cfg80211_ibss_params
154
155.. kernel-doc:: include/net/cfg80211.h
156 :functions: cfg80211_connect_params
157
158.. kernel-doc:: include/net/cfg80211.h
159 :functions: cfg80211_pmksa
160
161.. kernel-doc:: include/net/cfg80211.h
162 :functions: cfg80211_rx_mlme_mgmt
163
164.. kernel-doc:: include/net/cfg80211.h
165 :functions: cfg80211_auth_timeout
166
167.. kernel-doc:: include/net/cfg80211.h
168 :functions: cfg80211_rx_assoc_resp
169
170.. kernel-doc:: include/net/cfg80211.h
171 :functions: cfg80211_assoc_timeout
172
173.. kernel-doc:: include/net/cfg80211.h
174 :functions: cfg80211_tx_mlme_mgmt
175
176.. kernel-doc:: include/net/cfg80211.h
177 :functions: cfg80211_ibss_joined
178
179.. kernel-doc:: include/net/cfg80211.h
180 :functions: cfg80211_connect_result
181
182.. kernel-doc:: include/net/cfg80211.h
183 :functions: cfg80211_connect_bss
184
185.. kernel-doc:: include/net/cfg80211.h
186 :functions: cfg80211_connect_timeout
187
188.. kernel-doc:: include/net/cfg80211.h
189 :functions: cfg80211_roamed
190
191.. kernel-doc:: include/net/cfg80211.h
192 :functions: cfg80211_disconnected
193
194.. kernel-doc:: include/net/cfg80211.h
195 :functions: cfg80211_ready_on_channel
196
197.. kernel-doc:: include/net/cfg80211.h
198 :functions: cfg80211_remain_on_channel_expired
199
200.. kernel-doc:: include/net/cfg80211.h
201 :functions: cfg80211_new_sta
202
203.. kernel-doc:: include/net/cfg80211.h
204 :functions: cfg80211_rx_mgmt
205
206.. kernel-doc:: include/net/cfg80211.h
207 :functions: cfg80211_mgmt_tx_status
208
209.. kernel-doc:: include/net/cfg80211.h
210 :functions: cfg80211_cqm_rssi_notify
211
212.. kernel-doc:: include/net/cfg80211.h
213 :functions: cfg80211_cqm_pktloss_notify
214
215.. kernel-doc:: include/net/cfg80211.h
216 :functions: cfg80211_michael_mic_failure
217
218Scanning and BSS list handling
219==============================
220
221.. kernel-doc:: include/net/cfg80211.h
222 :doc: Scanning and BSS list handling
223
224.. kernel-doc:: include/net/cfg80211.h
225 :functions: cfg80211_ssid
226
227.. kernel-doc:: include/net/cfg80211.h
228 :functions: cfg80211_scan_request
229
230.. kernel-doc:: include/net/cfg80211.h
231 :functions: cfg80211_scan_done
232
233.. kernel-doc:: include/net/cfg80211.h
234 :functions: cfg80211_bss
235
236.. kernel-doc:: include/net/cfg80211.h
237 :functions: cfg80211_inform_bss
238
239.. kernel-doc:: include/net/cfg80211.h
240 :functions: cfg80211_inform_bss_frame_data
241
242.. kernel-doc:: include/net/cfg80211.h
243 :functions: cfg80211_inform_bss_data
244
245.. kernel-doc:: include/net/cfg80211.h
246 :functions: cfg80211_unlink_bss
247
248.. kernel-doc:: include/net/cfg80211.h
249 :functions: cfg80211_find_ie
250
251.. kernel-doc:: include/net/cfg80211.h
252 :functions: ieee80211_bss_get_ie
253
254Utility functions
255=================
256
257.. kernel-doc:: include/net/cfg80211.h
258 :doc: Utility functions
259
260.. kernel-doc:: include/net/cfg80211.h
261 :functions: ieee80211_channel_to_frequency
262
263.. kernel-doc:: include/net/cfg80211.h
264 :functions: ieee80211_frequency_to_channel
265
266.. kernel-doc:: include/net/cfg80211.h
267 :functions: ieee80211_get_channel
268
269.. kernel-doc:: include/net/cfg80211.h
270 :functions: ieee80211_get_response_rate
271
272.. kernel-doc:: include/net/cfg80211.h
273 :functions: ieee80211_hdrlen
274
275.. kernel-doc:: include/net/cfg80211.h
276 :functions: ieee80211_get_hdrlen_from_skb
277
278.. kernel-doc:: include/net/cfg80211.h
279 :functions: ieee80211_radiotap_iterator
280
281Data path helpers
282=================
283
284.. kernel-doc:: include/net/cfg80211.h
285 :doc: Data path helpers
286
287.. kernel-doc:: include/net/cfg80211.h
288 :functions: ieee80211_data_to_8023
289
290.. kernel-doc:: include/net/cfg80211.h
291 :functions: ieee80211_data_from_8023
292
293.. kernel-doc:: include/net/cfg80211.h
294 :functions: ieee80211_amsdu_to_8023s
295
296.. kernel-doc:: include/net/cfg80211.h
297 :functions: cfg80211_classify8021d
298
299Regulatory enforcement infrastructure
300=====================================
301
302.. kernel-doc:: include/net/cfg80211.h
303 :doc: Regulatory enforcement infrastructure
304
305.. kernel-doc:: include/net/cfg80211.h
306 :functions: regulatory_hint
307
308.. kernel-doc:: include/net/cfg80211.h
309 :functions: wiphy_apply_custom_regulatory
310
311.. kernel-doc:: include/net/cfg80211.h
312 :functions: freq_reg_info
313
314RFkill integration
315==================
316
317.. kernel-doc:: include/net/cfg80211.h
318 :doc: RFkill integration
319
320.. kernel-doc:: include/net/cfg80211.h
321 :functions: wiphy_rfkill_set_hw_state
322
323.. kernel-doc:: include/net/cfg80211.h
324 :functions: wiphy_rfkill_start_polling
325
326.. kernel-doc:: include/net/cfg80211.h
327 :functions: wiphy_rfkill_stop_polling
328
329Test mode
330=========
331
332.. kernel-doc:: include/net/cfg80211.h
333 :doc: Test mode
334
335.. kernel-doc:: include/net/cfg80211.h
336 :functions: cfg80211_testmode_alloc_reply_skb
337
338.. kernel-doc:: include/net/cfg80211.h
339 :functions: cfg80211_testmode_reply
340
341.. kernel-doc:: include/net/cfg80211.h
342 :functions: cfg80211_testmode_alloc_event_skb
343
344.. kernel-doc:: include/net/cfg80211.h
345 :functions: cfg80211_testmode_event
Documentation/80211/conf.py+5−0
@@ -0,0 +1,5 @@
1# -*- coding: utf-8; mode: python -*-
2
3project = "Linux 802.11 Driver Developer's Guide"
4
5tags.add("subproject")
Documentation/80211/index.rst+17−0
@@ -0,0 +1,17 @@
1=====================================
2Linux 802.11 Driver Developer's Guide
3=====================================
4
5.. toctree::
6
7 introduction
8 cfg80211
9 mac80211
10 mac80211-advanced
11
12.. only:: subproject
13
14 Indices
15 =======
16
17 * :ref:`genindex`
Documentation/80211/introduction.rst+17−0
@@ -0,0 +1,17 @@
1============
2Introduction
3============
4
5Explaining wireless 802.11 networking in the Linux kernel
6
7Copyright 2007-2009 Johannes Berg
8
9These books attempt to give a description of the various subsystems
10that play a role in 802.11 wireless networking in Linux. Since these
11books are for kernel developers they attempts to document the
12structures and functions used in the kernel as well as giving a
13higher-level overview.
14
15The reader is expected to be familiar with the 802.11 standard as
16published by the IEEE in 802.11-2007 (or possibly later versions).
17References to this standard will be given as "802.11-2007 8.1.5".
Documentation/80211/mac80211-advanced.rst+295−0
@@ -0,0 +1,295 @@
1=============================
2mac80211 subsystem (advanced)
3=============================
4
5Information contained within this part of the book is of interest only
6for advanced interaction of mac80211 with drivers to exploit more
7hardware capabilities and improve performance.
8
9LED support
10===========
11
12Mac80211 supports various ways of blinking LEDs. Wherever possible,
13device LEDs should be exposed as LED class devices and hooked up to the
14appropriate trigger, which will then be triggered appropriately by
15mac80211.
16
17.. kernel-doc:: include/net/mac80211.h
18 :functions: ieee80211_get_tx_led_name
19
20.. kernel-doc:: include/net/mac80211.h
21 :functions: ieee80211_get_rx_led_name
22
23.. kernel-doc:: include/net/mac80211.h
24 :functions: ieee80211_get_assoc_led_name
25
26.. kernel-doc:: include/net/mac80211.h
27 :functions: ieee80211_get_radio_led_name
28
29.. kernel-doc:: include/net/mac80211.h
30 :functions: ieee80211_tpt_blink
31
32.. kernel-doc:: include/net/mac80211.h
33 :functions: ieee80211_tpt_led_trigger_flags
34
35.. kernel-doc:: include/net/mac80211.h
36 :functions: ieee80211_create_tpt_led_trigger
37
38Hardware crypto acceleration
39============================
40
41.. kernel-doc:: include/net/mac80211.h
42 :doc: Hardware crypto acceleration
43
44.. kernel-doc:: include/net/mac80211.h
45 :functions: set_key_cmd
46
47.. kernel-doc:: include/net/mac80211.h
48 :functions: ieee80211_key_conf
49
50.. kernel-doc:: include/net/mac80211.h
51 :functions: ieee80211_key_flags
52
53.. kernel-doc:: include/net/mac80211.h
54 :functions: ieee80211_get_tkip_p1k
55
56.. kernel-doc:: include/net/mac80211.h
57 :functions: ieee80211_get_tkip_p1k_iv
58
59.. kernel-doc:: include/net/mac80211.h
60 :functions: ieee80211_get_tkip_p2k
61
62Powersave support
63=================
64
65.. kernel-doc:: include/net/mac80211.h
66 :doc: Powersave support
67
68Beacon filter support
69=====================
70
71.. kernel-doc:: include/net/mac80211.h
72 :doc: Beacon filter support
73
74.. kernel-doc:: include/net/mac80211.h
75 :functions: ieee80211_beacon_loss
76
77Multiple queues and QoS support
78===============================
79
80TBD
81
82.. kernel-doc:: include/net/mac80211.h
83 :functions: ieee80211_tx_queue_params
84
85Access point mode support
86=========================
87
88TBD
89
90Some parts of the if_conf should be discussed here instead
91
92Insert notes about VLAN interfaces with hw crypto here or in the hw
93crypto chapter.
94
95support for powersaving clients
96-------------------------------
97
98.. kernel-doc:: include/net/mac80211.h
99 :doc: AP support for powersaving clients
100
101.. kernel-doc:: include/net/mac80211.h
102 :functions: ieee80211_get_buffered_bc
103
104.. kernel-doc:: include/net/mac80211.h
105 :functions: ieee80211_beacon_get
106
107.. kernel-doc:: include/net/mac80211.h
108 :functions: ieee80211_sta_eosp
109
110.. kernel-doc:: include/net/mac80211.h
111 :functions: ieee80211_frame_release_type
112
113.. kernel-doc:: include/net/mac80211.h
114 :functions: ieee80211_sta_ps_transition
115
116.. kernel-doc:: include/net/mac80211.h
117 :functions: ieee80211_sta_ps_transition_ni
118
119.. kernel-doc:: include/net/mac80211.h
120 :functions: ieee80211_sta_set_buffered
121
122.. kernel-doc:: include/net/mac80211.h
123 :functions: ieee80211_sta_block_awake
124
125Supporting multiple virtual interfaces
126======================================
127
128TBD
129
130Note: WDS with identical MAC address should almost always be OK
131
132Insert notes about having multiple virtual interfaces with different MAC
133addresses here, note which configurations are supported by mac80211, add
134notes about supporting hw crypto with it.
135
136.. kernel-doc:: include/net/mac80211.h
137 :functions: ieee80211_iterate_active_interfaces
138
139.. kernel-doc:: include/net/mac80211.h
140 :functions: ieee80211_iterate_active_interfaces_atomic
141
142Station handling
143================
144
145TODO
146
147.. kernel-doc:: include/net/mac80211.h
148 :functions: ieee80211_sta
149
150.. kernel-doc:: include/net/mac80211.h
151 :functions: sta_notify_cmd
152
153.. kernel-doc:: include/net/mac80211.h
154 :functions: ieee80211_find_sta
155
156.. kernel-doc:: include/net/mac80211.h
157 :functions: ieee80211_find_sta_by_ifaddr
158
159Hardware scan offload
160=====================
161
162TBD
163
164.. kernel-doc:: include/net/mac80211.h
165 :functions: ieee80211_scan_completed
166
167Aggregation
168===========
169
170TX A-MPDU aggregation
171---------------------
172
173.. kernel-doc:: net/mac80211/agg-tx.c
174 :doc: TX A-MPDU aggregation
175
176.. WARNING: DOCPROC directive not supported: !Cnet/mac80211/agg-tx.c
177
178RX A-MPDU aggregation
179---------------------
180
181.. kernel-doc:: net/mac80211/agg-rx.c
182 :doc: RX A-MPDU aggregation
183
184.. WARNING: DOCPROC directive not supported: !Cnet/mac80211/agg-rx.c
185
186.. kernel-doc:: include/net/mac80211.h
187 :functions: ieee80211_ampdu_mlme_action
188
189Spatial Multiplexing Powersave (SMPS)
190=====================================
191
192.. kernel-doc:: include/net/mac80211.h
193 :doc: Spatial multiplexing power save
194
195.. kernel-doc:: include/net/mac80211.h
196 :functions: ieee80211_request_smps
197
198.. kernel-doc:: include/net/mac80211.h
199 :functions: ieee80211_smps_mode
200
201TBD
202
203This part of the book describes the rate control algorithm interface and
204how it relates to mac80211 and drivers.
205
206Rate Control API
207================
208
209TBD
210
211.. kernel-doc:: include/net/mac80211.h
212 :functions: ieee80211_start_tx_ba_session
213
214.. kernel-doc:: include/net/mac80211.h
215 :functions: ieee80211_start_tx_ba_cb_irqsafe
216
217.. kernel-doc:: include/net/mac80211.h
218 :functions: ieee80211_stop_tx_ba_session
219
220.. kernel-doc:: include/net/mac80211.h
221 :functions: ieee80211_stop_tx_ba_cb_irqsafe
222
223.. kernel-doc:: include/net/mac80211.h
224 :functions: ieee80211_rate_control_changed
225
226.. kernel-doc:: include/net/mac80211.h
227 :functions: ieee80211_tx_rate_control
228
229.. kernel-doc:: include/net/mac80211.h
230 :functions: rate_control_send_low
231
232TBD
233
234This part of the book describes mac80211 internals.
235
236Key handling
237============
238
239Key handling basics
240-------------------
241
242.. kernel-doc:: net/mac80211/key.c
243 :doc: Key handling basics
244
245MORE TBD
246--------
247
248TBD
249
250Receive processing
251==================
252
253TBD
254
255Transmit processing
256===================
257
258TBD
259
260Station info handling
261=====================
262
263Programming information
264-----------------------
265
266.. kernel-doc:: net/mac80211/sta_info.h
267 :functions: sta_info
268
269.. kernel-doc:: net/mac80211/sta_info.h
270 :functions: ieee80211_sta_info_flags
271
272STA information lifetime rules
273------------------------------
274
275.. kernel-doc:: net/mac80211/sta_info.c
276 :doc: STA information lifetime rules
277
278Aggregation
279===========
280
281.. kernel-doc:: net/mac80211/sta_info.h
282 :functions: sta_ampdu_mlme
283
284.. kernel-doc:: net/mac80211/sta_info.h
285 :functions: tid_ampdu_tx
286
287.. kernel-doc:: net/mac80211/sta_info.h
288 :functions: tid_ampdu_rx
289
290Synchronisation
291===============
292
293TBD
294
295Locking, lots of RCU
Documentation/80211/mac80211.rst+216−0
@@ -0,0 +1,216 @@
1===========================
2mac80211 subsystem (basics)
3===========================
4
5You should read and understand the information contained within this
6part of the book while implementing a mac80211 driver. In some chapters,
7advanced usage is noted, those may be skipped if this isn't needed.
8
9This part of the book only covers station and monitor mode
10functionality, additional information required to implement the other
11modes is covered in the second part of the book.
12
13Basic hardware handling
14=======================
15
16TBD
17
18This chapter shall contain information on getting a hw struct allocated
19and registered with mac80211.
20
21Since it is required to allocate rates/modes before registering a hw
22struct, this chapter shall also contain information on setting up the
23rate/mode structs.
24
25Additionally, some discussion about the callbacks and the general
26programming model should be in here, including the definition of
27ieee80211_ops which will be referred to a lot.
28
29Finally, a discussion of hardware capabilities should be done with
30references to other parts of the book.
31
32.. kernel-doc:: include/net/mac80211.h
33 :functions: ieee80211_hw
34
35.. kernel-doc:: include/net/mac80211.h
36 :functions: ieee80211_hw_flags
37
38.. kernel-doc:: include/net/mac80211.h
39 :functions: SET_IEEE80211_DEV
40
41.. kernel-doc:: include/net/mac80211.h
42 :functions: SET_IEEE80211_PERM_ADDR
43
44.. kernel-doc:: include/net/mac80211.h
45 :functions: ieee80211_ops
46
47.. kernel-doc:: include/net/mac80211.h
48 :functions: ieee80211_alloc_hw
49
50.. kernel-doc:: include/net/mac80211.h
51 :functions: ieee80211_register_hw
52
53.. kernel-doc:: include/net/mac80211.h
54 :functions: ieee80211_unregister_hw
55
56.. kernel-doc:: include/net/mac80211.h
57 :functions: ieee80211_free_hw
58
59PHY configuration
60=================
61
62TBD
63
64This chapter should describe PHY handling including start/stop callbacks
65and the various structures used.
66
67.. kernel-doc:: include/net/mac80211.h
68 :functions: ieee80211_conf
69
70.. kernel-doc:: include/net/mac80211.h
71 :functions: ieee80211_conf_flags
72
73Virtual interfaces
74==================
75
76TBD
77
78This chapter should describe virtual interface basics that are relevant
79to the driver (VLANs, MGMT etc are not.) It should explain the use of
80the add_iface/remove_iface callbacks as well as the interface
81configuration callbacks.
82
83Things related to AP mode should be discussed there.
84
85Things related to supporting multiple interfaces should be in the
86appropriate chapter, a BIG FAT note should be here about this though and
87the recommendation to allow only a single interface in STA mode at
88first!
89
90.. kernel-doc:: include/net/mac80211.h
91 :functions: ieee80211_vif
92
93Receive and transmit processing
94===============================
95
96what should be here
97-------------------
98
99TBD
100
101This should describe the receive and transmit paths in mac80211/the
102drivers as well as transmit status handling.
103
104Frame format
105------------
106
107.. kernel-doc:: include/net/mac80211.h
108 :doc: Frame format
109
110Packet alignment
111----------------
112
113.. kernel-doc:: net/mac80211/rx.c
114 :doc: Packet alignment
115
116Calling into mac80211 from interrupts
117-------------------------------------
118
119.. kernel-doc:: include/net/mac80211.h
120 :doc: Calling mac80211 from interrupts
121
122functions/definitions
123---------------------
124
125.. kernel-doc:: include/net/mac80211.h
126 :functions: ieee80211_rx_status
127
128.. kernel-doc:: include/net/mac80211.h
129 :functions: mac80211_rx_flags
130
131.. kernel-doc:: include/net/mac80211.h
132 :functions: mac80211_tx_info_flags
133
134.. kernel-doc:: include/net/mac80211.h
135 :functions: mac80211_tx_control_flags
136
137.. kernel-doc:: include/net/mac80211.h
138 :functions: mac80211_rate_control_flags
139
140.. kernel-doc:: include/net/mac80211.h
141 :functions: ieee80211_tx_rate
142
143.. kernel-doc:: include/net/mac80211.h
144 :functions: ieee80211_tx_info
145
146.. kernel-doc:: include/net/mac80211.h
147 :functions: ieee80211_tx_info_clear_status
148
149.. kernel-doc:: include/net/mac80211.h
150 :functions: ieee80211_rx
151
152.. kernel-doc:: include/net/mac80211.h
153 :functions: ieee80211_rx_ni
154
155.. kernel-doc:: include/net/mac80211.h
156 :functions: ieee80211_rx_irqsafe
157
158.. kernel-doc:: include/net/mac80211.h
159 :functions: ieee80211_tx_status
160
161.. kernel-doc:: include/net/mac80211.h
162 :functions: ieee80211_tx_status_ni
163
164.. kernel-doc:: include/net/mac80211.h
165 :functions: ieee80211_tx_status_irqsafe
166
167.. kernel-doc:: include/net/mac80211.h
168 :functions: ieee80211_rts_get
169
170.. kernel-doc:: include/net/mac80211.h
171 :functions: ieee80211_rts_duration
172
173.. kernel-doc:: include/net/mac80211.h
174 :functions: ieee80211_ctstoself_get
175
176.. kernel-doc:: include/net/mac80211.h
177 :functions: ieee80211_ctstoself_duration
178
179.. kernel-doc:: include/net/mac80211.h
180 :functions: ieee80211_generic_frame_duration
181
182.. kernel-doc:: include/net/mac80211.h
183 :functions: ieee80211_wake_queue
184
185.. kernel-doc:: include/net/mac80211.h
186 :functions: ieee80211_stop_queue
187
188.. kernel-doc:: include/net/mac80211.h
189 :functions: ieee80211_wake_queues
190
191.. kernel-doc:: include/net/mac80211.h
192 :functions: ieee80211_stop_queues
193
194.. kernel-doc:: include/net/mac80211.h
195 :functions: ieee80211_queue_stopped
196
197Frame filtering
198===============
199
200.. kernel-doc:: include/net/mac80211.h
201 :doc: Frame filtering
202
203.. kernel-doc:: include/net/mac80211.h
204 :functions: ieee80211_filter_flags
205
206The mac80211 workqueue
207======================
208
209.. kernel-doc:: include/net/mac80211.h
210 :doc: mac80211 workqueue
211
212.. kernel-doc:: include/net/mac80211.h
213 :functions: ieee80211_queue_work
214
215.. kernel-doc:: include/net/mac80211.h
216 :functions: ieee80211_queue_delayed_work
Documentation/ABI/testing/sysfs-bus-rbd+26−3
@@ -6,7 +6,7 @@ Description: · 5 unmodified lines
6 6
7Being used for adding and removing rbd block devices.7Being used for adding and removing rbd block devices.
8 8
9Usage: <mon ip addr> <options> <pool name> <rbd image name> [snap name]9Usage: <mon ip addr> <options> <pool name> <rbd image name> [<snap name>]
10 10
11 $ echo "192.168.0.1 name=admin rbd foo" > /sys/bus/rbd/add11 $ echo "192.168.0.1 name=admin rbd foo" > /sys/bus/rbd/add
12 12
@@ -14,9 +14,13 @@ The snapshot name can be "-" or omitted to map the image read/write. A <dev-id> · 1 unmodified line
14will be assigned for any registered block device. If snapshot is used, it will14will be assigned for any registered block device. If snapshot is used, it will
15be mapped read-only.15be mapped read-only.
16 16
17Removal of a device:17Usage: <dev-id> [force]
18 18
19 $ echo <dev-id> > /sys/bus/rbd/remove19 $ echo 2 > /sys/bus/rbd/remove
20
21Optional "force" argument which when passed will wait for running requests and
22then unmap the image. Requests sent to the driver after initiating the removal
23will be failed. (August 2016, since 4.9.)
20 24
21What: /sys/bus/rbd/add_single_major25What: /sys/bus/rbd/add_single_major
22Date: December 201326Date: December 2013
@@ -43,10 +47,25 @@ Description: Available only if rbd module is inserted with single_major · 20 unmodified lines
43Entries under /sys/bus/rbd/devices/<dev-id>/47Entries under /sys/bus/rbd/devices/<dev-id>/
44--------------------------------------------48--------------------------------------------
45 49
50client_addr
51
52 The ceph unique client entity_addr_t (address + nonce).
53 The format is <address>:<port>/<nonce>: '1.2.3.4:1234/5678' or
54 '[1:2:3:4:5:6:7:8]:1234/5678'. (August 2016, since 4.9.)
55
46client_id56client_id
47 57
48 The ceph unique client id that was assigned for this specific session.58 The ceph unique client id that was assigned for this specific session.
49 59
60cluster_fsid
61
62 The ceph cluster UUID. (August 2016, since 4.9.)
63
64config_info
65
66 The string written into /sys/bus/rbd/add{,_single_major}. (August
67 2016, since 4.9.)
68
50features69features
51 70
52 A hexadecimal encoding of the feature bits for this image.71 A hexadecimal encoding of the feature bits for this image.
@@ -92,6 +111,10 @@ current_snap · 39 unmodified lines
92 111
93 The current snapshot for which the device is mapped.112 The current snapshot for which the device is mapped.
94 113
114snap_id
115
116 The current snapshot's id. (August 2016, since 4.9.)
117
95parent118parent
96 119
97 Information identifying the chain of parent images in a layered rbd120 Information identifying the chain of parent images in a layered rbd
Documentation/ABI/testing/sysfs-class-cxl+5−2
@@ -220,8 +220,11 @@ What: /sys/class/cxl/<card>/reset · 219 unmodified lines
220Date: October 2014220Date: October 2014
221Contact: linuxppc-dev@lists.ozlabs.org221Contact: linuxppc-dev@lists.ozlabs.org
222Description: write only222Description: write only
223 Writing 1 will issue a PERST to card which may cause the card223 Writing 1 will issue a PERST to card provided there are no
224 to reload the FPGA depending on load_image_on_perst.224 contexts active on any one of the card AFUs. This may cause
225 the card to reload the FPGA depending on load_image_on_perst.
226 Writing -1 will do a force PERST irrespective of any active
227 contexts on the card AFUs.
225Users: https://github.com/ibm-capi/libcxl228Users: https://github.com/ibm-capi/libcxl
226 229
227What: /sys/class/cxl/<card>/perst_reloads_same_image (not in a guest)230What: /sys/class/cxl/<card>/perst_reloads_same_image (not in a guest)
Documentation/ABI/testing/sysfs-class-led+2−1
@@ -24,7 +24,8 @@ Description: · 23 unmodified lines
24 of led events.24 of led events.
25 You can change triggers in a similar manner to the way an IO25 You can change triggers in a similar manner to the way an IO
26 scheduler is chosen. Trigger specific parameters can appear in26 scheduler is chosen. Trigger specific parameters can appear in
27 /sys/class/leds/<led> once a given trigger is selected.27 /sys/class/leds/<led> once a given trigger is selected. For
28 their documentation see sysfs-class-led-trigger-*.
28 29
29What: /sys/class/leds/<led>/inverted30What: /sys/class/leds/<led>/inverted
30Date: January 201131Date: January 2011
Documentation/ABI/testing/sysfs-class-led-trigger-oneshot+36−0
@@ -0,0 +1,36 @@
1What: /sys/class/leds/<led>/delay_on
2Date: Jun 2012
3KernelVersion: 3.6
4Contact: linux-leds@vger.kernel.org
5Description:
6 Specifies for how many milliseconds the LED has to stay at
7 LED_FULL brightness after it has been armed.
8 Defaults to 100 ms.
9
10What: /sys/class/leds/<led>/delay_off
11Date: Jun 2012
12KernelVersion: 3.6
13Contact: linux-leds@vger.kernel.org
14Description:
15 Specifies for how many milliseconds the LED has to stay at
16 LED_OFF brightness after it has been armed.
17 Defaults to 100 ms.
18
19What: /sys/class/leds/<led>/invert
20Date: Jun 2012
21KernelVersion: 3.6
22Contact: linux-leds@vger.kernel.org
23Description:
24 Reverse the blink logic. If set to 0 (default) blink on for
25 delay_on ms, then blink off for delay_off ms, leaving the LED
26 normally off. If set to 1, blink off for delay_off ms, then
27 blink on for delay_on ms, leaving the LED normally on.
28 Setting this value also immediately changes the LED state.
29
30What: /sys/class/leds/<led>/shot
31Date: Jun 2012
32KernelVersion: 3.6
33Contact: linux-leds@vger.kernel.org
34Description:
35 Write any non-empty string to signal an events, this starts a
36 blink sequence if not already running.
Documentation/ABI/testing/sysfs-class-led-trigger-usbport+12−0
@@ -0,0 +1,12 @@
1What: /sys/class/leds/<led>/ports/<port>
2Date: September 2016
3KernelVersion: 4.9
4Contact: linux-leds@vger.kernel.org
5 linux-usb@vger.kernel.org
6Description:
7 Every dir entry represents a single USB port that can be
8 selected for the USB port trigger. Selecting ports makes trigger
9 observing them for any connected devices and lighting on LED if
10 there are any.
11 Echoing "1" value selects USB port. Echoing "0" unselects it.
12 Current state can be also read.
Documentation/ABI/testing/sysfs-class-mic.txt+1−1
@@ -153,7 +153,7 @@ Description: · 152 unmodified lines
153 153
154What: /sys/class/mic/mic(x)/heartbeat_enable154What: /sys/class/mic/mic(x)/heartbeat_enable
155Date: March 2015155Date: March 2015
156KernelVersion: 3.20156KernelVersion: 4.4
157Contact: Ashutosh Dixit <ashutosh.dixit@intel.com>157Contact: Ashutosh Dixit <ashutosh.dixit@intel.com>
158Description:158Description:
159 The MIC drivers detect and inform user space about card crashes159 The MIC drivers detect and inform user space about card crashes
Documentation/ABI/testing/sysfs-class-power+4−4
@@ -22,7 +22,7 @@ Description: · 21 unmodified lines
22What: /sys/class/power_supply/max14577-charger/device/fast_charge_timer22What: /sys/class/power_supply/max14577-charger/device/fast_charge_timer
23Date: October 201423Date: October 2014
24KernelVersion: 3.18.024KernelVersion: 3.18.0
25Contact: Krzysztof Kozlowski <k.kozlowski@samsung.com>25Contact: Krzysztof Kozlowski <krzk@kernel.org>
26Description:26Description:
27 This entry shows and sets the maximum time the max1457727 This entry shows and sets the maximum time the max14577
28 charger operates in fast-charge mode. When the timer expires28 charger operates in fast-charge mode. When the timer expires
@@ -36,7 +36,7 @@ Description: · 7 unmodified lines
36What: /sys/class/power_supply/max77693-charger/device/fast_charge_timer36What: /sys/class/power_supply/max77693-charger/device/fast_charge_timer
37Date: January 201537Date: January 2015
38KernelVersion: 3.19.038KernelVersion: 3.19.0
39Contact: Krzysztof Kozlowski <k.kozlowski@samsung.com>39Contact: Krzysztof Kozlowski <krzk@kernel.org>
40Description:40Description:
41 This entry shows and sets the maximum time the max7769341 This entry shows and sets the maximum time the max77693
42 charger operates in fast-charge mode. When the timer expires42 charger operates in fast-charge mode. When the timer expires
@@ -50,7 +50,7 @@ Description: · 7 unmodified lines
50What: /sys/class/power_supply/max77693-charger/device/top_off_threshold_current50What: /sys/class/power_supply/max77693-charger/device/top_off_threshold_current
51Date: January 201551Date: January 2015
52KernelVersion: 3.19.052KernelVersion: 3.19.0
53Contact: Krzysztof Kozlowski <k.kozlowski@samsung.com>53Contact: Krzysztof Kozlowski <krzk@kernel.org>
54Description:54Description:
55 This entry shows and sets the charging current threshold for55 This entry shows and sets the charging current threshold for
56 entering top-off charging mode. When charging current in fast56 entering top-off charging mode. When charging current in fast
@@ -65,7 +65,7 @@ Description: · 8 unmodified lines
65What: /sys/class/power_supply/max77693-charger/device/top_off_timer65What: /sys/class/power_supply/max77693-charger/device/top_off_timer
66Date: January 201566Date: January 2015
67KernelVersion: 3.19.067KernelVersion: 3.19.0
68Contact: Krzysztof Kozlowski <k.kozlowski@samsung.com>68Contact: Krzysztof Kozlowski <krzk@kernel.org>
69Description:69Description:
70 This entry shows and sets the maximum time the max7769370 This entry shows and sets the maximum time the max77693
71 charger operates in top-off charge mode. When the timer expires71 charger operates in top-off charge mode. When the timer expires
Documentation/ABI/testing/sysfs-driver-hid-logitech-lg4ff+15−0
@@ -35,6 +35,12 @@ Description: Displays a set of alternate modes supported by a wheel. Each · 34 unmodified lines
35 DF-EX <*--------> G25 <-> G2735 DF-EX <*--------> G25 <-> G27
36 DF-EX <*----------------> G2736 DF-EX <*----------------> G27
37 37
38 G29:
39 DF-EX <*> DFP <-> G25 <-> G27 <-> G29
40 DF-EX <*--------> G25 <-> G27 <-> G29
41 DF-EX <*----------------> G27 <-> G29
42 DF-EX <*------------------------> G29
43
38 DFGT:44 DFGT:
39 DF-EX <*> DFP <-> DFGT45 DF-EX <*> DFP <-> DFGT
40 DF-EX <*--------> DFGT46 DF-EX <*--------> DFGT
@@ -50,3 +56,12 @@ Description: Displays the real model of the wheel regardless of any · 9 unmodified lines
50 alternate mode the wheel might be switched to.56 alternate mode the wheel might be switched to.
51 It is a read-only value.57 It is a read-only value.
52 This entry is not created for devices that have only one mode.58 This entry is not created for devices that have only one mode.
59
60What: /sys/bus/hid/drivers/logitech/<dev>/combine_pedals
61Date: Sep 2016
62KernelVersion: 4.9
63Contact: Simon Wood <simon@mungewell.org>
64Description: Controls whether a combined value of accelerator and brake is
65 reported on the Y axis of the controller. Useful for older games
66 which can do not work with separate accelerator/brake axis.
67 Off ('0') by default, enabled by setting '1'.
Documentation/ABI/testing/sysfs-driver-wacom+5−0
@@ -24,6 +24,7 @@ What: /sys/bus/hid/devices/<bus>:<vid>:<pid>.<n>/wacom_led/status0_luminance · 23 unmodified lines
24Date: August 201424Date: August 2014
25Contact: linux-input@vger.kernel.org25Contact: linux-input@vger.kernel.org
26Description:26Description:
27 <obsoleted by the LED class API now exported by the driver>
27 Writing to this file sets the status LED luminance (1..127)28 Writing to this file sets the status LED luminance (1..127)
28 when the stylus does not touch the tablet surface, and no29 when the stylus does not touch the tablet surface, and no
29 button is pressed on the stylus. This luminance level is30 button is pressed on the stylus. This luminance level is
@@ -33,6 +34,7 @@ What: /sys/bus/hid/devices/<bus>:<vid>:<pid>.<n>/wacom_led/status1_luminance · 3 unmodified lines
33Date: August 201434Date: August 2014
34Contact: linux-input@vger.kernel.org35Contact: linux-input@vger.kernel.org
35Description:36Description:
37 <obsoleted by the LED class API now exported by the driver>
36 Writing to this file sets the status LED luminance (1..127)38 Writing to this file sets the status LED luminance (1..127)
37 when the stylus touches the tablet surface, or any button is39 when the stylus touches the tablet surface, or any button is
38 pressed on the stylus.40 pressed on the stylus.
@@ -41,6 +43,7 @@ What: /sys/bus/hid/devices/<bus>:<vid>:<pid>.<n>/wacom_led/status_led0_select · 2 unmodified lines
41Date: August 201443Date: August 2014
42Contact: linux-input@vger.kernel.org44Contact: linux-input@vger.kernel.org
43Description:45Description:
46 <obsoleted by the LED class API now exported by the driver>
44 Writing to this file sets which one of the four (for Intuos 447 Writing to this file sets which one of the four (for Intuos 4
45 and Intuos 5) or of the right four (for Cintiq 21UX2 and Cintiq48 and Intuos 5) or of the right four (for Cintiq 21UX2 and Cintiq
46 24HD) status LEDs is active (0..3). The other three LEDs on the49 24HD) status LEDs is active (0..3). The other three LEDs on the
@@ -50,6 +53,7 @@ What: /sys/bus/hid/devices/<bus>:<vid>:<pid>.<n>/wacom_led/status_led1_select · 3 unmodified lines
50Date: August 201453Date: August 2014
51Contact: linux-input@vger.kernel.org54Contact: linux-input@vger.kernel.org
52Description:55Description:
56 <obsoleted by the LED class API now exported by the driver>
53 Writing to this file sets which one of the left four (for Cintiq 21UX257 Writing to this file sets which one of the left four (for Cintiq 21UX2
54 and Cintiq 24HD) status LEDs is active (0..3). The other three LEDs on58 and Cintiq 24HD) status LEDs is active (0..3). The other three LEDs on
55 the left are always inactive.59 the left are always inactive.
@@ -91,6 +95,7 @@ What: /sys/bus/hid/devices/<bus>:<vid>:<pid>.<n>/wacom_remote/<serial_number>/r · 35 unmodified lines
91Date: July 201595Date: July 2015
92Contact: linux-input@vger.kernel.org96Contact: linux-input@vger.kernel.org
93Description:97Description:
98 <obsoleted by the LED class API now exported by the driver>
94 Reading from this file reports the mode status of the99 Reading from this file reports the mode status of the
95 remote as indicated by the LED lights on the device. If no100 remote as indicated by the LED lights on the device. If no
96 reports have been received from the paired device, reading101 reports have been received from the paired device, reading
Documentation/ABI/testing/sysfs-i2c-bmp085+0−31
@@ -1,31 +0,0 @@
1What: /sys/bus/i2c/devices/<busnum>-<devaddr>/pressure0_input
2Date: June 2010
3Contact: Christoph Mair <christoph.mair@gmail.com>
4Description: Start a pressure measurement and read the result. Values
5 represent the ambient air pressure in pascal (0.01 millibar).
6
7 Reading: returns the current air pressure.
8
9
10What: /sys/bus/i2c/devices/<busnum>-<devaddr>/temp0_input
11Date: June 2010
12Contact: Christoph Mair <christoph.mair@gmail.com>
13Description: Measure the ambient temperature. The returned value represents
14 the ambient temperature in units of 0.1 degree celsius.
15
16 Reading: returns the current temperature.
17
18
19What: /sys/bus/i2c/devices/<busnum>-<devaddr>/oversampling
20Date: June 2010
21Contact: Christoph Mair <christoph.mair@gmail.com>
22Description: Tell the bmp085 to use more samples to calculate a pressure
23 value. When writing to this file the chip will use 2^x samples
24 to calculate the next pressure value with x being the value
25 written. Using this feature will decrease RMS noise and
26 increase the measurement time.
27
28 Reading: returns the current oversampling setting.
29
30 Writing: sets a new oversampling setting.
31 Accepted values: 0..3.
Documentation/ABI/testing/sysfs-kernel-irq+53−0
@@ -0,0 +1,53 @@
1What: /sys/kernel/irq
2Date: September 2016
3KernelVersion: 4.9
4Contact: Craig Gallek <kraig@google.com>
5Description: Directory containing information about the system's IRQs.
6 Specifically, data from the associated struct irq_desc.
7 The information here is similar to that in /proc/interrupts
8 but in a more machine-friendly format. This directory contains
9 one subdirectory for each Linux IRQ number.
10
11What: /sys/kernel/irq/<irq>/actions
12Date: September 2016
13KernelVersion: 4.9
14Contact: Craig Gallek <kraig@google.com>
15Description: The IRQ action chain. A comma-separated list of zero or more
16 device names associated with this interrupt.
17
18What: /sys/kernel/irq/<irq>/chip_name
19Date: September 2016
20KernelVersion: 4.9
21Contact: Craig Gallek <kraig@google.com>
22Description: Human-readable chip name supplied by the associated device
23 driver.
24
25What: /sys/kernel/irq/<irq>/hwirq
26Date: September 2016
27KernelVersion: 4.9
28Contact: Craig Gallek <kraig@google.com>
29Description: When interrupt translation domains are used, this file contains
30 the underlying hardware IRQ number used for this Linux IRQ.
31
32What: /sys/kernel/irq/<irq>/name
33Date: September 2016
34KernelVersion: 4.9
35Contact: Craig Gallek <kraig@google.com>
36Description: Human-readable flow handler name as defined by the irq chip
37 driver.
38
39What: /sys/kernel/irq/<irq>/per_cpu_count
40Date: September 2016
41KernelVersion: 4.9
42Contact: Craig Gallek <kraig@google.com>
43Description: The number of times the interrupt has fired since boot. This
44 is a comma-separated list of counters; one per CPU in CPU id
45 order. NOTE: This file consistently shows counters for all
46 CPU ids. This differs from the behavior of /proc/interrupts
47 which only shows counters for online CPUs.
48
49What: /sys/kernel/irq/<irq>/type
50Date: September 2016
51KernelVersion: 4.9
52Contact: Craig Gallek <kraig@google.com>
53Description: The type of the interrupt. Either the string 'level' or 'edge'.
Documentation/Changes+169−95
@@ -1,8 +1,13 @@
1.. _changes:
2
3Minimal requerements to compile the Kernel
4++++++++++++++++++++++++++++++++++++++++++
5
1Intro6Intro
2=====7=====
3 8
4This document is designed to provide a list of the minimum levels of9This document is designed to provide a list of the minimum levels of
5software necessary to run the 3.0 kernels.10software necessary to run the 4.x kernels.
6 11
7This document is originally based on my "Changes" file for 2.0.x kernels12This document is originally based on my "Changes" file for 2.0.x kernels
8and therefore owes credit to the same people as that file (Jared Mauch,13and therefore owes credit to the same people as that file (Jared Mauch,
@@ -10,9 +15,9 @@ Axel Boldt, Alessandro Sigala, and countless other users all over the · 1 unmodified line
10'net).15'net).
11 16
12Current Minimal Requirements17Current Minimal Requirements
13============================18****************************
14 19
15Upgrade to at *least* these software revisions before thinking you've20Upgrade to at **least** these software revisions before thinking you've
16encountered a bug! If you're unsure what version you're currently21encountered a bug! If you're unsure what version you're currently
17running, the suggested command should tell you.22running, the suggested command should tell you.
18 23
@@ -21,34 +26,40 @@ running a Linux kernel. Also, not all tools are necessary on all · 2 unmodified lines
21systems; obviously, if you don't have any ISDN hardware, for example,26systems; obviously, if you don't have any ISDN hardware, for example,
22you probably needn't concern yourself with isdn4k-utils.27you probably needn't concern yourself with isdn4k-utils.
23 28
24o GNU C 3.2 # gcc --version29====================== =============== ========================================
25o GNU make 3.80 # make --version30 Program Minimal version Command to check the version
26o binutils 2.12 # ld -v31====================== =============== ========================================
27o util-linux 2.10o # fdformat --version32GNU C 3.2 gcc --version
28o module-init-tools 0.9.10 # depmod -V33GNU make 3.80 make --version
29o e2fsprogs 1.41.4 # e2fsck -V34binutils 2.12 ld -v
30o jfsutils 1.1.3 # fsck.jfs -V35util-linux 2.10o fdformat --version
31o reiserfsprogs 3.6.3 # reiserfsck -V36module-init-tools 0.9.10 depmod -V
32o xfsprogs 2.6.0 # xfs_db -V37e2fsprogs 1.41.4 e2fsck -V
33o squashfs-tools 4.0 # mksquashfs -version38jfsutils 1.1.3 fsck.jfs -V
34o btrfs-progs 0.18 # btrfsck39reiserfsprogs 3.6.3 reiserfsck -V
35o pcmciautils 004 # pccardctl -V40xfsprogs 2.6.0 xfs_db -V
36o quota-tools 3.09 # quota -V41squashfs-tools 4.0 mksquashfs -version
37o PPP 2.4.0 # pppd --version42btrfs-progs 0.18 btrfsck
38o isdn4k-utils 3.1pre1 # isdnctrl 2>&1|grep version43pcmciautils 004 pccardctl -V
39o nfs-utils 1.0.5 # showmount --version44quota-tools 3.09 quota -V
40o procps 3.2.0 # ps --version45PPP 2.4.0 pppd --version
41o oprofile 0.9 # oprofiled --version46isdn4k-utils 3.1pre1 isdnctrl 2>&1|grep version
42o udev 081 # udevd --version47nfs-utils 1.0.5 showmount --version
43o grub 0.93 # grub --version || grub-install --version48procps 3.2.0 ps --version
44o mcelog 0.6 # mcelog --version49oprofile 0.9 oprofiled --version
45o iptables 1.4.2 # iptables -V50udev 081 udevd --version
46o openssl & libcrypto 1.0.0 # openssl version51grub 0.93 grub --version || grub-install --version
47o bc 1.06.95 # bc --version52mcelog 0.6 mcelog --version
48 53iptables 1.4.2 iptables -V
54openssl & libcrypto 1.0.0 openssl version
55bc 1.06.95 bc --version
56Sphinx\ [#f1]_ 1.2 sphinx-build --version
57====================== =============== ========================================
58
59.. [#f1] Sphinx is needed only to build the Kernel documentation
49 60
50Kernel compilation61Kernel compilation
51==================62******************
52 63
53GCC64GCC
54---65---
@@ -64,16 +75,16 @@ You will need GNU make 3.80 or later to build the kernel. · 9 unmodified lines
64Binutils75Binutils
65--------76--------
66 77
67Linux on IA-32 has recently switched from using as86 to using gas for78Linux on IA-32 has recently switched from using ``as86`` to using ``gas`` for
68assembling the 16-bit boot code, removing the need for as86 to compile79assembling the 16-bit boot code, removing the need for ``as86`` to compile
69your kernel. This change does, however, mean that you need a recent80your kernel. This change does, however, mean that you need a recent
70release of binutils.81release of binutils.
71 82
72Perl83Perl
73----84----
74 85
75You will need perl 5 and the following modules: Getopt::Long, Getopt::Std,86You will need perl 5 and the following modules: ``Getopt::Long``,
76File::Basename, and File::Find to build the kernel.87``Getopt::Std``, ``File::Basename``, and ``File::Find`` to build the kernel.
77 88
78BC89BC
79--90--
@@ -93,7 +104,7 @@ and higher. · 13 unmodified lines
93 104
94 105
95System utilities106System utilities
96================107****************
97 108
98Architectural changes109Architectural changes
99---------------------110---------------------
@@ -115,7 +126,7 @@ well as the desired DocBook stylesheets. · 15 unmodified lines
115Util-linux126Util-linux
116----------127----------
117 128
118New versions of util-linux provide *fdisk support for larger disks,129New versions of util-linux provide ``fdisk`` support for larger disks,
119support new options to mount, recognize more supported partition130support new options to mount, recognize more supported partition
120types, have a fdformat which works with 2.4 kernels, and similar goodies.131types, have a fdformat which works with 2.4 kernels, and similar goodies.
121You'll probably want to upgrade.132You'll probably want to upgrade.
@@ -125,54 +136,57 @@ Ksymoops · 3 unmodified lines
125 136
126If the unthinkable happens and your kernel oopses, you may need the137If the unthinkable happens and your kernel oopses, you may need the
127ksymoops tool to decode it, but in most cases you don't.138ksymoops tool to decode it, but in most cases you don't.
128It is generally preferred to build the kernel with CONFIG_KALLSYMS so139It is generally preferred to build the kernel with ``CONFIG_KALLSYMS`` so
129that it produces readable dumps that can be used as-is (this also140that it produces readable dumps that can be used as-is (this also
130produces better output than ksymoops). If for some reason your kernel141produces better output than ksymoops). If for some reason your kernel
131is not build with CONFIG_KALLSYMS and you have no way to rebuild and142is not build with ``CONFIG_KALLSYMS`` and you have no way to rebuild and
132reproduce the Oops with that option, then you can still decode that Oops143reproduce the Oops with that option, then you can still decode that Oops
133with ksymoops.144with ksymoops.
134 145
135Module-Init-Tools146Module-Init-Tools
136-----------------147-----------------
137 148
138A new module loader is now in the kernel that requires module-init-tools149A new module loader is now in the kernel that requires ``module-init-tools``
139to use. It is backward compatible with the 2.4.x series kernels.150to use. It is backward compatible with the 2.4.x series kernels.
140 151
141Mkinitrd152Mkinitrd
142--------153--------
143 154
144These changes to the /lib/modules file tree layout also require that155These changes to the ``/lib/modules`` file tree layout also require that
145mkinitrd be upgraded.156mkinitrd be upgraded.
146 157
147E2fsprogs158E2fsprogs
148---------159---------
149 160
150The latest version of e2fsprogs fixes several bugs in fsck and161The latest version of ``e2fsprogs`` fixes several bugs in fsck and
151debugfs. Obviously, it's a good idea to upgrade.162debugfs. Obviously, it's a good idea to upgrade.
152 163
153JFSutils164JFSutils
154--------165--------
155 166
156The jfsutils package contains the utilities for the file system.167The ``jfsutils`` package contains the utilities for the file system.
157The following utilities are available:168The following utilities are available:
158o fsck.jfs - initiate replay of the transaction log, and check169
170- ``fsck.jfs`` - initiate replay of the transaction log, and check
159 and repair a JFS formatted partition.171 and repair a JFS formatted partition.
160o mkfs.jfs - create a JFS formatted partition.172
161o other file system utilities are also available in this package.173- ``mkfs.jfs`` - create a JFS formatted partition.
174
175- other file system utilities are also available in this package.
162 176
163Reiserfsprogs177Reiserfsprogs
164-------------178-------------
165 179
166The reiserfsprogs package should be used for reiserfs-3.6.x180The reiserfsprogs package should be used for reiserfs-3.6.x
167(Linux kernels 2.4.x). It is a combined package and contains working181(Linux kernels 2.4.x). It is a combined package and contains working
168versions of mkreiserfs, resize_reiserfs, debugreiserfs and182versions of ``mkreiserfs``, ``resize_reiserfs``, ``debugreiserfs`` and
169reiserfsck. These utils work on both i386 and alpha platforms.183``reiserfsck``. These utils work on both i386 and alpha platforms.
170 184
171Xfsprogs185Xfsprogs
172--------186--------
173 187
174The latest version of xfsprogs contains mkfs.xfs, xfs_db, and the188The latest version of ``xfsprogs`` contains ``mkfs.xfs``, ``xfs_db``, and the
175xfs_repair utilities, among others, for the XFS filesystem. It is189``xfs_repair`` utilities, among others, for the XFS filesystem. It is
176architecture independent and any version from 2.0.0 onward should190architecture independent and any version from 2.0.0 onward should
177work correctly with this version of the XFS kernel code (2.6.0 or191work correctly with this version of the XFS kernel code (2.6.0 or
178later is recommended, due to some significant improvements).192later is recommended, due to some significant improvements).
@@ -180,7 +194,7 @@ later is recommended, due to some significant improvements). · 1 unmodified line
180PCMCIAutils194PCMCIAutils
181-----------195-----------
182 196
183PCMCIAutils replaces pcmcia-cs. It properly sets up197PCMCIAutils replaces ``pcmcia-cs``. It properly sets up
184PCMCIA sockets at system startup and loads the appropriate modules198PCMCIA sockets at system startup and loads the appropriate modules
185for 16-bit PCMCIA devices if the kernel is modularized and the hotplug199for 16-bit PCMCIA devices if the kernel is modularized and the hotplug
186subsystem is used.200subsystem is used.
@@ -198,19 +212,20 @@ Intel IA32 microcode · 11 unmodified lines
198 212
199A driver has been added to allow updating of Intel IA32 microcode,213A driver has been added to allow updating of Intel IA32 microcode,
200accessible as a normal (misc) character device. If you are not using214accessible as a normal (misc) character device. If you are not using
201udev you may need to:215udev you may need to::
202 216
203mkdir /dev/cpu217 mkdir /dev/cpu
204mknod /dev/cpu/microcode c 10 184218 mknod /dev/cpu/microcode c 10 184
205chmod 0644 /dev/cpu/microcode219 chmod 0644 /dev/cpu/microcode
206 220
207as root before you can use this. You'll probably also want to221as root before you can use this. You'll probably also want to
208get the user-space microcode_ctl utility to use with this.222get the user-space microcode_ctl utility to use with this.
209 223
210udev224udev
211----225----
212udev is a userspace application for populating /dev dynamically with226
213only entries for devices actually present. udev replaces the basic227``udev`` is a userspace application for populating ``/dev`` dynamically with
228only entries for devices actually present. ``udev`` replaces the basic
214functionality of devfs, while allowing persistent device naming for229functionality of devfs, while allowing persistent device naming for
215devices.230devices.
216 231
@@ -218,10 +233,10 @@ FUSE · 1 unmodified line
218----233----
219 234
220Needs libfuse 2.4.0 or later. Absolute minimum is 2.3.0 but mount235Needs libfuse 2.4.0 or later. Absolute minimum is 2.3.0 but mount
221options 'direct_io' and 'kernel_cache' won't work.236options ``direct_io`` and ``kernel_cache`` won't work.
222 237
223Networking238Networking
224==========239**********
225 240
226General changes241General changes
227---------------242---------------
@@ -243,9 +258,9 @@ enable it to operate over diverse media layers. If you use PPP, · 15 unmodified lines
243upgrade pppd to at least 2.4.0.258upgrade pppd to at least 2.4.0.
244 259
245If you are not using udev, you must have the device file /dev/ppp260If you are not using udev, you must have the device file /dev/ppp
246which can be made by:261which can be made by::
247 262
248mknod /dev/ppp c 108 0263 mknod /dev/ppp c 108 0
249 264
250as root.265as root.
251 266
@@ -260,22 +275,22 @@ NFS-utils · 8 unmodified lines
260 275
261In ancient (2.4 and earlier) kernels, the nfs server needed to know276In ancient (2.4 and earlier) kernels, the nfs server needed to know
262about any client that expected to be able to access files via NFS. This277about any client that expected to be able to access files via NFS. This
263information would be given to the kernel by "mountd" when the client278information would be given to the kernel by ``mountd`` when the client
264mounted the filesystem, or by "exportfs" at system startup. exportfs279mounted the filesystem, or by ``exportfs`` at system startup. exportfs
265would take information about active clients from /var/lib/nfs/rmtab.280would take information about active clients from ``/var/lib/nfs/rmtab``.
266 281
267This approach is quite fragile as it depends on rmtab being correct282This approach is quite fragile as it depends on rmtab being correct
268which is not always easy, particularly when trying to implement283which is not always easy, particularly when trying to implement
269fail-over. Even when the system is working well, rmtab suffers from284fail-over. Even when the system is working well, ``rmtab`` suffers from
270getting lots of old entries that never get removed.285getting lots of old entries that never get removed.
271 286
272With modern kernels we have the option of having the kernel tell mountd287With modern kernels we have the option of having the kernel tell mountd
273when it gets a request from an unknown host, and mountd can give288when it gets a request from an unknown host, and mountd can give
274appropriate export information to the kernel. This removes the289appropriate export information to the kernel. This removes the
275dependency on rmtab and means that the kernel only needs to know about290dependency on ``rmtab`` and means that the kernel only needs to know about
276currently active clients.291currently active clients.
277 292
278To enable this new functionality, you need to:293To enable this new functionality, you need to::
279 294
280 mount -t nfsd nfsd /proc/fs/nfsd295 mount -t nfsd nfsd /proc/fs/nfsd
281 296
@@ -287,8 +302,32 @@ mcelog · 5 unmodified lines
287------302------
288 303
289On x86 kernels the mcelog utility is needed to process and log machine check304On x86 kernels the mcelog utility is needed to process and log machine check
290events when CONFIG_X86_MCE is enabled. Machine check events are errors reported305events when ``CONFIG_X86_MCE`` is enabled. Machine check events are errors
291by the CPU. Processing them is strongly encouraged.306reported by the CPU. Processing them is strongly encouraged.
307
308Kernel documentation
309********************
310
311Sphinx
312------
313
314The ReST markups currently used by the Documentation/ files are meant to be
315built with ``Sphinx`` version 1.2 or upper. If you're desiring to build
316PDF outputs, it is recommended to use version 1.4.6.
317
318.. note::
319
320 Please notice that, for PDF and LaTeX output, you'll also need ``XeLaTeX``
321 version 3.14159265. Depending on the distribution, you may also need
322 to install a series of ``texlive`` packages that provide the minimal
323 set of functionalities required for ``XeLaTex`` to work.
324
325Other tools
326-----------
327
328In order to produce documentation from DocBook, you'll also need ``xmlto``.
329Please notice, however, that we're currently migrating all documents to use
330``Sphinx``.
292 331
293Getting updated software332Getting updated software
294========================333========================
@@ -298,114 +337,149 @@ Kernel compilation · 3 unmodified lines
298 337
299gcc338gcc
300---339---
301o <ftp://ftp.gnu.org/gnu/gcc/>340
341- <ftp://ftp.gnu.org/gnu/gcc/>
302 342
303Make343Make
304----344----
305o <ftp://ftp.gnu.org/gnu/make/>345
346- <ftp://ftp.gnu.org/gnu/make/>
306 347
307Binutils348Binutils
308--------349--------
309o <ftp://ftp.kernel.org/pub/linux/devel/binutils/>350
351- <ftp://ftp.kernel.org/pub/linux/devel/binutils/>
310 352
311OpenSSL353OpenSSL
312-------354-------
313o <https://www.openssl.org/>355
356- <https://www.openssl.org/>
314 357
315System utilities358System utilities
316****************359****************
317 360
318Util-linux361Util-linux
319----------362----------
320o <ftp://ftp.kernel.org/pub/linux/utils/util-linux/>363
364- <ftp://ftp.kernel.org/pub/linux/utils/util-linux/>
321 365
322Ksymoops366Ksymoops
323--------367--------
324o <ftp://ftp.kernel.org/pub/linux/utils/kernel/ksymoops/v2.4/>368
369- <ftp://ftp.kernel.org/pub/linux/utils/kernel/ksymoops/v2.4/>
325 370
326Module-Init-Tools371Module-Init-Tools
327-----------------372-----------------
328o <ftp://ftp.kernel.org/pub/linux/kernel/people/rusty/modules/>373
374- <ftp://ftp.kernel.org/pub/linux/kernel/people/rusty/modules/>
329 375
330Mkinitrd376Mkinitrd
331--------377--------
332o <https://code.launchpad.net/initrd-tools/main>378
379- <https://code.launchpad.net/initrd-tools/main>
333 380
334E2fsprogs381E2fsprogs
335---------382---------
336o <http://prdownloads.sourceforge.net/e2fsprogs/e2fsprogs-1.29.tar.gz>383
384- <http://prdownloads.sourceforge.net/e2fsprogs/e2fsprogs-1.29.tar.gz>
337 385
338JFSutils386JFSutils
339--------387--------
340o <http://jfs.sourceforge.net/>388
389- <http://jfs.sourceforge.net/>
341 390
342Reiserfsprogs391Reiserfsprogs
343-------------392-------------
344o <http://www.kernel.org/pub/linux/utils/fs/reiserfs/>393
394- <http://www.kernel.org/pub/linux/utils/fs/reiserfs/>
345 395
346Xfsprogs396Xfsprogs
347--------397--------
348o <ftp://oss.sgi.com/projects/xfs/>398
399- <ftp://oss.sgi.com/projects/xfs/>
349 400
350Pcmciautils401Pcmciautils
351-----------402-----------
352o <ftp://ftp.kernel.org/pub/linux/utils/kernel/pcmcia/>403
404- <ftp://ftp.kernel.org/pub/linux/utils/kernel/pcmcia/>
353 405
354Quota-tools406Quota-tools
355----------407-----------
356o <http://sourceforge.net/projects/linuxquota/>408
409- <http://sourceforge.net/projects/linuxquota/>
357 410
358DocBook Stylesheets411DocBook Stylesheets
359-------------------412-------------------
360o <http://sourceforge.net/projects/docbook/files/docbook-dsssl/>413
414- <http://sourceforge.net/projects/docbook/files/docbook-dsssl/>
361 415
362XMLTO XSLT Frontend416XMLTO XSLT Frontend
363-------------------417-------------------
364o <http://cyberelk.net/tim/xmlto/>418
419- <http://cyberelk.net/tim/xmlto/>
365 420
366Intel P6 microcode421Intel P6 microcode
367------------------422------------------
368o <https://downloadcenter.intel.com/>423
424- <https://downloadcenter.intel.com/>
369 425
370udev426udev
371----427----
372o <http://www.freedesktop.org/software/systemd/man/udev.html>428
429- <http://www.freedesktop.org/software/systemd/man/udev.html>
373 430
374FUSE431FUSE
375----432----
376o <http://sourceforge.net/projects/fuse>433
434- <http://sourceforge.net/projects/fuse>
377 435
378mcelog436mcelog
379------437------
380o <http://www.mcelog.org/>438
439- <http://www.mcelog.org/>
381 440
382Networking441Networking
383**********442**********
384 443
385PPP444PPP
386---445---
387o <ftp://ftp.samba.org/pub/ppp/>446
447- <ftp://ftp.samba.org/pub/ppp/>
388 448
389Isdn4k-utils449Isdn4k-utils
390------------450------------
391o <ftp://ftp.isdn4linux.de/pub/isdn4linux/utils/>451
452- <ftp://ftp.isdn4linux.de/pub/isdn4linux/utils/>
392 453
393NFS-utils454NFS-utils
394---------455---------
395o <http://sourceforge.net/project/showfiles.php?group_id=14>456
457- <http://sourceforge.net/project/showfiles.php?group_id=14>
396 458
397Iptables459Iptables
398--------460--------
399o <http://www.iptables.org/downloads.html>461
462- <http://www.iptables.org/downloads.html>
400 463
401Ip-route2464Ip-route2
402---------465---------
403o <https://www.kernel.org/pub/linux/utils/net/iproute2/>466
467- <https://www.kernel.org/pub/linux/utils/net/iproute2/>
404 468
405OProfile469OProfile
406--------470--------
407o <http://oprofile.sf.net/download/>471
472- <http://oprofile.sf.net/download/>
408 473
409NFS-Utils474NFS-Utils
410---------475---------
411o <http://nfs.sourceforge.net/>476
477- <http://nfs.sourceforge.net/>
478
479Kernel documentation
480********************
481
482Sphinx
483------
484
485- <http://www.sphinx-doc.org/>
Documentation/CodeOfConflict+1−1
@@ -19,7 +19,7 @@ please contact the Linux Foundation's Technical Advisory Board at · 18 unmodified lines
19will work to resolve the issue to the best of their ability. For more19will work to resolve the issue to the best of their ability. For more
20information on who is on the Technical Advisory Board and what their20information on who is on the Technical Advisory Board and what their
21role is, please see:21role is, please see:
22 http://www.linuxfoundation.org/programs/advisory-councils/tab22 http://www.linuxfoundation.org/projects/linux/tab
23 23
24As a reviewer of code, please strive to keep things civil and focused on24As a reviewer of code, please strive to keep things civil and focused on
25the technical issues involved. We are all humans, and frustrations can25the technical issues involved. We are all humans, and frustrations can
Documentation/CodingStyle+260−144
@@ -1,8 +1,10 @@
1.. _codingstyle:
1 2
2 Linux kernel coding style3Linux kernel coding style
4=========================
3 5
4This is a short document describing the preferred coding style for the6This is a short document describing the preferred coding style for the
5linux kernel. Coding style is very personal, and I won't _force_ my7linux kernel. Coding style is very personal, and I won't **force** my
6views on anybody, but this is what goes for anything that I have to be8views on anybody, but this is what goes for anything that I have to be
7able to maintain, and I'd prefer it for most other things too. Please9able to maintain, and I'd prefer it for most other things too. Please
8at least consider the points made here.10at least consider the points made here.
@@ -13,7 +15,8 @@ and NOT read it. Burn them, it's a great symbolic gesture. · 4 unmodified lines
13Anyway, here goes:15Anyway, here goes:
14 16
15 17
16 Chapter 1: Indentation181) Indentation
19--------------
17 20
18Tabs are 8 characters, and thus indentations are also 8 characters.21Tabs are 8 characters, and thus indentations are also 8 characters.
19There are heretic movements that try to make indentations 4 (or even 2!)22There are heretic movements that try to make indentations 4 (or even 2!)
@@ -36,8 +39,10 @@ benefit of warning you when you're nesting your functions too deep. · 16 unmodified lines
36Heed that warning.39Heed that warning.
37 40
38The preferred way to ease multiple indentation levels in a switch statement is41The preferred way to ease multiple indentation levels in a switch statement is
39to align the "switch" and its subordinate "case" labels in the same column42to align the ``switch`` and its subordinate ``case`` labels in the same column
40instead of "double-indenting" the "case" labels. E.g.:43instead of ``double-indenting`` the ``case`` labels. E.g.:
44
45.. code-block:: c
41 46
42 switch (suffix) {47 switch (suffix) {
43 case 'G':48 case 'G':
@@ -59,6 +64,8 @@ instead of "double-indenting" the "case" labels. E.g.: · 15 unmodified lines
59Don't put multiple statements on a single line unless you have64Don't put multiple statements on a single line unless you have
60something to hide:65something to hide:
61 66
67.. code-block:: c
68
62 if (condition) do_this;69 if (condition) do_this;
63 do_something_everytime;70 do_something_everytime;
64 71
@@ -71,7 +78,8 @@ used for indentation, and the above example is deliberately broken. · 6 unmodified lines
71Get a decent editor and don't leave whitespace at the end of lines.78Get a decent editor and don't leave whitespace at the end of lines.
72 79
73 80
74 Chapter 2: Breaking long lines and strings812) Breaking long lines and strings
82----------------------------------
75 83
76Coding style is all about readability and maintainability using commonly84Coding style is all about readability and maintainability using commonly
77available tools.85available tools.
@@ -87,7 +95,8 @@ with a long argument list. However, never break user-visible strings such as · 9 unmodified lines
87printk messages, because that breaks the ability to grep for them.95printk messages, because that breaks the ability to grep for them.
88 96
89 97
90 Chapter 3: Placing Braces and Spaces983) Placing Braces and Spaces
99----------------------------
91 100
92The other issue that always comes up in C styling is the placement of101The other issue that always comes up in C styling is the placement of
93braces. Unlike the indent size, there are few technical reasons to102braces. Unlike the indent size, there are few technical reasons to
@@ -95,6 +104,8 @@ choose one placement strategy over the other, but the preferred way, as · 1 unmodified line
95shown to us by the prophets Kernighan and Ritchie, is to put the opening104shown to us by the prophets Kernighan and Ritchie, is to put the opening
96brace last on the line, and put the closing brace first, thusly:105brace last on the line, and put the closing brace first, thusly:
97 106
107.. code-block:: c
108
98 if (x is true) {109 if (x is true) {
99 we do y110 we do y
100 }111 }
@@ -102,6 +113,8 @@ brace last on the line, and put the closing brace first, thusly: · 1 unmodified line
102This applies to all non-function statement blocks (if, switch, for,113This applies to all non-function statement blocks (if, switch, for,
103while, do). E.g.:114while, do). E.g.:
104 115
116.. code-block:: c
117
105 switch (action) {118 switch (action) {
106 case KOBJ_ADD:119 case KOBJ_ADD:
107 return "add";120 return "add";
@@ -116,6 +129,8 @@ while, do). E.g.: · 8 unmodified lines
116However, there is one special case, namely functions: they have the129However, there is one special case, namely functions: they have the
117opening brace at the beginning of the next line, thus:130opening brace at the beginning of the next line, thus:
118 131
132.. code-block:: c
133
119 int function(int x)134 int function(int x)
120 {135 {
121 body of function136 body of function
@@ -123,20 +138,24 @@ opening brace at the beginning of the next line, thus: · 1 unmodified line
123 138
124Heretic people all over the world have claimed that this inconsistency139Heretic people all over the world have claimed that this inconsistency
125is ... well ... inconsistent, but all right-thinking people know that140is ... well ... inconsistent, but all right-thinking people know that
126(a) K&R are _right_ and (b) K&R are right. Besides, functions are141(a) K&R are **right** and (b) K&R are right. Besides, functions are
127special anyway (you can't nest them in C).142special anyway (you can't nest them in C).
128 143
129Note that the closing brace is empty on a line of its own, _except_ in144Note that the closing brace is empty on a line of its own, **except** in
130the cases where it is followed by a continuation of the same statement,145the cases where it is followed by a continuation of the same statement,
131ie a "while" in a do-statement or an "else" in an if-statement, like146ie a ``while`` in a do-statement or an ``else`` in an if-statement, like
132this:147this:
133 148
149.. code-block:: c
150
134 do {151 do {
135 body of do-loop152 body of do-loop
136 } while (condition);153 } while (condition);
137 154
138and155and
139 156
157.. code-block:: c
158
140 if (x == y) {159 if (x == y) {
141 ..160 ..
142 } else if (x > y) {161 } else if (x > y) {
@@ -155,11 +174,15 @@ comments on. · 12 unmodified lines
155 174
156Do not unnecessarily use braces where a single statement will do.175Do not unnecessarily use braces where a single statement will do.
157 176
177.. code-block:: c
178
158 if (condition)179 if (condition)
159 action();180 action();
160 181
161and182and
162 183
184.. code-block:: none
185
163 if (condition)186 if (condition)
164 do_this();187 do_this();
165 else188 else
@@ -168,6 +191,8 @@ and · 2 unmodified lines
168This does not apply if only one branch of a conditional statement is a single191This does not apply if only one branch of a conditional statement is a single
169statement; in the latter case use braces in both branches:192statement; in the latter case use braces in both branches:
170 193
194.. code-block:: c
195
171 if (condition) {196 if (condition) {
172 do_this();197 do_this();
173 do_that();198 do_that();
@@ -175,57 +200,67 @@ statement; in the latter case use braces in both branches: · 1 unmodified line
175 otherwise();200 otherwise();
176 }201 }
177 202
178 3.1: Spaces2033.1) Spaces
204***********
179 205
180Linux kernel style for use of spaces depends (mostly) on206Linux kernel style for use of spaces depends (mostly) on
181function-versus-keyword usage. Use a space after (most) keywords. The207function-versus-keyword usage. Use a space after (most) keywords. The
182notable exceptions are sizeof, typeof, alignof, and __attribute__, which look208notable exceptions are sizeof, typeof, alignof, and __attribute__, which look
183somewhat like functions (and are usually used with parentheses in Linux,209somewhat like functions (and are usually used with parentheses in Linux,
184although they are not required in the language, as in: "sizeof info" after210although they are not required in the language, as in: ``sizeof info`` after
185"struct fileinfo info;" is declared).211``struct fileinfo info;`` is declared).
186 212
187So use a space after these keywords:213So use a space after these keywords::
188 214
189 if, switch, case, for, do, while215 if, switch, case, for, do, while
190 216
191but not with sizeof, typeof, alignof, or __attribute__. E.g.,217but not with sizeof, typeof, alignof, or __attribute__. E.g.,
192 218
219.. code-block:: c
220
221
193 s = sizeof(struct file);222 s = sizeof(struct file);
194 223
195Do not add spaces around (inside) parenthesized expressions. This example is224Do not add spaces around (inside) parenthesized expressions. This example is
196*bad*:225**bad**:
226
227.. code-block:: c
228
197 229
198 s = sizeof( struct file );230 s = sizeof( struct file );
199 231
200When declaring pointer data or a function that returns a pointer type, the232When declaring pointer data or a function that returns a pointer type, the
201preferred use of '*' is adjacent to the data name or function name and not233preferred use of ``*`` is adjacent to the data name or function name and not
202adjacent to the type name. Examples:234adjacent to the type name. Examples:
203 235
236.. code-block:: c
237
238
204 char *linux_banner;239 char *linux_banner;
205 unsigned long long memparse(char *ptr, char **retptr);240 unsigned long long memparse(char *ptr, char **retptr);
206 char *match_strdup(substring_t *s);241 char *match_strdup(substring_t *s);
207 242
208Use one space around (on each side of) most binary and ternary operators,243Use one space around (on each side of) most binary and ternary operators,
209such as any of these:244such as any of these::
210 245
211 = + - < > * / % | & ^ <= >= == != ? :246 = + - < > * / % | & ^ <= >= == != ? :
212 247
213but no space after unary operators:248but no space after unary operators::
214 249
215 & * + - ~ ! sizeof typeof alignof __attribute__ defined250 & * + - ~ ! sizeof typeof alignof __attribute__ defined
216 251
217no space before the postfix increment & decrement unary operators:252no space before the postfix increment & decrement unary operators::
218 253
219 ++ --254 ++ --
220 255
221no space after the prefix increment & decrement unary operators:256no space after the prefix increment & decrement unary operators::
222 257
223 ++ --258 ++ --
224 259
225and no space around the '.' and "->" structure member operators.260and no space around the ``.`` and ``->`` structure member operators.
226 261
227Do not leave trailing whitespace at the ends of lines. Some editors with262Do not leave trailing whitespace at the ends of lines. Some editors with
228"smart" indentation will insert whitespace at the beginning of new lines as263``smart`` indentation will insert whitespace at the beginning of new lines as
229appropriate, so you can start typing the next line of code right away.264appropriate, so you can start typing the next line of code right away.
230However, some such editors do not remove the whitespace if you end up not265However, some such editors do not remove the whitespace if you end up not
231putting a line of code there, such as if you leave a blank line. As a result,266putting a line of code there, such as if you leave a blank line. As a result,
@@ -237,22 +272,23 @@ of patches, this may make later patches in the series fail by changing their · 5 unmodified lines
237context lines.272context lines.
238 273
239 274
240 Chapter 4: Naming2754) Naming
276---------
241 277
242C is a Spartan language, and so should your naming be. Unlike Modula-2278C is a Spartan language, and so should your naming be. Unlike Modula-2
243and Pascal programmers, C programmers do not use cute names like279and Pascal programmers, C programmers do not use cute names like
244ThisVariableIsATemporaryCounter. A C programmer would call that280ThisVariableIsATemporaryCounter. A C programmer would call that
245variable "tmp", which is much easier to write, and not the least more281variable ``tmp``, which is much easier to write, and not the least more
246difficult to understand.282difficult to understand.
247 283
248HOWEVER, while mixed-case names are frowned upon, descriptive names for284HOWEVER, while mixed-case names are frowned upon, descriptive names for
249global variables are a must. To call a global function "foo" is a285global variables are a must. To call a global function ``foo`` is a
250shooting offense.286shooting offense.
251 287
252GLOBAL variables (to be used only if you _really_ need them) need to288GLOBAL variables (to be used only if you **really** need them) need to
253have descriptive names, as do global functions. If you have a function289have descriptive names, as do global functions. If you have a function
254that counts the number of active users, you should call that290that counts the number of active users, you should call that
255"count_active_users()" or similar, you should _not_ call it "cntusr()".291``count_active_users()`` or similar, you should **not** call it ``cntusr()``.
256 292
257Encoding the type of a function into the name (so-called Hungarian293Encoding the type of a function into the name (so-called Hungarian
258notation) is brain damaged - the compiler knows the types anyway and can294notation) is brain damaged - the compiler knows the types anyway and can
@@ -260,9 +296,9 @@ check those, and it only confuses the programmer. No wonder MicroSoft · 1 unmodified line
260makes buggy programs.296makes buggy programs.
261 297
262LOCAL variable names should be short, and to the point. If you have298LOCAL variable names should be short, and to the point. If you have
263some random integer loop counter, it should probably be called "i".299some random integer loop counter, it should probably be called ``i``.
264Calling it "loop_counter" is non-productive, if there is no chance of it300Calling it ``loop_counter`` is non-productive, if there is no chance of it
265being mis-understood. Similarly, "tmp" can be just about any type of301being mis-understood. Similarly, ``tmp`` can be just about any type of
266variable that is used to hold a temporary value.302variable that is used to hold a temporary value.
267 303
268If you are afraid to mix up your local variable names, you have another304If you are afraid to mix up your local variable names, you have another
@@ -270,59 +306,69 @@ problem, which is called the function-growth-hormone-imbalance syndrome. · 1 unmodified line
270See chapter 6 (Functions).306See chapter 6 (Functions).
271 307
272 308
273 Chapter 5: Typedefs3095) Typedefs
310-----------
311
312Please don't use things like ``vps_t``.
313It's a **mistake** to use typedef for structures and pointers. When you see a
314
315.. code-block:: c
274 316
275Please don't use things like "vps_t".
276It's a _mistake_ to use typedef for structures and pointers. When you see a
277 317
278 vps_t a;318 vps_t a;
279 319
280in the source, what does it mean?320in the source, what does it mean?
281In contrast, if it says321In contrast, if it says
282 322
323.. code-block:: c
324
283 struct virtual_container *a;325 struct virtual_container *a;
284 326
285you can actually tell what "a" is.327you can actually tell what ``a`` is.
286 328
287Lots of people think that typedefs "help readability". Not so. They are329Lots of people think that typedefs ``help readability``. Not so. They are
288useful only for:330useful only for:
289 331
290 (a) totally opaque objects (where the typedef is actively used to _hide_332 (a) totally opaque objects (where the typedef is actively used to **hide**
291 what the object is).333 what the object is).
292 334
293 Example: "pte_t" etc. opaque objects that you can only access using335 Example: ``pte_t`` etc. opaque objects that you can only access using
294 the proper accessor functions.336 the proper accessor functions.
295 337
296 NOTE! Opaqueness and "accessor functions" are not good in themselves.338 .. note::
297 The reason we have them for things like pte_t etc. is that there339
298 really is absolutely _zero_ portably accessible information there.340 Opaqueness and ``accessor functions`` are not good in themselves.
341 The reason we have them for things like pte_t etc. is that there
342 really is absolutely **zero** portably accessible information there.
299 343
300 (b) Clear integer types, where the abstraction _helps_ avoid confusion344 (b) Clear integer types, where the abstraction **helps** avoid confusion
301 whether it is "int" or "long".345 whether it is ``int`` or ``long``.
302 346
303 u8/u16/u32 are perfectly fine typedefs, although they fit into347 u8/u16/u32 are perfectly fine typedefs, although they fit into
304 category (d) better than here.348 category (d) better than here.
305 349
306 NOTE! Again - there needs to be a _reason_ for this. If something is350 .. note::
307 "unsigned long", then there's no reason to do351
352 Again - there needs to be a **reason** for this. If something is
353 ``unsigned long``, then there's no reason to do
308 354
309 typedef unsigned long myflags_t;355 typedef unsigned long myflags_t;
310 356
311 but if there is a clear reason for why it under certain circumstances357 but if there is a clear reason for why it under certain circumstances
312 might be an "unsigned int" and under other configurations might be358 might be an ``unsigned int`` and under other configurations might be
313 "unsigned long", then by all means go ahead and use a typedef.359 ``unsigned long``, then by all means go ahead and use a typedef.
314 360
315 (c) when you use sparse to literally create a _new_ type for361 (c) when you use sparse to literally create a **new** type for
316 type-checking.362 type-checking.
317 363
318 (d) New types which are identical to standard C99 types, in certain364 (d) New types which are identical to standard C99 types, in certain
319 exceptional circumstances.365 exceptional circumstances.
320 366
321 Although it would only take a short amount of time for the eyes and367 Although it would only take a short amount of time for the eyes and
322 brain to become accustomed to the standard types like 'uint32_t',368 brain to become accustomed to the standard types like ``uint32_t``,
323 some people object to their use anyway.369 some people object to their use anyway.
324 370
325 Therefore, the Linux-specific 'u8/u16/u32/u64' types and their371 Therefore, the Linux-specific ``u8/u16/u32/u64`` types and their
326 signed equivalents which are identical to standard types are372 signed equivalents which are identical to standard types are
327 permitted -- although they are not mandatory in new code of your373 permitted -- although they are not mandatory in new code of your
328 own.374 own.
@@ -333,7 +379,7 @@ useful only for: · 4 unmodified lines
333 (e) Types safe for use in userspace.379 (e) Types safe for use in userspace.
334 380
335 In certain structures which are visible to userspace, we cannot381 In certain structures which are visible to userspace, we cannot
336 require C99 types and cannot use the 'u32' form above. Thus, we382 require C99 types and cannot use the ``u32`` form above. Thus, we
337 use __u32 and similar types in all structures which are shared383 use __u32 and similar types in all structures which are shared
338 with userspace.384 with userspace.
339 385
@@ -341,10 +387,11 @@ Maybe there are other cases too, but the rule should basically be to NEVER · 1 unmodified line
341EVER use a typedef unless you can clearly match one of those rules.387EVER use a typedef unless you can clearly match one of those rules.
342 388
343In general, a pointer, or a struct that has elements that can reasonably389In general, a pointer, or a struct that has elements that can reasonably
344be directly accessed should _never_ be a typedef.390be directly accessed should **never** be a typedef.
345 391
346 392
347 Chapter 6: Functions3936) Functions
394------------
348 395
349Functions should be short and sweet, and do just one thing. They should396Functions should be short and sweet, and do just one thing. They should
350fit on one or two screenfuls of text (the ISO/ANSI screen size is 80x24,397fit on one or two screenfuls of text (the ISO/ANSI screen size is 80x24,
@@ -372,8 +419,10 @@ and it gets confused. You know you're brilliant, but maybe you'd like · 21 unmodified lines
372to understand what you did 2 weeks from now.419to understand what you did 2 weeks from now.
373 420
374In source files, separate functions with one blank line. If the function is421In source files, separate functions with one blank line. If the function is
375exported, the EXPORT* macro for it should follow immediately after the closing422exported, the **EXPORT** macro for it should follow immediately after the
376function brace line. E.g.:423closing function brace line. E.g.:
424
425.. code-block:: c
377 426
378 int system_is_up(void)427 int system_is_up(void)
379 {428 {
@@ -386,7 +435,8 @@ Although this is not required by the C language, it is preferred in Linux · 6 unmodified lines
386because it is a simple way to add valuable information for the reader.435because it is a simple way to add valuable information for the reader.
387 436
388 437
389 Chapter 7: Centralized exiting of functions4387) Centralized exiting of functions
439-----------------------------------
390 440
391Albeit deprecated by some people, the equivalent of the goto statement is441Albeit deprecated by some people, the equivalent of the goto statement is
392used frequently by compilers in form of the unconditional jump instruction.442used frequently by compilers in form of the unconditional jump instruction.
@@ -396,18 +446,21 @@ locations and some common work such as cleanup has to be done. If there is no · 3 unmodified lines
396cleanup needed then just return directly.446cleanup needed then just return directly.
397 447
398Choose label names which say what the goto does or why the goto exists. An448Choose label names which say what the goto does or why the goto exists. An
399example of a good name could be "out_buffer:" if the goto frees "buffer". Avoid449example of a good name could be ``out_free_buffer:`` if the goto frees ``buffer``.
400using GW-BASIC names like "err1:" and "err2:". Also don't name them after the450Avoid using GW-BASIC names like ``err1:`` and ``err2:``, as you would have to
401goto location like "err_kmalloc_failed:"451renumber them if you ever add or remove exit paths, and they make correctness
452difficult to verify anyway.
402 453
403The rationale for using gotos is:454The rationale for using gotos is:
404 455
405- unconditional statements are easier to understand and follow456- unconditional statements are easier to understand and follow
406- nesting is reduced457- nesting is reduced
407- errors by not updating individual exit points when making458- errors by not updating individual exit points when making
408 modifications are prevented459 modifications are prevented
409- saves the compiler work to optimize redundant code away ;)460- saves the compiler work to optimize redundant code away ;)
410 461
462.. code-block:: c
463
411 int fun(int a)464 int fun(int a)
412 {465 {
413 int result = 0;466 int result = 0;
@@ -425,27 +478,41 @@ The rationale for using gotos is: · 11 unmodified lines
425 goto out_buffer;478 goto out_buffer;
426 }479 }
427 ...480 ...
428 out_buffer:481 out_free_buffer:
429 kfree(buffer);482 kfree(buffer);
430 return result;483 return result;
431 }484 }
432 485
433A common type of bug to be aware of is "one err bugs" which look like this:486A common type of bug to be aware of is ``one err bugs`` which look like this:
487
488.. code-block:: c
434 489
435 err:490 err:
436 kfree(foo->bar);491 kfree(foo->bar);
437 kfree(foo);492 kfree(foo);
438 return ret;493 return ret;
439 494
440The bug in this code is that on some exit paths "foo" is NULL. Normally the495The bug in this code is that on some exit paths ``foo`` is NULL. Normally the
441fix for this is to split it up into two error labels "err_bar:" and "err_foo:".496fix for this is to split it up into two error labels ``err_free_bar:`` and
497``err_free_foo:``:
442 498
499.. code-block:: c
443 500
444 Chapter 8: Commenting501 err_free_bar:
502 kfree(foo->bar);
503 err_free_foo:
504 kfree(foo);
505 return ret;
506
507Ideally you should simulate errors to test all exit paths.
508
509
5108) Commenting
511-------------
445 512
446Comments are good, but there is also a danger of over-commenting. NEVER513Comments are good, but there is also a danger of over-commenting. NEVER
447try to explain HOW your code works in a comment: it's much better to514try to explain HOW your code works in a comment: it's much better to
448write the code so that the _working_ is obvious, and it's a waste of515write the code so that the **working** is obvious, and it's a waste of
449time to explain badly written code.516time to explain badly written code.
450 517
451Generally, you want your comments to tell WHAT your code does, not HOW.518Generally, you want your comments to tell WHAT your code does, not HOW.
@@ -461,11 +528,10 @@ When commenting the kernel API functions, please use the kernel-doc format. · 9 unmodified lines
461See the files Documentation/kernel-documentation.rst and scripts/kernel-doc528See the files Documentation/kernel-documentation.rst and scripts/kernel-doc
462for details.529for details.
463 530
464Linux style for comments is the C89 "/* ... */" style.
465Don't use C99-style "// ..." comments.
466
467The preferred style for long (multi-line) comments is:531The preferred style for long (multi-line) comments is:
468 532
533.. code-block:: c
534
469 /*535 /*
470 * This is the preferred style for multi-line536 * This is the preferred style for multi-line
471 * comments in the Linux kernel source code.537 * comments in the Linux kernel source code.
@@ -478,6 +544,8 @@ The preferred style for long (multi-line) comments is: · 6 unmodified lines
478For files in net/ and drivers/net/ the preferred style for long (multi-line)544For files in net/ and drivers/net/ the preferred style for long (multi-line)
479comments is a little different.545comments is a little different.
480 546
547.. code-block:: c
548
481 /* The preferred comment style for files in net/ and drivers/net549 /* The preferred comment style for files in net/ and drivers/net
482 * looks like this.550 * looks like this.
483 *551 *
@@ -491,10 +559,11 @@ multiple data declarations). This leaves you room for a small comment on each · 7 unmodified lines
491item, explaining its use.559item, explaining its use.
492 560
493 561
494 Chapter 9: You've made a mess of it5629) You've made a mess of it
563---------------------------
495 564
496That's OK, we all do. You've probably been told by your long-time Unix565That's OK, we all do. You've probably been told by your long-time Unix
497user helper that "GNU emacs" automatically formats the C sources for566user helper that ``GNU emacs`` automatically formats the C sources for
498you, and you've noticed that yes, it does do that, but the defaults it567you, and you've noticed that yes, it does do that, but the defaults it
499uses are less than desirable (in fact, they are worse than random568uses are less than desirable (in fact, they are worse than random
500typing - an infinite number of monkeys typing into GNU emacs would never569typing - an infinite number of monkeys typing into GNU emacs would never
@@ -503,63 +572,66 @@ make a good program). · 2 unmodified lines
503So, you can either get rid of GNU emacs, or change it to use saner572So, you can either get rid of GNU emacs, or change it to use saner
504values. To do the latter, you can stick the following in your .emacs file:573values. To do the latter, you can stick the following in your .emacs file:
505 574
506(defun c-lineup-arglist-tabs-only (ignored)575.. code-block:: none
507 "Line up argument lists by tabs, not spaces"576
508 (let* ((anchor (c-langelem-pos c-syntactic-element))577 (defun c-lineup-arglist-tabs-only (ignored)
509 (column (c-langelem-2nd-pos c-syntactic-element))578 "Line up argument lists by tabs, not spaces"
510 (offset (- (1+ column) anchor))579 (let* ((anchor (c-langelem-pos c-syntactic-element))
511 (steps (floor offset c-basic-offset)))580 (column (c-langelem-2nd-pos c-syntactic-element))
512 (* (max steps 1)581 (offset (- (1+ column) anchor))
513 c-basic-offset)))582 (steps (floor offset c-basic-offset)))
514 583 (* (max steps 1)
515(add-hook 'c-mode-common-hook584 c-basic-offset)))
516 (lambda ()585
517 ;; Add kernel style586 (add-hook 'c-mode-common-hook
518 (c-add-style587 (lambda ()
519 "linux-tabs-only"588 ;; Add kernel style
520 '("linux" (c-offsets-alist589 (c-add-style
521 (arglist-cont-nonempty590 "linux-tabs-only"
522 c-lineup-gcc-asm-reg591 '("linux" (c-offsets-alist
523 c-lineup-arglist-tabs-only))))))592 (arglist-cont-nonempty
524 593 c-lineup-gcc-asm-reg
525(add-hook 'c-mode-hook594 c-lineup-arglist-tabs-only))))))
526 (lambda ()595
527 (let ((filename (buffer-file-name)))596 (add-hook 'c-mode-hook
528 ;; Enable kernel mode for the appropriate files597 (lambda ()
529 (when (and filename598 (let ((filename (buffer-file-name)))
530 (string-match (expand-file-name "~/src/linux-trees")599 ;; Enable kernel mode for the appropriate files
531 filename))600 (when (and filename
532 (setq indent-tabs-mode t)601 (string-match (expand-file-name "~/src/linux-trees")
533 (setq show-trailing-whitespace t)602 filename))
534 (c-set-style "linux-tabs-only")))))603 (setq indent-tabs-mode t)
604 (setq show-trailing-whitespace t)
605 (c-set-style "linux-tabs-only")))))
535 606
536This will make emacs go better with the kernel coding style for C607This will make emacs go better with the kernel coding style for C
537files below ~/src/linux-trees.608files below ``~/src/linux-trees``.
538 609
539But even if you fail in getting emacs to do sane formatting, not610But even if you fail in getting emacs to do sane formatting, not
540everything is lost: use "indent".611everything is lost: use ``indent``.
541 612
542Now, again, GNU indent has the same brain-dead settings that GNU emacs613Now, again, GNU indent has the same brain-dead settings that GNU emacs
543has, which is why you need to give it a few command line options.614has, which is why you need to give it a few command line options.
544However, that's not too bad, because even the makers of GNU indent615However, that's not too bad, because even the makers of GNU indent
545recognize the authority of K&R (the GNU people aren't evil, they are616recognize the authority of K&R (the GNU people aren't evil, they are
546just severely misguided in this matter), so you just give indent the617just severely misguided in this matter), so you just give indent the
547options "-kr -i8" (stands for "K&R, 8 character indents"), or use618options ``-kr -i8`` (stands for ``K&R, 8 character indents``), or use
548"scripts/Lindent", which indents in the latest style.619``scripts/Lindent``, which indents in the latest style.
549 620
550"indent" has a lot of options, and especially when it comes to comment621``indent`` has a lot of options, and especially when it comes to comment
551re-formatting you may want to take a look at the man page. But622re-formatting you may want to take a look at the man page. But
552remember: "indent" is not a fix for bad programming.623remember: ``indent`` is not a fix for bad programming.
553 624
554 625
555 Chapter 10: Kconfig configuration files62610) Kconfig configuration files
627-------------------------------
556 628
557For all of the Kconfig* configuration files throughout the source tree,629For all of the Kconfig* configuration files throughout the source tree,
558the indentation is somewhat different. Lines under a "config" definition630the indentation is somewhat different. Lines under a ``config`` definition
559are indented with one tab, while help text is indented an additional two631are indented with one tab, while help text is indented an additional two
560spaces. Example:632spaces. Example::
561 633
562config AUDIT634 config AUDIT
563 bool "Auditing support"635 bool "Auditing support"
564 depends on NET636 depends on NET
565 help637 help
@@ -569,9 +641,9 @@ config AUDIT · 3 unmodified lines
569 auditing without CONFIG_AUDITSYSCALL.641 auditing without CONFIG_AUDITSYSCALL.
570 642
571Seriously dangerous features (such as write support for certain643Seriously dangerous features (such as write support for certain
572filesystems) should advertise this prominently in their prompt string:644filesystems) should advertise this prominently in their prompt string::
573 645
574config ADFS_FS_RW646 config ADFS_FS_RW
575 bool "ADFS write support (DANGEROUS)"647 bool "ADFS write support (DANGEROUS)"
576 depends on ADFS_FS648 depends on ADFS_FS
577 ...649 ...
@@ -580,41 +652,45 @@ For full documentation on the configuration files, see the file · 2 unmodified lines
580Documentation/kbuild/kconfig-language.txt.652Documentation/kbuild/kconfig-language.txt.
581 653
582 654
583 Chapter 11: Data structures65511) Data structures
656-------------------
584 657
585Data structures that have visibility outside the single-threaded658Data structures that have visibility outside the single-threaded
586environment they are created and destroyed in should always have659environment they are created and destroyed in should always have
587reference counts. In the kernel, garbage collection doesn't exist (and660reference counts. In the kernel, garbage collection doesn't exist (and
588outside the kernel garbage collection is slow and inefficient), which661outside the kernel garbage collection is slow and inefficient), which
589means that you absolutely _have_ to reference count all your uses.662means that you absolutely **have** to reference count all your uses.
590 663
591Reference counting means that you can avoid locking, and allows multiple664Reference counting means that you can avoid locking, and allows multiple
592users to have access to the data structure in parallel - and not having665users to have access to the data structure in parallel - and not having
593to worry about the structure suddenly going away from under them just666to worry about the structure suddenly going away from under them just
594because they slept or did something else for a while.667because they slept or did something else for a while.
595 668
596Note that locking is _not_ a replacement for reference counting.669Note that locking is **not** a replacement for reference counting.
597Locking is used to keep data structures coherent, while reference670Locking is used to keep data structures coherent, while reference
598counting is a memory management technique. Usually both are needed, and671counting is a memory management technique. Usually both are needed, and
599they are not to be confused with each other.672they are not to be confused with each other.
600 673
601Many data structures can indeed have two levels of reference counting,674Many data structures can indeed have two levels of reference counting,
602when there are users of different "classes". The subclass count counts675when there are users of different ``classes``. The subclass count counts
603the number of subclass users, and decrements the global count just once676the number of subclass users, and decrements the global count just once
604when the subclass count goes to zero.677when the subclass count goes to zero.
605 678
606Examples of this kind of "multi-level-reference-counting" can be found in679Examples of this kind of ``multi-level-reference-counting`` can be found in
607memory management ("struct mm_struct": mm_users and mm_count), and in680memory management (``struct mm_struct``: mm_users and mm_count), and in
608filesystem code ("struct super_block": s_count and s_active).681filesystem code (``struct super_block``: s_count and s_active).
609 682
610Remember: if another thread can find your data structure, and you don't683Remember: if another thread can find your data structure, and you don't
611have a reference count on it, you almost certainly have a bug.684have a reference count on it, you almost certainly have a bug.
612 685
613 686
614 Chapter 12: Macros, Enums and RTL68712) Macros, Enums and RTL
688-------------------------
615 689
616Names of macros defining constants and labels in enums are capitalized.690Names of macros defining constants and labels in enums are capitalized.
617 691
692.. code-block:: c
693
618 #define CONSTANT 0x12345694 #define CONSTANT 0x12345
619 695
620Enums are preferred when defining several related constants.696Enums are preferred when defining several related constants.
@@ -626,7 +702,9 @@ Generally, inline functions are preferable to macros resembling functions. · 5 unmodified lines
626 702
627Macros with multiple statements should be enclosed in a do - while block:703Macros with multiple statements should be enclosed in a do - while block:
628 704
629 #define macrofun(a, b, c) \705.. code-block:: c
706
707 #define macrofun(a, b, c) \
630 do { \708 do { \
631 if (a == 5) \709 if (a == 5) \
632 do_this(b, c); \710 do_this(b, c); \
@@ -636,17 +714,21 @@ Things to avoid when using macros: · 3 unmodified lines
636 714
6371) macros that affect control flow:7151) macros that affect control flow:
638 716
717.. code-block:: c
718
639 #define FOO(x) \719 #define FOO(x) \
640 do { \720 do { \
641 if (blah(x) < 0) \721 if (blah(x) < 0) \
642 return -EBUGGERED; \722 return -EBUGGERED; \
643 } while (0)723 } while (0)
644 724
645is a _very_ bad idea. It looks like a function call but exits the "calling"725is a **very** bad idea. It looks like a function call but exits the ``calling``
646function; don't break the internal parsers of those who will read the code.726function; don't break the internal parsers of those who will read the code.
647 727
6482) macros that depend on having a local variable with a magic name:7282) macros that depend on having a local variable with a magic name:
649 729
730.. code-block:: c
731
650 #define FOO(val) bar(index, val)732 #define FOO(val) bar(index, val)
651 733
652might look like a good thing, but it's confusing as hell when one reads the734might look like a good thing, but it's confusing as hell when one reads the
@@ -659,18 +741,22 @@ bite you if somebody e.g. turns FOO into an inline function. · 6 unmodified lines
659must enclose the expression in parentheses. Beware of similar issues with741must enclose the expression in parentheses. Beware of similar issues with
660macros using parameters.742macros using parameters.
661 743
744.. code-block:: c
745
662 #define CONSTANT 0x4000746 #define CONSTANT 0x4000
663 #define CONSTEXP (CONSTANT | 3)747 #define CONSTEXP (CONSTANT | 3)
664 748
6655) namespace collisions when defining local variables in macros resembling7495) namespace collisions when defining local variables in macros resembling
666functions:750functions:
667 751
668#define FOO(x) \752.. code-block:: c
669({ \753
670 typeof(x) ret; \754 #define FOO(x) \
671 ret = calc_ret(x); \755 ({ \
672 (ret); \756 typeof(x) ret; \
673})757 ret = calc_ret(x); \
758 (ret); \
759 })
674 760
675ret is a common name for a local variable - __foo_ret is less likely761ret is a common name for a local variable - __foo_ret is less likely
676to collide with an existing variable.762to collide with an existing variable.
@@ -679,11 +765,12 @@ The cpp manual deals with macros exhaustively. The gcc internals manual also · 2 unmodified lines
679covers RTL which is used frequently with assembly language in the kernel.765covers RTL which is used frequently with assembly language in the kernel.
680 766
681 767
682 Chapter 13: Printing kernel messages76813) Printing kernel messages
769----------------------------
683 770
684Kernel developers like to be seen as literate. Do mind the spelling771Kernel developers like to be seen as literate. Do mind the spelling
685of kernel messages to make a good impression. Do not use crippled772of kernel messages to make a good impression. Do not use crippled
686words like "dont"; use "do not" or "don't" instead. Make the messages773words like ``dont``; use ``do not`` or ``don't`` instead. Make the messages
687concise, clear, and unambiguous.774concise, clear, and unambiguous.
688 775
689Kernel messages do not have to be terminated with a period.776Kernel messages do not have to be terminated with a period.
@@ -713,7 +800,8 @@ already inside a debug-related #ifdef section, printk(KERN_DEBUG ...) can be · 23 unmodified lines
713used.800used.
714 801
715 802
716 Chapter 14: Allocating memory80314) Allocating memory
804---------------------
717 805
718The kernel provides the following general purpose memory allocators:806The kernel provides the following general purpose memory allocators:
719kmalloc(), kzalloc(), kmalloc_array(), kcalloc(), vmalloc(), and807kmalloc(), kzalloc(), kmalloc_array(), kcalloc(), vmalloc(), and
@@ -722,6 +810,8 @@ about them. · 2 unmodified lines
722 810
723The preferred form for passing a size of a struct is the following:811The preferred form for passing a size of a struct is the following:
724 812
813.. code-block:: c
814
725 p = kmalloc(sizeof(*p), ...);815 p = kmalloc(sizeof(*p), ...);
726 816
727The alternative form where struct name is spelled out hurts readability and817The alternative form where struct name is spelled out hurts readability and
@@ -734,20 +824,25 @@ language. · 6 unmodified lines
734 824
735The preferred form for allocating an array is the following:825The preferred form for allocating an array is the following:
736 826
827.. code-block:: c
828
737 p = kmalloc_array(n, sizeof(...), ...);829 p = kmalloc_array(n, sizeof(...), ...);
738 830
739The preferred form for allocating a zeroed array is the following:831The preferred form for allocating a zeroed array is the following:
740 832
833.. code-block:: c
834
741 p = kcalloc(n, sizeof(...), ...);835 p = kcalloc(n, sizeof(...), ...);
742 836
743Both forms check for overflow on the allocation size n * sizeof(...),837Both forms check for overflow on the allocation size n * sizeof(...),
744and return NULL if that occurred.838and return NULL if that occurred.
745 839
746 840
747 Chapter 15: The inline disease84115) The inline disease
842----------------------
748 843
749There appears to be a common misperception that gcc has a magic "make me844There appears to be a common misperception that gcc has a magic "make me
750faster" speedup option called "inline". While the use of inlines can be845faster" speedup option called ``inline``. While the use of inlines can be
751appropriate (for example as a means of replacing macros, see Chapter 12), it846appropriate (for example as a means of replacing macros, see Chapter 12), it
752very often is not. Abundant use of the inline keyword leads to a much bigger847very often is not. Abundant use of the inline keyword leads to a much bigger
753kernel, which in turn slows the system as a whole down, due to a bigger848kernel, which in turn slows the system as a whole down, due to a bigger
@@ -771,26 +866,27 @@ appears outweighs the potential value of the hint that tells gcc to do · 17 unmodified lines
771something it would have done anyway.866something it would have done anyway.
772 867
773 868
774 Chapter 16: Function return values and names86916) Function return values and names
870------------------------------------
775 871
776Functions can return values of many different kinds, and one of the872Functions can return values of many different kinds, and one of the
777most common is a value indicating whether the function succeeded or873most common is a value indicating whether the function succeeded or
778failed. Such a value can be represented as an error-code integer874failed. Such a value can be represented as an error-code integer
779(-Exxx = failure, 0 = success) or a "succeeded" boolean (0 = failure,875(-Exxx = failure, 0 = success) or a ``succeeded`` boolean (0 = failure,
780non-zero = success).876non-zero = success).
781 877
782Mixing up these two sorts of representations is a fertile source of878Mixing up these two sorts of representations is a fertile source of
783difficult-to-find bugs. If the C language included a strong distinction879difficult-to-find bugs. If the C language included a strong distinction
784between integers and booleans then the compiler would find these mistakes880between integers and booleans then the compiler would find these mistakes
785for us... but it doesn't. To help prevent such bugs, always follow this881for us... but it doesn't. To help prevent such bugs, always follow this
786convention:882convention::
787 883
788 If the name of a function is an action or an imperative command,884 If the name of a function is an action or an imperative command,
789 the function should return an error-code integer. If the name885 the function should return an error-code integer. If the name
790 is a predicate, the function should return a "succeeded" boolean.886 is a predicate, the function should return a "succeeded" boolean.
791 887
792For example, "add work" is a command, and the add_work() function returns 0888For example, ``add work`` is a command, and the add_work() function returns 0
793for success or -EBUSY for failure. In the same way, "PCI device present" is889for success or -EBUSY for failure. In the same way, ``PCI device present`` is
794a predicate, and the pci_dev_present() function returns 1 if it succeeds in890a predicate, and the pci_dev_present() function returns 1 if it succeeds in
795finding a matching device or 0 if it doesn't.891finding a matching device or 0 if it doesn't.
796 892
@@ -805,17 +901,22 @@ result. Typical examples would be functions that return pointers; they use · 8 unmodified lines
805NULL or the ERR_PTR mechanism to report failure.901NULL or the ERR_PTR mechanism to report failure.
806 902
807 903
808 Chapter 17: Don't re-invent the kernel macros90417) Don't re-invent the kernel macros
905-------------------------------------
809 906
810The header file include/linux/kernel.h contains a number of macros that907The header file include/linux/kernel.h contains a number of macros that
811you should use, rather than explicitly coding some variant of them yourself.908you should use, rather than explicitly coding some variant of them yourself.
812For example, if you need to calculate the length of an array, take advantage909For example, if you need to calculate the length of an array, take advantage
813of the macro910of the macro
814 911
912.. code-block:: c
913
815 #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))914 #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
816 915
817Similarly, if you need to calculate the size of some structure member, use916Similarly, if you need to calculate the size of some structure member, use
818 917
918.. code-block:: c
919
819 #define FIELD_SIZEOF(t, f) (sizeof(((t*)0)->f))920 #define FIELD_SIZEOF(t, f) (sizeof(((t*)0)->f))
820 921
821There are also min() and max() macros that do strict type checking if you922There are also min() and max() macros that do strict type checking if you
@@ -823,16 +924,21 @@ need them. Feel free to peruse that header file to see what else is already · 1 unmodified line
823defined that you shouldn't reproduce in your code.924defined that you shouldn't reproduce in your code.
824 925
825 926
826 Chapter 18: Editor modelines and other cruft92718) Editor modelines and other cruft
928------------------------------------
827 929
828Some editors can interpret configuration information embedded in source files,930Some editors can interpret configuration information embedded in source files,
829indicated with special markers. For example, emacs interprets lines marked931indicated with special markers. For example, emacs interprets lines marked
830like this:932like this:
831 933
934.. code-block:: c
935
832 -*- mode: c -*-936 -*- mode: c -*-
833 937
834Or like this:938Or like this:
835 939
940.. code-block:: c
941
836 /*942 /*
837 Local Variables:943 Local Variables:
838 compile-command: "gcc -DMAGIC_DEBUG_FLAG foo.c"944 compile-command: "gcc -DMAGIC_DEBUG_FLAG foo.c"
@@ -841,6 +947,8 @@ Or like this: · 2 unmodified lines
841 947
842Vim interprets markers that look like this:948Vim interprets markers that look like this:
843 949
950.. code-block:: c
951
844 /* vim:set sw=8 noet */952 /* vim:set sw=8 noet */
845 953
846Do not include any of these in source files. People have their own personal954Do not include any of these in source files. People have their own personal
@@ -850,7 +958,8 @@ own custom mode, or may have some other magic method for making indentation · 3 unmodified lines
850work correctly.958work correctly.
851 959
852 960
853 Chapter 19: Inline assembly96119) Inline assembly
962-------------------
854 963
855In architecture-specific code, you may need to use inline assembly to interface964In architecture-specific code, you may need to use inline assembly to interface
856with CPU or platform functionality. Don't hesitate to do so when necessary.965with CPU or platform functionality. Don't hesitate to do so when necessary.
@@ -863,7 +972,7 @@ that inline assembly can use C parameters. · 6 unmodified lines
863 972
864Large, non-trivial assembly functions should go in .S files, with corresponding973Large, non-trivial assembly functions should go in .S files, with corresponding
865C prototypes defined in C header files. The C prototypes for assembly974C prototypes defined in C header files. The C prototypes for assembly
866functions should use "asmlinkage".975functions should use ``asmlinkage``.
867 976
868You may need to mark your asm statement as volatile, to prevent GCC from977You may need to mark your asm statement as volatile, to prevent GCC from
869removing it if GCC doesn't notice any side effects. You don't always need to978removing it if GCC doesn't notice any side effects. You don't always need to
@@ -874,12 +983,15 @@ instructions, put each instruction on a separate line in a separate quoted · 4 unmodified lines
874string, and end each string except the last with \n\t to properly indent the983string, and end each string except the last with \n\t to properly indent the
875next instruction in the assembly output:984next instruction in the assembly output:
876 985
986.. code-block:: c
987
877 asm ("magic %reg1, #42\n\t"988 asm ("magic %reg1, #42\n\t"
878 "more_magic %reg2, %reg3"989 "more_magic %reg2, %reg3"
879 : /* outputs */ : /* inputs */ : /* clobbers */);990 : /* outputs */ : /* inputs */ : /* clobbers */);
880 991
881 992
882 Chapter 20: Conditional Compilation99320) Conditional Compilation
994---------------------------
883 995
884Wherever possible, don't use preprocessor conditionals (#if, #ifdef) in .c996Wherever possible, don't use preprocessor conditionals (#if, #ifdef) in .c
885files; doing so makes code harder to read and logic harder to follow. Instead,997files; doing so makes code harder to read and logic harder to follow. Instead,
@@ -903,6 +1015,8 @@ unused, delete it.) · 17 unmodified lines
903Within code, where possible, use the IS_ENABLED macro to convert a Kconfig1015Within code, where possible, use the IS_ENABLED macro to convert a Kconfig
904symbol into a C boolean expression, and use it in a normal C conditional:1016symbol into a C boolean expression, and use it in a normal C conditional:
905 1017
1018.. code-block:: c
1019
906 if (IS_ENABLED(CONFIG_SOMETHING)) {1020 if (IS_ENABLED(CONFIG_SOMETHING)) {
907 ...1021 ...
908 }1022 }
@@ -918,12 +1032,15 @@ At the end of any non-trivial #if or #ifdef block (more than a few lines), · 9 unmodified lines
918place a comment after the #endif on the same line, noting the conditional1032place a comment after the #endif on the same line, noting the conditional
919expression used. For instance:1033expression used. For instance:
920 1034
1035.. code-block:: c
1036
921 #ifdef CONFIG_SOMETHING1037 #ifdef CONFIG_SOMETHING
922 ...1038 ...
923 #endif /* CONFIG_SOMETHING */1039 #endif /* CONFIG_SOMETHING */
924 1040
925 1041
926 Appendix I: References1042Appendix I) References
1043----------------------
927 1044
928The C Programming Language, Second Edition1045The C Programming Language, Second Edition
929by Brian W. Kernighan and Dennis M. Ritchie.1046by Brian W. Kernighan and Dennis M. Ritchie.
@@ -943,4 +1060,3 @@ language C, URL: http://www.open-std.org/JTC1/SC22/WG14/ · 13 unmodified lines
943 1060
944Kernel CodingStyle, by greg@kroah.com at OLS 2002:1061Kernel CodingStyle, by greg@kroah.com at OLS 2002:
945http://www.kroah.com/linux/talks/ols_2002_kernel_codingstyle_talk/html/1062http://www.kroah.com/linux/talks/ols_2002_kernel_codingstyle_talk/html/
946
Documentation/DMA-API-HOWTO.txt+3−5
@@ -699,7 +699,7 @@ to use the dma_sync_*() interfaces. · 698 unmodified lines
699 dma_addr_t mapping;699 dma_addr_t mapping;
700 700
701 mapping = dma_map_single(cp->dev, buffer, len, DMA_FROM_DEVICE);701 mapping = dma_map_single(cp->dev, buffer, len, DMA_FROM_DEVICE);
702 if (dma_mapping_error(cp->dev, dma_handle)) {702 if (dma_mapping_error(cp->dev, mapping)) {
703 /*703 /*
704 * reduce current DMA mapping usage,704 * reduce current DMA mapping usage,
705 * delay and try again later or705 * delay and try again later or
@@ -931,10 +931,8 @@ to "Closing". · 225 unmodified lines
931 931
9321) Struct scatterlist requirements.9321) Struct scatterlist requirements.
933 933
934 Don't invent the architecture specific struct scatterlist; just use934 You need to enable CONFIG_NEED_SG_DMA_LENGTH if the architecture
935 <asm-generic/scatterlist.h>. You need to enable935 supports IOMMUs (including software IOMMU).
936 CONFIG_NEED_SG_DMA_LENGTH if the architecture supports IOMMUs
937 (including software IOMMU).
938 936
9392) ARCH_DMA_MINALIGN9372) ARCH_DMA_MINALIGN
940 938
Documentation/DMA-API.txt+17−5
@@ -277,14 +277,26 @@ and <size> parameters are provided to do partial page mapping, it is · 276 unmodified lines
277recommended that you never use these unless you really know what the277recommended that you never use these unless you really know what the
278cache width is.278cache width is.
279 279
280dma_addr_t
281dma_map_resource(struct device *dev, phys_addr_t phys_addr, size_t size,
282 enum dma_data_direction dir, unsigned long attrs)
283
284void
285dma_unmap_resource(struct device *dev, dma_addr_t addr, size_t size,
286 enum dma_data_direction dir, unsigned long attrs)
287
288API for mapping and unmapping for MMIO resources. All the notes and
289warnings for the other mapping APIs apply here. The API should only be
290used to map device MMIO resources, mapping of RAM is not permitted.
291
280int292int
281dma_mapping_error(struct device *dev, dma_addr_t dma_addr)293dma_mapping_error(struct device *dev, dma_addr_t dma_addr)
282 294
283In some circumstances dma_map_single() and dma_map_page() will fail to create295In some circumstances dma_map_single(), dma_map_page() and dma_map_resource()
284a mapping. A driver can check for these errors by testing the returned296will fail to create a mapping. A driver can check for these errors by testing
285DMA address with dma_mapping_error(). A non-zero return value means the mapping297the returned DMA address with dma_mapping_error(). A non-zero return value
286could not be created and the driver should take appropriate action (e.g.298means the mapping could not be created and the driver should take appropriate
287reduce current DMA mapping usage or delay and try again later).299action (e.g. reduce current DMA mapping usage or delay and try again later).
288 300
289 int301 int
290 dma_map_sg(struct device *dev, struct scatterlist *sg,302 dma_map_sg(struct device *dev, struct scatterlist *sg,
Documentation/DMA-attributes.txt+17−0
@@ -126,3 +126,20 @@ means that we won't try quite as hard to get them. · 125 unmodified lines
126 126
127NOTE: At the moment DMA_ATTR_ALLOC_SINGLE_PAGES is only implemented on ARM,127NOTE: At the moment DMA_ATTR_ALLOC_SINGLE_PAGES is only implemented on ARM,
128though ARM64 patches will likely be posted soon.128though ARM64 patches will likely be posted soon.
129
130DMA_ATTR_NO_WARN
131----------------
132
133This tells the DMA-mapping subsystem to suppress allocation failure reports
134(similarly to __GFP_NOWARN).
135
136On some architectures allocation failures are reported with error messages
137to the system logs. Although this can help to identify and debug problems,
138drivers which handle failures (eg, retry later) have no problems with them,
139and can actually flood the system logs with error messages that aren't any
140problem at all, depending on the implementation of the retry mechanism.
141
142So, this provides a way for drivers to avoid those error messages on calls
143where allocation failures are not a problem, and shouldn't bother the logs.
144
145NOTE: At the moment DMA_ATTR_NO_WARN is only implemented on PowerPC.
Documentation/DocBook/80211.tmpl+0−584
@@ -1,584 +0,0 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE set PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
3 "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" []>
4<set>
5 <setinfo>
6 <title>The 802.11 subsystems &ndash; for kernel developers</title>
7 <subtitle>
8 Explaining wireless 802.11 networking in the Linux kernel
9 </subtitle>
10
11 <copyright>
12 <year>2007-2009</year>
13 <holder>Johannes Berg</holder>
14 </copyright>
15
16 <authorgroup>
17 <author>
18 <firstname>Johannes</firstname>
19 <surname>Berg</surname>
20 <affiliation>
21 <address><email>johannes@sipsolutions.net</email></address>
22 </affiliation>
23 </author>
24 </authorgroup>
25
26 <legalnotice>
27 <para>
28 This documentation is free software; you can redistribute
29 it and/or modify it under the terms of the GNU General Public
30 License version 2 as published by the Free Software Foundation.
31 </para>
32 <para>
33 This documentation is distributed in the hope that it will be
34 useful, but WITHOUT ANY WARRANTY; without even the implied
35 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
36 See the GNU General Public License for more details.
37 </para>
38 <para>
39 You should have received a copy of the GNU General Public
40 License along with this documentation; if not, write to the Free
41 Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
42 MA 02111-1307 USA
43 </para>
44 <para>
45 For more details see the file COPYING in the source
46 distribution of Linux.
47 </para>
48 </legalnotice>
49
50 <abstract>
51 <para>
52 These books attempt to give a description of the
53 various subsystems that play a role in 802.11 wireless
54 networking in Linux. Since these books are for kernel
55 developers they attempts to document the structures
56 and functions used in the kernel as well as giving a
57 higher-level overview.
58 </para>
59 <para>
60 The reader is expected to be familiar with the 802.11
61 standard as published by the IEEE in 802.11-2007 (or
62 possibly later versions). References to this standard
63 will be given as "802.11-2007 8.1.5".
64 </para>
65 </abstract>
66 </setinfo>
67 <book id="cfg80211-developers-guide">
68 <bookinfo>
69 <title>The cfg80211 subsystem</title>
70
71 <abstract>
72!Pinclude/net/cfg80211.h Introduction
73 </abstract>
74 </bookinfo>
75 <chapter>
76 <title>Device registration</title>
77!Pinclude/net/cfg80211.h Device registration
78!Finclude/net/cfg80211.h ieee80211_channel_flags
79!Finclude/net/cfg80211.h ieee80211_channel
80!Finclude/net/cfg80211.h ieee80211_rate_flags
81!Finclude/net/cfg80211.h ieee80211_rate
82!Finclude/net/cfg80211.h ieee80211_sta_ht_cap
83!Finclude/net/cfg80211.h ieee80211_supported_band
84!Finclude/net/cfg80211.h cfg80211_signal_type
85!Finclude/net/cfg80211.h wiphy_params_flags
86!Finclude/net/cfg80211.h wiphy_flags
87!Finclude/net/cfg80211.h wiphy
88!Finclude/net/cfg80211.h wireless_dev
89!Finclude/net/cfg80211.h wiphy_new
90!Finclude/net/cfg80211.h wiphy_register
91!Finclude/net/cfg80211.h wiphy_unregister
92!Finclude/net/cfg80211.h wiphy_free
93
94!Finclude/net/cfg80211.h wiphy_name
95!Finclude/net/cfg80211.h wiphy_dev
96!Finclude/net/cfg80211.h wiphy_priv
97!Finclude/net/cfg80211.h priv_to_wiphy
98!Finclude/net/cfg80211.h set_wiphy_dev
99!Finclude/net/cfg80211.h wdev_priv
100!Finclude/net/cfg80211.h ieee80211_iface_limit
101!Finclude/net/cfg80211.h ieee80211_iface_combination
102!Finclude/net/cfg80211.h cfg80211_check_combinations
103 </chapter>
104 <chapter>
105 <title>Actions and configuration</title>
106!Pinclude/net/cfg80211.h Actions and configuration
107!Finclude/net/cfg80211.h cfg80211_ops
108!Finclude/net/cfg80211.h vif_params
109!Finclude/net/cfg80211.h key_params
110!Finclude/net/cfg80211.h survey_info_flags
111!Finclude/net/cfg80211.h survey_info
112!Finclude/net/cfg80211.h cfg80211_beacon_data
113!Finclude/net/cfg80211.h cfg80211_ap_settings
114!Finclude/net/cfg80211.h station_parameters
115!Finclude/net/cfg80211.h rate_info_flags
116!Finclude/net/cfg80211.h rate_info
117!Finclude/net/cfg80211.h station_info
118!Finclude/net/cfg80211.h monitor_flags
119!Finclude/net/cfg80211.h mpath_info_flags
120!Finclude/net/cfg80211.h mpath_info
121!Finclude/net/cfg80211.h bss_parameters
122!Finclude/net/cfg80211.h ieee80211_txq_params
123!Finclude/net/cfg80211.h cfg80211_crypto_settings
124!Finclude/net/cfg80211.h cfg80211_auth_request
125!Finclude/net/cfg80211.h cfg80211_assoc_request
126!Finclude/net/cfg80211.h cfg80211_deauth_request
127!Finclude/net/cfg80211.h cfg80211_disassoc_request
128!Finclude/net/cfg80211.h cfg80211_ibss_params
129!Finclude/net/cfg80211.h cfg80211_connect_params
130!Finclude/net/cfg80211.h cfg80211_pmksa
131!Finclude/net/cfg80211.h cfg80211_rx_mlme_mgmt
132!Finclude/net/cfg80211.h cfg80211_auth_timeout
133!Finclude/net/cfg80211.h cfg80211_rx_assoc_resp
134!Finclude/net/cfg80211.h cfg80211_assoc_timeout
135!Finclude/net/cfg80211.h cfg80211_tx_mlme_mgmt
136!Finclude/net/cfg80211.h cfg80211_ibss_joined
137!Finclude/net/cfg80211.h cfg80211_connect_result
138!Finclude/net/cfg80211.h cfg80211_connect_bss
139!Finclude/net/cfg80211.h cfg80211_connect_timeout
140!Finclude/net/cfg80211.h cfg80211_roamed
141!Finclude/net/cfg80211.h cfg80211_disconnected
142!Finclude/net/cfg80211.h cfg80211_ready_on_channel
143!Finclude/net/cfg80211.h cfg80211_remain_on_channel_expired
144!Finclude/net/cfg80211.h cfg80211_new_sta
145!Finclude/net/cfg80211.h cfg80211_rx_mgmt
146!Finclude/net/cfg80211.h cfg80211_mgmt_tx_status
147!Finclude/net/cfg80211.h cfg80211_cqm_rssi_notify
148!Finclude/net/cfg80211.h cfg80211_cqm_pktloss_notify
149!Finclude/net/cfg80211.h cfg80211_michael_mic_failure
150 </chapter>
151 <chapter>
152 <title>Scanning and BSS list handling</title>
153!Pinclude/net/cfg80211.h Scanning and BSS list handling
154!Finclude/net/cfg80211.h cfg80211_ssid
155!Finclude/net/cfg80211.h cfg80211_scan_request
156!Finclude/net/cfg80211.h cfg80211_scan_done
157!Finclude/net/cfg80211.h cfg80211_bss
158!Finclude/net/cfg80211.h cfg80211_inform_bss
159!Finclude/net/cfg80211.h cfg80211_inform_bss_frame_data
160!Finclude/net/cfg80211.h cfg80211_inform_bss_data
161!Finclude/net/cfg80211.h cfg80211_unlink_bss
162!Finclude/net/cfg80211.h cfg80211_find_ie
163!Finclude/net/cfg80211.h ieee80211_bss_get_ie
164 </chapter>
165 <chapter>
166 <title>Utility functions</title>
167!Pinclude/net/cfg80211.h Utility functions
168!Finclude/net/cfg80211.h ieee80211_channel_to_frequency
169!Finclude/net/cfg80211.h ieee80211_frequency_to_channel
170!Finclude/net/cfg80211.h ieee80211_get_channel
171!Finclude/net/cfg80211.h ieee80211_get_response_rate
172!Finclude/net/cfg80211.h ieee80211_hdrlen
173!Finclude/net/cfg80211.h ieee80211_get_hdrlen_from_skb
174!Finclude/net/cfg80211.h ieee80211_radiotap_iterator
175 </chapter>
176 <chapter>
177 <title>Data path helpers</title>
178!Pinclude/net/cfg80211.h Data path helpers
179!Finclude/net/cfg80211.h ieee80211_data_to_8023
180!Finclude/net/cfg80211.h ieee80211_data_from_8023
181!Finclude/net/cfg80211.h ieee80211_amsdu_to_8023s
182!Finclude/net/cfg80211.h cfg80211_classify8021d
183 </chapter>
184 <chapter>
185 <title>Regulatory enforcement infrastructure</title>
186!Pinclude/net/cfg80211.h Regulatory enforcement infrastructure
187!Finclude/net/cfg80211.h regulatory_hint
188!Finclude/net/cfg80211.h wiphy_apply_custom_regulatory
189!Finclude/net/cfg80211.h freq_reg_info
190 </chapter>
191 <chapter>
192 <title>RFkill integration</title>
193!Pinclude/net/cfg80211.h RFkill integration
194!Finclude/net/cfg80211.h wiphy_rfkill_set_hw_state
195!Finclude/net/cfg80211.h wiphy_rfkill_start_polling
196!Finclude/net/cfg80211.h wiphy_rfkill_stop_polling
197 </chapter>
198 <chapter>
199 <title>Test mode</title>
200!Pinclude/net/cfg80211.h Test mode
201!Finclude/net/cfg80211.h cfg80211_testmode_alloc_reply_skb
202!Finclude/net/cfg80211.h cfg80211_testmode_reply
203!Finclude/net/cfg80211.h cfg80211_testmode_alloc_event_skb
204!Finclude/net/cfg80211.h cfg80211_testmode_event
205 </chapter>
206 </book>
207 <book id="mac80211-developers-guide">
208 <bookinfo>
209 <title>The mac80211 subsystem</title>
210 <abstract>
211!Pinclude/net/mac80211.h Introduction
212!Pinclude/net/mac80211.h Warning
213 </abstract>
214 </bookinfo>
215
216 <toc></toc>
217
218 <!--
219 Generally, this document shall be ordered by increasing complexity.
220 It is important to note that readers should be able to read only
221 the first few sections to get a working driver and only advanced
222 usage should require reading the full document.
223 -->
224
225 <part>
226 <title>The basic mac80211 driver interface</title>
227 <partintro>
228 <para>
229 You should read and understand the information contained
230 within this part of the book while implementing a driver.
231 In some chapters, advanced usage is noted, that may be
232 skipped at first.
233 </para>
234 <para>
235 This part of the book only covers station and monitor mode
236 functionality, additional information required to implement
237 the other modes is covered in the second part of the book.
238 </para>
239 </partintro>
240
241 <chapter id="basics">
242 <title>Basic hardware handling</title>
243 <para>TBD</para>
244 <para>
245 This chapter shall contain information on getting a hw
246 struct allocated and registered with mac80211.
247 </para>
248 <para>
249 Since it is required to allocate rates/modes before registering
250 a hw struct, this chapter shall also contain information on setting
251 up the rate/mode structs.
252 </para>
253 <para>
254 Additionally, some discussion about the callbacks and
255 the general programming model should be in here, including
256 the definition of ieee80211_ops which will be referred to
257 a lot.
258 </para>
259 <para>
260 Finally, a discussion of hardware capabilities should be done
261 with references to other parts of the book.
262 </para>
263 <!-- intentionally multiple !F lines to get proper order -->
264!Finclude/net/mac80211.h ieee80211_hw
265!Finclude/net/mac80211.h ieee80211_hw_flags
266!Finclude/net/mac80211.h SET_IEEE80211_DEV
267!Finclude/net/mac80211.h SET_IEEE80211_PERM_ADDR
268!Finclude/net/mac80211.h ieee80211_ops
269!Finclude/net/mac80211.h ieee80211_alloc_hw
270!Finclude/net/mac80211.h ieee80211_register_hw
271!Finclude/net/mac80211.h ieee80211_unregister_hw
272!Finclude/net/mac80211.h ieee80211_free_hw
273 </chapter>
274
275 <chapter id="phy-handling">
276 <title>PHY configuration</title>
277 <para>TBD</para>
278 <para>
279 This chapter should describe PHY handling including
280 start/stop callbacks and the various structures used.
281 </para>
282!Finclude/net/mac80211.h ieee80211_conf
283!Finclude/net/mac80211.h ieee80211_conf_flags
284 </chapter>
285
286 <chapter id="iface-handling">
287 <title>Virtual interfaces</title>
288 <para>TBD</para>
289 <para>
290 This chapter should describe virtual interface basics
291 that are relevant to the driver (VLANs, MGMT etc are not.)
292 It should explain the use of the add_iface/remove_iface
293 callbacks as well as the interface configuration callbacks.
294 </para>
295 <para>Things related to AP mode should be discussed there.</para>
296 <para>
297 Things related to supporting multiple interfaces should be
298 in the appropriate chapter, a BIG FAT note should be here about
299 this though and the recommendation to allow only a single
300 interface in STA mode at first!
301 </para>
302!Finclude/net/mac80211.h ieee80211_vif
303 </chapter>
304
305 <chapter id="rx-tx">
306 <title>Receive and transmit processing</title>
307 <sect1>
308 <title>what should be here</title>
309 <para>TBD</para>
310 <para>
311 This should describe the receive and transmit
312 paths in mac80211/the drivers as well as
313 transmit status handling.
314 </para>
315 </sect1>
316 <sect1>
317 <title>Frame format</title>
318!Pinclude/net/mac80211.h Frame format
319 </sect1>
320 <sect1>
321 <title>Packet alignment</title>
322!Pnet/mac80211/rx.c Packet alignment
323 </sect1>
324 <sect1>
325 <title>Calling into mac80211 from interrupts</title>
326!Pinclude/net/mac80211.h Calling mac80211 from interrupts
327 </sect1>
328 <sect1>
329 <title>functions/definitions</title>
330!Finclude/net/mac80211.h ieee80211_rx_status
331!Finclude/net/mac80211.h mac80211_rx_flags
332!Finclude/net/mac80211.h mac80211_tx_info_flags
333!Finclude/net/mac80211.h mac80211_tx_control_flags
334!Finclude/net/mac80211.h mac80211_rate_control_flags
335!Finclude/net/mac80211.h ieee80211_tx_rate
336!Finclude/net/mac80211.h ieee80211_tx_info
337!Finclude/net/mac80211.h ieee80211_tx_info_clear_status
338!Finclude/net/mac80211.h ieee80211_rx
339!Finclude/net/mac80211.h ieee80211_rx_ni
340!Finclude/net/mac80211.h ieee80211_rx_irqsafe
341!Finclude/net/mac80211.h ieee80211_tx_status
342!Finclude/net/mac80211.h ieee80211_tx_status_ni
343!Finclude/net/mac80211.h ieee80211_tx_status_irqsafe
344!Finclude/net/mac80211.h ieee80211_rts_get
345!Finclude/net/mac80211.h ieee80211_rts_duration
346!Finclude/net/mac80211.h ieee80211_ctstoself_get
347!Finclude/net/mac80211.h ieee80211_ctstoself_duration
348!Finclude/net/mac80211.h ieee80211_generic_frame_duration
349!Finclude/net/mac80211.h ieee80211_wake_queue
350!Finclude/net/mac80211.h ieee80211_stop_queue
351!Finclude/net/mac80211.h ieee80211_wake_queues
352!Finclude/net/mac80211.h ieee80211_stop_queues
353!Finclude/net/mac80211.h ieee80211_queue_stopped
354 </sect1>
355 </chapter>
356
357 <chapter id="filters">
358 <title>Frame filtering</title>
359!Pinclude/net/mac80211.h Frame filtering
360!Finclude/net/mac80211.h ieee80211_filter_flags
361 </chapter>
362
363 <chapter id="workqueue">
364 <title>The mac80211 workqueue</title>
365!Pinclude/net/mac80211.h mac80211 workqueue
366!Finclude/net/mac80211.h ieee80211_queue_work
367!Finclude/net/mac80211.h ieee80211_queue_delayed_work
368 </chapter>
369 </part>
370
371 <part id="advanced">
372 <title>Advanced driver interface</title>
373 <partintro>
374 <para>
375 Information contained within this part of the book is
376 of interest only for advanced interaction of mac80211
377 with drivers to exploit more hardware capabilities and
378 improve performance.
379 </para>
380 </partintro>
381
382 <chapter id="led-support">
383 <title>LED support</title>
384 <para>
385 Mac80211 supports various ways of blinking LEDs. Wherever possible,
386 device LEDs should be exposed as LED class devices and hooked up to
387 the appropriate trigger, which will then be triggered appropriately
388 by mac80211.
389 </para>
390!Finclude/net/mac80211.h ieee80211_get_tx_led_name
391!Finclude/net/mac80211.h ieee80211_get_rx_led_name
392!Finclude/net/mac80211.h ieee80211_get_assoc_led_name
393!Finclude/net/mac80211.h ieee80211_get_radio_led_name
394!Finclude/net/mac80211.h ieee80211_tpt_blink
395!Finclude/net/mac80211.h ieee80211_tpt_led_trigger_flags
396!Finclude/net/mac80211.h ieee80211_create_tpt_led_trigger
397 </chapter>
398
399 <chapter id="hardware-crypto-offload">
400 <title>Hardware crypto acceleration</title>
401!Pinclude/net/mac80211.h Hardware crypto acceleration
402 <!-- intentionally multiple !F lines to get proper order -->
403!Finclude/net/mac80211.h set_key_cmd
404!Finclude/net/mac80211.h ieee80211_key_conf
405!Finclude/net/mac80211.h ieee80211_key_flags
406!Finclude/net/mac80211.h ieee80211_get_tkip_p1k
407!Finclude/net/mac80211.h ieee80211_get_tkip_p1k_iv
408!Finclude/net/mac80211.h ieee80211_get_tkip_p2k
409 </chapter>
410
411 <chapter id="powersave">
412 <title>Powersave support</title>
413!Pinclude/net/mac80211.h Powersave support
414 </chapter>
415
416 <chapter id="beacon-filter">
417 <title>Beacon filter support</title>
418!Pinclude/net/mac80211.h Beacon filter support
419!Finclude/net/mac80211.h ieee80211_beacon_loss
420 </chapter>
421
422 <chapter id="qos">
423 <title>Multiple queues and QoS support</title>
424 <para>TBD</para>
425!Finclude/net/mac80211.h ieee80211_tx_queue_params
426 </chapter>
427
428 <chapter id="AP">
429 <title>Access point mode support</title>
430 <para>TBD</para>
431 <para>Some parts of the if_conf should be discussed here instead</para>
432 <para>
433 Insert notes about VLAN interfaces with hw crypto here or
434 in the hw crypto chapter.
435 </para>
436 <section id="ps-client">
437 <title>support for powersaving clients</title>
438!Pinclude/net/mac80211.h AP support for powersaving clients
439!Finclude/net/mac80211.h ieee80211_get_buffered_bc
440!Finclude/net/mac80211.h ieee80211_beacon_get
441!Finclude/net/mac80211.h ieee80211_sta_eosp
442!Finclude/net/mac80211.h ieee80211_frame_release_type
443!Finclude/net/mac80211.h ieee80211_sta_ps_transition
444!Finclude/net/mac80211.h ieee80211_sta_ps_transition_ni
445!Finclude/net/mac80211.h ieee80211_sta_set_buffered
446!Finclude/net/mac80211.h ieee80211_sta_block_awake
447 </section>
448 </chapter>
449
450 <chapter id="multi-iface">
451 <title>Supporting multiple virtual interfaces</title>
452 <para>TBD</para>
453 <para>
454 Note: WDS with identical MAC address should almost always be OK
455 </para>
456 <para>
457 Insert notes about having multiple virtual interfaces with
458 different MAC addresses here, note which configurations are
459 supported by mac80211, add notes about supporting hw crypto
460 with it.
461 </para>
462!Finclude/net/mac80211.h ieee80211_iterate_active_interfaces
463!Finclude/net/mac80211.h ieee80211_iterate_active_interfaces_atomic
464 </chapter>
465
466 <chapter id="station-handling">
467 <title>Station handling</title>
468 <para>TODO</para>
469!Finclude/net/mac80211.h ieee80211_sta
470!Finclude/net/mac80211.h sta_notify_cmd
471!Finclude/net/mac80211.h ieee80211_find_sta
472!Finclude/net/mac80211.h ieee80211_find_sta_by_ifaddr
473 </chapter>
474
475 <chapter id="hardware-scan-offload">
476 <title>Hardware scan offload</title>
477 <para>TBD</para>
478!Finclude/net/mac80211.h ieee80211_scan_completed
479 </chapter>
480
481 <chapter id="aggregation">
482 <title>Aggregation</title>
483 <sect1>
484 <title>TX A-MPDU aggregation</title>
485!Pnet/mac80211/agg-tx.c TX A-MPDU aggregation
486!Cnet/mac80211/agg-tx.c
487 </sect1>
488 <sect1>
489 <title>RX A-MPDU aggregation</title>
490!Pnet/mac80211/agg-rx.c RX A-MPDU aggregation
491!Cnet/mac80211/agg-rx.c
492!Finclude/net/mac80211.h ieee80211_ampdu_mlme_action
493 </sect1>
494 </chapter>
495
496 <chapter id="smps">
497 <title>Spatial Multiplexing Powersave (SMPS)</title>
498!Pinclude/net/mac80211.h Spatial multiplexing power save
499!Finclude/net/mac80211.h ieee80211_request_smps
500!Finclude/net/mac80211.h ieee80211_smps_mode
501 </chapter>
502 </part>
503
504 <part id="rate-control">
505 <title>Rate control interface</title>
506 <partintro>
507 <para>TBD</para>
508 <para>
509 This part of the book describes the rate control algorithm
510 interface and how it relates to mac80211 and drivers.
511 </para>
512 </partintro>
513 <chapter id="ratecontrol-api">
514 <title>Rate Control API</title>
515 <para>TBD</para>
516!Finclude/net/mac80211.h ieee80211_start_tx_ba_session
517!Finclude/net/mac80211.h ieee80211_start_tx_ba_cb_irqsafe
518!Finclude/net/mac80211.h ieee80211_stop_tx_ba_session
519!Finclude/net/mac80211.h ieee80211_stop_tx_ba_cb_irqsafe
520!Finclude/net/mac80211.h ieee80211_rate_control_changed
521!Finclude/net/mac80211.h ieee80211_tx_rate_control
522!Finclude/net/mac80211.h rate_control_send_low
523 </chapter>
524 </part>
525
526 <part id="internal">
527 <title>Internals</title>
528 <partintro>
529 <para>TBD</para>
530 <para>
531 This part of the book describes mac80211 internals.
532 </para>
533 </partintro>
534
535 <chapter id="key-handling">
536 <title>Key handling</title>
537 <sect1>
538 <title>Key handling basics</title>
539!Pnet/mac80211/key.c Key handling basics
540 </sect1>
541 <sect1>
542 <title>MORE TBD</title>
543 <para>TBD</para>
544 </sect1>
545 </chapter>
546
547 <chapter id="rx-processing">
548 <title>Receive processing</title>
549 <para>TBD</para>
550 </chapter>
551
552 <chapter id="tx-processing">
553 <title>Transmit processing</title>
554 <para>TBD</para>
555 </chapter>
556
557 <chapter id="sta-info">
558 <title>Station info handling</title>
559 <sect1>
560 <title>Programming information</title>
561!Fnet/mac80211/sta_info.h sta_info
562!Fnet/mac80211/sta_info.h ieee80211_sta_info_flags
563 </sect1>
564 <sect1>
565 <title>STA information lifetime rules</title>
566!Pnet/mac80211/sta_info.c STA information lifetime rules
567 </sect1>
568 </chapter>
569
570 <chapter id="aggregation-internals">
571 <title>Aggregation</title>
572!Fnet/mac80211/sta_info.h sta_ampdu_mlme
573!Fnet/mac80211/sta_info.h tid_ampdu_tx
574!Fnet/mac80211/sta_info.h tid_ampdu_rx
575 </chapter>
576
577 <chapter id="synchronisation">
578 <title>Synchronisation</title>
579 <para>TBD</para>
580 <para>Locking, lots of RCU</para>
581 </chapter>
582 </part>
583 </book>
584</set>
Documentation/DocBook/Makefile+10−2
@@ -6,13 +6,13 @@ · 5 unmodified lines
6# To add a new book the only step required is to add the book to the6# To add a new book the only step required is to add the book to the
7# list of DOCBOOKS.7# list of DOCBOOKS.
8 8
9DOCBOOKS := z8530book.xml device-drivers.xml \9DOCBOOKS := z8530book.xml \
10 kernel-hacking.xml kernel-locking.xml deviceiobook.xml \10 kernel-hacking.xml kernel-locking.xml deviceiobook.xml \
11 writing_usb_driver.xml networking.xml \11 writing_usb_driver.xml networking.xml \
12 kernel-api.xml filesystems.xml lsm.xml usb.xml kgdb.xml \12 kernel-api.xml filesystems.xml lsm.xml usb.xml kgdb.xml \
13 gadget.xml libata.xml mtdnand.xml librs.xml rapidio.xml \13 gadget.xml libata.xml mtdnand.xml librs.xml rapidio.xml \
14 genericirq.xml s390-drivers.xml uio-howto.xml scsi.xml \14 genericirq.xml s390-drivers.xml uio-howto.xml scsi.xml \
15 80211.xml debugobjects.xml sh.xml regulator.xml \15 debugobjects.xml sh.xml regulator.xml \
16 alsa-driver-api.xml writing-an-alsa-driver.xml \16 alsa-driver-api.xml writing-an-alsa-driver.xml \
17 tracepoint.xml w1.xml \17 tracepoint.xml w1.xml \
18 writing_musb_glue_layer.xml crypto-API.xml iio.xml18 writing_musb_glue_layer.xml crypto-API.xml iio.xml
@@ -22,9 +22,15 @@ ifeq ($(DOCBOOKS),) · 3 unmodified lines
22# Skip DocBook build if the user explicitly requested no DOCBOOKS.22# Skip DocBook build if the user explicitly requested no DOCBOOKS.
23.DEFAULT:23.DEFAULT:
24 @echo " SKIP DocBook $@ target (DOCBOOKS=\"\" specified)."24 @echo " SKIP DocBook $@ target (DOCBOOKS=\"\" specified)."
25else
26ifneq ($(SPHINXDIRS),)
25 27
28# Skip DocBook build if the user explicitly requested a sphinx dir
29.DEFAULT:
30 @echo " SKIP DocBook $@ target (SPHINXDIRS specified)."
26else31else
27 32
33
28###34###
29# The build process is as follows (targets):35# The build process is as follows (targets):
30# (xmldocs) [by docproc]36# (xmldocs) [by docproc]
@@ -66,6 +72,7 @@ installmandocs: mandocs · 35 unmodified lines
66 72
67# no-op for the DocBook toolchain73# no-op for the DocBook toolchain
68epubdocs:74epubdocs:
75latexdocs:
69 76
70###77###
71#External programs used78#External programs used
@@ -221,6 +228,7 @@ silent_gen_xml = : · 149 unmodified lines
221 echo "</programlisting>") > $@228 echo "</programlisting>") > $@
222 229
223endif # DOCBOOKS=""230endif # DOCBOOKS=""
231endif # SPHINDIR=...
224 232
225###233###
226# Help targets as used by the top-level makefile234# Help targets as used by the top-level makefile
Documentation/DocBook/crypto-API.tmpl+26−12
@@ -797,7 +797,8 @@ kernel crypto API | Caller · 796 unmodified lines
797 include/linux/crypto.h and their definition can be seen below.797 include/linux/crypto.h and their definition can be seen below.
798 The former function registers a single transformation, while798 The former function registers a single transformation, while
799 the latter works on an array of transformation descriptions.799 the latter works on an array of transformation descriptions.
800 The latter is useful when registering transformations in bulk.800 The latter is useful when registering transformations in bulk,
801 for example when a driver implements multiple transformations.
801 </para>802 </para>
802 803
803 <programlisting>804 <programlisting>
@@ -822,18 +823,31 @@ kernel crypto API | Caller · 18 unmodified lines
822 </para>823 </para>
823 824
824 <para>825 <para>
825 The bulk registration / unregistration functions require826 The bulk registration/unregistration functions
826 that struct crypto_alg is an array of count size. These827 register/unregister each transformation in the given array of
827 functions simply loop over that array and register /828 length count. They handle errors as follows:
828 unregister each individual algorithm. If an error occurs,
829 the loop is terminated at the offending algorithm definition.
830 That means, the algorithms prior to the offending algorithm
831 are successfully registered. Note, the caller has no way of
832 knowing which cipher implementations have successfully
833 registered. If this is important to know, the caller should
834 loop through the different implementations using the single
835 instance *_alg functions for each individual implementation.
836 </para>829 </para>
830 <itemizedlist>
831 <listitem>
832 <para>
833 crypto_register_algs() succeeds if and only if it
834 successfully registers all the given transformations. If an
835 error occurs partway through, then it rolls back successful
836 registrations before returning the error code. Note that if
837 a driver needs to handle registration errors for individual
838 transformations, then it will need to use the non-bulk
839 function crypto_register_alg() instead.
840 </para>
841 </listitem>
842 <listitem>
843 <para>
844 crypto_unregister_algs() tries to unregister all the given
845 transformations, continuing on error. It logs errors and
846 always returns zero.
847 </para>
848 </listitem>
849 </itemizedlist>
850
837 </sect1>851 </sect1>
838 852
839 <sect1><title>Single-Block Symmetric Ciphers [CIPHER]</title>853 <sect1><title>Single-Block Symmetric Ciphers [CIPHER]</title>
Documentation/DocBook/device-drivers.tmpl+0−521
@@ -1,521 +0,0 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
3 "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" []>
4
5<book id="LinuxDriversAPI">
6 <bookinfo>
7 <title>Linux Device Drivers</title>
8
9 <legalnotice>
10 <para>
11 This documentation is free software; you can redistribute
12 it and/or modify it under the terms of the GNU General Public
13 License as published by the Free Software Foundation; either
14 version 2 of the License, or (at your option) any later
15 version.
16 </para>
17
18 <para>
19 This program is distributed in the hope that it will be
20 useful, but WITHOUT ANY WARRANTY; without even the implied
21 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
22 See the GNU General Public License for more details.
23 </para>
24
25 <para>
26 You should have received a copy of the GNU General Public
27 License along with this program; if not, write to the Free
28 Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
29 MA 02111-1307 USA
30 </para>
31
32 <para>
33 For more details see the file COPYING in the source
34 distribution of Linux.
35 </para>
36 </legalnotice>
37 </bookinfo>
38
39<toc></toc>
40
41 <chapter id="Basics">
42 <title>Driver Basics</title>
43 <sect1><title>Driver Entry and Exit points</title>
44!Iinclude/linux/init.h
45 </sect1>
46
47 <sect1><title>Atomic and pointer manipulation</title>
48!Iarch/x86/include/asm/atomic.h
49 </sect1>
50
51 <sect1><title>Delaying, scheduling, and timer routines</title>
52!Iinclude/linux/sched.h
53!Ekernel/sched/core.c
54!Ikernel/sched/cpupri.c
55!Ikernel/sched/fair.c
56!Iinclude/linux/completion.h
57!Ekernel/time/timer.c
58 </sect1>
59 <sect1><title>Wait queues and Wake events</title>
60!Iinclude/linux/wait.h
61!Ekernel/sched/wait.c
62 </sect1>
63 <sect1><title>High-resolution timers</title>
64!Iinclude/linux/ktime.h
65!Iinclude/linux/hrtimer.h
66!Ekernel/time/hrtimer.c
67 </sect1>
68 <sect1><title>Workqueues and Kevents</title>
69!Iinclude/linux/workqueue.h
70!Ekernel/workqueue.c
71 </sect1>
72 <sect1><title>Internal Functions</title>
73!Ikernel/exit.c
74!Ikernel/signal.c
75!Iinclude/linux/kthread.h
76!Ekernel/kthread.c
77 </sect1>
78
79 <sect1><title>Kernel objects manipulation</title>
80<!--
81X!Iinclude/linux/kobject.h
82-->
83!Elib/kobject.c
84 </sect1>
85
86 <sect1><title>Kernel utility functions</title>
87!Iinclude/linux/kernel.h
88!Ekernel/printk/printk.c
89!Ekernel/panic.c
90!Ekernel/sys.c
91!Ekernel/rcu/srcu.c
92!Ekernel/rcu/tree.c
93!Ekernel/rcu/tree_plugin.h
94!Ekernel/rcu/update.c
95 </sect1>
96
97 <sect1><title>Device Resource Management</title>
98!Edrivers/base/devres.c
99 </sect1>
100
101 </chapter>
102
103 <chapter id="devdrivers">
104 <title>Device drivers infrastructure</title>
105 <sect1><title>The Basic Device Driver-Model Structures </title>
106!Iinclude/linux/device.h
107 </sect1>
108 <sect1><title>Device Drivers Base</title>
109!Idrivers/base/init.c
110!Edrivers/base/driver.c
111!Edrivers/base/core.c
112!Edrivers/base/syscore.c
113!Edrivers/base/class.c
114!Idrivers/base/node.c
115!Edrivers/base/firmware_class.c
116!Edrivers/base/transport_class.c
117<!-- Cannot be included, because
118 attribute_container_add_class_device_adapter
119 and attribute_container_classdev_to_container
120 exceed allowed 44 characters maximum
121X!Edrivers/base/attribute_container.c
122-->
123!Edrivers/base/dd.c
124<!--
125X!Edrivers/base/interface.c
126-->
127!Iinclude/linux/platform_device.h
128!Edrivers/base/platform.c
129!Edrivers/base/bus.c
130 </sect1>
131 <sect1>
132 <title>Buffer Sharing and Synchronization</title>
133 <para>
134 The dma-buf subsystem provides the framework for sharing buffers
135 for hardware (DMA) access across multiple device drivers and
136 subsystems, and for synchronizing asynchronous hardware access.
137 </para>
138 <para>
139 This is used, for example, by drm "prime" multi-GPU support, but
140 is of course not limited to GPU use cases.
141 </para>
142 <para>
143 The three main components of this are: (1) dma-buf, representing
144 a sg_table and exposed to userspace as a file descriptor to allow
145 passing between devices, (2) fence, which provides a mechanism
146 to signal when one device as finished access, and (3) reservation,
147 which manages the shared or exclusive fence(s) associated with
148 the buffer.
149 </para>
150 <sect2><title>dma-buf</title>
151!Edrivers/dma-buf/dma-buf.c
152!Iinclude/linux/dma-buf.h
153 </sect2>
154 <sect2><title>reservation</title>
155!Pdrivers/dma-buf/reservation.c Reservation Object Overview
156!Edrivers/dma-buf/reservation.c
157!Iinclude/linux/reservation.h
158 </sect2>
159 <sect2><title>fence</title>
160!Edrivers/dma-buf/fence.c
161!Iinclude/linux/fence.h
162!Edrivers/dma-buf/seqno-fence.c
163!Iinclude/linux/seqno-fence.h
164!Edrivers/dma-buf/fence-array.c
165!Iinclude/linux/fence-array.h
166!Edrivers/dma-buf/reservation.c
167!Iinclude/linux/reservation.h
168!Edrivers/dma-buf/sync_file.c
169!Iinclude/linux/sync_file.h
170 </sect2>
171 </sect1>
172 <sect1><title>Device Drivers DMA Management</title>
173!Edrivers/base/dma-coherent.c
174!Edrivers/base/dma-mapping.c
175 </sect1>
176 <sect1><title>Device Drivers Power Management</title>
177!Edrivers/base/power/main.c
178 </sect1>
179 <sect1><title>Device Drivers ACPI Support</title>
180<!-- Internal functions only
181X!Edrivers/acpi/sleep/main.c
182X!Edrivers/acpi/sleep/wakeup.c
183X!Edrivers/acpi/motherboard.c
184X!Edrivers/acpi/bus.c
185-->
186!Edrivers/acpi/scan.c
187!Idrivers/acpi/scan.c
188<!-- No correct structured comments
189X!Edrivers/acpi/pci_bind.c
190-->
191 </sect1>
192 <sect1><title>Device drivers PnP support</title>
193!Idrivers/pnp/core.c
194<!-- No correct structured comments
195X!Edrivers/pnp/system.c
196 -->
197!Edrivers/pnp/card.c
198!Idrivers/pnp/driver.c
199!Edrivers/pnp/manager.c
200!Edrivers/pnp/support.c
201 </sect1>
202 <sect1><title>Userspace IO devices</title>
203!Edrivers/uio/uio.c
204!Iinclude/linux/uio_driver.h
205 </sect1>
206 </chapter>
207
208 <chapter id="parportdev">
209 <title>Parallel Port Devices</title>
210!Iinclude/linux/parport.h
211!Edrivers/parport/ieee1284.c
212!Edrivers/parport/share.c
213!Idrivers/parport/daisy.c
214 </chapter>
215
216 <chapter id="message_devices">
217 <title>Message-based devices</title>
218 <sect1><title>Fusion message devices</title>
219!Edrivers/message/fusion/mptbase.c
220!Idrivers/message/fusion/mptbase.c
221!Edrivers/message/fusion/mptscsih.c
222!Idrivers/message/fusion/mptscsih.c
223!Idrivers/message/fusion/mptctl.c
224!Idrivers/message/fusion/mptspi.c
225!Idrivers/message/fusion/mptfc.c
226!Idrivers/message/fusion/mptlan.c
227 </sect1>
228 </chapter>
229
230 <chapter id="snddev">
231 <title>Sound Devices</title>
232!Iinclude/sound/core.h
233!Esound/sound_core.c
234!Iinclude/sound/pcm.h
235!Esound/core/pcm.c
236!Esound/core/device.c
237!Esound/core/info.c
238!Esound/core/rawmidi.c
239!Esound/core/sound.c
240!Esound/core/memory.c
241!Esound/core/pcm_memory.c
242!Esound/core/init.c
243!Esound/core/isadma.c
244!Esound/core/control.c
245!Esound/core/pcm_lib.c
246!Esound/core/hwdep.c
247!Esound/core/pcm_native.c
248!Esound/core/memalloc.c
249<!-- FIXME: Removed for now since no structured comments in source
250X!Isound/sound_firmware.c
251-->
252 </chapter>
253
254
255 <chapter id="uart16x50">
256 <title>16x50 UART Driver</title>
257!Edrivers/tty/serial/serial_core.c
258!Edrivers/tty/serial/8250/8250_core.c
259 </chapter>
260
261 <chapter id="fbdev">
262 <title>Frame Buffer Library</title>
263
264 <para>
265 The frame buffer drivers depend heavily on four data structures.
266 These structures are declared in include/linux/fb.h. They are
267 fb_info, fb_var_screeninfo, fb_fix_screeninfo and fb_monospecs.
268 The last three can be made available to and from userland.
269 </para>
270
271 <para>
272 fb_info defines the current state of a particular video card.
273 Inside fb_info, there exists a fb_ops structure which is a
274 collection of needed functions to make fbdev and fbcon work.
275 fb_info is only visible to the kernel.
276 </para>
277
278 <para>
279 fb_var_screeninfo is used to describe the features of a video card
280 that are user defined. With fb_var_screeninfo, things such as
281 depth and the resolution may be defined.
282 </para>
283
284 <para>
285 The next structure is fb_fix_screeninfo. This defines the
286 properties of a card that are created when a mode is set and can't
287 be changed otherwise. A good example of this is the start of the
288 frame buffer memory. This "locks" the address of the frame buffer
289 memory, so that it cannot be changed or moved.
290 </para>
291
292 <para>
293 The last structure is fb_monospecs. In the old API, there was
294 little importance for fb_monospecs. This allowed for forbidden things
295 such as setting a mode of 800x600 on a fix frequency monitor. With
296 the new API, fb_monospecs prevents such things, and if used
297 correctly, can prevent a monitor from being cooked. fb_monospecs
298 will not be useful until kernels 2.5.x.
299 </para>
300
301 <sect1><title>Frame Buffer Memory</title>
302!Edrivers/video/fbdev/core/fbmem.c
303 </sect1>
304<!--
305 <sect1><title>Frame Buffer Console</title>
306X!Edrivers/video/console/fbcon.c
307 </sect1>
308-->
309 <sect1><title>Frame Buffer Colormap</title>
310!Edrivers/video/fbdev/core/fbcmap.c
311 </sect1>
312<!-- FIXME:
313 drivers/video/fbgen.c has no docs, which stuffs up the sgml. Comment
314 out until somebody adds docs. KAO
315 <sect1><title>Frame Buffer Generic Functions</title>
316X!Idrivers/video/fbgen.c
317 </sect1>
318KAO -->
319 <sect1><title>Frame Buffer Video Mode Database</title>
320!Idrivers/video/fbdev/core/modedb.c
321!Edrivers/video/fbdev/core/modedb.c
322 </sect1>
323 <sect1><title>Frame Buffer Macintosh Video Mode Database</title>
324!Edrivers/video/fbdev/macmodes.c
325 </sect1>
326 <sect1><title>Frame Buffer Fonts</title>
327 <para>
328 Refer to the file lib/fonts/fonts.c for more information.
329 </para>
330<!-- FIXME: Removed for now since no structured comments in source
331X!Ilib/fonts/fonts.c
332-->
333 </sect1>
334 </chapter>
335
336 <chapter id="input_subsystem">
337 <title>Input Subsystem</title>
338 <sect1><title>Input core</title>
339!Iinclude/linux/input.h
340!Edrivers/input/input.c
341!Edrivers/input/ff-core.c
342!Edrivers/input/ff-memless.c
343 </sect1>
344 <sect1><title>Multitouch Library</title>
345!Iinclude/linux/input/mt.h
346!Edrivers/input/input-mt.c
347 </sect1>
348 <sect1><title>Polled input devices</title>
349!Iinclude/linux/input-polldev.h
350!Edrivers/input/input-polldev.c
351 </sect1>
352 <sect1><title>Matrix keyboards/keypads</title>
353!Iinclude/linux/input/matrix_keypad.h
354 </sect1>
355 <sect1><title>Sparse keymap support</title>
356!Iinclude/linux/input/sparse-keymap.h
357!Edrivers/input/sparse-keymap.c
358 </sect1>
359 </chapter>
360
361 <chapter id="spi">
362 <title>Serial Peripheral Interface (SPI)</title>
363 <para>
364 SPI is the "Serial Peripheral Interface", widely used with
365 embedded systems because it is a simple and efficient
366 interface: basically a multiplexed shift register.
367 Its three signal wires hold a clock (SCK, often in the range
368 of 1-20 MHz), a "Master Out, Slave In" (MOSI) data line, and
369 a "Master In, Slave Out" (MISO) data line.
370 SPI is a full duplex protocol; for each bit shifted out the
371 MOSI line (one per clock) another is shifted in on the MISO line.
372 Those bits are assembled into words of various sizes on the
373 way to and from system memory.
374 An additional chipselect line is usually active-low (nCS);
375 four signals are normally used for each peripheral, plus
376 sometimes an interrupt.
377 </para>
378 <para>
379 The SPI bus facilities listed here provide a generalized
380 interface to declare SPI busses and devices, manage them
381 according to the standard Linux driver model, and perform
382 input/output operations.
383 At this time, only "master" side interfaces are supported,
384 where Linux talks to SPI peripherals and does not implement
385 such a peripheral itself.
386 (Interfaces to support implementing SPI slaves would
387 necessarily look different.)
388 </para>
389 <para>
390 The programming interface is structured around two kinds of driver,
391 and two kinds of device.
392 A "Controller Driver" abstracts the controller hardware, which may
393 be as simple as a set of GPIO pins or as complex as a pair of FIFOs
394 connected to dual DMA engines on the other side of the SPI shift
395 register (maximizing throughput). Such drivers bridge between
396 whatever bus they sit on (often the platform bus) and SPI, and
397 expose the SPI side of their device as a
398 <structname>struct spi_master</structname>.
399 SPI devices are children of that master, represented as a
400 <structname>struct spi_device</structname> and manufactured from
401 <structname>struct spi_board_info</structname> descriptors which
402 are usually provided by board-specific initialization code.
403 A <structname>struct spi_driver</structname> is called a
404 "Protocol Driver", and is bound to a spi_device using normal
405 driver model calls.
406 </para>
407 <para>
408 The I/O model is a set of queued messages. Protocol drivers
409 submit one or more <structname>struct spi_message</structname>
410 objects, which are processed and completed asynchronously.
411 (There are synchronous wrappers, however.) Messages are
412 built from one or more <structname>struct spi_transfer</structname>
413 objects, each of which wraps a full duplex SPI transfer.
414 A variety of protocol tweaking options are needed, because
415 different chips adopt very different policies for how they
416 use the bits transferred with SPI.
417 </para>
418!Iinclude/linux/spi/spi.h
419!Fdrivers/spi/spi.c spi_register_board_info
420!Edrivers/spi/spi.c
421 </chapter>
422
423 <chapter id="i2c">
424 <title>I<superscript>2</superscript>C and SMBus Subsystem</title>
425
426 <para>
427 I<superscript>2</superscript>C (or without fancy typography, "I2C")
428 is an acronym for the "Inter-IC" bus, a simple bus protocol which is
429 widely used where low data rate communications suffice.
430 Since it's also a licensed trademark, some vendors use another
431 name (such as "Two-Wire Interface", TWI) for the same bus.
432 I2C only needs two signals (SCL for clock, SDA for data), conserving
433 board real estate and minimizing signal quality issues.
434 Most I2C devices use seven bit addresses, and bus speeds of up
435 to 400 kHz; there's a high speed extension (3.4 MHz) that's not yet
436 found wide use.
437 I2C is a multi-master bus; open drain signaling is used to
438 arbitrate between masters, as well as to handshake and to
439 synchronize clocks from slower clients.
440 </para>
441
442 <para>
443 The Linux I2C programming interfaces support only the master
444 side of bus interactions, not the slave side.
445 The programming interface is structured around two kinds of driver,
446 and two kinds of device.
447 An I2C "Adapter Driver" abstracts the controller hardware; it binds
448 to a physical device (perhaps a PCI device or platform_device) and
449 exposes a <structname>struct i2c_adapter</structname> representing
450 each I2C bus segment it manages.
451 On each I2C bus segment will be I2C devices represented by a
452 <structname>struct i2c_client</structname>. Those devices will
453 be bound to a <structname>struct i2c_driver</structname>,
454 which should follow the standard Linux driver model.
455 (At this writing, a legacy model is more widely used.)
456 There are functions to perform various I2C protocol operations; at
457 this writing all such functions are usable only from task context.
458 </para>
459
460 <para>
461 The System Management Bus (SMBus) is a sibling protocol. Most SMBus
462 systems are also I2C conformant. The electrical constraints are
463 tighter for SMBus, and it standardizes particular protocol messages
464 and idioms. Controllers that support I2C can also support most
465 SMBus operations, but SMBus controllers don't support all the protocol
466 options that an I2C controller will.
467 There are functions to perform various SMBus protocol operations,
468 either using I2C primitives or by issuing SMBus commands to
469 i2c_adapter devices which don't support those I2C operations.
470 </para>
471
472!Iinclude/linux/i2c.h
473!Fdrivers/i2c/i2c-boardinfo.c i2c_register_board_info
474!Edrivers/i2c/i2c-core.c
475 </chapter>
476
477 <chapter id="hsi">
478 <title>High Speed Synchronous Serial Interface (HSI)</title>
479
480 <para>
481 High Speed Synchronous Serial Interface (HSI) is a
482 serial interface mainly used for connecting application
483 engines (APE) with cellular modem engines (CMT) in cellular
484 handsets.
485
486 HSI provides multiplexing for up to 16 logical channels,
487 low-latency and full duplex communication.
488 </para>
489
490!Iinclude/linux/hsi/hsi.h
491!Edrivers/hsi/hsi_core.c
492 </chapter>
493
494 <chapter id="pwm">
495 <title>Pulse-Width Modulation (PWM)</title>
496 <para>
497 Pulse-width modulation is a modulation technique primarily used to
498 control power supplied to electrical devices.
499 </para>
500 <para>
501 The PWM framework provides an abstraction for providers and consumers
502 of PWM signals. A controller that provides one or more PWM signals is
503 registered as <structname>struct pwm_chip</structname>. Providers are
504 expected to embed this structure in a driver-specific structure. This
505 structure contains fields that describe a particular chip.
506 </para>
507 <para>
508 A chip exposes one or more PWM signal sources, each of which exposed
509 as a <structname>struct pwm_device</structname>. Operations can be
510 performed on PWM devices to control the period, duty cycle, polarity
511 and active state of the signal.
512 </para>
513 <para>
514 Note that PWM devices are exclusive resources: they can always only be
515 used by one consumer at a time.
516 </para>
517!Iinclude/linux/pwm.h
518!Edrivers/pwm/core.c
519 </chapter>
520
521</book>
Documentation/DocBook/kernel-hacking.tmpl+1−1
@@ -483,7 +483,7 @@ printk(KERN_INFO "my ip: %pI4\n", &amp;ipaddress); · 482 unmodified lines
483 <function>get_user()</function>483 <function>get_user()</function>
484 /484 /
485 <function>put_user()</function>485 <function>put_user()</function>
486 <filename class="headerfile">include/asm/uaccess.h</filename>486 <filename class="headerfile">include/linux/uaccess.h</filename>
487 </title> 487 </title>
488 488
489 <para>489 <para>
Documentation/HOWTO+98−50
@@ -1,5 +1,5 @@
1HOWTO do Linux kernel development1HOWTO do Linux kernel development
2---------------------------------2=================================
3 3
4This is the be-all, end-all document on this topic. It contains4This is the be-all, end-all document on this topic. It contains
5instructions on how to become a Linux kernel developer and how to learn5instructions on how to become a Linux kernel developer and how to learn
@@ -28,6 +28,7 @@ kernel development. Assembly (any architecture) is not required unless · 22 unmodified lines
28you plan to do low-level development for that architecture. Though they28you plan to do low-level development for that architecture. Though they
29are not a good substitute for a solid C education and/or years of29are not a good substitute for a solid C education and/or years of
30experience, the following books are good for, if anything, reference:30experience, the following books are good for, if anything, reference:
31
31 - "The C Programming Language" by Kernighan and Ritchie [Prentice Hall]32 - "The C Programming Language" by Kernighan and Ritchie [Prentice Hall]
32 - "Practical C Programming" by Steve Oualline [O'Reilly]33 - "Practical C Programming" by Steve Oualline [O'Reilly]
33 - "C: A Reference Manual" by Harbison and Steele [Prentice Hall]34 - "C: A Reference Manual" by Harbison and Steele [Prentice Hall]
@@ -64,7 +65,8 @@ people on the mailing lists are not lawyers, and you should not rely on · 30 unmodified lines
64their statements on legal matters.65their statements on legal matters.
65 66
66For common questions and answers about the GPL, please see:67For common questions and answers about the GPL, please see:
67 http://www.gnu.org/licenses/gpl-faq.html68
69 https://www.gnu.org/licenses/gpl-faq.html
68 70
69 71
70Documentation72Documentation
@@ -82,96 +84,118 @@ linux-api@vger.kernel.org. · 11 unmodified lines
82 84
83Here is a list of files that are in the kernel source tree that are85Here is a list of files that are in the kernel source tree that are
84required reading:86required reading:
87
85 README88 README
86 This file gives a short background on the Linux kernel and describes89 This file gives a short background on the Linux kernel and describes
87 what is necessary to do to configure and build the kernel. People90 what is necessary to do to configure and build the kernel. People
88 who are new to the kernel should start here.91 who are new to the kernel should start here.
89 92
90 Documentation/Changes93 :ref:`Documentation/Changes <changes>`
91 This file gives a list of the minimum levels of various software94 This file gives a list of the minimum levels of various software
92 packages that are necessary to build and run the kernel95 packages that are necessary to build and run the kernel
93 successfully.96 successfully.
94 97
95 Documentation/CodingStyle98 :ref:`Documentation/CodingStyle <codingstyle>`
96 This describes the Linux kernel coding style, and some of the99 This describes the Linux kernel coding style, and some of the
97 rationale behind it. All new code is expected to follow the100 rationale behind it. All new code is expected to follow the
98 guidelines in this document. Most maintainers will only accept101 guidelines in this document. Most maintainers will only accept
99 patches if these rules are followed, and many people will only102 patches if these rules are followed, and many people will only
100 review code if it is in the proper style.103 review code if it is in the proper style.
101 104
102 Documentation/SubmittingPatches105 :ref:`Documentation/SubmittingPatches <submittingpatches>` and :ref:`Documentation/SubmittingDrivers <submittingdrivers>`
103 Documentation/SubmittingDrivers
104 These files describe in explicit detail how to successfully create106 These files describe in explicit detail how to successfully create
105 and send a patch, including (but not limited to):107 and send a patch, including (but not limited to):
108
106 - Email contents109 - Email contents
107 - Email format110 - Email format
108 - Who to send it to111 - Who to send it to
112
109 Following these rules will not guarantee success (as all patches are113 Following these rules will not guarantee success (as all patches are
110 subject to scrutiny for content and style), but not following them114 subject to scrutiny for content and style), but not following them
111 will almost always prevent it.115 will almost always prevent it.
112 116
113 Other excellent descriptions of how to create patches properly are:117 Other excellent descriptions of how to create patches properly are:
118
114 "The Perfect Patch"119 "The Perfect Patch"
115 http://www.ozlabs.org/~akpm/stuff/tpp.txt120 https://www.ozlabs.org/~akpm/stuff/tpp.txt
121
116 "Linux kernel patch submission format"122 "Linux kernel patch submission format"
117 http://linux.yyz.us/patch-format.html123 http://linux.yyz.us/patch-format.html
118 124
119 Documentation/stable_api_nonsense.txt125 :ref:`Documentation/stable_api_nonsense.txt <stable_api_nonsense>`
120 This file describes the rationale behind the conscious decision to126 This file describes the rationale behind the conscious decision to
121 not have a stable API within the kernel, including things like:127 not have a stable API within the kernel, including things like:
128
122 - Subsystem shim-layers (for compatibility?)129 - Subsystem shim-layers (for compatibility?)
123 - Driver portability between Operating Systems.130 - Driver portability between Operating Systems.
124 - Mitigating rapid change within the kernel source tree (or131 - Mitigating rapid change within the kernel source tree (or
125 preventing rapid change)132 preventing rapid change)
133
126 This document is crucial for understanding the Linux development134 This document is crucial for understanding the Linux development
127 philosophy and is very important for people moving to Linux from135 philosophy and is very important for people moving to Linux from
128 development on other Operating Systems.136 development on other Operating Systems.
129 137
130 Documentation/SecurityBugs138 :ref:`Documentation/SecurityBugs <securitybugs>`
131 If you feel you have found a security problem in the Linux kernel,139 If you feel you have found a security problem in the Linux kernel,
132 please follow the steps in this document to help notify the kernel140 please follow the steps in this document to help notify the kernel
133 developers, and help solve the issue.141 developers, and help solve the issue.
134 142
135 Documentation/ManagementStyle143 :ref:`Documentation/ManagementStyle <managementstyle>`
136 This document describes how Linux kernel maintainers operate and the144 This document describes how Linux kernel maintainers operate and the
137 shared ethos behind their methodologies. This is important reading145 shared ethos behind their methodologies. This is important reading
138 for anyone new to kernel development (or anyone simply curious about146 for anyone new to kernel development (or anyone simply curious about
139 it), as it resolves a lot of common misconceptions and confusion147 it), as it resolves a lot of common misconceptions and confusion
140 about the unique behavior of kernel maintainers.148 about the unique behavior of kernel maintainers.
141 149
142 Documentation/stable_kernel_rules.txt150 :ref:`Documentation/stable_kernel_rules.txt <stable_kernel_rules>`
143 This file describes the rules on how the stable kernel releases151 This file describes the rules on how the stable kernel releases
144 happen, and what to do if you want to get a change into one of these152 happen, and what to do if you want to get a change into one of these
145 releases.153 releases.
146 154
147 Documentation/kernel-docs.txt155 :ref:`Documentation/kernel-docs.txt <kernel_docs>`
148 A list of external documentation that pertains to kernel156 A list of external documentation that pertains to kernel
149 development. Please consult this list if you do not find what you157 development. Please consult this list if you do not find what you
150 are looking for within the in-kernel documentation.158 are looking for within the in-kernel documentation.
151 159
152 Documentation/applying-patches.txt160 :ref:`Documentation/applying-patches.txt <applying_patches>`
153 A good introduction describing exactly what a patch is and how to161 A good introduction describing exactly what a patch is and how to
154 apply it to the different development branches of the kernel.162 apply it to the different development branches of the kernel.
155 163
156The kernel also has a large number of documents that can be164The kernel also has a large number of documents that can be
157automatically generated from the source code itself. This includes a165automatically generated from the source code itself or from
166ReStructuredText markups (ReST), like this one. This includes a
158full description of the in-kernel API, and rules on how to handle167full description of the in-kernel API, and rules on how to handle
159locking properly. The documents will be created in the168locking properly.
160Documentation/DocBook/ directory and can be generated as PDF,169
161Postscript, HTML, and man pages by running:170All such documents can be generated as PDF or HTML by running::
171
162 make pdfdocs172 make pdfdocs
163 make psdocs
164 make htmldocs173 make htmldocs
165 make mandocs174
166respectively from the main kernel source directory.175respectively from the main kernel source directory.
167 176
177The documents that uses ReST markup will be generated at Documentation/output.
178They can also be generated on LaTeX and ePub formats with::
179
180 make latexdocs
181 make epubdocs
182
183Currently, there are some documents written on DocBook that are in
184the process of conversion to ReST. Such documents will be created in the
185Documentation/DocBook/ directory and can be generated also as
186Postscript or man pages by running::
187
188 make psdocs
189 make mandocs
168 190
169Becoming A Kernel Developer191Becoming A Kernel Developer
170---------------------------192---------------------------
171 193
172If you do not know anything about Linux kernel development, you should194If you do not know anything about Linux kernel development, you should
173look at the Linux KernelNewbies project:195look at the Linux KernelNewbies project:
174 http://kernelnewbies.org196
197 https://kernelnewbies.org
198
175It consists of a helpful mailing list where you can ask almost any type199It consists of a helpful mailing list where you can ask almost any type
176of basic kernel development question (make sure to search the archives200of basic kernel development question (make sure to search the archives
177first, before asking something that has already been answered in the201first, before asking something that has already been answered in the
@@ -187,7 +211,9 @@ apply a patch. · 9 unmodified lines
187If you do not know where you want to start, but you want to look for211If you do not know where you want to start, but you want to look for
188some task to start doing to join into the kernel development community,212some task to start doing to join into the kernel development community,
189go to the Linux Kernel Janitor's project:213go to the Linux Kernel Janitor's project:
190 http://kernelnewbies.org/KernelJanitors214
215 https://kernelnewbies.org/KernelJanitors
216
191It is a great place to start. It describes a list of relatively simple217It is a great place to start. It describes a list of relatively simple
192problems that need to be cleaned up and fixed within the Linux kernel218problems that need to be cleaned up and fixed within the Linux kernel
193source tree. Working with the developers in charge of this project, you219source tree. Working with the developers in charge of this project, you
@@ -199,7 +225,8 @@ If you already have a chunk of code that you want to put into the kernel · 5 unmodified lines
199tree, but need some help getting it in the proper form, the225tree, but need some help getting it in the proper form, the
200kernel-mentors project was created to help you out with this. It is a226kernel-mentors project was created to help you out with this. It is a
201mailing list, and can be found at:227mailing list, and can be found at:
202 http://selenic.com/mailman/listinfo/kernel-mentors228
229 https://selenic.com/mailman/listinfo/kernel-mentors
203 230
204Before making any actual modifications to the Linux kernel code, it is231Before making any actual modifications to the Linux kernel code, it is
205imperative to understand how the code in question works. For this232imperative to understand how the code in question works. For this
@@ -209,6 +236,7 @@ tools. One such tool that is particularly recommended is the Linux · 3 unmodified lines
209Cross-Reference project, which is able to present source code in a236Cross-Reference project, which is able to present source code in a
210self-referential, indexed webpage format. An excellent up-to-date237self-referential, indexed webpage format. An excellent up-to-date
211repository of the kernel code may be found at:238repository of the kernel code may be found at:
239
212 http://lxr.free-electrons.com/240 http://lxr.free-electrons.com/
213 241
214 242
@@ -218,6 +246,7 @@ The development process · 3 unmodified lines
218Linux kernel development process currently consists of a few different246Linux kernel development process currently consists of a few different
219main kernel "branches" and lots of different subsystem-specific kernel247main kernel "branches" and lots of different subsystem-specific kernel
220branches. These different branches are:248branches. These different branches are:
249
221 - main 4.x kernel tree250 - main 4.x kernel tree
222 - 4.x.y -stable kernel tree251 - 4.x.y -stable kernel tree
223 - 4.x -git kernel patches252 - 4.x -git kernel patches
@@ -227,14 +256,15 @@ branches. These different branches are: · 3 unmodified lines
2274.x kernel tree2564.x kernel tree
228-----------------257-----------------
2294.x kernels are maintained by Linus Torvalds, and can be found on2584.x kernels are maintained by Linus Torvalds, and can be found on
230kernel.org in the pub/linux/kernel/v4.x/ directory. Its development259https://kernel.org in the pub/linux/kernel/v4.x/ directory. Its development
231process is as follows:260process is as follows:
261
232 - As soon as a new kernel is released a two weeks window is open,262 - As soon as a new kernel is released a two weeks window is open,
233 during this period of time maintainers can submit big diffs to263 during this period of time maintainers can submit big diffs to
234 Linus, usually the patches that have already been included in the264 Linus, usually the patches that have already been included in the
235 -next kernel for a few weeks. The preferred way to submit big changes265 -next kernel for a few weeks. The preferred way to submit big changes
236 is using git (the kernel's source management tool, more information266 is using git (the kernel's source management tool, more information
237 can be found at http://git-scm.com/) but plain patches are also just267 can be found at https://git-scm.com/) but plain patches are also just
238 fine.268 fine.
239 - After two weeks a -rc1 kernel is released it is now possible to push269 - After two weeks a -rc1 kernel is released it is now possible to push
240 only patches that do not include new features that could affect the270 only patches that do not include new features that could affect the
@@ -253,9 +283,10 @@ process is as follows: · 12 unmodified lines
253 283
254It is worth mentioning what Andrew Morton wrote on the linux-kernel284It is worth mentioning what Andrew Morton wrote on the linux-kernel
255mailing list about kernel releases:285mailing list about kernel releases:
256 "Nobody knows when a kernel will be released, because it's286
287 *"Nobody knows when a kernel will be released, because it's
257 released according to perceived bug status, not according to a288 released according to perceived bug status, not according to a
258 preconceived timeline."289 preconceived timeline."*
259 290
2604.x.y -stable kernel tree2914.x.y -stable kernel tree
261-------------------------292-------------------------
@@ -301,7 +332,7 @@ submission and other already ongoing work are avoided. · 39 unmodified lines
301Most of these repositories are git trees, but there are also other SCMs332Most of these repositories are git trees, but there are also other SCMs
302in use, or patch queues being published as quilt series. Addresses of333in use, or patch queues being published as quilt series. Addresses of
303these subsystem repositories are listed in the MAINTAINERS file. Many334these subsystem repositories are listed in the MAINTAINERS file. Many
304of them can be browsed at http://git.kernel.org/.335of them can be browsed at https://git.kernel.org/.
305 336
306Before a proposed patch is committed to such a subsystem tree, it is337Before a proposed patch is committed to such a subsystem tree, it is
307subject to review which primarily happens on mailing lists (see the338subject to review which primarily happens on mailing lists (see the
@@ -310,7 +341,7 @@ process is tracked with the tool patchwork. Patchwork offers a web · 2 unmodified lines
310interface which shows patch postings, any comments on a patch or341interface which shows patch postings, any comments on a patch or
311revisions to it, and maintainers can mark patches as under review,342revisions to it, and maintainers can mark patches as under review,
312accepted, or rejected. Most of these patchwork sites are listed at343accepted, or rejected. Most of these patchwork sites are listed at
313http://patchwork.kernel.org/.344https://patchwork.kernel.org/.
314 345
3154.x -next kernel tree for integration tests3464.x -next kernel tree for integration tests
316-------------------------------------------347-------------------------------------------
@@ -318,7 +349,8 @@ Before updates from subsystem trees are merged into the mainline 4.x · 1 unmodified line
318tree, they need to be integration-tested. For this purpose, a special349tree, they need to be integration-tested. For this purpose, a special
319testing repository exists into which virtually all subsystem trees are350testing repository exists into which virtually all subsystem trees are
320pulled on an almost daily basis:351pulled on an almost daily basis:
321 http://git.kernel.org/?p=linux/kernel/git/next/linux-next.git352
353 https://git.kernel.org/?p=linux/kernel/git/next/linux-next.git
322 354
323This way, the -next kernel gives a summary outlook onto what will be355This way, the -next kernel gives a summary outlook onto what will be
324expected to go into the mainline kernel at the next merge period.356expected to go into the mainline kernel at the next merge period.
@@ -328,10 +360,11 @@ Adventurous testers are very welcome to runtime-test the -next kernel. · 3 unmodified lines
328Bug Reporting360Bug Reporting
329-------------361-------------
330 362
331bugzilla.kernel.org is where the Linux kernel developers track kernel363https://bugzilla.kernel.org is where the Linux kernel developers track kernel
332bugs. Users are encouraged to report all bugs that they find in this364bugs. Users are encouraged to report all bugs that they find in this
333tool. For details on how to use the kernel bugzilla, please see:365tool. For details on how to use the kernel bugzilla, please see:
334 http://bugzilla.kernel.org/page.cgi?id=faq.html366
367 https://bugzilla.kernel.org/page.cgi?id=faq.html
335 368
336The file REPORTING-BUGS in the main kernel source directory has a good369The file REPORTING-BUGS in the main kernel source directory has a good
337template for how to report a possible kernel bug, and details what kind370template for how to report a possible kernel bug, and details what kind
@@ -349,13 +382,14 @@ your skills, and other developers will be aware of your presence. Fixing · 11 unmodified lines
349bugs is one of the best ways to get merits among other developers, because382bugs is one of the best ways to get merits among other developers, because
350not many people like wasting time fixing other people's bugs.383not many people like wasting time fixing other people's bugs.
351 384
352To work in the already reported bug reports, go to http://bugzilla.kernel.org.385To work in the already reported bug reports, go to https://bugzilla.kernel.org.
353If you want to be advised of the future bug reports, you can subscribe to the386If you want to be advised of the future bug reports, you can subscribe to the
354bugme-new mailing list (only new bug reports are mailed here) or to the387bugme-new mailing list (only new bug reports are mailed here) or to the
355bugme-janitor mailing list (every change in the bugzilla is mailed here)388bugme-janitor mailing list (every change in the bugzilla is mailed here)
356 389
357 http://lists.linux-foundation.org/mailman/listinfo/bugme-new390 https://lists.linux-foundation.org/mailman/listinfo/bugme-new
358 http://lists.linux-foundation.org/mailman/listinfo/bugme-janitors391
392 https://lists.linux-foundation.org/mailman/listinfo/bugme-janitors
359 393
360 394
361 395
@@ -365,10 +399,14 @@ Mailing lists · 3 unmodified lines
365As some of the above documents describe, the majority of the core kernel399As some of the above documents describe, the majority of the core kernel
366developers participate on the Linux Kernel Mailing list. Details on how400developers participate on the Linux Kernel Mailing list. Details on how
367to subscribe and unsubscribe from the list can be found at:401to subscribe and unsubscribe from the list can be found at:
402
368 http://vger.kernel.org/vger-lists.html#linux-kernel403 http://vger.kernel.org/vger-lists.html#linux-kernel
404
369There are archives of the mailing list on the web in many different405There are archives of the mailing list on the web in many different
370places. Use a search engine to find these archives. For example:406places. Use a search engine to find these archives. For example:
407
371 http://dir.gmane.org/gmane.linux.kernel408 http://dir.gmane.org/gmane.linux.kernel
409
372It is highly recommended that you search the archives about the topic410It is highly recommended that you search the archives about the topic
373you want to bring up, before you post it to the list. A lot of things411you want to bring up, before you post it to the list. A lot of things
374already discussed in detail are only recorded at the mailing list412already discussed in detail are only recorded at the mailing list
@@ -381,11 +419,13 @@ groups. · 6 unmodified lines
381 419
382Many of the lists are hosted on kernel.org. Information on them can be420Many of the lists are hosted on kernel.org. Information on them can be
383found at:421found at:
422
384 http://vger.kernel.org/vger-lists.html423 http://vger.kernel.org/vger-lists.html
385 424
386Please remember to follow good behavioral habits when using the lists.425Please remember to follow good behavioral habits when using the lists.
387Though a bit cheesy, the following URL has some simple guidelines for426Though a bit cheesy, the following URL has some simple guidelines for
388interacting with the list (or any list):427interacting with the list (or any list):
428
389 http://www.albion.com/netiquette/429 http://www.albion.com/netiquette/
390 430
391If multiple people respond to your mail, the CC: list of recipients may431If multiple people respond to your mail, the CC: list of recipients may
@@ -400,13 +440,14 @@ add your statements between the individual quoted sections instead of · 8 unmodified lines
400writing at the top of the mail.440writing at the top of the mail.
401 441
402If you add patches to your mail, make sure they are plain readable text442If you add patches to your mail, make sure they are plain readable text
403as stated in Documentation/SubmittingPatches. Kernel developers don't443as stated in Documentation/SubmittingPatches.
404want to deal with attachments or compressed patches; they may want444Kernel developers don't want to deal with
405to comment on individual lines of your patch, which works only that way.445attachments or compressed patches; they may want to comment on
406Make sure you use a mail program that does not mangle spaces and tab446individual lines of your patch, which works only that way. Make sure you
407characters. A good first test is to send the mail to yourself and try447use a mail program that does not mangle spaces and tab characters. A
408to apply your own patch by yourself. If that doesn't work, get your448good first test is to send the mail to yourself and try to apply your
409mail program fixed or change it until it works.449own patch by yourself. If that doesn't work, get your mail program fixed
450or change it until it works.
410 451
411Above all, please remember to show respect to other subscribers.452Above all, please remember to show respect to other subscribers.
412 453
@@ -418,6 +459,7 @@ The goal of the kernel community is to provide the best possible kernel · 5 unmodified lines
418there is. When you submit a patch for acceptance, it will be reviewed459there is. When you submit a patch for acceptance, it will be reviewed
419on its technical merits and those alone. So, what should you be460on its technical merits and those alone. So, what should you be
420expecting?461expecting?
462
421 - criticism463 - criticism
422 - comments464 - comments
423 - requests for change465 - requests for change
@@ -432,6 +474,7 @@ If there are no responses to your posting, wait a few days and try · 8 unmodified lines
432again, sometimes things get lost in the huge volume.474again, sometimes things get lost in the huge volume.
433 475
434What should you not do?476What should you not do?
477
435 - expect your patch to be accepted without question478 - expect your patch to be accepted without question
436 - become defensive479 - become defensive
437 - ignore comments480 - ignore comments
@@ -445,8 +488,8 @@ Remember, being wrong is acceptable as long as you are willing to work · 7 unmodified lines
445toward a solution that is right.488toward a solution that is right.
446 489
447It is normal that the answers to your first patch might simply be a list490It is normal that the answers to your first patch might simply be a list
448of a dozen things you should correct. This does _not_ imply that your491of a dozen things you should correct. This does **not** imply that your
449patch will not be accepted, and it is _not_ meant against you492patch will not be accepted, and it is **not** meant against you
450personally. Simply correct all issues raised against your patch and493personally. Simply correct all issues raised against your patch and
451resend it.494resend it.
452 495
@@ -457,7 +500,9 @@ Differences between the kernel community and corporate structures · 4 unmodified lines
457The kernel community works differently than most traditional corporate500The kernel community works differently than most traditional corporate
458development environments. Here are a list of things that you can try to501development environments. Here are a list of things that you can try to
459do to avoid problems:502do to avoid problems:
503
460 Good things to say regarding your proposed changes:504 Good things to say regarding your proposed changes:
505
461 - "This solves multiple problems."506 - "This solves multiple problems."
462 - "This deletes 2000 lines of code."507 - "This deletes 2000 lines of code."
463 - "Here is a patch that explains what I am trying to describe."508 - "Here is a patch that explains what I am trying to describe."
@@ -466,6 +511,7 @@ do to avoid problems: · 2 unmodified lines
466 - "This increases performance on typical machines..."511 - "This increases performance on typical machines..."
467 512
468 Bad things you should avoid saying:513 Bad things you should avoid saying:
514
469 - "We did it this way in AIX/ptx/Solaris, so therefore it must be515 - "We did it this way in AIX/ptx/Solaris, so therefore it must be
470 good..."516 good..."
471 - "I've being doing this for 20 years, so..."517 - "I've being doing this for 20 years, so..."
@@ -527,17 +573,18 @@ The reasons for breaking things up are the following: · 55 unmodified lines
527 and simplify (or simply re-order) patches before submitting them.573 and simplify (or simply re-order) patches before submitting them.
528 574
529Here is an analogy from kernel developer Al Viro:575Here is an analogy from kernel developer Al Viro:
530 "Think of a teacher grading homework from a math student. The576
577 *"Think of a teacher grading homework from a math student. The
531 teacher does not want to see the student's trials and errors578 teacher does not want to see the student's trials and errors
532 before they came up with the solution. They want to see the579 before they came up with the solution. They want to see the
533 cleanest, most elegant answer. A good student knows this, and580 cleanest, most elegant answer. A good student knows this, and
534 would never submit her intermediate work before the final581 would never submit her intermediate work before the final
535 solution."582 solution.*
536 583
537 The same is true of kernel development. The maintainers and584 *The same is true of kernel development. The maintainers and
538 reviewers do not want to see the thought process behind the585 reviewers do not want to see the thought process behind the
539 solution to the problem one is solving. They want to see a586 solution to the problem one is solving. They want to see a
540 simple and elegant solution."587 simple and elegant solution."*
541 588
542It may be challenging to keep the balance between presenting an elegant589It may be challenging to keep the balance between presenting an elegant
543solution and working together with the community and discussing your590solution and working together with the community and discussing your
@@ -565,6 +612,7 @@ When sending in your patches, pay special attention to what you say in · 21 unmodified lines
565the text in your email. This information will become the ChangeLog612the text in your email. This information will become the ChangeLog
566information for the patch, and will be preserved for everyone to see for613information for the patch, and will be preserved for everyone to see for
567all time. It should describe the patch completely, containing:614all time. It should describe the patch completely, containing:
615
568 - why the change is necessary616 - why the change is necessary
569 - the overall design approach in the patch617 - the overall design approach in the patch
570 - implementation details618 - implementation details
@@ -572,12 +620,11 @@ all time. It should describe the patch completely, containing: · 1 unmodified line
572 620
573For more details on what this should all look like, please see the621For more details on what this should all look like, please see the
574ChangeLog section of the document:622ChangeLog section of the document:
623
575 "The Perfect Patch"624 "The Perfect Patch"
576 http://www.ozlabs.org/~akpm/stuff/tpp.txt625 http://www.ozlabs.org/~akpm/stuff/tpp.txt
577 626
578 627
579
580
581All of these things are sometimes very hard to do. It can take years to628All of these things are sometimes very hard to do. It can take years to
582perfect these practices (if at all). It's a continuous process of629perfect these practices (if at all). It's a continuous process of
583improvement that requires a lot of patience and determination. But630improvement that requires a lot of patience and determination. But
@@ -588,8 +635,9 @@ start exactly where you are now. · 4 unmodified lines
588 635
589 636
590----------637----------
638
591Thanks to Paolo Ciarrocchi who allowed the "Development Process"639Thanks to Paolo Ciarrocchi who allowed the "Development Process"
592(http://lwn.net/Articles/94386/) section640(https://lwn.net/Articles/94386/) section
593to be based on text he had written, and to Randy Dunlap and Gerrit641to be based on text he had written, and to Randy Dunlap and Gerrit
594Huizenga for some of the list of things you should and should not say.642Huizenga for some of the list of things you should and should not say.
595Also thanks to Pat Mochel, Hanna Linder, Randy Dunlap, Kay Sievers,643Also thanks to Pat Mochel, Hanna Linder, Randy Dunlap, Kay Sievers,
Documentation/Makefile+1−3
@@ -1,3 +1 @@
1subdir-y := accounting auxdisplay blackfin \1subdir-y :=
2 filesystems filesystems ia64 laptops mic misc-devices \
3 networking pcmcia prctl ptp timers vDSO watchdog
Documentation/Makefile.sphinx+49−15
@@ -5,6 +5,9 @@ · 4 unmodified lines
5# You can set these variables from the command line.5# You can set these variables from the command line.
6SPHINXBUILD = sphinx-build6SPHINXBUILD = sphinx-build
7SPHINXOPTS =7SPHINXOPTS =
8SPHINXDIRS = .
9_SPHINXDIRS = $(patsubst $(srctree)/Documentation/%/conf.py,%,$(wildcard $(srctree)/Documentation/*/conf.py))
10SPHINX_CONF = conf.py
8PAPER =11PAPER =
9BUILDDIR = $(obj)/output12BUILDDIR = $(obj)/output
10 13
@@ -25,38 +28,62 @@ else ifneq ($(DOCBOOKS),) · 14 unmodified lines
25 28
26else # HAVE_SPHINX29else # HAVE_SPHINX
27 30
28# User-friendly check for rst2pdf31# User-friendly check for pdflatex
29HAVE_RST2PDF := $(shell if python -c "import rst2pdf" >/dev/null 2>&1; then echo 1; else echo 0; fi)32HAVE_PDFLATEX := $(shell if which xelatex >/dev/null 2>&1; then echo 1; else echo 0; fi)
30 33
31# Internal variables.34# Internal variables.
32PAPEROPT_a4 = -D latex_paper_size=a435PAPEROPT_a4 = -D latex_paper_size=a4
33PAPEROPT_letter = -D latex_paper_size=letter36PAPEROPT_letter = -D latex_paper_size=letter
34KERNELDOC = $(srctree)/scripts/kernel-doc37KERNELDOC = $(srctree)/scripts/kernel-doc
35KERNELDOC_CONF = -D kerneldoc_srctree=$(srctree) -D kerneldoc_bin=$(KERNELDOC)38KERNELDOC_CONF = -D kerneldoc_srctree=$(srctree) -D kerneldoc_bin=$(KERNELDOC)
36ALLSPHINXOPTS = -D version=$(KERNELVERSION) -D release=$(KERNELRELEASE) -d $(BUILDDIR)/.doctrees $(KERNELDOC_CONF) $(PAPEROPT_$(PAPER)) -c $(srctree)/$(src) $(SPHINXOPTS) $(srctree)/$(src)39ALLSPHINXOPTS = $(KERNELDOC_CONF) $(PAPEROPT_$(PAPER)) $(SPHINXOPTS)
37# the i18n builder cannot share the environment and doctrees with the others40# the i18n builder cannot share the environment and doctrees with the others
38I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .41I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
39 42
40quiet_cmd_sphinx = SPHINX $@43# commands; the 'cmd' from scripts/Kbuild.include is not *loopable*
41 cmd_sphinx = BUILDDIR=$(BUILDDIR) $(SPHINXBUILD) -b $2 $(ALLSPHINXOPTS) $(BUILDDIR)/$244loop_cmd = $(echo-cmd) $(cmd_$(1))
45
46# $2 sphinx builder e.g. "html"
47# $3 name of the build subfolder / e.g. "media", used as:
48# * dest folder relative to $(BUILDDIR) and
49# * cache folder relative to $(BUILDDIR)/.doctrees
50# $4 dest subfolder e.g. "man" for man pages at media/man
51# $5 reST source folder relative to $(srctree)/$(src),
52# e.g. "media" for the linux-tv book-set at ./Documentation/media
53
54quiet_cmd_sphinx = SPHINX $@ --> file://$(abspath $(BUILDDIR)/$3/$4);
55 cmd_sphinx = $(MAKE) BUILDDIR=$(abspath $(BUILDDIR)) $(build)=Documentation/media all;\
56 BUILDDIR=$(abspath $(BUILDDIR)) SPHINX_CONF=$(abspath $(srctree)/$(src)/$5/$(SPHINX_CONF)) \
57 $(SPHINXBUILD) \
58 -b $2 \
59 -c $(abspath $(srctree)/$(src)) \
60 -d $(abspath $(BUILDDIR)/.doctrees/$3) \
61 -D version=$(KERNELVERSION) -D release=$(KERNELRELEASE) \
62 $(ALLSPHINXOPTS) \
63 $(abspath $(srctree)/$(src)/$5) \
64 $(abspath $(BUILDDIR)/$3/$4);
42 65
43htmldocs:66htmldocs:
44 $(MAKE) BUILDDIR=$(BUILDDIR) -f $(srctree)/Documentation/media/Makefile $@67 @$(foreach var,$(SPHINXDIRS),$(call loop_cmd,sphinx,html,$(var),,$(var)))
45 $(call cmd,sphinx,html)
46 68
47pdfdocs:69latexdocs:
48ifeq ($(HAVE_RST2PDF),0)70ifeq ($(HAVE_PDFLATEX),0)
49 $(warning The Python 'rst2pdf' module was not found. Make sure you have the module installed to produce PDF output.)71 $(warning The 'xelatex' command was not found. Make sure you have it installed and in PATH to produce PDF output.)
50 @echo " SKIP Sphinx $@ target."72 @echo " SKIP Sphinx $@ target."
51else # HAVE_RST2PDF73else # HAVE_PDFLATEX
52 $(call cmd,sphinx,pdf)74 @$(foreach var,$(SPHINXDIRS),$(call loop_cmd,sphinx,latex,$(var),latex,$(var)))
53endif # HAVE_RST2PDF75endif # HAVE_PDFLATEX
76
77pdfdocs: latexdocs
78ifneq ($(HAVE_PDFLATEX),0)
79 $(foreach var,$(SPHINXDIRS), $(MAKE) PDFLATEX=xelatex LATEXOPTS="-interaction=nonstopmode" -C $(BUILDDIR)/$(var)/latex)
80endif # HAVE_PDFLATEX
54 81
55epubdocs:82epubdocs:
56 $(call cmd,sphinx,epub)83 @$(foreach var,$(SPHINXDIRS),$(call loop_cmd,sphinx,epub,$(var),epub,$(var)))
57 84
58xmldocs:85xmldocs:
59 $(call cmd,sphinx,xml)86 @$(foreach var,$(SPHINXDIRS),$(call loop_cmd,sphinx,xml,$(var),xml,$(var)))
60 87
61# no-ops for the Sphinx toolchain88# no-ops for the Sphinx toolchain
62sgmldocs:89sgmldocs:
@@ -72,7 +99,14 @@ endif # HAVE_SPHINX · 9 unmodified lines
72dochelp:99dochelp:
73 @echo ' Linux kernel internal documentation in different formats (Sphinx):'100 @echo ' Linux kernel internal documentation in different formats (Sphinx):'
74 @echo ' htmldocs - HTML'101 @echo ' htmldocs - HTML'
102 @echo ' latexdocs - LaTeX'
75 @echo ' pdfdocs - PDF'103 @echo ' pdfdocs - PDF'
76 @echo ' epubdocs - EPUB'104 @echo ' epubdocs - EPUB'
77 @echo ' xmldocs - XML'105 @echo ' xmldocs - XML'
78 @echo ' cleandocs - clean all generated files'106 @echo ' cleandocs - clean all generated files'
107 @echo
108 @echo ' make SPHINXDIRS="s1 s2" [target] Generate only docs of folder s1, s2'
109 @echo ' valid values for SPHINXDIRS are: $(_SPHINXDIRS)'
110 @echo
111 @echo ' make SPHINX_CONF={conf-file} [target] use *additional* sphinx-build'
112 @echo ' configuration. This is e.g. useful to build with nit-picking config.'
Documentation/ManagementStyle+83−71
@@ -1,10 +1,12 @@
1.. _managementstyle:
1 2
2 Linux kernel management style3Linux kernel management style
4=============================
3 5
4This is a short document describing the preferred (or made up, depending6This is a short document describing the preferred (or made up, depending
5on who you ask) management style for the linux kernel. It's meant to7on who you ask) management style for the linux kernel. It's meant to
6mirror the CodingStyle document to some degree, and mainly written to8mirror the CodingStyle document to some degree, and mainly written to
7avoid answering (*) the same (or similar) questions over and over again. 9avoid answering [#f1]_ the same (or similar) questions over and over again.
8 10
9Management style is very personal and much harder to quantify than11Management style is very personal and much harder to quantify than
10simple coding style rules, so this document may or may not have anything12simple coding style rules, so this document may or may not have anything
@@ -14,50 +16,52 @@ might not actually be true. You'll have to decide for yourself. · 3 unmodified lines
14Btw, when talking about "kernel manager", it's all about the technical16Btw, when talking about "kernel manager", it's all about the technical
15lead persons, not the people who do traditional management inside17lead persons, not the people who do traditional management inside
16companies. If you sign purchase orders or you have any clue about the18companies. If you sign purchase orders or you have any clue about the
17budget of your group, you're almost certainly not a kernel manager. 19budget of your group, you're almost certainly not a kernel manager.
18These suggestions may or may not apply to you. 20These suggestions may or may not apply to you.
19 21
20First off, I'd suggest buying "Seven Habits of Highly Effective22First off, I'd suggest buying "Seven Habits of Highly Effective
21People", and NOT read it. Burn it, it's a great symbolic gesture. 23People", and NOT read it. Burn it, it's a great symbolic gesture.
22 24
23(*) This document does so not so much by answering the question, but by25.. [#f1] This document does so not so much by answering the question, but by
24making it painfully obvious to the questioner that we don't have a clue26 making it painfully obvious to the questioner that we don't have a clue
25to what the answer is. 27 to what the answer is.
26 28
27Anyway, here goes:29Anyway, here goes:
28 30
31.. _decisions:
29 32
30 Chapter 1: Decisions331) Decisions
34------------
31 35
32Everybody thinks managers make decisions, and that decision-making is36Everybody thinks managers make decisions, and that decision-making is
33important. The bigger and more painful the decision, the bigger the37important. The bigger and more painful the decision, the bigger the
34manager must be to make it. That's very deep and obvious, but it's not38manager must be to make it. That's very deep and obvious, but it's not
35actually true. 39actually true.
36 40
37The name of the game is to _avoid_ having to make a decision. In41The name of the game is to **avoid** having to make a decision. In
38particular, if somebody tells you "choose (a) or (b), we really need you42particular, if somebody tells you "choose (a) or (b), we really need you
39to decide on this", you're in trouble as a manager. The people you43to decide on this", you're in trouble as a manager. The people you
40manage had better know the details better than you, so if they come to44manage had better know the details better than you, so if they come to
41you for a technical decision, you're screwed. You're clearly not45you for a technical decision, you're screwed. You're clearly not
42competent to make that decision for them. 46competent to make that decision for them.
43 47
44(Corollary:if the people you manage don't know the details better than48(Corollary:if the people you manage don't know the details better than
45you, you're also screwed, although for a totally different reason. 49you, you're also screwed, although for a totally different reason.
46Namely that you are in the wrong job, and that _they_ should be managing50Namely that you are in the wrong job, and that **they** should be managing
47your brilliance instead). 51your brilliance instead).
48 52
49So the name of the game is to _avoid_ decisions, at least the big and53So the name of the game is to **avoid** decisions, at least the big and
50painful ones. Making small and non-consequential decisions is fine, and54painful ones. Making small and non-consequential decisions is fine, and
51makes you look like you know what you're doing, so what a kernel manager55makes you look like you know what you're doing, so what a kernel manager
52needs to do is to turn the big and painful ones into small things where56needs to do is to turn the big and painful ones into small things where
53nobody really cares. 57nobody really cares.
54 58
55It helps to realize that the key difference between a big decision and a59It helps to realize that the key difference between a big decision and a
56small one is whether you can fix your decision afterwards. Any decision60small one is whether you can fix your decision afterwards. Any decision
57can be made small by just always making sure that if you were wrong (and61can be made small by just always making sure that if you were wrong (and
58you _will_ be wrong), you can always undo the damage later by62you **will** be wrong), you can always undo the damage later by
59backtracking. Suddenly, you get to be doubly managerial for making63backtracking. Suddenly, you get to be doubly managerial for making
60_two_ inconsequential decisions - the wrong one _and_ the right one. 64**two** inconsequential decisions - the wrong one **and** the right one.
61 65
62And people will even see that as true leadership (*cough* bullshit66And people will even see that as true leadership (*cough* bullshit
63*cough*).67*cough*).
@@ -65,10 +69,10 @@ And people will even see that as true leadership (*cough* bullshit · 1 unmodified line
65Thus the key to avoiding big decisions becomes to just avoiding to do69Thus the key to avoiding big decisions becomes to just avoiding to do
66things that can't be undone. Don't get ushered into a corner from which70things that can't be undone. Don't get ushered into a corner from which
67you cannot escape. A cornered rat may be dangerous - a cornered manager71you cannot escape. A cornered rat may be dangerous - a cornered manager
68is just pitiful. 72is just pitiful.
69 73
70It turns out that since nobody would be stupid enough to ever really let74It turns out that since nobody would be stupid enough to ever really let
71a kernel manager have huge fiscal responsibility _anyway_, it's usually75a kernel manager have huge fiscal responsibility **anyway**, it's usually
72fairly easy to backtrack. Since you're not going to be able to waste76fairly easy to backtrack. Since you're not going to be able to waste
73huge amounts of money that you might not be able to repay, the only77huge amounts of money that you might not be able to repay, the only
74thing you can backtrack on is a technical decision, and there78thing you can backtrack on is a technical decision, and there
@@ -76,113 +80,118 @@ back-tracking is very easy: just tell everybody that you were an · 1 unmodified line
76incompetent nincompoop, say you're sorry, and undo all the worthless80incompetent nincompoop, say you're sorry, and undo all the worthless
77work you had people work on for the last year. Suddenly the decision81work you had people work on for the last year. Suddenly the decision
78you made a year ago wasn't a big decision after all, since it could be82you made a year ago wasn't a big decision after all, since it could be
79easily undone. 83easily undone.
80 84
81It turns out that some people have trouble with this approach, for two85It turns out that some people have trouble with this approach, for two
82reasons:86reasons:
87
83 - admitting you were an idiot is harder than it looks. We all like to88 - admitting you were an idiot is harder than it looks. We all like to
84 maintain appearances, and coming out in public to say that you were89 maintain appearances, and coming out in public to say that you were
85 wrong is sometimes very hard indeed. 90 wrong is sometimes very hard indeed.
86 - having somebody tell you that what you worked on for the last year91 - having somebody tell you that what you worked on for the last year
87 wasn't worthwhile after all can be hard on the poor lowly engineers92 wasn't worthwhile after all can be hard on the poor lowly engineers
88 too, and while the actual _work_ was easy enough to undo by just93 too, and while the actual **work** was easy enough to undo by just
89 deleting it, you may have irrevocably lost the trust of that94 deleting it, you may have irrevocably lost the trust of that
90 engineer. And remember: "irrevocable" was what we tried to avoid in95 engineer. And remember: "irrevocable" was what we tried to avoid in
91 the first place, and your decision ended up being a big one after96 the first place, and your decision ended up being a big one after
92 all. 97 all.
93 98
94Happily, both of these reasons can be mitigated effectively by just99Happily, both of these reasons can be mitigated effectively by just
95admitting up-front that you don't have a friggin' clue, and telling100admitting up-front that you don't have a friggin' clue, and telling
96people ahead of the fact that your decision is purely preliminary, and101people ahead of the fact that your decision is purely preliminary, and
97might be the wrong thing. You should always reserve the right to change102might be the wrong thing. You should always reserve the right to change
98your mind, and make people very _aware_ of that. And it's much easier103your mind, and make people very **aware** of that. And it's much easier
99to admit that you are stupid when you haven't _yet_ done the really104to admit that you are stupid when you haven't **yet** done the really
100stupid thing.105stupid thing.
101 106
102Then, when it really does turn out to be stupid, people just roll their107Then, when it really does turn out to be stupid, people just roll their
103eyes and say "Oops, he did it again". 108eyes and say "Oops, he did it again".
104 109
105This preemptive admission of incompetence might also make the people who110This preemptive admission of incompetence might also make the people who
106actually do the work also think twice about whether it's worth doing or111actually do the work also think twice about whether it's worth doing or
107not. After all, if _they_ aren't certain whether it's a good idea, you112not. After all, if **they** aren't certain whether it's a good idea, you
108sure as hell shouldn't encourage them by promising them that what they113sure as hell shouldn't encourage them by promising them that what they
109work on will be included. Make them at least think twice before they114work on will be included. Make them at least think twice before they
110embark on a big endeavor. 115embark on a big endeavor.
111 116
112Remember: they'd better know more about the details than you do, and117Remember: they'd better know more about the details than you do, and
113they usually already think they have the answer to everything. The best118they usually already think they have the answer to everything. The best
114thing you can do as a manager is not to instill confidence, but rather a119thing you can do as a manager is not to instill confidence, but rather a
115healthy dose of critical thinking on what they do. 120healthy dose of critical thinking on what they do.
116 121
117Btw, another way to avoid a decision is to plaintively just whine "can't122Btw, another way to avoid a decision is to plaintively just whine "can't
118we just do both?" and look pitiful. Trust me, it works. If it's not123we just do both?" and look pitiful. Trust me, it works. If it's not
119clear which approach is better, they'll eventually figure it out. The124clear which approach is better, they'll eventually figure it out. The
120answer may end up being that both teams get so frustrated by the125answer may end up being that both teams get so frustrated by the
121situation that they just give up. 126situation that they just give up.
122 127
123That may sound like a failure, but it's usually a sign that there was128That may sound like a failure, but it's usually a sign that there was
124something wrong with both projects, and the reason the people involved129something wrong with both projects, and the reason the people involved
125couldn't decide was that they were both wrong. You end up coming up130couldn't decide was that they were both wrong. You end up coming up
126smelling like roses, and you avoided yet another decision that you could131smelling like roses, and you avoided yet another decision that you could
127have screwed up on. 132have screwed up on.
128 133
129 134
130 Chapter 2: People1352) People
136---------
131 137
132Most people are idiots, and being a manager means you'll have to deal138Most people are idiots, and being a manager means you'll have to deal
133with it, and perhaps more importantly, that _they_ have to deal with139with it, and perhaps more importantly, that **they** have to deal with
134_you_. 140**you**.
135 141
136It turns out that while it's easy to undo technical mistakes, it's not142It turns out that while it's easy to undo technical mistakes, it's not
137as easy to undo personality disorders. You just have to live with143as easy to undo personality disorders. You just have to live with
138theirs - and yours. 144theirs - and yours.
139 145
140However, in order to prepare yourself as a kernel manager, it's best to146However, in order to prepare yourself as a kernel manager, it's best to
141remember not to burn any bridges, bomb any innocent villagers, or147remember not to burn any bridges, bomb any innocent villagers, or
142alienate too many kernel developers. It turns out that alienating people148alienate too many kernel developers. It turns out that alienating people
143is fairly easy, and un-alienating them is hard. Thus "alienating"149is fairly easy, and un-alienating them is hard. Thus "alienating"
144immediately falls under the heading of "not reversible", and becomes a150immediately falls under the heading of "not reversible", and becomes a
145no-no according to Chapter 1.151no-no according to :ref:`decisions`.
146 152
147There's just a few simple rules here:153There's just a few simple rules here:
154
148 (1) don't call people d*ckheads (at least not in public)155 (1) don't call people d*ckheads (at least not in public)
149 (2) learn how to apologize when you forgot rule (1)156 (2) learn how to apologize when you forgot rule (1)
150 157
151The problem with #1 is that it's very easy to do, since you can say158The problem with #1 is that it's very easy to do, since you can say
152"you're a d*ckhead" in millions of different ways (*), sometimes without159"you're a d*ckhead" in millions of different ways [#f2]_, sometimes without
153even realizing it, and almost always with a white-hot conviction that160even realizing it, and almost always with a white-hot conviction that
154you are right. 161you are right.
155 162
156And the more convinced you are that you are right (and let's face it,163And the more convinced you are that you are right (and let's face it,
157you can call just about _anybody_ a d*ckhead, and you often _will_ be164you can call just about **anybody** a d*ckhead, and you often **will** be
158right), the harder it ends up being to apologize afterwards. 165right), the harder it ends up being to apologize afterwards.
159 166
160To solve this problem, you really only have two options:167To solve this problem, you really only have two options:
168
161 - get really good at apologies169 - get really good at apologies
162 - spread the "love" out so evenly that nobody really ends up feeling170 - spread the "love" out so evenly that nobody really ends up feeling
163 like they get unfairly targeted. Make it inventive enough, and they171 like they get unfairly targeted. Make it inventive enough, and they
164 might even be amused. 172 might even be amused.
165 173
166The option of being unfailingly polite really doesn't exist. Nobody will174The option of being unfailingly polite really doesn't exist. Nobody will
167trust somebody who is so clearly hiding his true character.175trust somebody who is so clearly hiding his true character.
168 176
169(*) Paul Simon sang "Fifty Ways to Leave Your Lover", because quite177.. [#f2] Paul Simon sang "Fifty Ways to Leave Your Lover", because quite
170frankly, "A Million Ways to Tell a Developer He Is a D*ckhead" doesn't178 frankly, "A Million Ways to Tell a Developer He Is a D*ckhead" doesn't
171scan nearly as well. But I'm sure he thought about it. 179 scan nearly as well. But I'm sure he thought about it.
172 180
173 181
174 Chapter 3: People II - the Good Kind1823) People II - the Good Kind
183----------------------------
175 184
176While it turns out that most people are idiots, the corollary to that is185While it turns out that most people are idiots, the corollary to that is
177sadly that you are one too, and that while we can all bask in the secure186sadly that you are one too, and that while we can all bask in the secure
178knowledge that we're better than the average person (let's face it,187knowledge that we're better than the average person (let's face it,
179nobody ever believes that they're average or below-average), we should188nobody ever believes that they're average or below-average), we should
180also admit that we're not the sharpest knife around, and there will be189also admit that we're not the sharpest knife around, and there will be
181other people that are less of an idiot than you are. 190other people that are less of an idiot than you are.
182 191
183Some people react badly to smart people. Others take advantage of them. 192Some people react badly to smart people. Others take advantage of them.
184 193
185Make sure that you, as a kernel maintainer, are in the second group. 194Make sure that you, as a kernel maintainer, are in the second group.
186Suck up to them, because they are the people who will make your job195Suck up to them, because they are the people who will make your job
187easier. In particular, they'll be able to make your decisions for you,196easier. In particular, they'll be able to make your decisions for you,
188which is what the game is all about.197which is what the game is all about.
@@ -191,7 +200,7 @@ So when you find somebody smarter than you are, just coast along. Your · 2 unmodified lines
191management responsibilities largely become ones of saying "Sounds like a200management responsibilities largely become ones of saying "Sounds like a
192good idea - go wild", or "That sounds good, but what about xxx?". The201good idea - go wild", or "That sounds good, but what about xxx?". The
193second version in particular is a great way to either learn something202second version in particular is a great way to either learn something
194new about "xxx" or seem _extra_ managerial by pointing out something the203new about "xxx" or seem **extra** managerial by pointing out something the
195smarter person hadn't thought about. In either case, you win.204smarter person hadn't thought about. In either case, you win.
196 205
197One thing to look out for is to realize that greatness in one area does206One thing to look out for is to realize that greatness in one area does
@@ -199,47 +208,49 @@ not necessarily translate to other areas. So you might prod people in · 1 unmodified line
199specific directions, but let's face it, they might be good at what they208specific directions, but let's face it, they might be good at what they
200do, and suck at everything else. The good news is that people tend to209do, and suck at everything else. The good news is that people tend to
201naturally gravitate back to what they are good at, so it's not like you210naturally gravitate back to what they are good at, so it's not like you
202are doing something irreversible when you _do_ prod them in some211are doing something irreversible when you **do** prod them in some
203direction, just don't push too hard.212direction, just don't push too hard.
204 213
205 214
206 Chapter 4: Placing blame2154) Placing blame
216----------------
207 217
208Things will go wrong, and people want somebody to blame. Tag, you're it.218Things will go wrong, and people want somebody to blame. Tag, you're it.
209 219
210It's not actually that hard to accept the blame, especially if people220It's not actually that hard to accept the blame, especially if people
211kind of realize that it wasn't _all_ your fault. Which brings us to the221kind of realize that it wasn't **all** your fault. Which brings us to the
212best way of taking the blame: do it for another guy. You'll feel good222best way of taking the blame: do it for another guy. You'll feel good
213for taking the fall, he'll feel good about not getting blamed, and the223for taking the fall, he'll feel good about not getting blamed, and the
214guy who lost his whole 36GB porn-collection because of your incompetence224guy who lost his whole 36GB porn-collection because of your incompetence
215will grudgingly admit that you at least didn't try to weasel out of it.225will grudgingly admit that you at least didn't try to weasel out of it.
216 226
217Then make the developer who really screwed up (if you can find him) know227Then make the developer who really screwed up (if you can find him) know
218_in_private_ that he screwed up. Not just so he can avoid it in the228**in_private** that he screwed up. Not just so he can avoid it in the
219future, but so that he knows he owes you one. And, perhaps even more229future, but so that he knows he owes you one. And, perhaps even more
220importantly, he's also likely the person who can fix it. Because, let's230importantly, he's also likely the person who can fix it. Because, let's
221face it, it sure ain't you. 231face it, it sure ain't you.
222 232
223Taking the blame is also why you get to be manager in the first place. 233Taking the blame is also why you get to be manager in the first place.
224It's part of what makes people trust you, and allow you the potential234It's part of what makes people trust you, and allow you the potential
225glory, because you're the one who gets to say "I screwed up". And if235glory, because you're the one who gets to say "I screwed up". And if
226you've followed the previous rules, you'll be pretty good at saying that236you've followed the previous rules, you'll be pretty good at saying that
227by now. 237by now.
228 238
229 239
230 Chapter 5: Things to avoid2405) Things to avoid
241------------------
231 242
232There's one thing people hate even more than being called "d*ckhead",243There's one thing people hate even more than being called "d*ckhead",
233and that is being called a "d*ckhead" in a sanctimonious voice. The244and that is being called a "d*ckhead" in a sanctimonious voice. The
234first you can apologize for, the second one you won't really get the245first you can apologize for, the second one you won't really get the
235chance. They likely will no longer be listening even if you otherwise246chance. They likely will no longer be listening even if you otherwise
236do a good job. 247do a good job.
237 248
238We all think we're better than anybody else, which means that when249We all think we're better than anybody else, which means that when
239somebody else puts on airs, it _really_ rubs us the wrong way. You may250somebody else puts on airs, it **really** rubs us the wrong way. You may
240be morally and intellectually superior to everybody around you, but251be morally and intellectually superior to everybody around you, but
241don't try to make it too obvious unless you really _intend_ to irritate252don't try to make it too obvious unless you really **intend** to irritate
242somebody (*). 253somebody [#f3]_.
243 254
244Similarly, don't be too polite or subtle about things. Politeness easily255Similarly, don't be too polite or subtle about things. Politeness easily
245ends up going overboard and hiding the problem, and as they say, "On the256ends up going overboard and hiding the problem, and as they say, "On the
@@ -251,15 +262,16 @@ Some humor can help pad both the bluntness and the moralizing. Going · 5 unmodified lines
251overboard to the point of being ridiculous can drive a point home262overboard to the point of being ridiculous can drive a point home
252without making it painful to the recipient, who just thinks you're being263without making it painful to the recipient, who just thinks you're being
253silly. It can thus help get through the personal mental block we all264silly. It can thus help get through the personal mental block we all
254have about criticism. 265have about criticism.
255 266
256(*) Hint: internet newsgroups that are not directly related to your work267.. [#f3] Hint: internet newsgroups that are not directly related to your work
257are great ways to take out your frustrations at other people. Write268 are great ways to take out your frustrations at other people. Write
258insulting posts with a sneer just to get into a good flame every once in269 insulting posts with a sneer just to get into a good flame every once in
259a while, and you'll feel cleansed. Just don't crap too close to home.270 a while, and you'll feel cleansed. Just don't crap too close to home.
260 271
261 272
262 Chapter 6: Why me?2736) Why me?
274----------
263 275
264Since your main responsibility seems to be to take the blame for other276Since your main responsibility seems to be to take the blame for other
265peoples mistakes, and make it painfully obvious to everybody else that277peoples mistakes, and make it painfully obvious to everybody else that
@@ -268,9 +280,9 @@ first place? · 2 unmodified lines
268 280
269First off, while you may or may not get screaming teenage girls (or281First off, while you may or may not get screaming teenage girls (or
270boys, let's not be judgmental or sexist here) knocking on your dressing282boys, let's not be judgmental or sexist here) knocking on your dressing
271room door, you _will_ get an immense feeling of personal accomplishment283room door, you **will** get an immense feeling of personal accomplishment
272for being "in charge". Never mind the fact that you're really leading284for being "in charge". Never mind the fact that you're really leading
273by trying to keep up with everybody else and running after them as fast285by trying to keep up with everybody else and running after them as fast
274as you can. Everybody will still think you're the person in charge. 286as you can. Everybody will still think you're the person in charge.
275 287
276It's a great job if you can hack it.288It's a great job if you can hack it.
Documentation/PCI/pcieaer-howto.txt+9−17
@@ -49,25 +49,17 @@ depends on CONFIG_PCIEPORTBUS, so pls. set CONFIG_PCIEPORTBUS=y and · 48 unmodified lines
49CONFIG_PCIEAER = y.49CONFIG_PCIEAER = y.
50 50
512.2 Load PCI Express AER Root Driver512.2 Load PCI Express AER Root Driver
52There is a case where a system has AER support in BIOS. Enabling the AER52
53Root driver and having AER support in BIOS may result unpredictable53Some systems have AER support in firmware. Enabling Linux AER support at
54behavior. To avoid this conflict, a successful load of the AER Root driver54the same time the firmware handles AER may result in unpredictable
55requires ACPI _OSC support in the BIOS to allow the AER Root driver to55behavior. Therefore, Linux does not handle AER events unless the firmware
56request for native control of AER. See the PCI FW 3.0 Specification for56grants AER control to the OS via the ACPI _OSC method. See the PCI FW 3.0
57details regarding OSC usage. Currently, lots of firmwares don't provide57Specification for details regarding _OSC usage.
58_OSC support while they use PCI Express. To support such firmwares,
59forceload, a parameter of type bool, could enable AER to continue to
60be initiated although firmwares have no _OSC support. To enable the
61walkaround, pls. add aerdriver.forceload=y to kernel boot parameter line
62when booting kernel. Note that forceload=n by default.
63
64nosourceid, another parameter of type bool, can be used when broken
65hardware (mostly chipsets) has root ports that cannot obtain the reporting
66source ID. nosourceid=n by default.
67 58
682.3 AER error output592.3 AER error output
69When a PCI-E AER error is captured, an error message will be outputted to60
70console. If it's a correctable error, it is outputted as a warning.61When a PCIe AER error is captured, an error message will be output to
62console. If it's a correctable error, it is output as a warning.
71Otherwise, it is printed as an error. So users could choose different63Otherwise, it is printed as an error. So users could choose different
72log level to filter out correctable error messages.64log level to filter out correctable error messages.
73 65
Documentation/RCU/Design/Requirements/Requirements.html+22−0
@@ -2493,6 +2493,28 @@ or some future &ldquo;lazy&rdquo; · 2492 unmodified lines
2493variant of <tt>call_rcu()</tt> that might one day be created for2493variant of <tt>call_rcu()</tt> that might one day be created for
2494energy-efficiency purposes.2494energy-efficiency purposes.
2495 2495
2496<p>
2497That said, there are limits.
2498RCU requires that the <tt>rcu_head</tt> structure be aligned to a
2499two-byte boundary, and passing a misaligned <tt>rcu_head</tt>
2500structure to one of the <tt>call_rcu()</tt> family of functions
2501will result in a splat.
2502It is therefore necessary to exercise caution when packing
2503structures containing fields of type <tt>rcu_head</tt>.
2504Why not a four-byte or even eight-byte alignment requirement?
2505Because the m68k architecture provides only two-byte alignment,
2506and thus acts as alignment's least common denominator.
2507
2508<p>
2509The reason for reserving the bottom bit of pointers to
2510<tt>rcu_head</tt> structures is to leave the door open to
2511&ldquo;lazy&rdquo; callbacks whose invocations can safely be deferred.
2512Deferring invocation could potentially have energy-efficiency
2513benefits, but only if the rate of non-lazy callbacks decreases
2514significantly for some important workload.
2515In the meantime, reserving the bottom bit keeps this option open
2516in case it one day becomes useful.
2517
2496<h3><a name="Performance, Scalability, Response Time, and Reliability">2518<h3><a name="Performance, Scalability, Response Time, and Reliability">
2497Performance, Scalability, Response Time, and Reliability</a></h3>2519Performance, Scalability, Response Time, and Reliability</a></h3>
2498 2520
Documentation/RCU/lockdep-splat.txt+1−1
@@ -57,7 +57,7 @@ Call Trace: · 56 unmodified lines
57 [<ffffffff817db154>] kernel_thread_helper+0x4/0x1057 [<ffffffff817db154>] kernel_thread_helper+0x4/0x10
58 [<ffffffff81066430>] ? finish_task_switch+0x80/0x11058 [<ffffffff81066430>] ? finish_task_switch+0x80/0x110
59 [<ffffffff817d9c04>] ? retint_restore_args+0xe/0xe59 [<ffffffff817d9c04>] ? retint_restore_args+0xe/0xe
60 [<ffffffff81097510>] ? __init_kthread_worker+0x70/0x7060 [<ffffffff81097510>] ? __kthread_init_worker+0x70/0x70
61 [<ffffffff817db150>] ? gs_change+0xb/0xb61 [<ffffffff817db150>] ? gs_change+0xb/0xb
62 62
63Line 2776 of block/cfq-iosched.c in v3.0-rc5 is as follows:63Line 2776 of block/cfq-iosched.c in v3.0-rc5 is as follows:
Documentation/RCU/torture.txt+0−15
@@ -10,21 +10,6 @@ status messages via printk(), which can be examined via the dmesg · 9 unmodified lines
10command (perhaps grepping for "torture"). The test is started10command (perhaps grepping for "torture"). The test is started
11when the module is loaded, and stops when the module is unloaded.11when the module is loaded, and stops when the module is unloaded.
12 12
13CONFIG_RCU_TORTURE_TEST_RUNNABLE
14
15It is also possible to specify CONFIG_RCU_TORTURE_TEST=y, which will
16result in the tests being loaded into the base kernel. In this case,
17the CONFIG_RCU_TORTURE_TEST_RUNNABLE config option is used to specify
18whether the RCU torture tests are to be started immediately during
19boot or whether the /proc/sys/kernel/rcutorture_runnable file is used
20to enable them. This /proc file can be used to repeatedly pause and
21restart the tests, regardless of the initial state specified by the
22CONFIG_RCU_TORTURE_TEST_RUNNABLE config option.
23
24You will normally -not- want to start the RCU torture tests during boot
25(and thus the default is CONFIG_RCU_TORTURE_TEST_RUNNABLE=n), but doing
26this can sometimes be useful in finding boot-time bugs.
27
28 13
29MODULE PARAMETERS14MODULE PARAMETERS
30 15
Documentation/SecurityBugs+8−0
@@ -1,9 +1,15 @@
1.. _securitybugs:
2
3Security bugs
4=============
5
1Linux kernel developers take security very seriously. As such, we'd6Linux kernel developers take security very seriously. As such, we'd
2like to know when a security bug is found so that it can be fixed and7like to know when a security bug is found so that it can be fixed and
3disclosed as quickly as possible. Please report security bugs to the8disclosed as quickly as possible. Please report security bugs to the
4Linux kernel security team.9Linux kernel security team.
5 10
61) Contact111) Contact
12----------
7 13
8The Linux kernel security team can be contacted by email at14The Linux kernel security team can be contacted by email at
9<security@kernel.org>. This is a private list of security officers15<security@kernel.org>. This is a private list of security officers
@@ -18,6 +24,7 @@ Any exploit code is very helpful and will not be released without · 8 unmodified lines
18consent from the reporter unless it has already been made public.24consent from the reporter unless it has already been made public.
19 25
202) Disclosure262) Disclosure
27-------------
21 28
22The goal of the Linux kernel security team is to work with the29The goal of the Linux kernel security team is to work with the
23bug submitter to bug resolution as well as disclosure. We prefer30bug submitter to bug resolution as well as disclosure. We prefer
@@ -33,6 +40,7 @@ to a few weeks. As a basic default policy, we expect report date to · 9 unmodified lines
33disclosure date to be on the order of 7 days.40disclosure date to be on the order of 7 days.
34 41
353) Non-disclosure agreements423) Non-disclosure agreements
43----------------------------
36 44
37The Linux kernel security team is not a formal body and therefore unable45The Linux kernel security team is not a formal body and therefore unable
38to enter any non-disclosure agreements.46to enter any non-disclosure agreements.
Documentation/SubmitChecklist+69−58
@@ -1,109 +1,120 @@
1.. _submitchecklist:
2
1Linux Kernel patch submission checklist3Linux Kernel patch submission checklist
2~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~4~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3 5
4Here are some basic things that developers should do if they want to see their6Here are some basic things that developers should do if they want to see their
5kernel patch submissions accepted more quickly.7kernel patch submissions accepted more quickly.
6 8
7These are all above and beyond the documentation that is provided in9These are all above and beyond the documentation that is provided in
8Documentation/SubmittingPatches and elsewhere regarding submitting Linux10:ref:`Documentation/SubmittingPatches <submittingpatches>`
9kernel patches.11and elsewhere regarding submitting Linux kernel patches.
10 12
11 13
121: If you use a facility then #include the file that defines/declares141) If you use a facility then #include the file that defines/declares
13 that facility. Don't depend on other header files pulling in ones15 that facility. Don't depend on other header files pulling in ones
14 that you use.16 that you use.
15 17
162: Builds cleanly with applicable or modified CONFIG options =y, =m, and182) Builds cleanly:
17 =n. No gcc warnings/errors, no linker warnings/errors.19
20 a) with applicable or modified ``CONFIG`` options ``=y``, ``=m``, and
21 ``=n``. No ``gcc`` warnings/errors, no linker warnings/errors.
18 22
192b: Passes allnoconfig, allmodconfig23 b) Passes ``allnoconfig``, ``allmodconfig``
20 24
212c: Builds successfully when using O=builddir25 c) Builds successfully when using ``O=builddir``
22 26
233: Builds on multiple CPU architectures by using local cross-compile tools273) Builds on multiple CPU architectures by using local cross-compile tools
24 or some other build farm.28 or some other build farm.
25 29
264: ppc64 is a good architecture for cross-compilation checking because it304) ppc64 is a good architecture for cross-compilation checking because it
27 tends to use `unsigned long' for 64-bit quantities.31 tends to use ``unsigned long`` for 64-bit quantities.
28 32
295: Check your patch for general style as detailed in335) Check your patch for general style as detailed in
30 Documentation/CodingStyle. Check for trivial violations with the34 :ref:`Documentation/CodingStyle <codingstyle>`.
31 patch style checker prior to submission (scripts/checkpatch.pl).35 Check for trivial violations with the patch style checker prior to
36 submission (``scripts/checkpatch.pl``).
32 You should be able to justify all violations that remain in37 You should be able to justify all violations that remain in
33 your patch.38 your patch.
34 39
356: Any new or modified CONFIG options don't muck up the config menu.406) Any new or modified ``CONFIG`` options don't muck up the config menu.
36 41
377: All new Kconfig options have help text.427) All new ``Kconfig`` options have help text.
38 43
398: Has been carefully reviewed with respect to relevant Kconfig448) Has been carefully reviewed with respect to relevant ``Kconfig``
40 combinations. This is very hard to get right with testing -- brainpower45 combinations. This is very hard to get right with testing -- brainpower
41 pays off here.46 pays off here.
42 47
439: Check cleanly with sparse.489) Check cleanly with sparse.
49
5010) Use ``make checkstack`` and ``make namespacecheck`` and fix any problems
51 that they find.
52
53 .. note::
44 54
4510: Use 'make checkstack' and 'make namespacecheck' and fix any problems55 ``checkstack`` does not point out problems explicitly,
46 that they find. Note: checkstack does not point out problems explicitly,56 but any one function that uses more than 512 bytes on the stack is a
47 but any one function that uses more than 512 bytes on the stack is a57 candidate for change.
48 candidate for change.
49 58
5011: Include kernel-doc to document global kernel APIs. (Not required for5911) Include :ref:`kernel-doc <kernel_doc>` to document global kernel APIs.
51 static functions, but OK there also.) Use 'make htmldocs' or 'make60 (Not required for static functions, but OK there also.) Use
52 mandocs' to check the kernel-doc and fix any issues.61 ``make htmldocs`` or ``make pdfdocs`` to check the
62 :ref:`kernel-doc <kernel_doc>` and fix any issues.
53 63
5412: Has been tested with CONFIG_PREEMPT, CONFIG_DEBUG_PREEMPT,6412) Has been tested with ``CONFIG_PREEMPT``, ``CONFIG_DEBUG_PREEMPT``,
55 CONFIG_DEBUG_SLAB, CONFIG_DEBUG_PAGEALLOC, CONFIG_DEBUG_MUTEXES,65 ``CONFIG_DEBUG_SLAB``, ``CONFIG_DEBUG_PAGEALLOC``, ``CONFIG_DEBUG_MUTEXES``,
56 CONFIG_DEBUG_SPINLOCK, CONFIG_DEBUG_ATOMIC_SLEEP, CONFIG_PROVE_RCU66 ``CONFIG_DEBUG_SPINLOCK``, ``CONFIG_DEBUG_ATOMIC_SLEEP``,
57 and CONFIG_DEBUG_OBJECTS_RCU_HEAD all simultaneously enabled.67 ``CONFIG_PROVE_RCU`` and ``CONFIG_DEBUG_OBJECTS_RCU_HEAD`` all
68 simultaneously enabled.
58 69
5913: Has been build- and runtime tested with and without CONFIG_SMP and7013) Has been build- and runtime tested with and without ``CONFIG_SMP`` and
60 CONFIG_PREEMPT.71 ``CONFIG_PREEMPT.``
61 72
6214: If the patch affects IO/Disk, etc: has been tested with and without7314) If the patch affects IO/Disk, etc: has been tested with and without
63 CONFIG_LBDAF.74 ``CONFIG_LBDAF.``
64 75
6515: All codepaths have been exercised with all lockdep features enabled.7615) All codepaths have been exercised with all lockdep features enabled.
66 77
6716: All new /proc entries are documented under Documentation/7816) All new ``/proc`` entries are documented under ``Documentation/``
68 79
6917: All new kernel boot parameters are documented in8017) All new kernel boot parameters are documented in
70 Documentation/kernel-parameters.txt.81 ``Documentation/kernel-parameters.txt``.
71 82
7218: All new module parameters are documented with MODULE_PARM_DESC()8318) All new module parameters are documented with ``MODULE_PARM_DESC()``
73 84
7419: All new userspace interfaces are documented in Documentation/ABI/.8519) All new userspace interfaces are documented in ``Documentation/ABI/``.
75 See Documentation/ABI/README for more information.86 See ``Documentation/ABI/README`` for more information.
76 Patches that change userspace interfaces should be CCed to87 Patches that change userspace interfaces should be CCed to
77 linux-api@vger.kernel.org.88 linux-api@vger.kernel.org.
78 89
7920: Check that it all passes `make headers_check'.9020) Check that it all passes ``make headers_check``.
80 91
8121: Has been checked with injection of at least slab and page-allocation9221) Has been checked with injection of at least slab and page-allocation
82 failures. See Documentation/fault-injection/.93 failures. See ``Documentation/fault-injection/``.
83 94
84 If the new code is substantial, addition of subsystem-specific fault95 If the new code is substantial, addition of subsystem-specific fault
85 injection might be appropriate.96 injection might be appropriate.
86 97
8722: Newly-added code has been compiled with `gcc -W' (use "make9822) Newly-added code has been compiled with ``gcc -W`` (use
88 EXTRA_CFLAGS=-W"). This will generate lots of noise, but is good for99 ``make EXTRA_CFLAGS=-W``). This will generate lots of noise, but is good
89 finding bugs like "warning: comparison between signed and unsigned".100 for finding bugs like "warning: comparison between signed and unsigned".
90 101
9123: Tested after it has been merged into the -mm patchset to make sure10223) Tested after it has been merged into the -mm patchset to make sure
92 that it still works with all of the other queued patches and various103 that it still works with all of the other queued patches and various
93 changes in the VM, VFS, and other subsystems.104 changes in the VM, VFS, and other subsystems.
94 105
9524: All memory barriers {e.g., barrier(), rmb(), wmb()} need a comment in the10624) All memory barriers {e.g., ``barrier()``, ``rmb()``, ``wmb()``} need a
96 source code that explains the logic of what they are doing and why.107 comment in the source code that explains the logic of what they are doing
108 and why.
97 109
9825: If any ioctl's are added by the patch, then also update11025) If any ioctl's are added by the patch, then also update
99 Documentation/ioctl/ioctl-number.txt.111 ``Documentation/ioctl/ioctl-number.txt``.
100 112
10126: If your modified source code depends on or uses any of the kernel11326) If your modified source code depends on or uses any of the kernel
102 APIs or features that are related to the following kconfig symbols,114 APIs or features that are related to the following ``Kconfig`` symbols,
103 then test multiple builds with the related kconfig symbols disabled115 then test multiple builds with the related ``Kconfig`` symbols disabled
104 and/or =m (if that option is available) [not all of these at the116 and/or ``=m`` (if that option is available) [not all of these at the
105 same time, just various/random combinations of them]:117 same time, just various/random combinations of them]:
106 118
107 CONFIG_SMP, CONFIG_SYSFS, CONFIG_PROC_FS, CONFIG_INPUT, CONFIG_PCI,119 ``CONFIG_SMP``, ``CONFIG_SYSFS``, ``CONFIG_PROC_FS``, ``CONFIG_INPUT``, ``CONFIG_PCI``, ``CONFIG_BLOCK``, ``CONFIG_PM``, ``CONFIG_MAGIC_SYSRQ``,
108 CONFIG_BLOCK, CONFIG_PM, CONFIG_MAGIC_SYSRQ,120 ``CONFIG_NET``, ``CONFIG_INET=n`` (but latter with ``CONFIG_NET=y``).
109 CONFIG_NET, CONFIG_INET=n (but latter with CONFIG_NET=y)
Documentation/SubmittingDrivers+37−17
@@ -1,5 +1,7 @@
1.. _submittingdrivers:
2
1Submitting Drivers For The Linux Kernel3Submitting Drivers For The Linux Kernel
2---------------------------------------4=======================================
3 5
4This document is intended to explain how to submit device drivers to the6This document is intended to explain how to submit device drivers to the
5various kernel trees. Note that if you are interested in video card drivers7various kernel trees. Note that if you are interested in video card drivers
@@ -38,42 +40,48 @@ Linux 2.4: · 32 unmodified lines
38 maintainer does not respond or you cannot find the appropriate40 maintainer does not respond or you cannot find the appropriate
39 maintainer then please contact Willy Tarreau <w@1wt.eu>.41 maintainer then please contact Willy Tarreau <w@1wt.eu>.
40 42
41Linux 2.6:43Linux 2.6 and upper:
42 The same rules apply as 2.4 except that you should follow linux-kernel44 The same rules apply as 2.4 except that you should follow linux-kernel
43 to track changes in API's. The final contact point for Linux 2.645 to track changes in API's. The final contact point for Linux 2.6+
44 submissions is Andrew Morton.46 submissions is Andrew Morton.
45 47
46What Criteria Determine Acceptance48What Criteria Determine Acceptance
47----------------------------------49----------------------------------
48 50
49Licensing: The code must be released to us under the51Licensing:
52 The code must be released to us under the
50 GNU General Public License. We don't insist on any kind53 GNU General Public License. We don't insist on any kind
51 of exclusive GPL licensing, and if you wish the driver54 of exclusive GPL licensing, and if you wish the driver
52 to be useful to other communities such as BSD you may well55 to be useful to other communities such as BSD you may well
53 wish to release under multiple licenses.56 wish to release under multiple licenses.
54 See accepted licenses at include/linux/module.h57 See accepted licenses at include/linux/module.h
55 58
56Copyright: The copyright owner must agree to use of GPL.59Copyright:
60 The copyright owner must agree to use of GPL.
57 It's best if the submitter and copyright owner61 It's best if the submitter and copyright owner
58 are the same person/entity. If not, the name of62 are the same person/entity. If not, the name of
59 the person/entity authorizing use of GPL should be63 the person/entity authorizing use of GPL should be
60 listed in case it's necessary to verify the will of64 listed in case it's necessary to verify the will of
61 the copyright owner.65 the copyright owner.
62 66
63Interfaces: If your driver uses existing interfaces and behaves like67Interfaces:
68 If your driver uses existing interfaces and behaves like
64 other drivers in the same class it will be much more likely69 other drivers in the same class it will be much more likely
65 to be accepted than if it invents gratuitous new ones.70 to be accepted than if it invents gratuitous new ones.
66 If you need to implement a common API over Linux and NT71 If you need to implement a common API over Linux and NT
67 drivers do it in userspace.72 drivers do it in userspace.
68 73
69Code: Please use the Linux style of code formatting as documented74Code:
70 in Documentation/CodingStyle. If you have sections of code75 Please use the Linux style of code formatting as documented
76 in :ref:`Documentation/CodingStyle <codingStyle>`.
77 If you have sections of code
71 that need to be in other formats, for example because they78 that need to be in other formats, for example because they
72 are shared with a windows driver kit and you want to79 are shared with a windows driver kit and you want to
73 maintain them just once separate them out nicely and note80 maintain them just once separate them out nicely and note
74 this fact.81 this fact.
75 82
76Portability: Pointers are not always 32bits, not all computers are little83Portability:
84 Pointers are not always 32bits, not all computers are little
77 endian, people do not all have floating point and you85 endian, people do not all have floating point and you
78 shouldn't use inline x86 assembler in your driver without86 shouldn't use inline x86 assembler in your driver without
79 careful thought. Pure x86 drivers generally are not popular.87 careful thought. Pure x86 drivers generally are not popular.
@@ -81,12 +89,14 @@ Portability: Pointers are not always 32bits, not all computers are little · 1 unmodified line
81 but it is easy to make sure the code can easily be made89 but it is easy to make sure the code can easily be made
82 portable.90 portable.
83 91
84Clarity: It helps if anyone can see how to fix the driver. It helps92Clarity:
93 It helps if anyone can see how to fix the driver. It helps
85 you because you get patches not bug reports. If you submit a94 you because you get patches not bug reports. If you submit a
86 driver that intentionally obfuscates how the hardware works95 driver that intentionally obfuscates how the hardware works
87 it will go in the bitbucket.96 it will go in the bitbucket.
88 97
89PM support: Since Linux is used on many portable and desktop systems, your98PM support:
99 Since Linux is used on many portable and desktop systems, your
90 driver is likely to be used on such a system and therefore it100 driver is likely to be used on such a system and therefore it
91 should support basic power management by implementing, if101 should support basic power management by implementing, if
92 necessary, the .suspend and .resume methods used during the102 necessary, the .suspend and .resume methods used during the
@@ -101,7 +111,8 @@ PM support: Since Linux is used on many portable and desktop systems, your · 8 unmodified lines
101 complete overview of the power management issues related to111 complete overview of the power management issues related to
102 drivers see Documentation/power/devices.txt .112 drivers see Documentation/power/devices.txt .
103 113
104Control: In general if there is active maintenance of a driver by114Control:
115 In general if there is active maintenance of a driver by
105 the author then patches will be redirected to them unless116 the author then patches will be redirected to them unless
106 they are totally obvious and without need of checking.117 they are totally obvious and without need of checking.
107 If you want to be the contact and update point for the118 If you want to be the contact and update point for the
@@ -111,13 +122,15 @@ Control: In general if there is active maintenance of a driver by · 3 unmodified lines
111What Criteria Do Not Determine Acceptance122What Criteria Do Not Determine Acceptance
112-----------------------------------------123-----------------------------------------
113 124
114Vendor: Being the hardware vendor and maintaining the driver is125Vendor:
126 Being the hardware vendor and maintaining the driver is
115 often a good thing. If there is a stable working driver from127 often a good thing. If there is a stable working driver from
116 other people already in the tree don't expect 'we are the128 other people already in the tree don't expect 'we are the
117 vendor' to get your driver chosen. Ideally work with the129 vendor' to get your driver chosen. Ideally work with the
118 existing driver author to build a single perfect driver.130 existing driver author to build a single perfect driver.
119 131
120Author: It doesn't matter if a large Linux company wrote the driver,132Author:
133 It doesn't matter if a large Linux company wrote the driver,
121 or you did. Nobody has any special access to the kernel134 or you did. Nobody has any special access to the kernel
122 tree. Anyone who tells you otherwise isn't telling the135 tree. Anyone who tells you otherwise isn't telling the
123 whole story.136 whole story.
@@ -127,8 +140,10 @@ Resources · 3 unmodified lines
127---------140---------
128 141
129Linux kernel master tree:142Linux kernel master tree:
130 ftp.??.kernel.org:/pub/linux/kernel/...143 ftp.\ *country_code*\ .kernel.org:/pub/linux/kernel/...
131 ?? == your country code, such as "us", "uk", "fr", etc.144
145 where *country_code* == your country code, such as
146 **us**, **uk**, **fr**, etc.
132 147
133 http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git148 http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git
134 149
@@ -141,14 +156,19 @@ Linux Device Drivers, Third Edition (covers 2.6.10): · 6 unmodified lines
141 156
142LWN.net:157LWN.net:
143 Weekly summary of kernel development activity - http://lwn.net/158 Weekly summary of kernel development activity - http://lwn.net/
159
144 2.6 API changes:160 2.6 API changes:
161
145 http://lwn.net/Articles/2.6-kernel-api/162 http://lwn.net/Articles/2.6-kernel-api/
163
146 Porting drivers from prior kernels to 2.6:164 Porting drivers from prior kernels to 2.6:
165
147 http://lwn.net/Articles/driver-porting/166 http://lwn.net/Articles/driver-porting/
148 167
149KernelNewbies:168KernelNewbies:
150 Documentation and assistance for new kernel programmers169 Documentation and assistance for new kernel programmers
151 http://kernelnewbies.org/170
171 http://kernelnewbies.org/
152 172
153Linux USB project:173Linux USB project:
154 http://www.linux-usb.org/174 http://www.linux-usb.org/
Documentation/SubmittingPatches+166−146
@@ -1,9 +1,7 @@
1.. _submittingpatches:
1 2
2 How to Get Your Change Into the Linux Kernel3How to Get Your Change Into the Linux Kernel or Care And Operation Of Your Linus Torvalds
3 or4=========================================================================================
4 Care And Operation Of Your Linus Torvalds
5
6
7 5
8For a person or company who wishes to submit a change to the Linux6For a person or company who wishes to submit a change to the Linux
9kernel, the process can sometimes be daunting if you're not familiar7kernel, the process can sometimes be daunting if you're not familiar
@@ -12,57 +10,59 @@ can greatly increase the chances of your change being accepted. · 2 unmodified lines
12 10
13This document contains a large number of suggestions in a relatively terse11This document contains a large number of suggestions in a relatively terse
14format. For detailed information on how the kernel development process12format. For detailed information on how the kernel development process
15works, see Documentation/development-process. Also, read13works, see :ref:`Documentation/development-process <development_process_main>`.
16Documentation/SubmitChecklist for a list of items to check before14Also, read :ref:`Documentation/SubmitChecklist <submitchecklist>`
15for a list of items to check before
17submitting code. If you are submitting a driver, also read16submitting code. If you are submitting a driver, also read
18Documentation/SubmittingDrivers; for device tree binding patches, read17:ref:`Documentation/SubmittingDrivers <submittingdrivers>`;
18for device tree binding patches, read
19Documentation/devicetree/bindings/submitting-patches.txt.19Documentation/devicetree/bindings/submitting-patches.txt.
20 20
21Many of these steps describe the default behavior of the git version21Many of these steps describe the default behavior of the ``git`` version
22control system; if you use git to prepare your patches, you'll find much22control system; if you use ``git`` to prepare your patches, you'll find much
23of the mechanical work done for you, though you'll still need to prepare23of the mechanical work done for you, though you'll still need to prepare
24and document a sensible set of patches. In general, use of git will make24and document a sensible set of patches. In general, use of ``git`` will make
25your life as a kernel developer easier.25your life as a kernel developer easier.
26 26
27--------------------------------------------27Creating and Sending your Change
28SECTION 1 - CREATING AND SENDING YOUR CHANGE28********************************
29--------------------------------------------
30 29
31 30
320) Obtain a current source tree310) Obtain a current source tree
33-------------------------------32-------------------------------
34 33
35If you do not have a repository with the current kernel source handy, use34If you do not have a repository with the current kernel source handy, use
36git to obtain one. You'll want to start with the mainline repository,35``git`` to obtain one. You'll want to start with the mainline repository,
37which can be grabbed with:36which can be grabbed with::
38 37
39 git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 38 git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
40 39
41Note, however, that you may not want to develop against the mainline tree40Note, however, that you may not want to develop against the mainline tree
42directly. Most subsystem maintainers run their own trees and want to see41directly. Most subsystem maintainers run their own trees and want to see
43patches prepared against those trees. See the "T:" entry for the subsystem42patches prepared against those trees. See the **T:** entry for the subsystem
44in the MAINTAINERS file to find that tree, or simply ask the maintainer if43in the MAINTAINERS file to find that tree, or simply ask the maintainer if
45the tree is not listed there.44the tree is not listed there.
46 45
47It is still possible to download kernel releases via tarballs (as described46It is still possible to download kernel releases via tarballs (as described
48in the next section), but that is the hard way to do kernel development.47in the next section), but that is the hard way to do kernel development.
49 48
501) "diff -up"491) ``diff -up``
51------------50---------------
52 51
53If you must generate your patches by hand, use "diff -up" or "diff -uprN"52If you must generate your patches by hand, use ``diff -up`` or ``diff -uprN``
54to create patches. Git generates patches in this form by default; if53to create patches. Git generates patches in this form by default; if
55you're using git, you can skip this section entirely.54you're using ``git``, you can skip this section entirely.
56 55
57All changes to the Linux kernel occur in the form of patches, as56All changes to the Linux kernel occur in the form of patches, as
58generated by diff(1). When creating your patch, make sure to create it57generated by :manpage:`diff(1)`. When creating your patch, make sure to
59in "unified diff" format, as supplied by the '-u' argument to diff(1).58create it in "unified diff" format, as supplied by the ``-u`` argument
60Also, please use the '-p' argument which shows which C function each59to :manpage:`diff(1)`.
61change is in - that makes the resultant diff a lot easier to read.60Also, please use the ``-p`` argument which shows which C function each
61change is in - that makes the resultant ``diff`` a lot easier to read.
62Patches should be based in the root kernel source directory,62Patches should be based in the root kernel source directory,
63not in any lower subdirectory.63not in any lower subdirectory.
64 64
65To create a patch for a single file, it is often sufficient to do:65To create a patch for a single file, it is often sufficient to do::
66 66
67 SRCTREE= linux67 SRCTREE= linux
68 MYFILE= drivers/net/mydriver.c68 MYFILE= drivers/net/mydriver.c
@@ -74,8 +74,8 @@ To create a patch for a single file, it is often sufficient to do: · 5 unmodified lines
74 diff -up $SRCTREE/$MYFILE{.orig,} > /tmp/patch74 diff -up $SRCTREE/$MYFILE{.orig,} > /tmp/patch
75 75
76To create a patch for multiple files, you should unpack a "vanilla",76To create a patch for multiple files, you should unpack a "vanilla",
77or unmodified kernel source tree, and generate a diff against your77or unmodified kernel source tree, and generate a ``diff`` against your
78own source tree. For example:78own source tree. For example::
79 79
80 MYSRC= /devel/linux80 MYSRC= /devel/linux
81 81
@@ -84,27 +84,27 @@ own source tree. For example: · 2 unmodified lines
84 diff -uprN -X linux-3.19-vanilla/Documentation/dontdiff \84 diff -uprN -X linux-3.19-vanilla/Documentation/dontdiff \
85 linux-3.19-vanilla $MYSRC > /tmp/patch85 linux-3.19-vanilla $MYSRC > /tmp/patch
86 86
87"dontdiff" is a list of files which are generated by the kernel during87``dontdiff`` is a list of files which are generated by the kernel during
88the build process, and should be ignored in any diff(1)-generated88the build process, and should be ignored in any :manpage:`diff(1)`-generated
89patch.89patch.
90 90
91Make sure your patch does not include any extra files which do not91Make sure your patch does not include any extra files which do not
92belong in a patch submission. Make sure to review your patch -after-92belong in a patch submission. Make sure to review your patch -after-
93generating it with diff(1), to ensure accuracy.93generating it with :manpage:`diff(1)`, to ensure accuracy.
94 94
95If your changes produce a lot of deltas, you need to split them into95If your changes produce a lot of deltas, you need to split them into
96individual patches which modify things in logical stages; see section96individual patches which modify things in logical stages; see
97#3. This will facilitate review by other kernel developers,97:ref:`split_changes`. This will facilitate review by other kernel developers,
98very important if you want your patch accepted.98very important if you want your patch accepted.
99 99
100If you're using git, "git rebase -i" can help you with this process. If100If you're using ``git``, ``git rebase -i`` can help you with this process. If
101you're not using git, quilt <http://savannah.nongnu.org/projects/quilt>101you're not using ``git``, ``quilt`` <http://savannah.nongnu.org/projects/quilt>
102is another popular alternative.102is another popular alternative.
103 103
104.. _describe_changes:
104 105
105 1062) Describe your changes
1062) Describe your changes.107------------------------
107-------------------------
108 108
109Describe your problem. Whether your patch is a one-line bug fix or109Describe your problem. Whether your patch is a one-line bug fix or
1105000 lines of a new feature, there must be an underlying problem that1105000 lines of a new feature, there must be an underlying problem that
@@ -137,11 +137,11 @@ as you intend it to. · 26 unmodified lines
137 137
138The maintainer will thank you if you write your patch description in a138The maintainer will thank you if you write your patch description in a
139form which can be easily pulled into Linux's source code management139form which can be easily pulled into Linux's source code management
140system, git, as a "commit log". See #15, below.140system, ``git``, as a "commit log". See :ref:`explicit_in_reply_to`.
141 141
142Solve only one problem per patch. If your description starts to get142Solve only one problem per patch. If your description starts to get
143long, that's a sign that you probably need to split up your patch.143long, that's a sign that you probably need to split up your patch.
144See #3, next.144See :ref:`split_changes`.
145 145
146When you submit or resubmit a patch or patch series, include the146When you submit or resubmit a patch or patch series, include the
147complete patch description and justification for it. Don't just147complete patch description and justification for it. Don't just
@@ -160,7 +160,7 @@ its behaviour. · 12 unmodified lines
160If the patch fixes a logged bug entry, refer to that bug entry by160If the patch fixes a logged bug entry, refer to that bug entry by
161number and URL. If the patch follows from a mailing list discussion,161number and URL. If the patch follows from a mailing list discussion,
162give a URL to the mailing list archive; use the https://lkml.kernel.org/162give a URL to the mailing list archive; use the https://lkml.kernel.org/
163redirector with a Message-Id, to ensure that the links cannot become163redirector with a ``Message-Id``, to ensure that the links cannot become
164stale.164stale.
165 165
166However, try to make your explanation understandable without external166However, try to make your explanation understandable without external
@@ -171,7 +171,7 @@ patch as submitted. · 4 unmodified lines
171If you want to refer to a specific commit, don't just refer to the171If you want to refer to a specific commit, don't just refer to the
172SHA-1 ID of the commit. Please also include the oneline summary of172SHA-1 ID of the commit. Please also include the oneline summary of
173the commit, to make it easier for reviewers to know what it is about.173the commit, to make it easier for reviewers to know what it is about.
174Example:174Example::
175 175
176 Commit e21d2170f36602ae2708 ("video: remove unnecessary176 Commit e21d2170f36602ae2708 ("video: remove unnecessary
177 platform_set_drvdata()") removed the unnecessary177 platform_set_drvdata()") removed the unnecessary
@@ -185,23 +185,25 @@ there is no collision with your six-character ID now, that condition may · 7 unmodified lines
185change five years from now.185change five years from now.
186 186
187If your patch fixes a bug in a specific commit, e.g. you found an issue using187If your patch fixes a bug in a specific commit, e.g. you found an issue using
188git-bisect, please use the 'Fixes:' tag with the first 12 characters of the188``git bisect``, please use the 'Fixes:' tag with the first 12 characters of
189SHA-1 ID, and the one line summary. For example:189the SHA-1 ID, and the one line summary. For example::
190 190
191 Fixes: e21d2170f366 ("video: remove unnecessary platform_set_drvdata()")191 Fixes: e21d2170f366 ("video: remove unnecessary platform_set_drvdata()")
192 192
193The following git-config settings can be used to add a pretty format for193The following ``git config`` settings can be used to add a pretty format for
194outputting the above style in the git log or git show commands194outputting the above style in the ``git log`` or ``git show`` commands::
195 195
196 [core]196 [core]
197 abbrev = 12197 abbrev = 12
198 [pretty]198 [pretty]
199 fixes = Fixes: %h (\"%s\")199 fixes = Fixes: %h (\"%s\")
200 200
2013) Separate your changes.201.. _split_changes:
202-------------------------202
2033) Separate your changes
204------------------------
203 205
204Separate each _logical change_ into a separate patch.206Separate each **logical change** into a separate patch.
205 207
206For example, if your changes include both bug fixes and performance208For example, if your changes include both bug fixes and performance
207enhancements for a single driver, separate those changes into two209enhancements for a single driver, separate those changes into two
@@ -217,12 +219,12 @@ change that can be verified by reviewers. Each patch should be justifiable · 9 unmodified lines
217on its own merits.219on its own merits.
218 220
219If one patch depends on another patch in order for a change to be221If one patch depends on another patch in order for a change to be
220complete, that is OK. Simply note "this patch depends on patch X"222complete, that is OK. Simply note **"this patch depends on patch X"**
221in your patch description.223in your patch description.
222 224
223When dividing your change into a series of patches, take special care to225When dividing your change into a series of patches, take special care to
224ensure that the kernel builds and runs properly after each patch in the226ensure that the kernel builds and runs properly after each patch in the
225series. Developers using "git bisect" to track down a problem can end up227series. Developers using ``git bisect`` to track down a problem can end up
226splitting your patch series at any point; they will not thank you if you228splitting your patch series at any point; they will not thank you if you
227introduce bugs in the middle.229introduce bugs in the middle.
228 230
@@ -231,11 +233,13 @@ then only post say 15 or so at a time and wait for review and integration. · 2 unmodified lines
231 233
232 234
233 235
2344) Style-check your changes.2364) Style-check your changes
235----------------------------237---------------------------
236 238
237Check your patch for basic style violations, details of which can be239Check your patch for basic style violations, details of which can be
238found in Documentation/CodingStyle. Failure to do so simply wastes240found in
241:ref:`Documentation/CodingStyle <codingstyle>`.
242Failure to do so simply wastes
239the reviewers time and will get your patch rejected, probably243the reviewers time and will get your patch rejected, probably
240without even being read.244without even being read.
241 245
@@ -260,8 +264,8 @@ You should be able to justify all violations that remain in your · 18 unmodified lines
260patch.264patch.
261 265
262 266
2635) Select the recipients for your patch.2675) Select the recipients for your patch
264----------------------------------------268---------------------------------------
265 269
266You should always copy the appropriate subsystem maintainer(s) on any patch270You should always copy the appropriate subsystem maintainer(s) on any patch
267to code that they maintain; look through the MAINTAINERS file and the271to code that they maintain; look through the MAINTAINERS file and the
@@ -295,13 +299,14 @@ to allow distributors to get the patch out to users; in such cases, · 27 unmodified lines
295obviously, the patch should not be sent to any public lists.299obviously, the patch should not be sent to any public lists.
296 300
297Patches that fix a severe bug in a released kernel should be directed301Patches that fix a severe bug in a released kernel should be directed
298toward the stable maintainers by putting a line like this:302toward the stable maintainers by putting a line like this::
299 303
300 Cc: stable@vger.kernel.org304 Cc: stable@vger.kernel.org
301 305
302into the sign-off area of your patch (note, NOT an email recipient). You306into the sign-off area of your patch (note, NOT an email recipient). You
303should also read Documentation/stable_kernel_rules.txt in addition to this307should also read
304file.308:ref:`Documentation/stable_kernel_rules.txt <stable_kernel_rules>`
309in addition to this file.
305 310
306Note, however, that some subsystem maintainers want to come to their own311Note, however, that some subsystem maintainers want to come to their own
307conclusions on which patches should go to the stable trees. The networking312conclusions on which patches should go to the stable trees. The networking
@@ -312,28 +317,30 @@ If changes affect userland-kernel interfaces, please send the MAN-PAGES · 4 unmodified lines
312maintainer (as listed in the MAINTAINERS file) a man-pages patch, or at317maintainer (as listed in the MAINTAINERS file) a man-pages patch, or at
313least a notification of the change, so that some information makes its way318least a notification of the change, so that some information makes its way
314into the manual pages. User-space API changes should also be copied to319into the manual pages. User-space API changes should also be copied to
315linux-api@vger.kernel.org. 320linux-api@vger.kernel.org.
316 321
317For small patches you may want to CC the Trivial Patch Monkey322For small patches you may want to CC the Trivial Patch Monkey
318trivial@kernel.org which collects "trivial" patches. Have a look323trivial@kernel.org which collects "trivial" patches. Have a look
319into the MAINTAINERS file for its current manager.324into the MAINTAINERS file for its current manager.
325
320Trivial patches must qualify for one of the following rules:326Trivial patches must qualify for one of the following rules:
321 Spelling fixes in documentation327
322 Spelling fixes for errors which could break grep(1)328- Spelling fixes in documentation
323 Warning fixes (cluttering with useless warnings is bad)329- Spelling fixes for errors which could break :manpage:`grep(1)`
324 Compilation fixes (only if they are actually correct)330- Warning fixes (cluttering with useless warnings is bad)
325 Runtime fixes (only if they actually fix things)331- Compilation fixes (only if they are actually correct)
326 Removing use of deprecated functions/macros332- Runtime fixes (only if they actually fix things)
327 Contact detail and documentation fixes333- Removing use of deprecated functions/macros
328 Non-portable code replaced by portable code (even in arch-specific,334- Contact detail and documentation fixes
329 since people copy, as long as it's trivial)335- Non-portable code replaced by portable code (even in arch-specific,
330 Any fix by the author/maintainer of the file (ie. patch monkey336 since people copy, as long as it's trivial)
331 in re-transmission mode)337- Any fix by the author/maintainer of the file (ie. patch monkey
338 in re-transmission mode)
332 339
333 340
334 341
3356) No MIME, no links, no compression, no attachments. Just plain text.3426) No MIME, no links, no compression, no attachments. Just plain text
336-----------------------------------------------------------------------343----------------------------------------------------------------------
337 344
338Linus and other kernel developers need to be able to read and comment345Linus and other kernel developers need to be able to read and comment
339on the changes you are submitting. It is important for a kernel346on the changes you are submitting. It is important for a kernel
@@ -341,8 +348,11 @@ developer to be able to "quote" your changes, using standard e-mail · 1 unmodified line
341tools, so that they may comment on specific portions of your code.348tools, so that they may comment on specific portions of your code.
342 349
343For this reason, all patches should be submitted by e-mail "inline".350For this reason, all patches should be submitted by e-mail "inline".
344WARNING: Be wary of your editor's word-wrap corrupting your patch,351
345if you choose to cut-n-paste your patch.352.. warning::
353
354 Be wary of your editor's word-wrap corrupting your patch,
355 if you choose to cut-n-paste your patch.
346 356
347Do not attach the patch as a MIME attachment, compressed or not.357Do not attach the patch as a MIME attachment, compressed or not.
348Many popular e-mail applications will not always transmit a MIME358Many popular e-mail applications will not always transmit a MIME
@@ -353,11 +363,12 @@ decreasing the likelihood of your MIME-attached change being accepted. · 4 unmodified lines
353Exception: If your mailer is mangling patches then someone may ask363Exception: If your mailer is mangling patches then someone may ask
354you to re-send them using MIME.364you to re-send them using MIME.
355 365
356See Documentation/email-clients.txt for hints about configuring366See :ref:`Documentation/email-clients.txt <email_clients>`
357your e-mail client so that it sends your patches untouched.367for hints about configuring your e-mail client so that it sends your patches
368untouched.
358 369
3597) E-mail size.3707) E-mail size
360---------------371--------------
361 372
362Large changes are not appropriate for mailing lists, and some373Large changes are not appropriate for mailing lists, and some
363maintainers. If your patch, uncompressed, exceeds 300 kB in size,374maintainers. If your patch, uncompressed, exceeds 300 kB in size,
@@ -366,8 +377,8 @@ server, and provide instead a URL (link) pointing to your patch. But note · 2 unmodified lines
366that if your patch exceeds 300 kB, it almost certainly needs to be broken up377that if your patch exceeds 300 kB, it almost certainly needs to be broken up
367anyway.378anyway.
368 379
3698) Respond to review comments.3808) Respond to review comments
370------------------------------381-----------------------------
371 382
372Your patch will almost certainly get comments from reviewers on ways in383Your patch will almost certainly get comments from reviewers on ways in
373which the patch can be improved. You must respond to those comments;384which the patch can be improved. You must respond to those comments;
@@ -382,8 +393,8 @@ reviewers sometimes get grumpy. Even in that case, though, respond · 8 unmodified lines
382politely and address the problems they have pointed out.393politely and address the problems they have pointed out.
383 394
384 395
3859) Don't get discouraged - or impatient.3969) Don't get discouraged - or impatient
386----------------------------------------397---------------------------------------
387 398
388After you have submitted your change, be patient and wait. Reviewers are399After you have submitted your change, be patient and wait. Reviewers are
389busy people and may not get to your patch right away.400busy people and may not get to your patch right away.
@@ -419,9 +430,10 @@ patch, which certifies that you wrote it or otherwise have the right to · 29 unmodified lines
419pass it on as an open-source patch. The rules are pretty simple: if you430pass it on as an open-source patch. The rules are pretty simple: if you
420can certify the below:431can certify the below:
421 432
422 Developer's Certificate of Origin 1.1433Developer's Certificate of Origin 1.1
434^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
423 435
424 By making a contribution to this project, I certify that:436By making a contribution to this project, I certify that:
425 437
426 (a) The contribution was created in whole or in part by me and I438 (a) The contribution was created in whole or in part by me and I
427 have the right to submit it under the open source license439 have the right to submit it under the open source license
@@ -445,7 +457,7 @@ can certify the below: · 17 unmodified lines
445 maintained indefinitely and may be redistributed consistent with457 maintained indefinitely and may be redistributed consistent with
446 this project or the open source license(s) involved.458 this project or the open source license(s) involved.
447 459
448then you just add a line saying460then you just add a line saying::
449 461
450 Signed-off-by: Random J Developer <random@developer.example.org>462 Signed-off-by: Random J Developer <random@developer.example.org>
451 463
@@ -466,7 +478,7 @@ you add a line between the last Signed-off-by header and yours, indicating · 14 unmodified lines
466the nature of your changes. While there is nothing mandatory about this, it478the nature of your changes. While there is nothing mandatory about this, it
467seems like prepending the description with your mail and/or name, all479seems like prepending the description with your mail and/or name, all
468enclosed in square brackets, is noticeable enough to make it obvious that480enclosed in square brackets, is noticeable enough to make it obvious that
469you are responsible for last-minute changes. Example :481you are responsible for last-minute changes. Example::
470 482
471 Signed-off-by: Random J Developer <random@developer.example.org>483 Signed-off-by: Random J Developer <random@developer.example.org>
472 [lucky@maintainer.example.org: struct foo moved from foo.c to foo.h]484 [lucky@maintainer.example.org: struct foo moved from foo.c to foo.h]
@@ -481,15 +493,15 @@ which appears in the changelog. · 8 unmodified lines
481Special note to back-porters: It seems to be a common and useful practice493Special note to back-porters: It seems to be a common and useful practice
482to insert an indication of the origin of a patch at the top of the commit494to insert an indication of the origin of a patch at the top of the commit
483message (just after the subject line) to facilitate tracking. For instance,495message (just after the subject line) to facilitate tracking. For instance,
484here's what we see in a 3.x-stable release:496here's what we see in a 3.x-stable release::
485 497
486Date: Tue Oct 7 07:26:38 2014 -0400498 Date: Tue Oct 7 07:26:38 2014 -0400
487 499
488 libata: Un-break ATA blacklist500 libata: Un-break ATA blacklist
489 501
490 commit 1c40279960bcd7d52dbdf1d466b20d24b99176c8 upstream.502 commit 1c40279960bcd7d52dbdf1d466b20d24b99176c8 upstream.
491 503
492And here's what might appear in an older kernel once a patch is backported:504And here's what might appear in an older kernel once a patch is backported::
493 505
494 Date: Tue May 13 22:12:27 2008 +0200506 Date: Tue May 13 22:12:27 2008 +0200
495 507
@@ -529,7 +541,7 @@ When in doubt people should refer to the original discussion in the mailing · 33 unmodified lines
529list archives.541list archives.
530 542
531If a person has had the opportunity to comment on a patch, but has not543If a person has had the opportunity to comment on a patch, but has not
532provided such comments, you may optionally add a "Cc:" tag to the patch.544provided such comments, you may optionally add a ``Cc:`` tag to the patch.
533This is the only tag which might be added without an explicit action by the545This is the only tag which might be added without an explicit action by the
534person it names - but it should indicate that this person was copied on the546person it names - but it should indicate that this person was copied on the
535patch. This tag documents that potentially interested parties547patch. This tag documents that potentially interested parties
@@ -552,11 +564,12 @@ future patches, and ensures credit for the testers. · 16 unmodified lines
552Reviewed-by:, instead, indicates that the patch has been reviewed and found564Reviewed-by:, instead, indicates that the patch has been reviewed and found
553acceptable according to the Reviewer's Statement:565acceptable according to the Reviewer's Statement:
554 566
555 Reviewer's statement of oversight567Reviewer's statement of oversight
568^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
556 569
557 By offering my Reviewed-by: tag, I state that:570By offering my Reviewed-by: tag, I state that:
558 571
559 (a) I have carried out a technical review of this patch to572 (a) I have carried out a technical review of this patch to
560 evaluate its appropriateness and readiness for inclusion into573 evaluate its appropriateness and readiness for inclusion into
561 the mainline kernel.574 the mainline kernel.
562 575
@@ -594,24 +607,25 @@ A Fixes: tag indicates that the patch fixes an issue in a previous commit. It · 31 unmodified lines
594is used to make it easy to determine where a bug originated, which can help607is used to make it easy to determine where a bug originated, which can help
595review a bug fix. This tag also assists the stable kernel team in determining608review a bug fix. This tag also assists the stable kernel team in determining
596which stable kernel versions should receive your fix. This is the preferred609which stable kernel versions should receive your fix. This is the preferred
597method for indicating a bug fixed by the patch. See #2 above for more details.610method for indicating a bug fixed by the patch. See :ref:`describe_changes`
611for more details.
598 612
599 613
60014) The canonical patch format61414) The canonical patch format
601------------------------------615------------------------------
602 616
603This section describes how the patch itself should be formatted. Note617This section describes how the patch itself should be formatted. Note
604that, if you have your patches stored in a git repository, proper patch618that, if you have your patches stored in a ``git`` repository, proper patch
605formatting can be had with "git format-patch". The tools cannot create619formatting can be had with ``git format-patch``. The tools cannot create
606the necessary text, though, so read the instructions below anyway.620the necessary text, though, so read the instructions below anyway.
607 621
608The canonical patch subject line is:622The canonical patch subject line is::
609 623
610 Subject: [PATCH 001/123] subsystem: summary phrase624 Subject: [PATCH 001/123] subsystem: summary phrase
611 625
612The canonical patch message body contains the following:626The canonical patch message body contains the following:
613 627
614 - A "from" line specifying the patch author (only needed if the person628 - A ``from`` line specifying the patch author (only needed if the person
615 sending the patch is not the author).629 sending the patch is not the author).
616 630
617 - An empty line.631 - An empty line.
@@ -619,46 +633,46 @@ The canonical patch message body contains the following: · 1 unmodified line
619 - The body of the explanation, line wrapped at 75 columns, which will633 - The body of the explanation, line wrapped at 75 columns, which will
620 be copied to the permanent changelog to describe this patch.634 be copied to the permanent changelog to describe this patch.
621 635
622 - The "Signed-off-by:" lines, described above, which will636 - The ``Signed-off-by:`` lines, described above, which will
623 also go in the changelog.637 also go in the changelog.
624 638
625 - A marker line containing simply "---".639 - A marker line containing simply ``---``.
626 640
627 - Any additional comments not suitable for the changelog.641 - Any additional comments not suitable for the changelog.
628 642
629 - The actual patch (diff output).643 - The actual patch (``diff`` output).
630 644
631The Subject line format makes it very easy to sort the emails645The Subject line format makes it very easy to sort the emails
632alphabetically by subject line - pretty much any email reader will646alphabetically by subject line - pretty much any email reader will
633support that - since because the sequence number is zero-padded,647support that - since because the sequence number is zero-padded,
634the numerical and alphabetic sort is the same.648the numerical and alphabetic sort is the same.
635 649
636The "subsystem" in the email's Subject should identify which650The ``subsystem`` in the email's Subject should identify which
637area or subsystem of the kernel is being patched.651area or subsystem of the kernel is being patched.
638 652
639The "summary phrase" in the email's Subject should concisely653The ``summary phrase`` in the email's Subject should concisely
640describe the patch which that email contains. The "summary654describe the patch which that email contains. The ``summary
641phrase" should not be a filename. Do not use the same "summary655phrase`` should not be a filename. Do not use the same ``summary
642phrase" for every patch in a whole patch series (where a "patch656phrase`` for every patch in a whole patch series (where a ``patch
643series" is an ordered sequence of multiple, related patches).657series`` is an ordered sequence of multiple, related patches).
644 658
645Bear in mind that the "summary phrase" of your email becomes a659Bear in mind that the ``summary phrase`` of your email becomes a
646globally-unique identifier for that patch. It propagates all the way660globally-unique identifier for that patch. It propagates all the way
647into the git changelog. The "summary phrase" may later be used in661into the ``git`` changelog. The ``summary phrase`` may later be used in
648developer discussions which refer to the patch. People will want to662developer discussions which refer to the patch. People will want to
649google for the "summary phrase" to read discussion regarding that663google for the ``summary phrase`` to read discussion regarding that
650patch. It will also be the only thing that people may quickly see664patch. It will also be the only thing that people may quickly see
651when, two or three months later, they are going through perhaps665when, two or three months later, they are going through perhaps
652thousands of patches using tools such as "gitk" or "git log666thousands of patches using tools such as ``gitk`` or ``git log
653--oneline".667--oneline``.
654 668
655For these reasons, the "summary" must be no more than 70-75669For these reasons, the ``summary`` must be no more than 70-75
656characters, and it must describe both what the patch changes, as well670characters, and it must describe both what the patch changes, as well
657as why the patch might be necessary. It is challenging to be both671as why the patch might be necessary. It is challenging to be both
658succinct and descriptive, but that is what a well-written summary672succinct and descriptive, but that is what a well-written summary
659should do.673should do.
660 674
661The "summary phrase" may be prefixed by tags enclosed in square675The ``summary phrase`` may be prefixed by tags enclosed in square
662brackets: "Subject: [PATCH <tag>...] <summary phrase>". The tags are676brackets: "Subject: [PATCH <tag>...] <summary phrase>". The tags are
663not considered part of the summary phrase, but describe how the patch677not considered part of the summary phrase, but describe how the patch
664should be treated. Common tags might include a version descriptor if678should be treated. Common tags might include a version descriptor if
@@ -670,19 +684,19 @@ that developers understand the order in which the patches should be · 5 unmodified lines
670applied and that they have reviewed or applied all of the patches in684applied and that they have reviewed or applied all of the patches in
671the patch series.685the patch series.
672 686
673A couple of example Subjects:687A couple of example Subjects::
674 688
675 Subject: [PATCH 2/5] ext2: improve scalability of bitmap searching689 Subject: [PATCH 2/5] ext2: improve scalability of bitmap searching
676 Subject: [PATCH v2 01/27] x86: fix eflags tracking690 Subject: [PATCH v2 01/27] x86: fix eflags tracking
677 691
678The "from" line must be the very first line in the message body,692The ``from`` line must be the very first line in the message body,
679and has the form:693and has the form:
680 694
681 From: Original Author <author@example.com>695 From: Original Author <author@example.com>
682 696
683The "from" line specifies who will be credited as the author of the697The ``from`` line specifies who will be credited as the author of the
684patch in the permanent changelog. If the "from" line is missing,698patch in the permanent changelog. If the ``from`` line is missing,
685then the "From:" line from the email header will be used to determine699then the ``From:`` line from the email header will be used to determine
686the patch author in the changelog.700the patch author in the changelog.
687 701
688The explanation body will be committed to the permanent source702The explanation body will be committed to the permanent source
@@ -694,35 +708,37 @@ especially useful for people who might be searching the commit logs · 5 unmodified lines
694looking for the applicable patch. If a patch fixes a compile failure,708looking for the applicable patch. If a patch fixes a compile failure,
695it may not be necessary to include _all_ of the compile failures; just709it may not be necessary to include _all_ of the compile failures; just
696enough that it is likely that someone searching for the patch can find710enough that it is likely that someone searching for the patch can find
697it. As in the "summary phrase", it is important to be both succinct as711it. As in the ``summary phrase``, it is important to be both succinct as
698well as descriptive.712well as descriptive.
699 713
700The "---" marker line serves the essential purpose of marking for patch714The ``---`` marker line serves the essential purpose of marking for patch
701handling tools where the changelog message ends.715handling tools where the changelog message ends.
702 716
703One good use for the additional comments after the "---" marker is for717One good use for the additional comments after the ``---`` marker is for
704a diffstat, to show what files have changed, and the number of718a ``diffstat``, to show what files have changed, and the number of
705inserted and deleted lines per file. A diffstat is especially useful719inserted and deleted lines per file. A ``diffstat`` is especially useful
706on bigger patches. Other comments relevant only to the moment or the720on bigger patches. Other comments relevant only to the moment or the
707maintainer, not suitable for the permanent changelog, should also go721maintainer, not suitable for the permanent changelog, should also go
708here. A good example of such comments might be "patch changelogs"722here. A good example of such comments might be ``patch changelogs``
709which describe what has changed between the v1 and v2 version of the723which describe what has changed between the v1 and v2 version of the
710patch.724patch.
711 725
712If you are going to include a diffstat after the "---" marker, please726If you are going to include a ``diffstat`` after the ``---`` marker, please
713use diffstat options "-p 1 -w 70" so that filenames are listed from727use ``diffstat`` options ``-p 1 -w 70`` so that filenames are listed from
714the top of the kernel source tree and don't use too much horizontal728the top of the kernel source tree and don't use too much horizontal
715space (easily fit in 80 columns, maybe with some indentation). (git729space (easily fit in 80 columns, maybe with some indentation). (``git``
716generates appropriate diffstats by default.)730generates appropriate diffstats by default.)
717 731
718See more details on the proper patch format in the following732See more details on the proper patch format in the following
719references.733references.
720 734
735.. _explicit_in_reply_to:
736
72115) Explicit In-Reply-To headers73715) Explicit In-Reply-To headers
722--------------------------------738--------------------------------
723 739
724It can be helpful to manually add In-Reply-To: headers to a patch740It can be helpful to manually add In-Reply-To: headers to a patch
725(e.g., when using "git send-email") to associate the patch with741(e.g., when using ``git send-email``) to associate the patch with
726previous relevant discussion, e.g. to link a bug fix to the email with742previous relevant discussion, e.g. to link a bug fix to the email with
727the bug report. However, for a multi-patch series, it is generally743the bug report. However, for a multi-patch series, it is generally
728best to avoid using In-Reply-To: to link to older versions of the744best to avoid using In-Reply-To: to link to older versions of the
@@ -732,12 +748,12 @@ helpful, you can use the https://lkml.kernel.org/ redirector (e.g., in · 3 unmodified lines
732the cover email text) to link to an earlier version of the patch series.748the cover email text) to link to an earlier version of the patch series.
733 749
734 750
73516) Sending "git pull" requests75116) Sending ``git pull`` requests
736-------------------------------752---------------------------------
737 753
738If you have a series of patches, it may be most convenient to have the754If you have a series of patches, it may be most convenient to have the
739maintainer pull them directly into the subsystem repository with a755maintainer pull them directly into the subsystem repository with a
740"git pull" operation. Note, however, that pulling patches from a developer756``git pull`` operation. Note, however, that pulling patches from a developer
741requires a higher degree of trust than taking patches from a mailing list.757requires a higher degree of trust than taking patches from a mailing list.
742As a result, many subsystem maintainers are reluctant to take pull758As a result, many subsystem maintainers are reluctant to take pull
743requests, especially from new, unknown developers. If in doubt you can use759requests, especially from new, unknown developers. If in doubt you can use
@@ -746,7 +762,7 @@ series, giving the maintainer the option of using either. · 2 unmodified lines
746 762
747A pull request should have [GIT] or [PULL] in the subject line. The763A pull request should have [GIT] or [PULL] in the subject line. The
748request itself should include the repository name and the branch of764request itself should include the repository name and the branch of
749interest on a single line; it should look something like:765interest on a single line; it should look something like::
750 766
751 Please pull from767 Please pull from
752 768
@@ -755,10 +771,10 @@ interest on a single line; it should look something like: · 2 unmodified lines
755 to get these changes:771 to get these changes:
756 772
757A pull request should also include an overall message saying what will be773A pull request should also include an overall message saying what will be
758included in the request, a "git shortlog" listing of the patches774included in the request, a ``git shortlog`` listing of the patches
759themselves, and a diffstat showing the overall effect of the patch series.775themselves, and a ``diffstat`` showing the overall effect of the patch series.
760The easiest way to get all this information together is, of course, to let776The easiest way to get all this information together is, of course, to let
761git do it for you with the "git request-pull" command.777``git`` do it for you with the ``git request-pull`` command.
762 778
763Some maintainers (including Linus) want to see pull requests from signed779Some maintainers (including Linus) want to see pull requests from signed
764commits; that increases their confidence that the request actually came780commits; that increases their confidence that the request actually came
@@ -770,8 +786,8 @@ signed by one or more core kernel developers. This step can be hard for · 5 unmodified lines
770new developers, but there is no way around it. Attending conferences can786new developers, but there is no way around it. Attending conferences can
771be a good way to find developers who can sign your key.787be a good way to find developers who can sign your key.
772 788
773Once you have prepared a patch series in git that you wish to have somebody789Once you have prepared a patch series in ``git`` that you wish to have somebody
774pull, create a signed tag with "git tag -s". This will create a new tag790pull, create a signed tag with ``git tag -s``. This will create a new tag
775identifying the last commit in the series and containing a signature791identifying the last commit in the series and containing a signature
776created with your private key. You will also have the opportunity to add a792created with your private key. You will also have the opportunity to add a
777changelog-style message to the tag; this is an ideal place to describe the793changelog-style message to the tag; this is an ideal place to describe the
@@ -782,14 +798,13 @@ are working from, don't forget to push the signed tag explicitly to the · 4 unmodified lines
782public tree.798public tree.
783 799
784When generating your pull request, use the signed tag as the target. A800When generating your pull request, use the signed tag as the target. A
785command like this will do the trick:801command like this will do the trick::
786 802
787 git request-pull master git://my.public.tree/linux.git my-signed-tag803 git request-pull master git://my.public.tree/linux.git my-signed-tag
788 804
789 805
790----------------------806REFERENCES
791SECTION 2 - REFERENCES807**********
792----------------------
793 808
794Andrew Morton, "The perfect patch" (tpp).809Andrew Morton, "The perfect patch" (tpp).
795 <http://www.ozlabs.org/~akpm/stuff/tpp.txt>810 <http://www.ozlabs.org/~akpm/stuff/tpp.txt>
@@ -799,23 +814,28 @@ Jeff Garzik, "Linux kernel patch submission format". · 3 unmodified lines
799 814
800Greg Kroah-Hartman, "How to piss off a kernel subsystem maintainer".815Greg Kroah-Hartman, "How to piss off a kernel subsystem maintainer".
801 <http://www.kroah.com/log/linux/maintainer.html>816 <http://www.kroah.com/log/linux/maintainer.html>
817
802 <http://www.kroah.com/log/linux/maintainer-02.html>818 <http://www.kroah.com/log/linux/maintainer-02.html>
819
803 <http://www.kroah.com/log/linux/maintainer-03.html>820 <http://www.kroah.com/log/linux/maintainer-03.html>
821
804 <http://www.kroah.com/log/linux/maintainer-04.html>822 <http://www.kroah.com/log/linux/maintainer-04.html>
823
805 <http://www.kroah.com/log/linux/maintainer-05.html>824 <http://www.kroah.com/log/linux/maintainer-05.html>
825
806 <http://www.kroah.com/log/linux/maintainer-06.html>826 <http://www.kroah.com/log/linux/maintainer-06.html>
807 827
808NO!!!! No more huge patch bombs to linux-kernel@vger.kernel.org people!828NO!!!! No more huge patch bombs to linux-kernel@vger.kernel.org people!
809 <https://lkml.org/lkml/2005/7/11/336>829 <https://lkml.org/lkml/2005/7/11/336>
810 830
811Kernel Documentation/CodingStyle:831Kernel Documentation/CodingStyle:
812 <Documentation/CodingStyle>832 :ref:`Documentation/CodingStyle <codingstyle>`
813 833
814Linus Torvalds's mail on the canonical patch format:834Linus Torvalds's mail on the canonical patch format:
815 <http://lkml.org/lkml/2005/4/7/183>835 <http://lkml.org/lkml/2005/4/7/183>
816 836
817Andi Kleen, "On submitting kernel patches"837Andi Kleen, "On submitting kernel patches"
818 Some strategies to get difficult or controversial changes in.838 Some strategies to get difficult or controversial changes in.
839
819 http://halobates.de/on-submitting-patches.pdf840 http://halobates.de/on-submitting-patches.pdf
820 841
821--
Documentation/accounting/Makefile+0−7
@@ -1,7 +0,0 @@
1# List of programs to build
2hostprogs-y := getdelays
3
4# Tell kbuild to always build the programs
5always := $(hostprogs-y)
6
7HOSTCFLAGS_getdelays.o += -I$(objtree)/usr/include
Documentation/accounting/delay-accounting.txt+3−3
@@ -54,9 +54,9 @@ are sent to userspace without requiring a command. If it is the last exiting · 53 unmodified lines
54task of a thread group, the per-tgid statistics are also sent. More details54task of a thread group, the per-tgid statistics are also sent. More details
55are given in the taskstats interface description.55are given in the taskstats interface description.
56 56
57The getdelays.c userspace utility in this directory allows simple commands to57The getdelays.c userspace utility in tools/accounting directory allows simple
58be run and the corresponding delay statistics to be displayed. It also serves58commands to be run and the corresponding delay statistics to be displayed. It
59as an example of using the taskstats interface.59also serves as an example of using the taskstats interface.
60 60
61Usage61Usage
62-----62-----
Documentation/acpi/acpi-lid.txt+96−0
@@ -0,0 +1,96 @@
1Special Usage Model of the ACPI Control Method Lid Device
2
3Copyright (C) 2016, Intel Corporation
4Author: Lv Zheng <lv.zheng@intel.com>
5
6
7Abstract:
8
9Platforms containing lids convey lid state (open/close) to OSPMs using a
10control method lid device. To implement this, the AML tables issue
11Notify(lid_device, 0x80) to notify the OSPMs whenever the lid state has
12changed. The _LID control method for the lid device must be implemented to
13report the "current" state of the lid as either "opened" or "closed".
14
15For most platforms, both the _LID method and the lid notifications are
16reliable. However, there are exceptions. In order to work with these
17exceptional buggy platforms, special restrictions and expections should be
18taken into account. This document describes the restrictions and the
19expections of the Linux ACPI lid device driver.
20
21
221. Restrictions of the returning value of the _LID control method
23
24The _LID control method is described to return the "current" lid state.
25However the word of "current" has ambiguity, some buggy AML tables return
26the lid state upon the last lid notification instead of returning the lid
27state upon the last _LID evaluation. There won't be difference when the
28_LID control method is evaluated during the runtime, the problem is its
29initial returning value. When the AML tables implement this control method
30with cached value, the initial returning value is likely not reliable.
31There are platforms always retun "closed" as initial lid state.
32
332. Restrictions of the lid state change notifications
34
35There are buggy AML tables never notifying when the lid device state is
36changed to "opened". Thus the "opened" notification is not guaranteed. But
37it is guaranteed that the AML tables always notify "closed" when the lid
38state is changed to "closed". The "closed" notification is normally used to
39trigger some system power saving operations on Windows. Since it is fully
40tested, it is reliable from all AML tables.
41
423. Expections for the userspace users of the ACPI lid device driver
43
44The ACPI button driver exports the lid state to the userspace via the
45following file:
46 /proc/acpi/button/lid/LID0/state
47This file actually calls the _LID control method described above. And given
48the previous explanation, it is not reliable enough on some platforms. So
49it is advised for the userspace program to not to solely rely on this file
50to determine the actual lid state.
51
52The ACPI button driver emits the following input event to the userspace:
53 SW_LID
54The ACPI lid device driver is implemented to try to deliver the platform
55triggered events to the userspace. However, given the fact that the buggy
56firmware cannot make sure "opened"/"closed" events are paired, the ACPI
57button driver uses the following 3 modes in order not to trigger issues.
58
59If the userspace hasn't been prepared to ignore the unreliable "opened"
60events and the unreliable initial state notification, Linux users can use
61the following kernel parameters to handle the possible issues:
62A. button.lid_init_state=method:
63 When this option is specified, the ACPI button driver reports the
64 initial lid state using the returning value of the _LID control method
65 and whether the "opened"/"closed" events are paired fully relies on the
66 firmware implementation.
67 This option can be used to fix some platforms where the returning value
68 of the _LID control method is reliable but the initial lid state
69 notification is missing.
70 This option is the default behavior during the period the userspace
71 isn't ready to handle the buggy AML tables.
72B. button.lid_init_state=open:
73 When this option is specified, the ACPI button driver always reports the
74 initial lid state as "opened" and whether the "opened"/"closed" events
75 are paired fully relies on the firmware implementation.
76 This may fix some platforms where the returning value of the _LID
77 control method is not reliable and the initial lid state notification is
78 missing.
79
80If the userspace has been prepared to ignore the unreliable "opened" events
81and the unreliable initial state notification, Linux users should always
82use the following kernel parameter:
83C. button.lid_init_state=ignore:
84 When this option is specified, the ACPI button driver never reports the
85 initial lid state and there is a compensation mechanism implemented to
86 ensure that the reliable "closed" notifications can always be delievered
87 to the userspace by always pairing "closed" input events with complement
88 "opened" input events. But there is still no guarantee that the "opened"
89 notifications can be delivered to the userspace when the lid is actually
90 opens given that some AML tables do not send "opened" notifications
91 reliably.
92 In this mode, if everything is correctly implemented by the platform
93 firmware, the old userspace programs should still work. Otherwise, the
94 new userspace programs are required to work with the ACPI button driver.
95 This option will be the default behavior after the userspace is ready to
96 handle the buggy AML tables.
Documentation/acpi/gpio-properties.txt+5−5
@@ -28,8 +28,8 @@ index, like the ASL example below shows: · 27 unmodified lines
28 ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),28 ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
29 Package ()29 Package ()
30 {30 {
31 Package () {"reset-gpio", Package() {^BTH, 1, 1, 0 }},31 Package () {"reset-gpios", Package() {^BTH, 1, 1, 0 }},
32 Package () {"shutdown-gpio", Package() {^BTH, 0, 0, 0 }},32 Package () {"shutdown-gpios", Package() {^BTH, 0, 0, 0 }},
33 }33 }
34 })34 })
35 }35 }
@@ -48,7 +48,7 @@ Since ACPI GpioIo() resource does not have a field saying whether it is · 12 unmodified lines
48active low or high, the "active_low" argument can be used here. Setting48active low or high, the "active_low" argument can be used here. Setting
49it to 1 marks the GPIO as active low.49it to 1 marks the GPIO as active low.
50 50
51In our Bluetooth example the "reset-gpio" refers to the second GpioIo()51In our Bluetooth example the "reset-gpios" refers to the second GpioIo()
52resource, second pin in that resource with the GPIO number of 31.52resource, second pin in that resource with the GPIO number of 31.
53 53
54ACPI GPIO Mappings Provided by Drivers54ACPI GPIO Mappings Provided by Drivers
@@ -83,8 +83,8 @@ static const struct acpi_gpio_params reset_gpio = { 1, 1, false }; · 28 unmodified lines
83static const struct acpi_gpio_params shutdown_gpio = { 0, 0, false };83static const struct acpi_gpio_params shutdown_gpio = { 0, 0, false };
84 84
85static const struct acpi_gpio_mapping bluetooth_acpi_gpios[] = {85static const struct acpi_gpio_mapping bluetooth_acpi_gpios[] = {
86 { "reset-gpio", &reset_gpio, 1 },86 { "reset-gpios", &reset_gpio, 1 },
87 { "shutdown-gpio", &shutdown_gpio, 1 },87 { "shutdown-gpios", &shutdown_gpio, 1 },
88 { },88 { },
89};89};
90 90
Documentation/applying-patches.txt+221−210
@@ -1,9 +1,13 @@
1.. _applying_patches:
1 2
2 Applying Patches To The Linux Kernel3Applying Patches To The Linux Kernel
3 ------------------------------------4++++++++++++++++++++++++++++++++++++
4 5
5 Original by: Jesper Juhl, August 20056Original by:
6 Last update: 2006-01-057 Jesper Juhl, August 2005
8
9Last update:
10 2016-09-14
7 11
8 12
9A frequently asked question on the Linux Kernel Mailing List is how to apply13A frequently asked question on the Linux Kernel Mailing List is how to apply
@@ -17,10 +21,12 @@ their specific patches) is also provided. · 7 unmodified lines
17 21
18 22
19What is a patch?23What is a patch?
20---24================
21 A patch is a small text document containing a delta of changes between two25
22different versions of a source tree. Patches are created with the `diff'26A patch is a small text document containing a delta of changes between two
27different versions of a source tree. Patches are created with the ``diff``
23program.28program.
29
24To correctly apply a patch you need to know what base it was generated from30To correctly apply a patch you need to know what base it was generated from
25and what new version the patch will change the source tree into. These31and what new version the patch will change the source tree into. These
26should both be present in the patch file metadata or be possible to deduce32should both be present in the patch file metadata or be possible to deduce
@@ -28,8 +34,9 @@ from the filename. · 1 unmodified line
28 34
29 35
30How do I apply or revert a patch?36How do I apply or revert a patch?
31---37=================================
32 You apply a patch with the `patch' program. The patch program reads a diff38
39You apply a patch with the ``patch`` program. The patch program reads a diff
33(or patch) file and makes the changes to the source tree described in it.40(or patch) file and makes the changes to the source tree described in it.
34 41
35Patches for the Linux kernel are generated relative to the parent directory42Patches for the Linux kernel are generated relative to the parent directory
@@ -38,26 +45,33 @@ holding the kernel source dir. · 2 unmodified lines
38This means that paths to files inside the patch file contain the name of the45This means that paths to files inside the patch file contain the name of the
39kernel source directories it was generated against (or some other directory46kernel source directories it was generated against (or some other directory
40names like "a/" and "b/").47names like "a/" and "b/").
48
41Since this is unlikely to match the name of the kernel source dir on your49Since this is unlikely to match the name of the kernel source dir on your
42local machine (but is often useful info to see what version an otherwise50local machine (but is often useful info to see what version an otherwise
43unlabeled patch was generated against) you should change into your kernel51unlabeled patch was generated against) you should change into your kernel
44source directory and then strip the first element of the path from filenames52source directory and then strip the first element of the path from filenames
45in the patch file when applying it (the -p1 argument to `patch' does this).53in the patch file when applying it (the ``-p1`` argument to ``patch`` does
54this).
46 55
47To revert a previously applied patch, use the -R argument to patch.56To revert a previously applied patch, use the -R argument to patch.
48So, if you applied a patch like this:57So, if you applied a patch like this::
58
49 patch -p1 < ../patch-x.y.z59 patch -p1 < ../patch-x.y.z
50 60
51You can revert (undo) it like this:61You can revert (undo) it like this::
62
52 patch -R -p1 < ../patch-x.y.z63 patch -R -p1 < ../patch-x.y.z
53 64
54 65
55How do I feed a patch/diff file to `patch'?66How do I feed a patch/diff file to ``patch``?
56---67=============================================
57 This (as usual with Linux and other UNIX like operating systems) can be68
69This (as usual with Linux and other UNIX like operating systems) can be
58done in several different ways.70done in several different ways.
71
59In all the examples below I feed the file (in uncompressed form) to patch72In all the examples below I feed the file (in uncompressed form) to patch
60via stdin using the following syntax:73via stdin using the following syntax::
74
61 patch -p1 < path/to/patch-x.y.z75 patch -p1 < path/to/patch-x.y.z
62 76
63If you just want to be able to follow the examples below and don't want to77If you just want to be able to follow the examples below and don't want to
@@ -65,35 +79,40 @@ know of more than one way to use patch, then you can stop reading this · 1 unmodified line
65section here.79section here.
66 80
67Patch can also get the name of the file to use via the -i argument, like81Patch can also get the name of the file to use via the -i argument, like
68this:82this::
83
69 patch -p1 -i path/to/patch-x.y.z84 patch -p1 -i path/to/patch-x.y.z
70 85
71If your patch file is compressed with gzip or bzip2 and you don't want to86If your patch file is compressed with gzip or xz and you don't want to
72uncompress it before applying it, then you can feed it to patch like this87uncompress it before applying it, then you can feed it to patch like this
73instead:88instead::
74 zcat path/to/patch-x.y.z.gz | patch -p189
75 bzcat path/to/patch-x.y.z.bz2 | patch -p190 xzcat path/to/patch-x.y.z.xz | patch -p1
91 bzcat path/to/patch-x.y.z.gz | patch -p1
76 92
77If you wish to uncompress the patch file by hand first before applying it93If you wish to uncompress the patch file by hand first before applying it
78(what I assume you've done in the examples below), then you simply run94(what I assume you've done in the examples below), then you simply run
79gunzip or bunzip2 on the file -- like this:95gunzip or xz on the file -- like this::
96
80 gunzip patch-x.y.z.gz97 gunzip patch-x.y.z.gz
81 bunzip2 patch-x.y.z.bz298 xz -d patch-x.y.z.xz
82 99
83Which will leave you with a plain text patch-x.y.z file that you can feed to100Which will leave you with a plain text patch-x.y.z file that you can feed to
84patch via stdin or the -i argument, as you prefer.101patch via stdin or the ``-i`` argument, as you prefer.
85 102
86A few other nice arguments for patch are -s which causes patch to be silent103A few other nice arguments for patch are ``-s`` which causes patch to be silent
87except for errors which is nice to prevent errors from scrolling out of the104except for errors which is nice to prevent errors from scrolling out of the
88screen too fast, and --dry-run which causes patch to just print a listing of105screen too fast, and ``--dry-run`` which causes patch to just print a listing of
89what would happen, but doesn't actually make any changes. Finally --verbose106what would happen, but doesn't actually make any changes. Finally ``--verbose``
90tells patch to print more information about the work being done.107tells patch to print more information about the work being done.
91 108
92 109
93Common errors when patching110Common errors when patching
94---111===========================
95 When patch applies a patch file it attempts to verify the sanity of the112
113When patch applies a patch file it attempts to verify the sanity of the
96file in different ways.114file in different ways.
115
97Checking that the file looks like a valid patch file and checking the code116Checking that the file looks like a valid patch file and checking the code
98around the bits being modified matches the context provided in the patch are117around the bits being modified matches the context provided in the patch are
99just two of the basic sanity checks patch does.118just two of the basic sanity checks patch does.
@@ -111,13 +130,13 @@ everything looks good it has just moved up or down a bit, and patch will · 11 unmodified lines
111usually adjust the line numbers and apply the patch.130usually adjust the line numbers and apply the patch.
112 131
113Whenever patch applies a patch that it had to modify a bit to make it fit132Whenever patch applies a patch that it had to modify a bit to make it fit
114it'll tell you about it by saying the patch applied with 'fuzz'.133it'll tell you about it by saying the patch applied with **fuzz**.
115You should be wary of such changes since even though patch probably got it134You should be wary of such changes since even though patch probably got it
116right it doesn't /always/ get it right, and the result will sometimes be135right it doesn't /always/ get it right, and the result will sometimes be
117wrong.136wrong.
118 137
119When patch encounters a change that it can't fix up with fuzz it rejects it138When patch encounters a change that it can't fix up with fuzz it rejects it
120outright and leaves a file with a .rej extension (a reject file). You can139outright and leaves a file with a ``.rej`` extension (a reject file). You can
121read this file to see exactly what change couldn't be applied, so you can140read this file to see exactly what change couldn't be applied, so you can
122go fix it up by hand if you wish.141go fix it up by hand if you wish.
123 142
@@ -132,43 +151,47 @@ to start with a fresh tree downloaded in full from kernel.org. · 8 unmodified lines
132 151
133Let's look a bit more at some of the messages patch can produce.152Let's look a bit more at some of the messages patch can produce.
134 153
135If patch stops and presents a "File to patch:" prompt, then patch could not154If patch stops and presents a ``File to patch:`` prompt, then patch could not
136find a file to be patched. Most likely you forgot to specify -p1 or you are155find a file to be patched. Most likely you forgot to specify -p1 or you are
137in the wrong directory. Less often, you'll find patches that need to be156in the wrong directory. Less often, you'll find patches that need to be
138applied with -p0 instead of -p1 (reading the patch file should reveal if157applied with ``-p0`` instead of ``-p1`` (reading the patch file should reveal if
139this is the case -- if so, then this is an error by the person who created158this is the case -- if so, then this is an error by the person who created
140the patch but is not fatal).159the patch but is not fatal).
141 160
142If you get "Hunk #2 succeeded at 1887 with fuzz 2 (offset 7 lines)." or a161If you get ``Hunk #2 succeeded at 1887 with fuzz 2 (offset 7 lines).`` or a
143message similar to that, then it means that patch had to adjust the location162message similar to that, then it means that patch had to adjust the location
144of the change (in this example it needed to move 7 lines from where it163of the change (in this example it needed to move 7 lines from where it
145expected to make the change to make it fit).164expected to make the change to make it fit).
165
146The resulting file may or may not be OK, depending on the reason the file166The resulting file may or may not be OK, depending on the reason the file
147was different than expected.167was different than expected.
168
148This often happens if you try to apply a patch that was generated against a169This often happens if you try to apply a patch that was generated against a
149different kernel version than the one you are trying to patch.170different kernel version than the one you are trying to patch.
150 171
151If you get a message like "Hunk #3 FAILED at 2387.", then it means that the172If you get a message like ``Hunk #3 FAILED at 2387.``, then it means that the
152patch could not be applied correctly and the patch program was unable to173patch could not be applied correctly and the patch program was unable to
153fuzz its way through. This will generate a .rej file with the change that174fuzz its way through. This will generate a ``.rej`` file with the change that
154caused the patch to fail and also a .orig file showing you the original175caused the patch to fail and also a ``.orig`` file showing you the original
155content that couldn't be changed.176content that couldn't be changed.
156 177
157If you get "Reversed (or previously applied) patch detected! Assume -R? [n]"178If you get ``Reversed (or previously applied) patch detected! Assume -R? [n]``
158then patch detected that the change contained in the patch seems to have179then patch detected that the change contained in the patch seems to have
159already been made.180already been made.
181
160If you actually did apply this patch previously and you just re-applied it182If you actually did apply this patch previously and you just re-applied it
161in error, then just say [n]o and abort this patch. If you applied this patch183in error, then just say [n]o and abort this patch. If you applied this patch
162previously and actually intended to revert it, but forgot to specify -R,184previously and actually intended to revert it, but forgot to specify -R,
163then you can say [y]es here to make patch revert it for you.185then you can say [**y**]es here to make patch revert it for you.
186
164This can also happen if the creator of the patch reversed the source and187This can also happen if the creator of the patch reversed the source and
165destination directories when creating the patch, and in that case reverting188destination directories when creating the patch, and in that case reverting
166the patch will in fact apply it.189the patch will in fact apply it.
167 190
168A message similar to "patch: **** unexpected end of file in patch" or "patch191A message similar to ``patch: **** unexpected end of file in patch`` or
169unexpectedly ends in middle of line" means that patch could make no sense of192``patch unexpectedly ends in middle of line`` means that patch could make no
170the file you fed to it. Either your download is broken, you tried to feed193sense of the file you fed to it. Either your download is broken, you tried to
171patch a compressed patch file without uncompressing it first, or the patch194feed patch a compressed patch file without uncompressing it first, or the patch
172file that you are using has been mangled by a mail client or mail transfer195file that you are using has been mangled by a mail client or mail transfer
173agent along the way somewhere, e.g., by splitting a long line into two lines.196agent along the way somewhere, e.g., by splitting a long line into two lines.
174Often these warnings can easily be fixed by joining (concatenating) the197Often these warnings can easily be fixed by joining (concatenating) the
@@ -182,28 +205,32 @@ to start over with a fresh download of a full kernel tree and the patch you · 7 unmodified lines
182wish to apply.205wish to apply.
183 206
184 207
185Are there any alternatives to `patch'?208Are there any alternatives to ``patch``?
186---209========================================
187 Yes there are alternatives.
188 210
189 You can use the `interdiff' program (http://cyberelk.net/tim/patchutils/) to211
212Yes there are alternatives.
213
214You can use the ``interdiff`` program (http://cyberelk.net/tim/patchutils/) to
190generate a patch representing the differences between two patches and then215generate a patch representing the differences between two patches and then
191apply the result.216apply the result.
192This will let you move from something like 2.6.12.2 to 2.6.12.3 in a single217
218This will let you move from something like 4.7.2 to 4.7.3 in a single
193step. The -z flag to interdiff will even let you feed it patches in gzip or219step. The -z flag to interdiff will even let you feed it patches in gzip or
194bzip2 compressed form directly without the use of zcat or bzcat or manual220bzip2 compressed form directly without the use of zcat or bzcat or manual
195decompression.221decompression.
196 222
197Here's how you'd go from 2.6.12.2 to 2.6.12.3 in a single step:223Here's how you'd go from 4.7.2 to 4.7.3 in a single step::
198 interdiff -z ../patch-2.6.12.2.bz2 ../patch-2.6.12.3.gz | patch -p1224
225 interdiff -z ../patch-4.7.2.gz ../patch-4.7.3.gz | patch -p1
199 226
200Although interdiff may save you a step or two you are generally advised to227Although interdiff may save you a step or two you are generally advised to
201do the additional steps since interdiff can get things wrong in some cases.228do the additional steps since interdiff can get things wrong in some cases.
202 229
203 Another alternative is `ketchup', which is a python script for automatic230Another alternative is ``ketchup``, which is a python script for automatic
204downloading and applying of patches (http://www.selenic.com/ketchup/).231downloading and applying of patches (http://www.selenic.com/ketchup/).
205 232
206 Other nice tools are diffstat, which shows a summary of changes made by a233Other nice tools are diffstat, which shows a summary of changes made by a
207patch; lsdiff, which displays a short listing of affected files in a patch234patch; lsdiff, which displays a short listing of affected files in a patch
208file, along with (optionally) the line numbers of the start of each patch;235file, along with (optionally) the line numbers of the start of each patch;
209and grepdiff, which displays a list of the files modified by a patch where236and grepdiff, which displays a list of the files modified by a patch where
@@ -211,99 +238,103 @@ the patch contains a given regular expression. · 1 unmodified line
211 238
212 239
213Where can I download the patches?240Where can I download the patches?
214---241=================================
215 The patches are available at http://kernel.org/242
243The patches are available at http://kernel.org/
216Most recent patches are linked from the front page, but they also have244Most recent patches are linked from the front page, but they also have
217specific homes.245specific homes.
218 246
219The 2.6.x.y (-stable) and 2.6.x patches live at247The 4.x.y (-stable) and 4.x patches live at
220 ftp://ftp.kernel.org/pub/linux/kernel/v2.6/
221 248
222The -rc patches live at249 ftp://ftp.kernel.org/pub/linux/kernel/v4.x/
223 ftp://ftp.kernel.org/pub/linux/kernel/v2.6/testing/
224 250
225The -git patches live at251The -rc patches live at
226 ftp://ftp.kernel.org/pub/linux/kernel/v2.6/snapshots/
227 252
228The -mm kernels live at253 ftp://ftp.kernel.org/pub/linux/kernel/v4.x/testing/
229 ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/
230 254
231In place of ftp.kernel.org you can use ftp.cc.kernel.org, where cc is a255In place of ``ftp.kernel.org`` you can use ``ftp.cc.kernel.org``, where cc is a
232country code. This way you'll be downloading from a mirror site that's most256country code. This way you'll be downloading from a mirror site that's most
233likely geographically closer to you, resulting in faster downloads for you,257likely geographically closer to you, resulting in faster downloads for you,
234less bandwidth used globally and less load on the main kernel.org servers --258less bandwidth used globally and less load on the main kernel.org servers --
235these are good things, so do use mirrors when possible.259these are good things, so do use mirrors when possible.
236 260
237 261
238The 2.6.x kernels262The 4.x kernels
239---263===============
240 These are the base stable releases released by Linus. The highest numbered264
265These are the base stable releases released by Linus. The highest numbered
241release is the most recent.266release is the most recent.
242 267
243If regressions or other serious flaws are found, then a -stable fix patch268If regressions or other serious flaws are found, then a -stable fix patch
244will be released (see below) on top of this base. Once a new 2.6.x base269will be released (see below) on top of this base. Once a new 4.x base
245kernel is released, a patch is made available that is a delta between the270kernel is released, a patch is made available that is a delta between the
246previous 2.6.x kernel and the new one.271previous 4.x kernel and the new one.
272
273To apply a patch moving from 4.6 to 4.7, you'd do the following (note
274that such patches do **NOT** apply on top of 4.x.y kernels but on top of the
275base 4.x kernel -- if you need to move from 4.x.y to 4.x+1 you need to
276first revert the 4.x.y patch).
277
278Here are some examples::
247 279
248To apply a patch moving from 2.6.11 to 2.6.12, you'd do the following (note280 # moving from 4.6 to 4.7
249that such patches do *NOT* apply on top of 2.6.x.y kernels but on top of the
250base 2.6.x kernel -- if you need to move from 2.6.x.y to 2.6.x+1 you need to
251first revert the 2.6.x.y patch).
252 281
253Here are some examples:282 $ cd ~/linux-4.6 # change to kernel source dir
283 $ patch -p1 < ../patch-4.7 # apply the 4.7 patch
284 $ cd ..
285 $ mv linux-4.6 linux-4.7 # rename source dir
254 286
255# moving from 2.6.11 to 2.6.12287 # moving from 4.6.1 to 4.7
256$ cd ~/linux-2.6.11 # change to kernel source dir
257$ patch -p1 < ../patch-2.6.12 # apply the 2.6.12 patch
258$ cd ..
259$ mv linux-2.6.11 linux-2.6.12 # rename source dir
260 288
261# moving from 2.6.11.1 to 2.6.12289 $ cd ~/linux-4.6.1 # change to kernel source dir
262$ cd ~/linux-2.6.11.1 # change to kernel source dir290 $ patch -p1 -R < ../patch-4.6.1 # revert the 4.6.1 patch
263$ patch -p1 -R < ../patch-2.6.11.1 # revert the 2.6.11.1 patch291 # source dir is now 4.6
264 # source dir is now 2.6.11292 $ patch -p1 < ../patch-4.7 # apply new 4.7 patch
265$ patch -p1 < ../patch-2.6.12 # apply new 2.6.12 patch293 $ cd ..
266$ cd ..294 $ mv linux-4.6.1 linux-4.7 # rename source dir
267$ mv linux-2.6.11.1 linux-2.6.12 # rename source dir
268 295
269 296
270The 2.6.x.y kernels297The 4.x.y kernels
271---298=================
272 Kernels with 4-digit versions are -stable kernels. They contain small(ish)299
300Kernels with 3-digit versions are -stable kernels. They contain small(ish)
273critical fixes for security problems or significant regressions discovered301critical fixes for security problems or significant regressions discovered
274in a given 2.6.x kernel.302in a given 4.x kernel.
275 303
276This is the recommended branch for users who want the most recent stable304This is the recommended branch for users who want the most recent stable
277kernel and are not interested in helping test development/experimental305kernel and are not interested in helping test development/experimental
278versions.306versions.
279 307
280If no 2.6.x.y kernel is available, then the highest numbered 2.6.x kernel is308If no 4.x.y kernel is available, then the highest numbered 4.x kernel is
281the current stable kernel.309the current stable kernel.
282 310
283 note: the -stable team usually do make incremental patches available as well311.. note::
312
313 The -stable team usually do make incremental patches available as well
284 as patches against the latest mainline release, but I only cover the314 as patches against the latest mainline release, but I only cover the
285 non-incremental ones below. The incremental ones can be found at315 non-incremental ones below. The incremental ones can be found at
286 ftp://ftp.kernel.org/pub/linux/kernel/v2.6/incr/316 ftp://ftp.kernel.org/pub/linux/kernel/v4.x/incr/
287 317
288These patches are not incremental, meaning that for example the 2.6.12.3318These patches are not incremental, meaning that for example the 4.7.3
289patch does not apply on top of the 2.6.12.2 kernel source, but rather on top319patch does not apply on top of the 4.7.2 kernel source, but rather on top
290of the base 2.6.12 kernel source .320of the base 4.7 kernel source.
291So, in order to apply the 2.6.12.3 patch to your existing 2.6.12.2 kernel
292source you have to first back out the 2.6.12.2 patch (so you are left with a
293base 2.6.12 kernel source) and then apply the new 2.6.12.3 patch.
294 321
295Here's a small example:322So, in order to apply the 4.7.3 patch to your existing 4.7.2 kernel
323source you have to first back out the 4.7.2 patch (so you are left with a
324base 4.7 kernel source) and then apply the new 4.7.3 patch.
296 325
297$ cd ~/linux-2.6.12.2 # change into the kernel source dir326Here's a small example::
298$ patch -p1 -R < ../patch-2.6.12.2 # revert the 2.6.12.2 patch
299$ patch -p1 < ../patch-2.6.12.3 # apply the new 2.6.12.3 patch
300$ cd ..
301$ mv linux-2.6.12.2 linux-2.6.12.3 # rename the kernel source dir
302 327
328 $ cd ~/linux-4.7.2 # change to the kernel source dir
329 $ patch -p1 -R < ../patch-4.7.2 # revert the 4.7.2 patch
330 $ patch -p1 < ../patch-4.7.3 # apply the new 4.7.3 patch
331 $ cd ..
332 $ mv linux-4.7.2 linux-4.7.3 # rename the kernel source dir
303 333
304The -rc kernels334The -rc kernels
305---335===============
306 These are release-candidate kernels. These are development kernels released336
337These are release-candidate kernels. These are development kernels released
307by Linus whenever he deems the current git (the kernel's source management338by Linus whenever he deems the current git (the kernel's source management
308tool) tree to be in a reasonably sane state adequate for testing.339tool) tree to be in a reasonably sane state adequate for testing.
309 340
@@ -317,39 +348,44 @@ This is a good branch to run for people who want to help out testing · 7 unmodified lines
317development kernels but do not want to run some of the really experimental348development kernels but do not want to run some of the really experimental
318stuff (such people should see the sections about -git and -mm kernels below).349stuff (such people should see the sections about -git and -mm kernels below).
319 350
320The -rc patches are not incremental, they apply to a base 2.6.x kernel, just351The -rc patches are not incremental, they apply to a base 4.x kernel, just
321like the 2.6.x.y patches described above. The kernel version before the -rcN352like the 4.x.y patches described above. The kernel version before the -rcN
322suffix denotes the version of the kernel that this -rc kernel will eventually353suffix denotes the version of the kernel that this -rc kernel will eventually
323turn into.354turn into.
324So, 2.6.13-rc5 means that this is the fifth release candidate for the 2.6.13
325kernel and the patch should be applied on top of the 2.6.12 kernel source.
326 355
327Here are 3 examples of how to apply these patches:356So, 4.8-rc5 means that this is the fifth release candidate for the 4.8
357kernel and the patch should be applied on top of the 4.7 kernel source.
328 358
329# first an example of moving from 2.6.12 to 2.6.13-rc3359Here are 3 examples of how to apply these patches::
330$ cd ~/linux-2.6.12 # change into the 2.6.12 source dir
331$ patch -p1 < ../patch-2.6.13-rc3 # apply the 2.6.13-rc3 patch
332$ cd ..
333$ mv linux-2.6.12 linux-2.6.13-rc3 # rename the source dir
334 360
335# now let's move from 2.6.13-rc3 to 2.6.13-rc5361 # first an example of moving from 4.7 to 4.8-rc3
336$ cd ~/linux-2.6.13-rc3 # change into the 2.6.13-rc3 dir
337$ patch -p1 -R < ../patch-2.6.13-rc3 # revert the 2.6.13-rc3 patch
338$ patch -p1 < ../patch-2.6.13-rc5 # apply the new 2.6.13-rc5 patch
339$ cd ..
340$ mv linux-2.6.13-rc3 linux-2.6.13-rc5 # rename the source dir
341 362
342# finally let's try and move from 2.6.12.3 to 2.6.13-rc5363 $ cd ~/linux-4.7 # change to the 4.7 source dir
343$ cd ~/linux-2.6.12.3 # change to the kernel source dir364 $ patch -p1 < ../patch-4.8-rc3 # apply the 4.8-rc3 patch
344$ patch -p1 -R < ../patch-2.6.12.3 # revert the 2.6.12.3 patch365 $ cd ..
345$ patch -p1 < ../patch-2.6.13-rc5 # apply new 2.6.13-rc5 patch366 $ mv linux-4.7 linux-4.8-rc3 # rename the source dir
346$ cd ..367
347$ mv linux-2.6.12.3 linux-2.6.13-rc5 # rename the kernel source dir368 # now let's move from 4.8-rc3 to 4.8-rc5
369
370 $ cd ~/linux-4.8-rc3 # change to the 4.8-rc3 dir
371 $ patch -p1 -R < ../patch-4.8-rc3 # revert the 4.8-rc3 patch
372 $ patch -p1 < ../patch-4.8-rc5 # apply the new 4.8-rc5 patch
373 $ cd ..
374 $ mv linux-4.8-rc3 linux-4.8-rc5 # rename the source dir
375
376 # finally let's try and move from 4.7.3 to 4.8-rc5
377
378 $ cd ~/linux-4.7.3 # change to the kernel source dir
379 $ patch -p1 -R < ../patch-4.7.3 # revert the 4.7.3 patch
380 $ patch -p1 < ../patch-4.8-rc5 # apply new 4.8-rc5 patch
381 $ cd ..
382 $ mv linux-4.7.3 linux-4.8-rc5 # rename the kernel source dir
348 383
349 384
350The -git kernels385The -git kernels
351---386================
352 These are daily snapshots of Linus' kernel tree (managed in a git387
388These are daily snapshots of Linus' kernel tree (managed in a git
353repository, hence the name).389repository, hence the name).
354 390
355These patches are usually released daily and represent the current state of391These patches are usually released daily and represent the current state of
@@ -357,91 +393,66 @@ Linus's tree. They are more experimental than -rc kernels since they are · 1 unmodified line
357generated automatically without even a cursory glance to see if they are393generated automatically without even a cursory glance to see if they are
358sane.394sane.
359 395
360-git patches are not incremental and apply either to a base 2.6.x kernel or396-git patches are not incremental and apply either to a base 4.x kernel or
361a base 2.6.x-rc kernel -- you can see which from their name.397a base 4.x-rc kernel -- you can see which from their name.
362A patch named 2.6.12-git1 applies to the 2.6.12 kernel source and a patch398A patch named 4.7-git1 applies to the 4.7 kernel source and a patch
363named 2.6.13-rc3-git2 applies to the source of the 2.6.13-rc3 kernel.399named 4.8-rc3-git2 applies to the source of the 4.8-rc3 kernel.
364 400
365Here are some examples of how to apply these patches:401Here are some examples of how to apply these patches::
366 402
367# moving from 2.6.12 to 2.6.12-git1403 # moving from 4.7 to 4.7-git1
368$ cd ~/linux-2.6.12 # change to the kernel source dir404
369$ patch -p1 < ../patch-2.6.12-git1 # apply the 2.6.12-git1 patch405 $ cd ~/linux-4.7 # change to the kernel source dir
370$ cd ..406 $ patch -p1 < ../patch-4.7-git1 # apply the 4.7-git1 patch
371$ mv linux-2.6.12 linux-2.6.12-git1 # rename the kernel source dir407 $ cd ..
372 408 $ mv linux-4.7 linux-4.7-git1 # rename the kernel source dir
373# moving from 2.6.12-git1 to 2.6.13-rc2-git3409
374$ cd ~/linux-2.6.12-git1 # change to the kernel source dir410 # moving from 4.7-git1 to 4.8-rc2-git3
375$ patch -p1 -R < ../patch-2.6.12-git1 # revert the 2.6.12-git1 patch411
376 # we now have a 2.6.12 kernel412 $ cd ~/linux-4.7-git1 # change to the kernel source dir
377$ patch -p1 < ../patch-2.6.13-rc2 # apply the 2.6.13-rc2 patch413 $ patch -p1 -R < ../patch-4.7-git1 # revert the 4.7-git1 patch
378 # the kernel is now 2.6.13-rc2414 # we now have a 4.7 kernel
379$ patch -p1 < ../patch-2.6.13-rc2-git3 # apply the 2.6.13-rc2-git3 patch415 $ patch -p1 < ../patch-4.8-rc2 # apply the 4.8-rc2 patch
380 # the kernel is now 2.6.13-rc2-git3416 # the kernel is now 4.8-rc2
381$ cd ..417 $ patch -p1 < ../patch-4.8-rc2-git3 # apply the 4.8-rc2-git3 patch
382$ mv linux-2.6.12-git1 linux-2.6.13-rc2-git3 # rename source dir418 # the kernel is now 4.8-rc2-git3
383 419 $ cd ..
384 420 $ mv linux-4.7-git1 linux-4.8-rc2-git3 # rename source dir
385The -mm kernels421
386---422
387 These are experimental kernels released by Andrew Morton.423The -mm patches and the linux-next tree
388 424=======================================
389The -mm tree serves as a sort of proving ground for new features and other425
390experimental patches.426The -mm patches are experimental patches released by Andrew Morton.
391Once a patch has proved its worth in -mm for a while Andrew pushes it on to427
392Linus for inclusion in mainline.428In the past, -mm tree were used to also test subsystem patches, but this
393 429function is now done via the
394Although it's encouraged that patches flow to Linus via the -mm tree, this430:ref:`linux-next <https://www.kernel.org/doc/man-pages/linux-next.html>`
395is not always enforced.431tree. The Subsystem maintainers push their patches first to linux-next,
396Subsystem maintainers (or individuals) sometimes push their patches directly432and, during the merge window, sends them directly to Linus.
397to Linus, even though (or after) they have been merged and tested in -mm (or433
398sometimes even without prior testing in -mm).434The -mm patches serve as a sort of proving ground for new features and other
399 435experimental patches that aren't merged via a subsystem tree.
400You should generally strive to get your patches into mainline via -mm to436Once such patches has proved its worth in -mm for a while Andrew pushes
401ensure maximum testing.437it on to Linus for inclusion in mainline.
402 438
403This branch is in constant flux and contains many experimental features, a439The linux-next tree is daily updated, and includes the -mm patches.
440Both are in constant flux and contains many experimental features, a
404lot of debugging patches not appropriate for mainline etc., and is the most441lot of debugging patches not appropriate for mainline etc., and is the most
405experimental of the branches described in this document.442experimental of the branches described in this document.
406 443
407These kernels are not appropriate for use on systems that are supposed to be444These patches are not appropriate for use on systems that are supposed to be
408stable and they are more risky to run than any of the other branches (make445stable and they are more risky to run than any of the other branches (make
409sure you have up-to-date backups -- that goes for any experimental kernel but446sure you have up-to-date backups -- that goes for any experimental kernel but
410even more so for -mm kernels).447even more so for -mm patches or using a Kernel from the linux-next tree).
411 448
412These kernels in addition to all the other experimental patches they contain449Testing of -mm patches and linux-next is greatly appreciated since the whole
413usually also contain any changes in the mainline -git kernels available at450point of those are to weed out regressions, crashes, data corruption bugs,
414the time of release.451build breakage (and any other bug in general) before changes are merged into
415 452the more stable mainline Linus tree.
416Testing of -mm kernels is greatly appreciated since the whole point of the453
417tree is to weed out regressions, crashes, data corruption bugs, build454But testers of -mm and linux-next should be aware that breakages are
418breakage (and any other bug in general) before changes are merged into the455more common than in any other tree.
419more stable mainline Linus tree.
420But testers of -mm should be aware that breakage in this tree is more common
421than in any other tree.
422
423The -mm kernels are not released on a fixed schedule, but usually a few -mm
424kernels are released in between each -rc kernel (1 to 3 is common).
425The -mm kernels apply to either a base 2.6.x kernel (when no -rc kernels
426have been released yet) or to a Linus -rc kernel.
427
428Here are some examples of applying the -mm patches:
429
430# moving from 2.6.12 to 2.6.12-mm1
431$ cd ~/linux-2.6.12 # change to the 2.6.12 source dir
432$ patch -p1 < ../2.6.12-mm1 # apply the 2.6.12-mm1 patch
433$ cd ..
434$ mv linux-2.6.12 linux-2.6.12-mm1 # rename the source appropriately
435
436# moving from 2.6.12-mm1 to 2.6.13-rc3-mm3
437$ cd ~/linux-2.6.12-mm1
438$ patch -p1 -R < ../2.6.12-mm1 # revert the 2.6.12-mm1 patch
439 # we now have a 2.6.12 source
440$ patch -p1 < ../patch-2.6.13-rc3 # apply the 2.6.13-rc3 patch
441 # we now have a 2.6.13-rc3 source
442$ patch -p1 < ../2.6.13-rc3-mm3 # apply the 2.6.13-rc3-mm3 patch
443$ cd ..
444$ mv linux-2.6.12-mm1 linux-2.6.13-rc3-mm3 # rename the source dir
445 456
446 457
447This concludes this list of explanations of the various kernel trees.458This concludes this list of explanations of the various kernel trees.
Documentation/arm/00-INDEX+0−2
@@ -8,8 +8,6 @@ Interrupts · 7 unmodified lines
8 - ARM Interrupt subsystem documentation8 - ARM Interrupt subsystem documentation
9IXP4xx9IXP4xx
10 - Intel IXP4xx Network processor.10 - Intel IXP4xx Network processor.
11Makefile
12 - Build sourcefiles as part of the Documentation-build for arm
13Netwinder11Netwinder
14 - Netwinder specific documentation12 - Netwinder specific documentation
15Porting13Porting
Documentation/arm/CCN.txt+10−6
@@ -18,13 +18,17 @@ and config2 fields of the perf_event_attr structure. The "events" · 17 unmodified lines
18directory provides configuration templates for all documented18directory provides configuration templates for all documented
19events, that can be used with perf tool. For example "xp_valid_flit"19events, that can be used with perf tool. For example "xp_valid_flit"
20is an equivalent of "type=0x8,event=0x4". Other parameters must be20is an equivalent of "type=0x8,event=0x4". Other parameters must be
21explicitly specified. For events originating from device, "node"21explicitly specified.
22defines its index. All crosspoint events require "xp" (index),
23"port" (device port number) and "vc" (virtual channel ID) and
24"dir" (direction). Watchpoints (special "event" value 0xfe) also
25require comparator values ("cmp_l" and "cmp_h") and "mask", being
26index of the comparator mask.
27 22
23For events originating from device, "node" defines its index.
24
25Crosspoint PMU events require "xp" (index), "bus" (bus number)
26and "vc" (virtual channel ID).
27
28Crosspoint watchpoint-based events (special "event" value 0xfe)
29require "xp" and "vc" as as above plus "port" (device port index),
30"dir" (transmit/receive direction), comparator values ("cmp_l"
31and "cmp_h") and "mask", being index of the comparator mask.
28Masks are defined separately from the event description32Masks are defined separately from the event description
29(due to limited number of the config values) in the "cmp_mask"33(due to limited number of the config values) in the "cmp_mask"
30directory, with first 8 configurable by user and additional34directory, with first 8 configurable by user and additional
Documentation/arm/sunxi/README+12−1
@@ -31,6 +31,8 @@ SunXi family · 30 unmodified lines
31 + User Manual31 + User Manual
32 http://dl.linux-sunxi.org/A13/A13%20User%20Manual%20-%20v1.2%20%282013-01-08%29.pdf32 http://dl.linux-sunxi.org/A13/A13%20User%20Manual%20-%20v1.2%20%282013-01-08%29.pdf
33 33
34 - Next Thing Co GR8 (sun5i)
35
34 * Dual ARM Cortex-A7 based SoCs36 * Dual ARM Cortex-A7 based SoCs
35 - Allwinner A20 (sun7i)37 - Allwinner A20 (sun7i)
36 + User Manual38 + User Manual
@@ -73,4 +75,13 @@ SunXi family · 36 unmodified lines
73 * Octa ARM Cortex-A7 based SoCs75 * Octa ARM Cortex-A7 based SoCs
74 - Allwinner A83T76 - Allwinner A83T
75 + Datasheet77 + Datasheet
76 http://dl.linux-sunxi.org/A83T/A83T_datasheet_Revision_1.1.pdf78 https://github.com/allwinner-zh/documents/raw/master/A83T/A83T_Datasheet_v1.3_20150510.pdf
79 + User Manual
80 https://github.com/allwinner-zh/documents/raw/master/A83T/A83T_User_Manual_v1.5.1_20150513.pdf
81
82 * Quad ARM Cortex-A53 based SoCs
83 - Allwinner A64
84 + Datasheet
85 http://dl.linux-sunxi.org/A64/A64_Datasheet_V1.1.pdf
86 + User Manual
87 http://dl.linux-sunxi.org/A64/Allwinner%20A64%20User%20Manual%20v1.0.pdf
Documentation/arm64/silicon-errata.txt+2−0
@@ -61,3 +61,5 @@ stable kernels. · 60 unmodified lines
61| Cavium | ThunderX GICv3 | #23154 | CAVIUM_ERRATUM_23154 |61| Cavium | ThunderX GICv3 | #23154 | CAVIUM_ERRATUM_23154 |
62| Cavium | ThunderX Core | #27456 | CAVIUM_ERRATUM_27456 |62| Cavium | ThunderX Core | #27456 | CAVIUM_ERRATUM_27456 |
63| Cavium | ThunderX SMMUv2 | #27704 | N/A |63| Cavium | ThunderX SMMUv2 | #27704 | N/A |
64| | | | |
65| Freescale/NXP | LS2080A/LS1043A | A-008585 | FSL_ERRATUM_A008585 |
Documentation/auxdisplay/Makefile+0−7
@@ -1,7 +0,0 @@
1# List of programs to build
2hostprogs-y := cfag12864b-example
3
4# Tell kbuild to always build the programs
5always := $(hostprogs-y)
6
7HOSTCFLAGS_cfag12864b-example.o += -I$(objtree)/usr/include
Documentation/auxdisplay/cfag12864b+1−1
@@ -101,5 +101,5 @@ Although the LCD won't get updated until the next refresh time arrives. · 100 unmodified lines
101Also, you can mmap the framebuffer: open & mmap, munmap & close...101Also, you can mmap the framebuffer: open & mmap, munmap & close...
102which is the best option for most uses.102which is the best option for most uses.
103 103
104Check Documentation/auxdisplay/cfag12864b-example.c104Check samples/auxdisplay/cfag12864b-example.c
105for a real working userspace complete program with usage examples.105for a real working userspace complete program with usage examples.
Documentation/blackfin/00-INDEX+0−4
@@ -1,10 +1,6 @@
100-INDEX100-INDEX
2 - This file2 - This file
3Makefile
4 - Makefile for gptimers example file.
5bfin-gpio-notes.txt3bfin-gpio-notes.txt
6 - Notes in developing/using bfin-gpio driver.4 - Notes in developing/using bfin-gpio driver.
7bfin-spi-notes.txt5bfin-spi-notes.txt
8 - Notes for using bfin spi bus driver.6 - Notes for using bfin spi bus driver.
9gptimers-example.c
10 - gptimers example
Documentation/blackfin/Makefile+0−5
@@ -1,5 +0,0 @@
1ifneq ($(CONFIG_BLACKFIN),)
2ifneq ($(CONFIG_BFIN_GPTIMERS),)
3obj-m := gptimers-example.o
4endif
5endif
Documentation/block/biodoc.txt+2−2
@@ -115,7 +115,7 @@ i. Per-queue limits/values exported to the generic layer by the driver · 114 unmodified lines
115 115
116Various parameters that the generic i/o scheduler logic uses are set at116Various parameters that the generic i/o scheduler logic uses are set at
117a per-queue level (e.g maximum request size, maximum number of segments in117a per-queue level (e.g maximum request size, maximum number of segments in
118a scatter-gather list, hardsect size)118a scatter-gather list, logical block size)
119 119
120Some parameters that were earlier available as global arrays indexed by120Some parameters that were earlier available as global arrays indexed by
121major/minor are now directly associated with the queue. Some of these may121major/minor are now directly associated with the queue. Some of these may
@@ -156,7 +156,7 @@ Some new queue property settings: · 34 unmodified lines
156 blk_queue_max_segment_size(q, max_seg_size)156 blk_queue_max_segment_size(q, max_seg_size)
157 Maximum size of a clustered segment, 64kB default.157 Maximum size of a clustered segment, 64kB default.
158 158
159 blk_queue_hardsect_size(q, hardsect_size)159 blk_queue_logical_block_size(q, logical_block_size)
160 Lowest possible sector size that the hardware can operate160 Lowest possible sector size that the hardware can operate
161 on, 512 bytes default.161 on, 512 bytes default.
162 162
Documentation/clk.txt+22−20
@@ -31,24 +31,25 @@ serve as a convenient shorthand for the implementation of the · 30 unmodified lines
31hardware-specific bits for the hypothetical "foo" hardware.31hardware-specific bits for the hypothetical "foo" hardware.
32 32
33Tying the two halves of this interface together is struct clk_hw, which33Tying the two halves of this interface together is struct clk_hw, which
34is defined in struct clk_foo and pointed to within struct clk. This34is defined in struct clk_foo and pointed to within struct clk_core. This
35allows for easy navigation between the two discrete halves of the common35allows for easy navigation between the two discrete halves of the common
36clock interface.36clock interface.
37 37
38 Part 2 - common data structures and api38 Part 2 - common data structures and api
39 39
40Below is the common struct clk definition from40Below is the common struct clk_core definition from
41include/linux/clk-private.h, modified for brevity:41drivers/clk/clk.c, modified for brevity:
42 42
43 struct clk {43 struct clk_core {
44 const char *name;44 const char *name;
45 const struct clk_ops *ops;45 const struct clk_ops *ops;
46 struct clk_hw *hw;46 struct clk_hw *hw;
47 char **parent_names;47 struct module *owner;
48 struct clk **parents;48 struct clk_core *parent;
49 struct clk *parent;49 const char **parent_names;
50 struct hlist_head children;50 struct clk_core **parents;
51 struct hlist_node child_node;51 u8 num_parents;
52 u8 new_parent_index;
52 ...53 ...
53 };54 };
54 55
@@ -56,16 +57,19 @@ The members above make up the core of the clk tree topology. The clk · 1 unmodified line
56api itself defines several driver-facing functions which operate on57api itself defines several driver-facing functions which operate on
57struct clk. That api is documented in include/linux/clk.h.58struct clk. That api is documented in include/linux/clk.h.
58 59
59Platforms and devices utilizing the common struct clk use the struct60Platforms and devices utilizing the common struct clk_core use the struct
60clk_ops pointer in struct clk to perform the hardware-specific parts of61clk_ops pointer in struct clk_core to perform the hardware-specific parts of
61the operations defined in clk.h:62the operations defined in clk-provider.h:
62 63
63 struct clk_ops {64 struct clk_ops {
64 int (*prepare)(struct clk_hw *hw);65 int (*prepare)(struct clk_hw *hw);
65 void (*unprepare)(struct clk_hw *hw);66 void (*unprepare)(struct clk_hw *hw);
67 int (*is_prepared)(struct clk_hw *hw);
68 void (*unprepare_unused)(struct clk_hw *hw);
66 int (*enable)(struct clk_hw *hw);69 int (*enable)(struct clk_hw *hw);
67 void (*disable)(struct clk_hw *hw);70 void (*disable)(struct clk_hw *hw);
68 int (*is_enabled)(struct clk_hw *hw);71 int (*is_enabled)(struct clk_hw *hw);
72 void (*disable_unused)(struct clk_hw *hw);
69 unsigned long (*recalc_rate)(struct clk_hw *hw,73 unsigned long (*recalc_rate)(struct clk_hw *hw,
70 unsigned long parent_rate);74 unsigned long parent_rate);
71 long (*round_rate)(struct clk_hw *hw,75 long (*round_rate)(struct clk_hw *hw,
@@ -84,6 +88,8 @@ the operations defined in clk.h: · 12 unmodified lines
84 u8 index);88 u8 index);
85 unsigned long (*recalc_accuracy)(struct clk_hw *hw,89 unsigned long (*recalc_accuracy)(struct clk_hw *hw,
86 unsigned long parent_accuracy);90 unsigned long parent_accuracy);
91 int (*get_phase)(struct clk_hw *hw);
92 int (*set_phase)(struct clk_hw *hw, int degrees);
87 void (*init)(struct clk_hw *hw);93 void (*init)(struct clk_hw *hw);
88 int (*debug_init)(struct clk_hw *hw,94 int (*debug_init)(struct clk_hw *hw,
89 struct dentry *dentry);95 struct dentry *dentry);
@@ -91,7 +97,7 @@ the operations defined in clk.h: · 1 unmodified line
91 97
92 Part 3 - hardware clk implementations98 Part 3 - hardware clk implementations
93 99
94The strength of the common struct clk comes from its .ops and .hw pointers100The strength of the common struct clk_core comes from its .ops and .hw pointers
95which abstract the details of struct clk from the hardware-specific bits, and101which abstract the details of struct clk from the hardware-specific bits, and
96vice versa. To illustrate consider the simple gateable clk implementation in102vice versa. To illustrate consider the simple gateable clk implementation in
97drivers/clk/clk-gate.c:103drivers/clk/clk-gate.c:
@@ -107,7 +113,7 @@ struct clk_gate contains struct clk_hw hw as well as hardware-specific · 9 unmodified lines
107knowledge about which register and bit controls this clk's gating.113knowledge about which register and bit controls this clk's gating.
108Nothing about clock topology or accounting, such as enable_count or114Nothing about clock topology or accounting, such as enable_count or
109notifier_count, is needed here. That is all handled by the common115notifier_count, is needed here. That is all handled by the common
110framework code and struct clk.116framework code and struct clk_core.
111 117
112Let's walk through enabling this clk from driver code:118Let's walk through enabling this clk from driver code:
113 119
@@ -139,22 +145,18 @@ static void clk_gate_set_bit(struct clk_gate *gate) · 25 unmodified lines
139 145
140Note that to_clk_gate is defined as:146Note that to_clk_gate is defined as:
141 147
142#define to_clk_gate(_hw) container_of(_hw, struct clk_gate, clk)148#define to_clk_gate(_hw) container_of(_hw, struct clk_gate, hw)
143 149
144This pattern of abstraction is used for every clock hardware150This pattern of abstraction is used for every clock hardware
145representation.151representation.
146 152
147 Part 4 - supporting your own clk hardware153 Part 4 - supporting your own clk hardware
148 154
149When implementing support for a new type of clock it only necessary to155When implementing support for a new type of clock it is only necessary to
150include the following header:156include the following header:
151 157
152#include <linux/clk-provider.h>158#include <linux/clk-provider.h>
153 159
154include/linux/clk.h is included within that header and clk-private.h
155must never be included from the code which implements the operations for
156a clock. More on that below in Part 5.
157
158To construct a clk hardware structure for your platform you must define160To construct a clk hardware structure for your platform you must define
159the following:161the following:
160 162
Documentation/conf.py+93−13
@@ -14,11 +14,17 @@ · 13 unmodified lines
14 14
15import sys15import sys
16import os16import os
17import sphinx
18
19# Get Sphinx version
20major, minor, patch = map(int, sphinx.__version__.split("."))
21
17 22
18# If extensions (or modules to document with autodoc) are in another directory,23# If extensions (or modules to document with autodoc) are in another directory,
19# add these directories to sys.path here. If the directory is relative to the24# add these directories to sys.path here. If the directory is relative to the
20# documentation root, use os.path.abspath to make it absolute, like shown here.25# documentation root, use os.path.abspath to make it absolute, like shown here.
21sys.path.insert(0, os.path.abspath('sphinx'))26sys.path.insert(0, os.path.abspath('sphinx'))
27from load_config import loadConfig
22 28
23# -- General configuration ------------------------------------------------29# -- General configuration ------------------------------------------------
24 30
@@ -28,14 +34,13 @@ sys.path.insert(0, os.path.abspath('sphinx')) · 3 unmodified lines
28# Add any Sphinx extension module names here, as strings. They can be34# Add any Sphinx extension module names here, as strings. They can be
29# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom35# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
30# ones.36# ones.
31extensions = ['kernel-doc', 'rstFlatTable', 'kernel_include']37extensions = ['kernel-doc', 'rstFlatTable', 'kernel_include', 'cdomain']
32 38
33# Gracefully handle missing rst2pdf.39# The name of the math extension changed on Sphinx 1.4
34try:40if minor > 3:
35 import rst2pdf41 extensions.append("sphinx.ext.imgmath")
36 extensions += ['rst2pdf.pdfbuilder']42else:
37except ImportError:43 extensions.append("sphinx.ext.pngmath")
38 pass
39 44
40# Add any paths that contain templates here, relative to this directory.45# Add any paths that contain templates here, relative to this directory.
41templates_path = ['_templates']46templates_path = ['_templates']
@@ -252,23 +257,92 @@ htmlhelp_basename = 'TheLinuxKerneldoc' · 210 unmodified lines
252 257
253latex_elements = {258latex_elements = {
254# The paper size ('letterpaper' or 'a4paper').259# The paper size ('letterpaper' or 'a4paper').
255#'papersize': 'letterpaper',260'papersize': 'a4paper',
256 261
257# The font size ('10pt', '11pt' or '12pt').262# The font size ('10pt', '11pt' or '12pt').
258#'pointsize': '10pt',263'pointsize': '8pt',
259
260# Additional stuff for the LaTeX preamble.
261#'preamble': '',
262 264
263# Latex figure (float) alignment265# Latex figure (float) alignment
264#'figure_align': 'htbp',266#'figure_align': 'htbp',
267
268# Don't mangle with UTF-8 chars
269'inputenc': '',
270'utf8extra': '',
271
272# Additional stuff for the LaTeX preamble.
273 'preamble': '''
274 % Adjust margins
275 \\usepackage[margin=0.5in, top=1in, bottom=1in]{geometry}
276
277 % Allow generate some pages in landscape
278 \\usepackage{lscape}
279
280 % Put notes in color and let them be inside a table
281 \\definecolor{NoteColor}{RGB}{204,255,255}
282 \\definecolor{WarningColor}{RGB}{255,204,204}
283 \\definecolor{AttentionColor}{RGB}{255,255,204}
284 \\definecolor{OtherColor}{RGB}{204,204,204}
285 \\newlength{\\mynoticelength}
286 \\makeatletter\\newenvironment{coloredbox}[1]{%
287 \\setlength{\\fboxrule}{1pt}
288 \\setlength{\\fboxsep}{7pt}
289 \\setlength{\\mynoticelength}{\\linewidth}
290 \\addtolength{\\mynoticelength}{-2\\fboxsep}
291 \\addtolength{\\mynoticelength}{-2\\fboxrule}
292 \\begin{lrbox}{\\@tempboxa}\\begin{minipage}{\\mynoticelength}}{\\end{minipage}\\end{lrbox}%
293 \\ifthenelse%
294 {\\equal{\\py@noticetype}{note}}%
295 {\\colorbox{NoteColor}{\\usebox{\\@tempboxa}}}%
296 {%
297 \\ifthenelse%
298 {\\equal{\\py@noticetype}{warning}}%
299 {\\colorbox{WarningColor}{\\usebox{\\@tempboxa}}}%
300 {%
301 \\ifthenelse%
302 {\\equal{\\py@noticetype}{attention}}%
303 {\\colorbox{AttentionColor}{\\usebox{\\@tempboxa}}}%
304 {\\colorbox{OtherColor}{\\usebox{\\@tempboxa}}}%
305 }%
306 }%
307 }\\makeatother
308
309 \\makeatletter
310 \\renewenvironment{notice}[2]{%
311 \\def\\py@noticetype{#1}
312 \\begin{coloredbox}{#1}
313 \\bf\\it
314 \\par\\strong{#2}
315 \\csname py@noticestart@#1\\endcsname
316 }
317 {
318 \\csname py@noticeend@\\py@noticetype\\endcsname
319 \\end{coloredbox}
320 }
321 \\makeatother
322
323 % Use some font with UTF-8 support with XeLaTeX
324 \\usepackage{fontspec}
325 \\setsansfont{DejaVu Serif}
326 \\setromanfont{DejaVu Sans}
327 \\setmonofont{DejaVu Sans Mono}
328
329 % To allow adjusting table sizes
330 \\usepackage{adjustbox}
331
332 '''
265}333}
266 334
267# Grouping the document tree into LaTeX files. List of tuples335# Grouping the document tree into LaTeX files. List of tuples
268# (source start file, target name, title,336# (source start file, target name, title,
269# author, documentclass [howto, manual, or own class]).337# author, documentclass [howto, manual, or own class]).
270latex_documents = [338latex_documents = [
271 (master_doc, 'TheLinuxKernel.tex', 'The Linux Kernel Documentation',339 ('kernel-documentation', 'kernel-documentation.tex', 'The Linux Kernel Documentation',
340 'The kernel development community', 'manual'),
341 ('development-process/index', 'development-process.tex', 'Linux Kernel Development Documentation',
342 'The kernel development community', 'manual'),
343 ('gpu/index', 'gpu.tex', 'Linux GPU Driver Developer\'s Guide',
344 'The kernel development community', 'manual'),
345 ('media/index', 'media.tex', 'Linux Media Subsystem Documentation',
272 'The kernel development community', 'manual'),346 'The kernel development community', 'manual'),
273]347]
274 348
@@ -419,3 +493,9 @@ pdf_documents = [ · 144 unmodified lines
419# line arguments.493# line arguments.
420kerneldoc_bin = '../scripts/kernel-doc'494kerneldoc_bin = '../scripts/kernel-doc'
421kerneldoc_srctree = '..'495kerneldoc_srctree = '..'
496
497# ------------------------------------------------------------------------------
498# Since loadConfig overwrites settings from the global namespace, it has to be
499# the last statement in the conf.py file
500# ------------------------------------------------------------------------------
501loadConfig(globals())
Documentation/dev-tools/coccinelle.rstrenamed from Documentation/coccinelle.txt+190−169
@@ -1,10 +1,18 @@
1Copyright 2010 Nicolas Palix <npalix@diku.dk>1.. Copyright 2010 Nicolas Palix <npalix@diku.dk>
2Copyright 2010 Julia Lawall <julia@diku.dk>2.. Copyright 2010 Julia Lawall <julia@diku.dk>
3Copyright 2010 Gilles Muller <Gilles.Muller@lip6.fr>3.. Copyright 2010 Gilles Muller <Gilles.Muller@lip6.fr>
4 4
5.. highlight:: none
5 6
6 Getting Coccinelle7Coccinelle
7~~~~~~~~~~~~~~~~~~~~8==========
9
10Coccinelle is a tool for pattern matching and text transformation that has
11many uses in kernel development, including the application of complex,
12tree-wide patches and detection of problematic programming patterns.
13
14Getting Coccinelle
15-------------------
8 16
9The semantic patches included in the kernel use features and options17The semantic patches included in the kernel use features and options
10which are provided by Coccinelle version 1.0.0-rc11 and above.18which are provided by Coccinelle version 1.0.0-rc11 and above.
@@ -22,24 +30,23 @@ of many distributions, e.g. : · 11 unmodified lines
22 - NetBSD30 - NetBSD
23 - FreeBSD31 - FreeBSD
24 32
25
26You can get the latest version released from the Coccinelle homepage at33You can get the latest version released from the Coccinelle homepage at
27http://coccinelle.lip6.fr/34http://coccinelle.lip6.fr/
28 35
29Information and tips about Coccinelle are also provided on the wiki36Information and tips about Coccinelle are also provided on the wiki
30pages at http://cocci.ekstranet.diku.dk/wiki/doku.php37pages at http://cocci.ekstranet.diku.dk/wiki/doku.php
31 38
32Once you have it, run the following command:39Once you have it, run the following command::
33 40
34 ./configure41 ./configure
35 make42 make
36 43
37as a regular user, and install it with44as a regular user, and install it with::
38 45
39 sudo make install46 sudo make install
40 47
41 Supplemental documentation48Supplemental documentation
42~~~~~~~~~~~~~~~~~~~~~~~~~~~~49---------------------------
43 50
44For supplemental documentation refer to the wiki:51For supplemental documentation refer to the wiki:
45 52
@@ -47,49 +54,52 @@ https://bottest.wiki.kernel.org/coccicheck · 1 unmodified line
47 54
48The wiki documentation always refers to the linux-next version of the script.55The wiki documentation always refers to the linux-next version of the script.
49 56
50 Using Coccinelle on the Linux kernel57Using Coccinelle on the Linux kernel
51~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~58------------------------------------
52 59
53A Coccinelle-specific target is defined in the top level60A Coccinelle-specific target is defined in the top level
54Makefile. This target is named 'coccicheck' and calls the 'coccicheck'61Makefile. This target is named ``coccicheck`` and calls the ``coccicheck``
55front-end in the 'scripts' directory.62front-end in the ``scripts`` directory.
56 63
57Four basic modes are defined: patch, report, context, and org. The mode to64Four basic modes are defined: ``patch``, ``report``, ``context``, and
58use is specified by setting the MODE variable with 'MODE=<mode>'.65``org``. The mode to use is specified by setting the MODE variable with
66``MODE=<mode>``.
59 67
60'patch' proposes a fix, when possible.68- ``patch`` proposes a fix, when possible.
61 69
62'report' generates a list in the following format:70- ``report`` generates a list in the following format:
63 file:line:column-column: message71 file:line:column-column: message
64 72
65'context' highlights lines of interest and their context in a73- ``context`` highlights lines of interest and their context in a
66diff-like style.Lines of interest are indicated with '-'.74 diff-like style.Lines of interest are indicated with ``-``.
67 75
68'org' generates a report in the Org mode format of Emacs.76- ``org`` generates a report in the Org mode format of Emacs.
69 77
70Note that not all semantic patches implement all modes. For easy use78Note that not all semantic patches implement all modes. For easy use
71of Coccinelle, the default mode is "report".79of Coccinelle, the default mode is "report".
72 80
73Two other modes provide some common combinations of these modes.81Two other modes provide some common combinations of these modes.
74 82
75'chain' tries the previous modes in the order above until one succeeds.83- ``chain`` tries the previous modes in the order above until one succeeds.
84
85- ``rep+ctxt`` runs successively the report mode and the context mode.
86 It should be used with the C option (described later)
87 which checks the code on a file basis.
76 88
77'rep+ctxt' runs successively the report mode and the context mode.89Examples
78 It should be used with the C option (described later)90~~~~~~~~
79 which checks the code on a file basis.
80 91
81Examples:92To make a report for every semantic patch, run the following command::
82 To make a report for every semantic patch, run the following command:
83 93
84 make coccicheck MODE=report94 make coccicheck MODE=report
85 95
86 To produce patches, run:96To produce patches, run::
87 97
88 make coccicheck MODE=patch98 make coccicheck MODE=patch
89 99
90 100
91The coccicheck target applies every semantic patch available in the101The coccicheck target applies every semantic patch available in the
92sub-directories of 'scripts/coccinelle' to the entire Linux kernel.102sub-directories of ``scripts/coccinelle`` to the entire Linux kernel.
93 103
94For each semantic patch, a commit message is proposed. It gives a104For each semantic patch, a commit message is proposed. It gives a
95description of the problem being checked by the semantic patch, and105description of the problem being checked by the semantic patch, and
@@ -99,15 +109,15 @@ As any static code analyzer, Coccinelle produces false · 3 unmodified lines
99positives. Thus, reports must be carefully checked, and patches109positives. Thus, reports must be carefully checked, and patches
100reviewed.110reviewed.
101 111
102To enable verbose messages set the V= variable, for example:112To enable verbose messages set the V= variable, for example::
103 113
104 make coccicheck MODE=report V=1114 make coccicheck MODE=report V=1
105 115
106 Coccinelle parallelization116Coccinelle parallelization
107~~~~~~~~~~~~~~~~~~~~~~~~~~~~117---------------------------
108 118
109By default, coccicheck tries to run as parallel as possible. To change119By default, coccicheck tries to run as parallel as possible. To change
110the parallelism, set the J= variable. For example, to run across 4 CPUs:120the parallelism, set the J= variable. For example, to run across 4 CPUs::
111 121
112 make coccicheck MODE=report J=4122 make coccicheck MODE=report J=4
113 123
@@ -115,44 +125,47 @@ As of Coccinelle 1.0.2 Coccinelle uses Ocaml parmap for parallelization, · 1 unmodified line
115if support for this is detected you will benefit from parmap parallelization.125if support for this is detected you will benefit from parmap parallelization.
116 126
117When parmap is enabled coccicheck will enable dynamic load balancing by using127When parmap is enabled coccicheck will enable dynamic load balancing by using
118'--chunksize 1' argument, this ensures we keep feeding threads with work128``--chunksize 1`` argument, this ensures we keep feeding threads with work
119one by one, so that we avoid the situation where most work gets done by only129one by one, so that we avoid the situation where most work gets done by only
120a few threads. With dynamic load balancing, if a thread finishes early we keep130a few threads. With dynamic load balancing, if a thread finishes early we keep
121feeding it more work.131feeding it more work.
122 132
123When parmap is enabled, if an error occurs in Coccinelle, this error133When parmap is enabled, if an error occurs in Coccinelle, this error
124value is propagated back, the return value of the 'make coccicheck'134value is propagated back, the return value of the ``make coccicheck``
125captures this return value.135captures this return value.
126 136
127 Using Coccinelle with a single semantic patch137Using Coccinelle with a single semantic patch
128~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~138---------------------------------------------
129 139
130The optional make variable COCCI can be used to check a single140The optional make variable COCCI can be used to check a single
131semantic patch. In that case, the variable must be initialized with141semantic patch. In that case, the variable must be initialized with
132the name of the semantic patch to apply.142the name of the semantic patch to apply.
133 143
134For instance:144For instance::
135 145
136 make coccicheck COCCI=<my_SP.cocci> MODE=patch146 make coccicheck COCCI=<my_SP.cocci> MODE=patch
137or147
148or::
149
138 make coccicheck COCCI=<my_SP.cocci> MODE=report150 make coccicheck COCCI=<my_SP.cocci> MODE=report
139 151
140 152
141 Controlling Which Files are Processed by Coccinelle153Controlling Which Files are Processed by Coccinelle
142~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~154---------------------------------------------------
155
143By default the entire kernel source tree is checked.156By default the entire kernel source tree is checked.
144 157
145To apply Coccinelle to a specific directory, M= can be used.158To apply Coccinelle to a specific directory, ``M=`` can be used.
146For example, to check drivers/net/wireless/ one may write:159For example, to check drivers/net/wireless/ one may write::
147 160
148 make coccicheck M=drivers/net/wireless/161 make coccicheck M=drivers/net/wireless/
149 162
150To apply Coccinelle on a file basis, instead of a directory basis, the163To apply Coccinelle on a file basis, instead of a directory basis, the
151following command may be used:164following command may be used::
152 165
153 make C=1 CHECK="scripts/coccicheck"166 make C=1 CHECK="scripts/coccicheck"
154 167
155To check only newly edited code, use the value 2 for the C flag, i.e.168To check only newly edited code, use the value 2 for the C flag, i.e.::
156 169
157 make C=2 CHECK="scripts/coccicheck"170 make C=2 CHECK="scripts/coccicheck"
158 171
@@ -166,8 +179,8 @@ semantic patch as shown in the previous section. · 7 unmodified lines
166The "report" mode is the default. You can select another one with the179The "report" mode is the default. You can select another one with the
167MODE variable explained above.180MODE variable explained above.
168 181
169 Debugging Coccinelle SmPL patches182Debugging Coccinelle SmPL patches
170~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~183---------------------------------
171 184
172Using coccicheck is best as it provides in the spatch command line185Using coccicheck is best as it provides in the spatch command line
173include options matching the options used when we compile the kernel.186include options matching the options used when we compile the kernel.
@@ -177,8 +190,8 @@ manually run Coccinelle with debug options added. · 3 unmodified lines
177Alternatively you can debug running Coccinelle against SmPL patches190Alternatively you can debug running Coccinelle against SmPL patches
178by asking for stderr to be redirected to stderr, by default stderr191by asking for stderr to be redirected to stderr, by default stderr
179is redirected to /dev/null, if you'd like to capture stderr you192is redirected to /dev/null, if you'd like to capture stderr you
180can specify the DEBUG_FILE="file.txt" option to coccicheck. For193can specify the ``DEBUG_FILE="file.txt"`` option to coccicheck. For
181instance:194instance::
182 195
183 rm -f cocci.err196 rm -f cocci.err
184 make coccicheck COCCI=scripts/coccinelle/free/kfree.cocci MODE=report DEBUG_FILE=cocci.err197 make coccicheck COCCI=scripts/coccinelle/free/kfree.cocci MODE=report DEBUG_FILE=cocci.err
@@ -186,7 +199,7 @@ instance: · 1 unmodified line
186 199
187You can use SPFLAGS to add debugging flags, for instance you may want to200You can use SPFLAGS to add debugging flags, for instance you may want to
188add both --profile --show-trying to SPFLAGS when debugging. For instance201add both --profile --show-trying to SPFLAGS when debugging. For instance
189you may want to use:202you may want to use::
190 203
191 rm -f err.log204 rm -f err.log
192 export COCCI=scripts/coccinelle/misc/irqf_oneshot.cocci205 export COCCI=scripts/coccinelle/misc/irqf_oneshot.cocci
@@ -198,24 +211,24 @@ work. · 5 unmodified lines
198 211
199DEBUG_FILE support is only supported when using coccinelle >= 1.2.212DEBUG_FILE support is only supported when using coccinelle >= 1.2.
200 213
201 .cocciconfig support214.cocciconfig support
202~~~~~~~~~~~~~~~~~~~~~~215--------------------
203 216
204Coccinelle supports reading .cocciconfig for default Coccinelle options that217Coccinelle supports reading .cocciconfig for default Coccinelle options that
205should be used every time spatch is spawned, the order of precedence for218should be used every time spatch is spawned, the order of precedence for
206variables for .cocciconfig is as follows:219variables for .cocciconfig is as follows:
207 220
208 o Your current user's home directory is processed first221- Your current user's home directory is processed first
209 o Your directory from which spatch is called is processed next222- Your directory from which spatch is called is processed next
210 o The directory provided with the --dir option is processed last, if used223- The directory provided with the --dir option is processed last, if used
211 224
212Since coccicheck runs through make, it naturally runs from the kernel225Since coccicheck runs through make, it naturally runs from the kernel
213proper dir, as such the second rule above would be implied for picking up a226proper dir, as such the second rule above would be implied for picking up a
214.cocciconfig when using 'make coccicheck'.227.cocciconfig when using ``make coccicheck``.
215 228
216'make coccicheck' also supports using M= targets.If you do not supply229``make coccicheck`` also supports using M= targets.If you do not supply
217any M= target, it is assumed you want to target the entire kernel.230any M= target, it is assumed you want to target the entire kernel.
218The kernel coccicheck script has:231The kernel coccicheck script has::
219 232
220 if [ "$KBUILD_EXTMOD" = "" ] ; then233 if [ "$KBUILD_EXTMOD" = "" ] ; then
221 OPTIONS="--dir $srctree $COCCIINCLUDE"234 OPTIONS="--dir $srctree $COCCIINCLUDE"
@@ -235,12 +248,12 @@ override any of the kernel's .coccicheck's settings using SPFLAGS. · 13 unmodified lines
235 248
236We help Coccinelle when used against Linux with a set of sensible defaults249We help Coccinelle when used against Linux with a set of sensible defaults
237options for Linux with our own Linux .cocciconfig. This hints to coccinelle250options for Linux with our own Linux .cocciconfig. This hints to coccinelle
238git can be used for 'git grep' queries over coccigrep. A timeout of 200251git can be used for ``git grep`` queries over coccigrep. A timeout of 200
239seconds should suffice for now.252seconds should suffice for now.
240 253
241The options picked up by coccinelle when reading a .cocciconfig do not appear254The options picked up by coccinelle when reading a .cocciconfig do not appear
242as arguments to spatch processes running on your system, to confirm what255as arguments to spatch processes running on your system, to confirm what
243options will be used by Coccinelle run:256options will be used by Coccinelle run::
244 257
245 spatch --print-options-only258 spatch --print-options-only
246 259
@@ -252,219 +265,227 @@ carries its own .cocciconfig, you will need to use SPFLAGS to use idutils if · 5 unmodified lines
252desired. See below section "Additional flags" for more details on how to use265desired. See below section "Additional flags" for more details on how to use
253idutils.266idutils.
254 267
255 Additional flags268Additional flags
256~~~~~~~~~~~~~~~~~~269----------------
257 270
258Additional flags can be passed to spatch through the SPFLAGS271Additional flags can be passed to spatch through the SPFLAGS
259variable. This works as Coccinelle respects the last flags272variable. This works as Coccinelle respects the last flags
260given to it when options are in conflict.273given to it when options are in conflict. ::
261 274
262 make SPFLAGS=--use-glimpse coccicheck275 make SPFLAGS=--use-glimpse coccicheck
263 276
264Coccinelle supports idutils as well but requires coccinelle >= 1.0.6.277Coccinelle supports idutils as well but requires coccinelle >= 1.0.6.
265When no ID file is specified coccinelle assumes your ID database file278When no ID file is specified coccinelle assumes your ID database file
266is in the file .id-utils.index on the top level of the kernel, coccinelle279is in the file .id-utils.index on the top level of the kernel, coccinelle
267carries a script scripts/idutils_index.sh which creates the database with280carries a script scripts/idutils_index.sh which creates the database with::
268 281
269 mkid -i C --output .id-utils.index282 mkid -i C --output .id-utils.index
270 283
271If you have another database filename you can also just symlink with this284If you have another database filename you can also just symlink with this
272name.285name. ::
273 286
274 make SPFLAGS=--use-idutils coccicheck287 make SPFLAGS=--use-idutils coccicheck
275 288
276Alternatively you can specify the database filename explicitly, for289Alternatively you can specify the database filename explicitly, for
277instance:290instance::
278 291
279 make SPFLAGS="--use-idutils /full-path/to/ID" coccicheck292 make SPFLAGS="--use-idutils /full-path/to/ID" coccicheck
280 293
281See spatch --help to learn more about spatch options.294See ``spatch --help`` to learn more about spatch options.
282 295
283Note that the '--use-glimpse' and '--use-idutils' options296Note that the ``--use-glimpse`` and ``--use-idutils`` options
284require external tools for indexing the code. None of them is297require external tools for indexing the code. None of them is
285thus active by default. However, by indexing the code with298thus active by default. However, by indexing the code with
286one of these tools, and according to the cocci file used,299one of these tools, and according to the cocci file used,
287spatch could proceed the entire code base more quickly.300spatch could proceed the entire code base more quickly.
288 301
289 SmPL patch specific options302SmPL patch specific options
290~~~~~~~~~~~~~~~~~~~~~~~~~~~~~303---------------------------
291 304
292SmPL patches can have their own requirements for options passed305SmPL patches can have their own requirements for options passed
293to Coccinelle. SmPL patch specific options can be provided by306to Coccinelle. SmPL patch specific options can be provided by
294providing them at the top of the SmPL patch, for instance:307providing them at the top of the SmPL patch, for instance::
295 308
296// Options: --no-includes --include-headers309 // Options: --no-includes --include-headers
297 310
298 SmPL patch Coccinelle requirements311SmPL patch Coccinelle requirements
299~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~312----------------------------------
300 313
301As Coccinelle features get added some more advanced SmPL patches314As Coccinelle features get added some more advanced SmPL patches
302may require newer versions of Coccinelle. If an SmPL patch requires315may require newer versions of Coccinelle. If an SmPL patch requires
303at least a version of Coccinelle, this can be specified as follows,316at least a version of Coccinelle, this can be specified as follows,
304as an example if requiring at least Coccinelle >= 1.0.5:317as an example if requiring at least Coccinelle >= 1.0.5::
305 318
306// Requires: 1.0.5319 // Requires: 1.0.5
307 320
308 Proposing new semantic patches321Proposing new semantic patches
309~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~322-------------------------------
310 323
311New semantic patches can be proposed and submitted by kernel324New semantic patches can be proposed and submitted by kernel
312developers. For sake of clarity, they should be organized in the325developers. For sake of clarity, they should be organized in the
313sub-directories of 'scripts/coccinelle/'.326sub-directories of ``scripts/coccinelle/``.
314 327
315 328
316 Detailed description of the 'report' mode329Detailed description of the ``report`` mode
317~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~330-------------------------------------------
331
332``report`` generates a list in the following format::
318 333
319'report' generates a list in the following format:
320 file:line:column-column: message334 file:line:column-column: message
321 335
322Example:336Example
337~~~~~~~
323 338
324Running339Running::
325 340
326 make coccicheck MODE=report COCCI=scripts/coccinelle/api/err_cast.cocci341 make coccicheck MODE=report COCCI=scripts/coccinelle/api/err_cast.cocci
327 342
328will execute the following part of the SmPL script.343will execute the following part of the SmPL script::
329 344
330<smpl>345 <smpl>
331@r depends on !context && !patch && (org || report)@346 @r depends on !context && !patch && (org || report)@
332expression x;347 expression x;
333position p;348 position p;
334@@349 @@
335 350
336 ERR_PTR@p(PTR_ERR(x))351 ERR_PTR@p(PTR_ERR(x))
337 352
338@script:python depends on report@353 @script:python depends on report@
339p << r.p;354 p << r.p;
340x << r.x;355 x << r.x;
341@@356 @@
342 357
343msg="ERR_CAST can be used with %s" % (x)358 msg="ERR_CAST can be used with %s" % (x)
344coccilib.report.print_report(p[0], msg)359 coccilib.report.print_report(p[0], msg)
345</smpl>360 </smpl>
346 361
347This SmPL excerpt generates entries on the standard output, as362This SmPL excerpt generates entries on the standard output, as
348illustrated below:363illustrated below::
349 364
350/home/user/linux/crypto/ctr.c:188:9-16: ERR_CAST can be used with alg365 /home/user/linux/crypto/ctr.c:188:9-16: ERR_CAST can be used with alg
351/home/user/linux/crypto/authenc.c:619:9-16: ERR_CAST can be used with auth366 /home/user/linux/crypto/authenc.c:619:9-16: ERR_CAST can be used with auth
352/home/user/linux/crypto/xts.c:227:9-16: ERR_CAST can be used with alg367 /home/user/linux/crypto/xts.c:227:9-16: ERR_CAST can be used with alg
353 368
354 369
355 Detailed description of the 'patch' mode370Detailed description of the ``patch`` mode
356~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~371------------------------------------------
357 372
358When the 'patch' mode is available, it proposes a fix for each problem373When the ``patch`` mode is available, it proposes a fix for each problem
359identified.374identified.
360 375
361Example:376Example
377~~~~~~~
378
379Running::
362 380
363Running
364 make coccicheck MODE=patch COCCI=scripts/coccinelle/api/err_cast.cocci381 make coccicheck MODE=patch COCCI=scripts/coccinelle/api/err_cast.cocci
365 382
366will execute the following part of the SmPL script.383will execute the following part of the SmPL script::
367 384
368<smpl>385 <smpl>
369@ depends on !context && patch && !org && !report @386 @ depends on !context && patch && !org && !report @
370expression x;387 expression x;
371@@388 @@
372 389
373- ERR_PTR(PTR_ERR(x))390 - ERR_PTR(PTR_ERR(x))
374+ ERR_CAST(x)391 + ERR_CAST(x)
375</smpl>392 </smpl>
376 393
377This SmPL excerpt generates patch hunks on the standard output, as394This SmPL excerpt generates patch hunks on the standard output, as
378illustrated below:395illustrated below::
379 396
380diff -u -p a/crypto/ctr.c b/crypto/ctr.c397 diff -u -p a/crypto/ctr.c b/crypto/ctr.c
381--- a/crypto/ctr.c 2010-05-26 10:49:38.000000000 +0200398 --- a/crypto/ctr.c 2010-05-26 10:49:38.000000000 +0200
382+++ b/crypto/ctr.c 2010-06-03 23:44:49.000000000 +0200399 +++ b/crypto/ctr.c 2010-06-03 23:44:49.000000000 +0200
383@@ -185,7 +185,7 @@ static struct crypto_instance *crypto_ct400 @@ -185,7 +185,7 @@ static struct crypto_instance *crypto_ct
384 alg = crypto_attr_alg(tb[1], CRYPTO_ALG_TYPE_CIPHER,401 alg = crypto_attr_alg(tb[1], CRYPTO_ALG_TYPE_CIPHER,
385 CRYPTO_ALG_TYPE_MASK);402 CRYPTO_ALG_TYPE_MASK);
386 if (IS_ERR(alg))403 if (IS_ERR(alg))
387- return ERR_PTR(PTR_ERR(alg));404 - return ERR_PTR(PTR_ERR(alg));
388+ return ERR_CAST(alg);405 + return ERR_CAST(alg);
389 406
390 /* Block size must be >= 4 bytes. */407 /* Block size must be >= 4 bytes. */
391 err = -EINVAL;408 err = -EINVAL;
392 409
393 Detailed description of the 'context' mode410Detailed description of the ``context`` mode
394~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~411--------------------------------------------
395 412
396'context' highlights lines of interest and their context413``context`` highlights lines of interest and their context
397in a diff-like style.414in a diff-like style.
398 415
399NOTE: The diff-like output generated is NOT an applicable patch. The416 **NOTE**: The diff-like output generated is NOT an applicable patch. The
400 intent of the 'context' mode is to highlight the important lines417 intent of the ``context`` mode is to highlight the important lines
401 (annotated with minus, '-') and gives some surrounding context418 (annotated with minus, ``-``) and gives some surrounding context
402 lines around. This output can be used with the diff mode of419 lines around. This output can be used with the diff mode of
403 Emacs to review the code.420 Emacs to review the code.
404 421
405Example:422Example
423~~~~~~~
424
425Running::
406 426
407Running
408 make coccicheck MODE=context COCCI=scripts/coccinelle/api/err_cast.cocci427 make coccicheck MODE=context COCCI=scripts/coccinelle/api/err_cast.cocci
409 428
410will execute the following part of the SmPL script.429will execute the following part of the SmPL script::
411 430
412<smpl>431 <smpl>
413@ depends on context && !patch && !org && !report@432 @ depends on context && !patch && !org && !report@
414expression x;433 expression x;
415@@434 @@
416 435
417* ERR_PTR(PTR_ERR(x))436 * ERR_PTR(PTR_ERR(x))
418</smpl>437 </smpl>
419 438
420This SmPL excerpt generates diff hunks on the standard output, as439This SmPL excerpt generates diff hunks on the standard output, as
421illustrated below:440illustrated below::
422 441
423diff -u -p /home/user/linux/crypto/ctr.c /tmp/nothing442 diff -u -p /home/user/linux/crypto/ctr.c /tmp/nothing
424--- /home/user/linux/crypto/ctr.c 2010-05-26 10:49:38.000000000 +0200443 --- /home/user/linux/crypto/ctr.c 2010-05-26 10:49:38.000000000 +0200
425+++ /tmp/nothing444 +++ /tmp/nothing
426@@ -185,7 +185,6 @@ static struct crypto_instance *crypto_ct445 @@ -185,7 +185,6 @@ static struct crypto_instance *crypto_ct
427 alg = crypto_attr_alg(tb[1], CRYPTO_ALG_TYPE_CIPHER,446 alg = crypto_attr_alg(tb[1], CRYPTO_ALG_TYPE_CIPHER,
428 CRYPTO_ALG_TYPE_MASK);447 CRYPTO_ALG_TYPE_MASK);
429 if (IS_ERR(alg))448 if (IS_ERR(alg))
430- return ERR_PTR(PTR_ERR(alg));449 - return ERR_PTR(PTR_ERR(alg));
431 450
432 /* Block size must be >= 4 bytes. */451 /* Block size must be >= 4 bytes. */
433 err = -EINVAL;452 err = -EINVAL;
434 453
435 Detailed description of the 'org' mode454Detailed description of the ``org`` mode
436~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~455----------------------------------------
456
457``org`` generates a report in the Org mode format of Emacs.
437 458
438'org' generates a report in the Org mode format of Emacs.459Example
460~~~~~~~
439 461
440Example:462Running::
441 463
442Running
443 make coccicheck MODE=org COCCI=scripts/coccinelle/api/err_cast.cocci464 make coccicheck MODE=org COCCI=scripts/coccinelle/api/err_cast.cocci
444 465
445will execute the following part of the SmPL script.466will execute the following part of the SmPL script::
446 467
447<smpl>468 <smpl>
448@r depends on !context && !patch && (org || report)@469 @r depends on !context && !patch && (org || report)@
449expression x;470 expression x;
450position p;471 position p;
451@@472 @@
452 473
453 ERR_PTR@p(PTR_ERR(x))474 ERR_PTR@p(PTR_ERR(x))
454 475
455@script:python depends on org@476 @script:python depends on org@
456p << r.p;477 p << r.p;
457x << r.x;478 x << r.x;
458@@479 @@
459 480
460msg="ERR_CAST can be used with %s" % (x)481 msg="ERR_CAST can be used with %s" % (x)
461msg_safe=msg.replace("[","@(").replace("]",")")482 msg_safe=msg.replace("[","@(").replace("]",")")
462coccilib.org.print_todo(p[0], msg_safe)483 coccilib.org.print_todo(p[0], msg_safe)
463</smpl>484 </smpl>
464 485
465This SmPL excerpt generates Org entries on the standard output, as486This SmPL excerpt generates Org entries on the standard output, as
466illustrated below:487illustrated below::
467 488
468* TODO [[view:/home/user/linux/crypto/ctr.c::face=ovl-face1::linb=188::colb=9::cole=16][ERR_CAST can be used with alg]]489 * TODO [[view:/home/user/linux/crypto/ctr.c::face=ovl-face1::linb=188::colb=9::cole=16][ERR_CAST can be used with alg]]
469* TODO [[view:/home/user/linux/crypto/authenc.c::face=ovl-face1::linb=619::colb=9::cole=16][ERR_CAST can be used with auth]]490 * TODO [[view:/home/user/linux/crypto/authenc.c::face=ovl-face1::linb=619::colb=9::cole=16][ERR_CAST can be used with auth]]
470* TODO [[view:/home/user/linux/crypto/xts.c::face=ovl-face1::linb=227::colb=9::cole=16][ERR_CAST can be used with alg]]491 * TODO [[view:/home/user/linux/crypto/xts.c::face=ovl-face1::linb=227::colb=9::cole=16][ERR_CAST can be used with alg]]
Documentation/dev-tools/gcov.rst+256−0
@@ -0,0 +1,256 @@
1Using gcov with the Linux kernel
2================================
3
4gcov profiling kernel support enables the use of GCC's coverage testing
5tool gcov_ with the Linux kernel. Coverage data of a running kernel
6is exported in gcov-compatible format via the "gcov" debugfs directory.
7To get coverage data for a specific file, change to the kernel build
8directory and use gcov with the ``-o`` option as follows (requires root)::
9
10 # cd /tmp/linux-out
11 # gcov -o /sys/kernel/debug/gcov/tmp/linux-out/kernel spinlock.c
12
13This will create source code files annotated with execution counts
14in the current directory. In addition, graphical gcov front-ends such
15as lcov_ can be used to automate the process of collecting data
16for the entire kernel and provide coverage overviews in HTML format.
17
18Possible uses:
19
20* debugging (has this line been reached at all?)
21* test improvement (how do I change my test to cover these lines?)
22* minimizing kernel configurations (do I need this option if the
23 associated code is never run?)
24
25.. _gcov: http://gcc.gnu.org/onlinedocs/gcc/Gcov.html
26.. _lcov: http://ltp.sourceforge.net/coverage/lcov.php
27
28
29Preparation
30-----------
31
32Configure the kernel with::
33
34 CONFIG_DEBUG_FS=y
35 CONFIG_GCOV_KERNEL=y
36
37select the gcc's gcov format, default is autodetect based on gcc version::
38
39 CONFIG_GCOV_FORMAT_AUTODETECT=y
40
41and to get coverage data for the entire kernel::
42
43 CONFIG_GCOV_PROFILE_ALL=y
44
45Note that kernels compiled with profiling flags will be significantly
46larger and run slower. Also CONFIG_GCOV_PROFILE_ALL may not be supported
47on all architectures.
48
49Profiling data will only become accessible once debugfs has been
50mounted::
51
52 mount -t debugfs none /sys/kernel/debug
53
54
55Customization
56-------------
57
58To enable profiling for specific files or directories, add a line
59similar to the following to the respective kernel Makefile:
60
61- For a single file (e.g. main.o)::
62
63 GCOV_PROFILE_main.o := y
64
65- For all files in one directory::
66
67 GCOV_PROFILE := y
68
69To exclude files from being profiled even when CONFIG_GCOV_PROFILE_ALL
70is specified, use::
71
72 GCOV_PROFILE_main.o := n
73
74and::
75
76 GCOV_PROFILE := n
77
78Only files which are linked to the main kernel image or are compiled as
79kernel modules are supported by this mechanism.
80
81
82Files
83-----
84
85The gcov kernel support creates the following files in debugfs:
86
87``/sys/kernel/debug/gcov``
88 Parent directory for all gcov-related files.
89
90``/sys/kernel/debug/gcov/reset``
91 Global reset file: resets all coverage data to zero when
92 written to.
93
94``/sys/kernel/debug/gcov/path/to/compile/dir/file.gcda``
95 The actual gcov data file as understood by the gcov
96 tool. Resets file coverage data to zero when written to.
97
98``/sys/kernel/debug/gcov/path/to/compile/dir/file.gcno``
99 Symbolic link to a static data file required by the gcov
100 tool. This file is generated by gcc when compiling with
101 option ``-ftest-coverage``.
102
103
104Modules
105-------
106
107Kernel modules may contain cleanup code which is only run during
108module unload time. The gcov mechanism provides a means to collect
109coverage data for such code by keeping a copy of the data associated
110with the unloaded module. This data remains available through debugfs.
111Once the module is loaded again, the associated coverage counters are
112initialized with the data from its previous instantiation.
113
114This behavior can be deactivated by specifying the gcov_persist kernel
115parameter::
116
117 gcov_persist=0
118
119At run-time, a user can also choose to discard data for an unloaded
120module by writing to its data file or the global reset file.
121
122
123Separated build and test machines
124---------------------------------
125
126The gcov kernel profiling infrastructure is designed to work out-of-the
127box for setups where kernels are built and run on the same machine. In
128cases where the kernel runs on a separate machine, special preparations
129must be made, depending on where the gcov tool is used:
130
131a) gcov is run on the TEST machine
132
133 The gcov tool version on the test machine must be compatible with the
134 gcc version used for kernel build. Also the following files need to be
135 copied from build to test machine:
136
137 from the source tree:
138 - all C source files + headers
139
140 from the build tree:
141 - all C source files + headers
142 - all .gcda and .gcno files
143 - all links to directories
144
145 It is important to note that these files need to be placed into the
146 exact same file system location on the test machine as on the build
147 machine. If any of the path components is symbolic link, the actual
148 directory needs to be used instead (due to make's CURDIR handling).
149
150b) gcov is run on the BUILD machine
151
152 The following files need to be copied after each test case from test
153 to build machine:
154
155 from the gcov directory in sysfs:
156 - all .gcda files
157 - all links to .gcno files
158
159 These files can be copied to any location on the build machine. gcov
160 must then be called with the -o option pointing to that directory.
161
162 Example directory setup on the build machine::
163
164 /tmp/linux: kernel source tree
165 /tmp/out: kernel build directory as specified by make O=
166 /tmp/coverage: location of the files copied from the test machine
167
168 [user@build] cd /tmp/out
169 [user@build] gcov -o /tmp/coverage/tmp/out/init main.c
170
171
172Troubleshooting
173---------------
174
175Problem
176 Compilation aborts during linker step.
177
178Cause
179 Profiling flags are specified for source files which are not
180 linked to the main kernel or which are linked by a custom
181 linker procedure.
182
183Solution
184 Exclude affected source files from profiling by specifying
185 ``GCOV_PROFILE := n`` or ``GCOV_PROFILE_basename.o := n`` in the
186 corresponding Makefile.
187
188Problem
189 Files copied from sysfs appear empty or incomplete.
190
191Cause
192 Due to the way seq_file works, some tools such as cp or tar
193 may not correctly copy files from sysfs.
194
195Solution
196 Use ``cat``' to read ``.gcda`` files and ``cp -d`` to copy links.
197 Alternatively use the mechanism shown in Appendix B.
198
199
200Appendix A: gather_on_build.sh
201------------------------------
202
203Sample script to gather coverage meta files on the build machine
204(see 6a)::
205
206 #!/bin/bash
207
208 KSRC=$1
209 KOBJ=$2
210 DEST=$3
211
212 if [ -z "$KSRC" ] || [ -z "$KOBJ" ] || [ -z "$DEST" ]; then
213 echo "Usage: $0 <ksrc directory> <kobj directory> <output.tar.gz>" >&2
214 exit 1
215 fi
216
217 KSRC=$(cd $KSRC; printf "all:\n\t@echo \${CURDIR}\n" | make -f -)
218 KOBJ=$(cd $KOBJ; printf "all:\n\t@echo \${CURDIR}\n" | make -f -)
219
220 find $KSRC $KOBJ \( -name '*.gcno' -o -name '*.[ch]' -o -type l \) -a \
221 -perm /u+r,g+r | tar cfz $DEST -P -T -
222
223 if [ $? -eq 0 ] ; then
224 echo "$DEST successfully created, copy to test system and unpack with:"
225 echo " tar xfz $DEST -P"
226 else
227 echo "Could not create file $DEST"
228 fi
229
230
231Appendix B: gather_on_test.sh
232-----------------------------
233
234Sample script to gather coverage data files on the test machine
235(see 6b)::
236
237 #!/bin/bash -e
238
239 DEST=$1
240 GCDA=/sys/kernel/debug/gcov
241
242 if [ -z "$DEST" ] ; then
243 echo "Usage: $0 <output.tar.gz>" >&2
244 exit 1
245 fi
246
247 TEMPDIR=$(mktemp -d)
248 echo Collecting data..
249 find $GCDA -type d -exec mkdir -p $TEMPDIR/\{\} \;
250 find $GCDA -name '*.gcda' -exec sh -c 'cat < $0 > '$TEMPDIR'/$0' {} \;
251 find $GCDA -name '*.gcno' -exec sh -c 'cp -d $0 '$TEMPDIR'/$0' {} \;
252 tar czf $DEST -C $TEMPDIR sys
253 rm -rf $TEMPDIR
254
255 echo "$DEST successfully created, copy to build system and unpack with:"
256 echo " tar xfz $DEST"
Documentation/dev-tools/gdb-kernel-debugging.rstrenamed from Documentation/gdb-kernel-debugging.txt+45−32
@@ -1,3 +1,5 @@
1.. highlight:: none
2
1Debugging kernel and modules via gdb3Debugging kernel and modules via gdb
2====================================4====================================
3 5
@@ -13,54 +15,58 @@ be transferred to the other gdb stubs as well. · 9 unmodified lines
13Requirements15Requirements
14------------16------------
15 17
16 o gdb 7.2+ (recommended: 7.4+) with python support enabled (typically true18- gdb 7.2+ (recommended: 7.4+) with python support enabled (typically true
17 for distributions)19 for distributions)
18 20
19 21
20Setup22Setup
21-----23-----
22 24
23 o Create a virtual Linux machine for QEMU/KVM (see www.linux-kvm.org and25- Create a virtual Linux machine for QEMU/KVM (see www.linux-kvm.org and
24 www.qemu.org for more details). For cross-development,26 www.qemu.org for more details). For cross-development,
25 http://landley.net/aboriginal/bin keeps a pool of machine images and27 http://landley.net/aboriginal/bin keeps a pool of machine images and
26 toolchains that can be helpful to start from.28 toolchains that can be helpful to start from.
27 29
28 o Build the kernel with CONFIG_GDB_SCRIPTS enabled, but leave30- Build the kernel with CONFIG_GDB_SCRIPTS enabled, but leave
29 CONFIG_DEBUG_INFO_REDUCED off. If your architecture supports31 CONFIG_DEBUG_INFO_REDUCED off. If your architecture supports
30 CONFIG_FRAME_POINTER, keep it enabled.32 CONFIG_FRAME_POINTER, keep it enabled.
31 33
32 o Install that kernel on the guest.34- Install that kernel on the guest.
35 Alternatively, QEMU allows to boot the kernel directly using -kernel,
36 -append, -initrd command line switches. This is generally only useful if
37 you do not depend on modules. See QEMU documentation for more details on
38 this mode.
33 39
34 Alternatively, QEMU allows to boot the kernel directly using -kernel,40- Enable the gdb stub of QEMU/KVM, either
35 -append, -initrd command line switches. This is generally only useful if
36 you do not depend on modules. See QEMU documentation for more details on
37 this mode.
38 41
39 o Enable the gdb stub of QEMU/KVM, either
40 - at VM startup time by appending "-s" to the QEMU command line42 - at VM startup time by appending "-s" to the QEMU command line
41 or43
44 or
45
42 - during runtime by issuing "gdbserver" from the QEMU monitor46 - during runtime by issuing "gdbserver" from the QEMU monitor
43 console47 console
44 48
45 o cd /path/to/linux-build49- cd /path/to/linux-build
46 50
47 o Start gdb: gdb vmlinux51- Start gdb: gdb vmlinux
48 52
49 Note: Some distros may restrict auto-loading of gdb scripts to known safe53 Note: Some distros may restrict auto-loading of gdb scripts to known safe
50 directories. In case gdb reports to refuse loading vmlinux-gdb.py, add54 directories. In case gdb reports to refuse loading vmlinux-gdb.py, add::
51 55
52 add-auto-load-safe-path /path/to/linux-build56 add-auto-load-safe-path /path/to/linux-build
53 57
54 to ~/.gdbinit. See gdb help for more details.58 to ~/.gdbinit. See gdb help for more details.
59
60- Attach to the booted guest::
55 61
56 o Attach to the booted guest:
57 (gdb) target remote :123462 (gdb) target remote :1234
58 63
59 64
60Examples of using the Linux-provided gdb helpers65Examples of using the Linux-provided gdb helpers
61------------------------------------------------66------------------------------------------------
62 67
63 o Load module (and main kernel) symbols:68- Load module (and main kernel) symbols::
69
64 (gdb) lx-symbols70 (gdb) lx-symbols
65 loading vmlinux71 loading vmlinux
66 scanning for modules in /home/user/linux/build72 scanning for modules in /home/user/linux/build
@@ -72,17 +78,20 @@ Examples of using the Linux-provided gdb helpers · 5 unmodified lines
72 ...78 ...
73 loading @0xffffffffa0000000: /home/user/linux/build/drivers/ata/ata_generic.ko79 loading @0xffffffffa0000000: /home/user/linux/build/drivers/ata/ata_generic.ko
74 80
75 o Set a breakpoint on some not yet loaded module function, e.g.:81- Set a breakpoint on some not yet loaded module function, e.g.::
82
76 (gdb) b btrfs_init_sysfs83 (gdb) b btrfs_init_sysfs
77 Function "btrfs_init_sysfs" not defined.84 Function "btrfs_init_sysfs" not defined.
78 Make breakpoint pending on future shared library load? (y or [n]) y85 Make breakpoint pending on future shared library load? (y or [n]) y
79 Breakpoint 1 (btrfs_init_sysfs) pending.86 Breakpoint 1 (btrfs_init_sysfs) pending.
80 87
81 o Continue the target88- Continue the target::
89
82 (gdb) c90 (gdb) c
83 91
84 o Load the module on the target and watch the symbols being loaded as well as92- Load the module on the target and watch the symbols being loaded as well as
85 the breakpoint hit:93 the breakpoint hit::
94
86 loading @0xffffffffa0034000: /home/user/linux/build/lib/libcrc32c.ko95 loading @0xffffffffa0034000: /home/user/linux/build/lib/libcrc32c.ko
87 loading @0xffffffffa0050000: /home/user/linux/build/lib/lzo/lzo_compress.ko96 loading @0xffffffffa0050000: /home/user/linux/build/lib/lzo/lzo_compress.ko
88 loading @0xffffffffa006e000: /home/user/linux/build/lib/zlib_deflate/zlib_deflate.ko97 loading @0xffffffffa006e000: /home/user/linux/build/lib/zlib_deflate/zlib_deflate.ko
@@ -91,7 +100,8 @@ Examples of using the Linux-provided gdb helpers · 2 unmodified lines
91 Breakpoint 1, btrfs_init_sysfs () at /home/user/linux/fs/btrfs/sysfs.c:36100 Breakpoint 1, btrfs_init_sysfs () at /home/user/linux/fs/btrfs/sysfs.c:36
92 36 btrfs_kset = kset_create_and_add("btrfs", NULL, fs_kobj);101 36 btrfs_kset = kset_create_and_add("btrfs", NULL, fs_kobj);
93 102
94 o Dump the log buffer of the target kernel:103- Dump the log buffer of the target kernel::
104
95 (gdb) lx-dmesg105 (gdb) lx-dmesg
96 [ 0.000000] Initializing cgroup subsys cpuset106 [ 0.000000] Initializing cgroup subsys cpuset
97 [ 0.000000] Initializing cgroup subsys cpu107 [ 0.000000] Initializing cgroup subsys cpu
@@ -102,19 +112,22 @@ Examples of using the Linux-provided gdb helpers · 4 unmodified lines
102 [ 0.000000] BIOS-e820: [mem 0x000000000009fc00-0x000000000009ffff] reserved112 [ 0.000000] BIOS-e820: [mem 0x000000000009fc00-0x000000000009ffff] reserved
103 ....113 ....
104 114
105 o Examine fields of the current task struct:115- Examine fields of the current task struct::
116
106 (gdb) p $lx_current().pid117 (gdb) p $lx_current().pid
107 $1 = 4998118 $1 = 4998
108 (gdb) p $lx_current().comm119 (gdb) p $lx_current().comm
109 $2 = "modprobe\000\000\000\000\000\000\000"120 $2 = "modprobe\000\000\000\000\000\000\000"
110 121
111 o Make use of the per-cpu function for the current or a specified CPU:122- Make use of the per-cpu function for the current or a specified CPU::
123
112 (gdb) p $lx_per_cpu("runqueues").nr_running124 (gdb) p $lx_per_cpu("runqueues").nr_running
113 $3 = 1125 $3 = 1
114 (gdb) p $lx_per_cpu("runqueues", 2).nr_running126 (gdb) p $lx_per_cpu("runqueues", 2).nr_running
115 $4 = 0127 $4 = 0
116 128
117 o Dig into hrtimers using the container_of helper:129- Dig into hrtimers using the container_of helper::
130
118 (gdb) set $next = $lx_per_cpu("hrtimer_bases").clock_base[0].active.next131 (gdb) set $next = $lx_per_cpu("hrtimer_bases").clock_base[0].active.next
119 (gdb) p *$container_of($next, "struct hrtimer", "node")132 (gdb) p *$container_of($next, "struct hrtimer", "node")
120 $5 = {133 $5 = {
@@ -144,7 +157,7 @@ List of commands and functions · 23 unmodified lines
144------------------------------157------------------------------
145 158
146The number of commands and convenience functions may evolve over the time,159The number of commands and convenience functions may evolve over the time,
147this is just a snapshot of the initial version:160this is just a snapshot of the initial version::
148 161
149 (gdb) apropos lx162 (gdb) apropos lx
150 function lx_current -- Return current task163 function lx_current -- Return current task
Documentation/dev-tools/kasan.rst+173−0
@@ -0,0 +1,173 @@
1The Kernel Address Sanitizer (KASAN)
2====================================
3
4Overview
5--------
6
7KernelAddressSANitizer (KASAN) is a dynamic memory error detector. It provides
8a fast and comprehensive solution for finding use-after-free and out-of-bounds
9bugs.
10
11KASAN uses compile-time instrumentation for checking every memory access,
12therefore you will need a GCC version 4.9.2 or later. GCC 5.0 or later is
13required for detection of out-of-bounds accesses to stack or global variables.
14
15Currently KASAN is supported only for the x86_64 and arm64 architectures.
16
17Usage
18-----
19
20To enable KASAN configure kernel with::
21
22 CONFIG_KASAN = y
23
24and choose between CONFIG_KASAN_OUTLINE and CONFIG_KASAN_INLINE. Outline and
25inline are compiler instrumentation types. The former produces smaller binary
26the latter is 1.1 - 2 times faster. Inline instrumentation requires a GCC
27version 5.0 or later.
28
29KASAN works with both SLUB and SLAB memory allocators.
30For better bug detection and nicer reporting, enable CONFIG_STACKTRACE.
31
32To disable instrumentation for specific files or directories, add a line
33similar to the following to the respective kernel Makefile:
34
35- For a single file (e.g. main.o)::
36
37 KASAN_SANITIZE_main.o := n
38
39- For all files in one directory::
40
41 KASAN_SANITIZE := n
42
43Error reports
44~~~~~~~~~~~~~
45
46A typical out of bounds access report looks like this::
47
48 ==================================================================
49 BUG: AddressSanitizer: out of bounds access in kmalloc_oob_right+0x65/0x75 [test_kasan] at addr ffff8800693bc5d3
50 Write of size 1 by task modprobe/1689
51 =============================================================================
52 BUG kmalloc-128 (Not tainted): kasan error
53 -----------------------------------------------------------------------------
54
55 Disabling lock debugging due to kernel taint
56 INFO: Allocated in kmalloc_oob_right+0x3d/0x75 [test_kasan] age=0 cpu=0 pid=1689
57 __slab_alloc+0x4b4/0x4f0
58 kmem_cache_alloc_trace+0x10b/0x190
59 kmalloc_oob_right+0x3d/0x75 [test_kasan]
60 init_module+0x9/0x47 [test_kasan]
61 do_one_initcall+0x99/0x200
62 load_module+0x2cb3/0x3b20
63 SyS_finit_module+0x76/0x80
64 system_call_fastpath+0x12/0x17
65 INFO: Slab 0xffffea0001a4ef00 objects=17 used=7 fp=0xffff8800693bd728 flags=0x100000000004080
66 INFO: Object 0xffff8800693bc558 @offset=1368 fp=0xffff8800693bc720
67
68 Bytes b4 ffff8800693bc548: 00 00 00 00 00 00 00 00 5a 5a 5a 5a 5a 5a 5a 5a ........ZZZZZZZZ
69 Object ffff8800693bc558: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b kkkkkkkkkkkkkkkk
70 Object ffff8800693bc568: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b kkkkkkkkkkkkkkkk
71 Object ffff8800693bc578: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b kkkkkkkkkkkkkkkk
72 Object ffff8800693bc588: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b kkkkkkkkkkkkkkkk
73 Object ffff8800693bc598: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b kkkkkkkkkkkkkkkk
74 Object ffff8800693bc5a8: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b kkkkkkkkkkkkkkkk
75 Object ffff8800693bc5b8: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b kkkkkkkkkkkkkkkk
76 Object ffff8800693bc5c8: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b a5 kkkkkkkkkkkkkkk.
77 Redzone ffff8800693bc5d8: cc cc cc cc cc cc cc cc ........
78 Padding ffff8800693bc718: 5a 5a 5a 5a 5a 5a 5a 5a ZZZZZZZZ
79 CPU: 0 PID: 1689 Comm: modprobe Tainted: G B 3.18.0-rc1-mm1+ #98
80 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.7.5-0-ge51488c-20140602_164612-nilsson.home.kraxel.org 04/01/2014
81 ffff8800693bc000 0000000000000000 ffff8800693bc558 ffff88006923bb78
82 ffffffff81cc68ae 00000000000000f3 ffff88006d407600 ffff88006923bba8
83 ffffffff811fd848 ffff88006d407600 ffffea0001a4ef00 ffff8800693bc558
84 Call Trace:
85 [<ffffffff81cc68ae>] dump_stack+0x46/0x58
86 [<ffffffff811fd848>] print_trailer+0xf8/0x160
87 [<ffffffffa00026a7>] ? kmem_cache_oob+0xc3/0xc3 [test_kasan]
88 [<ffffffff811ff0f5>] object_err+0x35/0x40
89 [<ffffffffa0002065>] ? kmalloc_oob_right+0x65/0x75 [test_kasan]
90 [<ffffffff8120b9fa>] kasan_report_error+0x38a/0x3f0
91 [<ffffffff8120a79f>] ? kasan_poison_shadow+0x2f/0x40
92 [<ffffffff8120b344>] ? kasan_unpoison_shadow+0x14/0x40
93 [<ffffffff8120a79f>] ? kasan_poison_shadow+0x2f/0x40
94 [<ffffffffa00026a7>] ? kmem_cache_oob+0xc3/0xc3 [test_kasan]
95 [<ffffffff8120a995>] __asan_store1+0x75/0xb0
96 [<ffffffffa0002601>] ? kmem_cache_oob+0x1d/0xc3 [test_kasan]
97 [<ffffffffa0002065>] ? kmalloc_oob_right+0x65/0x75 [test_kasan]
98 [<ffffffffa0002065>] kmalloc_oob_right+0x65/0x75 [test_kasan]
99 [<ffffffffa00026b0>] init_module+0x9/0x47 [test_kasan]
100 [<ffffffff810002d9>] do_one_initcall+0x99/0x200
101 [<ffffffff811e4e5c>] ? __vunmap+0xec/0x160
102 [<ffffffff81114f63>] load_module+0x2cb3/0x3b20
103 [<ffffffff8110fd70>] ? m_show+0x240/0x240
104 [<ffffffff81115f06>] SyS_finit_module+0x76/0x80
105 [<ffffffff81cd3129>] system_call_fastpath+0x12/0x17
106 Memory state around the buggy address:
107 ffff8800693bc300: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
108 ffff8800693bc380: fc fc 00 00 00 00 00 00 00 00 00 00 00 00 00 fc
109 ffff8800693bc400: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
110 ffff8800693bc480: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
111 ffff8800693bc500: fc fc fc fc fc fc fc fc fc fc fc 00 00 00 00 00
112 >ffff8800693bc580: 00 00 00 00 00 00 00 00 00 00 03 fc fc fc fc fc
113 ^
114 ffff8800693bc600: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
115 ffff8800693bc680: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
116 ffff8800693bc700: fc fc fc fc fb fb fb fb fb fb fb fb fb fb fb fb
117 ffff8800693bc780: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
118 ffff8800693bc800: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
119 ==================================================================
120
121The header of the report discribe what kind of bug happened and what kind of
122access caused it. It's followed by the description of the accessed slub object
123(see 'SLUB Debug output' section in Documentation/vm/slub.txt for details) and
124the description of the accessed memory page.
125
126In the last section the report shows memory state around the accessed address.
127Reading this part requires some understanding of how KASAN works.
128
129The state of each 8 aligned bytes of memory is encoded in one shadow byte.
130Those 8 bytes can be accessible, partially accessible, freed or be a redzone.
131We use the following encoding for each shadow byte: 0 means that all 8 bytes
132of the corresponding memory region are accessible; number N (1 <= N <= 7) means
133that the first N bytes are accessible, and other (8 - N) bytes are not;
134any negative value indicates that the entire 8-byte word is inaccessible.
135We use different negative values to distinguish between different kinds of
136inaccessible memory like redzones or freed memory (see mm/kasan/kasan.h).
137
138In the report above the arrows point to the shadow byte 03, which means that
139the accessed address is partially accessible.
140
141
142Implementation details
143----------------------
144
145From a high level, our approach to memory error detection is similar to that
146of kmemcheck: use shadow memory to record whether each byte of memory is safe
147to access, and use compile-time instrumentation to check shadow memory on each
148memory access.
149
150AddressSanitizer dedicates 1/8 of kernel memory to its shadow memory
151(e.g. 16TB to cover 128TB on x86_64) and uses direct mapping with a scale and
152offset to translate a memory address to its corresponding shadow address.
153
154Here is the function which translates an address to its corresponding shadow
155address::
156
157 static inline void *kasan_mem_to_shadow(const void *addr)
158 {
159 return ((unsigned long)addr >> KASAN_SHADOW_SCALE_SHIFT)
160 + KASAN_SHADOW_OFFSET;
161 }
162
163where ``KASAN_SHADOW_SCALE_SHIFT = 3``.
164
165Compile-time instrumentation used for checking memory accesses. Compiler inserts
166function calls (__asan_load*(addr), __asan_store*(addr)) before each memory
167access of size 1, 2, 4, 8 or 16. These functions check whether memory access is
168valid or not by checking corresponding shadow memory.
169
170GCC 5.0 has possibility to perform inline instrumentation. Instead of making
171function calls GCC directly inserts the code to check the shadow memory.
172This option significantly enlarges kernel but it gives x1.1-x2 performance
173boost over outline instrumented kernel.
Documentation/dev-tools/kcov.rstrenamed from Documentation/kcov.txt+42−42
@@ -12,38 +12,38 @@ To achieve this goal it does not collect coverage in soft/hard interrupts · 11 unmodified lines
12and instrumentation of some inherently non-deterministic parts of kernel is12and instrumentation of some inherently non-deterministic parts of kernel is
13disbled (e.g. scheduler, locking).13disbled (e.g. scheduler, locking).
14 14
15Usage:15Usage
16======16-----
17 17
18Configure kernel with:18Configure the kernel with::
19 19
20 CONFIG_KCOV=y20 CONFIG_KCOV=y
21 21
22CONFIG_KCOV requires gcc built on revision 231296 or later.22CONFIG_KCOV requires gcc built on revision 231296 or later.
23Profiling data will only become accessible once debugfs has been mounted:23Profiling data will only become accessible once debugfs has been mounted::
24 24
25 mount -t debugfs none /sys/kernel/debug25 mount -t debugfs none /sys/kernel/debug
26 26
27The following program demonstrates kcov usage from within a test program:27The following program demonstrates kcov usage from within a test program::
28 28
29#include <stdio.h>29 #include <stdio.h>
30#include <stddef.h>30 #include <stddef.h>
31#include <stdint.h>31 #include <stdint.h>
32#include <stdlib.h>32 #include <stdlib.h>
33#include <sys/types.h>33 #include <sys/types.h>
34#include <sys/stat.h>34 #include <sys/stat.h>
35#include <sys/ioctl.h>35 #include <sys/ioctl.h>
36#include <sys/mman.h>36 #include <sys/mman.h>
37#include <unistd.h>37 #include <unistd.h>
38#include <fcntl.h>38 #include <fcntl.h>
39 39
40#define KCOV_INIT_TRACE _IOR('c', 1, unsigned long)40 #define KCOV_INIT_TRACE _IOR('c', 1, unsigned long)
41#define KCOV_ENABLE _IO('c', 100)41 #define KCOV_ENABLE _IO('c', 100)
42#define KCOV_DISABLE _IO('c', 101)42 #define KCOV_DISABLE _IO('c', 101)
43#define COVER_SIZE (64<<10)43 #define COVER_SIZE (64<<10)
44 44
45int main(int argc, char **argv)45 int main(int argc, char **argv)
46{46 {
47 int fd;47 int fd;
48 unsigned long *cover, n, i;48 unsigned long *cover, n, i;
49 49
@@ -83,24 +83,24 @@ int main(int argc, char **argv) · 33 unmodified lines
83 if (close(fd))83 if (close(fd))
84 perror("close"), exit(1);84 perror("close"), exit(1);
85 return 0;85 return 0;
86}86 }
87 87
88After piping through addr2line output of the program looks as follows:88After piping through addr2line output of the program looks as follows::
89 89
90SyS_read90 SyS_read
91fs/read_write.c:56291 fs/read_write.c:562
92__fdget_pos92 __fdget_pos
93fs/file.c:77493 fs/file.c:774
94__fget_light94 __fget_light
95fs/file.c:74695 fs/file.c:746
96__fget_light96 __fget_light
97fs/file.c:75097 fs/file.c:750
98__fget_light98 __fget_light
99fs/file.c:76099 fs/file.c:760
100__fdget_pos100 __fdget_pos
101fs/file.c:784101 fs/file.c:784
102SyS_read102 SyS_read
103fs/read_write.c:562103 fs/read_write.c:562
104 104
105If a program needs to collect coverage from several threads (independently),105If a program needs to collect coverage from several threads (independently),
106it needs to open /sys/kernel/debug/kcov in each thread separately.106it needs to open /sys/kernel/debug/kcov in each thread separately.
Documentation/dev-tools/kmemcheck.rst+733−0
@@ -0,0 +1,733 @@
1Getting started with kmemcheck
2==============================
3
4Vegard Nossum <vegardno@ifi.uio.no>
5
6
7Introduction
8------------
9
10kmemcheck is a debugging feature for the Linux Kernel. More specifically, it
11is a dynamic checker that detects and warns about some uses of uninitialized
12memory.
13
14Userspace programmers might be familiar with Valgrind's memcheck. The main
15difference between memcheck and kmemcheck is that memcheck works for userspace
16programs only, and kmemcheck works for the kernel only. The implementations
17are of course vastly different. Because of this, kmemcheck is not as accurate
18as memcheck, but it turns out to be good enough in practice to discover real
19programmer errors that the compiler is not able to find through static
20analysis.
21
22Enabling kmemcheck on a kernel will probably slow it down to the extent that
23the machine will not be usable for normal workloads such as e.g. an
24interactive desktop. kmemcheck will also cause the kernel to use about twice
25as much memory as normal. For this reason, kmemcheck is strictly a debugging
26feature.
27
28
29Downloading
30-----------
31
32As of version 2.6.31-rc1, kmemcheck is included in the mainline kernel.
33
34
35Configuring and compiling
36-------------------------
37
38kmemcheck only works for the x86 (both 32- and 64-bit) platform. A number of
39configuration variables must have specific settings in order for the kmemcheck
40menu to even appear in "menuconfig". These are:
41
42- ``CONFIG_CC_OPTIMIZE_FOR_SIZE=n``
43 This option is located under "General setup" / "Optimize for size".
44
45 Without this, gcc will use certain optimizations that usually lead to
46 false positive warnings from kmemcheck. An example of this is a 16-bit
47 field in a struct, where gcc may load 32 bits, then discard the upper
48 16 bits. kmemcheck sees only the 32-bit load, and may trigger a
49 warning for the upper 16 bits (if they're uninitialized).
50
51- ``CONFIG_SLAB=y`` or ``CONFIG_SLUB=y``
52 This option is located under "General setup" / "Choose SLAB
53 allocator".
54
55- ``CONFIG_FUNCTION_TRACER=n``
56 This option is located under "Kernel hacking" / "Tracers" / "Kernel
57 Function Tracer"
58
59 When function tracing is compiled in, gcc emits a call to another
60 function at the beginning of every function. This means that when the
61 page fault handler is called, the ftrace framework will be called
62 before kmemcheck has had a chance to handle the fault. If ftrace then
63 modifies memory that was tracked by kmemcheck, the result is an
64 endless recursive page fault.
65
66- ``CONFIG_DEBUG_PAGEALLOC=n``
67 This option is located under "Kernel hacking" / "Memory Debugging"
68 / "Debug page memory allocations".
69
70In addition, I highly recommend turning on ``CONFIG_DEBUG_INFO=y``. This is also
71located under "Kernel hacking". With this, you will be able to get line number
72information from the kmemcheck warnings, which is extremely valuable in
73debugging a problem. This option is not mandatory, however, because it slows
74down the compilation process and produces a much bigger kernel image.
75
76Now the kmemcheck menu should be visible (under "Kernel hacking" / "Memory
77Debugging" / "kmemcheck: trap use of uninitialized memory"). Here follows
78a description of the kmemcheck configuration variables:
79
80- ``CONFIG_KMEMCHECK``
81 This must be enabled in order to use kmemcheck at all...
82
83- ``CONFIG_KMEMCHECK_``[``DISABLED`` | ``ENABLED`` | ``ONESHOT``]``_BY_DEFAULT``
84 This option controls the status of kmemcheck at boot-time. "Enabled"
85 will enable kmemcheck right from the start, "disabled" will boot the
86 kernel as normal (but with the kmemcheck code compiled in, so it can
87 be enabled at run-time after the kernel has booted), and "one-shot" is
88 a special mode which will turn kmemcheck off automatically after
89 detecting the first use of uninitialized memory.
90
91 If you are using kmemcheck to actively debug a problem, then you
92 probably want to choose "enabled" here.
93
94 The one-shot mode is mostly useful in automated test setups because it
95 can prevent floods of warnings and increase the chances of the machine
96 surviving in case something is really wrong. In other cases, the one-
97 shot mode could actually be counter-productive because it would turn
98 itself off at the very first error -- in the case of a false positive
99 too -- and this would come in the way of debugging the specific
100 problem you were interested in.
101
102 If you would like to use your kernel as normal, but with a chance to
103 enable kmemcheck in case of some problem, it might be a good idea to
104 choose "disabled" here. When kmemcheck is disabled, most of the run-
105 time overhead is not incurred, and the kernel will be almost as fast
106 as normal.
107
108- ``CONFIG_KMEMCHECK_QUEUE_SIZE``
109 Select the maximum number of error reports to store in an internal
110 (fixed-size) buffer. Since errors can occur virtually anywhere and in
111 any context, we need a temporary storage area which is guaranteed not
112 to generate any other page faults when accessed. The queue will be
113 emptied as soon as a tasklet may be scheduled. If the queue is full,
114 new error reports will be lost.
115
116 The default value of 64 is probably fine. If some code produces more
117 than 64 errors within an irqs-off section, then the code is likely to
118 produce many, many more, too, and these additional reports seldom give
119 any more information (the first report is usually the most valuable
120 anyway).
121
122 This number might have to be adjusted if you are not using serial
123 console or similar to capture the kernel log. If you are using the
124 "dmesg" command to save the log, then getting a lot of kmemcheck
125 warnings might overflow the kernel log itself, and the earlier reports
126 will get lost in that way instead. Try setting this to 10 or so on
127 such a setup.
128
129- ``CONFIG_KMEMCHECK_SHADOW_COPY_SHIFT``
130 Select the number of shadow bytes to save along with each entry of the
131 error-report queue. These bytes indicate what parts of an allocation
132 are initialized, uninitialized, etc. and will be displayed when an
133 error is detected to help the debugging of a particular problem.
134
135 The number entered here is actually the logarithm of the number of
136 bytes that will be saved. So if you pick for example 5 here, kmemcheck
137 will save 2^5 = 32 bytes.
138
139 The default value should be fine for debugging most problems. It also
140 fits nicely within 80 columns.
141
142- ``CONFIG_KMEMCHECK_PARTIAL_OK``
143 This option (when enabled) works around certain GCC optimizations that
144 produce 32-bit reads from 16-bit variables where the upper 16 bits are
145 thrown away afterwards.
146
147 The default value (enabled) is recommended. This may of course hide
148 some real errors, but disabling it would probably produce a lot of
149 false positives.
150
151- ``CONFIG_KMEMCHECK_BITOPS_OK``
152 This option silences warnings that would be generated for bit-field
153 accesses where not all the bits are initialized at the same time. This
154 may also hide some real bugs.
155
156 This option is probably obsolete, or it should be replaced with
157 the kmemcheck-/bitfield-annotations for the code in question. The
158 default value is therefore fine.
159
160Now compile the kernel as usual.
161
162
163How to use
164----------
165
166Booting
167~~~~~~~
168
169First some information about the command-line options. There is only one
170option specific to kmemcheck, and this is called "kmemcheck". It can be used
171to override the default mode as chosen by the ``CONFIG_KMEMCHECK_*_BY_DEFAULT``
172option. Its possible settings are:
173
174- ``kmemcheck=0`` (disabled)
175- ``kmemcheck=1`` (enabled)
176- ``kmemcheck=2`` (one-shot mode)
177
178If SLUB debugging has been enabled in the kernel, it may take precedence over
179kmemcheck in such a way that the slab caches which are under SLUB debugging
180will not be tracked by kmemcheck. In order to ensure that this doesn't happen
181(even though it shouldn't by default), use SLUB's boot option ``slub_debug``,
182like this: ``slub_debug=-``
183
184In fact, this option may also be used for fine-grained control over SLUB vs.
185kmemcheck. For example, if the command line includes
186``kmemcheck=1 slub_debug=,dentry``, then SLUB debugging will be used only
187for the "dentry" slab cache, and with kmemcheck tracking all the other
188caches. This is advanced usage, however, and is not generally recommended.
189
190
191Run-time enable/disable
192~~~~~~~~~~~~~~~~~~~~~~~
193
194When the kernel has booted, it is possible to enable or disable kmemcheck at
195run-time. WARNING: This feature is still experimental and may cause false
196positive warnings to appear. Therefore, try not to use this. If you find that
197it doesn't work properly (e.g. you see an unreasonable amount of warnings), I
198will be happy to take bug reports.
199
200Use the file ``/proc/sys/kernel/kmemcheck`` for this purpose, e.g.::
201
202 $ echo 0 > /proc/sys/kernel/kmemcheck # disables kmemcheck
203
204The numbers are the same as for the ``kmemcheck=`` command-line option.
205
206
207Debugging
208~~~~~~~~~
209
210A typical report will look something like this::
211
212 WARNING: kmemcheck: Caught 32-bit read from uninitialized memory (ffff88003e4a2024)
213 80000000000000000000000000000000000000000088ffff0000000000000000
214 i i i i u u u u i i i i i i i i u u u u u u u u u u u u u u u u
215 ^
216
217 Pid: 1856, comm: ntpdate Not tainted 2.6.29-rc5 #264 945P-A
218 RIP: 0010:[<ffffffff8104ede8>] [<ffffffff8104ede8>] __dequeue_signal+0xc8/0x190
219 RSP: 0018:ffff88003cdf7d98 EFLAGS: 00210002
220 RAX: 0000000000000030 RBX: ffff88003d4ea968 RCX: 0000000000000009
221 RDX: ffff88003e5d6018 RSI: ffff88003e5d6024 RDI: ffff88003cdf7e84
222 RBP: ffff88003cdf7db8 R08: ffff88003e5d6000 R09: 0000000000000000
223 R10: 0000000000000080 R11: 0000000000000000 R12: 000000000000000e
224 R13: ffff88003cdf7e78 R14: ffff88003d530710 R15: ffff88003d5a98c8
225 FS: 0000000000000000(0000) GS:ffff880001982000(0063) knlGS:00000
226 CS: 0010 DS: 002b ES: 002b CR0: 0000000080050033
227 CR2: ffff88003f806ea0 CR3: 000000003c036000 CR4: 00000000000006a0
228 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
229 DR3: 0000000000000000 DR6: 00000000ffff4ff0 DR7: 0000000000000400
230 [<ffffffff8104f04e>] dequeue_signal+0x8e/0x170
231 [<ffffffff81050bd8>] get_signal_to_deliver+0x98/0x390
232 [<ffffffff8100b87d>] do_notify_resume+0xad/0x7d0
233 [<ffffffff8100c7b5>] int_signal+0x12/0x17
234 [<ffffffffffffffff>] 0xffffffffffffffff
235
236The single most valuable information in this report is the RIP (or EIP on 32-
237bit) value. This will help us pinpoint exactly which instruction that caused
238the warning.
239
240If your kernel was compiled with ``CONFIG_DEBUG_INFO=y``, then all we have to do
241is give this address to the addr2line program, like this::
242
243 $ addr2line -e vmlinux -i ffffffff8104ede8
244 arch/x86/include/asm/string_64.h:12
245 include/asm-generic/siginfo.h:287
246 kernel/signal.c:380
247 kernel/signal.c:410
248
249The "``-e vmlinux``" tells addr2line which file to look in. **IMPORTANT:**
250This must be the vmlinux of the kernel that produced the warning in the
251first place! If not, the line number information will almost certainly be
252wrong.
253
254The "``-i``" tells addr2line to also print the line numbers of inlined
255functions. In this case, the flag was very important, because otherwise,
256it would only have printed the first line, which is just a call to
257``memcpy()``, which could be called from a thousand places in the kernel, and
258is therefore not very useful. These inlined functions would not show up in
259the stack trace above, simply because the kernel doesn't load the extra
260debugging information. This technique can of course be used with ordinary
261kernel oopses as well.
262
263In this case, it's the caller of ``memcpy()`` that is interesting, and it can be
264found in ``include/asm-generic/siginfo.h``, line 287::
265
266 281 static inline void copy_siginfo(struct siginfo *to, struct siginfo *from)
267 282 {
268 283 if (from->si_code < 0)
269 284 memcpy(to, from, sizeof(*to));
270 285 else
271 286 /* _sigchld is currently the largest know union member */
272 287 memcpy(to, from, __ARCH_SI_PREAMBLE_SIZE + sizeof(from->_sifields._sigchld));
273 288 }
274
275Since this was a read (kmemcheck usually warns about reads only, though it can
276warn about writes to unallocated or freed memory as well), it was probably the
277"from" argument which contained some uninitialized bytes. Following the chain
278of calls, we move upwards to see where "from" was allocated or initialized,
279``kernel/signal.c``, line 380::
280
281 359 static void collect_signal(int sig, struct sigpending *list, siginfo_t *info)
282 360 {
283 ...
284 367 list_for_each_entry(q, &list->list, list) {
285 368 if (q->info.si_signo == sig) {
286 369 if (first)
287 370 goto still_pending;
288 371 first = q;
289 ...
290 377 if (first) {
291 378 still_pending:
292 379 list_del_init(&first->list);
293 380 copy_siginfo(info, &first->info);
294 381 __sigqueue_free(first);
295 ...
296 392 }
297 393 }
298
299Here, it is ``&first->info`` that is being passed on to ``copy_siginfo()``. The
300variable ``first`` was found on a list -- passed in as the second argument to
301``collect_signal()``. We continue our journey through the stack, to figure out
302where the item on "list" was allocated or initialized. We move to line 410::
303
304 395 static int __dequeue_signal(struct sigpending *pending, sigset_t *mask,
305 396 siginfo_t *info)
306 397 {
307 ...
308 410 collect_signal(sig, pending, info);
309 ...
310 414 }
311
312Now we need to follow the ``pending`` pointer, since that is being passed on to
313``collect_signal()`` as ``list``. At this point, we've run out of lines from the
314"addr2line" output. Not to worry, we just paste the next addresses from the
315kmemcheck stack dump, i.e.::
316
317 [<ffffffff8104f04e>] dequeue_signal+0x8e/0x170
318 [<ffffffff81050bd8>] get_signal_to_deliver+0x98/0x390
319 [<ffffffff8100b87d>] do_notify_resume+0xad/0x7d0
320 [<ffffffff8100c7b5>] int_signal+0x12/0x17
321
322 $ addr2line -e vmlinux -i ffffffff8104f04e ffffffff81050bd8 \
323 ffffffff8100b87d ffffffff8100c7b5
324 kernel/signal.c:446
325 kernel/signal.c:1806
326 arch/x86/kernel/signal.c:805
327 arch/x86/kernel/signal.c:871
328 arch/x86/kernel/entry_64.S:694
329
330Remember that since these addresses were found on the stack and not as the
331RIP value, they actually point to the _next_ instruction (they are return
332addresses). This becomes obvious when we look at the code for line 446::
333
334 422 int dequeue_signal(struct task_struct *tsk, sigset_t *mask, siginfo_t *info)
335 423 {
336 ...
337 431 signr = __dequeue_signal(&tsk->signal->shared_pending,
338 432 mask, info);
339 433 /*
340 434 * itimer signal ?
341 435 *
342 436 * itimers are process shared and we restart periodic
343 437 * itimers in the signal delivery path to prevent DoS
344 438 * attacks in the high resolution timer case. This is
345 439 * compliant with the old way of self restarting
346 440 * itimers, as the SIGALRM is a legacy signal and only
347 441 * queued once. Changing the restart behaviour to
348 442 * restart the timer in the signal dequeue path is
349 443 * reducing the timer noise on heavy loaded !highres
350 444 * systems too.
351 445 */
352 446 if (unlikely(signr == SIGALRM)) {
353 ...
354 489 }
355
356So instead of looking at 446, we should be looking at 431, which is the line
357that executes just before 446. Here we see that what we are looking for is
358``&tsk->signal->shared_pending``.
359
360Our next task is now to figure out which function that puts items on this
361``shared_pending`` list. A crude, but efficient tool, is ``git grep``::
362
363 $ git grep -n 'shared_pending' kernel/
364 ...
365 kernel/signal.c:828: pending = group ? &t->signal->shared_pending : &t->pending;
366 kernel/signal.c:1339: pending = group ? &t->signal->shared_pending : &t->pending;
367 ...
368
369There were more results, but none of them were related to list operations,
370and these were the only assignments. We inspect the line numbers more closely
371and find that this is indeed where items are being added to the list::
372
373 816 static int send_signal(int sig, struct siginfo *info, struct task_struct *t,
374 817 int group)
375 818 {
376 ...
377 828 pending = group ? &t->signal->shared_pending : &t->pending;
378 ...
379 851 q = __sigqueue_alloc(t, GFP_ATOMIC, (sig < SIGRTMIN &&
380 852 (is_si_special(info) ||
381 853 info->si_code >= 0)));
382 854 if (q) {
383 855 list_add_tail(&q->list, &pending->list);
384 ...
385 890 }
386
387and::
388
389 1309 int send_sigqueue(struct sigqueue *q, struct task_struct *t, int group)
390 1310 {
391 ....
392 1339 pending = group ? &t->signal->shared_pending : &t->pending;
393 1340 list_add_tail(&q->list, &pending->list);
394 ....
395 1347 }
396
397In the first case, the list element we are looking for, ``q``, is being
398returned from the function ``__sigqueue_alloc()``, which looks like an
399allocation function. Let's take a look at it::
400
401 187 static struct sigqueue *__sigqueue_alloc(struct task_struct *t, gfp_t flags,
402 188 int override_rlimit)
403 189 {
404 190 struct sigqueue *q = NULL;
405 191 struct user_struct *user;
406 192
407 193 /*
408 194 * We won't get problems with the target's UID changing under us
409 195 * because changing it requires RCU be used, and if t != current, the
410 196 * caller must be holding the RCU readlock (by way of a spinlock) and
411 197 * we use RCU protection here
412 198 */
413 199 user = get_uid(__task_cred(t)->user);
414 200 atomic_inc(&user->sigpending);
415 201 if (override_rlimit ||
416 202 atomic_read(&user->sigpending) <=
417 203 t->signal->rlim[RLIMIT_SIGPENDING].rlim_cur)
418 204 q = kmem_cache_alloc(sigqueue_cachep, flags);
419 205 if (unlikely(q == NULL)) {
420 206 atomic_dec(&user->sigpending);
421 207 free_uid(user);
422 208 } else {
423 209 INIT_LIST_HEAD(&q->list);
424 210 q->flags = 0;
425 211 q->user = user;
426 212 }
427 213
428 214 return q;
429 215 }
430
431We see that this function initializes ``q->list``, ``q->flags``, and
432``q->user``. It seems that now is the time to look at the definition of
433``struct sigqueue``, e.g.::
434
435 14 struct sigqueue {
436 15 struct list_head list;
437 16 int flags;
438 17 siginfo_t info;
439 18 struct user_struct *user;
440 19 };
441
442And, you might remember, it was a ``memcpy()`` on ``&first->info`` that
443caused the warning, so this makes perfect sense. It also seems reasonable
444to assume that it is the caller of ``__sigqueue_alloc()`` that has the
445responsibility of filling out (initializing) this member.
446
447But just which fields of the struct were uninitialized? Let's look at
448kmemcheck's report again::
449
450 WARNING: kmemcheck: Caught 32-bit read from uninitialized memory (ffff88003e4a2024)
451 80000000000000000000000000000000000000000088ffff0000000000000000
452 i i i i u u u u i i i i i i i i u u u u u u u u u u u u u u u u
453 ^
454
455These first two lines are the memory dump of the memory object itself, and
456the shadow bytemap, respectively. The memory object itself is in this case
457``&first->info``. Just beware that the start of this dump is NOT the start
458of the object itself! The position of the caret (^) corresponds with the
459address of the read (ffff88003e4a2024).
460
461The shadow bytemap dump legend is as follows:
462
463- i: initialized
464- u: uninitialized
465- a: unallocated (memory has been allocated by the slab layer, but has not
466 yet been handed off to anybody)
467- f: freed (memory has been allocated by the slab layer, but has been freed
468 by the previous owner)
469
470In order to figure out where (relative to the start of the object) the
471uninitialized memory was located, we have to look at the disassembly. For
472that, we'll need the RIP address again::
473
474 RIP: 0010:[<ffffffff8104ede8>] [<ffffffff8104ede8>] __dequeue_signal+0xc8/0x190
475
476 $ objdump -d --no-show-raw-insn vmlinux | grep -C 8 ffffffff8104ede8:
477 ffffffff8104edc8: mov %r8,0x8(%r8)
478 ffffffff8104edcc: test %r10d,%r10d
479 ffffffff8104edcf: js ffffffff8104ee88 <__dequeue_signal+0x168>
480 ffffffff8104edd5: mov %rax,%rdx
481 ffffffff8104edd8: mov $0xc,%ecx
482 ffffffff8104eddd: mov %r13,%rdi
483 ffffffff8104ede0: mov $0x30,%eax
484 ffffffff8104ede5: mov %rdx,%rsi
485 ffffffff8104ede8: rep movsl %ds:(%rsi),%es:(%rdi)
486 ffffffff8104edea: test $0x2,%al
487 ffffffff8104edec: je ffffffff8104edf0 <__dequeue_signal+0xd0>
488 ffffffff8104edee: movsw %ds:(%rsi),%es:(%rdi)
489 ffffffff8104edf0: test $0x1,%al
490 ffffffff8104edf2: je ffffffff8104edf5 <__dequeue_signal+0xd5>
491 ffffffff8104edf4: movsb %ds:(%rsi),%es:(%rdi)
492 ffffffff8104edf5: mov %r8,%rdi
493 ffffffff8104edf8: callq ffffffff8104de60 <__sigqueue_free>
494
495As expected, it's the "``rep movsl``" instruction from the ``memcpy()``
496that causes the warning. We know about ``REP MOVSL`` that it uses the register
497``RCX`` to count the number of remaining iterations. By taking a look at the
498register dump again (from the kmemcheck report), we can figure out how many
499bytes were left to copy::
500
501 RAX: 0000000000000030 RBX: ffff88003d4ea968 RCX: 0000000000000009
502
503By looking at the disassembly, we also see that ``%ecx`` is being loaded
504with the value ``$0xc`` just before (ffffffff8104edd8), so we are very
505lucky. Keep in mind that this is the number of iterations, not bytes. And
506since this is a "long" operation, we need to multiply by 4 to get the
507number of bytes. So this means that the uninitialized value was encountered
508at 4 * (0xc - 0x9) = 12 bytes from the start of the object.
509
510We can now try to figure out which field of the "``struct siginfo``" that
511was not initialized. This is the beginning of the struct::
512
513 40 typedef struct siginfo {
514 41 int si_signo;
515 42 int si_errno;
516 43 int si_code;
517 44
518 45 union {
519 ..
520 92 } _sifields;
521 93 } siginfo_t;
522
523On 64-bit, the int is 4 bytes long, so it must the union member that has
524not been initialized. We can verify this using gdb::
525
526 $ gdb vmlinux
527 ...
528 (gdb) p &((struct siginfo *) 0)->_sifields
529 $1 = (union {...} *) 0x10
530
531Actually, it seems that the union member is located at offset 0x10 -- which
532means that gcc has inserted 4 bytes of padding between the members ``si_code``
533and ``_sifields``. We can now get a fuller picture of the memory dump::
534
535 _----------------------------=> si_code
536 / _--------------------=> (padding)
537 | / _------------=> _sifields(._kill._pid)
538 | | / _----=> _sifields(._kill._uid)
539 | | | /
540 -------|-------|-------|-------|
541 80000000000000000000000000000000000000000088ffff0000000000000000
542 i i i i u u u u i i i i i i i i u u u u u u u u u u u u u u u u
543
544This allows us to realize another important fact: ``si_code`` contains the
545value 0x80. Remember that x86 is little endian, so the first 4 bytes
546"80000000" are really the number 0x00000080. With a bit of research, we
547find that this is actually the constant ``SI_KERNEL`` defined in
548``include/asm-generic/siginfo.h``::
549
550 144 #define SI_KERNEL 0x80 /* sent by the kernel from somewhere */
551
552This macro is used in exactly one place in the x86 kernel: In ``send_signal()``
553in ``kernel/signal.c``::
554
555 816 static int send_signal(int sig, struct siginfo *info, struct task_struct *t,
556 817 int group)
557 818 {
558 ...
559 828 pending = group ? &t->signal->shared_pending : &t->pending;
560 ...
561 851 q = __sigqueue_alloc(t, GFP_ATOMIC, (sig < SIGRTMIN &&
562 852 (is_si_special(info) ||
563 853 info->si_code >= 0)));
564 854 if (q) {
565 855 list_add_tail(&q->list, &pending->list);
566 856 switch ((unsigned long) info) {
567 ...
568 865 case (unsigned long) SEND_SIG_PRIV:
569 866 q->info.si_signo = sig;
570 867 q->info.si_errno = 0;
571 868 q->info.si_code = SI_KERNEL;
572 869 q->info.si_pid = 0;
573 870 q->info.si_uid = 0;
574 871 break;
575 ...
576 890 }
577
578Not only does this match with the ``.si_code`` member, it also matches the place
579we found earlier when looking for where siginfo_t objects are enqueued on the
580``shared_pending`` list.
581
582So to sum up: It seems that it is the padding introduced by the compiler
583between two struct fields that is uninitialized, and this gets reported when
584we do a ``memcpy()`` on the struct. This means that we have identified a false
585positive warning.
586
587Normally, kmemcheck will not report uninitialized accesses in ``memcpy()`` calls
588when both the source and destination addresses are tracked. (Instead, we copy
589the shadow bytemap as well). In this case, the destination address clearly
590was not tracked. We can dig a little deeper into the stack trace from above::
591
592 arch/x86/kernel/signal.c:805
593 arch/x86/kernel/signal.c:871
594 arch/x86/kernel/entry_64.S:694
595
596And we clearly see that the destination siginfo object is located on the
597stack::
598
599 782 static void do_signal(struct pt_regs *regs)
600 783 {
601 784 struct k_sigaction ka;
602 785 siginfo_t info;
603 ...
604 804 signr = get_signal_to_deliver(&info, &ka, regs, NULL);
605 ...
606 854 }
607
608And this ``&info`` is what eventually gets passed to ``copy_siginfo()`` as the
609destination argument.
610
611Now, even though we didn't find an actual error here, the example is still a
612good one, because it shows how one would go about to find out what the report
613was all about.
614
615
616Annotating false positives
617~~~~~~~~~~~~~~~~~~~~~~~~~~
618
619There are a few different ways to make annotations in the source code that
620will keep kmemcheck from checking and reporting certain allocations. Here
621they are:
622
623- ``__GFP_NOTRACK_FALSE_POSITIVE``
624 This flag can be passed to ``kmalloc()`` or ``kmem_cache_alloc()``
625 (therefore also to other functions that end up calling one of
626 these) to indicate that the allocation should not be tracked
627 because it would lead to a false positive report. This is a "big
628 hammer" way of silencing kmemcheck; after all, even if the false
629 positive pertains to particular field in a struct, for example, we
630 will now lose the ability to find (real) errors in other parts of
631 the same struct.
632
633 Example::
634
635 /* No warnings will ever trigger on accessing any part of x */
636 x = kmalloc(sizeof *x, GFP_KERNEL | __GFP_NOTRACK_FALSE_POSITIVE);
637
638- ``kmemcheck_bitfield_begin(name)``/``kmemcheck_bitfield_end(name)`` and
639 ``kmemcheck_annotate_bitfield(ptr, name)``
640 The first two of these three macros can be used inside struct
641 definitions to signal, respectively, the beginning and end of a
642 bitfield. Additionally, this will assign the bitfield a name, which
643 is given as an argument to the macros.
644
645 Having used these markers, one can later use
646 kmemcheck_annotate_bitfield() at the point of allocation, to indicate
647 which parts of the allocation is part of a bitfield.
648
649 Example::
650
651 struct foo {
652 int x;
653
654 kmemcheck_bitfield_begin(flags);
655 int flag_a:1;
656 int flag_b:1;
657 kmemcheck_bitfield_end(flags);
658
659 int y;
660 };
661
662 struct foo *x = kmalloc(sizeof *x);
663
664 /* No warnings will trigger on accessing the bitfield of x */
665 kmemcheck_annotate_bitfield(x, flags);
666
667 Note that ``kmemcheck_annotate_bitfield()`` can be used even before the
668 return value of ``kmalloc()`` is checked -- in other words, passing NULL
669 as the first argument is legal (and will do nothing).
670
671
672Reporting errors
673----------------
674
675As we have seen, kmemcheck will produce false positive reports. Therefore, it
676is not very wise to blindly post kmemcheck warnings to mailing lists and
677maintainers. Instead, I encourage maintainers and developers to find errors
678in their own code. If you get a warning, you can try to work around it, try
679to figure out if it's a real error or not, or simply ignore it. Most
680developers know their own code and will quickly and efficiently determine the
681root cause of a kmemcheck report. This is therefore also the most efficient
682way to work with kmemcheck.
683
684That said, we (the kmemcheck maintainers) will always be on the lookout for
685false positives that we can annotate and silence. So whatever you find,
686please drop us a note privately! Kernel configs and steps to reproduce (if
687available) are of course a great help too.
688
689Happy hacking!
690
691
692Technical description
693---------------------
694
695kmemcheck works by marking memory pages non-present. This means that whenever
696somebody attempts to access the page, a page fault is generated. The page
697fault handler notices that the page was in fact only hidden, and so it calls
698on the kmemcheck code to make further investigations.
699
700When the investigations are completed, kmemcheck "shows" the page by marking
701it present (as it would be under normal circumstances). This way, the
702interrupted code can continue as usual.
703
704But after the instruction has been executed, we should hide the page again, so
705that we can catch the next access too! Now kmemcheck makes use of a debugging
706feature of the processor, namely single-stepping. When the processor has
707finished the one instruction that generated the memory access, a debug
708exception is raised. From here, we simply hide the page again and continue
709execution, this time with the single-stepping feature turned off.
710
711kmemcheck requires some assistance from the memory allocator in order to work.
712The memory allocator needs to
713
714 1. Tell kmemcheck about newly allocated pages and pages that are about to
715 be freed. This allows kmemcheck to set up and tear down the shadow memory
716 for the pages in question. The shadow memory stores the status of each
717 byte in the allocation proper, e.g. whether it is initialized or
718 uninitialized.
719
720 2. Tell kmemcheck which parts of memory should be marked uninitialized.
721 There are actually a few more states, such as "not yet allocated" and
722 "recently freed".
723
724If a slab cache is set up using the SLAB_NOTRACK flag, it will never return
725memory that can take page faults because of kmemcheck.
726
727If a slab cache is NOT set up using the SLAB_NOTRACK flag, callers can still
728request memory with the __GFP_NOTRACK or __GFP_NOTRACK_FALSE_POSITIVE flags.
729This does not prevent the page faults from occurring, however, but marks the
730object in question as being initialized so that no warnings will ever be
731produced for this object.
732
733Currently, the SLAB and SLUB allocators are supported by kmemcheck.
Documentation/dev-tools/kmemleak.rstrenamed from Documentation/kmemleak.txt+59−43
@@ -1,15 +1,12 @@
1Kernel Memory Leak Detector1Kernel Memory Leak Detector
2===========================2===========================
3 3
4Introduction
5------------
6
7Kmemleak provides a way of detecting possible kernel memory leaks in a4Kmemleak provides a way of detecting possible kernel memory leaks in a
8way similar to a tracing garbage collector5way similar to a tracing garbage collector
9(https://en.wikipedia.org/wiki/Garbage_collection_%28computer_science%29#Tracing_garbage_collectors),6(https://en.wikipedia.org/wiki/Garbage_collection_%28computer_science%29#Tracing_garbage_collectors),
10with the difference that the orphan objects are not freed but only7with the difference that the orphan objects are not freed but only
11reported via /sys/kernel/debug/kmemleak. A similar method is used by the8reported via /sys/kernel/debug/kmemleak. A similar method is used by the
12Valgrind tool (memcheck --leak-check) to detect the memory leaks in9Valgrind tool (``memcheck --leak-check``) to detect the memory leaks in
13user-space applications.10user-space applications.
14Kmemleak is supported on x86, arm, powerpc, sparc, sh, microblaze, ppc, mips, s390, metag and tile.11Kmemleak is supported on x86, arm, powerpc, sparc, sh, microblaze, ppc, mips, s390, metag and tile.
15 12
@@ -19,20 +16,20 @@ Usage · 3 unmodified lines
19CONFIG_DEBUG_KMEMLEAK in "Kernel hacking" has to be enabled. A kernel16CONFIG_DEBUG_KMEMLEAK in "Kernel hacking" has to be enabled. A kernel
20thread scans the memory every 10 minutes (by default) and prints the17thread scans the memory every 10 minutes (by default) and prints the
21number of new unreferenced objects found. To display the details of all18number of new unreferenced objects found. To display the details of all
22the possible memory leaks:19the possible memory leaks::
23 20
24 # mount -t debugfs nodev /sys/kernel/debug/21 # mount -t debugfs nodev /sys/kernel/debug/
25 # cat /sys/kernel/debug/kmemleak22 # cat /sys/kernel/debug/kmemleak
26 23
27To trigger an intermediate memory scan:24To trigger an intermediate memory scan::
28 25
29 # echo scan > /sys/kernel/debug/kmemleak26 # echo scan > /sys/kernel/debug/kmemleak
30 27
31To clear the list of all current possible memory leaks:28To clear the list of all current possible memory leaks::
32 29
33 # echo clear > /sys/kernel/debug/kmemleak30 # echo clear > /sys/kernel/debug/kmemleak
34 31
35New leaks will then come up upon reading /sys/kernel/debug/kmemleak32New leaks will then come up upon reading ``/sys/kernel/debug/kmemleak``
36again.33again.
37 34
38Note that the orphan objects are listed in the order they were allocated35Note that the orphan objects are listed in the order they were allocated
@@ -40,22 +37,31 @@ and one object at the beginning of the list may cause other subsequent · 1 unmodified line
40objects to be reported as orphan.37objects to be reported as orphan.
41 38
42Memory scanning parameters can be modified at run-time by writing to the39Memory scanning parameters can be modified at run-time by writing to the
43/sys/kernel/debug/kmemleak file. The following parameters are supported:40``/sys/kernel/debug/kmemleak`` file. The following parameters are supported:
44 41
45 off - disable kmemleak (irreversible)42- off
46 stack=on - enable the task stacks scanning (default)43 disable kmemleak (irreversible)
47 stack=off - disable the tasks stacks scanning44- stack=on
48 scan=on - start the automatic memory scanning thread (default)45 enable the task stacks scanning (default)
49 scan=off - stop the automatic memory scanning thread46- stack=off
50 scan=<secs> - set the automatic memory scanning period in seconds47 disable the tasks stacks scanning
51 (default 600, 0 to stop the automatic scanning)48- scan=on
52 scan - trigger a memory scan49 start the automatic memory scanning thread (default)
53 clear - clear list of current memory leak suspects, done by50- scan=off
54 marking all current reported unreferenced objects grey,51 stop the automatic memory scanning thread
55 or free all kmemleak objects if kmemleak has been disabled.52- scan=<secs>
56 dump=<addr> - dump information about the object found at <addr>53 set the automatic memory scanning period in seconds
57 54 (default 600, 0 to stop the automatic scanning)
58Kmemleak can also be disabled at boot-time by passing "kmemleak=off" on55- scan
56 trigger a memory scan
57- clear
58 clear list of current memory leak suspects, done by
59 marking all current reported unreferenced objects grey,
60 or free all kmemleak objects if kmemleak has been disabled.
61- dump=<addr>
62 dump information about the object found at <addr>
63
64Kmemleak can also be disabled at boot-time by passing ``kmemleak=off`` on
59the kernel command line.65the kernel command line.
60 66
61Memory may be allocated or freed before kmemleak is initialised and67Memory may be allocated or freed before kmemleak is initialised and
@@ -63,13 +69,14 @@ these actions are stored in an early log buffer. The size of this buffer · 1 unmodified line
63is configured via the CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE option.69is configured via the CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE option.
64 70
65If CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF are enabled, the kmemleak is71If CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF are enabled, the kmemleak is
66disabled by default. Passing "kmemleak=on" on the kernel command72disabled by default. Passing ``kmemleak=on`` on the kernel command
67line enables the function. 73line enables the function.
68 74
69Basic Algorithm75Basic Algorithm
70---------------76---------------
71 77
72The memory allocations via kmalloc, vmalloc, kmem_cache_alloc and78The memory allocations via :c:func:`kmalloc`, :c:func:`vmalloc`,
79:c:func:`kmem_cache_alloc` and
73friends are traced and the pointers, together with additional80friends are traced and the pointers, together with additional
74information like size and stack trace, are stored in a rbtree.81information like size and stack trace, are stored in a rbtree.
75The corresponding freeing function calls are tracked and the pointers82The corresponding freeing function calls are tracked and the pointers
@@ -113,13 +120,13 @@ when doing development. To work around these situations you can use the · 37 unmodified lines
113you can find new unreferenced objects; this should help with testing120you can find new unreferenced objects; this should help with testing
114specific sections of code.121specific sections of code.
115 122
116To test a critical section on demand with a clean kmemleak do:123To test a critical section on demand with a clean kmemleak do::
117 124
118 # echo clear > /sys/kernel/debug/kmemleak125 # echo clear > /sys/kernel/debug/kmemleak
119 ... test your kernel or modules ...126 ... test your kernel or modules ...
120 # echo scan > /sys/kernel/debug/kmemleak127 # echo scan > /sys/kernel/debug/kmemleak
121 128
122Then as usual to get your report with:129Then as usual to get your report with::
123 130
124 # cat /sys/kernel/debug/kmemleak131 # cat /sys/kernel/debug/kmemleak
125 132
@@ -131,7 +138,7 @@ disabled by the user or due to an fatal error, internal kmemleak objects · 5 unmodified lines
131won't be freed when kmemleak is disabled, and those objects may occupy138won't be freed when kmemleak is disabled, and those objects may occupy
132a large part of physical memory.139a large part of physical memory.
133 140
134In this situation, you may reclaim memory with:141In this situation, you may reclaim memory with::
135 142
136 # echo clear > /sys/kernel/debug/kmemleak143 # echo clear > /sys/kernel/debug/kmemleak
137 144
@@ -140,20 +147,29 @@ Kmemleak API · 2 unmodified lines
140 147
141See the include/linux/kmemleak.h header for the functions prototype.148See the include/linux/kmemleak.h header for the functions prototype.
142 149
143kmemleak_init - initialize kmemleak150- ``kmemleak_init`` - initialize kmemleak
144kmemleak_alloc - notify of a memory block allocation151- ``kmemleak_alloc`` - notify of a memory block allocation
145kmemleak_alloc_percpu - notify of a percpu memory block allocation152- ``kmemleak_alloc_percpu`` - notify of a percpu memory block allocation
146kmemleak_free - notify of a memory block freeing153- ``kmemleak_free`` - notify of a memory block freeing
147kmemleak_free_part - notify of a partial memory block freeing154- ``kmemleak_free_part`` - notify of a partial memory block freeing
148kmemleak_free_percpu - notify of a percpu memory block freeing155- ``kmemleak_free_percpu`` - notify of a percpu memory block freeing
149kmemleak_update_trace - update object allocation stack trace156- ``kmemleak_update_trace`` - update object allocation stack trace
150kmemleak_not_leak - mark an object as not a leak157- ``kmemleak_not_leak`` - mark an object as not a leak
151kmemleak_ignore - do not scan or report an object as leak158- ``kmemleak_ignore`` - do not scan or report an object as leak
152kmemleak_scan_area - add scan areas inside a memory block159- ``kmemleak_scan_area`` - add scan areas inside a memory block
153kmemleak_no_scan - do not scan a memory block160- ``kmemleak_no_scan`` - do not scan a memory block
154kmemleak_erase - erase an old value in a pointer variable161- ``kmemleak_erase`` - erase an old value in a pointer variable
155kmemleak_alloc_recursive - as kmemleak_alloc but checks the recursiveness162- ``kmemleak_alloc_recursive`` - as kmemleak_alloc but checks the recursiveness
156kmemleak_free_recursive - as kmemleak_free but checks the recursiveness163- ``kmemleak_free_recursive`` - as kmemleak_free but checks the recursiveness
164
165The following functions take a physical address as the object pointer
166and only perform the corresponding action if the address has a lowmem
167mapping:
168
169- ``kmemleak_alloc_phys``
170- ``kmemleak_free_part_phys``
171- ``kmemleak_not_leak_phys``
172- ``kmemleak_ignore_phys``
157 173
158Dealing with false positives/negatives174Dealing with false positives/negatives
159--------------------------------------175--------------------------------------
Documentation/dev-tools/sparse.rstrenamed from Documentation/sparse.txt+24−15
@@ -1,11 +1,20 @@
1Copyright 2004 Linus Torvalds1.. Copyright 2004 Linus Torvalds
2Copyright 2004 Pavel Machek <pavel@ucw.cz>2.. Copyright 2004 Pavel Machek <pavel@ucw.cz>
3Copyright 2006 Bob Copeland <me@bobcopeland.com>3.. Copyright 2006 Bob Copeland <me@bobcopeland.com>
4
5Sparse
6======
7
8Sparse is a semantic checker for C programs; it can be used to find a
9number of potential problems with kernel code. See
10https://lwn.net/Articles/689907/ for an overview of sparse; this document
11contains some kernel-specific sparse information.
12
4 13
5Using sparse for typechecking14Using sparse for typechecking
6~~~~~~~~~~~~~~~~~~~~~~~~~~~~~15-----------------------------
7 16
8"__bitwise" is a type attribute, so you have to do something like this:17"__bitwise" is a type attribute, so you have to do something like this::
9 18
10 typedef int __bitwise pm_request_t;19 typedef int __bitwise pm_request_t;
11 20
@@ -20,13 +29,13 @@ but in this case we really _do_ want to force the conversion). And because · 8 unmodified lines
20the enum values are all the same type, now "enum pm_request" will be that29the enum values are all the same type, now "enum pm_request" will be that
21type too.30type too.
22 31
23And with gcc, all the __bitwise/__force stuff goes away, and it all ends32And with gcc, all the "__bitwise"/"__force stuff" goes away, and it all
24up looking just like integers to gcc.33ends up looking just like integers to gcc.
25 34
26Quite frankly, you don't need the enum there. The above all really just35Quite frankly, you don't need the enum there. The above all really just
27boils down to one special "int __bitwise" type.36boils down to one special "int __bitwise" type.
28 37
29So the simpler way is to just do38So the simpler way is to just do::
30 39
31 typedef int __bitwise pm_request_t;40 typedef int __bitwise pm_request_t;
32 41
@@ -50,7 +59,7 @@ __bitwise - noisy stuff; in particular, __le*/__be* are that. We really · 17 unmodified lines
50don't want to drown in noise unless we'd explicitly asked for it.59don't want to drown in noise unless we'd explicitly asked for it.
51 60
52Using sparse for lock checking61Using sparse for lock checking
53~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~62------------------------------
54 63
55The following macros are undefined for gcc and defined during a sparse64The following macros are undefined for gcc and defined during a sparse
56run to use the "context" tracking feature of sparse, applied to65run to use the "context" tracking feature of sparse, applied to
@@ -69,22 +78,22 @@ annotation is needed. The tree annotations above are for cases where · 12 unmodified lines
69sparse would otherwise report a context imbalance.78sparse would otherwise report a context imbalance.
70 79
71Getting sparse80Getting sparse
72~~~~~~~~~~~~~~81--------------
73 82
74You can get latest released versions from the Sparse homepage at83You can get latest released versions from the Sparse homepage at
75https://sparse.wiki.kernel.org/index.php/Main_Page84https://sparse.wiki.kernel.org/index.php/Main_Page
76 85
77Alternatively, you can get snapshots of the latest development version86Alternatively, you can get snapshots of the latest development version
78of sparse using git to clone..87of sparse using git to clone::
79 88
80 git://git.kernel.org/pub/scm/devel/sparse/sparse.git89 git://git.kernel.org/pub/scm/devel/sparse/sparse.git
81 90
82DaveJ has hourly generated tarballs of the git tree available at..91DaveJ has hourly generated tarballs of the git tree available at::
83 92
84 http://www.codemonkey.org.uk/projects/git-snapshots/sparse/93 http://www.codemonkey.org.uk/projects/git-snapshots/sparse/
85 94
86 95
87Once you have it, just do96Once you have it, just do::
88 97
89 make98 make
90 make install99 make install
@@ -92,7 +101,7 @@ Once you have it, just do · 1 unmodified line
92as a regular user, and it will install sparse in your ~/bin directory.101as a regular user, and it will install sparse in your ~/bin directory.
93 102
94Using sparse103Using sparse
95~~~~~~~~~~~~104------------
96 105
97Do a kernel make with "make C=1" to run sparse on all the C files that get106Do a kernel make with "make C=1" to run sparse on all the C files that get
98recompiled, or use "make C=2" to run sparse on the files whether they need to107recompiled, or use "make C=2" to run sparse on the files whether they need to
@@ -101,7 +110,7 @@ have already built it. · 2 unmodified lines
101 110
102The optional make variable CF can be used to pass arguments to sparse. The111The optional make variable CF can be used to pass arguments to sparse. The
103build system passes -Wbitwise to sparse automatically. To perform endianness112build system passes -Wbitwise to sparse automatically. To perform endianness
104checks, you may define __CHECK_ENDIAN__:113checks, you may define __CHECK_ENDIAN__::
105 114
106 make C=2 CF="-D__CHECK_ENDIAN__"115 make C=2 CF="-D__CHECK_ENDIAN__"
107 116
Documentation/dev-tools/tools.rst+25−0
@@ -0,0 +1,25 @@
1================================
2Development tools for the kernel
3================================
4
5This document is a collection of documents about development tools that can
6be used to work on the kernel. For now, the documents have been pulled
7together without any significant effot to integrate them into a coherent
8whole; patches welcome!
9
10.. class:: toc-title
11
12 Table of contents
13
14.. toctree::
15 :maxdepth: 2
16
17 coccinelle
18 sparse
19 kcov
20 gcov
21 kasan
22 ubsan
23 kmemleak
24 kmemcheck
25 gdb-kernel-debugging
Documentation/dev-tools/ubsan.rstrenamed from Documentation/ubsan.txt+23−19
@@ -1,7 +1,5 @@
1Undefined Behavior Sanitizer - UBSAN1The Undefined Behavior Sanitizer - UBSAN
2 2========================================
3Overview
4--------
5 3
6UBSAN is a runtime undefined behaviour checker.4UBSAN is a runtime undefined behaviour checker.
7 5
@@ -10,11 +8,13 @@ Compiler inserts code that perform certain kinds of checks before operations · 2 unmodified lines
10that may cause UB. If check fails (i.e. UB detected) __ubsan_handle_*8that may cause UB. If check fails (i.e. UB detected) __ubsan_handle_*
11function called to print error message.9function called to print error message.
12 10
13GCC has that feature since 4.9.x [1] (see -fsanitize=undefined option and11GCC has that feature since 4.9.x [1_] (see ``-fsanitize=undefined`` option and
14its suboptions). GCC 5.x has more checkers implemented [2].12its suboptions). GCC 5.x has more checkers implemented [2_].
15 13
16Report example14Report example
17---------------15--------------
16
17::
18 18
19 ================================================================================19 ================================================================================
20 UBSAN: Undefined behaviour in ../include/linux/bitops.h:110:3320 UBSAN: Undefined behaviour in ../include/linux/bitops.h:110:33
@@ -47,29 +47,33 @@ Report example · 26 unmodified lines
47Usage47Usage
48-----48-----
49 49
50To enable UBSAN configure kernel with:50To enable UBSAN configure kernel with::
51 51
52 CONFIG_UBSAN=y52 CONFIG_UBSAN=y
53 53
54and to check the entire kernel:54and to check the entire kernel::
55 55
56 CONFIG_UBSAN_SANITIZE_ALL=y56 CONFIG_UBSAN_SANITIZE_ALL=y
57 57
58To enable instrumentation for specific files or directories, add a line58To enable instrumentation for specific files or directories, add a line
59similar to the following to the respective kernel Makefile:59similar to the following to the respective kernel Makefile:
60 60
61 For a single file (e.g. main.o):61- For a single file (e.g. main.o)::
62 UBSAN_SANITIZE_main.o := y62
63 UBSAN_SANITIZE_main.o := y
63 64
64 For all files in one directory:65- For all files in one directory::
65 UBSAN_SANITIZE := y66
67 UBSAN_SANITIZE := y
66 68
67To exclude files from being instrumented even if69To exclude files from being instrumented even if
68CONFIG_UBSAN_SANITIZE_ALL=y, use:70``CONFIG_UBSAN_SANITIZE_ALL=y``, use::
71
72 UBSAN_SANITIZE_main.o := n
73
74and::
69 75
70 UBSAN_SANITIZE_main.o := n76 UBSAN_SANITIZE := n
71 and:
72 UBSAN_SANITIZE := n
73 77
74Detection of unaligned accesses controlled through the separate option -78Detection of unaligned accesses controlled through the separate option -
75CONFIG_UBSAN_ALIGNMENT. It's off by default on architectures that support79CONFIG_UBSAN_ALIGNMENT. It's off by default on architectures that support
@@ -80,5 +84,5 @@ reports. · 4 unmodified lines
80References84References
81----------85----------
82 86
83[1] - https://gcc.gnu.org/onlinedocs/gcc-4.9.0/gcc/Debugging-Options.html87.. _1: https://gcc.gnu.org/onlinedocs/gcc-4.9.0/gcc/Debugging-Options.html
84[2] - https://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html88.. _2: https://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html
Documentation/development-process/1.Intro.rstrenamed from Documentation/development-process/1.Intro+30−38
@@ -1,16 +1,8 @@
11: A GUIDE TO THE KERNEL DEVELOPMENT PROCESS1Introdution
2===========
2 3
3The purpose of this document is to help developers (and their managers)4Executive summary
4work with the development community with a minimum of frustration. It is5-----------------
5an attempt to document how this community works in a way which is
6accessible to those who are not intimately familiar with Linux kernel
7development (or, indeed, free software development in general). While
8there is some technical material here, this is very much a process-oriented
9discussion which does not require a deep knowledge of kernel programming to
10understand.
11
12
131.1: EXECUTIVE SUMMARY
14 6
15The rest of this section covers the scope of the kernel development process7The rest of this section covers the scope of the kernel development process
16and the kinds of frustrations that developers and their employers can8and the kinds of frustrations that developers and their employers can
@@ -20,41 +12,41 @@ availability to users, community support in many forms, and the ability to · 3 unmodified lines
20influence the direction of kernel development. Code contributed to the12influence the direction of kernel development. Code contributed to the
21Linux kernel must be made available under a GPL-compatible license.13Linux kernel must be made available under a GPL-compatible license.
22 14
23Section 2 introduces the development process, the kernel release cycle, and15:ref:`development_process` introduces the development process, the kernel
24the mechanics of the merge window. The various phases in the patch16release cycle, and the mechanics of the merge window. The various phases in
25development, review, and merging cycle are covered. There is some17the patch development, review, and merging cycle are covered. There is some
26discussion of tools and mailing lists. Developers wanting to get started18discussion of tools and mailing lists. Developers wanting to get started
27with kernel development are encouraged to track down and fix bugs as an19with kernel development are encouraged to track down and fix bugs as an
28initial exercise.20initial exercise.
29 21
30Section 3 covers early-stage project planning, with an emphasis on22:ref:`development_early_stage` covers early-stage project planning, with an
31involving the development community as soon as possible.23emphasis on involving the development community as soon as possible.
32 24
33Section 4 is about the coding process; several pitfalls which have been25:ref:`development_coding` is about the coding process; several pitfalls which
34encountered by other developers are discussed. Some requirements for26have been encountered by other developers are discussed. Some requirements for
35patches are covered, and there is an introduction to some of the tools27patches are covered, and there is an introduction to some of the tools
36which can help to ensure that kernel patches are correct.28which can help to ensure that kernel patches are correct.
37 29
38Section 5 talks about the process of posting patches for review. To be30:ref:`development_posting` talks about the process of posting patches for
39taken seriously by the development community, patches must be properly31review. To be taken seriously by the development community, patches must be
40formatted and described, and they must be sent to the right place.32properly formatted and described, and they must be sent to the right place.
41Following the advice in this section should help to ensure the best33Following the advice in this section should help to ensure the best
42possible reception for your work.34possible reception for your work.
43 35
44Section 6 covers what happens after posting patches; the job is far from36:ref:`development_followthrough` covers what happens after posting patches; the
45done at that point. Working with reviewers is a crucial part of the37job is far from done at that point. Working with reviewers is a crucial part
46development process; this section offers a number of tips on how to avoid38of the development process; this section offers a number of tips on how to
47problems at this important stage. Developers are cautioned against39avoid problems at this important stage. Developers are cautioned against
48assuming that the job is done when a patch is merged into the mainline.40assuming that the job is done when a patch is merged into the mainline.
49 41
50Section 7 introduces a couple of "advanced" topics: managing patches with42:ref:`development_advancedtopics` introduces a couple of "advanced" topics:
51git and reviewing patches posted by others.43managing patches with git and reviewing patches posted by others.
52
53Section 8 concludes the document with pointers to sources for more
54information on kernel development.
55 44
45:ref:`development_conclusion` concludes the document with pointers to sources
46for more information on kernel development.
56 47
571.2: WHAT THIS DOCUMENT IS ABOUT48What this document is about
49---------------------------
58 50
59The Linux kernel, at over 8 million lines of code and well over 100051The Linux kernel, at over 8 million lines of code and well over 1000
60contributors to each release, is one of the largest and most active free52contributors to each release, is one of the largest and most active free
@@ -108,8 +100,8 @@ community is always in need of developers who will help to make the kernel · 47 unmodified lines
108better; the following text should help you - or those who work for you -100better; the following text should help you - or those who work for you -
109join our community.101join our community.
110 102
111 103Credits
1121.3: CREDITS104-------
113 105
114This document was written by Jonathan Corbet, corbet@lwn.net. It has been106This document was written by Jonathan Corbet, corbet@lwn.net. It has been
115improved by comments from Johannes Berg, James Berry, Alex Chiang, Roland107improved by comments from Johannes Berg, James Berry, Alex Chiang, Roland
@@ -120,8 +112,8 @@ Jochen Voß. · 4 unmodified lines
120This work was supported by the Linux Foundation; thanks especially to112This work was supported by the Linux Foundation; thanks especially to
121Amanda McPherson, who saw the value of this effort and made it all happen.113Amanda McPherson, who saw the value of this effort and made it all happen.
122 114
123 115The importance of getting code into the mainline
1241.4: THE IMPORTANCE OF GETTING CODE INTO THE MAINLINE116------------------------------------------------
125 117
126Some companies and developers occasionally wonder why they should bother118Some companies and developers occasionally wonder why they should bother
127learning how to work with the kernel community and get their code into the119learning how to work with the kernel community and get their code into the
@@ -233,8 +225,8 @@ commercial life, after which a new version must be released. At that · 105 unmodified lines
233point, vendors whose code is in the mainline and well maintained will be225point, vendors whose code is in the mainline and well maintained will be
234much better positioned to get the new product ready for market quickly.226much better positioned to get the new product ready for market quickly.
235 227
236 228Licensing
2371.5: LICENSING229---------
238 230
239Code is contributed to the Linux kernel under a number of licenses, but all231Code is contributed to the Linux kernel under a number of licenses, but all
240code must be compatible with version 2 of the GNU General Public License232code must be compatible with version 2 of the GNU General Public License
Documentation/development-process/2.Process.rstrenamed from Documentation/development-process/2.Process+30−11
@@ -1,4 +1,7 @@
12: HOW THE DEVELOPMENT PROCESS WORKS1.. _development_process:
2
3How the development process works
4=================================
2 5
3Linux kernel development in the early 1990's was a pretty loose affair,6Linux kernel development in the early 1990's was a pretty loose affair,
4with relatively small numbers of users and developers involved. With a7with relatively small numbers of users and developers involved. With a
@@ -7,19 +10,21 @@ course of one year, the kernel has since had to evolve a number of · 2 unmodified lines
7processes to keep development happening smoothly. A solid understanding of10processes to keep development happening smoothly. A solid understanding of
8how the process works is required in order to be an effective part of it.11how the process works is required in order to be an effective part of it.
9 12
10 13The big picture
112.1: THE BIG PICTURE14---------------
12 15
13The kernel developers use a loosely time-based release process, with a new16The kernel developers use a loosely time-based release process, with a new
14major kernel release happening every two or three months. The recent17major kernel release happening every two or three months. The recent
15release history looks like this:18release history looks like this:
16 19
20 ====== =================
17 2.6.38 March 14, 201121 2.6.38 March 14, 2011
18 2.6.37 January 4, 201122 2.6.37 January 4, 2011
19 2.6.36 October 20, 201023 2.6.36 October 20, 2010
20 2.6.35 August 1, 201024 2.6.35 August 1, 2010
21 2.6.34 May 15, 201025 2.6.34 May 15, 2010
22 2.6.33 February 24, 201026 2.6.33 February 24, 2010
27 ====== =================
23 28
24Every 2.6.x release is a major kernel release with new features, internal29Every 2.6.x release is a major kernel release with new features, internal
25API changes, and more. A typical 2.6 release can contain nearly 10,00030API changes, and more. A typical 2.6 release can contain nearly 10,000
@@ -68,6 +73,7 @@ At that point the whole process starts over again. · 42 unmodified lines
68As an example, here is how the 2.6.38 development cycle went (all dates in73As an example, here is how the 2.6.38 development cycle went (all dates in
692011):742011):
70 75
76 ============== ===============================
71 January 4 2.6.37 stable release77 January 4 2.6.37 stable release
72 January 18 2.6.38-rc1, merge window closes78 January 18 2.6.38-rc1, merge window closes
73 January 21 2.6.38-rc279 January 21 2.6.38-rc2
@@ -78,6 +84,7 @@ As an example, here is how the 2.6.38 development cycle went (all dates in · 4 unmodified lines
78 March 1 2.6.38-rc784 March 1 2.6.38-rc7
79 March 7 2.6.38-rc885 March 7 2.6.38-rc8
80 March 14 2.6.38 stable release86 March 14 2.6.38 stable release
87 ============== ===============================
81 88
82How do the developers decide when to close the development cycle and create89How do the developers decide when to close the development cycle and create
83the stable release? The most significant metric used is the list of90the stable release? The most significant metric used is the list of
@@ -105,11 +112,13 @@ next development kernel. Kernels will typically receive stable updates for · 21 unmodified lines
105a little more than one development cycle past their initial release. So,112a little more than one development cycle past their initial release. So,
106for example, the 2.6.36 kernel's history looked like:113for example, the 2.6.36 kernel's history looked like:
107 114
115 ============== ===============================
108 October 10 2.6.36 stable release116 October 10 2.6.36 stable release
109 November 22 2.6.36.1117 November 22 2.6.36.1
110 December 9 2.6.36.2118 December 9 2.6.36.2
111 January 7 2.6.36.3119 January 7 2.6.36.3
112 February 17 2.6.36.4120 February 17 2.6.36.4
121 ============== ===============================
113 122
1142.6.36.4 was the final stable update for the 2.6.36 release.1232.6.36.4 was the final stable update for the 2.6.36 release.
115 124
@@ -117,9 +126,11 @@ Some kernels are designated "long term" kernels; they will receive support · 1 unmodified line
117for a longer period. As of this writing, the current long term kernels126for a longer period. As of this writing, the current long term kernels
118and their maintainers are:127and their maintainers are:
119 128
129 ====== ====================== ===========================
120 2.6.27 Willy Tarreau (Deep-frozen stable kernel)130 2.6.27 Willy Tarreau (Deep-frozen stable kernel)
121 2.6.32 Greg Kroah-Hartman131 2.6.32 Greg Kroah-Hartman
122 2.6.35 Andi Kleen (Embedded flag kernel)132 2.6.35 Andi Kleen (Embedded flag kernel)
133 ====== ====================== ===========================
123 134
124The selection of a kernel for long-term support is purely a matter of a135The selection of a kernel for long-term support is purely a matter of a
125maintainer having the need and the time to maintain that release. There136maintainer having the need and the time to maintain that release. There
@@ -127,7 +138,8 @@ are no known plans for long-term support for any specific upcoming · 1 unmodified line
127release.138release.
128 139
129 140
1302.2: THE LIFECYCLE OF A PATCH141The lifecycle of a patch
142------------------------
131 143
132Patches do not go directly from the developer's keyboard into the mainline144Patches do not go directly from the developer's keyboard into the mainline
133kernel. There is, instead, a somewhat involved (if somewhat informal)145kernel. There is, instead, a somewhat involved (if somewhat informal)
@@ -195,8 +207,8 @@ is to try to cut the process down to a single "merging into the mainline" · 61 unmodified lines
195step. This approach invariably leads to frustration for everybody207step. This approach invariably leads to frustration for everybody
196involved.208involved.
197 209
198 210How patches get into the Kernel
1992.3: HOW PATCHES GET INTO THE KERNEL211-------------------------------
200 212
201There is exactly one person who can merge patches into the mainline kernel213There is exactly one person who can merge patches into the mainline kernel
202repository: Linus Torvalds. But, of the over 9,500 patches which went214repository: Linus Torvalds. But, of the over 9,500 patches which went
@@ -242,7 +254,8 @@ finding the right maintainer. Sending patches directly to Linus is not · 39 unmodified lines
242normally the right way to go.254normally the right way to go.
243 255
244 256
2452.4: NEXT TREES257Next trees
258----------
246 259
247The chain of subsystem trees guides the flow of patches into the kernel,260The chain of subsystem trees guides the flow of patches into the kernel,
248but it also raises an interesting question: what if somebody wants to look261but it also raises an interesting question: what if somebody wants to look
@@ -294,7 +307,8 @@ all patches merged during a given merge window should really have found · 45 unmodified lines
294their way into linux-next some time before the merge window opens.307their way into linux-next some time before the merge window opens.
295 308
296 309
2972.4.1: STAGING TREES310Staging trees
311-------------
298 312
299The kernel source tree contains the drivers/staging/ directory, where313The kernel source tree contains the drivers/staging/ directory, where
300many sub-directories for drivers or filesystems that are on their way to314many sub-directories for drivers or filesystems that are on their way to
@@ -322,7 +336,8 @@ staging drivers. So staging is, at best, a stop on the way toward becoming · 21 unmodified lines
322a proper mainline driver.336a proper mainline driver.
323 337
324 338
3252.5: TOOLS339Tools
340-----
326 341
327As can be seen from the above text, the kernel development process depends342As can be seen from the above text, the kernel development process depends
328heavily on the ability to herd collections of patches in various343heavily on the ability to herd collections of patches in various
@@ -368,7 +383,8 @@ upstream. For the management of certain kinds of trees (-mm, for example), · 39 unmodified lines
368quilt is the best tool for the job.383quilt is the best tool for the job.
369 384
370 385
3712.6: MAILING LISTS386Mailing lists
387-------------
372 388
373A great deal of Linux kernel development work is done by way of mailing389A great deal of Linux kernel development work is done by way of mailing
374lists. It is hard to be a fully-functioning member of the community390lists. It is hard to be a fully-functioning member of the community
@@ -436,7 +452,8 @@ filesystem, etc. subsystems. The best place to look for mailing lists is · 61 unmodified lines
436in the MAINTAINERS file packaged with the kernel source.452in the MAINTAINERS file packaged with the kernel source.
437 453
438 454
4392.7: GETTING STARTED WITH KERNEL DEVELOPMENT455Getting started with Kernel development
456---------------------------------------
440 457
441Questions about how to get started with the kernel development process are458Questions about how to get started with the kernel development process are
442common - from both individuals and companies. Equally common are missteps459common - from both individuals and companies. Equally common are missteps
@@ -463,6 +480,8 @@ they wish for by these means. · 20 unmodified lines
463 480
464Andrew Morton gives this advice for aspiring kernel developers481Andrew Morton gives this advice for aspiring kernel developers
465 482
483::
484
466 The #1 project for all kernel beginners should surely be "make sure485 The #1 project for all kernel beginners should surely be "make sure
467 that the kernel runs perfectly at all times on all machines which486 that the kernel runs perfectly at all times on all machines which
468 you can lay your hands on". Usually the way to do this is to work487 you can lay your hands on". Usually the way to do this is to work
Documentation/development-process/3.Early-stage.rstrenamed from Documentation/development-process/3.Early-stage+16−6
@@ -1,4 +1,7 @@
13: EARLY-STAGE PLANNING1.. _development_early_stage:
2
3Early-stage planning
4====================
2 5
3When contemplating a Linux kernel development project, it can be tempting6When contemplating a Linux kernel development project, it can be tempting
4to jump right in and start coding. As with any significant project,7to jump right in and start coding. As with any significant project,
@@ -7,7 +10,8 @@ line of code is written. Some time spent in early planning and · 2 unmodified lines
7communication can save far more time later on.10communication can save far more time later on.
8 11
9 12
103.1: SPECIFYING THE PROBLEM13Specifying the problem
14----------------------
11 15
12Like any engineering project, a successful kernel enhancement starts with a16Like any engineering project, a successful kernel enhancement starts with a
13clear description of the problem to be solved. In some cases, this step is17clear description of the problem to be solved. In some cases, this step is
@@ -64,7 +68,8 @@ answers to a short set of questions: · 50 unmodified lines
64Only then does it make sense to start considering possible solutions.68Only then does it make sense to start considering possible solutions.
65 69
66 70
673.2: EARLY DISCUSSION71Early discussion
72----------------
68 73
69When planning a kernel development project, it makes great sense to hold74When planning a kernel development project, it makes great sense to hold
70discussions with the community before launching into implementation. Early75discussions with the community before launching into implementation. Early
@@ -117,7 +122,8 @@ In each of these cases, a great deal of pain and extra work could have been · 46 unmodified lines
117avoided with some early discussion with the kernel developers.122avoided with some early discussion with the kernel developers.
118 123
119 124
1203.3: WHO DO YOU TALK TO?125Who do you talk to?
126-------------------
121 127
122When developers decide to take their plans public, the next question will128When developers decide to take their plans public, the next question will
123be: where do we start? The answer is to find the right mailing list(s) and129be: where do we start? The answer is to find the right mailing list(s) and
@@ -141,6 +147,8 @@ development project. · 17 unmodified lines
141The task of finding the right maintainer is sometimes challenging enough147The task of finding the right maintainer is sometimes challenging enough
142that the kernel developers have added a script to ease the process:148that the kernel developers have added a script to ease the process:
143 149
150::
151
144 .../scripts/get_maintainer.pl152 .../scripts/get_maintainer.pl
145 153
146This script will return the current maintainer(s) for a given file or154This script will return the current maintainer(s) for a given file or
@@ -155,7 +163,8 @@ If all else fails, talking to Andrew Morton can be an effective way to · 8 unmodified lines
155track down a maintainer for a specific piece of code.163track down a maintainer for a specific piece of code.
156 164
157 165
1583.4: WHEN TO POST?166When to post?
167-------------
159 168
160If possible, posting your plans during the early stages can only be169If possible, posting your plans during the early stages can only be
161helpful. Describe the problem being solved and any plans that have been170helpful. Describe the problem being solved and any plans that have been
@@ -179,7 +188,8 @@ idea. The best thing to do in this situation is to proceed, keeping the · 17 unmodified lines
179community informed as you go.188community informed as you go.
180 189
181 190
1823.5: GETTING OFFICIAL BUY-IN191Getting official buy-in
192-----------------------
183 193
184If your work is being done in a corporate environment - as most Linux194If your work is being done in a corporate environment - as most Linux
185kernel work is - you must, obviously, have permission from suitably195kernel work is - you must, obviously, have permission from suitably
Documentation/development-process/4.Coding.rstrenamed from Documentation/development-process/4.Coding+30−16
@@ -1,4 +1,7 @@
14: GETTING THE CODE RIGHT1.. _development_coding:
2
3Getting the code right
4======================
2 5
3While there is much to be said for a solid and community-oriented design6While there is much to be said for a solid and community-oriented design
4process, the proof of any kernel development project is in the resulting7process, the proof of any kernel development project is in the resulting
@@ -12,9 +15,11 @@ will shift toward doing things right and the tools which can help in that · 7 unmodified lines
12quest.15quest.
13 16
14 17
154.1: PITFALLS18Pitfalls
19---------
16 20
17* Coding style21Coding style
22************
18 23
19The kernel has long had a standard coding style, described in24The kernel has long had a standard coding style, described in
20Documentation/CodingStyle. For much of that time, the policies described25Documentation/CodingStyle. For much of that time, the policies described
@@ -54,7 +59,8 @@ style (a line which becomes far less readable if split to fit within the · 33 unmodified lines
5480-column limit, for example), just do it.5980-column limit, for example), just do it.
55 60
56 61
57* Abstraction layers62Abstraction layers
63******************
58 64
59Computer Science professors teach students to make extensive use of65Computer Science professors teach students to make extensive use of
60abstraction layers in the name of flexibility and information hiding.66abstraction layers in the name of flexibility and information hiding.
@@ -87,7 +93,8 @@ implement that functionality at a higher level. There is no value in · 26 unmodified lines
87replicating the same code throughout the kernel.93replicating the same code throughout the kernel.
88 94
89 95
90* #ifdef and preprocessor use in general96#ifdef and preprocessor use in general
97**************************************
91 98
92The C preprocessor seems to present a powerful temptation to some C99The C preprocessor seems to present a powerful temptation to some C
93programmers, who see it as a way to efficiently encode a great deal of100programmers, who see it as a way to efficiently encode a great deal of
@@ -113,7 +120,8 @@ easier to read, do not evaluate their arguments multiple times, and allow · 19 unmodified lines
113the compiler to perform type checking on the arguments and return value.120the compiler to perform type checking on the arguments and return value.
114 121
115 122
116* Inline functions123Inline functions
124****************
117 125
118Inline functions present a hazard of their own, though. Programmers can126Inline functions present a hazard of their own, though. Programmers can
119become enamored of the perceived efficiency inherent in avoiding a function127become enamored of the perceived efficiency inherent in avoiding a function
@@ -137,7 +145,8 @@ placement of "inline" keywords may not just be excessive; it could also be · 17 unmodified lines
137irrelevant.145irrelevant.
138 146
139 147
140* Locking148Locking
149*******
141 150
142In May, 2006, the "Devicescape" networking stack was, with great151In May, 2006, the "Devicescape" networking stack was, with great
143fanfare, released under the GPL and made available for inclusion in the152fanfare, released under the GPL and made available for inclusion in the
@@ -151,7 +160,7 @@ This code showed a number of signs of having been developed behind · 7 unmodified lines
151corporate doors. But one large problem in particular was that it was not160corporate doors. But one large problem in particular was that it was not
152designed to work on multiprocessor systems. Before this networking stack161designed to work on multiprocessor systems. Before this networking stack
153(now called mac80211) could be merged, a locking scheme needed to be162(now called mac80211) could be merged, a locking scheme needed to be
154retrofitted onto it. 163retrofitted onto it.
155 164
156Once upon a time, Linux kernel code could be developed without thinking165Once upon a time, Linux kernel code could be developed without thinking
157about the concurrency issues presented by multiprocessor systems. Now,166about the concurrency issues presented by multiprocessor systems. Now,
@@ -169,7 +178,8 @@ enough to pick the right tool for the job. Code which shows a lack of · 11 unmodified lines
169attention to concurrency will have a difficult path into the mainline.178attention to concurrency will have a difficult path into the mainline.
170 179
171 180
172* Regressions181Regressions
182***********
173 183
174One final hazard worth mentioning is this: it can be tempting to make a184One final hazard worth mentioning is this: it can be tempting to make a
175change (which may bring big improvements) which causes something to break185change (which may bring big improvements) which causes something to break
@@ -185,6 +195,8 @@ change if it brings new functionality to ten systems for each one it · 9 unmodified lines
185breaks? The best answer to this question was expressed by Linus in July,195breaks? The best answer to this question was expressed by Linus in July,
1862007:1962007:
187 197
198::
199
188 So we don't fix bugs by introducing new problems. That way lies200 So we don't fix bugs by introducing new problems. That way lies
189 madness, and nobody ever knows if you actually make any real201 madness, and nobody ever knows if you actually make any real
190 progress at all. Is it two steps forwards, one step back, or one202 progress at all. Is it two steps forwards, one step back, or one
@@ -201,8 +213,8 @@ reason, a great deal of thought, clear documentation, and wide review for · 10 unmodified lines
201user-space interfaces is always required.213user-space interfaces is always required.
202 214
203 215
204 216Code checking tools
2054.2: CODE CHECKING TOOLS217-------------------
206 218
207For now, at least, the writing of error-free code remains an ideal that few219For now, at least, the writing of error-free code remains an ideal that few
208of us can reach. What we can hope to do, though, is to catch and fix as220of us can reach. What we can hope to do, though, is to catch and fix as
@@ -250,7 +262,7 @@ testing purposes. In particular, you should turn on: · 41 unmodified lines
250There are quite a few other debugging options, some of which will be262There are quite a few other debugging options, some of which will be
251discussed below. Some of them have a significant performance impact and263discussed below. Some of them have a significant performance impact and
252should not be used all of the time. But some time spent learning the264should not be used all of the time. But some time spent learning the
253available options will likely be paid back many times over in short order. 265available options will likely be paid back many times over in short order.
254 266
255One of the heavier debugging tools is the locking checker, or "lockdep."267One of the heavier debugging tools is the locking checker, or "lockdep."
256This tool will track the acquisition and release of every lock (spinlock or268This tool will track the acquisition and release of every lock (spinlock or
@@ -263,7 +275,7 @@ occasion, deadlock. This kind of problem can be painful (for both · 6 unmodified lines
263developers and users) in a deployed system; lockdep allows them to be found275developers and users) in a deployed system; lockdep allows them to be found
264in an automated manner ahead of time. Code with any sort of non-trivial276in an automated manner ahead of time. Code with any sort of non-trivial
265locking should be run with lockdep enabled before being submitted for277locking should be run with lockdep enabled before being submitted for
266inclusion. 278inclusion.
267 279
268As a diligent kernel programmer, you will, beyond doubt, check the return280As a diligent kernel programmer, you will, beyond doubt, check the return
269status of any operation (such as a memory allocation) which can fail. The281status of any operation (such as a memory allocation) which can fail. The
@@ -300,7 +312,7 @@ Documentation/coccinelle.txt for more information. · 30 unmodified lines
300Other kinds of portability errors are best found by compiling your code for312Other kinds of portability errors are best found by compiling your code for
301other architectures. If you do not happen to have an S/390 system or a313other architectures. If you do not happen to have an S/390 system or a
302Blackfin development board handy, you can still perform the compilation314Blackfin development board handy, you can still perform the compilation
303step. A large set of cross compilers for x86 systems can be found at 315step. A large set of cross compilers for x86 systems can be found at
304 316
305 http://www.kernel.org/pub/tools/crosstool/317 http://www.kernel.org/pub/tools/crosstool/
306 318
@@ -308,7 +320,8 @@ Some time spent installing and using these compilers will help avoid · 1 unmodified line
308embarrassment later.320embarrassment later.
309 321
310 322
3114.3: DOCUMENTATION323Documentation
324-------------
312 325
313Documentation has often been more the exception than the rule with kernel326Documentation has often been more the exception than the rule with kernel
314development. Even so, adequate documentation will help to ease the merging327development. Even so, adequate documentation will help to ease the merging
@@ -364,7 +377,8 @@ out. Anything which might tempt a code janitor to make an incorrect · 49 unmodified lines
364"cleanup" needs a comment saying why it is done the way it is. And so on.377"cleanup" needs a comment saying why it is done the way it is. And so on.
365 378
366 379
3674.4: INTERNAL API CHANGES380Internal API changes
381--------------------
368 382
369The binary interface provided by the kernel to user space cannot be broken383The binary interface provided by the kernel to user space cannot be broken
370except under the most severe circumstances. The kernel's internal384except under the most severe circumstances. The kernel's internal
Documentation/development-process/5.Posting.rstrenamed from Documentation/development-process/5.Posting+20−6
@@ -1,4 +1,7 @@
15: POSTING PATCHES1.. _development_posting:
2
3Posting patches
4===============
2 5
3Sooner or later, the time comes when your work is ready to be presented to6Sooner or later, the time comes when your work is ready to be presented to
4the community for review and, eventually, inclusion into the mainline7the community for review and, eventually, inclusion into the mainline
@@ -11,7 +14,8 @@ SubmittingDrivers, and SubmitChecklist in the kernel documentation · 6 unmodified lines
11directory.14directory.
12 15
13 16
145.1: WHEN TO POST17When to post
18------------
15 19
16There is a constant temptation to avoid posting patches before they are20There is a constant temptation to avoid posting patches before they are
17completely "ready." For simple patches, that is not a problem. If the21completely "ready." For simple patches, that is not a problem. If the
@@ -27,7 +31,8 @@ patches which are known to be half-baked, but those who do will come in · 9 unmodified lines
27with the idea that they can help you drive the work in the right direction.31with the idea that they can help you drive the work in the right direction.
28 32
29 33
305.2: BEFORE CREATING PATCHES34Before creating patches
35-----------------------
31 36
32There are a number of things which should be done before you consider37There are a number of things which should be done before you consider
33sending patches to the development community. These include:38sending patches to the development community. These include:
@@ -52,7 +57,8 @@ As a general rule, putting in some extra thought before posting code almost · 18 unmodified lines
52always pays back the effort in short order.57always pays back the effort in short order.
53 58
54 59
555.3: PATCH PREPARATION60Patch preparation
61-----------------
56 62
57The preparation of patches for posting can be a surprising amount of work,63The preparation of patches for posting can be a surprising amount of work,
58but, once again, attempting to save time here is not generally advisable64but, once again, attempting to save time here is not generally advisable
@@ -122,7 +128,8 @@ which takes quite a bit of time and thought after the "real work" has been · 63 unmodified lines
122done. When done properly, though, it is time well spent.128done. When done properly, though, it is time well spent.
123 129
124 130
1255.4: PATCH FORMATTING AND CHANGELOGS131Patch formatting and changelogs
132-------------------------------
126 133
127So now you have a perfect series of patches for posting, but the work is134So now you have a perfect series of patches for posting, but the work is
128not done quite yet. Each patch needs to be formatted into a message which135not done quite yet. Each patch needs to be formatted into a message which
@@ -140,6 +147,8 @@ that end, each patch will be composed of the following: · 11 unmodified lines
140 subsystem name first, followed by the purpose of the patch. For147 subsystem name first, followed by the purpose of the patch. For
141 example:148 example:
142 149
150 ::
151
143 gpio: fix build on CONFIG_GPIO_SYSFS=n152 gpio: fix build on CONFIG_GPIO_SYSFS=n
144 153
145 - A blank line followed by a detailed description of the contents of the154 - A blank line followed by a detailed description of the contents of the
@@ -192,6 +201,8 @@ been associated with the development of this patch. They are described in · 46 unmodified lines
192detail in the SubmittingPatches document; what follows here is a brief201detail in the SubmittingPatches document; what follows here is a brief
193summary. Each of these lines has the format:202summary. Each of these lines has the format:
194 203
204::
205
195 tag: Full Name <email address> optional-other-stuff206 tag: Full Name <email address> optional-other-stuff
196 207
197The tags in common use are:208The tags in common use are:
@@ -225,7 +236,8 @@ Be careful in the addition of tags to your patches: only Cc: is appropriate · 27 unmodified lines
225for addition without the explicit permission of the person named.236for addition without the explicit permission of the person named.
226 237
227 238
2285.5: SENDING THE PATCH239Sending the patch
240-----------------
229 241
230Before you mail your patches, there are a couple of other things you should242Before you mail your patches, there are a couple of other things you should
231take care of:243take care of:
@@ -287,6 +299,8 @@ obvious maintainer, Andrew Morton is often the patch target of last resort. · 55 unmodified lines
287Patches need good subject lines. The canonical format for a patch line is299Patches need good subject lines. The canonical format for a patch line is
288something like:300something like:
289 301
302::
303
290 [PATCH nn/mm] subsys: one-line description of the patch304 [PATCH nn/mm] subsys: one-line description of the patch
291 305
292where "nn" is the ordinal number of the patch, "mm" is the total number of306where "nn" is the ordinal number of the patch, "mm" is the total number of
Documentation/development-process/6.Followthrough.rstrenamed from Documentation/development-process/6.Followthrough+10−4
@@ -1,4 +1,7 @@
16: FOLLOWTHROUGH1.. _development_followthrough:
2
3Followthrough
4=============
2 5
3At this point, you have followed the guidelines given so far and, with the6At this point, you have followed the guidelines given so far and, with the
4addition of your own engineering skills, have posted a perfect series of7addition of your own engineering skills, have posted a perfect series of
@@ -16,7 +19,8 @@ standards. A failure to participate in this process is quite likely to · 11 unmodified lines
16prevent the inclusion of your patches into the mainline.19prevent the inclusion of your patches into the mainline.
17 20
18 21
196.1: WORKING WITH REVIEWERS22Working with reviewers
23----------------------
20 24
21A patch of any significance will result in a number of comments from other25A patch of any significance will result in a number of comments from other
22developers as they review the code. Working with reviewers can be, for26developers as they review the code. Working with reviewers can be, for
@@ -97,7 +101,8 @@ though, and not before all other alternatives have been explored. And bear · 74 unmodified lines
97in mind, of course, that he may not agree with you either.101in mind, of course, that he may not agree with you either.
98 102
99 103
1006.2: WHAT HAPPENS NEXT104What happens next
105-----------------
101 106
102If a patch is considered to be a good thing to add to the kernel, and once107If a patch is considered to be a good thing to add to the kernel, and once
103most of the review issues have been resolved, the next step is usually108most of the review issues have been resolved, the next step is usually
@@ -177,7 +182,8 @@ it with the assumption that you will not be around to maintain it · 73 unmodified lines
177afterward.182afterward.
178 183
179 184
1806.3: OTHER THINGS THAT CAN HAPPEN185Other things that can happen
186-----------------------------
181 187
182One day, you may open your mail client and see that somebody has mailed you188One day, you may open your mail client and see that somebody has mailed you
183a patch to your code. That is one of the advantages of having your code189a patch to your code. That is one of the advantages of having your code
Documentation/development-process/7.AdvancedTopics.rstrenamed from Documentation/development-process/7.AdvancedTopics+10−3
@@ -1,11 +1,15 @@
17: ADVANCED TOPICS1.. _development_advancedtopics:
2
3Advanced topics
4===============
2 5
3At this point, hopefully, you have a handle on how the development process6At this point, hopefully, you have a handle on how the development process
4works. There is still more to learn, however! This section will cover a7works. There is still more to learn, however! This section will cover a
5number of topics which can be helpful for developers wanting to become a8number of topics which can be helpful for developers wanting to become a
6regular part of the Linux kernel development process.9regular part of the Linux kernel development process.
7 10
87.1: MANAGING PATCHES WITH GIT11Managing patches with git
12-------------------------
9 13
10The use of distributed version control for the kernel began in early 2002,14The use of distributed version control for the kernel began in early 2002,
11when Linus first started playing with the proprietary BitKeeper15when Linus first started playing with the proprietary BitKeeper
@@ -114,6 +118,8 @@ radar. Kernel developers tend to get unhappy when they see that kind of · 102 unmodified lines
114thing happening; putting up a git tree with unreviewed or off-topic patches118thing happening; putting up a git tree with unreviewed or off-topic patches
115can affect your ability to get trees pulled in the future. Quoting Linus:119can affect your ability to get trees pulled in the future. Quoting Linus:
116 120
121::
122
117 You can send me patches, but for me to pull a git patch from you, I123 You can send me patches, but for me to pull a git patch from you, I
118 need to know that you know what you're doing, and I need to be able124 need to know that you know what you're doing, and I need to be able
119 to trust things *without* then having to go and check every125 to trust things *without* then having to go and check every
@@ -141,7 +147,8 @@ format the request as other developers expect, and will also check to be · 21 unmodified lines
141sure that you have remembered to push those changes to the public server.147sure that you have remembered to push those changes to the public server.
142 148
143 149
1447.2: REVIEWING PATCHES150Reviewing patches
151-----------------
145 152
146Some readers will certainly object to putting this section with "advanced153Some readers will certainly object to putting this section with "advanced
147topics" on the grounds that even beginning kernel developers should be154topics" on the grounds that even beginning kernel developers should be
Documentation/development-process/8.Conclusion.rstrenamed from Documentation/development-process/8.Conclusion+6−2
@@ -1,4 +1,7 @@
18: FOR MORE INFORMATION1.. _development_conclusion:
2
3For more information
4====================
2 5
3There are numerous sources of information on Linux kernel development and6There are numerous sources of information on Linux kernel development and
4related topics. First among those will always be the Documentation7related topics. First among those will always be the Documentation
@@ -47,7 +50,8 @@ Documentation for git can be found at: · 42 unmodified lines
47 http://www.kernel.org/pub/software/scm/git/docs/user-manual.html50 http://www.kernel.org/pub/software/scm/git/docs/user-manual.html
48 51
49 52
509: CONCLUSION53Conclusion
54==========
51 55
52Congratulations to anybody who has made it through this long-winded56Congratulations to anybody who has made it through this long-winded
53document. Hopefully it has provided a helpful understanding of how the57document. Hopefully it has provided a helpful understanding of how the
Documentation/development-process/conf.py+10−0
@@ -0,0 +1,10 @@
1# -*- coding: utf-8; mode: python -*-
2
3project = 'Linux Kernel Development Documentation'
4
5tags.add("subproject")
6
7latex_documents = [
8 ('index', 'development-process.tex', 'Linux Kernel Development Documentation',
9 'The kernel development community', 'manual'),
10]
Documentation/development-process/development-process.rst+29−0
@@ -0,0 +1,29 @@
1.. _development_process_main:
2
3A guide to the Kernel Development Process
4=========================================
5
6Contents:
7
8.. toctree::
9 :numbered:
10 :maxdepth: 2
11
12 1.Intro
13 2.Process
14 3.Early-stage
15 4.Coding
16 5.Posting
17 6.Followthrough
18 7.AdvancedTopics
19 8.Conclusion
20
21The purpose of this document is to help developers (and their managers)
22work with the development community with a minimum of frustration. It is
23an attempt to document how this community works in a way which is
24accessible to those who are not intimately familiar with Linux kernel
25development (or, indeed, free software development in general). While
26there is some technical material here, this is very much a process-oriented
27discussion which does not require a deep knowledge of kernel programming to
28understand.
29
Documentation/development-process/index.rst+9−0
@@ -0,0 +1,9 @@
1Linux Kernel Development Documentation
2======================================
3
4Contents:
5
6.. toctree::
7 :maxdepth: 2
8
9 development-process
Documentation/devicetree/bindings/arm/altera/socfpga-eccmgr.txt+98−0
@@ -90,6 +90,47 @@ Required Properties: · 89 unmodified lines
90- interrupts : Should be single bit error interrupt, then double bit error90- interrupts : Should be single bit error interrupt, then double bit error
91 interrupt, in this order.91 interrupt, in this order.
92 92
93NAND FIFO ECC
94Required Properties:
95- compatible : Should be "altr,socfpga-nand-ecc"
96- reg : Address and size for ECC block registers.
97- altr,ecc-parent : phandle to parent NAND node.
98- interrupts : Should be single bit error interrupt, then double bit error
99 interrupt, in this order.
100
101DMA FIFO ECC
102Required Properties:
103- compatible : Should be "altr,socfpga-dma-ecc"
104- reg : Address and size for ECC block registers.
105- altr,ecc-parent : phandle to parent DMA node.
106- interrupts : Should be single bit error interrupt, then double bit error
107 interrupt, in this order.
108
109USB FIFO ECC
110Required Properties:
111- compatible : Should be "altr,socfpga-usb-ecc"
112- reg : Address and size for ECC block registers.
113- altr,ecc-parent : phandle to parent USB node.
114- interrupts : Should be single bit error interrupt, then double bit error
115 interrupt, in this order.
116
117QSPI FIFO ECC
118Required Properties:
119- compatible : Should be "altr,socfpga-qspi-ecc"
120- reg : Address and size for ECC block registers.
121- altr,ecc-parent : phandle to parent QSPI node.
122- interrupts : Should be single bit error interrupt, then double bit error
123 interrupt, in this order.
124
125SDMMC FIFO ECC
126Required Properties:
127- compatible : Should be "altr,socfpga-sdmmc-ecc"
128- reg : Address and size for ECC block registers.
129- altr,ecc-parent : phandle to parent SD/MMC node.
130- interrupts : Should be single bit error interrupt, then double bit error
131 interrupt, in this order for port A, and then single bit error interrupt,
132 then double bit error interrupt in this order for port B.
133
93Example:134Example:
94 135
95 eccmgr: eccmgr@ffd06000 {136 eccmgr: eccmgr@ffd06000 {
@@ -132,4 +173,61 @@ Example: · 36 unmodified lines
132 interrupts = <5 IRQ_TYPE_LEVEL_HIGH>,173 interrupts = <5 IRQ_TYPE_LEVEL_HIGH>,
133 <37 IRQ_TYPE_LEVEL_HIGH>;174 <37 IRQ_TYPE_LEVEL_HIGH>;
134 };175 };
176
177 nand-buf-ecc@ff8c2000 {
178 compatible = "altr,socfpga-nand-ecc";
179 reg = <0xff8c2000 0x400>;
180 altr,ecc-parent = <&nand>;
181 interrupts = <11 IRQ_TYPE_LEVEL_HIGH>,
182 <43 IRQ_TYPE_LEVEL_HIGH>;
183 };
184
185 nand-rd-ecc@ff8c2400 {
186 compatible = "altr,socfpga-nand-ecc";
187 reg = <0xff8c2400 0x400>;
188 altr,ecc-parent = <&nand>;
189 interrupts = <13 IRQ_TYPE_LEVEL_HIGH>,
190 <45 IRQ_TYPE_LEVEL_HIGH>;
191 };
192
193 nand-wr-ecc@ff8c2800 {
194 compatible = "altr,socfpga-nand-ecc";
195 reg = <0xff8c2800 0x400>;
196 altr,ecc-parent = <&nand>;
197 interrupts = <12 IRQ_TYPE_LEVEL_HIGH>,
198 <44 IRQ_TYPE_LEVEL_HIGH>;
199 };
200
201 dma-ecc@ff8c8000 {
202 compatible = "altr,socfpga-dma-ecc";
203 reg = <0xff8c8000 0x400>;
204 altr,ecc-parent = <&pdma>;
205 interrupts = <10 IRQ_TYPE_LEVEL_HIGH>,
206 <42 IRQ_TYPE_LEVEL_HIGH>;
207
208 usb0-ecc@ff8c8800 {
209 compatible = "altr,socfpga-usb-ecc";
210 reg = <0xff8c8800 0x400>;
211 altr,ecc-parent = <&usb0>;
212 interrupts = <2 IRQ_TYPE_LEVEL_HIGH>,
213 <34 IRQ_TYPE_LEVEL_HIGH>;
214 };
215
216 qspi-ecc@ff8c8400 {
217 compatible = "altr,socfpga-qspi-ecc";
218 reg = <0xff8c8400 0x400>;
219 altr,ecc-parent = <&qspi>;
220 interrupts = <14 IRQ_TYPE_LEVEL_HIGH>,
221 <46 IRQ_TYPE_LEVEL_HIGH>;
222 };
223
224 sdmmc-ecc@ff8c2c00 {
225 compatible = "altr,socfpga-sdmmc-ecc";
226 reg = <0xff8c2c00 0x400>;
227 altr,ecc-parent = <&mmc>;
228 interrupts = <15 IRQ_TYPE_LEVEL_HIGH>,
229 <47 IRQ_TYPE_LEVEL_HIGH>,
230 <16 IRQ_TYPE_LEVEL_HIGH>,
231 <48 IRQ_TYPE_LEVEL_HIGH>;
232 };
135 };233 };
Documentation/devicetree/bindings/arm/arch_timer.txt+6−0
@@ -25,6 +25,12 @@ to deliver its interrupts via SPIs. · 24 unmodified lines
25- always-on : a boolean property. If present, the timer is powered through an25- always-on : a boolean property. If present, the timer is powered through an
26 always-on power domain, therefore it never loses context.26 always-on power domain, therefore it never loses context.
27 27
28- fsl,erratum-a008585 : A boolean property. Indicates the presence of
29 QorIQ erratum A-008585, which says that reading the counter is
30 unreliable unless the same value is returned by back-to-back reads.
31 This also affects writes to the tval register, due to the implicit
32 counter read.
33
28** Optional properties:34** Optional properties:
29 35
30- arm,cpu-registers-not-fw-configured : Firmware does not initialize36- arm,cpu-registers-not-fw-configured : Firmware does not initialize
Documentation/devicetree/bindings/arm/bcm/brcm,bcm2835.txt+4−0
@@ -38,6 +38,10 @@ Raspberry Pi Compute Module · 37 unmodified lines
38Required root node properties:38Required root node properties:
39compatible = "raspberrypi,compute-module", "brcm,bcm2835";39compatible = "raspberrypi,compute-module", "brcm,bcm2835";
40 40
41Raspberry Pi Zero
42Required root node properties:
43compatible = "raspberrypi,model-zero", "brcm,bcm2835";
44
41Generic BCM2835 board45Generic BCM2835 board
42Required root node properties:46Required root node properties:
43compatible = "brcm,bcm2835";47compatible = "brcm,bcm2835";
Documentation/devicetree/bindings/arm/davinci.txt+4−0
@@ -5,6 +5,10 @@ DA850/OMAP-L138/AM18x Evaluation Module (EVM) board · 4 unmodified lines
5Required root node properties:5Required root node properties:
6 - compatible = "ti,da850-evm", "ti,da850";6 - compatible = "ti,da850-evm", "ti,da850";
7 7
8DA850/OMAP-L138/AM18x L138/C6748 Development Kit (LCDK) board
9Required root node properties:
10 - compatible = "ti,da850-lcdk", "ti,da850";
11
8EnBW AM1808 based CMC board12EnBW AM1808 based CMC board
9Required root node properties:13Required root node properties:
10 - compatible = "enbw,cmc", "ti,da850;14 - compatible = "enbw,cmc", "ti,da850;
Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt+28−11
@@ -175,38 +175,55 @@ Example: · 174 unmodified lines
175 };175 };
176 176
177-----------------------------------------------------------------------177-----------------------------------------------------------------------
178Hisilicon HiP05 PCIe-SAS system controller178Hisilicon HiP05/HiP06 PCIe-SAS sub system controller
179 179
180Required properties:180Required properties:
181- compatible : "hisilicon,pcie-sas-subctrl", "syscon";181- compatible : "hisilicon,pcie-sas-subctrl", "syscon";
182- reg : Register address and size182- reg : Register address and size
183 183
184The HiP05 PCIe-SAS system controller is shared by PCIe and SAS controllers in184The PCIe-SAS sub system controller is shared by PCIe and SAS controllers in
185HiP05 Soc to implement some basic configurations.185HiP05 or HiP06 Soc to implement some basic configurations.
186 186
187Example:187Example:
188 /* for HiP05 PCIe-SAS system */188 /* for HiP05 PCIe-SAS sub system */
189 pcie_sas: system_controller@0xb0000000 {189 pcie_sas: system_controller@b0000000 {
190 compatible = "hisilicon,pcie-sas-subctrl", "syscon";190 compatible = "hisilicon,pcie-sas-subctrl", "syscon";
191 reg = <0xb0000000 0x10000>;191 reg = <0xb0000000 0x10000>;
192 };192 };
193 193
194Hisilicon HiP05 PERISUB system controller194Hisilicon HiP05/HiP06 PERI sub system controller
195 195
196Required properties:196Required properties:
197- compatible : "hisilicon,hip05-perisubc", "syscon";197- compatible : "hisilicon,peri-subctrl", "syscon";
198- reg : Register address and size198- reg : Register address and size
199 199
200The HiP05 PERISUB system controller is shared by peripheral controllers in200The PERI sub system controller is shared by peripheral controllers in
201HiP05 Soc to implement some basic configurations. The peripheral201HiP05 or HiP06 Soc to implement some basic configurations. The peripheral
202controllers include mdio, ddr, iic, uart, timer and so on.202controllers include mdio, ddr, iic, uart, timer and so on.
203 203
204Example:204Example:
205 /* for HiP05 perisub-ctrl-c system */205 /* for HiP05 sub peri system */
206 peri_c_subctrl: syscon@80000000 {206 peri_c_subctrl: syscon@80000000 {
207 compatible = "hisilicon,hip05-perisubc", "syscon";207 compatible = "hisilicon,peri-subctrl", "syscon";
208 reg = <0x0 0x80000000 0x0 0x10000>;208 reg = <0x0 0x80000000 0x0 0x10000>;
209 };209 };
210
211Hisilicon HiP05/HiP06 DSA sub system controller
212
213Required properties:
214- compatible : "hisilicon,dsa-subctrl", "syscon";
215- reg : Register address and size
216
217The DSA sub system controller is shared by peripheral controllers in
218HiP05 or HiP06 Soc to implement some basic configurations.
219
220Example:
221 /* for HiP05 dsa sub system */
222 pcie_sas: system_controller@a0000000 {
223 compatible = "hisilicon,dsa-subctrl", "syscon";
224 reg = <0xa0000000 0x10000>;
225 };
226
210-----------------------------------------------------------------------227-----------------------------------------------------------------------
211Hisilicon CPU controller228Hisilicon CPU controller
212 229
Documentation/devicetree/bindings/arm/marvell/armada-39x.txt+13−2
@@ -8,8 +8,19 @@ Required root node property: · 7 unmodified lines
8 8
9 - compatible: must contain "marvell,armada390"9 - compatible: must contain "marvell,armada390"
10 10
11In addition, boards using the Marvell Armada 398 SoC shall have the11In addition, boards using the Marvell Armada 395 SoC shall have the
12following property before the previous one:12following property before the common "marvell,armada390" one:
13
14Required root node property:
15
16compatible: must contain "marvell,armada395"
17
18Example:
19
20compatible = "marvell,a395-gp", "marvell,armada395", "marvell,armada390";
21
22Boards using the Marvell Armada 398 SoC shall have the following
23property before the common "marvell,armada390" one:
13 24
14Required root node property:25Required root node property:
15 26
Documentation/devicetree/bindings/arm/marvell/marvell,orion5x.txt+25−0
@@ -0,0 +1,25 @@
1Marvell Orion SoC Family Device Tree Bindings
2---------------------------------------------
3
4Boards with a SoC of the Marvell Orion family, eg 88f5181
5
6* Required root node properties:
7compatible: must contain "marvell,orion5x"
8
9In addition, the above compatible shall be extended with the specific
10SoC. Currently known SoC compatibles are:
11
12"marvell,orion5x-88f5181"
13"marvell,orion5x-88f5182"
14
15And in addition, the compatible shall be extended with the specific
16board. Currently known boards are:
17
18"buffalo,lsgl"
19"buffalo,lswsgl"
20"buffalo,lswtgl"
21"lacie,ethernet-disk-mini-v2"
22"lacie,d2-network"
23"marvell,rd-88f5182-nas"
24"maxtor,shared-storage-2"
25"netgear,wnr854t"
Documentation/devicetree/bindings/arm/mediatek/mediatek,apmixedsys.txt+2−1
@@ -5,7 +5,8 @@ The Mediatek apmixedsys controller provides the PLLs to the system. · 4 unmodified lines
5 5
6Required Properties:6Required Properties:
7 7
8- compatible: Should be:8- compatible: Should be one of:
9 - "mediatek,mt2701-apmixedsys"
9 - "mediatek,mt8135-apmixedsys"10 - "mediatek,mt8135-apmixedsys"
10 - "mediatek,mt8173-apmixedsys"11 - "mediatek,mt8173-apmixedsys"
11- #clock-cells: Must be 112- #clock-cells: Must be 1
Documentation/devicetree/bindings/arm/mediatek/mediatek,bdpsys.txt+22−0
@@ -0,0 +1,22 @@
1Mediatek bdpsys controller
2============================
3
4The Mediatek bdpsys controller provides various clocks to the system.
5
6Required Properties:
7
8- compatible: Should be:
9 - "mediatek,mt2701-bdpsys", "syscon"
10- #clock-cells: Must be 1
11
12The bdpsys controller uses the common clk binding from
13Documentation/devicetree/bindings/clock/clock-bindings.txt
14The available clocks are defined in dt-bindings/clock/mt*-clk.h.
15
16Example:
17
18bdpsys: clock-controller@1c000000 {
19 compatible = "mediatek,mt2701-bdpsys", "syscon";
20 reg = <0 0x1c000000 0 0x1000>;
21 #clock-cells = <1>;
22};
Documentation/devicetree/bindings/arm/mediatek/mediatek,ethsys.txt+22−0
@@ -0,0 +1,22 @@
1Mediatek ethsys controller
2============================
3
4The Mediatek ethsys controller provides various clocks to the system.
5
6Required Properties:
7
8- compatible: Should be:
9 - "mediatek,mt2701-ethsys", "syscon"
10- #clock-cells: Must be 1
11
12The ethsys controller uses the common clk binding from
13Documentation/devicetree/bindings/clock/clock-bindings.txt
14The available clocks are defined in dt-bindings/clock/mt*-clk.h.
15
16Example:
17
18ethsys: clock-controller@1b000000 {
19 compatible = "mediatek,mt2701-ethsys", "syscon";
20 reg = <0 0x1b000000 0 0x1000>;
21 #clock-cells = <1>;
22};
Documentation/devicetree/bindings/arm/mediatek/mediatek,hifsys.txt+24−0
@@ -0,0 +1,24 @@
1Mediatek hifsys controller
2============================
3
4The Mediatek hifsys controller provides various clocks and reset
5outputs to the system.
6
7Required Properties:
8
9- compatible: Should be:
10 - "mediatek,mt2701-hifsys", "syscon"
11- #clock-cells: Must be 1
12
13The hifsys controller uses the common clk binding from
14Documentation/devicetree/bindings/clock/clock-bindings.txt
15The available clocks are defined in dt-bindings/clock/mt*-clk.h.
16
17Example:
18
19hifsys: clock-controller@1a000000 {
20 compatible = "mediatek,mt2701-hifsys", "syscon";
21 reg = <0 0x1a000000 0 0x1000>;
22 #clock-cells = <1>;
23 #reset-cells = <1>;
24};
Documentation/devicetree/bindings/arm/mediatek/mediatek,imgsys.txt+2−1
@@ -5,7 +5,8 @@ The Mediatek imgsys controller provides various clocks to the system. · 4 unmodified lines
5 5
6Required Properties:6Required Properties:
7 7
8- compatible: Should be:8- compatible: Should be one of:
9 - "mediatek,mt2701-imgsys", "syscon"
9 - "mediatek,mt8173-imgsys", "syscon"10 - "mediatek,mt8173-imgsys", "syscon"
10- #clock-cells: Must be 111- #clock-cells: Must be 1
11 12
Documentation/devicetree/bindings/arm/mediatek/mediatek,infracfg.txt+2−1
@@ -6,7 +6,8 @@ outputs to the system. · 5 unmodified lines
6 6
7Required Properties:7Required Properties:
8 8
9- compatible: Should be:9- compatible: Should be one of:
10 - "mediatek,mt2701-infracfg", "syscon"
10 - "mediatek,mt8135-infracfg", "syscon"11 - "mediatek,mt8135-infracfg", "syscon"
11 - "mediatek,mt8173-infracfg", "syscon"12 - "mediatek,mt8173-infracfg", "syscon"
12- #clock-cells: Must be 113- #clock-cells: Must be 1
Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.txt+2−1
@@ -5,7 +5,8 @@ The Mediatek mmsys controller provides various clocks to the system. · 4 unmodified lines
5 5
6Required Properties:6Required Properties:
7 7
8- compatible: Should be:8- compatible: Should be one of:
9 - "mediatek,mt2701-mmsys", "syscon"
9 - "mediatek,mt8173-mmsys", "syscon"10 - "mediatek,mt8173-mmsys", "syscon"
10- #clock-cells: Must be 111- #clock-cells: Must be 1
11 12
Documentation/devicetree/bindings/arm/mediatek/mediatek,pericfg.txt+2−1
@@ -6,7 +6,8 @@ outputs to the system. · 5 unmodified lines
6 6
7Required Properties:7Required Properties:
8 8
9- compatible: Should be:9- compatible: Should be one of:
10 - "mediatek,mt2701-pericfg", "syscon"
10 - "mediatek,mt8135-pericfg", "syscon"11 - "mediatek,mt8135-pericfg", "syscon"
11 - "mediatek,mt8173-pericfg", "syscon"12 - "mediatek,mt8173-pericfg", "syscon"
12- #clock-cells: Must be 113- #clock-cells: Must be 1
Documentation/devicetree/bindings/arm/mediatek/mediatek,topckgen.txt+2−1
@@ -5,7 +5,8 @@ The Mediatek topckgen controller provides various clocks to the system. · 4 unmodified lines
5 5
6Required Properties:6Required Properties:
7 7
8- compatible: Should be:8- compatible: Should be one of:
9 - "mediatek,mt2701-topckgen"
9 - "mediatek,mt8135-topckgen"10 - "mediatek,mt8135-topckgen"
10 - "mediatek,mt8173-topckgen"11 - "mediatek,mt8173-topckgen"
11- #clock-cells: Must be 112- #clock-cells: Must be 1
Documentation/devicetree/bindings/arm/mediatek/mediatek,vdecsys.txt+2−1
@@ -5,7 +5,8 @@ The Mediatek vdecsys controller provides various clocks to the system. · 4 unmodified lines
5 5
6Required Properties:6Required Properties:
7 7
8- compatible: Should be:8- compatible: Should be one of:
9 - "mediatek,mt2701-vdecsys", "syscon"
9 - "mediatek,mt8173-vdecsys", "syscon"10 - "mediatek,mt8173-vdecsys", "syscon"
10- #clock-cells: Must be 111- #clock-cells: Must be 1
11 12
Documentation/devicetree/bindings/arm/omap/omap.txt+6−0
@@ -180,3 +180,9 @@ Boards: · 179 unmodified lines
180 180
181- DRA722 EVM: Software Development Board for DRA722181- DRA722 EVM: Software Development Board for DRA722
182 compatible = "ti,dra72-evm", "ti,dra722", "ti,dra72", "ti,dra7"182 compatible = "ti,dra72-evm", "ti,dra722", "ti,dra72", "ti,dra7"
183
184- DM3730 Logic PD Torpedo + Wireless: Commercial System on Module with WiFi and Bluetooth
185 compatible = "logicpd,dm3730-torpedo-devkit", "ti,omap3630", "ti,omap3"
186
187- DM3730 Logic PD SOM-LV: Commercial System on Module with WiFi and Bluetooth
188 compatible = "logicpd,dm3730-som-lv-devkit", "ti,omap3630", "ti,omap3"
Documentation/devicetree/bindings/arm/rockchip.txt+12−0
@@ -31,6 +31,10 @@ Rockchip platforms device tree bindings · 30 unmodified lines
31 or31 or
32 - compatible = "firefly,firefly-rk3288-beta", "rockchip,rk3288";32 - compatible = "firefly,firefly-rk3288-beta", "rockchip,rk3288";
33 33
34- Firefly Firefly-RK3288 Reload board:
35 Required root node properties:
36 - compatible = "firefly,firefly-rk3288-reload", "rockchip,rk3288";
37
34- ChipSPARK PopMetal-RK3288 board:38- ChipSPARK PopMetal-RK3288 board:
35 Required root node properties:39 Required root node properties:
36 - compatible = "chipspark,popmetal-rk3288", "rockchip,rk3288";40 - compatible = "chipspark,popmetal-rk3288", "rockchip,rk3288";
@@ -110,6 +114,14 @@ Rockchip platforms device tree bindings · 73 unmodified lines
110- Rockchip RK3229 Evaluation board:114- Rockchip RK3229 Evaluation board:
111 - compatible = "rockchip,rk3229-evb", "rockchip,rk3229";115 - compatible = "rockchip,rk3229-evb", "rockchip,rk3229";
112 116
117- Rockchip RK3288 Fennec board:
118 Required root node properties:
119 - compatible = "rockchip,rk3288-fennec", "rockchip,rk3288";
120
113- Rockchip RK3399 evb:121- Rockchip RK3399 evb:
114 Required root node properties:122 Required root node properties:
115 - compatible = "rockchip,rk3399-evb", "rockchip,rk3399";123 - compatible = "rockchip,rk3399-evb", "rockchip,rk3399";
124
125- Tronsmart Orion R68 Meta
126 Required root node properties:
127 - compatible = "tronsmart,orion-r68-meta", "rockchip,rk3368";
Documentation/devicetree/bindings/arm/samsung/pmu.txt+1−0
@@ -10,6 +10,7 @@ Properties: · 9 unmodified lines
10 - "samsung,exynos5260-pmu" - for Exynos5260 SoC.10 - "samsung,exynos5260-pmu" - for Exynos5260 SoC.
11 - "samsung,exynos5410-pmu" - for Exynos5410 SoC,11 - "samsung,exynos5410-pmu" - for Exynos5410 SoC,
12 - "samsung,exynos5420-pmu" - for Exynos5420 SoC.12 - "samsung,exynos5420-pmu" - for Exynos5420 SoC.
13 - "samsung,exynos5433-pmu" - for Exynos5433 SoC.
13 - "samsung,exynos7-pmu" - for Exynos7 SoC.14 - "samsung,exynos7-pmu" - for Exynos7 SoC.
14 second value must be always "syscon".15 second value must be always "syscon".
15 16
Documentation/devicetree/bindings/arm/shmobile.txt+6−0
@@ -49,6 +49,8 @@ Boards: · 48 unmodified lines
49 compatible = "renesas,genmai", "renesas,r7s72100"49 compatible = "renesas,genmai", "renesas,r7s72100"
50 - Gose50 - Gose
51 compatible = "renesas,gose", "renesas,r8a7793"51 compatible = "renesas,gose", "renesas,r8a7793"
52 - H3ULCB (RTP0RC7795SKB00010S)
53 compatible = "renesas,h3ulcb", "renesas,r8a7795";
52 - Henninger54 - Henninger
53 compatible = "renesas,henninger", "renesas,r8a7791"55 compatible = "renesas,henninger", "renesas,r8a7791"
54 - Koelsch (RTP0RC7791SEB00010S)56 - Koelsch (RTP0RC7791SEB00010S)
@@ -63,9 +65,13 @@ Boards: · 8 unmodified lines
63 compatible = "renesas,marzen", "renesas,r8a7779"65 compatible = "renesas,marzen", "renesas,r8a7779"
64 - Porter (M2-LCDP)66 - Porter (M2-LCDP)
65 compatible = "renesas,porter", "renesas,r8a7791"67 compatible = "renesas,porter", "renesas,r8a7791"
68 - RSKRZA1 (YR0K77210C000BE)
69 compatible = "renesas,rskrza1", "renesas,r7s72100"
66 - Salvator-X (RTP0RC7795SIPB0010S)70 - Salvator-X (RTP0RC7795SIPB0010S)
67 compatible = "renesas,salvator-x", "renesas,r8a7795";71 compatible = "renesas,salvator-x", "renesas,r8a7795";
68 - Salvator-X72 - Salvator-X
69 compatible = "renesas,salvator-x", "renesas,r8a7796";73 compatible = "renesas,salvator-x", "renesas,r8a7796";
70 - SILK (RTP0RC7794LCB00011S)74 - SILK (RTP0RC7794LCB00011S)
71 compatible = "renesas,silk", "renesas,r8a7794"75 compatible = "renesas,silk", "renesas,r8a7794"
76 - Wheat
77 compatible = "renesas,wheat", "renesas,r8a7792"
Documentation/devicetree/bindings/arm/sunxi.txt+1−0
@@ -14,3 +14,4 @@ using one of the following compatible strings: · 13 unmodified lines
14 allwinner,sun8i-a83t14 allwinner,sun8i-a83t
15 allwinner,sun8i-h315 allwinner,sun8i-h3
16 allwinner,sun9i-a8016 allwinner,sun9i-a80
17 nextthing,gr8
Documentation/devicetree/bindings/arm/technologic.txt+6−0
@@ -4,3 +4,9 @@ Technologic Systems Platforms Device Tree Bindings · 3 unmodified lines
4TS-4800 board4TS-4800 board
5Required root node properties:5Required root node properties:
6 - compatible = "technologic,imx51-ts4800", "fsl,imx51";6 - compatible = "technologic,imx51-ts4800", "fsl,imx51";
7
8TS-4900 is a System-on-Module based on the Freescale i.MX6 System-on-Chip.
9It can be mounted on a carrier board providing additional peripheral connectors.
10Required root node properties:
11 - compatible = "technologic,imx6dl-ts4900", "fsl,imx6dl"
12 - compatible = "technologic,imx6q-ts4900", "fsl,imx6q"
Documentation/devicetree/bindings/arm/zte.txt+24−0
@@ -13,3 +13,27 @@ Low power management required properties: · 12 unmodified lines
13 13
14Bus matrix required properties:14Bus matrix required properties:
15 - compatible = "zte,zx-bus-matrix"15 - compatible = "zte,zx-bus-matrix"
16
17
18---------------------------------------
19- ZX296718 SoC:
20 Required root node properties:
21 - compatible = "zte,zx296718"
22
23ZX296718 EVB board:
24 - "zte,zx296718-evb"
25
26System management required properties:
27 - compatible = "zte,zx296718-aon-sysctrl"
28 - compatible = "zte,zx296718-sysctrl"
29
30Example:
31aon_sysctrl: aon-sysctrl@116000 {
32 compatible = "zte,zx296718-aon-sysctrl", "syscon";
33 reg = <0x116000 0x1000>;
34};
35
36sysctrl: sysctrl@1463000 {
37 compatible = "zte,zx296718-sysctrl", "syscon";
38 reg = <0x1463000 0x1000>;
39};
Documentation/devicetree/bindings/auxdisplay/img-ascii-lcd.txt+17−0
@@ -0,0 +1,17 @@
1Binding for ASCII LCD displays on Imagination Technologies boards
2
3Required properties:
4- compatible : should be one of:
5 "img,boston-lcd"
6 "mti,malta-lcd"
7 "mti,sead3-lcd"
8
9Required properties for "img,boston-lcd":
10- reg : memory region locating the device registers
11
12Required properties for "mti,malta-lcd" or "mti,sead3-lcd":
13- regmap: phandle of the system controller containing the LCD registers
14- offset: offset in bytes to the LCD registers within the system controller
15
16The layout of the registers & properties of the display are determined
17from the compatible string, making this binding somewhat trivial.
Documentation/devicetree/bindings/bus/qcom,ebi2.txt+138−0
@@ -0,0 +1,138 @@
1Qualcomm External Bus Interface 2 (EBI2)
2
3The EBI2 contains two peripheral blocks: XMEM and LCDC. The XMEM handles any
4external memory (such as NAND or other memory-mapped peripherals) whereas
5LCDC handles LCD displays.
6
7As it says it connects devices to an external bus interface, meaning address
8lines (up to 9 address lines so can only address 1KiB external memory space),
9data lines (16 bits), OE (output enable), ADV (address valid, used on some
10NOR flash memories), WE (write enable). This on top of 6 different chip selects
11(CS0 thru CS5) so that in theory 6 different devices can be connected.
12
13Apparently this bus is clocked at 64MHz. It has dedicated pins on the package
14and the bus can only come out on these pins, however if some of the pins are
15unused they can be left unconnected or remuxed to be used as GPIO or in some
16cases other orthogonal functions as well.
17
18Also CS1 and CS2 has -A and -B signals. Why they have that is unclear to me.
19
20The chip selects have the following memory range assignments. This region of
21memory is referred to as "Chip Peripheral SS FPB0" and is 168MB big.
22
23Chip Select Physical address base
24CS0 GPIO134 0x1a800000-0x1b000000 (8MB)
25CS1 GPIO39 (A) / GPIO123 (B) 0x1b000000-0x1b800000 (8MB)
26CS2 GPIO40 (A) / GPIO124 (B) 0x1b800000-0x1c000000 (8MB)
27CS3 GPIO133 0x1d000000-0x25000000 (128 MB)
28CS4 GPIO132 0x1c800000-0x1d000000 (8MB)
29CS5 GPIO131 0x1c000000-0x1c800000 (8MB)
30
31The APQ8060 Qualcomm Application Processor User Guide, 80-N7150-14 Rev. A,
32August 6, 2012 contains some incomplete documentation of the EBI2.
33
34FIXME: the manual mentions "write precharge cycles" and "precharge cycles".
35We have not been able to figure out which bit fields these correspond to
36in the hardware, or what valid values exist. The current hypothesis is that
37this is something just used on the FAST chip selects and that the SLOW
38chip selects are understood fully. There is also a "byte device enable"
39flag somewhere for 8bit memories.
40
41FIXME: The chipselects have SLOW and FAST configuration registers. It's a bit
42unclear what this means, if they are mutually exclusive or can be used
43together, or if some chip selects are hardwired to be FAST and others are SLOW
44by design.
45
46The XMEM registers are totally undocumented but could be partially decoded
47because the Cypress AN49576 Antioch Westbridge apparently has suspiciously
48similar register layout, see: http://www.cypress.com/file/105771/download
49
50Required properties:
51- compatible: should be one of:
52 "qcom,msm8660-ebi2"
53 "qcom,apq8060-ebi2"
54- #address-cells: shoule be <2>: the first cell is the chipselect,
55 the second cell is the offset inside the memory range
56- #size-cells: should be <1>
57- ranges: should be set to:
58 ranges = <0 0x0 0x1a800000 0x00800000>,
59 <1 0x0 0x1b000000 0x00800000>,
60 <2 0x0 0x1b800000 0x00800000>,
61 <3 0x0 0x1d000000 0x08000000>,
62 <4 0x0 0x1c800000 0x00800000>,
63 <5 0x0 0x1c000000 0x00800000>;
64- reg: two ranges of registers: EBI2 config and XMEM config areas
65- reg-names: should be "ebi2", "xmem"
66- clocks: two clocks, EBI_2X and EBI
67- clock-names: shoule be "ebi2x", "ebi2"
68
69Optional subnodes:
70- Nodes inside the EBI2 will be considered device nodes.
71
72The following optional properties are properties that can be tagged onto
73any device subnode. We are assuming that there can be only ONE device per
74chipselect subnode, else the properties will become ambigous.
75
76Optional properties arrays for SLOW chip selects:
77- qcom,xmem-recovery-cycles: recovery cycles is the time the memory continues to
78 drive the data bus after OE is de-asserted, in order to avoid contention on
79 the data bus. They are inserted when reading one CS and switching to another
80 CS or read followed by write on the same CS. Valid values 0 thru 15. Minimum
81 value is actually 1, so a value of 0 will still yield 1 recovery cycle.
82- qcom,xmem-write-hold-cycles: write hold cycles, these are extra cycles
83 inserted after every write minimum 1. The data out is driven from the time
84 WE is asserted until CS is asserted. With a hold of 1 (value = 0), the CS
85 stays active for 1 extra cycle etc. Valid values 0 thru 15.
86- qcom,xmem-write-delta-cycles: initial latency for write cycles inserted for
87 the first write to a page or burst memory. Valid values 0 thru 255.
88- qcom,xmem-read-delta-cycles: initial latency for read cycles inserted for the
89 first read to a page or burst memory. Valid values 0 thru 255.
90- qcom,xmem-write-wait-cycles: number of wait cycles for every write access, 0=1
91 cycle. Valid values 0 thru 15.
92- qcom,xmem-read-wait-cycles: number of wait cycles for every read access, 0=1
93 cycle. Valid values 0 thru 15.
94
95Optional properties arrays for FAST chip selects:
96- qcom,xmem-address-hold-enable: this is a boolean property stating that we
97 shall hold the address for an extra cycle to meet hold time requirements
98 with ADV assertion.
99- qcom,xmem-adv-to-oe-recovery-cycles: the number of cycles elapsed before an OE
100 assertion, with respect to the cycle where ADV (address valid) is asserted.
101 2 means 2 cycles between ADV and OE. Valid values 0, 1, 2 or 3.
102- qcom,xmem-read-hold-cycles: the length in cycles of the first segment of a
103 read transfer. For a single read trandfer this will be the time from CS
104 assertion to OE assertion. Valid values 0 thru 15.
105
106
107Example:
108
109ebi2@1a100000 {
110 compatible = "qcom,apq8060-ebi2";
111 #address-cells = <2>;
112 #size-cells = <1>;
113 ranges = <0 0x0 0x1a800000 0x00800000>,
114 <1 0x0 0x1b000000 0x00800000>,
115 <2 0x0 0x1b800000 0x00800000>,
116 <3 0x0 0x1d000000 0x08000000>,
117 <4 0x0 0x1c800000 0x00800000>,
118 <5 0x0 0x1c000000 0x00800000>;
119 reg = <0x1a100000 0x1000>, <0x1a110000 0x1000>;
120 reg-names = "ebi2", "xmem";
121 clocks = <&gcc EBI2_2X_CLK>, <&gcc EBI2_CLK>;
122 clock-names = "ebi2x", "ebi2";
123 /* Make sure to set up the pin control for the EBI2 */
124 pinctrl-names = "default";
125 pinctrl-0 = <&foo_ebi2_pins>;
126
127 foo-ebi2@2,0 {
128 compatible = "foo";
129 reg = <2 0x0 0x100>;
130 (...)
131 qcom,xmem-recovery-cycles = <0>;
132 qcom,xmem-write-hold-cycles = <3>;
133 qcom,xmem-write-delta-cycles = <31>;
134 qcom,xmem-read-delta-cycles = <28>;
135 qcom,xmem-write-wait-cycles = <9>;
136 qcom,xmem-read-wait-cycles = <9>;
137 };
138};
Documentation/devicetree/bindings/clock/amlogic,gxbb-aoclkc.txt+45−0
@@ -0,0 +1,45 @@
1* Amlogic GXBB AO Clock and Reset Unit
2
3The Amlogic GXBB AO clock controller generates and supplies clock to various
4controllers within the Always-On part of the SoC.
5
6Required Properties:
7
8- compatible: should be "amlogic,gxbb-aoclkc"
9- reg: physical base address of the clock controller and length of memory
10 mapped region.
11
12- #clock-cells: should be 1.
13
14Each clock is assigned an identifier and client nodes can use this identifier
15to specify the clock which they consume. All available clocks are defined as
16preprocessor macros in the dt-bindings/clock/gxbb-aoclkc.h header and can be
17used in device tree sources.
18
19- #reset-cells: should be 1.
20
21Each reset is assigned an identifier and client nodes can use this identifier
22to specify the reset which they consume. All available resets are defined as
23preprocessor macros in the dt-bindings/reset/gxbb-aoclkc.h header and can be
24used in device tree sources.
25
26Example: AO Clock controller node:
27
28 clkc_AO: clock-controller@040 {
29 compatible = "amlogic,gxbb-aoclkc";
30 reg = <0x0 0x040 0x0 0x4>;
31 #clock-cells = <1>;
32 #reset-cells = <1>;
33 };
34
35Example: UART controller node that consumes the clock and reset generated
36 by the clock controller:
37
38 uart_AO: serial@4c0 {
39 compatible = "amlogic,meson-uart";
40 reg = <0x4c0 0x14>;
41 interrupts = <0 90 1>;
42 clocks = <&clkc_AO CLKID_AO_UART1>;
43 resets = <&clkc_AO RESET_AO_UART1>;
44 status = "disabled";
45 };
Documentation/devicetree/bindings/clock/arm-syscon-icst.txt+32−2
@@ -5,20 +5,50 @@ Technology (IDT). ARM integrated these oscillators deeply into their · 4 unmodified lines
5reference designs by adding special control registers that manage such5reference designs by adding special control registers that manage such
6oscillators to their system controllers.6oscillators to their system controllers.
7 7
8The ARM system controller contains logic to serialize and initialize8The various ARM system controllers contain logic to serialize and initialize
9an ICST clock request after a write to the 32 bit register at an offset9an ICST clock request after a write to the 32 bit register at an offset
10into the system controller. Furthermore, to even be able to alter one of10into the system controller. Furthermore, to even be able to alter one of
11these frequencies, the system controller must first be unlocked by11these frequencies, the system controller must first be unlocked by
12writing a special token to another offset in the system controller.12writing a special token to another offset in the system controller.
13 13
14Some ARM hardware contain special versions of the serial interface that only
15connects the low 8 bits of the VDW (missing one bit), hardwires RDW to
16different values and sometimes also hardwire the output divider. They
17therefore have special compatible strings as per this table (the OD value is
18the value on the pins, not the resulting output divider):
19
20Hardware variant: RDW OD VDW
21
22Integrator/AP 22 1 Bit 8 0, rest variable
23integratorap-cm
24
25Integrator/AP 46 3 Bit 8 0, rest variable
26integratorap-sys
27
28Integrator/AP 22 or 1 17 or (33 or 25 MHz)
29integratorap-pci 14 1 14
30
31Integrator/CP 22 variable Bit 8 0, rest variable
32integratorcp-cm-core
33
34Integrator/CP 22 variable Bit 8 0, rest variable
35integratorcp-cm-mem
36
14The ICST oscillator must be provided inside a system controller node.37The ICST oscillator must be provided inside a system controller node.
15 38
16Required properties:39Required properties:
40- compatible: must be one of
41 "arm,syscon-icst525"
42 "arm,syscon-icst307"
43 "arm,syscon-icst525-integratorap-cm"
44 "arm,syscon-icst525-integratorap-sys"
45 "arm,syscon-icst525-integratorap-pci"
46 "arm,syscon-icst525-integratorcp-cm-core"
47 "arm,syscon-icst525-integratorcp-cm-mem"
17- lock-offset: the offset address into the system controller where the48- lock-offset: the offset address into the system controller where the
18 unlocking register is located49 unlocking register is located
19- vco-offset: the offset address into the system controller where the50- vco-offset: the offset address into the system controller where the
20 ICST control register is located (even 32 bit address)51 ICST control register is located (even 32 bit address)
21- compatible: must be one of "arm,syscon-icst525" or "arm,syscon-icst307"
22- #clock-cells: must be <0>52- #clock-cells: must be <0>
23- clocks: parent clock, since the ICST needs a parent clock to derive its53- clocks: parent clock, since the ICST needs a parent clock to derive its
24 frequency from, this attribute is compulsory.54 frequency from, this attribute is compulsory.
Documentation/devicetree/bindings/clock/armada3700-periph-clock.txt+70−0
@@ -0,0 +1,70 @@
1* Peripheral Clock bindings for Marvell Armada 37xx SoCs
2
3Marvell Armada 37xx SoCs provide peripheral clocks which are
4used as clock source for the peripheral of the SoC.
5
6There are two different blocks associated to north bridge and south
7bridge.
8
9The peripheral clock consumer should specify the desired clock by
10having the clock ID in its "clocks" phandle cell.
11
12The following is a list of provided IDs for Armada 370 North bridge clocks:
13ID Clock name Description
14-----------------------------------
150 mmc MMC controller
161 sata_host Sata Host
172 sec_at Security AT
183 sac_dap Security DAP
194 tsecm Security Engine
205 setm_tmx Serial Embedded Trace Module
216 avs Adaptive Voltage Scaling
227 sqf SPI
238 pwm PWM
249 i2c_2 I2C 2
2510 i2c_1 I2C 1
2611 ddr_phy DDR PHY
2712 ddr_fclk DDR F clock
2813 trace Trace
2914 counter Counter
3015 eip97 EIP 97
3116 cpu CPU
32
33The following is a list of provided IDs for Armada 370 South bridge clocks:
34ID Clock name Description
35-----------------------------------
360 gbe-50 50 MHz parent clock for Gigabit Ethernet
371 gbe-core parent clock for Gigabit Ethernet core
382 gbe-125 125 MHz parent clock for Gigabit Ethernet
393 gbe1-50 50 MHz clock for Gigabit Ethernet port 1
404 gbe0-50 50 MHz clock for Gigabit Ethernet port 0
415 gbe1-125 125 MHz clock for Gigabit Ethernet port 1
426 gbe0-125 125 MHz clock for Gigabit Ethernet port 0
437 gbe1-core Gigabit Ethernet core port 1
448 gbe0-core Gigabit Ethernet core port 0
459 gbe-bm Gigabit Ethernet Buffer Manager
4610 sdio SDIO
4711 usb32-sub2-sys USB 2 clock
4812 usb32-ss-sys USB 3 clock
49
50Required properties:
51
52- compatible : shall be "marvell,armada-3700-periph-clock-nb" for the
53 north bridge block, or
54 "marvell,armada-3700-periph-clock-sb" for the south bridge block
55- reg : must be the register address of North/South Bridge Clock register
56- #clock-cells : from common clock binding; shall be set to 1
57
58- clocks : list of the parent clock phandle in the following order:
59 TBG-A P, TBG-B P, TBG-A S, TBG-B S and finally the xtal clock.
60
61
62Example:
63
64nb_perih_clk: nb-periph-clk@13000{
65 compatible = "marvell,armada-3700-periph-clock-nb";
66 reg = <0x13000 0x1000>;
67 clocks = <&tbg 0>, <&tbg 1>, <&tbg 2>,
68 <&tbg 3>, <&xtalclk>;
69 #clock-cells = <1>;
70};
Documentation/devicetree/bindings/clock/armada3700-tbg-clock.txt+27−0
@@ -0,0 +1,27 @@
1* Time Base Generator Clock bindings for Marvell Armada 37xx SoCs
2
3Marvell Armada 37xx SoCs provde Time Base Generator clocks which are
4used as parent clocks for the peripheral clocks.
5
6The TBG clock consumer should specify the desired clock by having the
7clock ID in its "clocks" phandle cell.
8
9The following is a list of provided IDs and clock names on Armada 3700:
10 0 = TBG A P
11 1 = TBG B P
12 2 = TBG A S
13 3 = TBG B S
14
15Required properties:
16- compatible : shall be "marvell,armada-3700-tbg-clock"
17- reg : must be the register address of North Bridge PLL register
18- #clock-cells : from common clock binding; shall be set to 1
19
20Example:
21
22tbg: tbg@13200 {
23 compatible = "marvell,armada-3700-tbg-clock";
24 reg = <0x13200 0x1000>;
25 clocks = <&xtalclk>;
26 #clock-cells = <1>;
27};
Documentation/devicetree/bindings/clock/armada3700-xtal-clock.txt+28−0
@@ -0,0 +1,28 @@
1* Xtal Clock bindings for Marvell Armada 37xx SoCs
2
3Marvell Armada 37xx SoCs allow to determine the xtal clock frequencies by
4reading the gpio latch register.
5
6This node must be a subnode of the node exposing the register address
7of the GPIO block where the gpio latch is located.
8
9Required properties:
10- compatible : shall be one of the following:
11 "marvell,armada-3700-xtal-clock"
12- #clock-cells : from common clock binding; shall be set to 0
13
14Optional properties:
15- clock-output-names : from common clock binding; allows overwrite default clock
16 output names ("xtal")
17
18Example:
19gpio1: gpio@13800 {
20 compatible = "marvell,armada-3700-gpio", "syscon", "simple-mfd";
21 reg = <0x13800 0x1000>;
22
23 xtalclk: xtal-clk {
24 compatible = "marvell,armada-3700-xtal-clock";
25 clock-output-names = "xtal";
26 #clock-cells = <0>;
27 };
28};
Documentation/devicetree/bindings/clock/at91-clock.txt+2−1
@@ -6,7 +6,8 @@ This binding uses the common clock binding[1]. · 5 unmodified lines
6 6
7Required properties:7Required properties:
8- compatible : shall be one of the following:8- compatible : shall be one of the following:
9 "atmel,at91sam9x5-sckc":9 "atmel,at91sam9x5-sckc" or
10 "atmel,sama5d4-sckc":
10 at91 SCKC (Slow Clock Controller)11 at91 SCKC (Slow Clock Controller)
11 This node contains the slow clock definitions.12 This node contains the slow clock definitions.
12 13
Documentation/devicetree/bindings/clock/brcm,bcm53573-ilp.txt+36−0
@@ -0,0 +1,36 @@
1Broadcom BCM53573 ILP clock
2===========================
3
4This binding uses the common clock binding:
5 Documentation/devicetree/bindings/clock/clock-bindings.txt
6
7This binding is used for ILP clock (sometimes referred as "slow clock")
8on Broadcom BCM53573 devices using Cortex-A7 CPU.
9
10ILP's rate has to be calculated on runtime and it depends on ALP clock
11which has to be referenced.
12
13This clock is part of PMU (Power Management Unit), a Broadcom's device
14handing power-related aspects. Its node must be sub-node of the PMU
15device.
16
17Required properties:
18- compatible: "brcm,bcm53573-ilp"
19- clocks: has to reference an ALP clock
20- #clock-cells: should be <0>
21- clock-output-names: from common clock bindings, should contain clock
22 name
23
24Example:
25
26pmu@18012000 {
27 compatible = "simple-mfd", "syscon";
28 reg = <0x18012000 0x00001000>;
29
30 ilp {
31 compatible = "brcm,bcm53573-ilp";
32 clocks = <&alp>;
33 #clock-cells = <0>;
34 clock-output-names = "ilp";
35 };
36};
Documentation/devicetree/bindings/clock/clk-exynos-audss.txt+3−1
@@ -10,6 +10,8 @@ Required Properties: · 9 unmodified lines
10 - "samsung,exynos4210-audss-clock" - controller compatible with all Exynos4 SoCs.10 - "samsung,exynos4210-audss-clock" - controller compatible with all Exynos4 SoCs.
11 - "samsung,exynos5250-audss-clock" - controller compatible with Exynos525011 - "samsung,exynos5250-audss-clock" - controller compatible with Exynos5250
12 SoCs.12 SoCs.
13 - "samsung,exynos5410-audss-clock" - controller compatible with Exynos5410
14 SoCs.
13 - "samsung,exynos5420-audss-clock" - controller compatible with Exynos542015 - "samsung,exynos5420-audss-clock" - controller compatible with Exynos5420
14 SoCs.16 SoCs.
15- reg: physical base address and length of the controller's register set.17- reg: physical base address and length of the controller's register set.
@@ -91,5 +93,5 @@ i2s0: i2s@03830000 { · 75 unmodified lines
91 <&clock_audss EXYNOS_MOUT_AUDSS>,93 <&clock_audss EXYNOS_MOUT_AUDSS>,
92 <&clock_audss EXYNOS_MOUT_I2S>;94 <&clock_audss EXYNOS_MOUT_I2S>;
93 clock-names = "iis", "i2s_opclk0", "i2s_opclk1",95 clock-names = "iis", "i2s_opclk0", "i2s_opclk1",
94 "mout_audss", "mout_i2s";96 "mout_audss", "mout_i2s";
95};97};
Documentation/devicetree/bindings/clock/exynos5410-clock.txt+13−8
@@ -12,24 +12,29 @@ Required Properties: · 11 unmodified lines
12 12
13- #clock-cells: should be 1.13- #clock-cells: should be 1.
14 14
15- clocks: should contain an entry specifying the root clock from external
16 oscillator supplied through XXTI or XusbXTI pin. This clock should be
17 defined using standard clock bindings with "fin_pll" clock-output-name.
18 That clock is being passed internally to the 9 PLLs.
19
15All available clocks are defined as preprocessor macros in20All available clocks are defined as preprocessor macros in
16dt-bindings/clock/exynos5410.h header and can be used in device21dt-bindings/clock/exynos5410.h header and can be used in device
17tree sources.22tree sources.
18 23
19External clock:
20
21There is clock that is generated outside the SoC. It
22is expected that it is defined using standard clock bindings
23with following clock-output-name:
24
25 - "fin_pll" - PLL input clock from XXTI
26
27Example 1: An example of a clock controller node is listed below.24Example 1: An example of a clock controller node is listed below.
28 25
26 fin_pll: xxti {
27 compatible = "fixed-clock";
28 clock-frequency = <24000000>;
29 clock-output-names = "fin_pll";
30 #clock-cells = <0>;
31 };
32
29 clock: clock-controller@0x10010000 {33 clock: clock-controller@0x10010000 {
30 compatible = "samsung,exynos5410-clock";34 compatible = "samsung,exynos5410-clock";
31 reg = <0x10010000 0x30000>;35 reg = <0x10010000 0x30000>;
32 #clock-cells = <1>;36 #clock-cells = <1>;
37 clocks = <&fin_pll>;
33 };38 };
34 39
35Example 2: UART controller node that consumes the clock generated by the clock40Example 2: UART controller node that consumes the clock generated by the clock
Documentation/devicetree/bindings/clock/maxim,max77686.txt+93−25
@@ -1,10 +1,24 @@
1Binding for Maxim MAX77686 32k clock generator block1Binding for Maxim MAX77686/MAX77802/MAX77620 32k clock generator block
2 2
3This is a part of device tree bindings of MAX77686 multi-function device.3This is a part of device tree bindings of MAX77686/MAX77802/MAX77620
4More information can be found in bindings/mfd/max77686.txt file.4multi-function device. More information can be found in MFD DT binding
5doc as follows:
6 bindings/mfd/max77686.txt for MAX77686 and
7 bindings/mfd/max77802.txt for MAX77802 and
8 bindings/mfd/max77620.txt for MAX77620.
5 9
6The MAX77686 contains three 32.768khz clock outputs that can be controlled10The MAX77686 contains three 32.768khz clock outputs that can be controlled
7(gated/ungated) over I2C.11(gated/ungated) over I2C. Clocks are defined as preprocessor macros in
12dt-bindings/clock/maxim,max77686.h.
13
14
15The MAX77802 contains two 32.768khz clock outputs that can be controlled
16(gated/ungated) over I2C. Clocks are defined as preprocessor macros in
17dt-bindings/clock/maxim,max77802.h.
18
19The MAX77686 contains one 32.768khz clock outputs that can be controlled
20(gated/ungated) over I2C. Clocks are defined as preprocessor macros in
21dt-bindings/clock/maxim,max77620.h.
8 22
9Following properties should be presend in main device node of the MFD chip.23Following properties should be presend in main device node of the MFD chip.
10 24
@@ -17,30 +31,84 @@ Optional properties: · 6 unmodified lines
17 31
18Each clock is assigned an identifier and client nodes can use this identifier32Each clock is assigned an identifier and client nodes can use this identifier
19to specify the clock which they consume. Following indices are allowed:33to specify the clock which they consume. Following indices are allowed:
20 - 0: 32khz_ap clock,34 - 0: 32khz_ap clock (max77686, max77802), 32khz_out0 (max77620)
21 - 1: 32khz_cp clock,35 - 1: 32khz_cp clock (max77686, max77802),
22 - 2: 32khz_pmic clock.36 - 2: 32khz_pmic clock (max77686).
37
38Clocks are defined as preprocessor macros in above dt-binding header for
39respective chips.
40
41Example:
42
431. With MAX77686:
44
45#include <dt-bindings/clock/maxim,max77686.h>
46/* ... */
47
48 Node of the MFD chip
49 max77686: max77686@09 {
50 compatible = "maxim,max77686";
51 interrupt-parent = <&wakeup_eint>;
52 interrupts = <26 0>;
53 reg = <0x09>;
54 #clock-cells = <1>;
55
56 /* ... */
57 };
58
59 Clock consumer node
60
61 foo@0 {
62 compatible = "bar,foo";
63 /* ... */
64 clock-names = "my-clock";
65 clocks = <&max77686 MAX77686_CLK_PMIC>;
66 };
67
682. With MAX77802:
69
70#include <dt-bindings/clock/maxim,max77802.h>
71/* ... */
72
73 Node of the MFD chip
74 max77802: max77802@09 {
75 compatible = "maxim,max77802";
76 interrupt-parent = <&wakeup_eint>;
77 interrupts = <26 0>;
78 reg = <0x09>;
79 #clock-cells = <1>;
80
81 /* ... */
82 };
83
84 Clock consumer node
85
86 foo@0 {
87 compatible = "bar,foo";
88 /* ... */
89 clock-names = "my-clock";
90 clocks = <&max77802 MAX77802_CLK_32K_AP>;
91 };
23 92
24Clocks are defined as preprocessor macros in dt-bindings/clock/maxim,max77686.h
25header and can be used in device tree sources.
26 93
27Example: Node of the MFD chip943. With MAX77620:
28 95
29 max77686: max77686@09 {96#include <dt-bindings/clock/maxim,max77620.h>
30 compatible = "maxim,max77686";97/* ... */
31 interrupt-parent = <&wakeup_eint>;
32 interrupts = <26 0>;
33 reg = <0x09>;
34 #clock-cells = <1>;
35 98
36 /* ... */99 Node of the MFD chip
37 };100 max77620: max77620@3c {
101 compatible = "maxim,max77620";
102 reg = <0x3c>;
103 #clock-cells = <1>;
104 /* ... */
105 };
38 106
39Example: Clock consumer node107 Clock consumer node
40 108
41 foo@0 {109 foo@0 {
42 compatible = "bar,foo";110 compatible = "bar,foo";
43 /* ... */111 /* ... */
44 clock-names = "my-clock";112 clock-names = "my-clock";
45 clocks = <&max77686 MAX77686_CLK_PMIC>;113 clocks = <&max77620 MAX77620_CLK_32K_OUT0>;
46 };114 };
Documentation/devicetree/bindings/clock/maxim,max77802.txt+0−44
@@ -1,44 +0,0 @@
1Binding for Maxim MAX77802 32k clock generator block
2
3This is a part of device tree bindings of MAX77802 multi-function device.
4More information can be found in bindings/mfd/max77802.txt file.
5
6The MAX77802 contains two 32.768khz clock outputs that can be controlled
7(gated/ungated) over I2C.
8
9Following properties should be present in main device node of the MFD chip.
10
11Required properties:
12- #clock-cells: From common clock binding; shall be set to 1.
13
14Optional properties:
15- clock-output-names: From common clock binding.
16
17Each clock is assigned an identifier and client nodes can use this identifier
18to specify the clock which they consume. Following indices are allowed:
19 - 0: 32khz_ap clock,
20 - 1: 32khz_cp clock.
21
22Clocks are defined as preprocessor macros in dt-bindings/clock/maxim,max77802.h
23header and can be used in device tree sources.
24
25Example: Node of the MFD chip
26
27 max77802: max77802@09 {
28 compatible = "maxim,max77802";
29 interrupt-parent = <&wakeup_eint>;
30 interrupts = <26 0>;
31 reg = <0x09>;
32 #clock-cells = <1>;
33
34 /* ... */
35 };
36
37Example: Clock consumer node
38
39 foo@0 {
40 compatible = "bar,foo";
41 /* ... */
42 clock-names = "my-clock";
43 clocks = <&max77802 MAX77802_CLK_32K_AP>;
44 };
Documentation/devicetree/bindings/clock/mvebu-core-clock.txt+1−0
@@ -52,6 +52,7 @@ Required properties: · 51 unmodified lines
52 "marvell,dove-core-clock" - for Dove SoC core clocks52 "marvell,dove-core-clock" - for Dove SoC core clocks
53 "marvell,kirkwood-core-clock" - for Kirkwood SoC (except mv88f6180)53 "marvell,kirkwood-core-clock" - for Kirkwood SoC (except mv88f6180)
54 "marvell,mv88f6180-core-clock" - for Kirkwood MV88f6180 SoC54 "marvell,mv88f6180-core-clock" - for Kirkwood MV88f6180 SoC
55 "marvell,mv88f5181-core-clock" - for Orion MV88F5181 SoC
55 "marvell,mv88f5182-core-clock" - for Orion MV88F5182 SoC56 "marvell,mv88f5182-core-clock" - for Orion MV88F5182 SoC
56 "marvell,mv88f5281-core-clock" - for Orion MV88F5281 SoC57 "marvell,mv88f5281-core-clock" - for Orion MV88F5281 SoC
57 "marvell,mv88f6183-core-clock" - for Orion MV88F6183 SoC58 "marvell,mv88f6183-core-clock" - for Orion MV88F6183 SoC
Documentation/devicetree/bindings/clock/mvebu-gated-clock.txt+2−0
@@ -86,6 +86,8 @@ ID Clock Peripheral · 85 unmodified lines
867 pex3 PCIe 3867 pex3 PCIe 3
878 pex0 PCIe 0878 pex0 PCIe 0
889 usb3h0 USB3 Host 0889 usb3h0 USB3 Host 0
8910 usb3h1 USB3 Host 1
9015 sata0 SATA 0
8917 sdio SDIO9117 sdio SDIO
9022 xor0 XOR 09222 xor0 XOR 0
9128 xor1 XOR 19328 xor1 XOR 1
Documentation/devicetree/bindings/clock/qcom,gcc.txt+17−0
@@ -15,6 +15,7 @@ Required properties : · 14 unmodified lines
15 "qcom,gcc-msm8974pro"15 "qcom,gcc-msm8974pro"
16 "qcom,gcc-msm8974pro-ac"16 "qcom,gcc-msm8974pro-ac"
17 "qcom,gcc-msm8996"17 "qcom,gcc-msm8996"
18 "qcom,gcc-mdm9615"
18 19
19- reg : shall contain base register location and length20- reg : shall contain base register location and length
20- #clock-cells : shall contain 121- #clock-cells : shall contain 1
@@ -22,6 +23,11 @@ Required properties : · 1 unmodified line
22 23
23Optional properties :24Optional properties :
24- #power-domain-cells : shall contain 125- #power-domain-cells : shall contain 1
26- Qualcomm TSENS (thermal sensor device) on some devices can
27be part of GCC and hence the TSENS properties can also be
28part of the GCC/clock-controller node.
29For more details on the TSENS properties please refer
30Documentation/devicetree/bindings/thermal/qcom-tsens.txt
25 31
26Example:32Example:
27 clock-controller@900000 {33 clock-controller@900000 {
@@ -31,3 +37,14 @@ Example: · 3 unmodified lines
31 #reset-cells = <1>;37 #reset-cells = <1>;
32 #power-domain-cells = <1>;38 #power-domain-cells = <1>;
33 };39 };
40
41Example of GCC with TSENS properties:
42 clock-controller@900000 {
43 compatible = "qcom,gcc-apq8064";
44 reg = <0x00900000 0x4000>;
45 nvmem-cells = <&tsens_calib>, <&tsens_backup>;
46 nvmem-cell-names = "calib", "calib_backup";
47 #clock-cells = <1>;
48 #reset-cells = <1>;
49 #thermal-sensor-cells = <1>;
50 };
Documentation/devicetree/bindings/clock/qcom,lcc.txt+1−0
@@ -7,6 +7,7 @@ Required properties : · 6 unmodified lines
7 "qcom,lcc-msm8960"7 "qcom,lcc-msm8960"
8 "qcom,lcc-apq8064"8 "qcom,lcc-apq8064"
9 "qcom,lcc-ipq8064"9 "qcom,lcc-ipq8064"
10 "qcom,lcc-mdm9615"
10 11
11- reg : shall contain base register location and length12- reg : shall contain base register location and length
12- #clock-cells : shall contain 113- #clock-cells : shall contain 1
Documentation/devicetree/bindings/clock/st,stm32-rcc.txt+35−7
@@ -1,16 +1,16 @@
1STMicroelectronics STM32 Reset and Clock Controller1STMicroelectronics STM32 Reset and Clock Controller
2===================================================2===================================================
3 3
4The RCC IP is both a reset and a clock controller. This documentation only4The RCC IP is both a reset and a clock controller.
5describes the clock part.
6 5
7Please also refer to clock-bindings.txt in this directory for common clock6Please refer to clock-bindings.txt for common clock controller binding usage.
8controller binding usage.7Please also refer to reset.txt for common reset controller binding usage.
9 8
10Required properties:9Required properties:
11- compatible: Should be "st,stm32f42xx-rcc"10- compatible: Should be "st,stm32f42xx-rcc"
12- reg: should be register base and length as documented in the11- reg: should be register base and length as documented in the
13 datasheet12 datasheet
13- #reset-cells: 1, see below
14- #clock-cells: 2, device nodes should specify the clock in their "clocks"14- #clock-cells: 2, device nodes should specify the clock in their "clocks"
15 property, containing a phandle to the clock device node, an index selecting15 property, containing a phandle to the clock device node, an index selecting
16 between gated clocks and other clocks and an index specifying the clock to16 between gated clocks and other clocks and an index specifying the clock to
@@ -19,6 +19,7 @@ Required properties: · 2 unmodified lines
19Example:19Example:
20 20
21 rcc: rcc@40023800 {21 rcc: rcc@40023800 {
22 #reset-cells = <1>;
22 #clock-cells = <2>23 #clock-cells = <2>
23 compatible = "st,stm32f42xx-rcc", "st,stm32-rcc";24 compatible = "st,stm32f42xx-rcc", "st,stm32-rcc";
24 reg = <0x40023800 0x400>;25 reg = <0x40023800 0x400>;
@@ -35,16 +36,23 @@ from the first RCC clock enable register (RCC_AHB1ENR, address offset 0x30). · 10 unmodified lines
35It is calculated as: index = register_offset / 4 * 32 + bit_offset.36It is calculated as: index = register_offset / 4 * 32 + bit_offset.
36Where bit_offset is the bit offset within the register (LSB is 0, MSB is 31).37Where bit_offset is the bit offset within the register (LSB is 0, MSB is 31).
37 38
39To simplify the usage and to share bit definition with the reset and clock
40drivers of the RCC IP, macros are available to generate the index in
41human-readble format.
42
43For STM32F4 series, the macro are available here:
44 - include/dt-bindings/mfd/stm32f4-rcc.h
45
38Example:46Example:
39 47
40 /* Gated clock, AHB1 bit 0 (GPIOA) */48 /* Gated clock, AHB1 bit 0 (GPIOA) */
41 ... {49 ... {
42 clocks = <&rcc 0 0>50 clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOA)>
43 };51 };
44 52
45 /* Gated clock, AHB2 bit 4 (CRYP) */53 /* Gated clock, AHB2 bit 4 (CRYP) */
46 ... {54 ... {
47 clocks = <&rcc 0 36>55 clocks = <&rcc 0 STM32F4_AHB2_CLOCK(CRYP)>
48 };56 };
49 57
50Specifying other clocks58Specifying other clocks
@@ -61,5 +69,25 @@ Example: · 10 unmodified lines
61 69
62 /* Misc clock, FCLK */70 /* Misc clock, FCLK */
63 ... {71 ... {
64 clocks = <&rcc 1 1>72 clocks = <&rcc 1 STM32F4_APB1_CLOCK(TIM2)>
73 };
74
75
76Specifying softreset control of devices
77=======================================
78
79Device nodes should specify the reset channel required in their "resets"
80property, containing a phandle to the reset device node and an index specifying
81which channel to use.
82The index is the bit number within the RCC registers bank, starting from RCC
83base address.
84It is calculated as: index = register_offset / 4 * 32 + bit_offset.
85Where bit_offset is the bit offset within the register.
86For example, for CRC reset:
87 crc = AHB1RSTR_offset / 4 * 32 + CRCRST_bit_offset = 0x10 / 4 * 32 + 12 = 140
88
89example:
90
91 timer2 {
92 resets = <&rcc STM32F4_APB1_RESET(TIM2)>;
65 };93 };
Documentation/devicetree/bindings/clock/st/st,clkgen-divmux.txt+0−49
@@ -1,49 +0,0 @@
1Binding for a ST divider and multiplexer clock driver.
2
3This binding uses the common clock binding[1].
4Base address is located to the parent node. See clock binding[2]
5
6[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
7[2] Documentation/devicetree/bindings/clock/st/st,clkgen.txt
8
9Required properties:
10
11- compatible : shall be:
12 "st,clkgena-divmux-c65-hs", "st,clkgena-divmux"
13 "st,clkgena-divmux-c65-ls", "st,clkgena-divmux"
14 "st,clkgena-divmux-c32-odf0", "st,clkgena-divmux"
15 "st,clkgena-divmux-c32-odf1", "st,clkgena-divmux"
16 "st,clkgena-divmux-c32-odf2", "st,clkgena-divmux"
17 "st,clkgena-divmux-c32-odf3", "st,clkgena-divmux"
18
19- #clock-cells : From common clock binding; shall be set to 1.
20
21- clocks : From common clock binding
22
23- clock-output-names : From common clock binding.
24
25Example:
26
27 clockgen-a@fd345000 {
28 reg = <0xfd345000 0xb50>;
29
30 clk_m_a1_div1: clk-m-a1-div1 {
31 #clock-cells = <1>;
32 compatible = "st,clkgena-divmux-c32-odf1",
33 "st,clkgena-divmux";
34
35 clocks = <&clk_m_a1_osc_prediv>,
36 <&clk_m_a1_pll0 1>, /* PLL0 PHI1 */
37 <&clk_m_a1_pll1 1>; /* PLL1 PHI1 */
38
39 clock-output-names = "clk-m-rx-icn-ts",
40 "clk-m-rx-icn-vdp-0",
41 "", /* unused */
42 "clk-m-prv-t1-bus",
43 "clk-m-icn-reg-12",
44 "clk-m-icn-reg-10",
45 "", /* unused */
46 "clk-m-icn-st231";
47 };
48 };
49
Documentation/devicetree/bindings/clock/st/st,clkgen-mux.txt+8−12
@@ -10,14 +10,7 @@ This binding uses the common clock binding[1]. · 9 unmodified lines
10Required properties:10Required properties:
11 11
12- compatible : shall be:12- compatible : shall be:
13 "st,stih416-clkgenc-vcc-hd", "st,clkgen-mux"13 "st,stih407-clkgen-a9-mux"
14 "st,stih416-clkgenf-vcc-fvdp", "st,clkgen-mux"
15 "st,stih416-clkgenf-vcc-hva", "st,clkgen-mux"
16 "st,stih416-clkgenf-vcc-hd", "st,clkgen-mux"
17 "st,stih416-clkgenf-vcc-sd", "st,clkgen-mux"
18 "st,stih415-clkgen-a9-mux", "st,clkgen-mux"
19 "st,stih416-clkgen-a9-mux", "st,clkgen-mux"
20 "st,stih407-clkgen-a9-mux", "st,clkgen-mux"
21 14
22- #clock-cells : from common clock binding; shall be set to 0.15- #clock-cells : from common clock binding; shall be set to 0.
23 16
@@ -27,10 +20,13 @@ Required properties: · 3 unmodified lines
27 20
28Example:21Example:
29 22
30 clk_m_hva: clk-m-hva@fd690868 {23 clk_m_a9: clk-m-a9@92b0000 {
31 #clock-cells = <0>;24 #clock-cells = <0>;
32 compatible = "st,stih416-clkgenf-vcc-hva", "st,clkgen-mux";25 compatible = "st,stih407-clkgen-a9-mux";
33 reg = <0xfd690868 4>;26 reg = <0x92b0000 0x10000>;
34 27
35 clocks = <&clockgen_f 1>, <&clk_m_a1_div0 3>;28 clocks = <&clockgen_a9_pll 0>,
29 <&clockgen_a9_pll 0>,
30 <&clk_s_c0_flexgen 13>,
31 <&clk_m_a9_ext2f_div2>;
36 };32 };
Documentation/devicetree/bindings/clock/st/st,clkgen-pll.txt+10−25
@@ -9,24 +9,10 @@ Base address is located to the parent node. See clock binding[2] · 8 unmodified lines
9Required properties:9Required properties:
10 10
11- compatible : shall be:11- compatible : shall be:
12 "st,clkgena-prediv-c65", "st,clkgena-prediv"12 "st,clkgen-pll0"
13 "st,clkgena-prediv-c32", "st,clkgena-prediv"13 "st,clkgen-pll1"
14 14 "st,stih407-clkgen-plla9"
15 "st,clkgena-plls-c65"15 "st,stih418-clkgen-plla9"
16 "st,plls-c32-a1x-0", "st,clkgen-plls-c32"
17 "st,plls-c32-a1x-1", "st,clkgen-plls-c32"
18 "st,stih415-plls-c32-a9", "st,clkgen-plls-c32"
19 "st,stih415-plls-c32-ddr", "st,clkgen-plls-c32"
20 "st,stih416-plls-c32-a9", "st,clkgen-plls-c32"
21 "st,stih416-plls-c32-ddr", "st,clkgen-plls-c32"
22 "st,stih407-plls-c32-a0", "st,clkgen-plls-c32"
23 "st,stih407-plls-c32-a9", "st,clkgen-plls-c32"
24 "sst,plls-c32-cx_0", "st,clkgen-plls-c32"
25 "sst,plls-c32-cx_1", "st,clkgen-plls-c32"
26 "st,stih418-plls-c28-a9", "st,clkgen-plls-c32"
27
28 "st,stih415-gpu-pll-c32", "st,clkgengpu-pll-c32"
29 "st,stih416-gpu-pll-c32", "st,clkgengpu-pll-c32"
30 16
31- #clock-cells : From common clock binding; shall be set to 1.17- #clock-cells : From common clock binding; shall be set to 1.
32 18
@@ -36,17 +22,16 @@ Required properties: · 3 unmodified lines
36 22
37Example:23Example:
38 24
39 clockgen-a@fee62000 {25 clockgen-a9@92b0000 {
40 reg = <0xfee62000 0xb48>;26 compatible = "st,clkgen-c32";
27 reg = <0x92b0000 0xffff>;
41 28
42 clk_s_a0_pll: clk-s-a0-pll {29 clockgen_a9_pll: clockgen-a9-pll {
43 #clock-cells = <1>;30 #clock-cells = <1>;
44 compatible = "st,clkgena-plls-c65";31 compatible = "st,stih407-clkgen-plla9";
45 32
46 clocks = <&clk_sysin>;33 clocks = <&clk_sysin>;
47 34
48 clock-output-names = "clk-s-a0-pll0-hs",35 clock-output-names = "clockgen-a9-pll-odf";
49 "clk-s-a0-pll0-ls",
50 "clk-s-a0-pll1";
51 };36 };
52 };37 };
Documentation/devicetree/bindings/clock/st/st,clkgen-prediv.txt+0−36
@@ -1,36 +0,0 @@
1Binding for a ST pre-divider clock driver.
2
3This binding uses the common clock binding[1].
4Base address is located to the parent node. See clock binding[2]
5
6[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
7[2] Documentation/devicetree/bindings/clock/st/st,clkgen.txt
8
9Required properties:
10
11- compatible : shall be:
12 "st,clkgena-prediv-c65", "st,clkgena-prediv"
13 "st,clkgena-prediv-c32", "st,clkgena-prediv"
14
15- #clock-cells : From common clock binding; shall be set to 0.
16
17- clocks : From common clock binding
18
19- clock-output-names : From common clock binding.
20
21Example:
22
23 clockgen-a@fd345000 {
24 reg = <0xfd345000 0xb50>;
25
26 clk_m_a2_osc_prediv: clk-m-a2-osc-prediv {
27 #clock-cells = <0>;
28 compatible = "st,clkgena-prediv-c32",
29 "st,clkgena-prediv";
30
31 clocks = <&clk_sysin>;
32
33 clock-output-names = "clk-m-a2-osc-prediv";
34 };
35 };
36
Documentation/devicetree/bindings/clock/st/st,clkgen-vcc.txt+0−61
@@ -1,61 +0,0 @@
1Binding for a type of STMicroelectronics clock crossbar (VCC).
2
3The crossbar can take up to 4 input clocks and control up to 16
4output clocks. Not all inputs or outputs have to be in use in a
5particular instantiation. Each output can be individually enabled,
6select any of the input clocks and apply a divide (by 1,2,4 or 8) to
7that selected clock.
8
9This binding uses the common clock binding[1].
10
11[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
12
13Required properties:
14
15- compatible : shall be:
16 "st,stih416-clkgenc", "st,vcc"
17 "st,stih416-clkgenf", "st,vcc"
18
19- #clock-cells : from common clock binding; shall be set to 1.
20
21- reg : A Base address and length of the register set.
22
23- clocks : from common clock binding
24
25- clock-output-names : From common clock binding. The block has 16
26 clock outputs but not all of them in a specific instance
27 have to be used in the SoC. If a clock name is left as
28 an empty string then no clock will be created for the
29 output associated with that string index. If fewer than
30 16 strings are provided then no clocks will be created
31 for the remaining outputs.
32
33Example:
34
35 clockgen_c_vcc: clockgen-c-vcc@0xfe8308ac {
36 #clock-cells = <1>;
37 compatible = "st,stih416-clkgenc", "st,clkgen-vcc";
38 reg = <0xfe8308ac 12>;
39
40 clocks = <&clk_s_vcc_hd>,
41 <&clockgen_c 1>,
42 <&clk_s_tmds_fromphy>,
43 <&clockgen_c 2>;
44
45 clock-output-names = "clk-s-pix-hdmi",
46 "clk-s-pix-dvo",
47 "clk-s-out-dvo",
48 "clk-s-pix-hd",
49 "clk-s-hddac",
50 "clk-s-denc",
51 "clk-s-sddac",
52 "clk-s-pix-main",
53 "clk-s-pix-aux",
54 "clk-s-stfe-frc-0",
55 "clk-s-ref-mcru",
56 "clk-s-slave-mcru",
57 "clk-s-tmds-hdmi",
58 "clk-s-hdmi-reject-pll",
59 "clk-s-thsens";
60 };
61
Documentation/devicetree/bindings/clock/st/st,clkgen.txt+11−43
@@ -13,14 +13,6 @@ address is common of all subnode. · 12 unmodified lines
13 ...13 ...
14 };14 };
15 15
16 prediv_node {
17 ...
18 };
19
20 divmux_node {
21 ...
22 };
23
24 quadfs_node {16 quadfs_node {
25 ...17 ...
26 };18 };
@@ -29,10 +21,6 @@ address is common of all subnode. · 2 unmodified lines
29 ...21 ...
30 };22 };
31 23
32 vcc_node {
33 ...
34 };
35
36 flexgen_node {24 flexgen_node {
37 ...25 ...
38 };26 };
@@ -43,11 +31,8 @@ This binding uses the common clock binding[1]. · 4 unmodified lines
43Each subnode should use the binding described in [2]..[7]31Each subnode should use the binding described in [2]..[7]
44 32
45[1] Documentation/devicetree/bindings/clock/clock-bindings.txt33[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
46[2] Documentation/devicetree/bindings/clock/st,clkgen-divmux.txt
47[3] Documentation/devicetree/bindings/clock/st,clkgen-mux.txt34[3] Documentation/devicetree/bindings/clock/st,clkgen-mux.txt
48[4] Documentation/devicetree/bindings/clock/st,clkgen-pll.txt35[4] Documentation/devicetree/bindings/clock/st,clkgen-pll.txt
49[5] Documentation/devicetree/bindings/clock/st,clkgen-prediv.txt
50[6] Documentation/devicetree/bindings/clock/st,vcc.txt
51[7] Documentation/devicetree/bindings/clock/st,quadfs.txt36[7] Documentation/devicetree/bindings/clock/st,quadfs.txt
52[8] Documentation/devicetree/bindings/clock/st,flexgen.txt37[8] Documentation/devicetree/bindings/clock/st,flexgen.txt
53 38
@@ -57,44 +42,27 @@ Required properties: · 3 unmodified lines
57 42
58Example:43Example:
59 44
60 clockgen-a@fee62000 {45 clockgen-a@090ff000 {
61 46 compatible = "st,clkgen-c32";
62 reg = <0xfee62000 0xb48>;47 reg = <0x90ff000 0x1000>;
63 48
64 clk_s_a0_pll: clk-s-a0-pll {49 clk_s_a0_pll: clk-s-a0-pll {
65 #clock-cells = <1>;50 #clock-cells = <1>;
66 compatible = "st,clkgena-plls-c65";51 compatible = "st,clkgen-pll0";
67
68 clocks = <&clk-sysin>;
69
70 clock-output-names = "clk-s-a0-pll0-hs",
71 "clk-s-a0-pll0-ls",
72 "clk-s-a0-pll1";
73 };
74
75 clk_s_a0_osc_prediv: clk-s-a0-osc-prediv {
76 #clock-cells = <0>;
77 compatible = "st,clkgena-prediv-c65",
78 "st,clkgena-prediv";
79 52
80 clocks = <&clk_sysin>;53 clocks = <&clk_sysin>;
81 54
82 clock-output-names = "clk-s-a0-osc-prediv";55 clock-output-names = "clk-s-a0-pll-ofd-0";
83 };56 };
84 57
85 clk_s_a0_hs: clk-s-a0-hs {58 clk_s_a0_flexgen: clk-s-a0-flexgen {
59 compatible = "st,flexgen";
60
86 #clock-cells = <1>;61 #clock-cells = <1>;
87 compatible = "st,clkgena-divmux-c65-hs",
88 "st,clkgena-divmux";
89 62
90 clocks = <&clk-s_a0_osc_prediv>,63 clocks = <&clk_s_a0_pll 0>,
91 <&clk-s_a0_pll 0>, /* pll0 hs */64 <&clk_sysin>;
92 <&clk-s_a0_pll 2>; /* pll1 */
93 65
94 clock-output-names = "clk-s-fdma-0",66 clock-output-names = "clk-ic-lmi0";
95 "clk-s-fdma-1",
96 ""; /* clk-s-jit-sense */
97 /* fourth output unused */
98 };67 };
99 };68 };
100
Documentation/devicetree/bindings/clock/st/st,flexgen.txt+4−0
@@ -60,6 +60,10 @@ This binding uses the common clock binding[2]. · 59 unmodified lines
60Required properties:60Required properties:
61- compatible : shall be:61- compatible : shall be:
62 "st,flexgen"62 "st,flexgen"
63 "st,flexgen-audio", "st,flexgen" (enable clock propagation on parent for
64 audio use case)
65 "st,flexgen-video", "st,flexgen" (enable clock propagation on parent
66 and activate synchronous mode)
63 67
64- #clock-cells : from common clock binding; shall be set to 1 (multiple clock68- #clock-cells : from common clock binding; shall be set to 1 (multiple clock
65 outputs).69 outputs).
Documentation/devicetree/bindings/clock/st/st,quadfs.txt+14−17
@@ -11,12 +11,8 @@ This binding uses the common clock binding[1]. · 10 unmodified lines
11 11
12Required properties:12Required properties:
13- compatible : shall be:13- compatible : shall be:
14 "st,stih416-quadfs216", "st,quadfs"14 "st,quadfs"
15 "st,stih416-quadfs432", "st,quadfs"15 "st,quadfs-pll"
16 "st,stih416-quadfs660-E", "st,quadfs"
17 "st,stih416-quadfs660-F", "st,quadfs"
18 "st,stih407-quadfs660-C", "st,quadfs"
19 "st,stih407-quadfs660-D", "st,quadfs"
20 16
21 17
22- #clock-cells : from common clock binding; shall be set to 1.18- #clock-cells : from common clock binding; shall be set to 1.
@@ -35,14 +31,15 @@ Required properties: · 12 unmodified lines
35 31
36Example:32Example:
37 33
38 clockgen_e: clockgen-e@fd3208bc {34 clk_s_c0_quadfs: clk-s-c0-quadfs@9103000 {
39 #clock-cells = <1>;35 #clock-cells = <1>;
40 compatible = "st,stih416-quadfs660-E", "st,quadfs";36 compatible = "st,quadfs-pll";
41 reg = <0xfd3208bc 0xB0>;37 reg = <0x9103000 0x1000>;
42 38
43 clocks = <&clk_sysin>;39 clocks = <&clk_sysin>;
44 clock-output-names = "clk-m-pix-mdtp-0",40
45 "clk-m-pix-mdtp-1",41 clock-output-names = "clk-s-c0-fs0-ch0",
46 "clk-m-pix-mdtp-2",42 "clk-s-c0-fs0-ch1",
47 "clk-m-mpelpc";43 "clk-s-c0-fs0-ch2",
48 };44 "clk-s-c0-fs0-ch3";
45 };
Documentation/devicetree/bindings/clock/sunxi-ccu.txt+4−1
@@ -2,7 +2,10 @@ Allwinner Clock Control Unit Binding · 1 unmodified line
2------------------------------------2------------------------------------
3 3
4Required properties :4Required properties :
5- compatible: must contain one of the following compatible:5- compatible: must contain one of the following compatibles:
6 - "allwinner,sun6i-a31-ccu"
7 - "allwinner,sun8i-a23-ccu"
8 - "allwinner,sun8i-a33-ccu"
6 - "allwinner,sun8i-h3-ccu"9 - "allwinner,sun8i-h3-ccu"
7 10
8- reg: Must contain the registers base address and length11- reg: Must contain the registers base address and length
Documentation/devicetree/bindings/clock/uniphier-clock.txt+134−0
@@ -0,0 +1,134 @@
1UniPhier clock controller
2
3
4System clock
5------------
6
7Required properties:
8- compatible: should be one of the following:
9 "socionext,uniphier-sld3-clock" - for sLD3 SoC.
10 "socionext,uniphier-ld4-clock" - for LD4 SoC.
11 "socionext,uniphier-pro4-clock" - for Pro4 SoC.
12 "socionext,uniphier-sld8-clock" - for sLD8 SoC.
13 "socionext,uniphier-pro5-clock" - for Pro5 SoC.
14 "socionext,uniphier-pxs2-clock" - for PXs2/LD6b SoC.
15 "socionext,uniphier-ld11-clock" - for LD11 SoC.
16 "socionext,uniphier-ld20-clock" - for LD20 SoC.
17- #clock-cells: should be 1.
18
19Example:
20
21 sysctrl@61840000 {
22 compatible = "socionext,uniphier-sysctrl",
23 "simple-mfd", "syscon";
24 reg = <0x61840000 0x4000>;
25
26 clock {
27 compatible = "socionext,uniphier-ld20-clock";
28 #clock-cells = <1>;
29 };
30
31 other nodes ...
32 };
33
34Provided clocks:
35
36 8: ST DMAC
3712: GIO (Giga bit stream I/O)
3814: USB3 ch0 host
3915: USB3 ch1 host
4016: USB3 ch0 PHY0
4117: USB3 ch0 PHY1
4220: USB3 ch1 PHY0
4321: USB3 ch1 PHY1
44
45
46Media I/O (MIO) clock
47---------------------
48
49Required properties:
50- compatible: should be one of the following:
51 "socionext,uniphier-sld3-mio-clock" - for sLD3 SoC.
52 "socionext,uniphier-ld4-mio-clock" - for LD4 SoC.
53 "socionext,uniphier-pro4-mio-clock" - for Pro4 SoC.
54 "socionext,uniphier-sld8-mio-clock" - for sLD8 SoC.
55 "socionext,uniphier-pro5-mio-clock" - for Pro5 SoC.
56 "socionext,uniphier-pxs2-mio-clock" - for PXs2/LD6b SoC.
57 "socionext,uniphier-ld11-mio-clock" - for LD11 SoC.
58 "socionext,uniphier-ld20-mio-clock" - for LD20 SoC.
59- #clock-cells: should be 1.
60
61Example:
62
63 mioctrl@59810000 {
64 compatible = "socionext,uniphier-mioctrl",
65 "simple-mfd", "syscon";
66 reg = <0x59810000 0x800>;
67
68 clock {
69 compatible = "socionext,uniphier-ld20-mio-clock";
70 #clock-cells = <1>;
71 };
72
73 other nodes ...
74 };
75
76Provided clocks:
77
78 0: SD ch0 host
79 1: eMMC host
80 2: SD ch1 host
81 7: MIO DMAC
82 8: USB2 ch0 host
83 9: USB2 ch1 host
8410: USB2 ch2 host
8511: USB2 ch3 host
8612: USB2 ch0 PHY
8713: USB2 ch1 PHY
8814: USB2 ch2 PHY
8915: USB2 ch3 PHY
90
91
92Peripheral clock
93----------------
94
95Required properties:
96- compatible: should be one of the following:
97 "socionext,uniphier-sld3-peri-clock" - for sLD3 SoC.
98 "socionext,uniphier-ld4-peri-clock" - for LD4 SoC.
99 "socionext,uniphier-pro4-peri-clock" - for Pro4 SoC.
100 "socionext,uniphier-sld8-peri-clock" - for sLD8 SoC.
101 "socionext,uniphier-pro5-peri-clock" - for Pro5 SoC.
102 "socionext,uniphier-pxs2-peri-clock" - for PXs2/LD6b SoC.
103 "socionext,uniphier-ld11-peri-clock" - for LD11 SoC.
104 "socionext,uniphier-ld20-peri-clock" - for LD20 SoC.
105- #clock-cells: should be 1.
106
107Example:
108
109 perictrl@59820000 {
110 compatible = "socionext,uniphier-perictrl",
111 "simple-mfd", "syscon";
112 reg = <0x59820000 0x200>;
113
114 clock {
115 compatible = "socionext,uniphier-ld20-peri-clock";
116 #clock-cells = <1>;
117 };
118
119 other nodes ...
120 };
121
122Provided clocks:
123
124 0: UART ch0
125 1: UART ch1
126 2: UART ch2
127 3: UART ch3
128 4: I2C ch0
129 5: I2C ch1
130 6: I2C ch2
131 7: I2C ch3
132 8: I2C ch4
133 9: I2C ch5
13410: I2C ch6
Documentation/devicetree/bindings/clock/xgene.txt+18−0
@@ -8,6 +8,7 @@ Required properties: · 7 unmodified lines
8- compatible : shall be one of the following:8- compatible : shall be one of the following:
9 "apm,xgene-socpll-clock" - for a X-Gene SoC PLL clock9 "apm,xgene-socpll-clock" - for a X-Gene SoC PLL clock
10 "apm,xgene-pcppll-clock" - for a X-Gene PCP PLL clock10 "apm,xgene-pcppll-clock" - for a X-Gene PCP PLL clock
11 "apm,xgene-pmd-clock" - for a X-Gene PMD clock
11 "apm,xgene-device-clock" - for a X-Gene device clock12 "apm,xgene-device-clock" - for a X-Gene device clock
12 "apm,xgene-socpll-v2-clock" - for a X-Gene SoC PLL v2 clock13 "apm,xgene-socpll-v2-clock" - for a X-Gene SoC PLL v2 clock
13 "apm,xgene-pcppll-v2-clock" - for a X-Gene PCP PLL v2 clock14 "apm,xgene-pcppll-v2-clock" - for a X-Gene PCP PLL v2 clock
@@ -22,6 +23,15 @@ Required properties for SoC or PCP PLL clocks: · 8 unmodified lines
22Optional properties for PLL clocks:23Optional properties for PLL clocks:
23- clock-names : shall be the name of the PLL. If missing, use the device name.24- clock-names : shall be the name of the PLL. If missing, use the device name.
24 25
26Required properties for PMD clocks:
27- reg : shall be the physical register address for the pmd clock.
28- clocks : shall be the input parent clock phandle for the clock.
29- #clock-cells : shall be set to 1.
30- clock-output-names : shall be the name of the clock referenced by derive
31 clock.
32Optional properties for PLL clocks:
33- clock-names : shall be the name of the clock. If missing, use the device name.
34
25Required properties for device clocks:35Required properties for device clocks:
26- reg : shall be a list of address and length pairs describing the CSR36- reg : shall be a list of address and length pairs describing the CSR
27 reset and/or the divider. Either may be omitted, but at least37 reset and/or the divider. Either may be omitted, but at least
@@ -59,6 +69,14 @@ For example: · 31 unmodified lines
59 type = <0>;69 type = <0>;
60 };70 };
61 71
72 pmd0clk: pmd0clk@7e200200 {
73 compatible = "apm,xgene-pmd-clock";
74 #clock-cells = <1>;
75 clocks = <&pmdpll 0>;
76 reg = <0x0 0x7e200200 0x0 0x10>;
77 clock-output-names = "pmd0clk";
78 };
79
62 socpll: socpll@17000120 {80 socpll: socpll@17000120 {
63 compatible = "apm,xgene-socpll-clock";81 compatible = "apm,xgene-socpll-clock";
64 #clock-cells = <1>;82 #clock-cells = <1>;
Documentation/devicetree/bindings/clock/zx296718-clk.txt+35−0
@@ -0,0 +1,35 @@
1Device Tree Clock bindings for ZTE zx296718
2
3This binding uses the common clock binding[1].
4
5[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
6
7Required properties:
8- compatible : shall be one of the following:
9 "zte,zx296718-topcrm":
10 zx296718 top clock selection, divider and gating
11
12 "zte,zx296718-lsp0crm" and
13 "zte,zx296718-lsp1crm":
14 zx296718 device level clock selection and gating
15
16- reg: Address and length of the register set
17
18The clock consumer should specify the desired clock by having the clock
19ID in its "clocks" phandle cell. See include/dt-bindings/clock/zx296718-clock.h
20for the full list of zx296718 clock IDs.
21
22
23topclk: topcrm@1461000 {
24 compatible = "zte,zx296718-topcrm-clk";
25 reg = <0x01461000 0x1000>;
26 #clock-cells = <1>;
27};
28
29usbphy0:usb-phy0 {
30 compatible = "zte,zx296718-usb-phy";
31 #phy-cells = <0>;
32 clocks = <&topclk USB20_PHY_CLK>;
33 clock-names = "phyclk";
34 status = "okay";
35};
Documentation/devicetree/bindings/devfreq/event/rockchip-dfi.txt+19−0
@@ -0,0 +1,19 @@
1
2* Rockchip rk3399 DFI device
3
4Required properties:
5- compatible: Must be "rockchip,rk3399-dfi".
6- reg: physical base address of each DFI and length of memory mapped region
7- rockchip,pmu: phandle to the syscon managing the "pmu general register files"
8- clocks: phandles for clock specified in "clock-names" property
9- clock-names : the name of clock used by the DFI, must be "pclk_ddr_mon";
10
11Example:
12 dfi: dfi@0xff630000 {
13 compatible = "rockchip,rk3399-dfi";
14 reg = <0x00 0xff630000 0x00 0x4000>;
15 rockchip,pmu = <&pmugrf>;
16 clocks = <&cru PCLK_DDR_MON>;
17 clock-names = "pclk_ddr_mon";
18 status = "disabled";
19 };
Documentation/devicetree/bindings/devfreq/rk3399_dmc.txt+209−0
@@ -0,0 +1,209 @@
1* Rockchip rk3399 DMC(Dynamic Memory Controller) device
2
3Required properties:
4- compatible: Must be "rockchip,rk3399-dmc".
5- devfreq-events: Node to get DDR loading, Refer to
6 Documentation/devicetree/bindings/devfreq/
7 rockchip-dfi.txt
8- interrupts: The interrupt number to the CPU. The interrupt
9 specifier format depends on the interrupt controller.
10 It should be DCF interrupts, when DDR dvfs finish,
11 it will happen.
12- clocks: Phandles for clock specified in "clock-names" property
13- clock-names : The name of clock used by the DFI, must be
14 "pclk_ddr_mon";
15- operating-points-v2: Refer to Documentation/devicetree/bindings/power/opp.txt
16 for details.
17- center-supply: DMC supply node.
18- status: Marks the node enabled/disabled.
19
20Following properties are ddr timing:
21
22- rockchip,dram_speed_bin : Value reference include/dt-bindings/clock/ddr.h,
23 it select ddr3 cl-trp-trcd type, default value
24 "DDR3_DEFAULT".it must selected according to
25 "Speed Bin" in ddr3 datasheet, DO NOT use
26 smaller "Speed Bin" than ddr3 exactly is.
27
28- rockchip,pd_idle : Config the PD_IDLE value, defined the power-down
29 idle period, memories are places into power-down
30 mode if bus is idle for PD_IDLE DFI clocks.
31
32- rockchip,sr_idle : Configure the SR_IDLE value, defined the
33 selfrefresh idle period, memories are places
34 into self-refresh mode if bus is idle for
35 SR_IDLE*1024 DFI clocks (DFI clocks freq is
36 half of dram's clocks), defaule value is "0".
37
38- rockchip,sr_mc_gate_idle : Defined the self-refresh with memory and
39 controller clock gating idle period, memories
40 are places into self-refresh mode and memory
41 controller clock arg gating if bus is idle for
42 sr_mc_gate_idle*1024 DFI clocks.
43
44- rockchip,srpd_lite_idle : Defined the self-refresh power down idle
45 period, memories are places into self-refresh
46 power down mode if bus is idle for
47 srpd_lite_idle*1024 DFI clocks. This parameter
48 is for LPDDR4 only.
49
50- rockchip,standby_idle : Defined the standby idle period, memories are
51 places into self-refresh than controller, pi,
52 phy and dram clock will gating if bus is idle
53 for standby_idle * DFI clocks.
54
55- rockchip,dram_dll_disb_freq : It's defined the DDR3 dll bypass frequency in
56 MHz, when ddr freq less than DRAM_DLL_DISB_FREQ,
57 ddr3 dll will bypssed note: if dll was bypassed,
58 the odt also stop working.
59
60- rockchip,phy_dll_disb_freq : Defined the PHY dll bypass frequency in
61 MHz (Mega Hz), when ddr freq less than
62 DRAM_DLL_DISB_FREQ, phy dll will bypssed.
63 note: phy dll and phy odt are independent.
64
65- rockchip,ddr3_odt_disb_freq : When dram type is DDR3, this parameter defined
66 the odt disable frequency in MHz (Mega Hz),
67 when ddr frequency less then ddr3_odt_disb_freq,
68 the odt on dram side and controller side are
69 both disabled.
70
71- rockchip,ddr3_drv : When dram type is DDR3, this parameter define
72 the dram side driver stength in ohm, default
73 value is DDR3_DS_40ohm.
74
75- rockchip,ddr3_odt : When dram type is DDR3, this parameter define
76 the dram side ODT stength in ohm, default value
77 is DDR3_ODT_120ohm.
78
79- rockchip,phy_ddr3_ca_drv : When dram type is DDR3, this parameter define
80 the phy side CA line(incluing command line,
81 address line and clock line) driver strength.
82 Default value is PHY_DRV_ODT_40.
83
84- rockchip,phy_ddr3_dq_drv : When dram type is DDR3, this parameter define
85 the phy side DQ line(incluing DQS/DQ/DM line)
86 driver strength. default value is PHY_DRV_ODT_40.
87
88- rockchip,phy_ddr3_odt : When dram type is DDR3, this parameter define the
89 phy side odt strength, default value is
90 PHY_DRV_ODT_240.
91
92- rockchip,lpddr3_odt_disb_freq : When dram type is LPDDR3, this parameter defined
93 then odt disable frequency in MHz (Mega Hz),
94 when ddr frequency less then ddr3_odt_disb_freq,
95 the odt on dram side and controller side are
96 both disabled.
97
98- rockchip,lpddr3_drv : When dram type is LPDDR3, this parameter define
99 the dram side driver stength in ohm, default
100 value is LP3_DS_34ohm.
101
102- rockchip,lpddr3_odt : When dram type is LPDDR3, this parameter define
103 the dram side ODT stength in ohm, default value
104 is LP3_ODT_240ohm.
105
106- rockchip,phy_lpddr3_ca_drv : When dram type is LPDDR3, this parameter define
107 the phy side CA line(incluing command line,
108 address line and clock line) driver strength.
109 default value is PHY_DRV_ODT_40.
110
111- rockchip,phy_lpddr3_dq_drv : When dram type is LPDDR3, this parameter define
112 the phy side DQ line(incluing DQS/DQ/DM line)
113 driver strength. default value is
114 PHY_DRV_ODT_40.
115
116- rockchip,phy_lpddr3_odt : When dram type is LPDDR3, this parameter define
117 the phy side odt strength, default value is
118 PHY_DRV_ODT_240.
119
120- rockchip,lpddr4_odt_disb_freq : When dram type is LPDDR4, this parameter
121 defined the odt disable frequency in
122 MHz (Mega Hz), when ddr frequency less then
123 ddr3_odt_disb_freq, the odt on dram side and
124 controller side are both disabled.
125
126- rockchip,lpddr4_drv : When dram type is LPDDR4, this parameter define
127 the dram side driver stength in ohm, default
128 value is LP4_PDDS_60ohm.
129
130- rockchip,lpddr4_dq_odt : When dram type is LPDDR4, this parameter define
131 the dram side ODT on dqs/dq line stength in ohm,
132 default value is LP4_DQ_ODT_40ohm.
133
134- rockchip,lpddr4_ca_odt : When dram type is LPDDR4, this parameter define
135 the dram side ODT on ca line stength in ohm,
136 default value is LP4_CA_ODT_40ohm.
137
138- rockchip,phy_lpddr4_ca_drv : When dram type is LPDDR4, this parameter define
139 the phy side CA line(incluing command address
140 line) driver strength. default value is
141 PHY_DRV_ODT_40.
142
143- rockchip,phy_lpddr4_ck_cs_drv : When dram type is LPDDR4, this parameter define
144 the phy side clock line and cs line driver
145 strength. default value is PHY_DRV_ODT_80.
146
147- rockchip,phy_lpddr4_dq_drv : When dram type is LPDDR4, this parameter define
148 the phy side DQ line(incluing DQS/DQ/DM line)
149 driver strength. default value is PHY_DRV_ODT_80.
150
151- rockchip,phy_lpddr4_odt : When dram type is LPDDR4, this parameter define
152 the phy side odt strength, default value is
153 PHY_DRV_ODT_60.
154
155Example:
156 dmc_opp_table: dmc_opp_table {
157 compatible = "operating-points-v2";
158
159 opp00 {
160 opp-hz = /bits/ 64 <300000000>;
161 opp-microvolt = <900000>;
162 };
163 opp01 {
164 opp-hz = /bits/ 64 <666000000>;
165 opp-microvolt = <900000>;
166 };
167 };
168
169 dmc: dmc {
170 compatible = "rockchip,rk3399-dmc";
171 devfreq-events = <&dfi>;
172 interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
173 clocks = <&cru SCLK_DDRCLK>;
174 clock-names = "dmc_clk";
175 operating-points-v2 = <&dmc_opp_table>;
176 center-supply = <&ppvar_centerlogic>;
177 upthreshold = <15>;
178 downdifferential = <10>;
179 rockchip,ddr3_speed_bin = <21>;
180 rockchip,pd_idle = <0x40>;
181 rockchip,sr_idle = <0x2>;
182 rockchip,sr_mc_gate_idle = <0x3>;
183 rockchip,srpd_lite_idle = <0x4>;
184 rockchip,standby_idle = <0x2000>;
185 rockchip,dram_dll_dis_freq = <300>;
186 rockchip,phy_dll_dis_freq = <125>;
187 rockchip,auto_pd_dis_freq = <666>;
188 rockchip,ddr3_odt_dis_freq = <333>;
189 rockchip,ddr3_drv = <DDR3_DS_40ohm>;
190 rockchip,ddr3_odt = <DDR3_ODT_120ohm>;
191 rockchip,phy_ddr3_ca_drv = <PHY_DRV_ODT_40>;
192 rockchip,phy_ddr3_dq_drv = <PHY_DRV_ODT_40>;
193 rockchip,phy_ddr3_odt = <PHY_DRV_ODT_240>;
194 rockchip,lpddr3_odt_dis_freq = <333>;
195 rockchip,lpddr3_drv = <LP3_DS_34ohm>;
196 rockchip,lpddr3_odt = <LP3_ODT_240ohm>;
197 rockchip,phy_lpddr3_ca_drv = <PHY_DRV_ODT_40>;
198 rockchip,phy_lpddr3_dq_drv = <PHY_DRV_ODT_40>;
199 rockchip,phy_lpddr3_odt = <PHY_DRV_ODT_240>;
200 rockchip,lpddr4_odt_dis_freq = <333>;
201 rockchip,lpddr4_drv = <LP4_PDDS_60ohm>;
202 rockchip,lpddr4_dq_odt = <LP4_DQ_ODT_40ohm>;
203 rockchip,lpddr4_ca_odt = <LP4_CA_ODT_40ohm>;
204 rockchip,phy_lpddr4_ca_drv = <PHY_DRV_ODT_40>;
205 rockchip,phy_lpddr4_ck_cs_drv = <PHY_DRV_ODT_80>;
206 rockchip,phy_lpddr4_dq_drv = <PHY_DRV_ODT_80>;
207 rockchip,phy_lpddr4_odt = <PHY_DRV_ODT_60>;
208 status = "disabled";
209 };
Documentation/devicetree/bindings/display/bridge/dumb-vga-dac.txt+48−0
@@ -0,0 +1,48 @@
1Dumb RGB to VGA DAC bridge
2---------------------------
3
4This binding is aimed for dumb RGB to VGA DAC based bridges that do not require
5any configuration.
6
7Required properties:
8
9- compatible: Must be "dumb-vga-dac"
10
11Required nodes:
12
13This device has two video ports. Their connections are modelled using the OF
14graph bindings specified in Documentation/devicetree/bindings/graph.txt.
15
16- Video port 0 for RGB input
17- Video port 1 for VGA output
18
19
20Example
21-------
22
23bridge {
24 compatible = "dumb-vga-dac";
25 #address-cells = <1>;
26 #size-cells = <0>;
27
28 ports {
29 #address-cells = <1>;
30 #size-cells = <0>;
31
32 port@0 {
33 reg = <0>;
34
35 vga_bridge_in: endpoint {
36 remote-endpoint = <&tcon0_out_vga>;
37 };
38 };
39
40 port@1 {
41 reg = <1>;
42
43 vga_bridge_out: endpoint {
44 remote-endpoint = <&vga_con_in>;
45 };
46 };
47 };
48};
Documentation/devicetree/bindings/display/bridge/tda998x.txt+18−0
@@ -21,8 +21,19 @@ Optional properties: · 20 unmodified lines
21 - video-ports: 24 bits value which defines how the video controller21 - video-ports: 24 bits value which defines how the video controller
22 output is wired to the TDA998x input - default: <0x230145>22 output is wired to the TDA998x input - default: <0x230145>
23 23
24 - audio-ports: array of 8-bit values, 2 values per one DAI[1].
25 The first value defines the DAI type: TDA998x_SPDIF or TDA998x_I2S[2].
26 The second value defines the tda998x AP_ENA reg content when the DAI
27 in question is used. The implementation allows one or two DAIs. If two
28 DAIs are defined, they must be of different type.
29
30[1] Documentation/sound/alsa/soc/DAI.txt
31[2] include/dt-bindings/display/tda998x.h
32
24Example:33Example:
25 34
35#include <dt-bindings/display/tda998x.h>
36
26 tda998x: hdmi-encoder {37 tda998x: hdmi-encoder {
27 compatible = "nxp,tda998x";38 compatible = "nxp,tda998x";
28 reg = <0x70>;39 reg = <0x70>;
@@ -30,4 +41,11 @@ Example: · 1 unmodified line
30 interrupts = <27 2>; /* falling edge */41 interrupts = <27 2>; /* falling edge */
31 pinctrl-0 = <&pmx_camera>;42 pinctrl-0 = <&pmx_camera>;
32 pinctrl-names = "default";43 pinctrl-names = "default";
44 video-ports = <0x230145>;
45
46 #sound-dai-cells = <2>;
47 /* DAI-format AP_ENA reg value */
48 audio-ports = < TDA998x_SPDIF 0x04
49 TDA998x_I2S 0x03>;
50
33 };51 };
Documentation/devicetree/bindings/display/exynos/exynos_hdmi.txt+2−2
@@ -9,7 +9,7 @@ Required properties: · 8 unmodified lines
9- reg: physical base address of the hdmi and length of memory mapped9- reg: physical base address of the hdmi and length of memory mapped
10 region.10 region.
11- interrupts: interrupt number to the cpu.11- interrupts: interrupt number to the cpu.
12- hpd-gpio: following information about the hotplug gpio pin.12- hpd-gpios: following information about the hotplug gpio pin.
13 a) phandle of the gpio controller node.13 a) phandle of the gpio controller node.
14 b) pin number within the gpio controller.14 b) pin number within the gpio controller.
15 c) optional flags and pull up/down.15 c) optional flags and pull up/down.
@@ -56,7 +56,7 @@ Example: · 40 unmodified lines
56 compatible = "samsung,exynos4212-hdmi";56 compatible = "samsung,exynos4212-hdmi";
57 reg = <0x14530000 0x100000>;57 reg = <0x14530000 0x100000>;
58 interrupts = <0 95 0>;58 interrupts = <0 95 0>;
59 hpd-gpio = <&gpx3 7 1>;59 hpd-gpios = <&gpx3 7 1>;
60 ddc = <&hdmi_ddc_node>;60 ddc = <&hdmi_ddc_node>;
61 phy = <&hdmi_phy_node>;61 phy = <&hdmi_phy_node>;
62 samsung,syscon-phandle = <&pmu_system_controller>;62 samsung,syscon-phandle = <&pmu_system_controller>;
Documentation/devicetree/bindings/display/msm/hdmi.txt+4−5
@@ -14,17 +14,16 @@ Required properties: · 13 unmodified lines
14- power-domains: Should be <&mmcc MDSS_GDSC>.14- power-domains: Should be <&mmcc MDSS_GDSC>.
15- clocks: device clocks15- clocks: device clocks
16 See ../clocks/clock-bindings.txt for details.16 See ../clocks/clock-bindings.txt for details.
17- qcom,hdmi-tx-ddc-clk-gpio: ddc clk pin
18- qcom,hdmi-tx-ddc-data-gpio: ddc data pin
19- qcom,hdmi-tx-hpd-gpio: hpd pin
20- core-vdda-supply: phandle to supply regulator17- core-vdda-supply: phandle to supply regulator
21- hdmi-mux-supply: phandle to mux regulator18- hdmi-mux-supply: phandle to mux regulator
22- phys: the phandle for the HDMI PHY device19- phys: the phandle for the HDMI PHY device
23- phy-names: the name of the corresponding PHY device20- phy-names: the name of the corresponding PHY device
24 21
25Optional properties:22Optional properties:
26- qcom,hdmi-tx-mux-en-gpio: hdmi mux enable pin23- hpd-gpios: hpd pin
27- qcom,hdmi-tx-mux-sel-gpio: hdmi mux select pin24- qcom,hdmi-tx-mux-en-gpios: hdmi mux enable pin
25- qcom,hdmi-tx-mux-sel-gpios: hdmi mux select pin
26- qcom,hdmi-tx-mux-lpm-gpios: hdmi mux lpm pin
28- power-domains: reference to the power domain(s), if available.27- power-domains: reference to the power domain(s), if available.
29- pinctrl-names: the pin control state names; should contain "default"28- pinctrl-names: the pin control state names; should contain "default"
30- pinctrl-0: the default pinctrl state (active)29- pinctrl-0: the default pinctrl state (active)
Documentation/devicetree/bindings/display/panel/innolux,g101ice-l01.txt+7−0
@@ -0,0 +1,7 @@
1Innolux Corporation 10.1" G101ICE-L01 WXGA (1280x800) LVDS panel
2
3Required properties:
4- compatible: should be "innolux,g101ice-l01"
5
6This binding is compatible with the simple-panel binding, which is specified
7in simple-panel.txt in this directory.
Documentation/devicetree/bindings/display/panel/jdi,lt070me05000.txt+31−0
@@ -0,0 +1,31 @@
1JDI model LT070ME05000 1200x1920 7" DSI Panel
2
3Required properties:
4- compatible: should be "jdi,lt070me05000"
5- vddp-supply: phandle of the regulator that provides the supply voltage
6 Power IC supply (3-5V)
7- iovcc-supply: phandle of the regulator that provides the supply voltage
8 IOVCC , power supply for LCM (1.8V)
9- enable-gpios: phandle of gpio for enable line
10 LED_EN, LED backlight enable, High active
11- reset-gpios: phandle of gpio for reset line
12 This should be 8mA, gpio can be configured using mux, pinctrl, pinctrl-names
13 XRES, Reset, Low active
14- dcdc-en-gpios: phandle of the gpio for power ic line
15 Power IC supply enable, High active
16
17Example:
18
19 dsi0: qcom,mdss_dsi@4700000 {
20 panel@0 {
21 compatible = "jdi,lt070me05000";
22 reg = <0>;
23
24 vddp-supply = <&pm8921_l17>;
25 iovcc-supply = <&pm8921_lvs7>;
26
27 enable-gpios = <&pm8921_gpio 36 GPIO_ACTIVE_HIGH>;
28 reset-gpios = <&tlmm_pinmux 54 GPIO_ACTIVE_LOW>;
29 dcdc-en-gpios = <&pm8921_gpio 23 GPIO_ACTIVE_HIGH>;
30 };
31 };
Documentation/devicetree/bindings/display/panel/tpo,tpg110.txt+47−0
@@ -0,0 +1,47 @@
1TPO TPG110 Panel
2================
3
4This binding builds on the DPI bindings, adding a few properties
5as a superset of a DPI. See panel-dpi.txt for the required DPI
6bindings.
7
8Required properties:
9- compatible : "tpo,tpg110"
10- grestb-gpios : panel reset GPIO
11- scen-gpios : serial control enable GPIO
12- scl-gpios : serial control clock line GPIO
13- sda-gpios : serial control data line GPIO
14
15Required nodes:
16- Video port for DPI input, see panel-dpi.txt
17- Panel timing for DPI setup, see panel-dpi.txt
18
19Example
20-------
21
22panel {
23 compatible = "tpo,tpg110", "panel-dpi";
24 grestb-gpios = <&stmpe_gpio44 5 GPIO_ACTIVE_LOW>;
25 scen-gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
26 scl-gpios = <&gpio0 5 GPIO_ACTIVE_HIGH>;
27 sda-gpios = <&gpio0 4 GPIO_ACTIVE_HIGH>;
28 backlight = <&bl>;
29
30 port {
31 nomadik_clcd_panel: endpoint {
32 remote-endpoint = <&nomadik_clcd_pads>;
33 };
34 };
35
36 panel-timing {
37 clock-frequency = <33200000>;
38 hactive = <800>;
39 hback-porch = <216>;
40 hfront-porch = <40>;
41 hsync-len = <1>;
42 vactive = <480>;
43 vback-porch = <35>;
44 vfront-porch = <10>;
45 vsync-len = <1>;
46 };
47};
Documentation/devicetree/bindings/display/rockchip/rockchip-vop.txt+3−1
@@ -6,8 +6,10 @@ buffer to an external LCD interface. · 5 unmodified lines
6 6
7Required properties:7Required properties:
8- compatible: value should be one of the following8- compatible: value should be one of the following
9 "rockchip,rk3288-vop";
10 "rockchip,rk3036-vop";9 "rockchip,rk3036-vop";
10 "rockchip,rk3288-vop";
11 "rockchip,rk3399-vop-big";
12 "rockchip,rk3399-vop-lit";
11 13
12- interrupts: should contain a list of all VOP IP block interrupts in the14- interrupts: should contain a list of all VOP IP block interrupts in the
13 order: VSYNC, LCD_SYSTEM. The interrupt specifier15 order: VSYNC, LCD_SYSTEM. The interrupt specifier
Documentation/devicetree/bindings/display/sunxi/sun4i-drm.txt+41−2
@@ -26,13 +26,14 @@ TCON · 25 unmodified lines
26The TCON acts as a timing controller for RGB, LVDS and TV interfaces.26The TCON acts as a timing controller for RGB, LVDS and TV interfaces.
27 27
28Required properties:28Required properties:
29 - compatible: value should be "allwinner,sun5i-a13-tcon".29 - compatible: value must be either:
30 * allwinner,sun5i-a13-tcon
31 * allwinner,sun8i-a33-tcon
30 - reg: base address and size of memory-mapped region32 - reg: base address and size of memory-mapped region
31 - interrupts: interrupt associated to this IP33 - interrupts: interrupt associated to this IP
32 - clocks: phandles to the clocks feeding the TCON. Three are needed:34 - clocks: phandles to the clocks feeding the TCON. Three are needed:
33 - 'ahb': the interface clocks35 - 'ahb': the interface clocks
34 - 'tcon-ch0': The clock driving the TCON channel 036 - 'tcon-ch0': The clock driving the TCON channel 0
35 - 'tcon-ch1': The clock driving the TCON channel 1
36 - resets: phandles to the reset controllers driving the encoder37 - resets: phandles to the reset controllers driving the encoder
37 - "lcd": the reset line for the TCON channel 038 - "lcd": the reset line for the TCON channel 0
38 39
@@ -49,6 +50,33 @@ Required properties: · 10 unmodified lines
49 second the block connected to the TCON channel 1 (usually the TV50 second the block connected to the TCON channel 1 (usually the TV
50 encoder)51 encoder)
51 52
53On the A13, there is one more clock required:
54 - 'tcon-ch1': The clock driving the TCON channel 1
55
56DRC
57---
58
59The DRC (Dynamic Range Controller), found in the latest Allwinner SoCs
60(A31, A23, A33), allows to dynamically adjust pixel
61brightness/contrast based on histogram measurements for LCD content
62adaptive backlight control.
63
64
65Required properties:
66 - compatible: value must be one of:
67 * allwinner,sun8i-a33-drc
68 - reg: base address and size of the memory-mapped region.
69 - interrupts: interrupt associated to this IP
70 - clocks: phandles to the clocks feeding the DRC
71 * ahb: the DRC interface clock
72 * mod: the DRC module clock
73 * ram: the DRC DRAM clock
74 - clock-names: the clock names mentioned above
75 - resets: phandles to the reset line driving the DRC
76
77- ports: A ports node with endpoint definitions as defined in
78 Documentation/devicetree/bindings/media/video-interfaces.txt. The
79 first port should be the input endpoints, the second one the outputs
52 80
53Display Engine Backend81Display Engine Backend
54----------------------82----------------------
@@ -59,6 +87,7 @@ system. · 4 unmodified lines
59Required properties:87Required properties:
60 - compatible: value must be one of:88 - compatible: value must be one of:
61 * allwinner,sun5i-a13-display-backend89 * allwinner,sun5i-a13-display-backend
90 * allwinner,sun8i-a33-display-backend
62 - reg: base address and size of the memory-mapped region.91 - reg: base address and size of the memory-mapped region.
63 - clocks: phandles to the clocks feeding the frontend and backend92 - clocks: phandles to the clocks feeding the frontend and backend
64 * ahb: the backend interface clock93 * ahb: the backend interface clock
@@ -71,6 +100,14 @@ Required properties: · 6 unmodified lines
71 Documentation/devicetree/bindings/media/video-interfaces.txt. The100 Documentation/devicetree/bindings/media/video-interfaces.txt. The
72 first port should be the input endpoints, the second one the output101 first port should be the input endpoints, the second one the output
73 102
103On the A33, some additional properties are required:
104 - reg needs to have an additional region corresponding to the SAT
105 - reg-names need to be set, with "be" and "sat"
106 - clocks and clock-names need to have a phandle to the SAT bus
107 clocks, whose name will be "sat"
108 - resets and reset-names need to have a phandle to the SAT bus
109 resets, whose name will be "sat"
110
74Display Engine Frontend111Display Engine Frontend
75-----------------------112-----------------------
76 113
@@ -80,6 +117,7 @@ deinterlacing and color space conversion. · 3 unmodified lines
80Required properties:117Required properties:
81 - compatible: value must be one of:118 - compatible: value must be one of:
82 * allwinner,sun5i-a13-display-frontend119 * allwinner,sun5i-a13-display-frontend
120 * allwinner,sun8i-a33-display-frontend
83 - reg: base address and size of the memory-mapped region.121 - reg: base address and size of the memory-mapped region.
84 - interrupts: interrupt associated to this IP122 - interrupts: interrupt associated to this IP
85 - clocks: phandles to the clocks feeding the frontend and backend123 - clocks: phandles to the clocks feeding the frontend and backend
@@ -104,6 +142,7 @@ extra node. · 18 unmodified lines
104Required properties:142Required properties:
105 - compatible: value must be one of:143 - compatible: value must be one of:
106 * allwinner,sun5i-a13-display-engine144 * allwinner,sun5i-a13-display-engine
145 * allwinner,sun8i-a33-display-engine
107 146
108 - allwinner,pipelines: list of phandle to the display engine147 - allwinner,pipelines: list of phandle to the display engine
109 frontends available.148 frontends available.
Documentation/devicetree/bindings/display/tilcdc/tilcdc.txt+26−0
@@ -17,6 +17,18 @@ Optional properties: · 16 unmodified lines
17 the lcd controller.17 the lcd controller.
18 - max-pixelclock: The maximum pixel clock that can be supported18 - max-pixelclock: The maximum pixel clock that can be supported
19 by the lcd controller in KHz.19 by the lcd controller in KHz.
20 - blue-and-red-wiring: Recognized values "straight" or "crossed".
21 This property deals with the LCDC revision 2 (found on AM335x)
22 color errata [1].
23 - "straight" indicates normal wiring that supports RGB565,
24 BGR888, and XBGR8888 color formats.
25 - "crossed" indicates wiring that has blue and red wires
26 crossed. This setup supports BGR565, RGB888 and XRGB8888
27 formats.
28 - If the property is not present or its value is not recognized
29 the legacy mode is assumed. This configuration supports RGB565,
30 RGB888 and XRGB8888 formats. However, depending on wiring, the red
31 and blue colors are swapped in either 16 or 24-bit color modes.
20 32
21Optional nodes:33Optional nodes:
22 34
@@ -24,6 +36,18 @@ Optional nodes: · 1 unmodified line
24 binding follows Documentation/devicetree/bindings/graph.txt and36 binding follows Documentation/devicetree/bindings/graph.txt and
25 suppors a single port with a single endpoint.37 suppors a single port with a single endpoint.
26 38
39 - See also Documentation/devicetree/bindings/display/tilcdc/panel.txt and
40 Documentation/devicetree/bindings/display/tilcdc/tfp410.txt for connecting
41 tfp410 DVI encoder or lcd panel to lcdc
42
43[1] There is an errata about AM335x color wiring. For 16-bit color mode
44 the wires work as they should (LCD_DATA[0:4] is for Blue[3:7]),
45 but for 24 bit color modes the wiring of blue and red components is
46 crossed and LCD_DATA[0:4] is for Red[3:7] and LCD_DATA[11:15] is
47 for Blue[3-7]. For more details see section 3.1.1 in AM335x
48 Silicon Errata:
49 http://www.ti.com/general/docs/lit/getliterature.tsp?baseLiteratureNumber=sprz360
50
27Example:51Example:
28 52
29 fb: fb@4830e000 {53 fb: fb@4830e000 {
@@ -33,6 +57,8 @@ Example: · 3 unmodified lines
33 interrupts = <36>;57 interrupts = <36>;
34 ti,hwmods = "lcdc";58 ti,hwmods = "lcdc";
35 59
60 blue-and-red-wiring = "crossed";
61
36 port {62 port {
37 lcdc_0: endpoint@0 {63 lcdc_0: endpoint@0 {
38 remote-endpoint = <&hdmi_0>;64 remote-endpoint = <&hdmi_0>;
Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt+1−0
@@ -8,6 +8,7 @@ Required properties: · 7 unmodified lines
8 "fsl,imx51-sdma"8 "fsl,imx51-sdma"
9 "fsl,imx53-sdma"9 "fsl,imx53-sdma"
10 "fsl,imx6q-sdma"10 "fsl,imx6q-sdma"
11 "fsl,imx7d-sdma"
11 The -to variants should be preferred since they allow to determine the12 The -to variants should be preferred since they allow to determine the
12 correct ROM script addresses needed for the driver to work without additional13 correct ROM script addresses needed for the driver to work without additional
13 firmware.14 firmware.
Documentation/devicetree/bindings/dma/renesas,rcar-dmac.txt+3−1
@@ -1,4 +1,4 @@
1* Renesas R-Car DMA Controller Device Tree bindings1* Renesas R-Car (RZ/G) DMA Controller Device Tree bindings
2 2
3Renesas R-Car Generation 2 SoCs have multiple multi-channel DMA3Renesas R-Car Generation 2 SoCs have multiple multi-channel DMA
4controller instances named DMAC capable of serving multiple clients. Channels4controller instances named DMAC capable of serving multiple clients. Channels
@@ -16,6 +16,8 @@ Required Properties: · 11 unmodified lines
16 16
17- compatible: "renesas,dmac-<soctype>", "renesas,rcar-dmac" as fallback.17- compatible: "renesas,dmac-<soctype>", "renesas,rcar-dmac" as fallback.
18 Examples with soctypes are:18 Examples with soctypes are:
19 - "renesas,dmac-r8a7743" (RZ/G1M)
20 - "renesas,dmac-r8a7745" (RZ/G1E)
19 - "renesas,dmac-r8a7790" (R-Car H2)21 - "renesas,dmac-r8a7790" (R-Car H2)
20 - "renesas,dmac-r8a7791" (R-Car M2-W)22 - "renesas,dmac-r8a7791" (R-Car M2-W)
21 - "renesas,dmac-r8a7792" (R-Car V2H)23 - "renesas,dmac-r8a7792" (R-Car V2H)
Documentation/devicetree/bindings/dma/sun6i-dma.txt+1−0
@@ -7,6 +7,7 @@ Required properties: · 6 unmodified lines
7- compatible: Must be one of7- compatible: Must be one of
8 "allwinner,sun6i-a31-dma"8 "allwinner,sun6i-a31-dma"
9 "allwinner,sun8i-a23-dma"9 "allwinner,sun8i-a23-dma"
10 "allwinner,sun8i-a83t-dma"
10 "allwinner,sun8i-h3-dma"11 "allwinner,sun8i-h3-dma"
11- reg: Should contain the registers base address and length12- reg: Should contain the registers base address and length
12- interrupts: Should contain a reference to the interrupt used by this device13- interrupts: Should contain a reference to the interrupt used by this device
Documentation/devicetree/bindings/extcon/qcom,pm8941-misc.txt+41−0
@@ -0,0 +1,41 @@
1Qualcomm's PM8941 USB ID Extcon device
2
3Some Qualcomm PMICs have a "misc" module that can be used to detect when
4the USB ID pin has been pulled low or high.
5
6PROPERTIES
7
8- compatible:
9 Usage: required
10 Value type: <string>
11 Definition: Should contain "qcom,pm8941-misc";
12
13- reg:
14 Usage: required
15 Value type: <u32>
16 Definition: Should contain the offset to the misc address space
17
18- interrupts:
19 Usage: required
20 Value type: <prop-encoded-array>
21 Definition: Should contain the usb id interrupt
22
23- interrupt-names:
24 Usage: required
25 Value type: <stringlist>
26 Definition: Should contain the string "usb_id" for the usb id interrupt
27
28Example:
29
30 pmic {
31 usb_id: misc@900 {
32 compatible = "qcom,pm8941-misc";
33 reg = <0x900>;
34 interrupts = <0x0 0x9 0 IRQ_TYPE_EDGE_BOTH>;
35 interrupt-names = "usb_id";
36 };
37 }
38
39 usb-controller {
40 extcon = <&usb_id>;
41 };
Documentation/devicetree/bindings/firmware/meson/meson_sm.txt+15−0
@@ -0,0 +1,15 @@
1* Amlogic Secure Monitor
2
3In the Amlogic SoCs the Secure Monitor code is used to provide access to the
4NVMEM, enable JTAG, set USB boot, etc...
5
6Required properties for the secure monitor node:
7- compatible: Should be "amlogic,meson-gxbb-sm"
8
9Example:
10
11 firmware {
12 sm: secure-monitor {
13 compatible = "amlogic,meson-gxbb-sm";
14 };
15 };
Documentation/devicetree/bindings/gpio/brcm,bcm6345-gpio.txt+46−0
@@ -0,0 +1,46 @@
1Bindings for the Broadcom's brcm,bcm6345-gpio memory-mapped GPIO controllers.
2
3These bindings can be used on any BCM63xx SoC. However, BCM6338 and BCM6345
4are the only ones which don't need a pinctrl driver.
5BCM6338 have 8-bit data and dirout registers, where GPIO state can be read
6and/or written, and the direction changed from input to output.
7BCM6345 have 16-bit data and dirout registers, where GPIO state can be read
8and/or written, and the direction changed from input to output.
9
10Required properties:
11 - compatible: should be "brcm,bcm6345-gpio"
12 - reg-names: must contain
13 "dat" - data register
14 "dirout" - direction (output) register
15 - reg: address + size pairs describing the GPIO register sets;
16 order must correspond with the order of entries in reg-names
17 - #gpio-cells: must be set to 2. The first cell is the pin number and
18 the second cell is used to specify the gpio polarity:
19 0 = active high
20 1 = active low
21 - gpio-controller: Marks the device node as a gpio controller.
22
23Optional properties:
24 - native-endian: use native endian memory.
25
26Examples:
27 - BCM6338:
28 gpio: gpio-controller@fffe0407 {
29 compatible = "brcm,bcm6345-gpio";
30 reg-names = "dirout", "dat";
31 reg = <0xfffe0407 1>, <0xfffe040f 1>;
32
33 #gpio-cells = <2>;
34 gpio-controller;
35 };
36
37 - BCM6345:
38 gpio: gpio-controller@fffe0406 {
39 compatible = "brcm,bcm6345-gpio";
40 reg-names = "dirout", "dat";
41 reg = <0xfffe0406 2>, <0xfffe040a 2>;
42 native-endian;
43
44 #gpio-cells = <2>;
45 gpio-controller;
46 };
Documentation/devicetree/bindings/gpio/gpio-aspeed.txt+36−0
@@ -0,0 +1,36 @@
1Aspeed GPIO controller Device Tree Bindings
2-------------------------------------------
3
4Required properties:
5- compatible : Either "aspeed,ast2400-gpio" or "aspeed,ast2500-gpio"
6
7- #gpio-cells : Should be two
8 - First cell is the GPIO line number
9 - Second cell is used to specify optional
10 parameters (unused)
11
12- reg : Address and length of the register set for the device
13- gpio-controller : Marks the device node as a GPIO controller.
14- interrupts : Interrupt specifier (see interrupt bindings for
15 details)
16- interrupt-controller : Mark the GPIO controller as an interrupt-controller
17
18Optional properties:
19
20- interrupt-parent : The parent interrupt controller, optional if inherited
21
22The gpio and interrupt properties are further described in their respective
23bindings documentation:
24
25- Documentation/devicetree/bindings/gpio/gpio.txt
26- Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
27
28 Example:
29 gpio@1e780000 {
30 #gpio-cells = <2>;
31 compatible = "aspeed,ast2400-gpio";
32 gpio-controller;
33 interrupts = <20>;
34 reg = <0x1e780000 0x1000>;
35 interrupt-controller;
36 };
Documentation/devicetree/bindings/gpio/gpio-axp209.txt+30−0
@@ -0,0 +1,30 @@
1AXP209 GPIO controller
2
3This driver follows the usual GPIO bindings found in
4Documentation/devicetree/bindings/gpio/gpio.txt
5
6Required properties:
7- compatible: Should be "x-powers,axp209-gpio"
8- #gpio-cells: Should be two. The first cell is the pin number and the
9 second is the GPIO flags.
10- gpio-controller: Marks the device node as a GPIO controller.
11
12This node must be a subnode of the axp20x PMIC, documented in
13Documentation/devicetree/bindings/mfd/axp20x.txt
14
15Example:
16
17axp209: pmic@34 {
18 compatible = "x-powers,axp209";
19 reg = <0x34>;
20 interrupt-parent = <&nmi_intc>;
21 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
22 interrupt-controller;
23 #interrupt-cells = <1>;
24
25 axp_gpio: gpio {
26 compatible = "x-powers,axp209-gpio";
27 gpio-controller;
28 #gpio-cells = <2>;
29 };
30};
Documentation/devicetree/bindings/gpio/gpio-tpic2810.txt+16−0
@@ -0,0 +1,16 @@
1TPIC2810 GPIO controller bindings
2
3Required properties:
4 - compatible : Should be "ti,tpic2810".
5 - reg : The I2C address of the device
6 - gpio-controller : Marks the device node as a GPIO controller.
7 - #gpio-cells : Should be two. For consumer use see gpio.txt.
8
9Example:
10
11 gpio@60 {
12 compatible = "ti,tpic2810";
13 reg = <0x60>;
14 gpio-controller;
15 #gpio-cells = <2>;
16 };
Documentation/devicetree/bindings/gpio/gpio-tps65086.txt+0−16
@@ -1,16 +0,0 @@
1* TPS65086 GPO Controller bindings
2
3Required properties:
4 - compatible : Should be "ti,tps65086-gpio".
5 - gpio-controller : Marks the device node as a GPIO Controller.
6 - #gpio-cells : Should be two. The first cell is the pin number
7 and the second cell is used to specify flags.
8 See ../gpio/gpio.txt for possible values.
9
10Example:
11
12 gpio4: gpio {
13 compatible = "ti,tps65086-gpio";
14 gpio-controller;
15 #gpio-cells = <2>;
16 };
Documentation/devicetree/bindings/gpio/gpio-ts4900.txt+30−0
@@ -0,0 +1,30 @@
1* Technologic Systems I2C-FPGA's GPIO controller bindings
2
3This bindings describes the GPIO controller for Technologic's FPGA core.
4TS-4900's FPGA encodes the GPIO state on 3 bits, whereas the TS-7970's FPGA
5uses 2 bits: it doesn't use a dedicated input bit.
6
7Required properties:
8- compatible: Should be one of the following
9 "technologic,ts4900-gpio"
10 "technologic,ts7970-gpio"
11- reg: Physical base address of the controller and length
12 of memory mapped region.
13- #gpio-cells: Should be two. The first cell is the pin number.
14- gpio-controller: Marks the device node as a gpio controller.
15
16Optional property:
17- ngpios: Number of GPIOs this controller is instantiated with,
18 the default is 32. See gpio.txt for more details.
19
20Example:
21
22&i2c2 {
23 gpio8: gpio@28 {
24 compatible = "technologic,ts4900-gpio";
25 reg = <0x28>;
26 #gpio-cells = <2>;
27 gpio-controller;
28 ngpios = <32>;
29 };
30};
Documentation/devicetree/bindings/gpio/mrvl-gpio.txt+0−23
@@ -44,26 +44,3 @@ Example for a PXA3xx platform: · 43 unmodified lines
44 interrupt-controller;44 interrupt-controller;
45 #interrupt-cells = <0x2>;45 #interrupt-cells = <0x2>;
46 };46 };
47
48* Marvell Orion GPIO Controller
49
50Required properties:
51- compatible : Should be "marvell,orion-gpio"
52- reg : Address and length of the register set for controller.
53- gpio-controller : So we know this is a gpio controller.
54- ngpio : How many gpios this controller has.
55- interrupts : Up to 4 Interrupts for the controller.
56
57Optional properties:
58- mask-offset : For SMP Orions, offset for Nth CPU
59
60Example:
61
62 gpio0: gpio@10100 {
63 compatible = "marvell,orion-gpio";
64 #gpio-cells = <2>;
65 gpio-controller;
66 reg = <0x10100 0x40>;
67 ngpio = <32>;
68 interrupts = <35>, <36>, <37>, <38>;
69 };
Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt+1−0
@@ -11,6 +11,7 @@ Required Properties: · 10 unmodified lines
11 - "renesas,gpio-r8a7793": for R8A7793 (R-Car M2-N) compatible GPIO controller.11 - "renesas,gpio-r8a7793": for R8A7793 (R-Car M2-N) compatible GPIO controller.
12 - "renesas,gpio-r8a7794": for R8A7794 (R-Car E2) compatible GPIO controller.12 - "renesas,gpio-r8a7794": for R8A7794 (R-Car E2) compatible GPIO controller.
13 - "renesas,gpio-r8a7795": for R8A7795 (R-Car H3) compatible GPIO controller.13 - "renesas,gpio-r8a7795": for R8A7795 (R-Car H3) compatible GPIO controller.
14 - "renesas,gpio-r8a7796": for R8A7796 (R-Car M3-W) compatible GPIO controller.
14 - "renesas,gpio-rcar": for generic R-Car GPIO controller.15 - "renesas,gpio-rcar": for generic R-Car GPIO controller.
15 16
16 - reg: Base address and length of each memory resource used by the GPIO17 - reg: Base address and length of each memory resource used by the GPIO
Documentation/devicetree/bindings/hwmon/ltc4151.txt+18−0
@@ -0,0 +1,18 @@
1LTC4151 High Voltage I2C Current and Voltage Monitor
2
3Required properties:
4- compatible: Must be "lltc,ltc4151"
5- reg: I2C address
6
7Optional properties:
8- shunt-resistor-micro-ohms
9 Shunt resistor value in micro-Ohms
10 Defaults to <1000> if unset.
11
12Example:
13
14ltc4151@6e {
15 compatible = "lltc,ltc4151";
16 reg = <0x6e>;
17 shunt-resistor-micro-ohms = <1500>;
18};
Documentation/devicetree/bindings/hwmon/max6650.txt+28−0
@@ -0,0 +1,28 @@
1Bindings for MAX6651 and MAX6650 I2C fan controllers
2
3Reference:
4[1] https://datasheets.maximintegrated.com/en/ds/MAX6650-MAX6651.pdf
5
6Required properties:
7- compatible : One of "maxim,max6650" or "maxim,max6651"
8- reg : I2C address, one of 0x1b, 0x1f, 0x4b, 0x48.
9
10Optional properties, default is to retain the chip's current setting:
11- maxim,fan-microvolt : The supply voltage of the fan, either 5000000 uV or
12 12000000 uV.
13- maxim,fan-prescale : Pre-scaling value, as per datasheet [1]. Lower values
14 allow more fine-grained control of slower fans.
15 Valid: 1, 2, 4, 8, 16.
16- maxim,fan-target-rpm: Initial requested fan rotation speed. If specified, the
17 driver selects closed-loop mode and the requested speed.
18 This ensures the fan is already running before userspace
19 takes over.
20
21Example:
22 fan-max6650: max6650@1b {
23 reg = <0x1b>;
24 compatible = "maxim,max6650";
25 maxim,fan-microvolt = <12000000>;
26 maxim,fan-prescale = <4>;
27 maxim,fan-target-rpm = <1200>;
28 };
Documentation/devicetree/bindings/i2c/i2c-arb-gpio-challenge.txt+2−6
@@ -44,8 +44,7 @@ Required properties: · 43 unmodified lines
44- our-claim-gpio: The GPIO that we use to claim the bus.44- our-claim-gpio: The GPIO that we use to claim the bus.
45- their-claim-gpios: The GPIOs that the other sides use to claim the bus.45- their-claim-gpios: The GPIOs that the other sides use to claim the bus.
46 Note that some implementations may only support a single other master.46 Note that some implementations may only support a single other master.
47- Standard I2C mux properties. See i2c-mux.txt in this directory.47- I2C arbitration bus node. See i2c-arb.txt in this directory.
48- Single I2C child bus node at reg 0. See i2c-mux.txt in this directory.
49 48
50Optional properties:49Optional properties:
51- slew-delay-us: microseconds to wait for a GPIO to go high. Default is 10 us.50- slew-delay-us: microseconds to wait for a GPIO to go high. Default is 10 us.
@@ -63,8 +62,6 @@ Example: · 11 unmodified lines
63 62
64 i2c-arbitrator {63 i2c-arbitrator {
65 compatible = "i2c-arb-gpio-challenge";64 compatible = "i2c-arb-gpio-challenge";
66 #address-cells = <1>;
67 #size-cells = <0>;
68 65
69 i2c-parent = <&{/i2c@12CA0000}>;66 i2c-parent = <&{/i2c@12CA0000}>;
70 67
@@ -74,8 +71,7 @@ Example: · 3 unmodified lines
74 wait-retry-us = <3000>;71 wait-retry-us = <3000>;
75 wait-free-us = <50000>;72 wait-free-us = <50000>;
76 73
77 i2c@0 {74 i2c-arb {
78 reg = <0>;
79 #address-cells = <1>;75 #address-cells = <1>;
80 #size-cells = <0>;76 #size-cells = <0>;
81 77
Documentation/devicetree/bindings/i2c/i2c-arb.txt+35−0
@@ -0,0 +1,35 @@
1Common i2c arbitration bus properties.
2
3- i2c-arb child node
4
5Required properties for the i2c-arb child node:
6- #address-cells = <1>;
7- #size-cells = <0>;
8
9Optional properties for i2c-arb child node:
10- Child nodes conforming to i2c bus binding
11
12
13Example :
14
15 /*
16 An NXP pca9541 I2C bus master selector at address 0x74
17 with a NXP pca8574 GPIO expander attached.
18 */
19
20 arb@74 {
21 compatible = "nxp,pca9541";
22 reg = <0x74>;
23
24 i2c-arb {
25 #address-cells = <1>;
26 #size-cells = <0>;
27
28 gpio@38 {
29 compatible = "nxp,pca8574";
30 reg = <0x38>;
31 #gpio-cells = <2>;
32 gpio-controller;
33 };
34 };
35 };
Documentation/devicetree/bindings/i2c/i2c-gate.txt+41−0
@@ -0,0 +1,41 @@
1An i2c gate is useful to e.g. reduce the digital noise for RF tuners connected
2to the i2c bus. Gates are similar to arbitrators in that you need to perform
3some kind of operation to access the i2c bus past the arbitrator/gate, but
4there are no competing masters to consider for gates and therefore there is
5no arbitration happening for gates.
6
7Common i2c gate properties.
8
9- i2c-gate child node
10
11Required properties for the i2c-gate child node:
12- #address-cells = <1>;
13- #size-cells = <0>;
14
15Optional properties for i2c-gate child node:
16- Child nodes conforming to i2c bus binding
17
18
19Example :
20
21 /*
22 An Invensense mpu9150 at address 0x68 featuring an on-chip Asahi
23 Kasei ak8975 compass behind a gate.
24 */
25
26 mpu9150@68 {
27 compatible = "invensense,mpu9150";
28 reg = <0x68>;
29 interrupt-parent = <&gpio1>;
30 interrupts = <18 1>;
31
32 i2c-gate {
33 #address-cells = <1>;
34 #size-cells = <0>;
35
36 ax8975@c {
37 compatible = "ak,ak8975";
38 reg = <0x0c>;
39 };
40 };
41 };
Documentation/devicetree/bindings/i2c/i2c-meson.txt+1−1
@@ -1,7 +1,7 @@
1Amlogic Meson I2C controller1Amlogic Meson I2C controller
2 2
3Required properties:3Required properties:
4 - compatible: must be "amlogic,meson6-i2c"4 - compatible: must be "amlogic,meson6-i2c" or "amlogic,meson-gxbb-i2c"
5 - reg: physical address and length of the device registers5 - reg: physical address and length of the device registers
6 - interrupts: a single interrupt specifier6 - interrupts: a single interrupt specifier
7 - clocks: clock for the device7 - clocks: clock for the device
Documentation/devicetree/bindings/i2c/i2c-mux.txt+18−5
@@ -2,19 +2,32 @@ Common i2c bus multiplexer/switch properties. · 1 unmodified line
2 2
3An i2c bus multiplexer/switch will have several child busses that are3An i2c bus multiplexer/switch will have several child busses that are
4numbered uniquely in a device dependent manner. The nodes for an i2c bus4numbered uniquely in a device dependent manner. The nodes for an i2c bus
5multiplexer/switch will have one child node for each child5multiplexer/switch will have one child node for each child bus.
6bus.
7 6
8Required properties:7Optional properties:
8- #address-cells = <1>;
9 This property is required is the i2c-mux child node does not exist.
10
11- #size-cells = <0>;
12 This property is required is the i2c-mux child node does not exist.
13
14- i2c-mux
15 For i2c multiplexers/switches that have child nodes that are a mixture
16 of both i2c child busses and other child nodes, the 'i2c-mux' subnode
17 can be used for populating the i2c child busses. If an 'i2c-mux'
18 subnode is present, only subnodes of this will be considered as i2c
19 child busses.
20
21Required properties for the i2c-mux child node:
9- #address-cells = <1>;22- #address-cells = <1>;
10- #size-cells = <0>;23- #size-cells = <0>;
11 24
12Required properties for child nodes:25Required properties for i2c child bus nodes:
13- #address-cells = <1>;26- #address-cells = <1>;
14- #size-cells = <0>;27- #size-cells = <0>;
15- reg : The sub-bus number.28- reg : The sub-bus number.
16 29
17Optional properties for child nodes:30Optional properties for i2c child bus nodes:
18- Other properties specific to the multiplexer/switch hardware.31- Other properties specific to the multiplexer/switch hardware.
19- Child nodes conforming to i2c bus binding32- Child nodes conforming to i2c bus binding
20 33
Documentation/devicetree/bindings/i2c/i2c-rcar.txt+1−0
@@ -11,6 +11,7 @@ Required properties: · 10 unmodified lines
11 "renesas,i2c-r8a7793"11 "renesas,i2c-r8a7793"
12 "renesas,i2c-r8a7794"12 "renesas,i2c-r8a7794"
13 "renesas,i2c-r8a7795"13 "renesas,i2c-r8a7795"
14 "renesas,i2c-r8a7796"
14- reg: physical base address of the controller and length of memory mapped15- reg: physical base address of the controller and length of memory mapped
15 region.16 region.
16- interrupts: interrupt specifier.17- interrupts: interrupt specifier.
Documentation/devicetree/bindings/i2c/i2c.txt+8−0
@@ -32,6 +32,14 @@ wants to support one of the below features, it should adapt the bindings below. · 31 unmodified lines
32- clock-frequency32- clock-frequency
33 frequency of bus clock in Hz.33 frequency of bus clock in Hz.
34 34
35- i2c-bus
36 For I2C adapters that have child nodes that are a mixture of both I2C
37 devices and non-I2C devices, the 'i2c-bus' subnode can be used for
38 populating I2C devices. If the 'i2c-bus' subnode is present, only
39 subnodes of this will be considered as I2C slaves. The properties,
40 '#address-cells' and '#size-cells' must be defined under this subnode
41 if present.
42
35- i2c-scl-falling-time-ns43- i2c-scl-falling-time-ns
36 Number of nanoseconds the SCL signal takes to fall; t(f) in the I2C44 Number of nanoseconds the SCL signal takes to fall; t(f) in the I2C
37 specification.45 specification.
Documentation/devicetree/bindings/i2c/nxp,pca9541.txt+29−0
@@ -0,0 +1,29 @@
1* NXP PCA9541 I2C bus master selector
2
3Required Properties:
4
5 - compatible: Must be "nxp,pca9541"
6
7 - reg: The I2C address of the device.
8
9 The following required properties are defined externally:
10
11 - I2C arbitration bus node. See i2c-arb.txt in this directory.
12
13
14Example:
15
16 i2c-arbitrator@74 {
17 compatible = "nxp,pca9541";
18 reg = <0x74>;
19
20 i2c-arb {
21 #address-cells = <1>;
22 #size-cells = <0>;
23
24 eeprom@54 {
25 compatible = "at,24c08";
26 reg = <0x54>;
27 };
28 };
29 };
Documentation/devicetree/bindings/i2c/trivial-devices.txt+2−1
@@ -38,6 +38,7 @@ dallas,ds4510 CPU Supervisor with Nonvolatile Memory and Programmable I/O · 37 unmodified lines
38dallas,ds75 Digital Thermometer and Thermostat38dallas,ds75 Digital Thermometer and Thermostat
39dlg,da9053 DA9053: flexible system level PMIC with multicore support39dlg,da9053 DA9053: flexible system level PMIC with multicore support
40dlg,da9063 DA9063: system PMIC for quad-core application processors40dlg,da9063 DA9063: system PMIC for quad-core application processors
41domintech,dmard09 DMARD09: 3-axis Accelerometer
41epson,rx8010 I2C-BUS INTERFACE REAL TIME CLOCK MODULE42epson,rx8010 I2C-BUS INTERFACE REAL TIME CLOCK MODULE
42epson,rx8025 High-Stability. I2C-Bus INTERFACE REAL TIME CLOCK MODULE43epson,rx8025 High-Stability. I2C-Bus INTERFACE REAL TIME CLOCK MODULE
43epson,rx8581 I2C-BUS INTERFACE REAL TIME CLOCK MODULE44epson,rx8581 I2C-BUS INTERFACE REAL TIME CLOCK MODULE
@@ -50,12 +51,12 @@ fsl,sgtl5000 SGTL5000: Ultra Low-Power Audio Codec · 6 unmodified lines
50gmt,g751 G751: Digital Temperature Sensor and Thermal Watchdog with Two-Wire Interface51gmt,g751 G751: Digital Temperature Sensor and Thermal Watchdog with Two-Wire Interface
51infineon,slb9635tt Infineon SLB9635 (Soft-) I2C TPM (old protocol, max 100khz)52infineon,slb9635tt Infineon SLB9635 (Soft-) I2C TPM (old protocol, max 100khz)
52infineon,slb9645tt Infineon SLB9645 I2C TPM (new protocol, max 400khz)53infineon,slb9645tt Infineon SLB9645 I2C TPM (new protocol, max 400khz)
53isil,isl12057 Intersil ISL12057 I2C RTC Chip
54isil,isl29028 Intersil ISL29028 Ambient Light and Proximity Sensor54isil,isl29028 Intersil ISL29028 Ambient Light and Proximity Sensor
55maxim,ds1050 5 Bit Programmable, Pulse-Width Modulator55maxim,ds1050 5 Bit Programmable, Pulse-Width Modulator
56maxim,max1237 Low-Power, 4-/12-Channel, 2-Wire Serial, 12-Bit ADCs56maxim,max1237 Low-Power, 4-/12-Channel, 2-Wire Serial, 12-Bit ADCs
57maxim,max6625 9-Bit/12-Bit Temperature Sensors with I²C-Compatible Serial Interface57maxim,max6625 9-Bit/12-Bit Temperature Sensors with I²C-Compatible Serial Interface
58mc,rv3029c2 Real Time Clock Module with I2C-Bus58mc,rv3029c2 Real Time Clock Module with I2C-Bus
59mcube,mc3230 mCube 3-axis 8-bit digital accelerometer
59microchip,mcp4531-502 Microchip 7-bit Single I2C Digital Potentiometer (5k)60microchip,mcp4531-502 Microchip 7-bit Single I2C Digital Potentiometer (5k)
60microchip,mcp4531-103 Microchip 7-bit Single I2C Digital Potentiometer (10k)61microchip,mcp4531-103 Microchip 7-bit Single I2C Digital Potentiometer (10k)
61microchip,mcp4531-503 Microchip 7-bit Single I2C Digital Potentiometer (50k)62microchip,mcp4531-503 Microchip 7-bit Single I2C Digital Potentiometer (50k)
Documentation/devicetree/bindings/iio/accel/dmard06.txt+19−0
@@ -0,0 +1,19 @@
1Device tree bindings for Domintech DMARD05, DMARD06, DMARD07 accelerometers
2
3Required properties:
4 - compatible : Should be "domintech,dmard05"
5 or "domintech,dmard06"
6 or "domintech,dmard07"
7 - reg : I2C address of the chip. Should be 0x1c
8
9Example:
10 &i2c1 {
11 /* ... */
12
13 accelerometer@1c {
14 compatible = "domintech,dmard06";
15 reg = <0x1c>;
16 };
17
18 /* ... */
19 };
Documentation/devicetree/bindings/iio/accel/kionix,kxsd9.txt+22−0
@@ -0,0 +1,22 @@
1Kionix KXSD9 Accelerometer device tree bindings
2
3Required properties:
4 - compatible: should be set to "kionix,kxsd9"
5 - reg: i2c slave address
6
7Optional properties:
8 - vdd-supply: The input supply for VDD
9 - iovdd-supply: The input supply for IOVDD
10 - interrupts: The movement detection interrupt
11 - mount-matrix: See mount-matrix.txt
12
13Example:
14
15kxsd9@18 {
16 compatible = "kionix,kxsd9";
17 reg = <0x18>;
18 interrupt-parent = <&foo>;
19 interrupts = <57 IRQ_TYPE_EDGE_FALLING>;
20 iovdd-supply = <&bar>;
21 vdd-supply = <&baz>;
22};
Documentation/devicetree/bindings/iio/adc/mt6577_auxadc.txt+29−0
@@ -0,0 +1,29 @@
1* Mediatek AUXADC - Analog to Digital Converter on Mediatek mobile soc (mt65xx/mt81xx/mt27xx)
2===============
3
4The Auxiliary Analog/Digital Converter (AUXADC) is an ADC found
5in some Mediatek SoCs which among other things measures the temperatures
6in the SoC. It can be used directly with register accesses, but it is also
7used by thermal controller which reads the temperatures from the AUXADC
8directly via its own bus interface. See
9Documentation/devicetree/bindings/thermal/mediatek-thermal.txt
10for the Thermal Controller which holds a phandle to the AUXADC.
11
12Required properties:
13 - compatible: Should be one of:
14 - "mediatek,mt2701-auxadc": For MT2701 family of SoCs
15 - "mediatek,mt8173-auxadc": For MT8173 family of SoCs
16 - reg: Address range of the AUXADC unit.
17 - clocks: Should contain a clock specifier for each entry in clock-names
18 - clock-names: Should contain "main".
19 - #io-channel-cells: Should be 1, see ../iio-bindings.txt
20
21Example:
22
23auxadc: adc@11001000 {
24 compatible = "mediatek,mt2701-auxadc";
25 reg = <0 0x11001000 0 0x1000>;
26 clocks = <&pericfg CLK_PERI_AUXADC>;
27 clock-names = "main";
28 #io-channel-cells = <1>;
29};
Documentation/devicetree/bindings/iio/adc/ti-adc12138.txt+37−0
@@ -0,0 +1,37 @@
1* Texas Instruments' ADC12130/ADC12132/ADC12138
2
3Required properties:
4 - compatible: Should be one of
5 * "ti,adc12130"
6 * "ti,adc12132"
7 * "ti,adc12138"
8 - reg: SPI chip select number for the device
9 - interrupts: Should contain interrupt for EOC (end of conversion)
10 - clocks: phandle to conversion clock input
11 - spi-max-frequency: Definision as per
12 Documentation/devicetree/bindings/spi/spi-bus.txt
13 - vref-p-supply: The regulator supply for positive analog voltage reference
14
15Optional properties:
16 - vref-n-supply: The regulator supply for negative analog voltage reference
17 (Note that this must not go below GND or exceed vref-p)
18 If not specified, this is assumed to be analog ground.
19 - ti,acquisition-time: The number of conversion clock periods for the S/H's
20 acquisition time. Should be one of 6, 10, 18, 34. If not specified,
21 default value of 10 is used.
22 For high source impedances, this value can be increased to 18 or 34.
23 For less ADC accuracy and/or slower CCLK frequencies this value may be
24 decreased to 6. See section 6.0 INPUT SOURCE RESISTANCE in the
25 datasheet for details.
26
27Example:
28adc@0 {
29 compatible = "ti,adc12138";
30 reg = <0>;
31 interrupts = <28 IRQ_TYPE_EDGE_RISING>;
32 interrupt-parent = <&gpio1>;
33 clocks = <&cclk>;
34 vref-p-supply = <&ldo4_reg>;
35 spi-max-frequency = <5000000>;
36 ti,acquisition-time = <6>;
37};
Documentation/devicetree/bindings/iio/adc/ti-adc161s626.txt+16−0
@@ -0,0 +1,16 @@
1* Texas Instruments ADC141S626 and ADC161S626 chips
2
3Required properties:
4 - compatible: Should be "ti,adc141s626" or "ti,adc161s626"
5 - reg: spi chip select number for the device
6
7Recommended properties:
8 - spi-max-frequency: Definition as per
9 Documentation/devicetree/bindings/spi/spi-bus.txt
10
11Example:
12adc@0 {
13 compatible = "ti,adc161s626";
14 reg = <0>;
15 spi-max-frequency = <4300000>;
16};
Documentation/devicetree/bindings/iio/chemical/atlas,orp-sm.txt+22−0
@@ -0,0 +1,22 @@
1* Atlas Scientific ORP-SM OEM sensor
2
3https://www.atlas-scientific.com/_files/_datasheets/_oem/ORP_oem_datasheet.pdf
4
5Required properties:
6
7 - compatible: must be "atlas,orp-sm"
8 - reg: the I2C address of the sensor
9 - interrupt-parent: should be the phandle for the interrupt controller
10 - interrupts: the sole interrupt generated by the device
11
12 Refer to interrupt-controller/interrupts.txt for generic interrupt client
13 node bindings.
14
15Example:
16
17atlas@66 {
18 compatible = "atlas,orp-sm";
19 reg = <0x66>;
20 interrupt-parent = <&gpio1>;
21 interrupts = <16 2>;
22};
Documentation/devicetree/bindings/iio/magnetometer/ak8974.txt+29−0
@@ -0,0 +1,29 @@
1* Asahi Kasei AK8974 magnetometer sensor
2
3Required properties:
4
5- compatible : should be "asahi-kasei,ak8974"
6- reg : the I2C address of the magnetometer
7
8Optional properties:
9
10- avdd-supply: regulator supply for the analog voltage
11 (see regulator/regulator.txt)
12- dvdd-supply: regulator supply for the digital voltage
13 (see regulator/regulator.txt)
14- interrupts: data ready (DRDY) and interrupt (INT1) lines
15 from the chip, the DRDY interrupt must be placed first.
16 The interrupts can be triggered on rising or falling
17 edges alike.
18- mount-matrix: an optional 3x3 mounting rotation matrix
19
20Example:
21
22ak8974@0f {
23 compatible = "asahi-kasei,ak8974";
24 reg = <0x0f>;
25 avdd-supply = <&foo_reg>;
26 dvdd-supply = <&bar_reg>;
27 interrupts = <0 IRQ_TYPE_EDGE_RISING>,
28 <1 IRQ_TYPE_EDGE_RISING>;
29};
Documentation/devicetree/bindings/iio/pressure/zpa2326.txt+31−0
@@ -0,0 +1,31 @@
1Murata ZPA2326 pressure sensor
2
3Pressure sensor from Murata with SPI and I2C bus interfaces.
4
5Required properties:
6- compatible: "murata,zpa2326"
7- reg: the I2C address or SPI chip select the device will respond to
8
9Recommended properties for SPI bus usage:
10- spi-max-frequency: maximum SPI bus frequency as documented in
11 Documentation/devicetree/bindings/spi/spi-bus.txt
12
13Optional properties:
14- vref-supply: an optional regulator that needs to be on to provide VREF
15 power to the sensor
16- vdd-supply: an optional regulator that needs to be on to provide VDD
17 power to the sensor
18- interrupt-parent: phandle to the parent interrupt controller as documented in
19 Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
20- interrupts: interrupt mapping for IRQ as documented in
21 Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
22
23Example:
24
25zpa2326@5c {
26 compatible = "murata,zpa2326";
27 reg = <0x5c>;
28 interrupt-parent = <&gpio>;
29 interrupts = <12>;
30 vdd-supply = <&ldo_1v8_gnss>;
31};
Documentation/devicetree/bindings/iio/proximity/sx9500.txt+24−0
@@ -0,0 +1,24 @@
1Semtech's SX9500 capacitive proximity button device driver
2
3Required properties:
4 - compatible: must be "semtech,sx9500"
5 - reg: i2c address where to find the device
6 - interrupt-parent : should be the phandle for the interrupt controller
7 - interrupts : the sole interrupt generated by the device
8
9 Refer to interrupt-controller/interrupts.txt for generic
10 interrupt client node bindings.
11
12Optional properties:
13 - reset-gpios: Reference to the GPIO connected to the device's active
14 low reset pin.
15
16Example:
17
18sx9500@28 {
19 compatible = "semtech,sx9500";
20 reg = <0x28>;
21 interrupt-parent = <&gpio2>;
22 interrupts = <16 IRQ_TYPE_LEVEL_LOW>;
23 reset-gpios = <&gpio2 10 GPIO_ACTIVE_LOW>;
24};
Documentation/devicetree/bindings/iio/temperature/maxim_thermocouple.txt+21−0
@@ -0,0 +1,21 @@
1Maxim thermocouple support
2
3* https://datasheets.maximintegrated.com/en/ds/MAX6675.pdf
4* https://datasheets.maximintegrated.com/en/ds/MAX31855.pdf
5
6Required properties:
7
8 - compatible: must be "maxim,max31855" or "maxim,max6675"
9 - reg: SPI chip select number for the device
10 - spi-max-frequency: must be 4300000
11 - spi-cpha: must be defined for max6675 to enable SPI mode 1
12
13 Refer to spi/spi-bus.txt for generic SPI slave bindings.
14
15Example:
16
17 max31855@0 {
18 compatible = "maxim,max31855";
19 reg = <0>;
20 spi-max-frequency = <4300000>;
21 };
Documentation/devicetree/bindings/infiniband/hisilicon-hns-roce.txt+109−0
@@ -0,0 +1,109 @@
1Hisilicon RoCE DT description
2
3Hisilicon RoCE engine is a part of network subsystem.
4It works depending on other part of network wubsytem, such as, gmac and
5dsa fabric.
6
7Additional properties are described here:
8
9Required properties:
10- compatible: Should contain "hisilicon,hns-roce-v1".
11- reg: Physical base address of the RoCE driver and
12length of memory mapped region.
13- eth-handle: phandle, specifies a reference to a node
14representing a ethernet device.
15- dsaf-handle: phandle, specifies a reference to a node
16representing a dsaf device.
17- node_guid: a number that uniquely identifies a device or component
18- #address-cells: must be 2
19- #size-cells: must be 2
20Optional properties:
21- dma-coherent: Present if DMA operations are coherent.
22- interrupt-parent: the interrupt parent of this device.
23- interrupts: should contain 32 completion event irq,1 async event irq
24and 1 event overflow irq.
25- interrupt-names:should be one of 34 irqs for roce device
26 - hns-roce-comp-0 ~ hns-roce-comp-31: 32 complete event irq
27 - hns-roce-async: 1 async event irq
28 - hns-roce-common: named common exception warning irq
29Example:
30 infiniband@c4000000 {
31 compatible = "hisilicon,hns-roce-v1";
32 reg = <0x0 0xc4000000 0x0 0x100000>;
33 dma-coherent;
34 eth-handle = <&eth2 &eth3 &eth4 &eth5 &eth6 &eth7>;
35 dsaf-handle = <&soc0_dsa>;
36 node-guid = [00 9A CD 00 00 01 02 03];
37 #address-cells = <2>;
38 #size-cells = <2>;
39 interrupt-parent = <&mbigen_dsa>;
40 interrupts = <722 1>,
41 <723 1>,
42 <724 1>,
43 <725 1>,
44 <726 1>,
45 <727 1>,
46 <728 1>,
47 <729 1>,
48 <730 1>,
49 <731 1>,
50 <732 1>,
51 <733 1>,
52 <734 1>,
53 <735 1>,
54 <736 1>,
55 <737 1>,
56 <738 1>,
57 <739 1>,
58 <740 1>,
59 <741 1>,
60 <742 1>,
61 <743 1>,
62 <744 1>,
63 <745 1>,
64 <746 1>,
65 <747 1>,
66 <748 1>,
67 <749 1>,
68 <750 1>,
69 <751 1>,
70 <752 1>,
71 <753 1>,
72 <785 1>,
73 <754 4>;
74
75 interrupt-names = "hns-roce-comp-0",
76 "hns-roce-comp-1",
77 "hns-roce-comp-2",
78 "hns-roce-comp-3",
79 "hns-roce-comp-4",
80 "hns-roce-comp-5",
81 "hns-roce-comp-6",
82 "hns-roce-comp-7",
83 "hns-roce-comp-8",
84 "hns-roce-comp-9",
85 "hns-roce-comp-10",
86 "hns-roce-comp-11",
87 "hns-roce-comp-12",
88 "hns-roce-comp-13",
89 "hns-roce-comp-14",
90 "hns-roce-comp-15",
91 "hns-roce-comp-16",
92 "hns-roce-comp-17",
93 "hns-roce-comp-18",
94 "hns-roce-comp-19",
95 "hns-roce-comp-20",
96 "hns-roce-comp-21",
97 "hns-roce-comp-22",
98 "hns-roce-comp-23",
99 "hns-roce-comp-24",
100 "hns-roce-comp-25",
101 "hns-roce-comp-26",
102 "hns-roce-comp-27",
103 "hns-roce-comp-28",
104 "hns-roce-comp-29",
105 "hns-roce-comp-30",
106 "hns-roce-comp-31",
107 "hns-roce-async",
108 "hns-roce-common";
109 };
Documentation/devicetree/bindings/input/adc-keys.txt+49−0
@@ -0,0 +1,49 @@
1ADC attached resistor ladder buttons
2------------------------------------
3
4Required properties:
5 - compatible: "adc-keys"
6 - io-channels: Phandle to an ADC channel
7 - io-channel-names = "buttons";
8 - keyup-threshold-microvolt: Voltage at which all the keys are considered up.
9
10Optional properties:
11 - poll-interval: Poll interval time in milliseconds
12 - autorepeat: Boolean, Enable auto repeat feature of Linux input
13 subsystem.
14
15Each button (key) is represented as a sub-node of "adc-keys":
16
17Required subnode-properties:
18 - label: Descriptive name of the key.
19 - linux,code: Keycode to emit.
20 - press-threshold-microvolt: Voltage ADC input when this key is pressed.
21
22Example:
23
24#include <dt-bindings/input/input.h>
25
26 adc-keys {
27 compatible = "adc-keys";
28 io-channels = <&lradc 0>;
29 io-channel-names = "buttons";
30 keyup-threshold-microvolt = <2000000>;
31
32 button-up {
33 label = "Volume Up";
34 linux,code = <KEY_VOLUMEUP>;
35 press-threshold-microvolt = <1500000>;
36 };
37
38 button-down {
39 label = "Volume Down";
40 linux,code = <KEY_VOLUMEDOWN>;
41 press-threshold-microvolt = <1000000>;
42 };
43
44 button-enter {
45 label = "Enter";
46 linux,code = <KEY_ENTER>;
47 press-threshold-microvolt = <500000>;
48 };
49 };
Documentation/devicetree/bindings/input/gpio-decoder.txt+23−0
@@ -0,0 +1,23 @@
1* GPIO Decoder DT bindings
2
3Required Properties:
4- compatible: should be "gpio-decoder"
5- gpios: a spec of gpios (at least two) to be decoded to a number with
6 first entry representing the MSB.
7
8Optional Properties:
9- decoder-max-value: Maximum possible value that can be reported by
10 the gpios.
11- linux,axis: the input subsystem axis to map to (ABS_X/ABS_Y).
12 Defaults to 0 (ABS_X).
13
14Example:
15 gpio-decoder0 {
16 compatible = "gpio-decoder";
17 gpios = <&pca9536 3 GPIO_ACTIVE_HIGH>,
18 <&pca9536 2 GPIO_ACTIVE_HIGH>,
19 <&pca9536 1 GPIO_ACTIVE_HIGH>,
20 <&pca9536 0 GPIO_ACTIVE_HIGH>;
21 linux,axis = <0>; /* ABS_X */
22 decoder-max-value = <9>;
23 };
Documentation/devicetree/bindings/input/gpio-keys-polled.txt+2−3
@@ -34,11 +34,10 @@ Example nodes: · 33 unmodified lines
34 34
35 gpio_keys_polled {35 gpio_keys_polled {
36 compatible = "gpio-keys-polled";36 compatible = "gpio-keys-polled";
37 #address-cells = <1>;
38 #size-cells = <0>;
39 poll-interval = <100>;37 poll-interval = <100>;
40 autorepeat;38 autorepeat;
41 button@21 {39
40 button21 {
42 label = "GPIO Key UP";41 label = "GPIO Key UP";
43 linux,code = <103>;42 linux,code = <103>;
44 gpios = <&gpio1 0 1>;43 gpios = <&gpio1 0 1>;
Documentation/devicetree/bindings/input/touchscreen/edt-ft5x06.txt+8−0
@@ -19,6 +19,7 @@ Required properties: · 18 unmodified lines
19 or: "edt,edt-ft5306"19 or: "edt,edt-ft5306"
20 or: "edt,edt-ft5406"20 or: "edt,edt-ft5406"
21 or: "edt,edt-ft5506"21 or: "edt,edt-ft5506"
22 or: "focaltech,ft6236"
22 23
23 - reg: I2C slave address of the chip (0x38)24 - reg: I2C slave address of the chip (0x38)
24 - interrupt-parent: a phandle pointing to the interrupt controller25 - interrupt-parent: a phandle pointing to the interrupt controller
@@ -43,6 +44,13 @@ Optional properties: · 18 unmodified lines
43 44
44 - offset: allows setting the edge compensation in the range from45 - offset: allows setting the edge compensation in the range from
45 0 to 31.46 0 to 31.
47 - touchscreen-size-x : See touchscreen.txt
48 - touchscreen-size-y : See touchscreen.txt
49 - touchscreen-fuzz-x : See touchscreen.txt
50 - touchscreen-fuzz-y : See touchscreen.txt
51 - touchscreen-inverted-x : See touchscreen.txt
52 - touchscreen-inverted-y : See touchscreen.txt
53 - touchscreen-swapped-x-y : See touchscreen.txt
46 54
47Example:55Example:
48 polytouch: edt-ft5x06@38 {56 polytouch: edt-ft5x06@38 {
Documentation/devicetree/bindings/input/touchscreen/ektf2127.txt+27−0
@@ -0,0 +1,27 @@
1* Elan eKTF2127 I2C touchscreen controller
2
3Required properties:
4 - compatible : "elan,ektf2127"
5 - reg : I2C slave address of the chip (0x40)
6 - interrupt-parent : a phandle pointing to the interrupt controller
7 serving the interrupt for this chip
8 - interrupts : interrupt specification for the ektf2127 interrupt
9 - power-gpios : GPIO specification for the pin connected to the
10 ektf2127's wake input. This needs to be driven high
11 to take ektf2127 out of it's low power state
12
13For additional optional properties see: touchscreen.txt
14
15Example:
16
17i2c@00000000 {
18 ektf2127: touchscreen@15 {
19 compatible = "elan,ektf2127";
20 reg = <0x15>;
21 interrupt-parent = <&pio>;
22 interrupts = <6 11 IRQ_TYPE_EDGE_FALLING>
23 power-gpios = <&pio 1 3 GPIO_ACTIVE_HIGH>;
24 touchscreen-inverted-x;
25 touchscreen-swapped-x-y;
26 };
27};
Documentation/devicetree/bindings/input/touchscreen/focaltech-ft6236.txt+0−35
@@ -1,35 +0,0 @@
1* FocalTech FT6236 I2C touchscreen controller
2
3Required properties:
4 - compatible : "focaltech,ft6236"
5 - reg : I2C slave address of the chip (0x38)
6 - interrupt-parent : a phandle pointing to the interrupt controller
7 serving the interrupt for this chip
8 - interrupts : interrupt specification for the touch controller
9 interrupt
10 - reset-gpios : GPIO specification for the RSTN input
11 - touchscreen-size-x : horizontal resolution of touchscreen (in pixels)
12 - touchscreen-size-y : vertical resolution of touchscreen (in pixels)
13
14Optional properties:
15 - touchscreen-fuzz-x : horizontal noise value of the absolute input
16 device (in pixels)
17 - touchscreen-fuzz-y : vertical noise value of the absolute input
18 device (in pixels)
19 - touchscreen-inverted-x : X axis is inverted (boolean)
20 - touchscreen-inverted-y : Y axis is inverted (boolean)
21 - touchscreen-swapped-x-y: X and Y axis are swapped (boolean)
22 Swapping is done after inverting the axis
23
24Example:
25
26 ft6x06@38 {
27 compatible = "focaltech,ft6236";
28 reg = <0x38>;
29 interrupt-parent = <&gpio>;
30 interrupts = <23 2>;
31 touchscreen-size-x = <320>;
32 touchscreen-size-y = <480>;
33 touchscreen-inverted-x;
34 touchscreen-swapped-x-y;
35 };
Documentation/devicetree/bindings/input/touchscreen/melfas_mip4.txt+21−0
@@ -0,0 +1,21 @@
1* MELFAS MIP4 Touchscreen
2
3Required properties:
4- compatible: must be "melfas,mip4_ts"
5- reg: I2C slave address of the chip (0x48 or 0x34)
6- interrupt-parent: interrupt controller to which the chip is connected
7- interrupts: interrupt to which the chip is connected
8
9Optional properties:
10- ce-gpios: GPIO connected to the CE (chip enable) pin of the chip
11
12Example:
13 i2c@00000000 {
14 touchscreen: melfas_mip4@48 {
15 compatible = "melfas,mip4_ts";
16 reg = <0x48>;
17 interrupt-parent = <&gpio>;
18 interrupts = <0 IRQ_TYPE_EDGE_FALLING>;
19 ce-gpios = <&gpio 0 GPIO_ACTIVE_HIGH>;
20 };
21 };
Documentation/devicetree/bindings/input/touchscreen/silead_gsl1680.txt+1−0
@@ -13,6 +13,7 @@ Required properties: · 12 unmodified lines
13- touchscreen-size-y : See touchscreen.txt13- touchscreen-size-y : See touchscreen.txt
14 14
15Optional properties:15Optional properties:
16- firmware-name : File basename (string) for board specific firmware
16- touchscreen-inverted-x : See touchscreen.txt17- touchscreen-inverted-x : See touchscreen.txt
17- touchscreen-inverted-y : See touchscreen.txt18- touchscreen-inverted-y : See touchscreen.txt
18- touchscreen-swapped-x-y : See touchscreen.txt19- touchscreen-swapped-x-y : See touchscreen.txt
Documentation/devicetree/bindings/input/tps65218-pwrbutton.txt+14−3
@@ -1,13 +1,24 @@
1Texas Instruments TPS65218 power button1Texas Instruments TPS65217 and TPS65218 power button
2
3This module is part of the TPS65217/TPS65218. For more details about the whole
4TPS65217 chip see Documentation/devicetree/bindings/regulator/tps65217.txt.
2 5
3This driver provides a simple power button event via an Interrupt.6This driver provides a simple power button event via an Interrupt.
4 7
5Required properties:8Required properties:
6- compatible: should be "ti,tps65218-pwrbutton"9- compatible: should be "ti,tps65217-pwrbutton" or "ti,tps65218-pwrbutton"
10
11Required properties for TPS65218:
7- interrupts: should be one of the following12- interrupts: should be one of the following
8 - <3 IRQ_TYPE_EDGE_BOTH>: For controllers compatible with tps6521813 - <3 IRQ_TYPE_EDGE_BOTH>: For controllers compatible with tps65218
9 14
10Example:15Examples:
16
17&tps {
18 tps65217-pwrbutton {
19 compatible = "ti,tps65217-pwrbutton";
20 };
21};
11 22
12&tps {23&tps {
13 power-button {24 power-button {
Documentation/devicetree/bindings/interrupt-controller/jcore,aic.txt+26−0
@@ -0,0 +1,26 @@
1J-Core Advanced Interrupt Controller
2
3Required properties:
4
5- compatible: Should be "jcore,aic1" for the (obsolete) first-generation aic
6 with 8 interrupt lines with programmable priorities, or "jcore,aic2" for
7 the "aic2" core with 64 interrupts.
8
9- reg: Memory region(s) for configuration. For SMP, there should be one
10 region per cpu, indexed by the sequential, zero-based hardware cpu
11 number.
12
13- interrupt-controller: Identifies the node as an interrupt controller
14
15- #interrupt-cells: Specifies the number of cells needed to encode an
16 interrupt source. The value shall be 1.
17
18
19Example:
20
21aic: interrupt-controller@200 {
22 compatible = "jcore,aic2";
23 reg = < 0x200 0x30 0x500 0x30 >;
24 interrupt-controller;
25 #interrupt-cells = <1>;
26};
Documentation/devicetree/bindings/interrupt-controller/marvell,armada-8k-pic.txt+25−0
@@ -0,0 +1,25 @@
1Marvell Armada 7K/8K PIC Interrupt controller
2---------------------------------------------
3
4This is the Device Tree binding for the PIC, a secondary interrupt
5controller available on the Marvell Armada 7K/8K ARM64 SoCs, and
6typically connected to the GIC as the primary interrupt controller.
7
8Required properties:
9- compatible: should be "marvell,armada-8k-pic"
10- interrupt-controller: identifies the node as an interrupt controller
11- #interrupt-cells: the number of cells to define interrupts on this
12 controller. Should be 1
13- reg: the register area for the PIC interrupt controller
14- interrupts: the interrupt to the primary interrupt controller,
15 typically the GIC
16
17Example:
18
19 pic: interrupt-controller@3f0100 {
20 compatible = "marvell,armada-8k-pic";
21 reg = <0x3f0100 0x10>;
22 #interrupt-cells = <1>;
23 interrupt-controller;
24 interrupts = <GIC_PPI 15 IRQ_TYPE_LEVEL_HIGH>;
25 };
Documentation/devicetree/bindings/interrupt-controller/marvell,odmi-controller.txt+1−1
@@ -31,7 +31,7 @@ Required properties: · 30 unmodified lines
31Example:31Example:
32 32
33 odmi: odmi@300000 {33 odmi: odmi@300000 {
34 compatible = "marvell,ap806-odm-controller",34 compatible = "marvell,ap806-odmi-controller",
35 "marvell,odmi-controller";35 "marvell,odmi-controller";
36 interrupt-controller;36 interrupt-controller;
37 msi-controller;37 msi-controller;
Documentation/devicetree/bindings/interrupt-controller/renesas,irqc.txt+3−1
@@ -1,10 +1,12 @@
1DT bindings for the R-Mobile/R-Car interrupt controller1DT bindings for the R-Mobile/R-Car/RZ/G interrupt controller
2 2
3Required properties:3Required properties:
4 4
5- compatible: has to be "renesas,irqc-<soctype>", "renesas,irqc" as fallback.5- compatible: has to be "renesas,irqc-<soctype>", "renesas,irqc" as fallback.
6 Examples with soctypes are:6 Examples with soctypes are:
7 - "renesas,irqc-r8a73a4" (R-Mobile APE6)7 - "renesas,irqc-r8a73a4" (R-Mobile APE6)
8 - "renesas,irqc-r8a7743" (RZ/G1M)
9 - "renesas,irqc-r8a7745" (RZ/G1E)
8 - "renesas,irqc-r8a7790" (R-Car H2)10 - "renesas,irqc-r8a7790" (R-Car H2)
9 - "renesas,irqc-r8a7791" (R-Car M2-W)11 - "renesas,irqc-r8a7791" (R-Car M2-W)
10 - "renesas,irqc-r8a7792" (R-Car V2H)12 - "renesas,irqc-r8a7792" (R-Car V2H)
Documentation/devicetree/bindings/interrupt-controller/st,stm32-exti.txt+20−0
@@ -0,0 +1,20 @@
1STM32 External Interrupt Controller
2
3Required properties:
4
5- compatible: Should be "st,stm32-exti"
6- reg: Specifies base physical address and size of the registers
7- interrupt-controller: Indentifies the node as an interrupt controller
8- #interrupt-cells: Specifies the number of cells to encode an interrupt
9 specifier, shall be 2
10- interrupts: interrupts references to primary interrupt controller
11
12Example:
13
14exti: interrupt-controller@40013c00 {
15 compatible = "st,stm32-exti";
16 interrupt-controller;
17 #interrupt-cells = <2>;
18 reg = <0x40013C00 0x400>;
19 interrupts = <1>, <2>, <3>, <6>, <7>, <8>, <9>, <10>, <23>, <40>, <41>, <42>, <62>, <76>;
20};
Documentation/devicetree/bindings/iommu/arm,smmu-v3.txt+7−1
@@ -27,6 +27,12 @@ the PCIe specification. · 26 unmodified lines
27 * "cmdq-sync" - CMD_SYNC complete27 * "cmdq-sync" - CMD_SYNC complete
28 * "gerror" - Global Error activated28 * "gerror" - Global Error activated
29 29
30- #iommu-cells : See the generic IOMMU binding described in
31 devicetree/bindings/pci/pci-iommu.txt
32 for details. For SMMUv3, must be 1, with each cell
33 describing a single stream ID. All possible stream
34 IDs which a device may emit must be described.
35
30** SMMUv3 optional properties:36** SMMUv3 optional properties:
31 37
32- dma-coherent : Present if DMA operations made by the SMMU (page38- dma-coherent : Present if DMA operations made by the SMMU (page
@@ -54,6 +60,6 @@ the PCIe specification. · 21 unmodified lines
54 <GIC_SPI 79 IRQ_TYPE_EDGE_RISING>;60 <GIC_SPI 79 IRQ_TYPE_EDGE_RISING>;
55 interrupt-names = "eventq", "priq", "cmdq-sync", "gerror";61 interrupt-names = "eventq", "priq", "cmdq-sync", "gerror";
56 dma-coherent;62 dma-coherent;
57 #iommu-cells = <0>;63 #iommu-cells = <1>;
58 msi-parent = <&its 0xff0000>;64 msi-parent = <&its 0xff0000>;
59 };65 };
Documentation/devicetree/bindings/iommu/arm,smmu.txt+47−14
@@ -35,12 +35,16 @@ conditions. · 34 unmodified lines
35 interrupt per context bank. In the case of a single,35 interrupt per context bank. In the case of a single,
36 combined interrupt, it must be listed multiple times.36 combined interrupt, it must be listed multiple times.
37 37
38- mmu-masters : A list of phandles to device nodes representing bus38- #iommu-cells : See Documentation/devicetree/bindings/iommu/iommu.txt
39 masters for which the SMMU can provide a translation39 for details. With a value of 1, each "iommus" entry
40 and their corresponding StreamIDs (see example below).40 represents a distinct stream ID emitted by that device
41 Each device node linked from this list must have a41 into the relevant SMMU.
42 "#stream-id-cells" property, indicating the number of42
43 StreamIDs associated with it.43 SMMUs with stream matching support and complex masters
44 may use a value of 2, where the second cell represents
45 an SMR mask to combine with the ID in the first cell.
46 Care must be taken to ensure the set of matched IDs
47 does not result in conflicts.
44 48
45** System MMU optional properties:49** System MMU optional properties:
46 50
@@ -56,9 +60,20 @@ conditions. · 9 unmodified lines
56 aliases of secure registers have to be used during60 aliases of secure registers have to be used during
57 SMMU configuration.61 SMMU configuration.
58 62
59Example:63** Deprecated properties:
64
65- mmu-masters (deprecated in favour of the generic "iommus" binding) :
66 A list of phandles to device nodes representing bus
67 masters for which the SMMU can provide a translation
68 and their corresponding Stream IDs. Each device node
69 linked from this list must have a "#stream-id-cells"
70 property, indicating the number of Stream ID
71 arguments associated with its phandle.
60 72
61 smmu {73** Examples:
74
75 /* SMMU with stream matching or stream indexing */
76 smmu1: iommu {
62 compatible = "arm,smmu-v1";77 compatible = "arm,smmu-v1";
63 reg = <0xba5e0000 0x10000>;78 reg = <0xba5e0000 0x10000>;
64 #global-interrupts = <2>;79 #global-interrupts = <2>;
@@ -68,11 +83,29 @@ Example: · 3 unmodified lines
68 <0 35 4>,83 <0 35 4>,
69 <0 36 4>,84 <0 36 4>,
70 <0 37 4>;85 <0 37 4>;
86 #iommu-cells = <1>;
87 };
88
89 /* device with two stream IDs, 0 and 7 */
90 master1 {
91 iommus = <&smmu1 0>,
92 <&smmu1 7>;
93 };
94
95
96 /* SMMU with stream matching */
97 smmu2: iommu {
98 ...
99 #iommu-cells = <2>;
100 };
101
102 /* device with stream IDs 0 and 7 */
103 master2 {
104 iommus = <&smmu2 0 0>,
105 <&smmu2 7 0>;
106 };
71 107
72 /*108 /* device with stream IDs 1, 17, 33 and 49 */
73 * Two DMA controllers, the first with two StreamIDs (0xd01d109 master3 {
74 * and 0xd01e) and the second with only one (0xd11c).110 iommus = <&smmu2 1 0x30>;
75 */
76 mmu-masters = <&dma0 0xd01d 0xd01e>,
77 <&dma1 0xd11c>;
78 };111 };
Documentation/devicetree/bindings/ipmi/aspeed,ast2400-bt-bmc.txt+23−0
@@ -0,0 +1,23 @@
1* Aspeed BT (Block Transfer) IPMI interface
2
3The Aspeed SOCs (AST2400 and AST2500) are commonly used as BMCs
4(BaseBoard Management Controllers) and the BT interface can be used to
5perform in-band IPMI communication with their host.
6
7Required properties:
8
9- compatible : should be "aspeed,ast2400-bt-bmc"
10- reg: physical address and size of the registers
11
12Optional properties:
13
14- interrupts: interrupt generated by the BT interface. without an
15 interrupt, the driver will operate in poll mode.
16
17Example:
18
19 ibt@1e789140 {
20 compatible = "aspeed,ast2400-bt-bmc";
21 reg = <0x1e789140 0x18>;
22 interrupts = <8>;
23 };
Documentation/devicetree/bindings/ipmi/ipmi-smic.txtrenamed from Documentation/devicetree/bindings/ipmi.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/leds/common.txt+7−0
@@ -19,6 +19,13 @@ Optional properties for child nodes: · 18 unmodified lines
19 a device, i.e. no other LED class device can be assigned the same19 a device, i.e. no other LED class device can be assigned the same
20 label.20 label.
21 21
22- default-state : The initial state of the LED. Valid values are "on", "off",
23 and "keep". If the LED is already on or off and the default-state property is
24 set the to same value, then no glitch should be produced where the LED
25 momentarily turns off (or on). The "keep" setting will keep the LED at
26 whatever its current state is, without producing a glitch. The default is
27 off if this property is not present.
28
22- linux,default-trigger : This parameter, if present, is a29- linux,default-trigger : This parameter, if present, is a
23 string defining the trigger assigned to the LED. Current triggers are:30 string defining the trigger assigned to the LED. Current triggers are:
24 "backlight" - LED will act as a back-light, controlled by the framebuffer31 "backlight" - LED will act as a back-light, controlled by the framebuffer
Documentation/devicetree/bindings/leds/leds-bcm6328.txt+1−1
@@ -49,7 +49,7 @@ LED sub-node optional properties: · 48 unmodified lines
49 - active-low : Boolean, makes LED active low.49 - active-low : Boolean, makes LED active low.
50 Default : false50 Default : false
51 - default-state : see51 - default-state : see
52 Documentation/devicetree/bindings/leds/leds-gpio.txt52 Documentation/devicetree/bindings/leds/common.txt
53 - linux,default-trigger : see53 - linux,default-trigger : see
54 Documentation/devicetree/bindings/leds/common.txt54 Documentation/devicetree/bindings/leds/common.txt
55 55
Documentation/devicetree/bindings/leds/leds-bcm6358.txt+1−1
@@ -28,7 +28,7 @@ LED sub-node optional properties: · 27 unmodified lines
28 - active-low : Boolean, makes LED active low.28 - active-low : Boolean, makes LED active low.
29 Default : false29 Default : false
30 - default-state : see30 - default-state : see
31 Documentation/devicetree/bindings/leds/leds-gpio.txt31 Documentation/devicetree/bindings/leds/common.txt
32 - linux,default-trigger : see32 - linux,default-trigger : see
33 Documentation/devicetree/bindings/leds/common.txt33 Documentation/devicetree/bindings/leds/common.txt
34 34
Documentation/devicetree/bindings/leds/leds-gpio.txt+2−7
@@ -14,13 +14,8 @@ LED sub-node properties: · 13 unmodified lines
14 see Documentation/devicetree/bindings/leds/common.txt14 see Documentation/devicetree/bindings/leds/common.txt
15- linux,default-trigger : (optional)15- linux,default-trigger : (optional)
16 see Documentation/devicetree/bindings/leds/common.txt16 see Documentation/devicetree/bindings/leds/common.txt
17- default-state: (optional) The initial state of the LED. Valid17- default-state: (optional) The initial state of the LED.
18 values are "on", "off", and "keep". If the LED is already on or off18 see Documentation/devicetree/bindings/leds/common.txt
19 and the default-state property is set the to same value, then no
20 glitch should be produced where the LED momentarily turns off (or
21 on). The "keep" setting will keep the LED at whatever its current
22 state is, without producing a glitch. The default is off if this
23 property is not present.
24- retain-state-suspended: (optional) The suspend state can be retained.Such19- retain-state-suspended: (optional) The suspend state can be retained.Such
25 as charge-led gpio.20 as charge-led gpio.
26- panic-indicator : (optional)21- panic-indicator : (optional)
Documentation/devicetree/bindings/leds/leds-is31fl319x.txt+59−0
@@ -0,0 +1,59 @@
1LEDs connected to is31fl319x LED controller chip
2
3Required properties:
4- compatible : Should be any of
5 "issi,is31fl3190"
6 "issi,is31fl3191"
7 "issi,is31fl3193"
8 "issi,is31fl3196"
9 "issi,is31fl3199"
10 "si-en,sn3199".
11- #address-cells: Must be 1.
12- #size-cells: Must be 0.
13- reg: 0x64, 0x65, 0x66, or 0x67.
14
15Optional properties:
16- audio-gain-db : audio gain selection for external analog modulation input.
17 Valid values: 0 - 21, step by 3 (rounded down)
18 Default: 0
19
20Each led is represented as a sub-node of the issi,is31fl319x device.
21There can be less leds subnodes than the chip can support but not more.
22
23Required led sub-node properties:
24- reg : number of LED line
25 Valid values: 1 - number of leds supported by the chip variant.
26
27Optional led sub-node properties:
28- label : see Documentation/devicetree/bindings/leds/common.txt.
29- linux,default-trigger :
30 see Documentation/devicetree/bindings/leds/common.txt.
31- led-max-microamp : (optional)
32 Valid values: 5000 - 40000, step by 5000 (rounded down)
33 Default: 20000 (20 mA)
34 Note: a driver will take the lowest of all led limits since the
35 chip has a single global setting. The lowest value will be chosen
36 due to the PWM specificity, where lower brightness is achieved
37 by reducing the dury-cycle of pulses and not the current, which
38 will always have its peak value equal to led-max-microamp.
39
40Examples:
41
42fancy_leds: leds@65 {
43 compatible = "issi,is31fl3196";
44 #address-cells = <1>;
45 #size-cells = <0>;
46 reg = <0x65>;
47
48 red_aux: led@1 {
49 label = "red:aux";
50 reg = <1>;
51 led-max-microamp = <10000>;
52 };
53
54 green_power: led@5 {
55 label = "green:power";
56 reg = <5>;
57 linux,default-trigger = "default-on";
58 };
59};
Documentation/devicetree/bindings/leds/leds-pm8058.txt+67−0
@@ -0,0 +1,67 @@
1Qualcomm PM8058 LED driver
2
3The Qualcomm PM8058 is a multi-functional device which contains
4an LED driver block for up to six LEDs: three normal LEDs, two
5"flash" LEDs and one "keypad backlight" LED. The names are
6quoted because sometimes these LED drivers are used for wildly
7different things than flash or keypad backlight: their names
8are more of a suggestion than a hard-wired usecase.
9
10Hardware-wise the different LEDs support slightly different
11output currents. The "flash" LEDs do not need to charge nor
12do they support external triggers. They are just powerful LED
13drivers.
14
15The LEDs appear as children to the PM8058 device, with the
16proper compatible string. For the PM8058 bindings see:
17mfd/qcom-pm8xxx.txt.
18
19Each LED is represented as a sub-node of the syscon device. Each
20node's name represents the name of the corresponding LED.
21
22LED sub-node properties:
23
24Required properties:
25- compatible: one of
26 "qcom,pm8058-led" (for the normal LEDs at 0x131, 0x132 and 0x133)
27 "qcom,pm8058-keypad-led" (for the "keypad" LED at 0x48)
28 "qcom,pm8058-flash-led" (for the "flash" LEDs at 0x49 and 0xFB)
29
30Optional properties:
31- label: see Documentation/devicetree/bindings/leds/common.txt
32- default-state: see Documentation/devicetree/bindings/leds/common.txt
33- linux,default-trigger: see Documentation/devicetree/bindings/leds/common.txt
34
35Example:
36
37qcom,ssbi@500000 {
38 pmicintc: pmic@0 {
39 compatible = "qcom,pm8058";
40 led@48 {
41 compatible = "qcom,pm8058-keypad-led";
42 reg = <0x48>;
43 label = "pm8050:white:keypad";
44 default-state = "off";
45 };
46 led@131 {
47 compatible = "qcom,pm8058-led";
48 reg = <0x131>;
49 label = "pm8058:red";
50 default-state = "off";
51 };
52 led@132 {
53 compatible = "qcom,pm8058-led";
54 reg = <0x132>;
55 label = "pm8058:yellow";
56 default-state = "off";
57 linux,default-trigger = "mmc0";
58 };
59 led@133 {
60 compatible = "qcom,pm8058-led";
61 reg = <0x133>;
62 label = "pm8058:green";
63 default-state = "on";
64 linux,default-trigger = "heartbeat";
65 };
66 };
67};
Documentation/devicetree/bindings/leds/register-bit-led.txt+2−7
@@ -23,13 +23,8 @@ Optional properties: · 22 unmodified lines
23 see Documentation/devicetree/bindings/leds/common.txt23 see Documentation/devicetree/bindings/leds/common.txt
24- linux,default-trigger : (optional)24- linux,default-trigger : (optional)
25 see Documentation/devicetree/bindings/leds/common.txt25 see Documentation/devicetree/bindings/leds/common.txt
26- default-state: (optional) The initial state of the LED. Valid26- default-state: (optional) The initial state of the LED
27 values are "on", "off", and "keep". If the LED is already on or off27 see Documentation/devicetree/bindings/leds/common.txt
28 and the default-state property is set the to same value, then no
29 glitch should be produced where the LED momentarily turns off (or
30 on). The "keep" setting will keep the LED at whatever its current
31 state is, without producing a glitch. The default is off if this
32 property is not present.
33 28
34Example:29Example:
35 30
Documentation/devicetree/bindings/mailbox/meson-mhu.txt+34−0
@@ -0,0 +1,34 @@
1Amlogic Meson MHU Mailbox Driver
2================================
3
4The Amlogic's Meson SoCs Message-Handling-Unit (MHU) is a mailbox controller
5that has 3 independent channels/links to communicate with remote processor(s).
6MHU links are hardwired on a platform. A link raises interrupt for any
7received data. However, there is no specified way of knowing if the sent
8data has been read by the remote. This driver assumes the sender polls
9STAT register and the remote clears it after having read the data.
10
11Mailbox Device Node:
12====================
13
14Required properties:
15--------------------
16- compatible: Shall be "amlogic,meson-gxbb-mhu"
17- reg: Contains the mailbox register address range (base
18 address and length)
19- #mbox-cells Shall be 1 - the index of the channel needed.
20- interrupts: Contains the interrupt information corresponding to
21 each of the 2 links of MHU.
22
23Example:
24--------
25
26 mailbox: mailbox@c883c404 {
27 #mbox-cells = <1>;
28 compatible = "amlogic,meson-gxbb-mhu";
29 reg = <0 0xc883c404 0 0x4c>;
30 interrupts = <0 208 IRQ_TYPE_EDGE_RISING>,
31 <0 209 IRQ_TYPE_EDGE_RISING>,
32 <0 210 IRQ_TYPE_EDGE_RISING>;
33 #mbox-cells = <1>;
34 };
Documentation/devicetree/bindings/media/atmel-isc.txt+65−0
@@ -0,0 +1,65 @@
1Atmel Image Sensor Controller (ISC)
2----------------------------------------------
3
4Required properties for ISC:
5- compatible
6 Must be "atmel,sama5d2-isc".
7- reg
8 Physical base address and length of the registers set for the device.
9- interrupts
10 Should contain IRQ line for the ISC.
11- clocks
12 List of clock specifiers, corresponding to entries in
13 the clock-names property;
14 Please refer to clock-bindings.txt.
15- clock-names
16 Required elements: "hclock", "iscck", "gck".
17- #clock-cells
18 Should be 0.
19- clock-output-names
20 Should be "isc-mck".
21- pinctrl-names, pinctrl-0
22 Please refer to pinctrl-bindings.txt.
23
24ISC supports a single port node with parallel bus. It should contain one
25'port' child node with child 'endpoint' node. Please refer to the bindings
26defined in Documentation/devicetree/bindings/media/video-interfaces.txt.
27
28Example:
29isc: isc@f0008000 {
30 compatible = "atmel,sama5d2-isc";
31 reg = <0xf0008000 0x4000>;
32 interrupts = <46 IRQ_TYPE_LEVEL_HIGH 5>;
33 clocks = <&isc_clk>, <&iscck>, <&isc_gclk>;
34 clock-names = "hclock", "iscck", "gck";
35 #clock-cells = <0>;
36 clock-output-names = "isc-mck";
37 pinctrl-names = "default";
38 pinctrl-0 = <&pinctrl_isc_base &pinctrl_isc_data_8bit &pinctrl_isc_data_9_10 &pinctrl_isc_data_11_12>;
39
40 port {
41 isc_0: endpoint {
42 remote-endpoint = <&ov7740_0>;
43 hsync-active = <1>;
44 vsync-active = <0>;
45 pclk-sample = <1>;
46 };
47 };
48};
49
50i2c1: i2c@fc028000 {
51 ov7740: camera@21 {
52 compatible = "ovti,ov7740";
53 reg = <0x21>;
54 clocks = <&isc>;
55 clock-names = "xvclk";
56 assigned-clocks = <&isc>;
57 assigned-clock-rates = <24000000>;
58
59 port {
60 ov7740_0: endpoint {
61 remote-endpoint = <&isc_0>;
62 };
63 };
64 };
65};
Documentation/devicetree/bindings/media/exynos4-fimc-is.txt+4−3
@@ -16,9 +16,10 @@ Required properties: · 15 unmodified lines
16- clocks : list of clock specifiers, corresponding to entries in16- clocks : list of clock specifiers, corresponding to entries in
17 clock-names property;17 clock-names property;
18- clock-names : must contain "ppmuispx", "ppmuispx", "lite0", "lite1"18- clock-names : must contain "ppmuispx", "ppmuispx", "lite0", "lite1"
19 "mpll", "sysreg", "isp", "drc", "fd", "mcuisp", "uart",19 "mpll", "sysreg", "isp", "drc", "fd", "mcuisp", "gicisp",
20 "ispdiv0", "ispdiv1", "mcuispdiv0", "mcuispdiv1", "aclk200",20 "pwm_isp", "mcuctl_isp", "uart", "ispdiv0", "ispdiv1",
21 "div_aclk200", "aclk400mcuisp", "div_aclk400mcuisp" entries,21 "mcuispdiv0", "mcuispdiv1", "aclk200", "div_aclk200",
22 "aclk400mcuisp", "div_aclk400mcuisp" entries,
22 matching entries in the clocks property.23 matching entries in the clocks property.
23pmu subnode24pmu subnode
24-----------25-----------
Documentation/devicetree/bindings/media/i2c/ad5820.txt+19−0
@@ -0,0 +1,19 @@
1* Analog Devices AD5820 autofocus coil
2
3Required Properties:
4
5 - compatible: Must contain "adi,ad5820"
6
7 - reg: I2C slave address
8
9 - VANA-supply: supply of voltage for VANA pin
10
11Example:
12
13 ad5820: coil@c {
14 compatible = "adi,ad5820";
15 reg = <0x0c>;
16
17 VANA-supply = <&vaux4>;
18 };
19
Documentation/devicetree/bindings/media/i2c/adv7180.txt+5−0
@@ -15,6 +15,11 @@ Required Properties : · 14 unmodified lines
15 "adi,adv7282"15 "adi,adv7282"
16 "adi,adv7282-m"16 "adi,adv7282-m"
17 17
18Optional Properties :
19- powerdown-gpios: reference to the GPIO connected to the powerdown pin,
20 if any.
21
22
18Example:23Example:
19 24
20 i2c0@1c22000 {25 i2c0@1c22000 {
Documentation/devicetree/bindings/media/meson-ir.txt+4−1
@@ -1,7 +1,10 @@
1* Amlogic Meson IR remote control receiver1* Amlogic Meson IR remote control receiver
2 2
3Required properties:3Required properties:
4 - compatible : should be "amlogic,meson6-ir"4 - compatible : depending on the platform this should be one of:
5 - "amlogic,meson6-ir"
6 - "amlogic,meson8b-ir"
7 - "amlogic,meson-gxbb-ir"
5 - reg : physical base address and length of the device registers8 - reg : physical base address and length of the device registers
6 - interrupts : a single specifier for the interrupt from the device9 - interrupts : a single specifier for the interrupt from the device
7 10
Documentation/devicetree/bindings/media/renesas,fcp.txt+8−1
@@ -7,12 +7,14 @@ conversion of AXI transactions in order to reduce the memory bandwidth. · 6 unmodified lines
7 7
8There are three types of FCP: FCP for Codec (FCPC), FCP for VSP (FCPV) and FCP8There are three types of FCP: FCP for Codec (FCPC), FCP for VSP (FCPV) and FCP
9for FDP (FCPF). Their configuration and behaviour depend on the module they9for FDP (FCPF). Their configuration and behaviour depend on the module they
10are paired with. These DT bindings currently support the FCPV only.10are paired with. These DT bindings currently support the FCPV and FCPF.
11 11
12 - compatible: Must be one or more of the following12 - compatible: Must be one or more of the following
13 13
14 - "renesas,r8a7795-fcpv" for R8A7795 (R-Car H3) compatible 'FCP for VSP'14 - "renesas,r8a7795-fcpv" for R8A7795 (R-Car H3) compatible 'FCP for VSP'
15 - "renesas,r8a7795-fcpf" for R8A7795 (R-Car H3) compatible 'FCP for FDP'
15 - "renesas,fcpv" for generic compatible 'FCP for VSP'16 - "renesas,fcpv" for generic compatible 'FCP for VSP'
17 - "renesas,fcpf" for generic compatible 'FCP for FDP'
16 18
17 When compatible with the generic version, nodes must list the19 When compatible with the generic version, nodes must list the
18 SoC-specific version corresponding to the platform first, followed by the20 SoC-specific version corresponding to the platform first, followed by the
@@ -21,6 +23,10 @@ are paired with. These DT bindings currently support the FCPV only. · 2 unmodified lines
21 - reg: the register base and size for the device registers23 - reg: the register base and size for the device registers
22 - clocks: Reference to the functional clock24 - clocks: Reference to the functional clock
23 25
26Optional properties:
27 - power-domains : power-domain property defined with a power domain specifier
28 to respective power domain.
29
24 30
25Device node example31Device node example
26-------------------32-------------------
@@ -29,4 +35,5 @@ Device node example · 2 unmodified lines
29 compatible = "renesas,r8a7795-fcpv", "renesas,fcpv";35 compatible = "renesas,r8a7795-fcpv", "renesas,fcpv";
30 reg = <0 0xfea2f000 0 0x200>;36 reg = <0 0xfea2f000 0 0x200>;
31 clocks = <&cpg CPG_MOD 602>;37 clocks = <&cpg CPG_MOD 602>;
38 power-domains = <&sysc R8A7795_PD_A3VP>;
32 };39 };
Documentation/devicetree/bindings/media/st,st-hva.txt+24−0
@@ -0,0 +1,24 @@
1st-hva: multi-format video encoder for STMicroelectronics SoC.
2
3Required properties:
4- compatible: should be "st,st-hva".
5- reg: HVA physical address location and length, esram address location and
6 length.
7- reg-names: names of the registers listed in registers property in the same
8 order.
9- interrupts: HVA interrupt number.
10- clocks: from common clock binding: handle hardware IP needed clocks, the
11 number of clocks may depend on the SoC type.
12 See ../clock/clock-bindings.txt for details.
13- clock-names: names of the clocks listed in clocks property in the same order.
14
15Example:
16 hva@8c85000{
17 compatible = "st,st-hva";
18 reg = <0x8c85000 0x400>, <0x6000000 0x40000>;
19 reg-names = "hva_registers", "hva_esram";
20 interrupts = <GIC_SPI 58 IRQ_TYPE_NONE>,
21 <GIC_SPI 59 IRQ_TYPE_NONE>;
22 clock-names = "clk_hva";
23 clocks = <&clk_s_c0_flexgen CLK_HVA>;
24 };
Documentation/devicetree/bindings/media/stih-cec.txt+25−0
@@ -0,0 +1,25 @@
1STMicroelectronics STIH4xx HDMI CEC driver
2
3Required properties:
4 - compatible : value should be "st,stih-cec"
5 - reg : Physical base address of the IP registers and length of memory
6 mapped region.
7 - clocks : from common clock binding: handle to HDMI CEC clock
8 - interrupts : HDMI CEC interrupt number to the CPU.
9 - pinctrl-names: Contains only one value - "default"
10 - pinctrl-0: Specifies the pin control groups used for CEC hardware.
11 - resets: Reference to a reset controller
12
13Example for STIH407:
14
15sti-cec@094a087c {
16 compatible = "st,stih-cec";
17 reg = <0x94a087c 0x64>;
18 clocks = <&clk_sysin>;
19 clock-names = "cec-clk";
20 interrupts = <GIC_SPI 140 IRQ_TYPE_NONE>;
21 interrupt-names = "cec-irq";
22 pinctrl-names = "default";
23 pinctrl-0 = <&pinctrl_cec0_default>;
24 resets = <&softreset STIH407_LPM_SOFTRESET>;
25};
Documentation/devicetree/bindings/memory-controllers/fsl/ddr.txtrenamed from Documentation/devicetree/bindings/powerpc/fsl/mem-ctrlr.txt+2−0
@@ -7,6 +7,8 @@ Properties: · 6 unmodified lines
7 "fsl,qoriq-memory-controller".7 "fsl,qoriq-memory-controller".
8- reg : Address and size of DDR controller registers8- reg : Address and size of DDR controller registers
9- interrupts : Error interrupt of DDR controller9- interrupts : Error interrupt of DDR controller
10- little-endian : Specifies little-endian access to registers
11 If omitted, big-endian will be used.
10 12
11Example 1:13Example 1:
12 14
Documentation/devicetree/bindings/mfd/ac100.txt+54−0
@@ -0,0 +1,54 @@
1X-Powers AC100 Codec/RTC IC Device Tree bindings
2
3AC100 is a audio codec and RTC subsystem combo IC. The 2 parts are
4separated, including power supplies and interrupt lines, but share
5a common register address space and host interface.
6
7Required properties:
8- compatible: "x-powers,ac100"
9- reg: The I2C slave address or RSB hardware address for the chip
10- sub-nodes:
11 - codec
12 - compatible: "x-powers,ac100-codec"
13 - interrupt-parent: The parent interrupt controller
14 - interrupts: SoC NMI / GPIO interrupt connected to the
15 IRQ_AUDIO pin
16 - #clock-cells: Shall be 0
17 - clock-output-names: "4M_adda"
18
19 - see clock/clock-bindings.txt for common clock bindings
20
21 - rtc
22 - compatible: "x-powers,ac100-rtc"
23 - interrupt-parent: The parent interrupt controller
24 - interrupts: SoC NMI / GPIO interrupt connected to the
25 IRQ_RTC pin
26 - clocks: A phandle to the codec's "4M_adda" clock
27 - #clock-cells: Shall be 1
28 - clock-output-names: "cko1_rtc", "cko2_rtc", "cko3_rtc"
29
30 - see clock/clock-bindings.txt for common clock bindings
31
32Example:
33
34ac100: codec@e89 {
35 compatible = "x-powers,ac100";
36 reg = <0xe89>;
37
38 ac100_codec: codec {
39 compatible = "x-powers,ac100-codec";
40 interrupt-parent = <&r_pio>;
41 interrupts = <0 9 IRQ_TYPE_LEVEL_LOW>; /* PL9 */
42 #clock-cells = <0>;
43 clock-output-names = "4M_adda";
44 };
45
46 ac100_rtc: rtc {
47 compatible = "x-powers,ac100-rtc";
48 interrupt-parent = <&nmi_intc>;
49 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
50 clocks = <&ac100_codec>;
51 #clock-cells = <1>;
52 clock-output-names = "cko1_rtc", "cko2_rtc", "cko3_rtc";
53 };
54};
Documentation/devicetree/bindings/mfd/act8945a.txt+15−7
@@ -14,13 +14,6 @@ Example: · 13 unmodified lines
14 reg = <0x5b>;14 reg = <0x5b>;
15 status = "okay";15 status = "okay";
16 16
17 pinctrl-names = "default";
18 pinctrl-0 = <&pinctrl_charger_chglev>;
19 active-semi,chglev-gpio = <&pioA 12 GPIO_ACTIVE_HIGH>;
20 active-semi,input-voltage-threshold-microvolt = <6600>;
21 active-semi,precondition-timeout = <40>;
22 active-semi,total-timeout = <3>;
23
24 active-semi,vsel-high;17 active-semi,vsel-high;
25 18
26 regulators {19 regulators {
@@ -73,4 +66,19 @@ Example: · 46 unmodified lines
73 regulator-always-on;66 regulator-always-on;
74 };67 };
75 };68 };
69
70 charger {
71 compatible = "active-semi,act8945a-charger";
72 pinctrl-names = "default";
73 pinctrl-0 = <&pinctrl_charger_chglev &pinctrl_charger_lbo &pinctrl_charger_irq>;
74 interrupt-parent = <&pioA>;
75 interrupts = <45 GPIO_ACTIVE_LOW>;
76
77 active-semi,chglev-gpios = <&pioA 12 GPIO_ACTIVE_HIGH>;
78 active-semi,lbo-gpios = <&pioA 72 GPIO_ACTIVE_LOW>;
79 active-semi,input-voltage-threshold-microvolt = <6600>;
80 active-semi,precondition-timeout = <40>;
81 active-semi,total-timeout = <3>;
82 status = "okay";
83 };
76 };84 };
Documentation/devicetree/bindings/mfd/arizona.txt+18−0
@@ -85,6 +85,24 @@ Optional properties: · 84 unmodified lines
85 present, the number of values should be less than or equal to the85 present, the number of values should be less than or equal to the
86 number of inputs, unspecified inputs will use the chip default.86 number of inputs, unspecified inputs will use the chip default.
87 87
88 - wlf,max-channels-clocked : The maximum number of channels to be clocked on
89 each AIF, useful for I2S systems with multiple data lines being mastered.
90 Specify one cell for each AIF to be configured, specify zero for AIFs that
91 should be handled normally.
92 If present, number of cells must be less than or equal to the number of
93 AIFs. If less than the number of AIFs, for cells that have not been
94 specified the corresponding AIFs will be treated as default setting.
95
96 - wlf,spk-fmt : PDM speaker data format, must contain 2 cells (OUT5 and OUT6).
97 See the datasheet for values.
98 The second cell is ignored for codecs that do not have OUT6 (wm5102, wm8997,
99 wm8998, wm1814)
100
101 - wlf,spk-mute : PDM speaker mute setting, must contain 2 cells (OUT5 and OUT6).
102 See the datasheet for values.
103 The second cell is ignored for codecs that do not have OUT6 (wm5102, wm8997,
104 wm8998, wm1814)
105
88 - DCVDD-supply, MICVDD-supply : Power supplies, only need to be specified if106 - DCVDD-supply, MICVDD-supply : Power supplies, only need to be specified if
89 they are being externally supplied. As covered in107 they are being externally supplied. As covered in
90 Documentation/devicetree/bindings/regulator/regulator.txt108 Documentation/devicetree/bindings/regulator/regulator.txt
Documentation/devicetree/bindings/mfd/aspeed-scu.txt+18−0
@@ -0,0 +1,18 @@
1The Aspeed System Control Unit manages the global behaviour of the SoC,
2configuring elements such as clocks, pinmux, and reset.
3
4Required properties:
5- compatible: One of:
6 "aspeed,ast2400-scu", "syscon", "simple-mfd"
7 "aspeed,g4-scu", "syscon", "simple-mfd"
8 "aspeed,ast2500-scu", "syscon", "simple-mfd"
9 "aspeed,g5-scu", "syscon", "simple-mfd"
10
11- reg: contains the offset and length of the SCU memory region
12
13Example:
14
15syscon: syscon@1e6e2000 {
16 compatible = "aspeed,ast2400-scu", "syscon", "simple-mfd";
17 reg = <0x1e6e2000 0x1a8>;
18};
Documentation/devicetree/bindings/mfd/axp20x.txt+26−2
@@ -10,7 +10,8 @@ axp809 (X-Powers) · 9 unmodified lines
10 10
11Required properties:11Required properties:
12- compatible: "x-powers,axp152", "x-powers,axp202", "x-powers,axp209",12- compatible: "x-powers,axp152", "x-powers,axp202", "x-powers,axp209",
13 "x-powers,axp221", "x-powers,axp223", "x-powers,axp809"13 "x-powers,axp221", "x-powers,axp223", "x-powers,axp806",
14 "x-powers,axp809"
14- reg: The I2C slave address or RSB hardware address for the AXP chip15- reg: The I2C slave address or RSB hardware address for the AXP chip
15- interrupt-parent: The parent interrupt controller16- interrupt-parent: The parent interrupt controller
16- interrupts: SoC NMI / GPIO interrupt connected to the PMIC's IRQ pin17- interrupts: SoC NMI / GPIO interrupt connected to the PMIC's IRQ pin
@@ -47,7 +48,6 @@ Optional properties for DCDC regulators: · 30 unmodified lines
47 probably makes sense for HiFi audio related48 probably makes sense for HiFi audio related
48 applications that aren't battery constrained.49 applications that aren't battery constrained.
49 50
50
51AXP202/AXP209 regulators, type, and corresponding input supply names:51AXP202/AXP209 regulators, type, and corresponding input supply names:
52 52
53Regulator Type Supply Name Notes53Regulator Type Supply Name Notes
@@ -86,6 +86,30 @@ LDO_IO1 : LDO : ips-supply : GPIO 1 · 32 unmodified lines
86RTC_LDO : LDO : ips-supply : always on86RTC_LDO : LDO : ips-supply : always on
87DRIVEVBUS : Enable output : drivevbus-supply : external regulator87DRIVEVBUS : Enable output : drivevbus-supply : external regulator
88 88
89AXP806 regulators, type, and corresponding input supply names:
90
91Regulator Type Supply Name Notes
92--------- ---- ----------- -----
93DCDCA : DC-DC buck : vina-supply : poly-phase capable
94DCDCB : DC-DC buck : vinb-supply : poly-phase capable
95DCDCC : DC-DC buck : vinc-supply : poly-phase capable
96DCDCD : DC-DC buck : vind-supply : poly-phase capable
97DCDCE : DC-DC buck : vine-supply : poly-phase capable
98ALDO1 : LDO : aldoin-supply : shared supply
99ALDO2 : LDO : aldoin-supply : shared supply
100ALDO3 : LDO : aldoin-supply : shared supply
101BLDO1 : LDO : bldoin-supply : shared supply
102BLDO2 : LDO : bldoin-supply : shared supply
103BLDO3 : LDO : bldoin-supply : shared supply
104BLDO4 : LDO : bldoin-supply : shared supply
105CLDO1 : LDO : cldoin-supply : shared supply
106CLDO2 : LDO : cldoin-supply : shared supply
107CLDO3 : LDO : cldoin-supply : shared supply
108SW : On/Off Switch : swin-supply
109
110Additionally, the AXP806 DC-DC regulators support poly-phase arrangements
111for higher output current. The possible groupings are: A+B, A+B+C, D+E.
112
89AXP809 regulators, type, and corresponding input supply names:113AXP809 regulators, type, and corresponding input supply names:
90 114
91Regulator Type Supply Name Notes115Regulator Type Supply Name Notes
Documentation/devicetree/bindings/mfd/lp873x.txt+59−0
@@ -0,0 +1,59 @@
1TI LP873X PMIC MFD driver
2
3Required properties:
4 - compatible: "ti,lp8732", "ti,lp8733"
5 - reg: I2C slave address.
6 - gpio-controller: Marks the device node as a GPIO Controller.
7 - #gpio-cells: Should be two. The first cell is the pin number and
8 the second cell is used to specify flags.
9 See ../gpio/gpio.txt for more information.
10 - regulators: List of child nodes that specify the regulator
11 initialization data.
12Example:
13
14pmic: lp8733@60 {
15 compatible = "ti,lp8733";
16 reg = <0x60>;
17 gpio-controller;
18 #gpio-cells = <2>;
19
20 regulators {
21 lp8733_buck0: buck0 {
22 regulator-name = "lp8733-buck0";
23 regulator-min-microvolt = <800000>;
24 regulator-max-microvolt = <1400000>;
25 regulator-min-microamp = <1500000>;
26 regulator-max-microamp = <4000000>;
27 regulator-ramp-delay = <10000>;
28 regulator-always-on;
29 regulator-boot-on;
30 };
31
32 lp8733_buck1: buck1 {
33 regulator-name = "lp8733-buck1";
34 regulator-min-microvolt = <800000>;
35 regulator-max-microvolt = <1400000>;
36 regulator-min-microamp = <1500000>;
37 regulator-max-microamp = <4000000>;
38 regulator-ramp-delay = <10000>;
39 regulator-boot-on;
40 regulator-always-on;
41 };
42
43 lp8733_ldo0: ldo0 {
44 regulator-name = "lp8733-ldo0";
45 regulator-min-microvolt = <800000>;
46 regulator-max-microvolt = <3000000>;
47 regulator-boot-on;
48 regulator-always-on;
49 };
50
51 lp8733_ldo1: ldo1 {
52 regulator-name = "lp8733-ldo1";
53 regulator-min-microvolt = <800000>;
54 regulator-max-microvolt = <3000000>;
55 regulator-always-on;
56 regulator-boot-on;
57 };
58 };
59};
Documentation/devicetree/bindings/mfd/max77693.txt+6−6
@@ -17,28 +17,28 @@ Required properties: · 16 unmodified lines
17- interrupt-parent : The parent interrupt controller.17- interrupt-parent : The parent interrupt controller.
18 18
19Optional properties:19Optional properties:
20- regulators : The regulators of max77693 have to be instantiated under subnod20- regulators : The regulators of max77693 have to be instantiated under subnode
21 named "regulators" using the following format.21 named "regulators" using the following format.
22 22
23 regulators {23 regulators {
24 regualtor-compatible = ESAFEOUT1/ESAFEOUT2/CHARGER24 regulator-compatible = ESAFEOUT1/ESAFEOUT2/CHARGER
25 standard regulator constratints[*].25 standard regulator constraints[*].
26 };26 };
27 27
28 [*] refer Documentation/devicetree/bindings/regulator/regulator.txt28 [*] refer Documentation/devicetree/bindings/regulator/regulator.txt
29 29
30- haptic : The MAX77693 haptic device utilises a PWM controlled motor to provide30- haptic : The MAX77693 haptic device utilises a PWM controlled motor to provide
31 users with tactile feedback. PWM period and duty-cycle are varied in31 users with tactile feedback. PWM period and duty-cycle are varied in
32 order to provide the approprite level of feedback.32 order to provide the appropriate level of feedback.
33 33
34 Required properties:34 Required properties:
35 - compatible : Must be "maxim,max77693-hpatic"35 - compatible : Must be "maxim,max77693-haptic"
36 - haptic-supply : power supply for the haptic motor36 - haptic-supply : power supply for the haptic motor
37 [*] refer Documentation/devicetree/bindings/regulator/regulator.txt37 [*] refer Documentation/devicetree/bindings/regulator/regulator.txt
38 - pwms : phandle to the physical PWM(Pulse Width Modulation) device.38 - pwms : phandle to the physical PWM(Pulse Width Modulation) device.
39 PWM properties should be named "pwms". And number of cell is different39 PWM properties should be named "pwms". And number of cell is different
40 for each pwm device.40 for each pwm device.
41 To get more informations, please refer to documentaion.41 To get more information, please refer to documentation.
42 [*] refer Documentation/devicetree/bindings/pwm/pwm.txt42 [*] refer Documentation/devicetree/bindings/pwm/pwm.txt
43 43
44- charger : Node configuring the charger driver.44- charger : Node configuring the charger driver.
Documentation/devicetree/bindings/mfd/qcom-pm8xxx.txt+1−0
@@ -62,6 +62,7 @@ The below bindings specify the set of valid subnodes. · 61 unmodified lines
62 "qcom,pm8058-rtc"62 "qcom,pm8058-rtc"
63 "qcom,pm8921-rtc"63 "qcom,pm8921-rtc"
64 "qcom,pm8941-rtc"64 "qcom,pm8941-rtc"
65 "qcom,pm8018-rtc"
65 66
66- reg:67- reg:
67 Usage: required68 Usage: required
Documentation/devicetree/bindings/mfd/qcom-rpm.txt+15−0
@@ -13,6 +13,7 @@ frequencies. · 12 unmodified lines
13 "qcom,rpm-msm8660"13 "qcom,rpm-msm8660"
14 "qcom,rpm-msm8960"14 "qcom,rpm-msm8960"
15 "qcom,rpm-ipq8064"15 "qcom,rpm-ipq8064"
16 "qcom,rpm-mdm9615"
16 17
17- reg:18- reg:
18 Usage: required19 Usage: required
@@ -59,6 +60,7 @@ Regulator nodes are identified by their compatible: · 40 unmodified lines
59 "qcom,rpm-pm8058-regulators"60 "qcom,rpm-pm8058-regulators"
60 "qcom,rpm-pm8901-regulators"61 "qcom,rpm-pm8901-regulators"
61 "qcom,rpm-pm8921-regulators"62 "qcom,rpm-pm8921-regulators"
63 "qcom,rpm-pm8018-regulators"
62 64
63- vdd_l0_l1_lvs-supply:65- vdd_l0_l1_lvs-supply:
64- vdd_l2_l11_l12-supply:66- vdd_l2_l11_l12-supply:
@@ -137,6 +139,15 @@ Regulator nodes are identified by their compatible: · 72 unmodified lines
137 Definition: reference to regulator supplying the input pin, as139 Definition: reference to regulator supplying the input pin, as
138 described in the data sheet140 described in the data sheet
139 141
142- vin_lvs1-supply:
143- vdd_l7-supply:
144- vdd_l8-supply:
145- vdd_l9_l10_l11_l12-supply:
146 Usage: optional (pm8018 only)
147 Value type: <phandle>
148 Definition: reference to regulator supplying the input pin, as
149 described in the data sheet
150
140The regulator node houses sub-nodes for each regulator within the device. Each151The regulator node houses sub-nodes for each regulator within the device. Each
141sub-node is identified using the node's name, with valid values listed for each152sub-node is identified using the node's name, with valid values listed for each
142of the pmics below.153of the pmics below.
@@ -156,6 +167,10 @@ pm8921: · 13 unmodified lines
156 l29, lvs1, lvs2, lvs3, lvs4, lvs5, lvs6, lvs7, usb-switch, hdmi-switch,167 l29, lvs1, lvs2, lvs3, lvs4, lvs5, lvs6, lvs7, usb-switch, hdmi-switch,
157 ncp168 ncp
158 169
170pm8018:
171 s1, s2, s3, s4, s5, , l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11,
172 l12, l14, lvs1
173
159The content of each sub-node is defined by the standard binding for regulators -174The content of each sub-node is defined by the standard binding for regulators -
160see regulator.txt - with additional custom properties described below:175see regulator.txt - with additional custom properties described below:
161 176
Documentation/devicetree/bindings/mfd/rk808.txt+34−3
@@ -1,7 +1,11 @@
1RK808 Power Management Integrated Circuit1RK8XX Power Management Integrated Circuit
2
3The rk8xx family current members:
4rk808
5rk818
2 6
3Required properties:7Required properties:
4- compatible: "rockchip,rk808"8- compatible: "rockchip,rk808", "rockchip,rk818"
5- reg: I2C slave address9- reg: I2C slave address
6- interrupt-parent: The parent interrupt controller.10- interrupt-parent: The parent interrupt controller.
7- interrupts: the interrupt outputs of the controller.11- interrupts: the interrupt outputs of the controller.
@@ -13,6 +17,8 @@ Optional properties: · 5 unmodified lines
13 default output clock name17 default output clock name
14- rockchip,system-power-controller: Telling whether or not this pmic is controlling18- rockchip,system-power-controller: Telling whether or not this pmic is controlling
15 the system power.19 the system power.
20
21Optional RK808 properties:
16- vcc1-supply: The input supply for DCDC_REG122- vcc1-supply: The input supply for DCDC_REG1
17- vcc2-supply: The input supply for DCDC_REG223- vcc2-supply: The input supply for DCDC_REG2
18- vcc3-supply: The input supply for DCDC_REG324- vcc3-supply: The input supply for DCDC_REG3
@@ -29,7 +35,20 @@ Optional properties: · 10 unmodified lines
29 the gpio controller. If DVS GPIOs aren't present, voltage changes will happen35 the gpio controller. If DVS GPIOs aren't present, voltage changes will happen
30 very quickly with no slow ramp time.36 very quickly with no slow ramp time.
31 37
32Regulators: All the regulators of RK808 to be instantiated shall be38Optional RK818 properties:
39- vcc1-supply: The input supply for DCDC_REG1
40- vcc2-supply: The input supply for DCDC_REG2
41- vcc3-supply: The input supply for DCDC_REG3
42- vcc4-supply: The input supply for DCDC_REG4
43- boost-supply: The input supply for DCDC_BOOST
44- vcc6-supply: The input supply for LDO_REG1 and LDO_REG2
45- vcc7-supply: The input supply for LDO_REG3, LDO_REG5 and LDO_REG7
46- vcc8-supply: The input supply for LDO_REG4, LDO_REG6 and LDO_REG8
47- vcc9-supply: The input supply for LDO_REG9 and SWITCH_REG
48- h_5v-supply: The input supply for HDMI_SWITCH
49- usb-supply: The input supply for OTG_SWITCH
50
51Regulators: All the regulators of RK8XX to be instantiated shall be
33listed in a child node named 'regulators'. Each regulator is represented52listed in a child node named 'regulators'. Each regulator is represented
34by a child node of the 'regulators' node.53by a child node of the 'regulators' node.
35 54
@@ -48,6 +67,18 @@ number as described in RK808 datasheet. · 12 unmodified lines
48 - SWITCH_REGn67 - SWITCH_REGn
49 - valid values for n are 1 to 268 - valid values for n are 1 to 2
50 69
70Following regulators of the RK818 PMIC block are supported. Note that
71the 'n' in regulator name, as in DCDC_REGn or LDOn, represents the DCDC or LDO
72number as described in RK818 datasheet.
73
74 - DCDC_REGn
75 - valid values for n are 1 to 4.
76 - LDO_REGn
77 - valid values for n are 1 to 9.
78 - SWITCH_REG
79 - HDMI_SWITCH
80 - OTG_SWITCH
81
51Standard regulator bindings are used inside regulator subnodes. Check82Standard regulator bindings are used inside regulator subnodes. Check
52 Documentation/devicetree/bindings/regulator/regulator.txt83 Documentation/devicetree/bindings/regulator/regulator.txt
53for more details84for more details
Documentation/devicetree/bindings/mfd/samsung,exynos5433-lpass.txt+70−0
@@ -0,0 +1,70 @@
1Samsung Exynos SoC Low Power Audio Subsystem (LPASS)
2
3Required properties:
4
5 - compatible : "samsung,exynos5433-lpass"
6 - reg : should contain the LPASS top SFR region location
7 and size
8 - samsung,pmu-syscon : the phandle to the Power Management Unit node
9 - #address-cells : should be 1
10 - #size-cells : should be 1
11 - ranges : must be present
12
13Each IP block of the Low Power Audio Subsystem should be specified as
14an optional sub-node. For "samsung,exynos5433-lpass" compatible this includes:
15UART, SLIMBUS, PCM, I2S, DMAC, Timers 0...4, VIC, WDT 0...1 devices.
16
17Bindings of the sub-nodes are described in:
18 ../serial/samsung_uart.txt
19 ../sound/samsung-i2s.txt
20 ../dma/arm-pl330.txt
21
22
23Example:
24
25audio-subsystem {
26 compatible = "samsung,exynos5433-lpass";
27 reg = <0x11400000 0x100>, <0x11500000 0x08>;
28 samsung,pmu-syscon = <&pmu_system_controller>;
29 #address-cells = <1>;
30 #size-cells = <1>;
31 ranges;
32
33 adma: adma@11420000 {
34 compatible = "arm,pl330", "arm,primecell";
35 reg = <0x11420000 0x1000>;
36 interrupts = <0 73 0>;
37 clocks = <&cmu_aud CLK_ACLK_DMAC>;
38 clock-names = "apb_pclk";
39 #dma-cells = <1>;
40 #dma-channels = <8>;
41 #dma-requests = <32>;
42 };
43
44 i2s0: i2s0@11440000 {
45 compatible = "samsung,exynos7-i2s";
46 reg = <0x11440000 0x100>;
47 dmas = <&adma 0 &adma 2>;
48 dma-names = "tx", "rx";
49 interrupts = <0 70 0>;
50 clocks = <&cmu_aud CLK_PCLK_AUD_I2S>,
51 <&cmu_aud CLK_SCLK_AUD_I2S>,
52 <&cmu_aud CLK_SCLK_I2S_BCLK>;
53 clock-names = "iis", "i2s_opclk0", "i2s_opclk1";
54 pinctrl-names = "default";
55 pinctrl-0 = <&i2s0_bus>;
56 status = "disabled";
57 };
58
59 serial_3: serial@11460000 {
60 compatible = "samsung,exynos5433-uart";
61 reg = <0x11460000 0x100>;
62 interrupts = <0 67 0>;
63 clocks = <&cmu_aud CLK_PCLK_AUD_UART>,
64 <&cmu_aud CLK_SCLK_AUD_UART>;
65 clock-names = "uart", "clk_uart_baud0";
66 pinctrl-names = "default";
67 pinctrl-0 = <&uart_aud_bus>;
68 status = "disabled";
69 };
70 };
Documentation/devicetree/bindings/mfd/stmpe.txt+1−1
@@ -4,7 +4,7 @@ STMPE is an MFD device which may expose the following inbuilt devices: gpio, · 3 unmodified lines
4keypad, touchscreen, adc, pwm, rotator.4keypad, touchscreen, adc, pwm, rotator.
5 5
6Required properties:6Required properties:
7 - compatible : "st,stmpe[610|801|811|1601|2401|2403]"7 - compatible : "st,stmpe[610|801|811|1600|1601|2401|2403]"
8 - reg : I2C/SPI address of the device8 - reg : I2C/SPI address of the device
9 9
10Optional properties:10Optional properties:
Documentation/devicetree/bindings/mfd/twl6040.txt+1−0
@@ -12,6 +12,7 @@ Required properties: · 11 unmodified lines
12- interrupt-parent: The parent interrupt controller12- interrupt-parent: The parent interrupt controller
13- gpio-controller:13- gpio-controller:
14- #gpio-cells = <1>: twl6040 provides GPO lines.14- #gpio-cells = <1>: twl6040 provides GPO lines.
15- #clock-cells = <0>; twl6040 is a provider of pdmclk which is used by McPDM
15- twl6040,audpwron-gpio: Power on GPIO line for the twl604016- twl6040,audpwron-gpio: Power on GPIO line for the twl6040
16 17
17- vio-supply: Regulator for the twl6040 VIO supply18- vio-supply: Regulator for the twl6040 VIO supply
Documentation/devicetree/bindings/mips/brcm/soc.txt+2−2
@@ -2,9 +2,9 @@ · 1 unmodified line
2 2
3Required properties:3Required properties:
4 4
5- compatible: "brcm,bcm3384", "brcm,bcm33843"5- compatible: "brcm,bcm3368", "brcm,bcm3384", "brcm,bcm33843"
6 "brcm,bcm3384-viper", "brcm,bcm33843-viper"6 "brcm,bcm3384-viper", "brcm,bcm33843-viper"
7 "brcm,bcm6328", "brcm,bcm6358", "brcm,bcm6368",7 "brcm,bcm6328", "brcm,bcm6358", "brcm,bcm6362", "brcm,bcm6368",
8 "brcm,bcm63168", "brcm,bcm63268",8 "brcm,bcm63168", "brcm,bcm63268",
9 "brcm,bcm7125", "brcm,bcm7346", "brcm,bcm7358", "brcm,bcm7360",9 "brcm,bcm7125", "brcm,bcm7346", "brcm,bcm7358", "brcm,bcm7360",
10 "brcm,bcm7362", "brcm,bcm7420", "brcm,bcm7425"10 "brcm,bcm7362", "brcm,bcm7420", "brcm,bcm7425"
Documentation/devicetree/bindings/mmc/arasan,sdhci.txt+3−0
@@ -36,6 +36,9 @@ Optional Properties: · 35 unmodified lines
36 - #clock-cells: If specified this should be the value <0>. With this property36 - #clock-cells: If specified this should be the value <0>. With this property
37 in place we will export a clock representing the Card Clock. This clock37 in place we will export a clock representing the Card Clock. This clock
38 is expected to be consumed by our PHY. You must also specify38 is expected to be consumed by our PHY. You must also specify
39 - xlnx,fails-without-test-cd: when present, the controller doesn't work when
40 the CD line is not connected properly, and the line is not connected
41 properly. Test mode can be used to force the controller to function.
39 42
40Example:43Example:
41 sdhci@e0100000 {44 sdhci@e0100000 {
Documentation/devicetree/bindings/mmc/brcm,sdhci-brcmstb.txtrenamed from Documentation/devicetree/bindings/mmc/brcm,bcm7425-sdhci.txt+3−1
@@ -8,7 +8,9 @@ on Device Tree properties to enable them for SoC/Board combinations · 7 unmodified lines
8that support them.8that support them.
9 9
10Required properties:10Required properties:
11- compatible: "brcm,bcm7425-sdhci"11- compatible: should be one of the following
12 - "brcm,bcm7425-sdhci"
13 - "brcm,bcm7445-sdhci"
12 14
13Refer to clocks/clock-bindings.txt for generic clock consumer properties.15Refer to clocks/clock-bindings.txt for generic clock consumer properties.
14 16
Documentation/devicetree/bindings/mmc/mmc-pwrseq-simple.txt+2−0
@@ -16,6 +16,8 @@ Optional properties: · 15 unmodified lines
16 See ../clocks/clock-bindings.txt for details.16 See ../clocks/clock-bindings.txt for details.
17- clock-names : Must include the following entry:17- clock-names : Must include the following entry:
18 "ext_clock" (External clock provided to the card).18 "ext_clock" (External clock provided to the card).
19- post-power-on-delay-ms : Delay in ms after powering the card and
20 de-asserting the reset-gpios (if any)
19 21
20Example:22Example:
21 23
Documentation/devicetree/bindings/mmc/mmc.txt+14−1
@@ -75,6 +75,17 @@ Optional SDIO properties: · 74 unmodified lines
75- wakeup-source: Enables wake up of host system on SDIO IRQ assertion75- wakeup-source: Enables wake up of host system on SDIO IRQ assertion
76 (Legacy property supported: "enable-sdio-wakeup")76 (Legacy property supported: "enable-sdio-wakeup")
77 77
78MMC power
79---------
80
81Controllers may implement power control from both the connected cards and
82the IO signaling (for example to change to high-speed 1.8V signalling). If
83the system supports this, then the following two properties should point
84to valid regulator nodes:
85
86- vqmmc-supply: supply node for IO line power
87- vmmc-supply: supply node for card's power
88
78 89
79MMC power sequences:90MMC power sequences:
80--------------------91--------------------
@@ -102,11 +113,13 @@ Required host node properties when using function subnodes: · 21 unmodified lines
102- #size-cells: should be zero.113- #size-cells: should be zero.
103 114
104Required function subnode properties:115Required function subnode properties:
105- compatible: name of SDIO function following generic names recommended practice
106- reg: Must contain the SDIO function number of the function this subnode116- reg: Must contain the SDIO function number of the function this subnode
107 describes. A value of 0 denotes the memory SD function, values from117 describes. A value of 0 denotes the memory SD function, values from
108 1 to 7 denote the SDIO functions.118 1 to 7 denote the SDIO functions.
109 119
120Optional function subnode properties:
121- compatible: name of SDIO function following generic names recommended practice
122
110 123
111Examples124Examples
112--------125--------
Documentation/devicetree/bindings/mmc/sdhci-st.txt+1−1
@@ -10,7 +10,7 @@ Required properties: · 9 unmodified lines
10 subsystem (mmcss) inside the FlashSS (available in STiH407 SoC10 subsystem (mmcss) inside the FlashSS (available in STiH407 SoC
11 family).11 family).
12 12
13- clock-names: Should be "mmc".13- clock-names: Should be "mmc" and "icn". (NB: The latter is not compulsory)
14 See: Documentation/devicetree/bindings/resource-names.txt14 See: Documentation/devicetree/bindings/resource-names.txt
15- clocks: Phandle to the clock.15- clocks: Phandle to the clock.
16 See: Documentation/devicetree/bindings/clock/clock-bindings.txt16 See: Documentation/devicetree/bindings/clock/clock-bindings.txt
Documentation/devicetree/bindings/mmc/sunxi-mmc.txt+6−1
@@ -8,7 +8,12 @@ as the speed of SD standard 3.0. · 7 unmodified lines
8Absolute maximum transfer rate is 200MB/s8Absolute maximum transfer rate is 200MB/s
9 9
10Required properties:10Required properties:
11 - compatible : "allwinner,sun4i-a10-mmc" or "allwinner,sun5i-a13-mmc"11 - compatible : should be one of:
12 * "allwinner,sun4i-a10-mmc"
13 * "allwinner,sun5i-a13-mmc"
14 * "allwinner,sun7i-a20-mmc"
15 * "allwinner,sun9i-a80-mmc"
16 * "allwinner,sun50i-a64-mmc"
12 - reg : mmc controller base registers17 - reg : mmc controller base registers
13 - clocks : a list with 4 phandle + clock specifier pairs18 - clocks : a list with 4 phandle + clock specifier pairs
14 - clock-names : must contain "ahb", "mmc", "output" and "sample"19 - clock-names : must contain "ahb", "mmc", "output" and "sample"
Documentation/devicetree/bindings/mmc/synopsys-dw-mshc.txt+4−0
@@ -39,6 +39,10 @@ Required Properties: · 38 unmodified lines
39 39
40Optional properties:40Optional properties:
41 41
42* resets: phandle + reset specifier pair, intended to represent hardware
43 reset signal present internally in some host controller IC designs.
44 See Documentation/devicetree/bindings/reset/reset.txt for details.
45
42* clocks: from common clock binding: handle to biu and ciu clocks for the46* clocks: from common clock binding: handle to biu and ciu clocks for the
43 bus interface unit clock and the card interface unit clock.47 bus interface unit clock and the card interface unit clock.
44 48
Documentation/devicetree/bindings/mmc/tmio_mmc.txt+1−0
@@ -23,6 +23,7 @@ Required properties: · 22 unmodified lines
23 "renesas,sdhi-r8a7793" - SDHI IP on R8A7793 SoC23 "renesas,sdhi-r8a7793" - SDHI IP on R8A7793 SoC
24 "renesas,sdhi-r8a7794" - SDHI IP on R8A7794 SoC24 "renesas,sdhi-r8a7794" - SDHI IP on R8A7794 SoC
25 "renesas,sdhi-r8a7795" - SDHI IP on R8A7795 SoC25 "renesas,sdhi-r8a7795" - SDHI IP on R8A7795 SoC
26 "renesas,sdhi-r8a7796" - SDHI IP on R8A7796 SoC
26 27
27Optional properties:28Optional properties:
28- toshiba,mmc-wrprotect-disable: write-protect detection is unavailable29- toshiba,mmc-wrprotect-disable: write-protect detection is unavailable
Documentation/devicetree/bindings/mtd/nand.txt+9−0
@@ -35,6 +35,15 @@ Optional NAND chip properties: · 34 unmodified lines
35- nand-ecc-step-size: integer representing the number of data bytes35- nand-ecc-step-size: integer representing the number of data bytes
36 that are covered by a single ECC step.36 that are covered by a single ECC step.
37 37
38- nand-ecc-maximize: boolean used to specify that you want to maximize ECC
39 strength. The maximum ECC strength is both controller and
40 chip dependent. The controller side has to select the ECC
41 config providing the best strength and taking the OOB area
42 size constraint into account.
43 This is particularly useful when only the in-band area is
44 used by the upper layers, and you want to make your NAND
45 as reliable as possible.
46
38The ECC strength and ECC step size properties define the correction capability47The ECC strength and ECC step size properties define the correction capability
39of a controller. Together, they say a controller can correct "{strength} bit48of a controller. Together, they say a controller can correct "{strength} bit
40errors per {size} bytes".49errors per {size} bytes".
Documentation/devicetree/bindings/net/apm-xgene-enet.txt+3−0
@@ -47,6 +47,9 @@ Optional properties: · 46 unmodified lines
47 Valid values are between 0 to 7, that maps to47 Valid values are between 0 to 7, that maps to
48 273, 589, 899, 1222, 1480, 1806, 2147, 2464 ps48 273, 589, 899, 1222, 1480, 1806, 2147, 2464 ps
49 Default value is 2, which corresponds to 899 ps49 Default value is 2, which corresponds to 899 ps
50- rxlos-gpios: Input gpio from SFP+ module to indicate availability of
51 incoming signal.
52
50 53
51Example:54Example:
52 menetclk: menetclk {55 menetclk: menetclk {
Documentation/devicetree/bindings/net/brcm,amac.txt+24−0
@@ -0,0 +1,24 @@
1Broadcom AMAC Ethernet Controller Device Tree Bindings
2-------------------------------------------------------------
3
4Required properties:
5 - compatible: "brcm,amac" or "brcm,nsp-amac"
6 - reg: Address and length of the GMAC registers,
7 Address and length of the GMAC IDM registers
8 - reg-names: Names of the registers. Must have both "amac_base" and
9 "idm_base"
10 - interrupts: Interrupt number
11
12Optional properties:
13- mac-address: See ethernet.txt file in the same directory
14
15Examples:
16
17amac0: ethernet@18022000 {
18 compatible = "brcm,nsp-amac";
19 reg = <0x18022000 0x1000>,
20 <0x18110000 0x1000>;
21 reg-names = "amac_base", "idm_base";
22 interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
23 status = "disabled";
24};
Documentation/devicetree/bindings/net/brcm,bcm7445-switch-v4.0.txt+44−1
@@ -6,9 +6,13 @@ Required properties: · 5 unmodified lines
6- reg: addresses and length of the register sets for the device, must be 66- reg: addresses and length of the register sets for the device, must be 6
7 pairs of register addresses and lengths7 pairs of register addresses and lengths
8- interrupts: interrupts for the devices, must be two interrupts8- interrupts: interrupts for the devices, must be two interrupts
9- #address-cells: must be 1, see dsa/dsa.txt
10- #size-cells: must be 0, see dsa/dsa.txt
11
12Deprecated binding required properties:
13
9- dsa,mii-bus: phandle to the MDIO bus controller, see dsa/dsa.txt14- dsa,mii-bus: phandle to the MDIO bus controller, see dsa/dsa.txt
10- dsa,ethernet: phandle to the CPU network interface controller, see dsa/dsa.txt15- dsa,ethernet: phandle to the CPU network interface controller, see dsa/dsa.txt
11- #size-cells: must be 0
12- #address-cells: must be 2, see dsa/dsa.txt16- #address-cells: must be 2, see dsa/dsa.txt
13 17
14Subnodes:18Subnodes:
@@ -39,6 +43,45 @@ Optional properties: · 24 unmodified lines
39 43
40Example:44Example:
41 45
46switch_top@f0b00000 {
47 compatible = "simple-bus";
48 #size-cells = <1>;
49 #address-cells = <1>;
50 ranges = <0 0xf0b00000 0x40804>;
51
52 ethernet_switch@0 {
53 compatible = "brcm,bcm7445-switch-v4.0";
54 #size-cells = <0>;
55 #address-cells = <1>;
56 reg = <0x0 0x40000
57 0x40000 0x110
58 0x40340 0x30
59 0x40380 0x30
60 0x40400 0x34
61 0x40600 0x208>;
62 reg-names = "core", "reg", intrl2_0", "intrl2_1",
63 "fcb, "acb";
64 interrupts = <0 0x18 0
65 0 0x19 0>;
66 brcm,num-gphy = <1>;
67 brcm,num-rgmii-ports = <2>;
68 brcm,fcb-pause-override;
69 brcm,acb-packets-inflight;
70
71 ports {
72 #address-cells = <1>;
73 #size-cells = <0>;
74
75 port@0 {
76 label = "gphy";
77 reg = <0>;
78 };
79 };
80 };
81};
82
83Example using the old DSA DeviceTree binding:
84
42switch_top@f0b00000 {85switch_top@f0b00000 {
43 compatible = "simple-bus";86 compatible = "simple-bus";
44 #size-cells = <1>;87 #size-cells = <1>;
Documentation/devicetree/bindings/net/brcm,bgmac-nsp.txt+24−0
@@ -0,0 +1,24 @@
1Broadcom GMAC Ethernet Controller Device Tree Bindings
2-------------------------------------------------------------
3
4Required properties:
5 - compatible: "brcm,bgmac-nsp"
6 - reg: Address and length of the GMAC registers,
7 Address and length of the GMAC IDM registers
8 - reg-names: Names of the registers. Must have both "gmac_base" and
9 "idm_base"
10 - interrupts: Interrupt number
11
12Optional properties:
13- mac-address: See ethernet.txt file in the same directory
14
15Examples:
16
17gmac0: ethernet@18022000 {
18 compatible = "brcm,bgmac-nsp";
19 reg = <0x18022000 0x1000>,
20 <0x18110000 0x1000>;
21 reg-names = "gmac_base", "idm_base";
22 interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
23 status = "disabled";
24};
Documentation/devicetree/bindings/net/dsa/qca8k.txt+89−0
@@ -0,0 +1,89 @@
1* Qualcomm Atheros QCA8xxx switch family
2
3Required properties:
4
5- compatible: should be "qca,qca8337"
6- #size-cells: must be 0
7- #address-cells: must be 1
8
9Subnodes:
10
11The integrated switch subnode should be specified according to the binding
12described in dsa/dsa.txt. As the QCA8K switches do not have a N:N mapping of
13port and PHY id, each subnode describing a port needs to have a valid phandle
14referencing the internal PHY connected to it. The CPU port of this switch is
15always port 0.
16
17Example:
18
19
20 &mdio0 {
21 phy_port1: phy@0 {
22 reg = <0>;
23 };
24
25 phy_port2: phy@1 {
26 reg = <1>;
27 };
28
29 phy_port3: phy@2 {
30 reg = <2>;
31 };
32
33 phy_port4: phy@3 {
34 reg = <3>;
35 };
36
37 phy_port5: phy@4 {
38 reg = <4>;
39 };
40
41 switch0@0 {
42 compatible = "qca,qca8337";
43 #address-cells = <1>;
44 #size-cells = <0>;
45
46 reg = <0>;
47
48 ports {
49 #address-cells = <1>;
50 #size-cells = <0>;
51 port@0 {
52 reg = <0>;
53 label = "cpu";
54 ethernet = <&gmac1>;
55 phy-mode = "rgmii";
56 };
57
58 port@1 {
59 reg = <1>;
60 label = "lan1";
61 phy-handle = <&phy_port1>;
62 };
63
64 port@2 {
65 reg = <2>;
66 label = "lan2";
67 phy-handle = <&phy_port2>;
68 };
69
70 port@3 {
71 reg = <3>;
72 label = "lan3";
73 phy-handle = <&phy_port3>;
74 };
75
76 port@4 {
77 reg = <4>;
78 label = "lan4";
79 phy-handle = <&phy_port4>;
80 };
81
82 port@5 {
83 reg = <5>;
84 label = "wan";
85 phy-handle = <&phy_port5>;
86 };
87 };
88 };
89 };
Documentation/devicetree/bindings/net/ethernet.txt+2−2
@@ -11,8 +11,8 @@ The following properties are common to the Ethernet controllers: · 10 unmodified lines
11 the maximum frame size (there's contradiction in ePAPR).11 the maximum frame size (there's contradiction in ePAPR).
12- phy-mode: string, operation mode of the PHY interface; supported values are12- phy-mode: string, operation mode of the PHY interface; supported values are
13 "mii", "gmii", "sgmii", "qsgmii", "tbi", "rev-mii", "rmii", "rgmii", "rgmii-id",13 "mii", "gmii", "sgmii", "qsgmii", "tbi", "rev-mii", "rmii", "rgmii", "rgmii-id",
14 "rgmii-rxid", "rgmii-txid", "rtbi", "smii", "xgmii"; this is now a de-facto14 "rgmii-rxid", "rgmii-txid", "rtbi", "smii", "xgmii", "trgmii"; this is now a
15 standard property;15 de-facto standard property;
16- phy-connection-type: the same as "phy-mode" property but described in ePAPR;16- phy-connection-type: the same as "phy-mode" property but described in ePAPR;
17- phy-handle: phandle, specifies a reference to a node representing a PHY17- phy-handle: phandle, specifies a reference to a node representing a PHY
18 device; this property is described in ePAPR and so preferred;18 device; this property is described in ePAPR and so preferred;
Documentation/devicetree/bindings/net/macb.txt+1−0
@@ -21,6 +21,7 @@ Required properties: · 20 unmodified lines
21- clock-names: Tuple listing input clock names.21- clock-names: Tuple listing input clock names.
22 Required elements: 'pclk', 'hclk'22 Required elements: 'pclk', 'hclk'
23 Optional elements: 'tx_clk'23 Optional elements: 'tx_clk'
24 Optional elements: 'rx_clk' applies to cdns,zynqmp-gem
24- clocks: Phandles to input clocks.25- clocks: Phandles to input clocks.
25 26
26Optional properties for PHY child node:27Optional properties for PHY child node:
Documentation/devicetree/bindings/net/mediatek-net.txt+4−2
@@ -25,13 +25,15 @@ Optional properties: · 24 unmodified lines
25- interrupt-parent: Should be the phandle for the interrupt controller25- interrupt-parent: Should be the phandle for the interrupt controller
26 that services interrupts for this device26 that services interrupts for this device
27 27
28
29* Ethernet MAC node28* Ethernet MAC node
30 29
31Required properties:30Required properties:
32- compatible: Should be "mediatek,eth-mac"31- compatible: Should be "mediatek,eth-mac"
33- reg: The number of the MAC32- reg: The number of the MAC
34- phy-handle: see ethernet.txt file in the same directory.33- phy-handle: see ethernet.txt file in the same directory and
34 the phy-mode "trgmii" required being provided when reg
35 is equal to 0 and the MAC uses fixed-link to connect
36 with internal switch such as MT7530.
35 37
36Example:38Example:
37 39
Documentation/devicetree/bindings/net/meson-dwmac.txt+37−8
@@ -1,18 +1,32 @@
1* Amlogic Meson DWMAC Ethernet controller1* Amlogic Meson DWMAC Ethernet controller
2 2
3The device inherits all the properties of the dwmac/stmmac devices3The device inherits all the properties of the dwmac/stmmac devices
4described in the file net/stmmac.txt with the following changes.4described in the file stmmac.txt in the current directory with the
5following changes.
5 6
6Required properties:7Required properties on all platforms:
7 8
8- compatible: should be "amlogic,meson6-dwmac" along with "snps,dwmac"9- compatible: Depending on the platform this should be one of:
9 and any applicable more detailed version number10 - "amlogic,meson6-dwmac"
10 described in net/stmmac.txt11 - "amlogic,meson8b-dwmac"
12 - "amlogic,meson-gxbb-dwmac"
13 Additionally "snps,dwmac" and any applicable more
14 detailed version number described in net/stmmac.txt
15 should be used.
11 16
12- reg: should contain a register range for the dwmac controller and17- reg: The first register range should be the one of the DWMAC
13 another one for the Amlogic specific configuration18 controller. The second range is is for the Amlogic specific
19 configuration (for example the PRG_ETHERNET register range
20 on Meson8b and newer)
14 21
15Example:22Required properties on Meson8b and newer:
23- clock-names: Should contain the following:
24 - "stmmaceth" - see stmmac.txt
25 - "clkin0" - first parent clock of the internal mux
26 - "clkin1" - second parent clock of the internal mux
27
28
29Example for Meson6:
16 30
17 ethmac: ethernet@c9410000 {31 ethmac: ethernet@c9410000 {
18 compatible = "amlogic,meson6-dwmac", "snps,dwmac";32 compatible = "amlogic,meson6-dwmac", "snps,dwmac";
@@ -23,3 +37,18 @@ Example: · 4 unmodified lines
23 clocks = <&clk81>;37 clocks = <&clk81>;
24 clock-names = "stmmaceth";38 clock-names = "stmmaceth";
25 }39 }
40
41Example for GXBB:
42 ethmac: ethernet@c9410000 {
43 compatible = "amlogic,meson-gxbb-dwmac", "snps,dwmac";
44 reg = <0x0 0xc9410000 0x0 0x10000>,
45 <0x0 0xc8834540 0x0 0x8>;
46 interrupts = <0 8 1>;
47 interrupt-names = "macirq";
48 clocks = <&clkc CLKID_ETH>,
49 <&clkc CLKID_FCLK_DIV2>,
50 <&clkc CLKID_MPLL2>;
51 clock-names = "stmmaceth", "clkin0", "clkin1";
52 phy-mode = "rgmii";
53 status = "disabled";
54 };
Documentation/devicetree/bindings/net/micrel-ksz90x1.txt+4−3
@@ -34,16 +34,17 @@ KSZ9031: · 33 unmodified lines
34 34
35 All skew control options are specified in picoseconds. The minimum35 All skew control options are specified in picoseconds. The minimum
36 value is 0, and the maximum is property-dependent. The increment36 value is 0, and the maximum is property-dependent. The increment
37 step is 60ps.37 step is 60ps. The default value is the neutral setting, so setting
38 rxc-skew-ps=<0> actually results in -900 picoseconds adjustment.
38 39
39 Optional properties:40 Optional properties:
40 41
41 Maximum value of 1860:42 Maximum value of 1860, default value 900:
42 43
43 - rxc-skew-ps : Skew control of RX clock pad44 - rxc-skew-ps : Skew control of RX clock pad
44 - txc-skew-ps : Skew control of TX clock pad45 - txc-skew-ps : Skew control of TX clock pad
45 46
46 Maximum value of 900:47 Maximum value of 900, default value 420:
47 48
48 - rxdv-skew-ps : Skew control of RX CTL pad49 - rxdv-skew-ps : Skew control of RX CTL pad
49 - txen-skew-ps : Skew control of TX CTL pad50 - txen-skew-ps : Skew control of TX CTL pad
Documentation/devicetree/bindings/net/mscc-phy-vsc8531.txt+58−0
@@ -0,0 +1,58 @@
1* Microsemi - vsc8531 Giga bit ethernet phy
2
3Required properties:
4- compatible : Should contain phy id as "ethernet-phy-idAAAA.BBBB"
5 The PHY device uses the binding described in
6 Documentation/devicetree/bindings/net/phy.txt
7
8Optional properties:
9- vsc8531,vddmac : The vddmac in mV.
10- vsc8531,edge-slowdown : % the edge should be slowed down relative to
11 the fastest possible edge time. Native sign
12 need not enter.
13 Edge rate sets the drive strength of the MAC
14 interface output signals. Changing the drive
15 strength will affect the edge rate of the output
16 signal. The goal of this setting is to help
17 reduce electrical emission (EMI) by being able
18 to reprogram drive strength and in effect slow
19 down the edge rate if desired. Table 1 shows the
20 impact to the edge rate per VDDMAC supply for each
21 drive strength setting.
22 Ref: Table:1 - Edge rate change below.
23
24Note: see dt-bindings/net/mscc-phy-vsc8531.h for applicable values
25
26Table: 1 - Edge rate change
27----------------------------------------------------------------|
28| Edge Rate Change (VDDMAC) |
29| |
30| 3300 mV 2500 mV 1800 mV 1500 mV |
31|---------------------------------------------------------------|
32| Default Deafult Default Default |
33| (Fastest) (recommended) (recommended) |
34|---------------------------------------------------------------|
35| -2% -3% -5% -6% |
36|---------------------------------------------------------------|
37| -4% -6% -9% -14% |
38|---------------------------------------------------------------|
39| -7% -10% -16% -21% |
40|(recommended) (recommended) |
41|---------------------------------------------------------------|
42| -10% -14% -23% -29% |
43|---------------------------------------------------------------|
44| -17% -23% -35% -42% |
45|---------------------------------------------------------------|
46| -29% -37% -52% -58% |
47|---------------------------------------------------------------|
48| -53% -63% -76% -77% |
49| (slowest) |
50|---------------------------------------------------------------|
51
52Example:
53
54 vsc8531_0: ethernet-phy@0 {
55 compatible = "ethernet-phy-id0007.0570";
56 vsc8531,vddmac = <3300>;
57 vsc8531,edge-slowdown = <21>;
58 };
Documentation/devicetree/bindings/net/qcom-emac.txt+111−0
@@ -0,0 +1,111 @@
1Qualcomm Technologies EMAC Gigabit Ethernet Controller
2
3This network controller consists of two devices: a MAC and an SGMII
4internal PHY. Each device is represented by a device tree node. A phandle
5connects the MAC node to its corresponding internal phy node. Another
6phandle points to the external PHY node.
7
8Required properties:
9
10MAC node:
11- compatible : Should be "qcom,fsm9900-emac".
12- reg : Offset and length of the register regions for the device
13- interrupts : Interrupt number used by this controller
14- mac-address : The 6-byte MAC address. If present, it is the default
15 MAC address.
16- internal-phy : phandle to the internal PHY node
17- phy-handle : phandle the the external PHY node
18
19Internal PHY node:
20- compatible : Should be "qcom,fsm9900-emac-sgmii" or "qcom,qdf2432-emac-sgmii".
21- reg : Offset and length of the register region(s) for the device
22- interrupts : Interrupt number used by this controller
23
24The external phy child node:
25- reg : The phy address
26
27Example:
28
29FSM9900:
30
31soc {
32 #address-cells = <1>;
33 #size-cells = <1>;
34
35 emac0: ethernet@feb20000 {
36 compatible = "qcom,fsm9900-emac";
37 reg = <0xfeb20000 0x10000>,
38 <0xfeb36000 0x1000>;
39 interrupts = <76>;
40
41 clocks = <&gcc 0>, <&gcc 1>, <&gcc 3>, <&gcc 4>, <&gcc 5>,
42 <&gcc 6>, <&gcc 7>;
43 clock-names = "axi_clk", "cfg_ahb_clk", "high_speed_clk",
44 "mdio_clk", "tx_clk", "rx_clk", "sys_clk";
45
46 internal-phy = <&emac_sgmii>;
47
48 phy-handle = <&phy0>;
49
50 #address-cells = <1>;
51 #size-cells = <0>;
52 phy0: ethernet-phy@0 {
53 reg = <0>;
54 };
55
56 pinctrl-names = "default";
57 pinctrl-0 = <&mdio_pins_a>;
58 };
59
60 emac_sgmii: ethernet@feb38000 {
61 compatible = "qcom,fsm9900-emac-sgmii";
62 reg = <0xfeb38000 0x1000>;
63 interrupts = <80>;
64 };
65
66 tlmm: pinctrl@fd510000 {
67 compatible = "qcom,fsm9900-pinctrl";
68
69 mdio_pins_a: mdio {
70 state {
71 pins = "gpio123", "gpio124";
72 function = "mdio";
73 };
74 };
75 };
76
77
78QDF2432:
79
80soc {
81 #address-cells = <2>;
82 #size-cells = <2>;
83
84 emac0: ethernet@38800000 {
85 compatible = "qcom,fsm9900-emac";
86 reg = <0x0 0x38800000 0x0 0x10000>,
87 <0x0 0x38816000 0x0 0x1000>;
88 interrupts = <0 256 4>;
89
90 clocks = <&gcc 0>, <&gcc 1>, <&gcc 3>, <&gcc 4>, <&gcc 5>,
91 <&gcc 6>, <&gcc 7>;
92 clock-names = "axi_clk", "cfg_ahb_clk", "high_speed_clk",
93 "mdio_clk", "tx_clk", "rx_clk", "sys_clk";
94
95 internal-phy = <&emac_sgmii>;
96
97 phy-handle = <&phy0>;
98
99 #address-cells = <1>;
100 #size-cells = <0>;
101 phy0: ethernet-phy@4 {
102 reg = <4>;
103 };
104 };
105
106 emac_sgmii: ethernet@410400 {
107 compatible = "qcom,qdf2432-emac-sgmii";
108 reg = <0x0 0x00410400 0x0 0xc00>, /* Base address */
109 <0x0 0x00410000 0x0 0x400>; /* Per-lane digital */
110 interrupts = <0 254 1>;
111 };
Documentation/devicetree/bindings/net/renesas,ravb.txt+2−1
@@ -10,6 +10,7 @@ Required properties: · 9 unmodified lines
10 "renesas,etheravb-r8a7793" if the device is a part of R8A7793 SoC.10 "renesas,etheravb-r8a7793" if the device is a part of R8A7793 SoC.
11 "renesas,etheravb-r8a7794" if the device is a part of R8A7794 SoC.11 "renesas,etheravb-r8a7794" if the device is a part of R8A7794 SoC.
12 "renesas,etheravb-r8a7795" if the device is a part of R8A7795 SoC.12 "renesas,etheravb-r8a7795" if the device is a part of R8A7795 SoC.
13 "renesas,etheravb-r8a7796" if the device is a part of R8A7796 SoC.
13 "renesas,etheravb-rcar-gen2" for generic R-Car Gen 2 compatible interface.14 "renesas,etheravb-rcar-gen2" for generic R-Car Gen 2 compatible interface.
14 "renesas,etheravb-rcar-gen3" for generic R-Car Gen 3 compatible interface.15 "renesas,etheravb-rcar-gen3" for generic R-Car Gen 3 compatible interface.
15 16
@@ -33,7 +34,7 @@ Optional properties: · 17 unmodified lines
33- interrupt-parent: the phandle for the interrupt controller that services34- interrupt-parent: the phandle for the interrupt controller that services
34 interrupts for this device.35 interrupts for this device.
35- interrupt-names: A list of interrupt names.36- interrupt-names: A list of interrupt names.
36 For the R8A7795 SoC this property is mandatory;37 For the R8A779[56] SoCs this property is mandatory;
37 it should include one entry per channel, named "ch%u",38 it should include one entry per channel, named "ch%u",
38 where %u is the channel number ranging from 0 to 24.39 where %u is the channel number ranging from 0 to 24.
39 For other SoCs this property is optional; if present40 For other SoCs this property is optional; if present
Documentation/devicetree/bindings/net/rockchip-dwmac.txt+6−2
@@ -3,8 +3,12 @@ Rockchip SoC RK3288 10/100/1000 Ethernet driver(GMAC) · 2 unmodified lines
3The device node has following properties.3The device node has following properties.
4 4
5Required properties:5Required properties:
6 - compatible: Can be one of "rockchip,rk3228-gmac", "rockchip,rk3288-gmac",6 - compatible: should be "rockchip,<name>-gamc"
7 "rockchip,rk3368-gmac"7 "rockchip,rk3228-gmac": found on RK322x SoCs
8 "rockchip,rk3288-gmac": found on RK3288 SoCs
9 "rockchip,rk3366-gmac": found on RK3366 SoCs
10 "rockchip,rk3368-gmac": found on RK3368 SoCs
11 "rockchip,rk3399-gmac": found on RK3399 SoCs
8 - reg: addresses and length of the register sets for the device.12 - reg: addresses and length of the register sets for the device.
9 - interrupts: Should contain the GMAC interrupts.13 - interrupts: Should contain the GMAC interrupts.
10 - interrupt-names: Should contain the interrupt names "macirq".14 - interrupt-names: Should contain the interrupt names "macirq".
Documentation/devicetree/bindings/net/sh_eth.txt+2−0
@@ -5,6 +5,8 @@ interface contains. · 4 unmodified lines
5 5
6Required properties:6Required properties:
7- compatible: "renesas,gether-r8a7740" if the device is a part of R8A7740 SoC.7- compatible: "renesas,gether-r8a7740" if the device is a part of R8A7740 SoC.
8 "renesas,ether-r8a7743" if the device is a part of R8A7743 SoC.
9 "renesas,ether-r8a7745" if the device is a part of R8A7745 SoC.
8 "renesas,ether-r8a7778" if the device is a part of R8A7778 SoC.10 "renesas,ether-r8a7778" if the device is a part of R8A7778 SoC.
9 "renesas,ether-r8a7779" if the device is a part of R8A7779 SoC.11 "renesas,ether-r8a7779" if the device is a part of R8A7779 SoC.
10 "renesas,ether-r8a7790" if the device is a part of R8A7790 SoC.12 "renesas,ether-r8a7790" if the device is a part of R8A7790 SoC.
Documentation/devicetree/bindings/net/smsc911x.txt+11−4
@@ -3,9 +3,11 @@ · 2 unmodified lines
3Required properties:3Required properties:
4- compatible : Should be "smsc,lan<model>", "smsc,lan9115"4- compatible : Should be "smsc,lan<model>", "smsc,lan9115"
5- reg : Address and length of the io space for SMSC LAN5- reg : Address and length of the io space for SMSC LAN
6- interrupts : Should contain SMSC LAN interrupt line6- interrupts : one or two interrupt specifiers
7- interrupt-parent : Should be the phandle for the interrupt controller7 - The first interrupt is the SMSC LAN interrupt line
8 that services interrupts for this device8 - The second interrupt (if present) is the PME (power
9 management event) interrupt that is able to wake up the host
10 system with a 50ms pulse on network activity
9- phy-mode : See ethernet.txt file in the same directory11- phy-mode : See ethernet.txt file in the same directory
10 12
11Optional properties:13Optional properties:
@@ -21,6 +23,10 @@ Optional properties: · 9 unmodified lines
21 external PHY23 external PHY
22- smsc,save-mac-address : Indicates that mac address needs to be saved24- smsc,save-mac-address : Indicates that mac address needs to be saved
23 before resetting the controller25 before resetting the controller
26- reset-gpios : a GPIO line connected to the RESET (active low) signal
27 of the device. On many systems this is wired high so the device goes
28 out of reset at power-on, but if it is under program control, this
29 optional GPIO can wake up in response to it.
24 30
25Examples:31Examples:
26 32
@@ -29,7 +35,8 @@ lan9220@f4000000 { · 2 unmodified lines
29 reg = <0xf4000000 0x2000000>;35 reg = <0xf4000000 0x2000000>;
30 phy-mode = "mii";36 phy-mode = "mii";
31 interrupt-parent = <&gpio1>;37 interrupt-parent = <&gpio1>;
32 interrupts = <31>;38 interrupts = <31>, <32>;
39 reset-gpios = <&gpio1 30 GPIO_ACTIVE_LOW>;
33 reg-io-width = <4>;40 reg-io-width = <4>;
34 smsc,irq-push-pull;41 smsc,irq-push-pull;
35};42};
Documentation/devicetree/bindings/net/snps,dwc-qos-ethernet.txt+95−4
@@ -1,21 +1,111 @@
1* Synopsys DWC Ethernet QoS IP version 4.10 driver (GMAC)1* Synopsys DWC Ethernet QoS IP version 4.10 driver (GMAC)
2 2
3This binding supports the Synopsys Designware Ethernet QoS (Quality Of Service)
4IP block. The IP supports multiple options for bus type, clocking and reset
5structure, and feature list. Consequently, a number of properties and list
6entries in properties are marked as optional, or only required in specific HW
7configurations.
3 8
4Required properties:9Required properties:
5- compatible: Should be "snps,dwc-qos-ethernet-4.10"10- compatible: One of:
11 - "axis,artpec6-eqos", "snps,dwc-qos-ethernet-4.10"
12 Represents the IP core when integrated into the Axis ARTPEC-6 SoC.
13 - "nvidia,tegra186-eqos", "snps,dwc-qos-ethernet-4.10"
14 Represents the IP core when integrated into the NVIDIA Tegra186 SoC.
15 - "snps,dwc-qos-ethernet-4.10"
16 This combination is deprecated. It should be treated as equivalent to
17 "axis,artpec6-eqos", "snps,dwc-qos-ethernet-4.10". It is supported to be
18 compatible with earlier revisions of this binding.
6- reg: Address and length of the register set for the device19- reg: Address and length of the register set for the device
7- clocks: Phandles to the reference clock and the bus clock20- clocks: Phandle and clock specifiers for each entry in clock-names, in the
8- clock-names: Should be "phy_ref_clk" for the reference clock and "apb_pclk"21 same order. See ../clock/clock-bindings.txt.
9 for the bus clock.22- clock-names: May contain any/all of the following depending on the IP
23 configuration, in any order:
24 - "tx"
25 The EQOS transmit path clock. The HW signal name is clk_tx_i.
26 In some configurations (e.g. GMII/RGMII), this clock also drives the PHY TX
27 path. In other configurations, other clocks (such as tx_125, rmii) may
28 drive the PHY TX path.
29 - "rx"
30 The EQOS receive path clock. The HW signal name is clk_rx_i.
31 In some configurations (e.g. GMII/RGMII), this clock is derived from the
32 PHY's RX clock output. In other configurations, other clocks (such as
33 rx_125, rmii) may drive the EQOS RX path.
34 In cases where the PHY clock is directly fed into the EQOS receive path
35 without intervening logic, the DT need not represent this clock, since it
36 is assumed to be fully under the control of the PHY device/driver. In
37 cases where SoC integration adds additional logic to this path, such as a
38 SW-controlled clock gate, this clock should be represented in DT.
39 - "slave_bus"
40 The CPU/slave-bus (CSR) interface clock. This applies to any bus type;
41 APB, AHB, AXI, etc. The HW signal name is hclk_i (AHB) or clk_csr_i (other
42 buses).
43 - "master_bus"
44 The master bus interface clock. Only required in configurations that use a
45 separate clock for the master and slave bus interfaces. The HW signal name
46 is hclk_i (AHB) or aclk_i (AXI).
47 - "ptp_ref"
48 The PTP reference clock. The HW signal name is clk_ptp_ref_i.
49 - "phy_ref_clk"
50 This clock is deprecated and should not be used by new compatible values.
51 It is equivalent to "tx".
52 - "apb_pclk"
53 This clock is deprecated and should not be used by new compatible values.
54 It is equivalent to "slave_bus".
55
56 Note: Support for additional IP configurations may require adding the
57 following clocks to this list in the future: clk_rx_125_i, clk_tx_125_i,
58 clk_pmarx_0_i, clk_pmarx1_i, clk_rmii_i, clk_revmii_rx_i, clk_revmii_tx_i.
59 Configurations exist where multiple similar clocks are used at once, e.g. all
60 of clk_rx_125_i, clk_pmarx_0_i, clk_pmarx1_i. For this reason it is best to
61 extend the binding with a separate clock-names entry for each of those RX
62 clocks, rather than repurposing the existing "rx" clock-names entry as a
63 generic/logical clock in a similar fashion to "master_bus" and "slave_bus".
64 This will allow easy support for configurations that support multiple PHY
65 interfaces using a mux, and hence need to have explicit control over
66 specific RX clocks.
67
68 The following compatible values require the following set of clocks:
69 - "nvidia,tegra186-eqos", "snps,dwc-qos-ethernet-4.10":
70 - "slave_bus"
71 - "master_bus"
72 - "rx"
73 - "tx"
74 - "ptp_ref"
75 - "axis,artpec6-eqos", "snps,dwc-qos-ethernet-4.10":
76 - "slave_bus"
77 - "master_bus"
78 - "tx"
79 - "ptp_ref"
80 - "snps,dwc-qos-ethernet-4.10" (deprecated):
81 - "phy_ref_clk"
82 - "apb_clk"
10- interrupt-parent: Should be the phandle for the interrupt controller83- interrupt-parent: Should be the phandle for the interrupt controller
11 that services interrupts for this device84 that services interrupts for this device
12- interrupts: Should contain the core's combined interrupt signal85- interrupts: Should contain the core's combined interrupt signal
13- phy-mode: See ethernet.txt file in the same directory86- phy-mode: See ethernet.txt file in the same directory
87- resets: Phandle and reset specifiers for each entry in reset-names, in the
88 same order. See ../reset/reset.txt.
89- reset-names: May contain any/all of the following depending on the IP
90 configuration, in any order:
91 - "eqos". The reset to the entire module. The HW signal name is hreset_n
92 (AHB) or aresetn_i (AXI).
93
94 The following compatible values require the following set of resets:
95 (the reset properties may be omitted if empty)
96 - "nvidia,tegra186-eqos", "snps,dwc-qos-ethernet-4.10":
97 - "eqos".
98 - "axis,artpec6-eqos", "snps,dwc-qos-ethernet-4.10":
99 - None.
100 - "snps,dwc-qos-ethernet-4.10" (deprecated):
101 - None.
14 102
15Optional properties:103Optional properties:
16- dma-coherent: Present if dma operations are coherent104- dma-coherent: Present if dma operations are coherent
17- mac-address: See ethernet.txt in the same directory105- mac-address: See ethernet.txt in the same directory
18- local-mac-address: See ethernet.txt in the same directory106- local-mac-address: See ethernet.txt in the same directory
107- phy-reset-gpios: Phandle and specifier for any GPIO used to reset the PHY.
108 See ../gpio/gpio.txt.
19- snps,en-lpi: If present it enables use of the AXI low-power interface109- snps,en-lpi: If present it enables use of the AXI low-power interface
20- snps,write-requests: Number of write requests that the AXI port can issue.110- snps,write-requests: Number of write requests that the AXI port can issue.
21 It depends on the SoC configuration.111 It depends on the SoC configuration.
@@ -52,6 +142,7 @@ ethernet2@40010000 { · 30 unmodified lines
52 reg = <0x40010000 0x4000>;142 reg = <0x40010000 0x4000>;
53 phy-handle = <&phy2>;143 phy-handle = <&phy2>;
54 phy-mode = "gmii";144 phy-mode = "gmii";
145 phy-reset-gpios = <&gpioctlr 43 GPIO_ACTIVE_LOW>;
55 146
56 snps,en-tx-lpi-clockgating;147 snps,en-tx-lpi-clockgating;
57 snps,en-lpi;148 snps,en-lpi;
Documentation/devicetree/bindings/net/stm32-dwmac.txt+32−0
@@ -0,0 +1,32 @@
1STMicroelectronics STM32 / MCU DWMAC glue layer controller
2
3This file documents platform glue layer for stmmac.
4Please see stmmac.txt for the other unchanged properties.
5
6The device node has following properties.
7
8Required properties:
9- compatible: Should be "st,stm32-dwmac" to select glue, and
10 "snps,dwmac-3.50a" to select IP version.
11- clocks: Must contain a phandle for each entry in clock-names.
12- clock-names: Should be "stmmaceth" for the host clock.
13 Should be "mac-clk-tx" for the MAC TX clock.
14 Should be "mac-clk-rx" for the MAC RX clock.
15- st,syscon : Should be phandle/offset pair. The phandle to the syscon node which
16 encompases the glue register, and the offset of the control register.
17Example:
18
19 ethernet@40028000 {
20 compatible = "st,stm32-dwmac", "snps,dwmac-3.50a";
21 status = "disabled";
22 reg = <0x40028000 0x8000>;
23 reg-names = "stmmaceth";
24 interrupts = <0 61 0>, <0 62 0>;
25 interrupt-names = "macirq", "eth_wake_irq";
26 clock-names = "stmmaceth", "mac-clk-tx", "mac-clk-rx";
27 clocks = <&rcc 0 25>, <&rcc 0 26>, <&rcc 0 27>;
28 st,syscon = <&syscfg 0x4>;
29 snps,pbl = <8>;
30 snps,mixed-burst;
31 dma-ranges;
32 };
Documentation/devicetree/bindings/net/wireless/esp,esp8089.txt+31−0
@@ -0,0 +1,31 @@
1Espressif ESP8089 wireless SDIO devices
2
3This node provides properties for controlling the ESP8089 wireless device.
4The node is expected to be specified as a child node to the SDIO controller
5that connects the device to the system.
6
7Required properties:
8
9 - compatible : Should be "esp,esp8089".
10
11Optional properties:
12 - esp,crystal-26M-en: Integer value for the crystal_26M_en firmware parameter
13
14Example:
15
16&mmc1 {
17 #address-cells = <1>;
18 #size-cells = <0>;
19
20 vmmc-supply = <&reg_dldo1>;
21 mmc-pwrseq = <&wifi_pwrseq>;
22 bus-width = <4>;
23 non-removable;
24 status = "okay";
25
26 esp8089: sdio_wifi@1 {
27 compatible = "esp,esp8089";
28 reg = <1>;
29 esp,crystal-26M-en = <2>;
30 };
31};
Documentation/devicetree/bindings/net/xilinx_gmii2rgmii.txt+35−0
@@ -0,0 +1,35 @@
1XILINX GMIITORGMII Converter Driver Device Tree Bindings
2--------------------------------------------------------
3
4The Gigabit Media Independent Interface (GMII) to Reduced Gigabit Media
5Independent Interface (RGMII) core provides the RGMII between RGMII-compliant
6Ethernet physical media devices (PHY) and the Gigabit Ethernet controller.
7This core can be used in all three modes of operation(10/100/1000 Mb/s).
8The Management Data Input/Output (MDIO) interface is used to configure the
9Speed of operation. This core can switch dynamically between the three
10Different speed modes by configuring the conveter register through mdio write.
11
12This converter sits between the ethernet MAC and the external phy.
13MAC <==> GMII2RGMII <==> RGMII_PHY
14
15For more details about mdio please refer phy.txt file in the same directory.
16
17Required properties:
18- compatible : Should be "xlnx,gmii-to-rgmii-1.0"
19- reg : The ID number for the phy, usually a small integer
20- phy-handle : Should point to the external phy device.
21 See ethernet.txt file in the same directory.
22
23Example:
24 mdio {
25 #address-cells = <1>;
26 #size-cells = <0>;
27 phy: ethernet-phy@0 {
28 ......
29 };
30 gmiitorgmii: gmiitorgmii@8 {
31 compatible = "xlnx,gmii-to-rgmii-1.0";
32 reg = <8>;
33 phy-handle = <&phy>;
34 };
35 };
Documentation/devicetree/bindings/nvmem/amlogic-efuse.txt+39−0
@@ -0,0 +1,39 @@
1= Amlogic eFuse device tree bindings =
2
3Required properties:
4- compatible: should be "amlogic,meson-gxbb-efuse"
5
6= Data cells =
7Are child nodes of eFuse, bindings of which as described in
8bindings/nvmem/nvmem.txt
9
10Example:
11
12 efuse: efuse {
13 compatible = "amlogic,meson-gxbb-efuse";
14 #address-cells = <1>;
15 #size-cells = <1>;
16
17 sn: sn@14 {
18 reg = <0x14 0x10>;
19 };
20
21 eth_mac: eth_mac@34 {
22 reg = <0x34 0x10>;
23 };
24
25 bid: bid@46 {
26 reg = <0x46 0x30>;
27 };
28 };
29
30= Data consumers =
31Are device nodes which consume nvmem data cells.
32
33For example:
34
35 eth_mac {
36 ...
37 nvmem-cells = <&eth_mac>;
38 nvmem-cell-names = "eth_mac";
39 };
Documentation/devicetree/bindings/nvmem/rockchip-efuse.txt+11−2
@@ -1,11 +1,20 @@
1= Rockchip eFuse device tree bindings =1= Rockchip eFuse device tree bindings =
2 2
3Required properties:3Required properties:
4- compatible: Should be "rockchip,rockchip-efuse"4- compatible: Should be one of the following.
5 - "rockchip,rk3066a-efuse" - for RK3066a SoCs.
6 - "rockchip,rk3188-efuse" - for RK3188 SoCs.
7 - "rockchip,rk3288-efuse" - for RK3288 SoCs.
8 - "rockchip,rk3399-efuse" - for RK3399 SoCs.
5- reg: Should contain the registers location and exact eFuse size9- reg: Should contain the registers location and exact eFuse size
6- clocks: Should be the clock id of eFuse10- clocks: Should be the clock id of eFuse
7- clock-names: Should be "pclk_efuse"11- clock-names: Should be "pclk_efuse"
8 12
13Deprecated properties:
14- compatible: "rockchip,rockchip-efuse"
15 Old efuse compatible value compatible to rk3066a, rk3188 and rk3288
16 efuses
17
9= Data cells =18= Data cells =
10Are child nodes of eFuse, bindings of which as described in19Are child nodes of eFuse, bindings of which as described in
11bindings/nvmem/nvmem.txt20bindings/nvmem/nvmem.txt
@@ -13,7 +22,7 @@ bindings/nvmem/nvmem.txt · 1 unmodified line
13Example:22Example:
14 23
15 efuse: efuse@ffb40000 {24 efuse: efuse@ffb40000 {
16 compatible = "rockchip,rockchip-efuse";25 compatible = "rockchip,rk3288-efuse";
17 reg = <0xffb40000 0x20>;26 reg = <0xffb40000 0x20>;
18 #address-cells = <1>;27 #address-cells = <1>;
19 #size-cells = <1>;28 #size-cells = <1>;
Documentation/devicetree/bindings/pci/axis,artpec6-pcie.txt+4−3
@@ -24,16 +24,17 @@ Example: · 23 unmodified lines
24 compatible = "axis,artpec6-pcie", "snps,dw-pcie";24 compatible = "axis,artpec6-pcie", "snps,dw-pcie";
25 reg = <0xf8050000 0x200025 reg = <0xf8050000 0x2000
26 0xf8040000 0x100026 0xf8040000 0x1000
27 0xc0000000 0x1000>;27 0xc0000000 0x2000>;
28 reg-names = "dbi", "phy", "config";28 reg-names = "dbi", "phy", "config";
29 #address-cells = <3>;29 #address-cells = <3>;
30 #size-cells = <2>;30 #size-cells = <2>;
31 device_type = "pci";31 device_type = "pci";
32 /* downstream I/O */32 /* downstream I/O */
33 ranges = <0x81000000 0 0x00010000 0xc0010000 0 0x0001000033 ranges = <0x81000000 0 0 0xc0002000 0 0x00010000
34 /* non-prefetchable memory */34 /* non-prefetchable memory */
35 0x82000000 0 0xc0020000 0xc0020000 0 0x1ffe0000>;35 0x82000000 0 0xc0012000 0xc0012000 0 0x1ffee000>;
36 num-lanes = <2>;36 num-lanes = <2>;
37 bus-range = <0x00 0xff>;
37 interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;38 interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
38 interrupt-names = "msi";39 interrupt-names = "msi";
39 #interrupt-cells = <1>;40 #interrupt-cells = <1>;
Documentation/devicetree/bindings/pci/designware-pcie.txt+3−0
@@ -17,6 +17,8 @@ Required properties: · 16 unmodified lines
17- num-lanes: number of lanes to use17- num-lanes: number of lanes to use
18 18
19Optional properties:19Optional properties:
20- num-viewport: number of view ports configured in hardware. If a platform
21 does not specify it, the driver assumes 2.
20- num-lanes: number of lanes to use (this property should be specified unless22- num-lanes: number of lanes to use (this property should be specified unless
21 the link is brought already up in BIOS)23 the link is brought already up in BIOS)
22- reset-gpio: gpio pin number of power good signal24- reset-gpio: gpio pin number of power good signal
@@ -44,4 +46,5 @@ Example configuration: · 21 unmodified lines
44 interrupts = <25>, <24>;46 interrupts = <25>, <24>;
45 #interrupt-cells = <1>;47 #interrupt-cells = <1>;
46 num-lanes = <1>;48 num-lanes = <1>;
49 num-viewport = <3>;
47 };50 };
Documentation/devicetree/bindings/pci/pci-iommu.txt+171−0
@@ -0,0 +1,171 @@
1This document describes the generic device tree binding for describing the
2relationship between PCI(e) devices and IOMMU(s).
3
4Each PCI(e) device under a root complex is uniquely identified by its Requester
5ID (AKA RID). A Requester ID is a triplet of a Bus number, Device number, and
6Function number.
7
8For the purpose of this document, when treated as a numeric value, a RID is
9formatted such that:
10
11* Bits [15:8] are the Bus number.
12* Bits [7:3] are the Device number.
13* Bits [2:0] are the Function number.
14* Any other bits required for padding must be zero.
15
16IOMMUs may distinguish PCI devices through sideband data derived from the
17Requester ID. While a given PCI device can only master through one IOMMU, a
18root complex may split masters across a set of IOMMUs (e.g. with one IOMMU per
19bus).
20
21The generic 'iommus' property is insufficient to describe this relationship,
22and a mechanism is required to map from a PCI device to its IOMMU and sideband
23data.
24
25For generic IOMMU bindings, see
26Documentation/devicetree/bindings/iommu/iommu.txt.
27
28
29PCI root complex
30================
31
32Optional properties
33-------------------
34
35- iommu-map: Maps a Requester ID to an IOMMU and associated iommu-specifier
36 data.
37
38 The property is an arbitrary number of tuples of
39 (rid-base,iommu,iommu-base,length).
40
41 Any RID r in the interval [rid-base, rid-base + length) is associated with
42 the listed IOMMU, with the iommu-specifier (r - rid-base + iommu-base).
43
44- iommu-map-mask: A mask to be applied to each Requester ID prior to being
45 mapped to an iommu-specifier per the iommu-map property.
46
47
48Example (1)
49===========
50
51/ {
52 #address-cells = <1>;
53 #size-cells = <1>;
54
55 iommu: iommu@a {
56 reg = <0xa 0x1>;
57 compatible = "vendor,some-iommu";
58 #iommu-cells = <1>;
59 };
60
61 pci: pci@f {
62 reg = <0xf 0x1>;
63 compatible = "vendor,pcie-root-complex";
64 device_type = "pci";
65
66 /*
67 * The sideband data provided to the IOMMU is the RID,
68 * identity-mapped.
69 */
70 iommu-map = <0x0 &iommu 0x0 0x10000>;
71 };
72};
73
74
75Example (2)
76===========
77
78/ {
79 #address-cells = <1>;
80 #size-cells = <1>;
81
82 iommu: iommu@a {
83 reg = <0xa 0x1>;
84 compatible = "vendor,some-iommu";
85 #iommu-cells = <1>;
86 };
87
88 pci: pci@f {
89 reg = <0xf 0x1>;
90 compatible = "vendor,pcie-root-complex";
91 device_type = "pci";
92
93 /*
94 * The sideband data provided to the IOMMU is the RID with the
95 * function bits masked out.
96 */
97 iommu-map = <0x0 &iommu 0x0 0x10000>;
98 iommu-map-mask = <0xfff8>;
99 };
100};
101
102
103Example (3)
104===========
105
106/ {
107 #address-cells = <1>;
108 #size-cells = <1>;
109
110 iommu: iommu@a {
111 reg = <0xa 0x1>;
112 compatible = "vendor,some-iommu";
113 #iommu-cells = <1>;
114 };
115
116 pci: pci@f {
117 reg = <0xf 0x1>;
118 compatible = "vendor,pcie-root-complex";
119 device_type = "pci";
120
121 /*
122 * The sideband data provided to the IOMMU is the RID,
123 * but the high bits of the bus number are flipped.
124 */
125 iommu-map = <0x0000 &iommu 0x8000 0x8000>,
126 <0x8000 &iommu 0x0000 0x8000>;
127 };
128};
129
130
131Example (4)
132===========
133
134/ {
135 #address-cells = <1>;
136 #size-cells = <1>;
137
138 iommu_a: iommu@a {
139 reg = <0xa 0x1>;
140 compatible = "vendor,some-iommu";
141 #iommu-cells = <1>;
142 };
143
144 iommu_b: iommu@b {
145 reg = <0xb 0x1>;
146 compatible = "vendor,some-iommu";
147 #iommu-cells = <1>;
148 };
149
150 iommu_c: iommu@c {
151 reg = <0xc 0x1>;
152 compatible = "vendor,some-iommu";
153 #iommu-cells = <1>;
154 };
155
156 pci: pci@f {
157 reg = <0xf 0x1>;
158 compatible = "vendor,pcie-root-complex";
159 device_type = "pci";
160
161 /*
162 * Devices with bus number 0-127 are mastered via IOMMU
163 * a, with sideband data being RID[14:0].
164 * Devices with bus number 128-255 are mastered via
165 * IOMMU b, with sideband data being RID[14:0].
166 * No devices master via IOMMU c.
167 */
168 iommu-map = <0x0000 &iommu_a 0x0000 0x8000>,
169 <0x8000 &iommu_b 0x0000 0x8000>;
170 };
171};
Documentation/devicetree/bindings/pci/rockchip-pcie.txt+106−0
@@ -0,0 +1,106 @@
1* Rockchip AXI PCIe Root Port Bridge DT description
2
3Required properties:
4- #address-cells: Address representation for root ports, set to <3>
5- #size-cells: Size representation for root ports, set to <2>
6- #interrupt-cells: specifies the number of cells needed to encode an
7 interrupt source. The value must be 1.
8- compatible: Should contain "rockchip,rk3399-pcie"
9- reg: Two register ranges as listed in the reg-names property
10- reg-names: Must include the following names
11 - "axi-base"
12 - "apb-base"
13- clocks: Must contain an entry for each entry in clock-names.
14 See ../clocks/clock-bindings.txt for details.
15- clock-names: Must include the following entries:
16 - "aclk"
17 - "aclk-perf"
18 - "hclk"
19 - "pm"
20- msi-map: Maps a Requester ID to an MSI controller and associated
21 msi-specifier data. See ./pci-msi.txt
22- phys: From PHY bindings: Phandle for the Generic PHY for PCIe.
23- phy-names: MUST be "pcie-phy".
24- interrupts: Three interrupt entries must be specified.
25- interrupt-names: Must include the following names
26 - "sys"
27 - "legacy"
28 - "client"
29- resets: Must contain five entries for each entry in reset-names.
30 See ../reset/reset.txt for details.
31- reset-names: Must include the following names
32 - "core"
33 - "mgmt"
34 - "mgmt-sticky"
35 - "pipe"
36- pinctrl-names : The pin control state names
37- pinctrl-0: The "default" pinctrl state
38- #interrupt-cells: specifies the number of cells needed to encode an
39 interrupt source. The value must be 1.
40- interrupt-map-mask and interrupt-map: standard PCI properties
41
42Optional Property:
43- ep-gpios: contain the entry for pre-reset gpio
44- num-lanes: number of lanes to use
45- vpcie3v3-supply: The phandle to the 3.3v regulator to use for PCIe.
46- vpcie1v8-supply: The phandle to the 1.8v regulator to use for PCIe.
47- vpcie0v9-supply: The phandle to the 0.9v regulator to use for PCIe.
48
49*Interrupt controller child node*
50The core controller provides a single interrupt for legacy INTx. The PCIe node
51should contain an interrupt controller node as a target for the PCI
52'interrupt-map' property. This node represents the domain at which the four
53INTx interrupts are decoded and routed.
54
55
56Required properties for Interrupt controller child node:
57- interrupt-controller: identifies the node as an interrupt controller
58- #address-cells: specifies the number of cells needed to encode an
59 address. The value must be 0.
60- #interrupt-cells: specifies the number of cells needed to encode an
61 interrupt source. The value must be 1.
62
63Example:
64
65pcie0: pcie@f8000000 {
66 compatible = "rockchip,rk3399-pcie";
67 #address-cells = <3>;
68 #size-cells = <2>;
69 clocks = <&cru ACLK_PCIE>, <&cru ACLK_PERF_PCIE>,
70 <&cru PCLK_PCIE>, <&cru SCLK_PCIE_PM>;
71 clock-names = "aclk", "aclk-perf",
72 "hclk", "pm";
73 bus-range = <0x0 0x1>;
74 interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH 0>,
75 <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH 0>,
76 <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH 0>;
77 interrupt-names = "sys", "legacy", "client";
78 assigned-clocks = <&cru SCLK_PCIEPHY_REF>;
79 assigned-clock-parents = <&cru SCLK_PCIEPHY_REF100M>;
80 assigned-clock-rates = <100000000>;
81 ep-gpios = <&gpio3 13 GPIO_ACTIVE_HIGH>;
82 ranges = <0x83000000 0x0 0xfa000000 0x0 0xfa000000 0x0 0x600000
83 0x81000000 0x0 0xfa600000 0x0 0xfa600000 0x0 0x100000>;
84 num-lanes = <4>;
85 msi-map = <0x0 &its 0x0 0x1000>;
86 reg = <0x0 0xf8000000 0x0 0x2000000>, <0x0 0xfd000000 0x0 0x1000000>;
87 reg-names = "axi-base", "apb-base";
88 resets = <&cru SRST_PCIE_CORE>, <&cru SRST_PCIE_MGMT>,
89 <&cru SRST_PCIE_MGMT_STICKY>, <&cru SRST_PCIE_PIPE>;
90 reset-names = "core", "mgmt", "mgmt-sticky", "pipe";
91 phys = <&pcie_phy>;
92 phy-names = "pcie-phy";
93 pinctrl-names = "default";
94 pinctrl-0 = <&pcie_clkreq>;
95 #interrupt-cells = <1>;
96 interrupt-map-mask = <0 0 0 7>;
97 interrupt-map = <0 0 0 1 &pcie0_intc 0>,
98 <0 0 0 2 &pcie0_intc 1>,
99 <0 0 0 3 &pcie0_intc 2>,
100 <0 0 0 4 &pcie0_intc 3>;
101 pcie0_intc: interrupt-controller {
102 interrupt-controller;
103 #address-cells = <0>;
104 #interrupt-cells = <1>;
105 };
106};
Documentation/devicetree/bindings/pci/xilinx-nwl-pcie.txt+3−2
@@ -55,9 +55,10 @@ nwl_pcie: pcie@fd0e0000 { · 54 unmodified lines
55 msi-parent = <&nwl_pcie>;55 msi-parent = <&nwl_pcie>;
56 reg = <0x0 0xfd0e0000 0x0 0x1000>,56 reg = <0x0 0xfd0e0000 0x0 0x1000>,
57 <0x0 0xfd480000 0x0 0x1000>,57 <0x0 0xfd480000 0x0 0x1000>,
58 <0x0 0xe0000000 0x0 0x1000000>;58 <0x80 0x00000000 0x0 0x1000000>;
59 reg-names = "breg", "pcireg", "cfg";59 reg-names = "breg", "pcireg", "cfg";
60 ranges = <0x02000000 0x00000000 0xe1000000 0x00000000 0xe1000000 0 0x0f000000>;60 ranges = <0x02000000 0x00000000 0xe0000000 0x00000000 0xe0000000 0x00000000 0x10000000 /* non-prefetchable memory */
61 0x43000000 0x00000006 0x00000000 0x00000006 0x00000000 0x00000002 0x00000000>;/* prefetchable memory */
61 62
62 pcie_intc: legacy-interrupt-controller {63 pcie_intc: legacy-interrupt-controller {
63 interrupt-controller;64 interrupt-controller;
Documentation/devicetree/bindings/perf/apm-xgene-pmu.txt+112−0
@@ -0,0 +1,112 @@
1* APM X-Gene SoC PMU bindings
2
3This is APM X-Gene SoC PMU (Performance Monitoring Unit) module.
4The following PMU devices are supported:
5
6 L3C - L3 cache controller
7 IOB - IO bridge
8 MCB - Memory controller bridge
9 MC - Memory controller
10
11The following section describes the SoC PMU DT node binding.
12
13Required properties:
14- compatible : Shall be "apm,xgene-pmu" for revision 1 or
15 "apm,xgene-pmu-v2" for revision 2.
16- regmap-csw : Regmap of the CPU switch fabric (CSW) resource.
17- regmap-mcba : Regmap of the MCB-A (memory bridge) resource.
18- regmap-mcbb : Regmap of the MCB-B (memory bridge) resource.
19- reg : First resource shall be the CPU bus PMU resource.
20- interrupts : Interrupt-specifier for PMU IRQ.
21
22Required properties for L3C subnode:
23- compatible : Shall be "apm,xgene-pmu-l3c".
24- reg : First resource shall be the L3C PMU resource.
25
26Required properties for IOB subnode:
27- compatible : Shall be "apm,xgene-pmu-iob".
28- reg : First resource shall be the IOB PMU resource.
29
30Required properties for MCB subnode:
31- compatible : Shall be "apm,xgene-pmu-mcb".
32- reg : First resource shall be the MCB PMU resource.
33- enable-bit-index : The bit indicates if the according MCB is enabled.
34
35Required properties for MC subnode:
36- compatible : Shall be "apm,xgene-pmu-mc".
37- reg : First resource shall be the MC PMU resource.
38- enable-bit-index : The bit indicates if the according MC is enabled.
39
40Example:
41 csw: csw@7e200000 {
42 compatible = "apm,xgene-csw", "syscon";
43 reg = <0x0 0x7e200000 0x0 0x1000>;
44 };
45
46 mcba: mcba@7e700000 {
47 compatible = "apm,xgene-mcb", "syscon";
48 reg = <0x0 0x7e700000 0x0 0x1000>;
49 };
50
51 mcbb: mcbb@7e720000 {
52 compatible = "apm,xgene-mcb", "syscon";
53 reg = <0x0 0x7e720000 0x0 0x1000>;
54 };
55
56 pmu: pmu@78810000 {
57 compatible = "apm,xgene-pmu-v2";
58 #address-cells = <2>;
59 #size-cells = <2>;
60 ranges;
61 regmap-csw = <&csw>;
62 regmap-mcba = <&mcba>;
63 regmap-mcbb = <&mcbb>;
64 reg = <0x0 0x78810000 0x0 0x1000>;
65 interrupts = <0x0 0x22 0x4>;
66
67 pmul3c@7e610000 {
68 compatible = "apm,xgene-pmu-l3c";
69 reg = <0x0 0x7e610000 0x0 0x1000>;
70 };
71
72 pmuiob@7e940000 {
73 compatible = "apm,xgene-pmu-iob";
74 reg = <0x0 0x7e940000 0x0 0x1000>;
75 };
76
77 pmucmcb@7e710000 {
78 compatible = "apm,xgene-pmu-mcb";
79 reg = <0x0 0x7e710000 0x0 0x1000>;
80 enable-bit-index = <0>;
81 };
82
83 pmucmcb@7e730000 {
84 compatible = "apm,xgene-pmu-mcb";
85 reg = <0x0 0x7e730000 0x0 0x1000>;
86 enable-bit-index = <1>;
87 };
88
89 pmucmc@7e810000 {
90 compatible = "apm,xgene-pmu-mc";
91 reg = <0x0 0x7e810000 0x0 0x1000>;
92 enable-bit-index = <0>;
93 };
94
95 pmucmc@7e850000 {
96 compatible = "apm,xgene-pmu-mc";
97 reg = <0x0 0x7e850000 0x0 0x1000>;
98 enable-bit-index = <1>;
99 };
100
101 pmucmc@7e890000 {
102 compatible = "apm,xgene-pmu-mc";
103 reg = <0x0 0x7e890000 0x0 0x1000>;
104 enable-bit-index = <2>;
105 };
106
107 pmucmc@7e8d0000 {
108 compatible = "apm,xgene-pmu-mc";
109 reg = <0x0 0x7e8d0000 0x0 0x1000>;
110 enable-bit-index = <3>;
111 };
112 };
Documentation/devicetree/bindings/phy/bcm-ns-usb3-phy.txt+23−0
@@ -0,0 +1,23 @@
1Driver for Broadcom Northstar USB 3.0 PHY
2
3Required properties:
4
5- compatible: one of: "brcm,ns-ax-usb3-phy", "brcm,ns-bx-usb3-phy".
6- reg: register mappings for DMP (Device Management Plugin) and ChipCommon B
7 MMI.
8- reg-names: "dmp" and "ccb-mii"
9
10Initialization of USB 3.0 PHY depends on Northstar version. There are currently
11three known series: Ax, Bx and Cx.
12Known A0: BCM4707 rev 0
13Known B0: BCM4707 rev 4, BCM53573 rev 2
14Known B1: BCM4707 rev 6
15Known C0: BCM47094 rev 0
16
17Example:
18 usb3-phy {
19 compatible = "brcm,ns-ax-usb3-phy";
20 reg = <0x18105000 0x1000>, <0x18003000 0x1000>;
21 reg-names = "dmp", "ccb-mii";
22 #phy-cells = <0>;
23 };
Documentation/devicetree/bindings/phy/meson-usb2-phy.txt+27−0
@@ -0,0 +1,27 @@
1* Amlogic USB2 PHY
2
3Required properties:
4- compatible: Depending on the platform this should be one of:
5 "amlogic,meson8b-usb2-phy"
6 "amlogic,meson-gxbb-usb2-phy"
7- reg: The base address and length of the registers
8- #phys-cells: should be 0 (see phy-bindings.txt in this directory)
9- clocks: phandle and clock identifier for the phy clocks
10- clock-names: "usb_general" and "usb"
11
12Optional properties:
13- resets: reference to the reset controller
14- phy-supply: see phy-bindings.txt in this directory
15
16
17Example:
18
19usb0_phy: usb_phy@0 {
20 compatible = "amlogic,meson-gxbb-usb2-phy";
21 #phy-cells = <0>;
22 reg = <0x0 0x0 0x0 0x20>;
23 resets = <&reset RESET_USB_OTG>;
24 clocks = <&clkc CLKID_USB>, <&clkc CLKID_USB0>;
25 clock-names = "usb_general", "usb";
26 phy-supply = <&usb_vbus>;
27};
Documentation/devicetree/bindings/phy/mxs-usb-phy.txt+10−0
@@ -12,6 +12,16 @@ Required properties: · 11 unmodified lines
12- interrupts: Should contain phy interrupt12- interrupts: Should contain phy interrupt
13- fsl,anatop: phandle for anatop register, it is only for imx6 SoC series13- fsl,anatop: phandle for anatop register, it is only for imx6 SoC series
14 14
15Optional properties:
16- fsl,tx-cal-45-dn-ohms: Integer [30-55]. Resistance (in ohms) of switchable
17 high-speed trimming resistor connected in parallel with the 45 ohm resistor
18 that terminates the DN output signal. Default: 45
19- fsl,tx-cal-45-dp-ohms: Integer [30-55]. Resistance (in ohms) of switchable
20 high-speed trimming resistor connected in parallel with the 45 ohm resistor
21 that terminates the DP output signal. Default: 45
22- fsl,tx-d-cal: Integer [79-119]. Current trimming value (as a percentage) of
23 the 17.78mA TX reference current. Default: 100
24
15Example:25Example:
16usbphy1: usbphy@020c9000 {26usbphy1: usbphy@020c9000 {
17 compatible = "fsl,imx6q-usbphy", "fsl,imx23-usbphy";27 compatible = "fsl,imx6q-usbphy", "fsl,imx23-usbphy";
Documentation/devicetree/bindings/phy/phy-rockchip-inno-usb2.txt+64−0
@@ -0,0 +1,64 @@
1ROCKCHIP USB2.0 PHY WITH INNO IP BLOCK
2
3Required properties (phy (parent) node):
4 - compatible : should be one of the listed compatibles:
5 * "rockchip,rk3366-usb2phy"
6 * "rockchip,rk3399-usb2phy"
7 - reg : the address offset of grf for usb-phy configuration.
8 - #clock-cells : should be 0.
9 - clock-output-names : specify the 480m output clock name.
10
11Optional properties:
12 - clocks : phandle + phy specifier pair, for the input clock of phy.
13 - clock-names : input clock name of phy, must be "phyclk".
14
15Required nodes : a sub-node is required for each port the phy provides.
16 The sub-node name is used to identify host or otg port,
17 and shall be the following entries:
18 * "otg-port" : the name of otg port.
19 * "host-port" : the name of host port.
20
21Required properties (port (child) node):
22 - #phy-cells : must be 0. See ./phy-bindings.txt for details.
23 - interrupts : specify an interrupt for each entry in interrupt-names.
24 - interrupt-names : a list which shall be the following entries:
25 * "otg-id" : for the otg id interrupt.
26 * "otg-bvalid" : for the otg vbus interrupt.
27 * "linestate" : for the host/otg linestate interrupt.
28
29Optional properties:
30 - phy-supply : phandle to a regulator that provides power to VBUS.
31 See ./phy-bindings.txt for details.
32
33Example:
34
35grf: syscon@ff770000 {
36 compatible = "rockchip,rk3366-grf", "syscon", "simple-mfd";
37 #address-cells = <1>;
38 #size-cells = <1>;
39
40...
41
42 u2phy: usb2-phy@700 {
43 compatible = "rockchip,rk3366-usb2phy";
44 reg = <0x700 0x2c>;
45 #clock-cells = <0>;
46 clock-output-names = "sclk_otgphy0_480m";
47
48 u2phy_otg: otg-port {
49 #phy-cells = <0>;
50 interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>,
51 <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>,
52 <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
53 interrupt-names = "otg-id", "otg-bvalid", "linestate";
54 status = "okay";
55 };
56
57 u2phy_host: host-port {
58 #phy-cells = <0>;
59 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
60 interrupt-names = "linestate";
61 status = "okay";
62 };
63 };
64};
Documentation/devicetree/bindings/phy/phy-rockchip-typec.txt+101−0
@@ -0,0 +1,101 @@
1* ROCKCHIP type-c PHY
2---------------------
3
4Required properties:
5 - compatible : must be "rockchip,rk3399-typec-phy"
6 - reg: Address and length of the usb phy control register set
7 - rockchip,grf : phandle to the syscon managing the "general
8 register files"
9 - clocks : phandle + clock specifier for the phy clocks
10 - clock-names : string, clock name, must be "tcpdcore", "tcpdphy-ref";
11 - assigned-clocks: main clock, should be <&cru SCLK_UPHY0_TCPDCORE> or
12 <&cru SCLK_UPHY1_TCPDCORE>;
13 - assigned-clock-rates : the phy core clk frequency, shall be: 50000000
14 - resets : a list of phandle + reset specifier pairs
15 - reset-names : string reset name, must be:
16 "uphy", "uphy-pipe", "uphy-tcphy"
17 - extcon : extcon specifier for the Power Delivery
18
19Note, there are 2 type-c phys for RK3399, and they are almost identical, except
20these registers(description below), every register node contains 3 sections:
21offset, enable bit, write mask bit.
22 - rockchip,typec-conn-dir : the register of type-c connector direction,
23 for type-c phy0, it must be <0xe580 0 16>;
24 for type-c phy1, it must be <0xe58c 0 16>;
25 - rockchip,usb3tousb2-en : the register of type-c force usb3 to usb2 enable
26 control.
27 for type-c phy0, it must be <0xe580 3 19>;
28 for type-c phy1, it must be <0xe58c 3 19>;
29 - rockchip,external-psm : the register of type-c phy external psm clock
30 selection.
31 for type-c phy0, it must be <0xe588 14 30>;
32 for type-c phy1, it must be <0xe594 14 30>;
33 - rockchip,pipe-status : the register of type-c phy pipe status.
34 for type-c phy0, it must be <0xe5c0 0 0>;
35 for type-c phy1, it must be <0xe5c0 16 16>;
36
37Required nodes : a sub-node is required for each port the phy provides.
38 The sub-node name is used to identify dp or usb3 port,
39 and shall be the following entries:
40 * "dp-port" : the name of DP port.
41 * "usb3-port" : the name of USB3 port.
42
43Required properties (port (child) node):
44- #phy-cells : must be 0, See ./phy-bindings.txt for details.
45
46Example:
47 tcphy0: phy@ff7c0000 {
48 compatible = "rockchip,rk3399-typec-phy";
49 reg = <0x0 0xff7c0000 0x0 0x40000>;
50 rockchip,grf = <&grf>;
51 extcon = <&fusb0>;
52 clocks = <&cru SCLK_UPHY0_TCPDCORE>,
53 <&cru SCLK_UPHY0_TCPDPHY_REF>;
54 clock-names = "tcpdcore", "tcpdphy-ref";
55 assigned-clocks = <&cru SCLK_UPHY0_TCPDCORE>;
56 assigned-clock-rates = <50000000>;
57 resets = <&cru SRST_UPHY0>,
58 <&cru SRST_UPHY0_PIPE_L00>,
59 <&cru SRST_P_UPHY0_TCPHY>;
60 reset-names = "uphy", "uphy-pipe", "uphy-tcphy";
61 rockchip,typec-conn-dir = <0xe580 0 16>;
62 rockchip,usb3tousb2-en = <0xe580 3 19>;
63 rockchip,external-psm = <0xe588 14 30>;
64 rockchip,pipe-status = <0xe5c0 0 0>;
65
66 tcphy0_dp: dp-port {
67 #phy-cells = <0>;
68 };
69
70 tcphy0_usb3: usb3-port {
71 #phy-cells = <0>;
72 };
73 };
74
75 tcphy1: phy@ff800000 {
76 compatible = "rockchip,rk3399-typec-phy";
77 reg = <0x0 0xff800000 0x0 0x40000>;
78 rockchip,grf = <&grf>;
79 extcon = <&fusb1>;
80 clocks = <&cru SCLK_UPHY1_TCPDCORE>,
81 <&cru SCLK_UPHY1_TCPDPHY_REF>;
82 clock-names = "tcpdcore", "tcpdphy-ref";
83 assigned-clocks = <&cru SCLK_UPHY1_TCPDCORE>;
84 assigned-clock-rates = <50000000>;
85 resets = <&cru SRST_UPHY1>,
86 <&cru SRST_UPHY1_PIPE_L00>,
87 <&cru SRST_P_UPHY1_TCPHY>;
88 reset-names = "uphy", "uphy-pipe", "uphy-tcphy";
89 rockchip,typec-conn-dir = <0xe58c 0 16>;
90 rockchip,usb3tousb2-en = <0xe58c 3 19>;
91 rockchip,external-psm = <0xe594 14 30>;
92 rockchip,pipe-status = <0xe5c0 16 16>;
93
94 tcphy1_dp: dp-port {
95 #phy-cells = <0>;
96 };
97
98 tcphy1_usb3: usb3-port {
99 #phy-cells = <0>;
100 };
101 };
Documentation/devicetree/bindings/phy/rcar-gen3-phy-usb2.txt+4−2
@@ -5,6 +5,8 @@ This file provides information on what the device node for the R-Car generation · 4 unmodified lines
5 5
6Required properties:6Required properties:
7- compatible: "renesas,usb2-phy-r8a7795" if the device is a part of an R8A77957- compatible: "renesas,usb2-phy-r8a7795" if the device is a part of an R8A7795
8 SoC.
9 "renesas,usb2-phy-r8a7796" if the device is a part of an R8A7796
8 SoC.10 SoC.
9 "renesas,rcar-gen3-usb2-phy" for a generic R-Car Gen3 compatible device.11 "renesas,rcar-gen3-usb2-phy" for a generic R-Car Gen3 compatible device.
10 12
@@ -30,11 +32,11 @@ Example (R-Car H3): · 19 unmodified lines
30 compatible = "renesas,usb2-phy-r8a7795", "renesas,rcar-gen3-usb2-phy";32 compatible = "renesas,usb2-phy-r8a7795", "renesas,rcar-gen3-usb2-phy";
31 reg = <0 0xee080200 0 0x700>;33 reg = <0 0xee080200 0 0x700>;
32 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;34 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
33 clocks = <&mstp7_clks R8A7795_CLK_EHCI0>;35 clocks = <&cpg CPG_MOD 703>;
34 };36 };
35 37
36 usb-phy@ee0a0200 {38 usb-phy@ee0a0200 {
37 compatible = "renesas,usb2-phy-r8a7795", "renesas,rcar-gen3-usb2-phy";39 compatible = "renesas,usb2-phy-r8a7795", "renesas,rcar-gen3-usb2-phy";
38 reg = <0 0xee0a0200 0 0x700>;40 reg = <0 0xee0a0200 0 0x700>;
39 clocks = <&mstp7_clks R8A7795_CLK_EHCI0>;41 clocks = <&cpg CPG_MOD 702>;
40 };42 };
Documentation/devicetree/bindings/phy/rockchip-pcie-phy.txt+31−0
@@ -0,0 +1,31 @@
1Rockchip PCIE PHY
2-----------------------
3
4Required properties:
5 - compatible: rockchip,rk3399-pcie-phy
6 - #phy-cells: must be 0
7 - clocks: Must contain an entry in clock-names.
8 See ../clocks/clock-bindings.txt for details.
9 - clock-names: Must be "refclk"
10 - resets: Must contain an entry in reset-names.
11 See ../reset/reset.txt for details.
12 - reset-names: Must be "phy"
13
14Example:
15
16grf: syscon@ff770000 {
17 compatible = "rockchip,rk3399-grf", "syscon", "simple-mfd";
18 #address-cells = <1>;
19 #size-cells = <1>;
20
21 ...
22
23 pcie_phy: pcie-phy {
24 compatible = "rockchip,rk3399-pcie-phy";
25 #phy-cells = <0>;
26 clocks = <&cru SCLK_PCIEPHY_REF>;
27 clock-names = "refclk";
28 resets = <&cru SRST_PCIEPHY>;
29 reset-names = "phy";
30 };
31};
Documentation/devicetree/bindings/phy/rockchip-usb-phy.txt+3−0
@@ -27,6 +27,9 @@ Optional Properties: · 26 unmodified lines
27- clocks : phandle + clock specifier for the phy clocks27- clocks : phandle + clock specifier for the phy clocks
28- clock-names: string, clock name, must be "phyclk"28- clock-names: string, clock name, must be "phyclk"
29- #clock-cells: for users of the phy-pll, should be 029- #clock-cells: for users of the phy-pll, should be 0
30- reset-names: Only allow the following entries:
31 - phy-reset
32- resets: Must contain an entry for each entry in reset-names.
30 33
31Example:34Example:
32 35
Documentation/devicetree/bindings/phy/sun4i-usb-phy.txt+1−0
@@ -10,6 +10,7 @@ Required properties: · 9 unmodified lines
10 * allwinner,sun8i-a23-usb-phy10 * allwinner,sun8i-a23-usb-phy
11 * allwinner,sun8i-a33-usb-phy11 * allwinner,sun8i-a33-usb-phy
12 * allwinner,sun8i-h3-usb-phy12 * allwinner,sun8i-h3-usb-phy
13 * allwinner,sun50i-a64-usb-phy
13- reg : a list of offset + length pairs14- reg : a list of offset + length pairs
14- reg-names :15- reg-names :
15 * "phy_ctrl"16 * "phy_ctrl"
Documentation/devicetree/bindings/phy/ti-phy.txt+2−0
@@ -31,6 +31,8 @@ OMAP USB2 PHY · 30 unmodified lines
31 31
32Required properties:32Required properties:
33 - compatible: Should be "ti,omap-usb2"33 - compatible: Should be "ti,omap-usb2"
34 Should be "ti,dra7x-usb2" for the 1st instance of USB2 PHY on
35 DRA7x
34 Should be "ti,dra7x-usb2-phy2" for the 2nd instance of USB2 PHY36 Should be "ti,dra7x-usb2-phy2" for the 2nd instance of USB2 PHY
35 in DRA7x37 in DRA7x
36 - reg : Address and length of the register set for the device.38 - reg : Address and length of the register set for the device.
Documentation/devicetree/bindings/pinctrl/allwinner,sunxi-pinctrl.txt+1−0
@@ -23,6 +23,7 @@ Required properties: · 22 unmodified lines
23 "allwinner,sun8i-h3-pinctrl"23 "allwinner,sun8i-h3-pinctrl"
24 "allwinner,sun8i-h3-r-pinctrl"24 "allwinner,sun8i-h3-r-pinctrl"
25 "allwinner,sun50i-a64-pinctrl"25 "allwinner,sun50i-a64-pinctrl"
26 "nextthing,gr8-pinctrl"
26 27
27- reg: Should contain the register physical address and length for the28- reg: Should contain the register physical address and length for the
28 pin controller.29 pin controller.
Documentation/devicetree/bindings/pinctrl/marvell,orion-pinctrl.txt+3−1
@@ -4,7 +4,9 @@ Please refer to marvell,mvebu-pinctrl.txt in this directory for common binding · 3 unmodified lines
4part and usage.4part and usage.
5 5
6Required properties:6Required properties:
7- compatible: "marvell,88f5181l-pinctrl", "marvell,88f5182-pinctrl",7- compatible: "marvell,88f5181-pinctrl",
8 "marvell,88f5181l-pinctrl",
9 "marvell,88f5182-pinctrl",
8 "marvell,88f5281-pinctrl"10 "marvell,88f5281-pinctrl"
9 11
10- reg: two register areas, the first one describing the first two12- reg: two register areas, the first one describing the first two
Documentation/devicetree/bindings/pinctrl/pinctrl-aspeed.txt+67−0
@@ -0,0 +1,67 @@
1Aspeed Pin Controllers
2----------------------
3
4The Aspeed SoCs vary in functionality inside a generation but have a common mux
5device register layout.
6
7Required properties:
8- compatible : Should be any one of the following:
9 "aspeed,ast2400-pinctrl"
10 "aspeed,g4-pinctrl"
11 "aspeed,ast2500-pinctrl"
12 "aspeed,g5-pinctrl"
13
14The pin controller node should be a child of a syscon node with the required
15property:
16- compatible: "syscon", "simple-mfd"
17
18Refer to the the bindings described in
19Documentation/devicetree/bindings/mfd/syscon.txt
20
21Subnode Format
22--------------
23
24The required properties of child nodes are (as defined in pinctrl-bindings):
25- function
26- groups
27
28Each function has only one associated pin group. Each group is named by its
29function. The following values for the function and groups properties are
30supported:
31
32aspeed,ast2400-pinctrl, aspeed,g4-pinctrl:
33
34ACPI BMCINT DDCCLK DDCDAT FLACK FLBUSY FLWP GPID0 GPIE0 GPIE2 GPIE4 GPIE6 I2C10
35I2C11 I2C12 I2C13 I2C3 I2C4 I2C5 I2C6 I2C7 I2C8 I2C9 LPCPD LPCPME LPCSMI MDIO1
36MDIO2 NCTS1 NCTS3 NCTS4 NDCD1 NDCD3 NDCD4 NDSR1 NDSR3 NDTR1 NDTR3 NRI1 NRI3
37NRI4 NRTS1 NRTS3 PWM0 PWM1 PWM2 PWM3 PWM4 PWM5 PWM6 PWM7 RGMII1 RMII1 ROM16
38ROM8 ROMCS1 ROMCS2 ROMCS3 ROMCS4 RXD1 RXD3 RXD4 SD1 SGPMI SIOPBI SIOPBO TIMER3
39TIMER5 TIMER6 TIMER7 TIMER8 TXD1 TXD3 TXD4 UART6 VGAHS VGAVS VPI18 VPI24 VPI30
40VPO12 VPO24
41
42aspeed,ast2500-pinctrl, aspeed,g5-pinctrl:
43
44GPID0 GPID2 GPIE0 I2C10 I2C11 I2C12 I2C13 I2C14 I2C3 I2C4 I2C5 I2C6 I2C7 I2C8
45I2C9 MAC1LINK MDIO1 MDIO2 OSCCLK PEWAKE PWM0 PWM1 PWM2 PWM3 PWM4 PWM5 PWM6 PWM7
46RGMII1 RGMII2 RMII1 RMII2 SD1 SPI1 SPI1DEBUG SPI1PASSTHRU TIMER4 TIMER5 TIMER6
47TIMER7 TIMER8 VGABIOSROM
48
49
50Examples:
51
52syscon: scu@1e6e2000 {
53 compatible = "syscon", "simple-mfd";
54 reg = <0x1e6e2000 0x1a8>;
55
56 pinctrl: pinctrl {
57 compatible = "aspeed,g4-pinctrl";
58
59 pinctrl_i2c3_default: i2c3_default {
60 function = "I2C3";
61 groups = "I2C3";
62 };
63 };
64};
65
66Please refer to pinctrl-bindings.txt in this directory for details of the
67common pinctrl bindings used by client devices.
Documentation/devicetree/bindings/pinctrl/pinctrl-st.txt+21−18
@@ -30,8 +30,7 @@ Second type has a dedicated interrupt per gpio bank. · 29 unmodified lines
30 30
31Pin controller node:31Pin controller node:
32Required properties:32Required properties:
33- compatible : should be "st,<SOC>-<pio-block>-pinctrl"33- compatible : should be "st,stih407-<pio-block>-pinctrl"
34 like st,stih415-sbc-pinctrl, st,stih415-front-pinctrl and so on.
35- st,syscfg : Should be a phandle of the syscfg node.34- st,syscfg : Should be a phandle of the syscfg node.
36- st,retime-pin-mask : Should be mask to specify which pins can be retimed.35- st,retime-pin-mask : Should be mask to specify which pins can be retimed.
37 If the property is not present, it is assumed that all the pins in the36 If the property is not present, it is assumed that all the pins in the
@@ -50,7 +49,11 @@ Optional properties: · 12 unmodified lines
50GPIO controller/bank node.49GPIO controller/bank node.
51Required properties:50Required properties:
52- gpio-controller : Indicates this device is a GPIO controller51- gpio-controller : Indicates this device is a GPIO controller
53- #gpio-cells : Should be one. The first cell is the pin number.52- #gpio-cells : Must be two.
53 - First cell: specifies the pin number inside the controller
54 - Second cell: specifies whether the pin is logically inverted.
55 - 0 = active high
56 - 1 = active low
54- st,bank-name : Should be a name string for this bank as specified in57- st,bank-name : Should be a name string for this bank as specified in
55 datasheet.58 datasheet.
56 59
@@ -76,23 +79,23 @@ include/dt-bindings/interrupt-controller/irq.h · 19 unmodified lines
76 79
77Example:80Example:
78 pin-controller-sbc {81 pin-controller-sbc {
79 #address-cells = <1>;82 #address-cells = <1>;
80 #size-cells = <1>;83 #size-cells = <1>;
81 compatible = "st,stih415-sbc-pinctrl";84 compatible = "st,stih407-sbc-pinctrl";
82 st,syscfg = <&syscfg_sbc>;85 st,syscfg = <&syscfg_sbc>;
83 reg = <0xfe61f080 0x4>;86 reg = <0x0961f080 0x4>;
84 reg-names = "irqmux";87 reg-names = "irqmux";
85 interrupts = <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>;88 interrupts = <GIC_SPI 188 IRQ_TYPE_NONE>;
86 interrupt-names = "irqmux";89 interrupt-names = "irqmux";
87 ranges = <0 0xfe610000 0x5000>;90 ranges = <0 0x09610000 0x6000>;
88 91
89 PIO0: gpio@fe610000 {92 pio0: gpio@09610000 {
90 gpio-controller;93 gpio-controller;
91 #gpio-cells = <1>;94 #gpio-cells = <2>;
92 interrupt-controller;95 interrupt-controller;
93 #interrupt-cells = <2>;96 #interrupt-cells = <2>;
94 reg = <0 0x100>;97 reg = <0x0 0x100>;
95 st,bank-name = "PIO0";98 st,bank-name = "PIO0";
96 };99 };
97 ...100 ...
98 pin-functions nodes follow...101 pin-functions nodes follow...
@@ -162,7 +165,7 @@ pin-controller { · 63 unmodified lines
162 165
163sdhci0:sdhci@fe810000{166sdhci0:sdhci@fe810000{
164 ...167 ...
165 interrupt-parent = <&PIO3>;168 interrupt-parent = <&pio3>;
166 #interrupt-cells = <2>;169 #interrupt-cells = <2>;
167 interrupts = <3 IRQ_TYPE_LEVEL_HIGH>; /* Interrupt line via PIO3-3 */170 interrupts = <3 IRQ_TYPE_LEVEL_HIGH>; /* Interrupt line via PIO3-3 */
168 interrupt-names = "card-detect";171 interrupt-names = "card-detect";
Documentation/devicetree/bindings/pinctrl/qcom,pmic-gpio.txt+4−1
@@ -17,6 +17,9 @@ PMIC's from Qualcomm. · 16 unmodified lines
17 "qcom,pm8994-gpio"17 "qcom,pm8994-gpio"
18 "qcom,pma8084-gpio"18 "qcom,pma8084-gpio"
19 19
20 And must contain either "qcom,spmi-gpio" or "qcom,ssbi-gpio"
21 if the device is on an spmi bus or an ssbi bus respectively
22
20- reg:23- reg:
21 Usage: required24 Usage: required
22 Value type: <prop-encoded-array>25 Value type: <prop-encoded-array>
@@ -183,7 +186,7 @@ to specify in a pin configuration subnode: · 160 unmodified lines
183Example:186Example:
184 187
185 pm8921_gpio: gpio@150 {188 pm8921_gpio: gpio@150 {
186 compatible = "qcom,pm8921-gpio";189 compatible = "qcom,pm8921-gpio", "qcom,ssbi-gpio";
187 reg = <0x150 0x160>;190 reg = <0x150 0x160>;
188 interrupts = <192 1>, <193 1>, <194 1>,191 interrupts = <192 1>, <193 1>, <194 1>,
189 <195 1>, <196 1>, <197 1>,192 <195 1>, <196 1>, <197 1>,
Documentation/devicetree/bindings/pinctrl/qcom,pmic-mpp.txt+4−1
@@ -19,6 +19,9 @@ of PMIC's from Qualcomm. · 18 unmodified lines
19 "qcom,pm8994-mpp",19 "qcom,pm8994-mpp",
20 "qcom,pma8084-mpp",20 "qcom,pma8084-mpp",
21 21
22 And must contain either "qcom,spmi-mpp" or "qcom,ssbi-mpp"
23 if the device is on an spmi bus or an ssbi bus respectively.
24
22- reg:25- reg:
23 Usage: required26 Usage: required
24 Value type: <prop-encoded-array>27 Value type: <prop-encoded-array>
@@ -158,7 +161,7 @@ to specify in a pin configuration subnode: · 133 unmodified lines
158Example:161Example:
159 162
160 mpps@a000 {163 mpps@a000 {
161 compatible = "qcom,pm8841-mpp";164 compatible = "qcom,pm8841-mpp", "qcom,spmi-mpp";
162 reg = <0xa000>;165 reg = <0xa000>;
163 gpio-controller;166 gpio-controller;
164 #gpio-cells = <2>;167 #gpio-cells = <2>;
Documentation/devicetree/bindings/pinctrl/renesas,pfc-pinctrl.txt+2−0
@@ -17,9 +17,11 @@ Required Properties: · 16 unmodified lines
17 - "renesas,pfc-r8a7779": for R8A7779 (R-Car H1) compatible pin-controller.17 - "renesas,pfc-r8a7779": for R8A7779 (R-Car H1) compatible pin-controller.
18 - "renesas,pfc-r8a7790": for R8A7790 (R-Car H2) compatible pin-controller.18 - "renesas,pfc-r8a7790": for R8A7790 (R-Car H2) compatible pin-controller.
19 - "renesas,pfc-r8a7791": for R8A7791 (R-Car M2-W) compatible pin-controller.19 - "renesas,pfc-r8a7791": for R8A7791 (R-Car M2-W) compatible pin-controller.
20 - "renesas,pfc-r8a7792": for R8A7792 (R-Car V2H) compatible pin-controller.
20 - "renesas,pfc-r8a7793": for R8A7793 (R-Car M2-N) compatible pin-controller.21 - "renesas,pfc-r8a7793": for R8A7793 (R-Car M2-N) compatible pin-controller.
21 - "renesas,pfc-r8a7794": for R8A7794 (R-Car E2) compatible pin-controller.22 - "renesas,pfc-r8a7794": for R8A7794 (R-Car E2) compatible pin-controller.
22 - "renesas,pfc-r8a7795": for R8A7795 (R-Car H3) compatible pin-controller.23 - "renesas,pfc-r8a7795": for R8A7795 (R-Car H3) compatible pin-controller.
24 - "renesas,pfc-r8a7796": for R8A7796 (R-Car M3-W) compatible pin-controller.
23 - "renesas,pfc-sh73a0": for SH73A0 (SH-Mobile AG5) compatible pin-controller.25 - "renesas,pfc-sh73a0": for SH73A0 (SH-Mobile AG5) compatible pin-controller.
24 26
25 - reg: Base address and length of each memory resource used by the pin27 - reg: Base address and length of each memory resource used by the pin
Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt+23−21
@@ -229,6 +229,8 @@ Example: A pin-controller node with pin banks: · 228 unmodified lines
229 229
230Example 1: A pin-controller node with pin groups.230Example 1: A pin-controller node with pin groups.
231 231
232 #include <dt-bindings/pinctrl/samsung.h>
233
232 pinctrl_0: pinctrl@11400000 {234 pinctrl_0: pinctrl@11400000 {
233 compatible = "samsung,exynos4210-pinctrl";235 compatible = "samsung,exynos4210-pinctrl";
234 reg = <0x11400000 0x1000>;236 reg = <0x11400000 0x1000>;
@@ -238,53 +240,53 @@ Example 1: A pin-controller node with pin groups. · 3 unmodified lines
238 240
239 uart0_data: uart0-data {241 uart0_data: uart0-data {
240 samsung,pins = "gpa0-0", "gpa0-1";242 samsung,pins = "gpa0-0", "gpa0-1";
241 samsung,pin-function = <2>;243 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
242 samsung,pin-pud = <0>;244 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
243 samsung,pin-drv = <0>;245 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
244 };246 };
245 247
246 uart0_fctl: uart0-fctl {248 uart0_fctl: uart0-fctl {
247 samsung,pins = "gpa0-2", "gpa0-3";249 samsung,pins = "gpa0-2", "gpa0-3";
248 samsung,pin-function = <2>;250 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
249 samsung,pin-pud = <0>;251 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
250 samsung,pin-drv = <0>;252 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
251 };253 };
252 254
253 uart1_data: uart1-data {255 uart1_data: uart1-data {
254 samsung,pins = "gpa0-4", "gpa0-5";256 samsung,pins = "gpa0-4", "gpa0-5";
255 samsung,pin-function = <2>;257 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
256 samsung,pin-pud = <0>;258 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
257 samsung,pin-drv = <0>;259 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
258 };260 };
259 261
260 uart1_fctl: uart1-fctl {262 uart1_fctl: uart1-fctl {
261 samsung,pins = "gpa0-6", "gpa0-7";263 samsung,pins = "gpa0-6", "gpa0-7";
262 samsung,pin-function = <2>;264 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
263 samsung,pin-pud = <0>;265 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
264 samsung,pin-drv = <0>;266 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
265 };267 };
266 268
267 i2c2_bus: i2c2-bus {269 i2c2_bus: i2c2-bus {
268 samsung,pins = "gpa0-6", "gpa0-7";270 samsung,pins = "gpa0-6", "gpa0-7";
269 samsung,pin-function = <3>;271 samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
270 samsung,pin-pud = <3>;272 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
271 samsung,pin-drv = <0>;273 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
272 };274 };
273 275
274 sd4_bus8: sd4-bus-width8 {276 sd4_bus8: sd4-bus-width8 {
275 part-1 {277 part-1 {
276 samsung,pins = "gpk0-3", "gpk0-4",278 samsung,pins = "gpk0-3", "gpk0-4",
277 "gpk0-5", "gpk0-6";279 "gpk0-5", "gpk0-6";
278 samsung,pin-function = <3>;280 samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
279 samsung,pin-pud = <3>;281 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
280 samsung,pin-drv = <3>;282 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
281 };283 };
282 part-2 {284 part-2 {
283 samsung,pins = "gpk1-3", "gpk1-4",285 samsung,pins = "gpk1-3", "gpk1-4",
284 "gpk1-5", "gpk1-6";286 "gpk1-5", "gpk1-6";
285 samsung,pin-function = <4>;287 samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
286 samsung,pin-pud = <4>;288 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
287 samsung,pin-drv = <3>;289 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
288 };290 };
289 };291 };
290 };292 };
Documentation/devicetree/bindings/pinctrl/st,stm32-pinctrl.txt+5−0
@@ -14,6 +14,11 @@ Required properies: · 13 unmodified lines
14 - #size-cells : The value of this property must be 114 - #size-cells : The value of this property must be 1
15 - ranges : defines mapping between pin controller node (parent) to15 - ranges : defines mapping between pin controller node (parent) to
16 gpio-bank node (children).16 gpio-bank node (children).
17 - interrupt-parent: phandle of the interrupt parent to which the external
18 GPIO interrupts are forwarded to.
19 - st,syscfg: Should be phandle/offset pair. The phandle to the syscon node
20 which includes IRQ mux selection register, and the offset of the IRQ mux
21 selection register.
17 - pins-are-numbered: Specify the subnodes are using numbered pinmux to22 - pins-are-numbered: Specify the subnodes are using numbered pinmux to
18 specify pins.23 specify pins.
19 24
Documentation/devicetree/bindings/power/act8945a-charger.txt+0−35
@@ -1,35 +0,0 @@
1Device-Tree bindings for charger of Active-semi ACT8945A Multi-Function Device
2
3Required properties:
4 - compatible: "active-semi,act8945a", please refer to ../mfd/act8945a.txt.
5 - active-semi,chglev-gpios: charge current level phandle with args
6 as described in ../gpio/gpio.txt.
7
8Optional properties:
9 - active-semi,check-battery-temperature: boolean to check the battery
10 temperature or not.
11 - active-semi,input-voltage-threshold-microvolt: unit: mV;
12 Specifies the charger's input over-voltage threshold value;
13 The value can be: 6600, 7000, 7500, 8000; default: 6600
14 - active-semi,precondition-timeout: unit: minutes;
15 Specifies the charger's PRECONDITION safety timer setting value;
16 The value can be: 40, 60, 80, 0; If 0, it means to disable this timer;
17 default: 40.
18 - active-semi,total-timeout: unit: hours;
19 Specifies the charger's total safety timer setting value;
20 The value can be: 3, 4, 5, 0; If 0, it means to disable this timer;
21 default: 3.
22
23Example:
24 pmic@5b {
25 compatible = "active-semi,act8945a";
26 reg = <0x5b>;
27 status = "okay";
28
29 pinctrl-names = "default";
30 pinctrl-0 = <&pinctrl_charger_chglev>;
31 active-semi,chglev-gpios = <&pioA 12 GPIO_ACTIVE_HIGH>;
32 active-semi,input-voltage-threshold-microvolt = <6600>;
33 active-semi,precondition-timeout = <40>;
34 active-semi,total-timeout = <3>;
35 };
Documentation/devicetree/bindings/power/reset/axxia-reset.txtrenamed from Documentation/devicetree/bindings/power_supply/axxia-reset.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/power/reset/imx-snvs-poweroff.txtrenamed from Documentation/devicetree/bindings/power_supply/imx-snvs-poweroff.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/power/reset/msm-poweroff.txtrenamed from Documentation/devicetree/bindings/power_supply/msm-poweroff.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/power/reset/qnap-poweroff.txtrenamed from Documentation/devicetree/bindings/power_supply/qnap-poweroff.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/power/reset/restart-poweroff.txtrenamed from Documentation/devicetree/bindings/power_supply/restart-poweroff.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/power/reset/st-reset.txt+4−3
@@ -1,11 +1,12 @@
1*Device-Tree bindings for ST SW reset functionality1*Device-Tree bindings for ST SW reset functionality
2 2
3Required properties:3Required properties:
4- compatible: should be "st,<chip>-restart".4- compatible: should be "stih407-restart".
5- st,syscfg: should be a phandle of the syscfg node.5- st,syscfg: should be a phandle of the syscfg node.
6 6
7Example node:7Example node:
8 restart {8 restart {
9 compatible = "st,stih416-restart";9 compatible = "st,stih407-restart";
10 st,syscfg = <&syscfg_sbc>;10 st,syscfg = <&syscfg_sbc_reg>;
11 status = "okay";
11 };12 };
Documentation/devicetree/bindings/power/supply/ab8500/btemp.txtrenamed from Documentation/devicetree/bindings/power_supply/ab8500/btemp.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/power/supply/ab8500/chargalg.txtrenamed from Documentation/devicetree/bindings/power_supply/ab8500/chargalg.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/power/supply/ab8500/charger.txtrenamed from Documentation/devicetree/bindings/power_supply/ab8500/charger.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/power/supply/ab8500/fg.txtrenamed from Documentation/devicetree/bindings/power_supply/ab8500/fg.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/power/supply/act8945a-charger.txt+48−0
@@ -0,0 +1,48 @@
1Device-Tree bindings for charger of Active-semi ACT8945A Multi-Function Device
2
3Required properties:
4 - compatible: "active-semi,act8945a-charger".
5 - active-semi,chglev-gpios: charge current level phandle with args
6 as described in ../gpio/gpio.txt.
7 - active-semi,lbo-gpios: specify the low battery voltage detect phandle
8 with args as as described in ../gpio/gpio.txt.
9 - interrupts: <a b> where a is the interrupt number and b is a
10 field that represents an encoding of the sense and level
11 information for the interrupt.
12 - interrupt-parent: the phandle for the interrupt controller that
13 services interrupts for this device.
14
15Optional properties:
16 - active-semi,input-voltage-threshold-microvolt: unit: mV;
17 Specifies the charger's input over-voltage threshold value;
18 The value can be: 6600, 7000, 7500, 8000; default: 6600
19 - active-semi,precondition-timeout: unit: minutes;
20 Specifies the charger's PRECONDITION safety timer setting value;
21 The value can be: 40, 60, 80, 0; If 0, it means to disable this timer;
22 default: 40.
23 - active-semi,total-timeout: unit: hours;
24 Specifies the charger's total safety timer setting value;
25 The value can be: 3, 4, 5, 0; If 0, it means to disable this timer;
26 default: 3.
27
28Example:
29 pmic@5b {
30 compatible = "active-semi,act8945a";
31 reg = <0x5b>;
32 status = "okay";
33
34 charger {
35 compatible = "active-semi,act8945a-charger";
36 pinctrl-names = "default";
37 pinctrl-0 = <&pinctrl_charger_chglev &pinctrl_charger_lbo &pinctrl_charger_irq>;
38 interrupt-parent = <&pioA>;
39 interrupts = <45 GPIO_ACTIVE_LOW>;
40
41 active-semi,chglev-gpios = <&pioA 12 GPIO_ACTIVE_HIGH>;
42 active-semi,lbo-gpios = <&pioA 72 GPIO_ACTIVE_LOW>;
43 active-semi,input-voltage-threshold-microvolt = <6600>;
44 active-semi,precondition-timeout = <40>;
45 active-semi,total-timeout = <3>;
46 status = "okay";
47 };
48 };
Documentation/devicetree/bindings/power/supply/axp20x_usb_power.txtrenamed from Documentation/devicetree/bindings/power_supply/axp20x_usb_power.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/power/supply/bq2415x.txtrenamed from Documentation/devicetree/bindings/power/bq2415x.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/power/supply/bq24257.txtrenamed from Documentation/devicetree/bindings/power/bq24257.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/power/supply/bq25890.txtrenamed from Documentation/devicetree/bindings/power/bq25890.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/power/supply/charger-manager.txtrenamed from Documentation/devicetree/bindings/power_supply/charger-manager.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/power/supply/da9150-charger.txtrenamed from Documentation/devicetree/bindings/power/da9150-charger.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/power/supply/da9150-fg.txtrenamed from Documentation/devicetree/bindings/power/da9150-fg.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/power/supply/gpio-charger.txtrenamed from Documentation/devicetree/bindings/power_supply/gpio-charger.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/power/supply/isp1704.txtrenamed from Documentation/devicetree/bindings/power/isp1704.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/power/supply/lp8727_charger.txtrenamed from Documentation/devicetree/bindings/power_supply/lp8727_charger.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/power/supply/ltc2941.txtrenamed from Documentation/devicetree/bindings/power/ltc2941.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/power/supply/max17042_battery.txtrenamed from Documentation/devicetree/bindings/power_supply/max17042_battery.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/power/supply/max8925_batter.txtrenamed from Documentation/devicetree/bindings/power_supply/max8925_batter.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/power/supply/olpc_battery.txtrenamed from Documentation/devicetree/bindings/power_supply/olpc_battery.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/power/supply/power_supply.txtrenamed from Documentation/devicetree/bindings/power_supply/power_supply.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/power/supply/qcom,coincell-charger.txtrenamed from Documentation/devicetree/bindings/power/qcom,coincell-charger.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/power/supply/qcom_smbb.txtrenamed from Documentation/devicetree/bindings/power_supply/qcom_smbb.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/power/supply/rt9455_charger.txtrenamed from Documentation/devicetree/bindings/power/rt9455_charger.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/power/supply/rx51-battery.txtrenamed from Documentation/devicetree/bindings/power/rx51-battery.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/power/supply/sbs_sbs-battery.txtrenamed from Documentation/devicetree/bindings/power_supply/sbs_sbs-battery.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/power/supply/ti,bq24735.txtrenamed from Documentation/devicetree/bindings/power_supply/ti,bq24735.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/power/supply/tps65090.txtrenamed from Documentation/devicetree/bindings/power_supply/tps65090.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/power/supply/tps65217_charger.txtrenamed from Documentation/devicetree/bindings/power_supply/tps65217_charger.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/power/supply/twl-charger.txtrenamed from Documentation/devicetree/bindings/power/twl-charger.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/pwm/pwm-meson.txt+23−0
@@ -0,0 +1,23 @@
1Amlogic Meson PWM Controller
2============================
3
4Required properties:
5- compatible: Shall contain "amlogic,meson8b-pwm" or "amlogic,meson-gxbb-pwm".
6- #pwm-cells: Should be 3. See pwm.txt in this directory for a description of
7 the cells format.
8
9Optional properties:
10- clocks: Could contain one or two parents clocks phandle for each of the two
11 PWM channels.
12- clock-names: Could contain at least the "clkin0" and/or "clkin1" names.
13
14Example:
15
16 pwm_ab: pwm@8550 {
17 compatible = "amlogic,meson-gxbb-pwm";
18 reg = <0x0 0x08550 0x0 0x10>;
19 #pwm-cells = <3>;
20 status = "disabled";
21 clocks = <&xtal>, <&xtal>;
22 clock-names = "clkin0", "clkin1";
23 }
Documentation/devicetree/bindings/pwm/pwm-mtk-disp.txt+2−1
@@ -2,8 +2,9 @@ MediaTek display PWM controller · 1 unmodified line
2 2
3Required properties:3Required properties:
4 - compatible: should be "mediatek,<name>-disp-pwm":4 - compatible: should be "mediatek,<name>-disp-pwm":
5 - "mediatek,mt8173-disp-pwm": found on mt8173 SoC.5 - "mediatek,mt2701-disp-pwm": found on mt2701 SoC.
6 - "mediatek,mt6595-disp-pwm": found on mt6595 SoC.6 - "mediatek,mt6595-disp-pwm": found on mt6595 SoC.
7 - "mediatek,mt8173-disp-pwm": found on mt8173 SoC.
7 - reg: physical base address and length of the controller's registers.8 - reg: physical base address and length of the controller's registers.
8 - #pwm-cells: must be 2. See pwm.txt in this directory for a description of9 - #pwm-cells: must be 2. See pwm.txt in this directory for a description of
9 the cell format.10 the cell format.
Documentation/devicetree/bindings/pwm/pwm-st.txt+5−3
@@ -13,13 +13,14 @@ Required parameters: · 12 unmodified lines
13- pinctrl-0: List of phandles pointing to pin configuration nodes13- pinctrl-0: List of phandles pointing to pin configuration nodes
14 for PWM module.14 for PWM module.
15 For Pinctrl properties, please refer to [1].15 For Pinctrl properties, please refer to [1].
16- clock-names: Set to "pwm".16- clock-names: Valid entries are "pwm" and/or "capture".
17- clocks: phandle of the clock used by the PWM module.17- clocks: phandle of the clock used by the PWM module.
18 For Clk properties, please refer to [2].18 For Clk properties, please refer to [2].
19- interrupts: IRQ for the Capture device
19 20
20Optional properties:21Optional properties:
21- st,pwm-num-chan: Number of available channels. If not passed, the driver22- st,pwm-num-chan: Number of available PWM channels. Default is 0.
22 will consider single channel by default.23- st,capture-num-chan: Number of available Capture channels. Default is 0.
23 24
24[1] Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt25[1] Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt
25[2] Documentation/devicetree/bindings/clock/clock-bindings.txt26[2] Documentation/devicetree/bindings/clock/clock-bindings.txt
@@ -38,4 +39,5 @@ pwm1: pwm@fe510000 { · 12 unmodified lines
38 clocks = <&clk_sysin>;39 clocks = <&clk_sysin>;
39 clock-names = "pwm";40 clock-names = "pwm";
40 st,pwm-num-chan = <4>;41 st,pwm-num-chan = <4>;
42 st,capture-num-chan = <2>;
41};43};
Documentation/devicetree/bindings/pwm/pwm-sun4i.txt+1−0
@@ -6,6 +6,7 @@ Required properties: · 5 unmodified lines
6 - "allwinner,sun5i-a10s-pwm"6 - "allwinner,sun5i-a10s-pwm"
7 - "allwinner,sun5i-a13-pwm"7 - "allwinner,sun5i-a13-pwm"
8 - "allwinner,sun7i-a20-pwm"8 - "allwinner,sun7i-a20-pwm"
9 - "allwinner,sun8i-h3-pwm"
9 - reg: physical base address and length of the controller's registers10 - reg: physical base address and length of the controller's registers
10 - #pwm-cells: should be 3. See pwm.txt in this directory for a description of11 - #pwm-cells: should be 3. See pwm.txt in this directory for a description of
11 the cells format.12 the cells format.
Documentation/devicetree/bindings/regulator/ltc3676.txt+94−0
@@ -0,0 +1,94 @@
1Linear Technology LTC3676 8-output regulators
2
3Required properties:
4- compatible: "lltc,ltc3676"
5- reg: I2C slave address
6
7Required child node:
8- regulators: Contains eight regulator child nodes sw1, sw2, sw3, sw4,
9 ldo1, ldo2, ldo3, and ldo4, specifying the initialization data as
10 documented in Documentation/devicetree/bindings/regulator/regulator.txt.
11
12Each regulator is defined using the standard binding for regulators. The
13nodes for sw1, sw2, sw3, sw4, ldo1, ldo2 and ldo4 additionally need to specify
14the resistor values of their external feedback voltage dividers:
15
16Required properties (not on ldo3):
17- lltc,fb-voltage-divider: An array of two integers containing the resistor
18 values R1 and R2 of the feedback voltage divider in ohms.
19
20Regulators sw1, sw2, sw3, sw4 can regulate the feedback reference from:
21412.5mV to 800mV in 12.5 mV steps. The output voltage thus ranges between
220.4125 * (1 + R1/R2) V and 0.8 * (1 + R1/R2) V.
23
24Regulators ldo1, ldo2, and ldo4 have a fixed 0.725 V reference and thus output
250.725 * (1 + R1/R2) V. The ldo3 regulator is fixed to 1.8 V. The ldo1 standby
26regulator can not be disabled and thus should have the regulator-always-on
27property set.
28
29Example:
30
31 ltc3676: pmic@3c {
32 compatible = "lltc,ltc3676";
33 reg = <0x3c>;
34
35 regulators {
36 sw1_reg: sw1 {
37 regulator-min-microvolt = <674400>;
38 regulator-max-microvolt = <1308000>;
39 lltc,fb-voltage-divider = <127000 200000>;
40 regulator-ramp-delay = <7000>;
41 regulator-boot-on;
42 regulator-always-on;
43 };
44
45 sw2_reg: sw2 {
46 regulator-min-microvolt = <1033310>;
47 regulator-max-microvolt = <200400>;
48 lltc,fb-voltage-divider = <301000 200000>;
49 regulator-ramp-delay = <7000>;
50 regulator-boot-on;
51 regulator-always-on;
52 };
53
54 sw3_reg: sw3 {
55 regulator-min-microvolt = <674400>;
56 regulator-max-microvolt = <130800>;
57 lltc,fb-voltage-divider = <127000 200000>;
58 regulator-ramp-delay = <7000>;
59 regulator-boot-on;
60 regulator-always-on;
61 };
62
63 sw4_reg: sw4 {
64 regulator-min-microvolt = <868310>;
65 regulator-max-microvolt = <168400>;
66 lltc,fb-voltage-divider = <221000 200000>;
67 regulator-ramp-delay = <7000>;
68 regulator-boot-on;
69 regulator-always-on;
70 };
71
72 ldo2_reg: ldo2 {
73 regulator-min-microvolt = <2490375>;
74 regulator-max-microvolt = <2490375>;
75 lltc,fb-voltage-divider = <487000 200000>;
76 regulator-boot-on;
77 regulator-always-on;
78 };
79
80 ldo3_reg: ldo3 {
81 regulator-min-microvolt = <1800000>;
82 regulator-max-microvolt = <1800000>;
83 regulator-boot-on;
84 };
85
86 ldo4_reg: ldo4 {
87 regulator-min-microvolt = <3023250>;
88 regulator-max-microvolt = <3023250>;
89 lltc,fb-voltage-divider = <634000 200000>;
90 regulator-boot-on;
91 regulator-always-on;
92 };
93 };
94 };
Documentation/devicetree/bindings/regulator/pv88080.txt+18−5
@@ -1,22 +1,28 @@
1* Powerventure Semiconductor PV88080 Voltage Regulator1* Powerventure Semiconductor PV88080 Voltage Regulator
2 2
3Required properties:3Required properties:
4- compatible: "pvs,pv88080".4- compatible: Must be one of the following, depending on the
5- reg: I2C slave address, usually 0x49.5 silicon version:
6 - "pvs,pv88080" (DEPRECATED)
7
8 - "pvs,pv88080-aa" for PV88080 AA or AB silicon
9 - "pvs,pv88080-ba" for PV88080 BA or BB silicon
10 NOTE: The use of the compatibles with no silicon version is deprecated.
11- reg: I2C slave address, usually 0x49
6- interrupts: the interrupt outputs of the controller12- interrupts: the interrupt outputs of the controller
7- regulators: A node that houses a sub-node for each regulator within the13- regulators: A node that houses a sub-node for each regulator within the
8 device. Each sub-node is identified using the node's name, with valid14 device. Each sub-node is identified using the node's name, with valid
9 values listed below. The content of each sub-node is defined by the15 values listed below. The content of each sub-node is defined by the
10 standard binding for regulators; see regulator.txt.16 standard binding for regulators; see regulator.txt.
11 BUCK1, BUCK2, and BUCK3.17 BUCK1, BUCK2, BUCK3 and HVBUCK.
12 18
13Optional properties:19Optional properties:
14- Any optional property defined in regulator.txt20- Any optional property defined in regulator.txt
15 21
16Example22Example:
17 23
18 pmic: pv88080@49 {24 pmic: pv88080@49 {
19 compatible = "pvs,pv88080";25 compatible = "pvs,pv88080-ba";
20 reg = <0x49>;26 reg = <0x49>;
21 interrupt-parent = <&gpio>;27 interrupt-parent = <&gpio>;
22 interrupts = <24 24>;28 interrupts = <24 24>;
@@ -45,5 +51,12 @@ Example · 22 unmodified lines
45 regulator-min-microamp = <1496000>;51 regulator-min-microamp = <1496000>;
46 regulator-max-microamp = <4189000>;52 regulator-max-microamp = <4189000>;
47 };53 };
54
55 HVBUCK {
56 regulator-name = "hvbuck";
57 regulator-min-microvolt = < 5000>;
58 regulator-max-microvolt = <1275000>;
59 };
48 };60 };
49 };61 };
62
Documentation/devicetree/bindings/regulator/regulator.txt+1−1
@@ -13,7 +13,7 @@ Optional properties: · 12 unmodified lines
13- regulator-allow-bypass: allow the regulator to go into bypass mode13- regulator-allow-bypass: allow the regulator to go into bypass mode
14- regulator-allow-set-load: allow the regulator performance level to be configured14- regulator-allow-set-load: allow the regulator performance level to be configured
15- <name>-supply: phandle to the parent supply/regulator node15- <name>-supply: phandle to the parent supply/regulator node
16- regulator-ramp-delay: ramp delay for regulator(in uV/uS)16- regulator-ramp-delay: ramp delay for regulator(in uV/us)
17 For hardware which supports disabling ramp rate, it should be explicitly17 For hardware which supports disabling ramp rate, it should be explicitly
18 initialised to zero (regulator-ramp-delay = <0>) for disabling ramp delay.18 initialised to zero (regulator-ramp-delay = <0>) for disabling ramp delay.
19- regulator-enable-ramp-delay: The time taken, in microseconds, for the supply19- regulator-enable-ramp-delay: The time taken, in microseconds, for the supply
Documentation/devicetree/bindings/remoteproc/qcom,wcnss-pil.txt+132−0
@@ -0,0 +1,132 @@
1Qualcomm WCNSS Peripheral Image Loader
2
3This document defines the binding for a component that loads and boots firmware
4on the Qualcomm WCNSS core.
5
6- compatible:
7 Usage: required
8 Value type: <string>
9 Definition: must be one of:
10 "qcom,riva-pil",
11 "qcom,pronto-v1-pil",
12 "qcom,pronto-v2-pil"
13
14- reg:
15 Usage: required
16 Value type: <prop-encoded-array>
17 Definition: must specify the base address and size of the CCU, DXE and
18 PMU register blocks
19
20- reg-names:
21 Usage: required
22 Value type: <stringlist>
23 Definition: must be "ccu", "dxe", "pmu"
24
25- interrupts-extended:
26 Usage: required
27 Value type: <prop-encoded-array>
28 Definition: must list the watchdog and fatal IRQs and may specify the
29 ready, handover and stop-ack IRQs
30
31- interrupt-names:
32 Usage: required
33 Value type: <stringlist>
34 Definition: should be "wdog", "fatal", optionally followed by "ready",
35 "handover", "stop-ack"
36
37- vddmx-supply:
38- vddcx-supply:
39- vddpx-supply:
40 Usage: required
41 Value type: <phandle>
42 Definition: reference to the regulators to be held on behalf of the
43 booting of the WCNSS core
44
45- qcom,smem-states:
46 Usage: optional
47 Value type: <prop-encoded-array>
48 Definition: reference to the SMEM state used to indicate to WCNSS that
49 it should shut down
50
51- qcom,smem-state-names:
52 Usage: optional
53 Value type: <stringlist>
54 Definition: should be "stop"
55
56- memory-region:
57 Usage: required
58 Value type: <prop-encoded-array>
59 Definition: reference to reserved-memory node for the remote processor
60 see ../reserved-memory/reserved-memory.txt
61
62= SUBNODES
63A single subnode of the WCNSS PIL describes the attached rf module and its
64resource dependencies.
65
66- compatible:
67 Usage: required
68 Value type: <string>
69 Definition: must be one of:
70 "qcom,wcn3620",
71 "qcom,wcn3660",
72 "qcom,wcn3680"
73
74- clocks:
75 Usage: required
76 Value type: <prop-encoded-array>
77 Definition: should specify the xo clock and optionally the rf clock
78
79- clock-names:
80 Usage: required
81 Value type: <stringlist>
82 Definition: should be "xo", optionally followed by "rf"
83
84- vddxo-supply:
85- vddrfa-supply:
86- vddpa-supply:
87- vdddig-supply:
88 Usage: required
89 Value type: <phandle>
90 Definition: reference to the regulators to be held on behalf of the
91 booting of the WCNSS core
92
93= EXAMPLE
94The following example describes the resources needed to boot control the WCNSS,
95with attached WCN3680, as it is commonly found on MSM8974 boards.
96
97pronto@fb204000 {
98 compatible = "qcom,pronto-v2-pil";
99 reg = <0xfb204000 0x2000>, <0xfb202000 0x1000>, <0xfb21b000 0x3000>;
100 reg-names = "ccu", "dxe", "pmu";
101
102 interrupts-extended = <&intc 0 149 1>,
103 <&wcnss_smp2p_slave 0 0>,
104 <&wcnss_smp2p_slave 1 0>,
105 <&wcnss_smp2p_slave 2 0>,
106 <&wcnss_smp2p_slave 3 0>;
107 interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack";
108
109 vddmx-supply = <&pm8841_s1>;
110 vddcx-supply = <&pm8841_s2>;
111 vddpx-supply = <&pm8941_s3>;
112
113 qcom,smem-states = <&wcnss_smp2p_out 0>;
114 qcom,smem-state-names = "stop";
115
116 memory-region = <&wcnss_region>;
117
118 pinctrl-names = "default";
119 pinctrl-0 = <&wcnss_pin_a>;
120
121 iris {
122 compatible = "qcom,wcn3680";
123
124 clocks = <&rpmcc RPM_CXO_CLK_SRC>, <&rpmcc RPM_CXO_A2>;
125 clock-names = "xo", "rf";
126
127 vddxo-supply = <&pm8941_l6>;
128 vddrfa-supply = <&pm8941_l11>;
129 vddpa-supply = <&pm8941_l19>;
130 vdddig-supply = <&pm8941_s3>;
131 };
132};
Documentation/devicetree/bindings/reset/st,stm32-rcc.txt+6−0
@@ -0,0 +1,6 @@
1STMicroelectronics STM32 Peripheral Reset Controller
2====================================================
3
4The RCC IP is both a reset and a clock controller.
5
6Please see Documentation/devicetree/bindings/clock/st,stm32-rcc.txt
Documentation/devicetree/bindings/reset/uniphier-reset.txt+93−0
@@ -0,0 +1,93 @@
1UniPhier reset controller
2
3
4System reset
5------------
6
7Required properties:
8- compatible: should be one of the following:
9 "socionext,uniphier-sld3-reset" - for PH1-sLD3 SoC.
10 "socionext,uniphier-ld4-reset" - for PH1-LD4 SoC.
11 "socionext,uniphier-pro4-reset" - for PH1-Pro4 SoC.
12 "socionext,uniphier-sld8-reset" - for PH1-sLD8 SoC.
13 "socionext,uniphier-pro5-reset" - for PH1-Pro5 SoC.
14 "socionext,uniphier-pxs2-reset" - for ProXstream2/PH1-LD6b SoC.
15 "socionext,uniphier-ld11-reset" - for PH1-LD11 SoC.
16 "socionext,uniphier-ld20-reset" - for PH1-LD20 SoC.
17- #reset-cells: should be 1.
18
19Example:
20
21 sysctrl@61840000 {
22 compatible = "socionext,uniphier-ld20-sysctrl",
23 "simple-mfd", "syscon";
24 reg = <0x61840000 0x4000>;
25
26 reset {
27 compatible = "socionext,uniphier-ld20-reset";
28 #reset-cells = <1>;
29 };
30
31 other nodes ...
32 };
33
34
35Media I/O (MIO) reset
36---------------------
37
38Required properties:
39- compatible: should be one of the following:
40 "socionext,uniphier-sld3-mio-reset" - for PH1-sLD3 SoC.
41 "socionext,uniphier-ld4-mio-reset" - for PH1-LD4 SoC.
42 "socionext,uniphier-pro4-mio-reset" - for PH1-Pro4 SoC.
43 "socionext,uniphier-sld8-mio-reset" - for PH1-sLD8 SoC.
44 "socionext,uniphier-pro5-mio-reset" - for PH1-Pro5 SoC.
45 "socionext,uniphier-pxs2-mio-reset" - for ProXstream2/PH1-LD6b SoC.
46 "socionext,uniphier-ld11-mio-reset" - for PH1-LD11 SoC.
47 "socionext,uniphier-ld20-mio-reset" - for PH1-LD20 SoC.
48- #reset-cells: should be 1.
49
50Example:
51
52 mioctrl@59810000 {
53 compatible = "socionext,uniphier-ld20-mioctrl",
54 "simple-mfd", "syscon";
55 reg = <0x59810000 0x800>;
56
57 reset {
58 compatible = "socionext,uniphier-ld20-mio-reset";
59 #reset-cells = <1>;
60 };
61
62 other nodes ...
63 };
64
65
66Peripheral reset
67----------------
68
69Required properties:
70- compatible: should be one of the following:
71 "socionext,uniphier-ld4-peri-reset" - for PH1-LD4 SoC.
72 "socionext,uniphier-pro4-peri-reset" - for PH1-Pro4 SoC.
73 "socionext,uniphier-sld8-peri-reset" - for PH1-sLD8 SoC.
74 "socionext,uniphier-pro5-peri-reset" - for PH1-Pro5 SoC.
75 "socionext,uniphier-pxs2-peri-reset" - for ProXstream2/PH1-LD6b SoC.
76 "socionext,uniphier-ld11-peri-reset" - for PH1-LD11 SoC.
77 "socionext,uniphier-ld20-peri-reset" - for PH1-LD20 SoC.
78- #reset-cells: should be 1.
79
80Example:
81
82 perictrl@59820000 {
83 compatible = "socionext,uniphier-ld20-perictrl",
84 "simple-mfd", "syscon";
85 reg = <0x59820000 0x200>;
86
87 reset {
88 compatible = "socionext,uniphier-ld20-peri-reset";
89 #reset-cells = <1>;
90 };
91
92 other nodes ...
93 };
Documentation/devicetree/bindings/rtc/dallas,ds1390.txt+1−1
@@ -11,7 +11,7 @@ Optional properties: · 10 unmodified lines
11- trickle-diode-disable : Do not use internal trickle charger diode11- trickle-diode-disable : Do not use internal trickle charger diode
12 Should be given if internal trickle charger diode should be disabled12 Should be given if internal trickle charger diode should be disabled
13Example:13Example:
14 ds1390: rtc@68 {14 ds1390: rtc@0 {
15 compatible = "dallas,ds1390";15 compatible = "dallas,ds1390";
16 trickle-resistor-ohms = <250>;16 trickle-resistor-ohms = <250>;
17 reg = <0>;17 reg = <0>;
Documentation/devicetree/bindings/rtc/epson,rx8900.txt+22−0
@@ -0,0 +1,22 @@
1Real Time Clock driver for:
2 - Epson RX8900
3 - Micro Crystal rv8803
4
5Required properties:
6- compatible: should be: "microcrystal,rv8803" or "epson,rx8900"
7- reg : the I2C address of the device for I2C
8
9Optional properties:
10- epson,vdet-disable : boolean, if present will disable voltage detector.
11 Should be set if no backup battery is used.
12- trickle-diode-disable : boolean, if present will disable internal trickle
13 charger diode
14
15Example:
16
17 rtc: rtc@32 {
18 compatible = "epson,rx8900"
19 reg = <0x32>;
20 epson,vdet-disable;
21 trickle-diode-disable;
22 };
Documentation/devicetree/bindings/rtc/rtc-omap.txt+21−0
@@ -18,6 +18,18 @@ Optional properties: · 17 unmodified lines
18 through pmic_power_en18 through pmic_power_en
19- clocks: Any internal or external clocks feeding in to rtc19- clocks: Any internal or external clocks feeding in to rtc
20- clock-names: Corresponding names of the clocks20- clock-names: Corresponding names of the clocks
21- pinctrl-0: a phandle pointing to the pin settings for the device
22- pinctrl-names: should be "default"
23
24Optional subnodes:
25- generic pinctrl node
26
27Required pinctrl subnodes properties:
28- pins - Names of ext_wakeup pins to configure
29
30Optional pinctrl subnodes properties:
31- input-enable - Enables ext_wakeup
32- ti,active-high - Set input active high (by default active low)
21 33
22Example:34Example:
23 35
@@ -30,4 +42,13 @@ rtc@1c23000 { · 6 unmodified lines
30 system-power-controller;42 system-power-controller;
31 clocks = <&clk_32k_rtc>, <&clk_32768_ck>;43 clocks = <&clk_32k_rtc>, <&clk_32768_ck>;
32 clock-names = "ext-clk", "int-clk";44 clock-names = "ext-clk", "int-clk";
45
46 pinctrl-0 = <&ext_wakeup>;
47 pinctrl-names = "default";
48
49 ext_wakeup: ext-wakeup {
50 pins = "ext_wakeup0";
51 input-enable;
52 ti,active-high;
53 };
33};54};
Documentation/devicetree/bindings/serial/8250.txt+2−0
@@ -42,6 +42,8 @@ Optional properties: · 41 unmodified lines
42- auto-flow-control: one way to enable automatic flow control support. The42- auto-flow-control: one way to enable automatic flow control support. The
43 driver is allowed to detect support for the capability even without this43 driver is allowed to detect support for the capability even without this
44 property.44 property.
45- tx-threshold: Specify the TX FIFO low water indication for parts with
46 programmable TX FIFO thresholds.
45 47
46Note:48Note:
47* fsl,ns16550:49* fsl,ns16550:
Documentation/devicetree/bindings/serial/st,stm32-usart.txt+46−0
@@ -0,0 +1,46 @@
1* STMicroelectronics STM32 USART
2
3Required properties:
4- compatible: Can be either "st,stm32-usart", "st,stm32-uart",
5"st,stm32f7-usart" or "st,stm32f7-uart" depending on whether
6the device supports synchronous mode and is compatible with
7stm32(f4) or stm32f7.
8- reg: The address and length of the peripheral registers space
9- interrupts: The interrupt line of the USART instance
10- clocks: The input clock of the USART instance
11
12Optional properties:
13- pinctrl: The reference on the pins configuration
14- st,hw-flow-ctrl: bool flag to enable hardware flow control.
15- dmas: phandle(s) to DMA controller node(s). Refer to stm32-dma.txt
16- dma-names: "rx" and/or "tx"
17
18Examples:
19usart4: serial@40004c00 {
20 compatible = "st,stm32-uart";
21 reg = <0x40004c00 0x400>;
22 interrupts = <52>;
23 clocks = <&clk_pclk1>;
24 pinctrl-names = "default";
25 pinctrl-0 = <&pinctrl_usart4>;
26};
27
28usart2: serial@40004400 {
29 compatible = "st,stm32-usart", "st,stm32-uart";
30 reg = <0x40004400 0x400>;
31 interrupts = <38>;
32 clocks = <&clk_pclk1>;
33 st,hw-flow-ctrl;
34 pinctrl-names = "default";
35 pinctrl-0 = <&pinctrl_usart2 &pinctrl_usart2_rtscts>;
36};
37
38usart1: serial@40011000 {
39 compatible = "st,stm32-usart", "st,stm32-uart";
40 reg = <0x40011000 0x400>;
41 interrupts = <37>;
42 clocks = <&rcc 0 164>;
43 dmas = <&dma2 2 4 0x414 0x0>,
44 <&dma2 7 4 0x414 0x0>;
45 dma-names = "rx", "tx";
46};
Documentation/devicetree/bindings/soc/mediatek/auxadc.txt+0−21
@@ -1,21 +0,0 @@
1MediaTek AUXADC
2===============
3
4The Auxiliary Analog/Digital Converter (AUXADC) is an ADC found
5in some Mediatek SoCs which among other things measures the temperatures
6in the SoC. It can be used directly with register accesses, but it is also
7used by thermal controller which reads the temperatures from the AUXADC
8directly via its own bus interface. See
9Documentation/devicetree/bindings/thermal/mediatek-thermal.txt
10for the Thermal Controller which holds a phandle to the AUXADC.
11
12Required properties:
13- compatible: Must be "mediatek,mt8173-auxadc"
14- reg: Address range of the AUXADC unit
15
16Example:
17
18auxadc: auxadc@11001000 {
19 compatible = "mediatek,mt8173-auxadc";
20 reg = <0 0x11001000 0 0x1000>;
21};
Documentation/devicetree/bindings/sound/nau8810.txt+16−0
@@ -0,0 +1,16 @@
1NAU8810 audio CODEC
2
3This device supports I2C only.
4
5Required properties:
6
7 - compatible : "nuvoton,nau8810"
8
9 - reg : the I2C address of the device.
10
11Example:
12
13codec: nau8810@1a {
14 compatible = "nuvoton,nau8810";
15 reg = <0x1a>;
16};
Documentation/devicetree/bindings/sound/nvidia,tegra-audio-sgtl5000.txt+42−0
@@ -0,0 +1,42 @@
1NVIDIA Tegra audio complex, with SGTL5000 CODEC
2
3Required properties:
4- compatible : "nvidia,tegra-audio-sgtl5000"
5- clocks : Must contain an entry for each entry in clock-names.
6 See ../clocks/clock-bindings.txt for details.
7- clock-names : Must include the following entries:
8 - pll_a
9 - pll_a_out0
10 - mclk (The Tegra cdev1/extern1 clock, which feeds the CODEC's mclk)
11- nvidia,model : The user-visible name of this sound complex.
12- nvidia,audio-routing : A list of the connections between audio components.
13 Each entry is a pair of strings, the first being the connection's sink,
14 the second being the connection's source. Valid names for sources and
15 sinks are the SGTL5000's pins (as documented in its binding), and the jacks
16 on the board:
17
18 * Headphone Jack
19 * Line In Jack
20 * Mic Jack
21
22- nvidia,i2s-controller : The phandle of the Tegra I2S controller that's
23 connected to the CODEC.
24- nvidia,audio-codec : The phandle of the SGTL5000 audio codec.
25
26Example:
27
28sound {
29 compatible = "toradex,tegra-audio-sgtl5000-apalis_t30",
30 "nvidia,tegra-audio-sgtl5000";
31 nvidia,model = "Toradex Apalis T30";
32 nvidia,audio-routing =
33 "Headphone Jack", "HP_OUT",
34 "LINE_IN", "Line In Jack",
35 "MIC_IN", "Mic Jack";
36 nvidia,i2s-controller = <&tegra_i2s2>;
37 nvidia,audio-codec = <&sgtl5000>;
38 clocks = <&tegra_car TEGRA30_CLK_PLL_A>,
39 <&tegra_car TEGRA30_CLK_PLL_A_OUT0>,
40 <&tegra_car TEGRA30_CLK_EXTERN1>;
41 clock-names = "pll_a", "pll_a_out0", "mclk";
42};
Documentation/devicetree/bindings/sound/qcom,apq8016-sbc.txt+30−0
@@ -16,6 +16,24 @@ Required properties: · 15 unmodified lines
16 * "spkr-iomux"16 * "spkr-iomux"
17- qcom,model : Name of the sound card.17- qcom,model : Name of the sound card.
18 18
19- qcom,audio-routing : A list of the connections between audio components.
20 Each entry is a pair of strings, the first being the
21 connection's sink, the second being the connection's
22 source. Valid names could be power supplies, MicBias
23 of msm8x16_wcd codec and the jacks on the board:
24
25 Power supplies:
26 * MIC BIAS External1
27 * MIC BIAS External2
28 * MIC BIAS Internal1
29 * MIC BIAS Internal2
30
31 Board connectors:
32 * Headset Mic
33 * Secondary Mic",
34 * DMIC
35 * Ext Spk
36
19Dai-link subnode properties and subnodes:37Dai-link subnode properties and subnodes:
20 38
21Required dai-link subnodes:39Required dai-link subnodes:
@@ -37,6 +55,18 @@ sound: sound { · 15 unmodified lines
37 reg-names = "mic-iomux", "spkr-iomux";55 reg-names = "mic-iomux", "spkr-iomux";
38 qcom,model = "DB410c";56 qcom,model = "DB410c";
39 57
58 qcom,audio-routing =
59 "MIC BIAS External1", "Handset Mic",
60 "MIC BIAS Internal2", "Headset Mic",
61 "MIC BIAS External1", "Secondary Mic",
62 "AMIC1", "MIC BIAS External1",
63 "AMIC2", "MIC BIAS Internal2",
64 "AMIC3", "MIC BIAS External1",
65 "DMIC1", "MIC BIAS Internal1",
66 "MIC BIAS Internal1", "Digital Mic1",
67 "DMIC2", "MIC BIAS Internal1",
68 "MIC BIAS Internal1", "Digital Mic2";
69
40 /* I2S - Internal codec */70 /* I2S - Internal codec */
41 internal-dai-link@0 {71 internal-dai-link@0 {
42 cpu { /* PRIMARY */72 cpu { /* PRIMARY */
Documentation/devicetree/bindings/sound/renesas,rsrc-card.txt+0−75
@@ -1,75 +0,0 @@
1Renesas Sampling Rate Convert Sound Card:
2
3Renesas Sampling Rate Convert Sound Card specifies audio DAI connections of SoC <-> codec.
4
5Required properties:
6
7- compatible : "renesas,rsrc-card{,<board>}"
8 Examples with boards are:
9 - "renesas,rsrc-card"
10 - "renesas,rsrc-card,lager"
11 - "renesas,rsrc-card,koelsch"
12Optional properties:
13
14- card_name : User specified audio sound card name, one string
15 property.
16- cpu : CPU sub-node
17- codec : CODEC sub-node
18
19Optional subnode properties:
20
21- format : CPU/CODEC common audio format.
22 "i2s", "right_j", "left_j" , "dsp_a"
23 "dsp_b", "ac97", "pdm", "msb", "lsb"
24- frame-master : Indicates dai-link frame master.
25 phandle to a cpu or codec subnode.
26- bitclock-master : Indicates dai-link bit clock master.
27 phandle to a cpu or codec subnode.
28- bitclock-inversion : bool property. Add this if the
29 dai-link uses bit clock inversion.
30- frame-inversion : bool property. Add this if the
31 dai-link uses frame clock inversion.
32- convert-rate : platform specified sampling rate convert
33- convert-channels : platform specified converted channel size (2 - 8 ch)
34- audio-prefix : see audio-routing
35- audio-routing : A list of the connections between audio components.
36 Each entry is a pair of strings, the first being the connection's sink,
37 the second being the connection's source. Valid names for sources.
38 use audio-prefix if some components is using same sink/sources naming.
39 it can be used if compatible was "renesas,rsrc-card";
40
41Required CPU/CODEC subnodes properties:
42
43- sound-dai : phandle and port of CPU/CODEC
44
45Optional CPU/CODEC subnodes properties:
46
47- clocks / system-clock-frequency : specify subnode's clock if needed.
48 it can be specified via "clocks" if system has
49 clock node (= common clock), or "system-clock-frequency"
50 (if system doens't support common clock)
51 If a clock is specified, it is
52 enabled with clk_prepare_enable()
53 in dai startup() and disabled with
54 clk_disable_unprepare() in dai
55 shutdown().
56
57Example
58
59sound {
60 compatible = "renesas,rsrc-card,lager";
61
62 card-name = "rsnd-ak4643";
63 format = "left_j";
64 bitclock-master = <&sndcodec>;
65 frame-master = <&sndcodec>;
66
67 sndcpu: cpu {
68 sound-dai = <&rcar_sound>;
69 };
70
71 sndcodec: codec {
72 sound-dai = <&ak4643>;
73 system-clock-frequency = <11289600>;
74 };
75};
Documentation/devicetree/bindings/sound/rockchip,rk3399-gru-sound.txt+22−0
@@ -0,0 +1,22 @@
1ROCKCHIP with MAX98357A/RT5514/DA7219 codecs on GRU boards
2
3Required properties:
4- compatible: "rockchip,rk3399-gru-sound"
5- rockchip,cpu: The phandle of the Rockchip I2S controller that's
6 connected to the codecs
7- rockchip,codec: The phandle of the MAX98357A/RT5514/DA7219 codecs
8
9Optional properties:
10- dmic-wakeup-delay-ms : specify delay time (ms) for DMIC ready.
11 If this option is specified, which means it's required dmic need
12 delay for DMIC to ready so that rt5514 can avoid recording before
13 DMIC send valid data
14
15Example:
16
17sound {
18 compatible = "rockchip,rk3399-gru-sound";
19 rockchip,cpu = <&i2s0>;
20 rockchip,codec = <&max98357a &rt5514 &da7219>;
21 dmic-wakeup-delay-ms = <20>;
22};
Documentation/devicetree/bindings/sound/rt5659.txt+3−0
@@ -12,6 +12,9 @@ Required properties: · 11 unmodified lines
12 12
13Optional properties:13Optional properties:
14 14
15- clocks: The phandle of the master clock to the CODEC
16- clock-names: Should be "mclk"
17
15- realtek,in1-differential18- realtek,in1-differential
16- realtek,in3-differential19- realtek,in3-differential
17- realtek,in4-differential20- realtek,in4-differential
Documentation/devicetree/bindings/sound/rt5660.txt+47−0
@@ -0,0 +1,47 @@
1RT5660 audio CODEC
2
3This device supports I2C only.
4
5Required properties:
6
7- compatible : "realtek,rt5660".
8
9- reg : The I2C address of the device.
10
11Optional properties:
12
13- clocks: The phandle of the master clock to the CODEC
14- clock-names: Should be "mclk"
15
16- realtek,in1-differential
17- realtek,in3-differential
18 Boolean. Indicate MIC1/3 input are differential, rather than single-ended.
19
20- realtek,poweroff-in-suspend
21 Boolean. If the codec will be powered off in suspend, the resume should be
22 added delay time for waiting codec power ready.
23
24- realtek,dmic1-data-pin
25 0: dmic1 is not used
26 1: using GPIO2 pin as dmic1 data pin
27 2: using IN1P pin as dmic1 data pin
28
29Pins on the device (for linking into audio routes) for RT5660:
30
31 * DMIC L1
32 * DMIC R1
33 * IN1P
34 * IN1N
35 * IN2P
36 * IN3P
37 * IN3N
38 * SPO
39 * LOUTL
40 * LOUTR
41
42Example:
43
44rt5660 {
45 compatible = "realtek,rt5660";
46 reg = <0x1c>;
47};
Documentation/devicetree/bindings/sound/rt5663.txt+30−0
@@ -0,0 +1,30 @@
1RT5663/RT5668 audio CODEC
2
3This device supports I2C only.
4
5Required properties:
6
7- compatible : One of "realtek,rt5663" or "realtek,rt5668".
8
9- reg : The I2C address of the device.
10
11- interrupts : The CODEC's interrupt output.
12
13Optional properties:
14
15Pins on the device (for linking into audio routes) for RT5663/RT5668:
16
17 * IN1P
18 * IN1N
19 * IN2P
20 * IN2N
21 * HPOL
22 * HPOR
23
24Example:
25
26codec: rt5663@12 {
27 compatible = "realtek,rt5663";
28 reg = <0x12>;
29 interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
30};
Documentation/devicetree/bindings/sound/simple-card.txt+37−0
@@ -22,6 +22,8 @@ Optional properties: · 21 unmodified lines
22 headphones are attached.22 headphones are attached.
23- simple-audio-card,mic-det-gpio : Reference to GPIO that signals when23- simple-audio-card,mic-det-gpio : Reference to GPIO that signals when
24 a microphone is attached.24 a microphone is attached.
25- simple-audio-card,aux-devs : List of phandles pointing to auxiliary devices, such
26 as amplifiers, to be added to the sound card.
25 27
26Optional subnodes:28Optional subnodes:
27 29
@@ -162,3 +164,38 @@ sound { · 134 unmodified lines
162 };164 };
163 };165 };
164};166};
167
168Example 3 - route audio from IMX6 SSI2 through TLV320DAC3100 codec
169through TPA6130A2 amplifier to headphones:
170
171&i2c0 {
172 codec: tlv320dac3100@18 {
173 compatible = "ti,tlv320dac3100";
174 ...
175 }
176
177 amp: tpa6130a2@60 {
178 compatible = "ti,tpa6130a2";
179 ...
180 }
181}
182
183sound {
184 compatible = "simple-audio-card";
185 ...
186 simple-audio-card,widgets =
187 "Headphone", "Headphone Jack";
188 simple-audio-card,routing =
189 "Headphone Jack", "HPLEFT",
190 "Headphone Jack", "HPRIGHT",
191 "LEFTIN", "HPL",
192 "RIGHTIN", "HPR";
193 simple-audio-card,aux-devs = <&amp>;
194 simple-audio-card,cpu {
195 sound-dai = <&ssi2>;
196 };
197 simple-audio-card,codec {
198 sound-dai = <&codec>;
199 clocks = ...
200 };
201};
Documentation/devicetree/bindings/sound/simple-scu-card.txt+110−0
@@ -0,0 +1,110 @@
1ASoC simple SCU Sound Card
2
3Simple-Card specifies audio DAI connections of SoC <-> codec.
4
5Required properties:
6
7- compatible : "simple-scu-audio-card"
8 "renesas,rsrc-card"
9
10Optional properties:
11
12- simple-audio-card,name : User specified audio sound card name, one string
13 property.
14- simple-audio-card,cpu : CPU sub-node
15- simple-audio-card,codec : CODEC sub-node
16
17Optional subnode properties:
18
19- simple-audio-card,format : CPU/CODEC common audio format.
20 "i2s", "right_j", "left_j" , "dsp_a"
21 "dsp_b", "ac97", "pdm", "msb", "lsb"
22- simple-audio-card,frame-master : Indicates dai-link frame master.
23 phandle to a cpu or codec subnode.
24- simple-audio-card,bitclock-master : Indicates dai-link bit clock master.
25 phandle to a cpu or codec subnode.
26- simple-audio-card,bitclock-inversion : bool property. Add this if the
27 dai-link uses bit clock inversion.
28- simple-audio-card,frame-inversion : bool property. Add this if the
29 dai-link uses frame clock inversion.
30- simple-audio-card,convert-rate : platform specified sampling rate convert
31- simple-audio-card,convert-channels : platform specified converted channel size (2 - 8 ch)
32- simple-audio-card,prefix : see audio-routing
33- simple-audio-card,routing : A list of the connections between audio components.
34 Each entry is a pair of strings, the first being the connection's sink,
35 the second being the connection's source. Valid names for sources.
36 use audio-prefix if some components is using same sink/sources naming.
37 it can be used if compatible was "renesas,rsrc-card";
38
39Required CPU/CODEC subnodes properties:
40
41- sound-dai : phandle and port of CPU/CODEC
42
43Optional CPU/CODEC subnodes properties:
44
45- clocks / system-clock-frequency : specify subnode's clock if needed.
46 it can be specified via "clocks" if system has
47 clock node (= common clock), or "system-clock-frequency"
48 (if system doens't support common clock)
49 If a clock is specified, it is
50 enabled with clk_prepare_enable()
51 in dai startup() and disabled with
52 clk_disable_unprepare() in dai
53 shutdown().
54
55Example 1. Sampling Rate Covert
56
57sound {
58 compatible = "simple-scu-audio-card";
59
60 simple-audio-card,name = "rsnd-ak4643";
61 simple-audio-card,format = "left_j";
62 simple-audio-card,format = "left_j";
63 simple-audio-card,bitclock-master = <&sndcodec>;
64 simple-audio-card,frame-master = <&sndcodec>;
65
66 simple-audio-card,convert-rate = <48000>; /* see audio_clk_a */
67
68 simple-audio-card,prefix = "ak4642";
69 simple-audio-card,routing = "ak4642 Playback", "DAI0 Playback",
70 "DAI0 Capture", "ak4642 Capture";
71
72 sndcpu: simple-audio-card,cpu {
73 sound-dai = <&rcar_sound>;
74 };
75
76 sndcodec: simple-audio-card,codec {
77 sound-dai = <&ak4643>;
78 system-clock-frequency = <11289600>;
79 };
80};
81
82Example 2. 2 CPU 1 Codec
83
84sound {
85 compatible = "renesas,rsrc-card";
86
87 card-name = "rsnd-ak4643";
88 format = "left_j";
89 bitclock-master = <&dpcmcpu>;
90 frame-master = <&dpcmcpu>;
91
92 convert-rate = <48000>; /* see audio_clk_a */
93
94 audio-prefix = "ak4642";
95 audio-routing = "ak4642 Playback", "DAI0 Playback",
96 "ak4642 Playback", "DAI1 Playback";
97
98 dpcmcpu: cpu@0 {
99 sound-dai = <&rcar_sound 0>;
100 };
101
102 cpu@1 {
103 sound-dai = <&rcar_sound 1>;
104 };
105
106 codec {
107 sound-dai = <&ak4643>;
108 clocks = <&audio_clock>;
109 };
110};
Documentation/devicetree/bindings/sound/st,sti-asoc-card.txt+16−36
@@ -11,7 +11,9 @@ Documentation/devicetree/bindings/sound/simple-card.txt. · 10 unmodified lines
11---------------------------------------11---------------------------------------
12 12
13Required properties:13Required properties:
14 - compatible: "st,sti-uni-player" or "st,sti-uni-reader"14 - compatible: "st,stih407-uni-player-hdmi", "st,stih407-uni-player-pcm-out",
15 "st,stih407-uni-player-dac", "st,stih407-uni-player-spdif",
16 "st,stih407-uni-reader-pcm_in", "st,stih407-uni-reader-hdmi",
15 17
16 - st,syscfg: phandle to boot-device system configuration registers18 - st,syscfg: phandle to boot-device system configuration registers
17 19
@@ -33,32 +35,24 @@ Required properties: · 15 unmodified lines
33 "tx" for "st,sti-uni-player" compatibility35 "tx" for "st,sti-uni-player" compatibility
34 "rx" for "st,sti-uni-reader" compatibility36 "rx" for "st,sti-uni-reader" compatibility
35 37
36 - st,version: IP version integrated in SOC.
37
38 - dai-name: DAI name that describes the IP.
39
40 - st,mode: IP working mode depending on associated codec.
41 "HDMI" connected to HDMI codec and support IEC HDMI formats (player only).
42 "SPDIF" connected to SPDIF codec and support SPDIF formats (player only).
43 "PCM" PCM standard mode for I2S or TDM bus.
44 "TDM" TDM mode for TDM bus.
45
46Required properties ("st,sti-uni-player" compatibility only):38Required properties ("st,sti-uni-player" compatibility only):
47 - clocks: CPU_DAI IP clock source, listed in the same order than the39 - clocks: CPU_DAI IP clock source, listed in the same order than the
48 CPU_DAI properties.40 CPU_DAI properties.
49 41
50 - st,uniperiph-id: internal SOC IP instance ID.
51
52Optional properties:42Optional properties:
53 - pinctrl-0: defined for CPU_DAI@1 and CPU_DAI@4 to describe I2S PIOs for43 - pinctrl-0: defined for CPU_DAI@1 and CPU_DAI@4 to describe I2S PIOs for
54 external codecs connection.44 external codecs connection.
55 45
56 - pinctrl-names: should contain only one value - "default".46 - pinctrl-names: should contain only one value - "default".
57 47
48 - st,tdm-mode: to declare to set TDM mode for unireader and uniplayer IPs.
49 Only compartible with IPs in charge of the external I2S/TDM bus.
50 Should be declared depending on associated codec.
51
58Example:52Example:
59 53
60 sti_uni_player1: sti-uni-player@1 {54 sti_uni_player1: sti-uni-player@0x8D81000 {
61 compatible = "st,sti-uni-player";55 compatible = "st,stih407-uni-player-hdmi";
62 status = "okay";56 status = "okay";
63 #sound-dai-cells = <0>;57 #sound-dai-cells = <0>;
64 st,syscfg = <&syscfg_core>;58 st,syscfg = <&syscfg_core>;
@@ -66,15 +60,12 @@ Example: · 1 unmodified line
66 reg = <0x8D81000 0x158>;60 reg = <0x8D81000 0x158>;
67 interrupts = <GIC_SPI 85 IRQ_TYPE_NONE>;61 interrupts = <GIC_SPI 85 IRQ_TYPE_NONE>;
68 dmas = <&fdma0 3 0 1>;62 dmas = <&fdma0 3 0 1>;
69 st,dai-name = "Uni Player #1 (I2S)";
70 dma-names = "tx";63 dma-names = "tx";
71 st,uniperiph-id = <1>;64 st,tdm-mode = <1>;
72 st,version = <5>;
73 st,mode = "TDM";
74 };65 };
75 66
76 sti_uni_player2: sti-uni-player@2 {67 sti_uni_player2: sti-uni-player@0x8D82000 {
77 compatible = "st,sti-uni-player";68 compatible = "st,stih407-uni-player-pcm-out";
78 status = "okay";69 status = "okay";
79 #sound-dai-cells = <0>;70 #sound-dai-cells = <0>;
80 st,syscfg = <&syscfg_core>;71 st,syscfg = <&syscfg_core>;
@@ -82,15 +73,11 @@ Example: · 1 unmodified line
82 reg = <0x8D82000 0x158>;73 reg = <0x8D82000 0x158>;
83 interrupts = <GIC_SPI 86 IRQ_TYPE_NONE>;74 interrupts = <GIC_SPI 86 IRQ_TYPE_NONE>;
84 dmas = <&fdma0 4 0 1>;75 dmas = <&fdma0 4 0 1>;
85 dai-name = "Uni Player #2 (DAC)";
86 dma-names = "tx";76 dma-names = "tx";
87 st,uniperiph-id = <2>;
88 st,version = <5>;
89 st,mode = "PCM";
90 };77 };
91 78
92 sti_uni_player3: sti-uni-player@3 {79 sti_uni_player3: sti-uni-player@0x8D85000 {
93 compatible = "st,sti-uni-player";80 compatible = "st,stih407-uni-player-spdif";
94 status = "okay";81 status = "okay";
95 #sound-dai-cells = <0>;82 #sound-dai-cells = <0>;
96 st,syscfg = <&syscfg_core>;83 st,syscfg = <&syscfg_core>;
@@ -99,14 +86,10 @@ Example: · 2 unmodified lines
99 interrupts = <GIC_SPI 89 IRQ_TYPE_NONE>;86 interrupts = <GIC_SPI 89 IRQ_TYPE_NONE>;
100 dmas = <&fdma0 7 0 1>;87 dmas = <&fdma0 7 0 1>;
101 dma-names = "tx";88 dma-names = "tx";
102 dai-name = "Uni Player #3 (SPDIF)";
103 st,uniperiph-id = <3>;
104 st,version = <5>;
105 st,mode = "SPDIF";
106 };89 };
107 90
108 sti_uni_reader1: sti-uni-reader@1 {91 sti_uni_reader1: sti-uni-reader@0x8D84000 {
109 compatible = "st,sti-uni-reader";92 compatible = "st,stih407-uni-reader-hdmi";
110 status = "disabled";93 status = "disabled";
111 #sound-dai-cells = <0>;94 #sound-dai-cells = <0>;
112 st,syscfg = <&syscfg_core>;95 st,syscfg = <&syscfg_core>;
@@ -114,9 +97,6 @@ Example: · 1 unmodified line
114 interrupts = <GIC_SPI 88 IRQ_TYPE_NONE>;97 interrupts = <GIC_SPI 88 IRQ_TYPE_NONE>;
115 dmas = <&fdma0 6 0 1>;98 dmas = <&fdma0 6 0 1>;
116 dma-names = "rx";99 dma-names = "rx";
117 dai-name = "Uni Reader #1 (HDMI RX)";
118 st,version = <3>;
119 st,mode = "PCM";
120 };100 };
121 101
1222) sti-sas-codec: internal audio codec IPs driver1022) sti-sas-codec: internal audio codec IPs driver
Documentation/devicetree/bindings/sound/sunxi,sun4i-spdif.txt+3−0
@@ -9,6 +9,7 @@ Required properties: · 8 unmodified lines
9 9
10 - compatible : should be one of the following:10 - compatible : should be one of the following:
11 - "allwinner,sun4i-a10-spdif": for the Allwinner A10 SoC11 - "allwinner,sun4i-a10-spdif": for the Allwinner A10 SoC
12 - "allwinner,sun6i-a31-spdif": for the Allwinner A31 SoC
12 13
13 - reg : Offset and length of the register set for the device.14 - reg : Offset and length of the register set for the device.
14 15
@@ -25,6 +26,8 @@ Required properties: · 10 unmodified lines
25 "apb" clock for the spdif bus.26 "apb" clock for the spdif bus.
26 "spdif" clock for spdif controller.27 "spdif" clock for spdif controller.
27 28
29 - resets : reset specifier for the ahb reset (A31 and newer only)
30
28Example:31Example:
29 32
30spdif: spdif@01c21000 {33spdif: spdif@01c21000 {
Documentation/devicetree/bindings/sound/tlv320aic31xx.txt+6−3
@@ -11,6 +11,7 @@ Required properties: · 10 unmodified lines
11 "ti,tlv320aic3110" - TLV320AIC3110 (stereo speaker amp, no MiniDSP)11 "ti,tlv320aic3110" - TLV320AIC3110 (stereo speaker amp, no MiniDSP)
12 "ti,tlv320aic3120" - TLV320AIC3120 (mono speaker amp, MiniDSP)12 "ti,tlv320aic3120" - TLV320AIC3120 (mono speaker amp, MiniDSP)
13 "ti,tlv320aic3111" - TLV320AIC3111 (stereo speaker amp, MiniDSP)13 "ti,tlv320aic3111" - TLV320AIC3111 (stereo speaker amp, MiniDSP)
14 "ti,tlv320dac3100" - TLV320DAC3100 (no ADC, mono speaker amp, no MiniDSP)
14 15
15- reg - <int> - I2C slave address16- reg - <int> - I2C slave address
16- HPVDD-supply, SPRVDD-supply, SPLVDD-supply, AVDD-supply, IOVDD-supply,17- HPVDD-supply, SPRVDD-supply, SPLVDD-supply, AVDD-supply, IOVDD-supply,
@@ -37,9 +38,11 @@ CODEC output pins: · 20 unmodified lines
37 * MICBIAS38 * MICBIAS
38 39
39CODEC input pins:40CODEC input pins:
40 * MIC1LP41 * MIC1LP, devices with ADC
41 * MIC1RP42 * MIC1RP, devices with ADC
42 * MIC1LM43 * MIC1LM, devices with ADC
44 * AIN1, devices without ADC
45 * AIN2, devices without ADC
43 46
44The pins can be used in referring sound node's audio-routing property.47The pins can be used in referring sound node's audio-routing property.
45 48
Documentation/devicetree/bindings/spi/brcm,spi-bcm-qspi.txt+233−0
@@ -0,0 +1,233 @@
1Broadcom SPI controller
2
3The Broadcom SPI controller is a SPI master found on various SOCs, including
4BRCMSTB (BCM7XXX), Cygnus, NSP and NS2. The Broadcom Master SPI hw IP consits
5of :
6 MSPI : SPI master controller can read and write to a SPI slave device
7 BSPI : Broadcom SPI in combination with the MSPI hw IP provides acceleration
8 for flash reads and be configured to do single, double, quad lane
9 io with 3-byte and 4-byte addressing support.
10
11 Supported Broadcom SoCs have one instance of MSPI+BSPI controller IP.
12 MSPI master can be used wihout BSPI. BRCMSTB SoCs have an additional instance
13 of a MSPI master without the BSPI to use with non flash slave devices that
14 use SPI protocol.
15
16Required properties:
17
18- #address-cells:
19 Must be <1>, as required by generic SPI binding.
20
21- #size-cells:
22 Must be <0>, also as required by generic SPI binding.
23
24- compatible:
25 Must be one of :
26 "brcm,spi-bcm-qspi", "brcm,spi-brcmstb-qspi" : MSPI+BSPI on BRCMSTB SoCs
27 "brcm,spi-bcm-qspi", "brcm,spi-brcmstb-mspi" : Second Instance of MSPI
28 BRCMSTB SoCs
29 "brcm,spi-bcm-qspi", "brcm,spi-nsp-qspi" : MSPI+BSPI on Cygnus, NSP
30 "brcm,spi-bcm-qspi", "brcm,spi-ns2-qspi" : NS2 SoCs
31
32- reg:
33 Define the bases and ranges of the associated I/O address spaces.
34 The required range is MSPI controller registers.
35
36- reg-names:
37 First name does not matter, but must be reserved for the MSPI controller
38 register range as mentioned in 'reg' above, and will typically contain
39 - "bspi_regs": BSPI register range, not required with compatible
40 "spi-brcmstb-mspi"
41 - "mspi_regs": MSPI register range is required for compatible strings
42 - "intr_regs", "intr_status_reg" : Interrupt and status register for
43 NSP, NS2, Cygnus SoC
44
45- interrupts
46 The interrupts used by the MSPI and/or BSPI controller.
47
48- interrupt-names:
49 Names of interrupts associated with MSPI
50 - "mspi_halted" :
51 - "mspi_done": Indicates that the requested SPI operation is complete.
52 - "spi_lr_fullness_reached" : Linear read BSPI pipe full
53 - "spi_lr_session_aborted" : Linear read BSPI pipe aborted
54 - "spi_lr_impatient" : Linear read BSPI requested when pipe empty
55 - "spi_lr_session_done" : Linear read BSPI session done
56
57- clocks:
58 A phandle to the reference clock for this block.
59
60Optional properties:
61
62
63- native-endian
64 Defined when using BE SoC and device uses BE register read/write
65
66Recommended optional m25p80 properties:
67- spi-rx-bus-width: Definition as per
68 Documentation/devicetree/bindings/spi/spi-bus.txt
69
70Examples:
71
72BRCMSTB SoC Example:
73
74 SPI Master (MSPI+BSPI) for SPI-NOR access:
75
76 spi@f03e3400 {
77 #address-cells = <0x1>;
78 #size-cells = <0x0>;
79 compatible = "brcm,spi-brcmstb-qspi", "brcm,spi-brcmstb-qspi";
80 reg = <0xf03e0920 0x4 0xf03e3400 0x188 0xf03e3200 0x50>;
81 reg-names = "cs_reg", "mspi", "bspi";
82 interrupts = <0x6 0x5 0x4 0x3 0x2 0x1 0x0>;
83 interrupt-parent = <0x1c>;
84 interrupt-names = "mspi_halted",
85 "mspi_done",
86 "spi_lr_overread",
87 "spi_lr_session_done",
88 "spi_lr_impatient",
89 "spi_lr_session_aborted",
90 "spi_lr_fullness_reached";
91
92 clocks = <&hif_spi>;
93 clock-names = "sw_spi";
94
95 m25p80@0 {
96 #size-cells = <0x2>;
97 #address-cells = <0x2>;
98 compatible = "m25p80";
99 reg = <0x0>;
100 spi-max-frequency = <0x2625a00>;
101 spi-cpol;
102 spi-cpha;
103 m25p,fast-read;
104
105 flash0.bolt@0 {
106 reg = <0x0 0x0 0x0 0x100000>;
107 };
108
109 flash0.macadr@100000 {
110 reg = <0x0 0x100000 0x0 0x10000>;
111 };
112
113 flash0.nvram@110000 {
114 reg = <0x0 0x110000 0x0 0x10000>;
115 };
116
117 flash0.kernel@120000 {
118 reg = <0x0 0x120000 0x0 0x400000>;
119 };
120
121 flash0.devtree@520000 {
122 reg = <0x0 0x520000 0x0 0x10000>;
123 };
124
125 flash0.splash@530000 {
126 reg = <0x0 0x530000 0x0 0x80000>;
127 };
128
129 flash0@0 {
130 reg = <0x0 0x0 0x0 0x4000000>;
131 };
132 };
133 };
134
135
136 MSPI master for any SPI device :
137
138 spi@f0416000 {
139 #address-cells = <1>;
140 #size-cells = <0>;
141 clocks = <&upg_fixed>;
142 compatible = "brcm,spi-brcmstb-qspi", "brcm,spi-brcmstb-mspi";
143 reg = <0xf0416000 0x180>;
144 reg-names = "mspi";
145 interrupts = <0x14>;
146 interrupt-parent = <&irq0_aon_intc>;
147 interrupt-names = "mspi_done";
148 };
149
150iProc SoC Example:
151
152 qspi: spi@18027200 {
153 compatible = "brcm,spi-bcm-qspi", "brcm,spi-nsp-qspi";
154 reg = <0x18027200 0x184>,
155 <0x18027000 0x124>,
156 <0x1811c408 0x004>,
157 <0x180273a0 0x01c>;
158 reg-names = "mspi_regs", "bspi_regs", "intr_regs", "intr_status_reg";
159 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
160 <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>,
161 <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>,
162 <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>,
163 <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>,
164 <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>,
165 <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
166 interrupt-names =
167 "spi_lr_fullness_reached",
168 "spi_lr_session_aborted",
169 "spi_lr_impatient",
170 "spi_lr_session_done",
171 "mspi_done",
172 "mspi_halted";
173 clocks = <&iprocmed>;
174 clock-names = "iprocmed";
175 num-cs = <2>;
176 #address-cells = <1>;
177 #size-cells = <0>;
178 };
179
180
181 NS2 SoC Example:
182
183 qspi: spi@66470200 {
184 compatible = "brcm,spi-bcm-qspi", "brcm,spi-ns2-qspi";
185 reg = <0x66470200 0x184>,
186 <0x66470000 0x124>,
187 <0x67017408 0x004>,
188 <0x664703a0 0x01c>;
189 reg-names = "mspi", "bspi", "intr_regs",
190 "intr_status_reg";
191 interrupts = <GIC_SPI 419 IRQ_TYPE_LEVEL_HIGH>;
192 interrupt-names = "spi_l1_intr";
193 clocks = <&iprocmed>;
194 clock-names = "iprocmed";
195 num-cs = <2>;
196 #address-cells = <1>;
197 #size-cells = <0>;
198 };
199
200
201 m25p80 node for NSP, NS2
202
203 &qspi {
204 flash: m25p80@0 {
205 #address-cells = <1>;
206 #size-cells = <1>;
207 compatible = "m25p80";
208 reg = <0x0>;
209 spi-max-frequency = <12500000>;
210 m25p,fast-read;
211 spi-cpol;
212 spi-cpha;
213
214 partition@0 {
215 label = "boot";
216 reg = <0x00000000 0x000a0000>;
217 };
218
219 partition@a0000 {
220 label = "env";
221 reg = <0x000a0000 0x00060000>;
222 };
223
224 partition@100000 {
225 label = "system";
226 reg = <0x00100000 0x00600000>;
227 };
228
229 partition@700000 {
230 label = "rootfs";
231 reg = <0x00700000 0x01900000>;
232 };
233 };
Documentation/devicetree/bindings/spi/jcore,spi.txt+34−0
@@ -0,0 +1,34 @@
1J-Core SPI master
2
3Required properties:
4
5- compatible: Must be "jcore,spi2".
6
7- reg: Memory region for registers.
8
9- #address-cells: Must be 1.
10
11- #size-cells: Must be 0.
12
13Optional properties:
14
15- clocks: If a phandle named "ref_clk" is present, SPI clock speed
16 programming is relative to the frequency of the indicated clock.
17 Necessary only if the input clock rate is something other than a
18 fixed 50 MHz.
19
20- clock-names: Clock names, one for each phandle in clocks.
21
22See spi-bus.txt for additional properties not specific to this device.
23
24Example:
25
26spi@40 {
27 compatible = "jcore,spi2";
28 #address-cells = <1>;
29 #size-cells = <0>;
30 reg = <0x40 0x8>;
31 spi-max-frequency = <25000000>;
32 clocks = <&bus_clk>;
33 clock-names = "ref_clk";
34}
Documentation/devicetree/bindings/spi/spi-bus.txt+1−1
@@ -31,7 +31,7 @@ with max(cs-gpios > hw cs). · 30 unmodified lines
31So if for example the controller has 2 CS lines, and the cs-gpios31So if for example the controller has 2 CS lines, and the cs-gpios
32property looks like this:32property looks like this:
33 33
34cs-gpios = <&gpio1 0 0> <0> <&gpio1 1 0> <&gpio1 2 0>;34cs-gpios = <&gpio1 0 0>, <0>, <&gpio1 1 0>, <&gpio1 2 0>;
35 35
36Then it should be configured so that num_chipselect = 4 with the36Then it should be configured so that num_chipselect = 4 with the
37following mapping:37following mapping:
Documentation/devicetree/bindings/spi/spi-meson.txt+1−1
@@ -7,7 +7,7 @@ NOR memories, without DMA support and a 64-byte unified transmit / · 6 unmodified lines
7receive buffer.7receive buffer.
8 8
9Required properties:9Required properties:
10 - compatible: should be "amlogic,meson6-spifc"10 - compatible: should be "amlogic,meson6-spifc" or "amlogic,meson-gxbb-spifc"
11 - reg: physical base address and length of the controller registers11 - reg: physical base address and length of the controller registers
12 - clocks: phandle of the input clock for the baud rate generator12 - clocks: phandle of the input clock for the baud rate generator
13 - #address-cells: should be 113 - #address-cells: should be 1
Documentation/devicetree/bindings/thermal/max77620_thermal.txt+70−0
@@ -0,0 +1,70 @@
1Thermal driver for MAX77620 Power management IC from Maxim Semiconductor.
2
3Maxim Semiconductor MAX77620 supports alarm interrupts when its
4die temperature crosses 120C and 140C. These threshold temperatures
5are not configurable. Device does not provide the real temperature
6of die other than just indicating whether temperature is above or
7below threshold level.
8
9Required properties:
10-------------------
11#thermal-sensor-cells: Please refer <devicetree/bindings/thermal/thermal.txt>
12 for more details.
13 The value must be 0.
14
15For more details, please refer generic thermal DT binding document
16<devicetree/bindings/thermal/thermal.txt>.
17
18Please refer <devicetree/bindings/mfd/max77620.txt> for mfd DT binding
19document for the MAX77620.
20
21Example:
22--------
23#include <dt-bindings/mfd/max77620.h>
24#include <dt-bindings/thermal/thermal.h>
25...
26
27i2c@7000d000 {
28 spmic: max77620@3c {
29 compatible = "maxim,max77620";
30 :::::
31 #thermal-sensor-cells = <0>;
32 :::
33 };
34};
35
36cool_dev: cool-dev {
37 compatible = "cooling-dev";
38 #cooling-cells = <2>;
39};
40
41thermal-zones {
42 PMIC-Die {
43 polling-delay = <0>;
44 polling-delay-passive = <0>;
45 thermal-sensors = <&spmic>;
46
47 trips {
48 pmic_die_warn_temp_thresh: hot-die {
49 temperature = <120000>;
50 type = "hot";
51 hysteresis = <0>;
52 };
53
54 pmic_die_cirt_temp_thresh: cirtical-die {
55 temperature = <140000>;
56 type = "critical";
57 hysteresis = <0>;
58 };
59 };
60
61 cooling-maps {
62 map0 {
63 trip = <&pmic_die_warn_temp_thresh>;
64 cooling-device = <&cool_dev THERMAL_NO_LIMIT
65 THERMAL_NO_LIMIT>;
66 contribution = <100>;
67 };
68 };
69 };
70};
Documentation/devicetree/bindings/thermal/mediatek-thermal.txt+3−1
@@ -8,7 +8,9 @@ apmixedsys register space via AHB bus accesses, so a phandle to the APMIXEDSYS · 7 unmodified lines
8is also needed.8is also needed.
9 9
10Required properties:10Required properties:
11- compatible: "mediatek,mt8173-thermal"11- compatible:
12 - "mediatek,mt8173-thermal" : For MT8173 family of SoCs
13 - "mediatek,mt2701-thermal" : For MT2701 family of SoCs
12- reg: Address range of the thermal controller14- reg: Address range of the thermal controller
13- interrupts: IRQ for the thermal controller15- interrupts: IRQ for the thermal controller
14- clocks, clock-names: Clocks needed for the thermal controller. required16- clocks, clock-names: Clocks needed for the thermal controller. required
Documentation/devicetree/bindings/thermal/nvidia,tegra124-soctherm.txt+119−2
@@ -10,8 +10,14 @@ Required properties : · 9 unmodified lines
10- compatible : For Tegra124, must contain "nvidia,tegra124-soctherm".10- compatible : For Tegra124, must contain "nvidia,tegra124-soctherm".
11 For Tegra132, must contain "nvidia,tegra132-soctherm".11 For Tegra132, must contain "nvidia,tegra132-soctherm".
12 For Tegra210, must contain "nvidia,tegra210-soctherm".12 For Tegra210, must contain "nvidia,tegra210-soctherm".
13- reg : Should contain 1 entry:13- reg : Should contain at least 2 entries for each entry in reg-names:
14 - SOCTHERM register set14 - SOCTHERM register set
15 - Tegra CAR register set: Required for Tegra124 and Tegra210.
16 - CCROC register set: Required for Tegra132.
17- reg-names : Should contain at least 2 entries:
18 - soctherm-reg
19 - car-reg
20 - ccroc-reg
15- interrupts : Defines the interrupt used by SOCTHERM21- interrupts : Defines the interrupt used by SOCTHERM
16- clocks : Must contain an entry for each entry in clock-names.22- clocks : Must contain an entry for each entry in clock-names.
17 See ../clocks/clock-bindings.txt for details.23 See ../clocks/clock-bindings.txt for details.
@@ -25,17 +31,45 @@ Required properties : · 7 unmodified lines
25- #thermal-sensor-cells : Should be 1. See ./thermal.txt for a description31- #thermal-sensor-cells : Should be 1. See ./thermal.txt for a description
26 of this property. See <dt-bindings/thermal/tegra124-soctherm.h> for a32 of this property. See <dt-bindings/thermal/tegra124-soctherm.h> for a
27 list of valid values when referring to thermal sensors.33 list of valid values when referring to thermal sensors.
34- throttle-cfgs: A sub-node which is a container of configuration for each
35 hardware throttle events. These events can be set as cooling devices.
36 * throttle events: Sub-nodes must be named as "light" or "heavy".
37 Properties:
38 - nvidia,priority: Each throttles has its own throttle settings, so the
39 SW need to set priorities for various throttle, the HW arbiter can select
40 the final throttle settings.
41 Bigger value indicates higher priority, In general, higher priority
42 translates to lower target frequency. SW needs to ensure that critical
43 thermal alarms are given higher priority, and ensure that there is
44 no race if priority of two vectors is set to the same value.
45 The range of this value is 1~100.
46 - nvidia,cpu-throt-percent: This property is for Tegra124 and Tegra210.
47 It is the throttling depth of pulse skippers, it's the percentage
48 throttling.
49 - nvidia,cpu-throt-level: This property is only for Tegra132, it is the
50 level of pulse skippers, which used to throttle clock frequencies. It
51 indicates cpu clock throttling depth, and the depth can be programmed.
52 Must set as following values:
53 TEGRA_SOCTHERM_THROT_LEVEL_LOW, TEGRA_SOCTHERM_THROT_LEVEL_MED
54 TEGRA_SOCTHERM_THROT_LEVEL_HIGH, TEGRA_SOCTHERM_THROT_LEVEL_NONE
55 - #cooling-cells: Should be 1. This cooling device only support on/off state.
56 See ./thermal.txt for a description of this property.
28 57
29Note:58Note:
30- the "critical" type trip points will be set to SOC_THERM hardware as the59- the "critical" type trip points will be set to SOC_THERM hardware as the
31shut down temperature. Once the temperature of this thermal zone is higher60shut down temperature. Once the temperature of this thermal zone is higher
32than it, the system will be shutdown or reset by hardware.61than it, the system will be shutdown or reset by hardware.
62- the "hot" type trip points will be set to SOC_THERM hardware as the throttle
63temperature. Once the the temperature of this thermal zone is higher
64than it, it will trigger the HW throttle event.
33 65
34Example :66Example :
35 67
36 soctherm@700e2000 {68 soctherm@700e2000 {
37 compatible = "nvidia,tegra124-soctherm";69 compatible = "nvidia,tegra124-soctherm";
38 reg = <0x0 0x700e2000 0x0 0x1000>;70 reg = <0x0 0x700e2000 0x0 0x600 /* SOC_THERM reg_base */
71 0x0 0x60006000 0x0 0x400 /* CAR reg_base */
72 reg-names = "soctherm-reg", "car-reg";
39 interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;73 interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
40 clocks = <&tegra_car TEGRA124_CLK_TSENSOR>,74 clocks = <&tegra_car TEGRA124_CLK_TSENSOR>,
41 <&tegra_car TEGRA124_CLK_SOC_THERM>;75 <&tegra_car TEGRA124_CLK_SOC_THERM>;
@@ -44,6 +78,76 @@ Example : · 2 unmodified lines
44 reset-names = "soctherm";78 reset-names = "soctherm";
45 79
46 #thermal-sensor-cells = <1>;80 #thermal-sensor-cells = <1>;
81
82 throttle-cfgs {
83 /*
84 * When the "heavy" cooling device triggered,
85 * the HW will skip cpu clock's pulse in 85% depth
86 */
87 throttle_heavy: heavy {
88 nvidia,priority = <100>;
89 nvidia,cpu-throt-percent = <85>;
90
91 #cooling-cells = <1>;
92 };
93
94 /*
95 * When the "light" cooling device triggered,
96 * the HW will skip cpu clock's pulse in 50% depth
97 */
98 throttle_light: light {
99 nvidia,priority = <80>;
100 nvidia,cpu-throt-percent = <50>;
101
102 #cooling-cells = <1>;
103 };
104
105 /*
106 * If these two devices are triggered in same time, the HW throttle
107 * arbiter will select the highest priority as the final throttle
108 * settings to skip cpu pulse.
109 */
110 };
111 };
112
113Example: referring to Tegra132's "reg", "reg-names" and "throttle-cfgs" :
114
115 soctherm@700e2000 {
116 compatible = "nvidia,tegra132-soctherm";
117 reg = <0x0 0x700e2000 0x0 0x600 /* SOC_THERM reg_base */
118 0x0 0x70040000 0x0 0x200>; /* CCROC reg_base */;
119 reg-names = "soctherm-reg", "ccroc-reg";
120
121 throttle-cfgs {
122 /*
123 * When the "heavy" cooling device triggered,
124 * the HW will skip cpu clock's pulse in HIGH level
125 */
126 throttle_heavy: heavy {
127 nvidia,priority = <100>;
128 nvidia,cpu-throt-level = <TEGRA_SOCTHERM_THROT_LEVEL_HIGH>;
129
130 #cooling-cells = <1>;
131 };
132
133 /*
134 * When the "light" cooling device triggered,
135 * the HW will skip cpu clock's pulse in MED level
136 */
137 throttle_light: light {
138 nvidia,priority = <80>;
139 nvidia,cpu-throt-level = <TEGRA_SOCTHERM_THROT_LEVEL_MED>;
140
141 #cooling-cells = <1>;
142 };
143
144 /*
145 * If these two devices are triggered in same time, the HW throttle
146 * arbiter will select the highest priority as the final throttle
147 * settings to skip cpu pulse.
148 */
149
150 };
47 };151 };
48 152
49Example: referring to thermal sensors :153Example: referring to thermal sensors :
@@ -62,6 +166,19 @@ Example: referring to thermal sensors : · 12 unmodified lines
62 hysteresis = <1000>;166 hysteresis = <1000>;
63 type = "critical";167 type = "critical";
64 };168 };
169
170 cpu_throttle_trip: throttle-trip {
171 temperature = <100000>;
172 hysteresis = <1000>;
173 type = "hot";
174 };
175 };
176
177 cooling-maps {
178 map0 {
179 trip = <&cpu_throttle_trip>;
180 cooling-device = <&throttle_heavy 1 1>;
181 };
65 };182 };
66 };183 };
67 };184 };
Documentation/devicetree/bindings/thermal/qcom-tsens.txt+21−0
@@ -0,0 +1,21 @@
1* QCOM SoC Temperature Sensor (TSENS)
2
3Required properties:
4- compatible :
5 - "qcom,msm8916-tsens" : For 8916 Family of SoCs
6 - "qcom,msm8974-tsens" : For 8974 Family of SoCs
7 - "qcom,msm8996-tsens" : For 8996 Family of SoCs
8
9- reg: Address range of the thermal registers
10- #thermal-sensor-cells : Should be 1. See ./thermal.txt for a description.
11- Refer to Documentation/devicetree/bindings/nvmem/nvmem.txt to know how to specify
12nvmem cells
13
14Example:
15tsens: thermal-sensor@900000 {
16 compatible = "qcom,msm8916-tsens";
17 reg = <0x4a8000 0x2000>;
18 nvmem-cells = <&tsens_caldata>, <&tsens_calsel>;
19 nvmem-cell-names = "caldata", "calsel";
20 #thermal-sensor-cells = <1>;
21 };
Documentation/devicetree/bindings/timer/jcore,pit.txt+24−0
@@ -0,0 +1,24 @@
1J-Core Programmable Interval Timer and Clocksource
2
3Required properties:
4
5- compatible: Must be "jcore,pit".
6
7- reg: Memory region(s) for timer/clocksource registers. For SMP,
8 there should be one region per cpu, indexed by the sequential,
9 zero-based hardware cpu number.
10
11- interrupts: An interrupt to assign for the timer. The actual pit
12 core is integrated with the aic and allows the timer interrupt
13 assignment to be programmed by software, but this property is
14 required in order to reserve an interrupt number that doesn't
15 conflict with other devices.
16
17
18Example:
19
20timer@200 {
21 compatible = "jcore,pit";
22 reg = < 0x200 0x30 0x500 0x30 >;
23 interrupts = < 0x48 >;
24};
Documentation/devicetree/bindings/timer/moxa,moxart-timer.txt+3−1
@@ -2,7 +2,9 @@ MOXA ART timer · 1 unmodified line
2 2
3Required properties:3Required properties:
4 4
5- compatible : Must be "moxa,moxart-timer"5- compatible : Must be one of:
6 - "moxa,moxart-timer"
7 - "aspeed,ast2400-timer"
6- reg : Should contain registers location and length8- reg : Should contain registers location and length
7- interrupts : Should contain the timer interrupt number9- interrupts : Should contain the timer interrupt number
8- clocks : Should contain phandle for the clock that drives the counter10- clocks : Should contain phandle for the clock that drives the counter
Documentation/devicetree/bindings/timer/oxsemi,rps-timer.txt+1−1
@@ -2,7 +2,7 @@ Oxford Semiconductor OXNAS SoCs Family RPS Timer · 1 unmodified line
2================================================2================================================
3 3
4Required properties:4Required properties:
5- compatible: Should be "oxsemi,ox810se-rps-timer"5- compatible: Should be "oxsemi,ox810se-rps-timer" or "oxsemi,ox820-rps-timer"
6- reg : Specifies base physical address and size of the registers.6- reg : Specifies base physical address and size of the registers.
7- interrupts : The interrupts of the two timers7- interrupts : The interrupts of the two timers
8- clocks : The phandle of the timer clock source8- clocks : The phandle of the timer clock source
Documentation/devicetree/bindings/usb/ci-hdrc-usb2.txt+2−0
@@ -81,6 +81,8 @@ i.mx specific properties · 80 unmodified lines
81- fsl,usbmisc: phandler of non-core register device, with one81- fsl,usbmisc: phandler of non-core register device, with one
82 argument that indicate usb controller index82 argument that indicate usb controller index
83- disable-over-current: disable over current detect83- disable-over-current: disable over current detect
84- over-current-active-high: over current signal polarity is high active,
85 typically over current signal polarity is low active.
84- external-vbus-divider: enables off-chip resistor divider for Vbus86- external-vbus-divider: enables off-chip resistor divider for Vbus
85 87
86Example:88Example:
Documentation/devicetree/bindings/usb/dwc2.txt+6−1
@@ -10,6 +10,8 @@ Required properties: · 9 unmodified lines
10 - "rockchip,rk3288-usb", "rockchip,rk3066-usb", "snps,dwc2": for rk3288 Soc;10 - "rockchip,rk3288-usb", "rockchip,rk3066-usb", "snps,dwc2": for rk3288 Soc;
11 - "lantiq,arx100-usb": The DWC2 USB controller instance in Lantiq ARX SoCs;11 - "lantiq,arx100-usb": The DWC2 USB controller instance in Lantiq ARX SoCs;
12 - "lantiq,xrx200-usb": The DWC2 USB controller instance in Lantiq XRX SoCs;12 - "lantiq,xrx200-usb": The DWC2 USB controller instance in Lantiq XRX SoCs;
13 - "amlogic,meson8b-usb": The DWC2 USB controller instance in Amlogic Meson8b SoCs;
14 - "amlogic,meson-gxbb-usb": The DWC2 USB controller instance in Amlogic S905 SoCs;
13 - snps,dwc2: A generic DWC2 USB controller with default parameters.15 - snps,dwc2: A generic DWC2 USB controller with default parameters.
14- reg : Should contain 1 register range (address and length)16- reg : Should contain 1 register range (address and length)
15- interrupts : Should contain 1 interrupt17- interrupts : Should contain 1 interrupt
@@ -26,7 +28,10 @@ Refer to phy/phy-bindings.txt for generic phy consumer properties · 10 unmodified lines
26- g-use-dma: enable dma usage in gadget driver.28- g-use-dma: enable dma usage in gadget driver.
27- g-rx-fifo-size: size of rx fifo size in gadget mode.29- g-rx-fifo-size: size of rx fifo size in gadget mode.
28- g-np-tx-fifo-size: size of non-periodic tx fifo size in gadget mode.30- g-np-tx-fifo-size: size of non-periodic tx fifo size in gadget mode.
29- g-tx-fifo-size: size of periodic tx fifo per endpoint (except ep0) in gadget mode.31
32Deprecated properties:
33- g-tx-fifo-size: size of periodic tx fifo per endpoint (except ep0)
34 in gadget mode.
30 35
31Example:36Example:
32 37
Documentation/devicetree/bindings/usb/dwc3-cavium.txt+28−0
@@ -0,0 +1,28 @@
1Cavium SuperSpeed DWC3 USB SoC controller
2
3Required properties:
4- compatible: Should contain "cavium,octeon-7130-usb-uctl"
5
6Required child node:
7A child node must exist to represent the core DWC3 IP block. The name of
8the node is not important. The content of the node is defined in dwc3.txt.
9
10Example device node:
11
12 uctl@1180069000000 {
13 compatible = "cavium,octeon-7130-usb-uctl";
14 reg = <0x00011800 0x69000000 0x00000000 0x00000100>;
15 ranges;
16 #address-cells = <0x00000002>;
17 #size-cells = <0x00000002>;
18 refclk-frequency = <0x05f5e100>;
19 refclk-type-ss = "dlmc_ref_clk0";
20 refclk-type-hs = "dlmc_ref_clk0";
21 power = <0x00000002 0x00000002 0x00000001>;
22 xhci@1690000000000 {
23 compatible = "cavium,octeon-7130-xhci", "synopsys,dwc3";
24 reg = <0x00016900 0x00000000 0x00000010 0x00000000>;
25 interrupt-parent = <0x00000010>;
26 interrupts = <0x00000009 0x00000004>;
27 };
28 };
Documentation/devicetree/bindings/usb/dwc3.txt+7−1
@@ -13,7 +13,8 @@ Optional properties: · 12 unmodified lines
13 in the array is expected to be a handle to the USB2/HS PHY and13 in the array is expected to be a handle to the USB2/HS PHY and
14 the second element is expected to be a handle to the USB3/SS PHY14 the second element is expected to be a handle to the USB3/SS PHY
15 - phys: from the *Generic PHY* bindings15 - phys: from the *Generic PHY* bindings
16 - phy-names: from the *Generic PHY* bindings16 - phy-names: from the *Generic PHY* bindings; supported names are "usb2-phy"
17 or "usb3-phy".
17 - snps,usb3_lpm_capable: determines if platform is USB3 LPM capable18 - snps,usb3_lpm_capable: determines if platform is USB3 LPM capable
18 - snps,disable_scramble_quirk: true when SW should disable data scrambling.19 - snps,disable_scramble_quirk: true when SW should disable data scrambling.
19 Only really useful for FPGA builds.20 Only really useful for FPGA builds.
@@ -39,6 +40,11 @@ Optional properties: · 19 unmodified lines
39 disabling the suspend signal to the PHY.40 disabling the suspend signal to the PHY.
40 - snps,dis_rxdet_inp3_quirk: when set core will disable receiver detection41 - snps,dis_rxdet_inp3_quirk: when set core will disable receiver detection
41 in PHY P3 power state.42 in PHY P3 power state.
43 - snps,dis-u2-freeclk-exists-quirk: when set, clear the u2_freeclk_exists
44 in GUSB2PHYCFG, specify that USB2 PHY doesn't provide
45 a free-running PHY clock.
46 - snps,dis-del-phy-power-chg-quirk: when set core will change PHY power
47 from P0 to P1/P2/P3 without delay.
42 - snps,is-utmi-l1-suspend: true when DWC3 asserts output signal48 - snps,is-utmi-l1-suspend: true when DWC3 asserts output signal
43 utmi_l1_suspend_n, false when asserts utmi_sleep_n49 utmi_l1_suspend_n, false when asserts utmi_sleep_n
44 - snps,hird-threshold: HIRD threshold50 - snps,hird-threshold: HIRD threshold
Documentation/devicetree/bindings/usb/generic.txt+6−0
@@ -11,6 +11,11 @@ Optional properties: · 10 unmodified lines
11 "peripheral" and "otg". In case this attribute isn't11 "peripheral" and "otg". In case this attribute isn't
12 passed via DT, USB DRD controllers should default to12 passed via DT, USB DRD controllers should default to
13 OTG.13 OTG.
14 - phy_type: tells USB controllers that we want to configure the core to support
15 a UTMI+ PHY with an 8- or 16-bit interface if UTMI+ is
16 selected. Valid arguments are "utmi" and "utmi_wide".
17 In case this isn't passed via DT, USB controllers should
18 default to HW capability.
14 - otg-rev: tells usb driver the release number of the OTG and EH supplement19 - otg-rev: tells usb driver the release number of the OTG and EH supplement
15 with which the device and its descriptors are compliant,20 with which the device and its descriptors are compliant,
16 in binary-coded decimal (i.e. 2.0 is 0200H). This21 in binary-coded decimal (i.e. 2.0 is 0200H). This
@@ -34,6 +39,7 @@ dwc3@4a030000 { · 17 unmodified lines
34 usb-phy = <&usb2_phy>, <&usb3,phy>;39 usb-phy = <&usb2_phy>, <&usb3,phy>;
35 maximum-speed = "super-speed";40 maximum-speed = "super-speed";
36 dr_mode = "otg";41 dr_mode = "otg";
42 phy_type = "utmi_wide";
37 otg-rev = <0x0200>;43 otg-rev = <0x0200>;
38 adp-disable;44 adp-disable;
39};45};
Documentation/devicetree/bindings/usb/renesas_usbhs.txt+1−0
@@ -9,6 +9,7 @@ Required properties: · 8 unmodified lines
9 - "renesas,usbhs-r8a7793" for r8a7793 (R-Car M2-N) compatible device9 - "renesas,usbhs-r8a7793" for r8a7793 (R-Car M2-N) compatible device
10 - "renesas,usbhs-r8a7794" for r8a7794 (R-Car E2) compatible device10 - "renesas,usbhs-r8a7794" for r8a7794 (R-Car E2) compatible device
11 - "renesas,usbhs-r8a7795" for r8a7795 (R-Car H3) compatible device11 - "renesas,usbhs-r8a7795" for r8a7795 (R-Car H3) compatible device
12 - "renesas,usbhs-r8a7796" for r8a7796 (R-Car M3-W) compatible device
12 - "renesas,rcar-gen2-usbhs" for R-Car Gen2 compatible device13 - "renesas,rcar-gen2-usbhs" for R-Car Gen2 compatible device
13 - "renesas,rcar-gen3-usbhs" for R-Car Gen3 compatible device14 - "renesas,rcar-gen3-usbhs" for R-Car Gen3 compatible device
14 15
Documentation/devicetree/bindings/usb/rockchip,dwc3.txt+59−0
@@ -0,0 +1,59 @@
1Rockchip SuperSpeed DWC3 USB SoC controller
2
3Required properties:
4- compatible: should contain "rockchip,rk3399-dwc3" for rk3399 SoC
5- clocks: A list of phandle + clock-specifier pairs for the
6 clocks listed in clock-names
7- clock-names: Should contain the following:
8 "ref_clk" Controller reference clk, have to be 24 MHz
9 "suspend_clk" Controller suspend clk, have to be 24 MHz or 32 KHz
10 "bus_clk" Master/Core clock, have to be >= 62.5 MHz for SS
11 operation and >= 30MHz for HS operation
12 "grf_clk" Controller grf clk
13
14Required child node:
15A child node must exist to represent the core DWC3 IP block. The name of
16the node is not important. The content of the node is defined in dwc3.txt.
17
18Phy documentation is provided in the following places:
19Documentation/devicetree/bindings/phy/rockchip,dwc3-usb-phy.txt
20
21Example device nodes:
22
23 usbdrd3_0: usb@fe800000 {
24 compatible = "rockchip,rk3399-dwc3";
25 clocks = <&cru SCLK_USB3OTG0_REF>, <&cru SCLK_USB3OTG0_SUSPEND>,
26 <&cru ACLK_USB3OTG0>, <&cru ACLK_USB3_GRF>;
27 clock-names = "ref_clk", "suspend_clk",
28 "bus_clk", "grf_clk";
29 #address-cells = <2>;
30 #size-cells = <2>;
31 ranges;
32 status = "disabled";
33 usbdrd_dwc3_0: dwc3@fe800000 {
34 compatible = "snps,dwc3";
35 reg = <0x0 0xfe800000 0x0 0x100000>;
36 interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
37 dr_mode = "otg";
38 status = "disabled";
39 };
40 };
41
42 usbdrd3_1: usb@fe900000 {
43 compatible = "rockchip,rk3399-dwc3";
44 clocks = <&cru SCLK_USB3OTG1_REF>, <&cru SCLK_USB3OTG1_SUSPEND>,
45 <&cru ACLK_USB3OTG1>, <&cru ACLK_USB3_GRF>;
46 clock-names = "ref_clk", "suspend_clk",
47 "bus_clk", "grf_clk";
48 #address-cells = <2>;
49 #size-cells = <2>;
50 ranges;
51 status = "disabled";
52 usbdrd_dwc3_1: dwc3@fe900000 {
53 compatible = "snps,dwc3";
54 reg = <0x0 0xfe900000 0x0 0x100000>;
55 interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
56 dr_mode = "otg";
57 status = "disabled";
58 };
59 };
Documentation/devicetree/bindings/usb/usb4604.txt+19−0
@@ -0,0 +1,19 @@
1SMSC USB4604 High-Speed Hub Controller
2
3Required properties:
4- compatible: Should be "smsc,usb4604"
5
6Optional properties:
7- reg: Specifies the i2c slave address, it is required and should be 0x2d
8 if I2C is used.
9- reset-gpios: Should specify GPIO for reset.
10- initial-mode: Should specify initial mode.
11 (1 for HUB mode, 2 for STANDBY mode)
12
13Examples:
14 usb-hub@2d {
15 compatible = "smsc,usb4604";
16 reg = <0x2d>;
17 reset-gpios = <&gpx3 5 1>;
18 initial-mode = <1>;
19 };
Documentation/devicetree/bindings/usb/usbmisc-imx.txt+1−0
@@ -6,6 +6,7 @@ Required properties: · 5 unmodified lines
6 "fsl,imx6q-usbmisc" for imx6q6 "fsl,imx6q-usbmisc" for imx6q
7 "fsl,vf610-usbmisc" for Vybrid vf6107 "fsl,vf610-usbmisc" for Vybrid vf610
8 "fsl,imx6sx-usbmisc" for imx6sx8 "fsl,imx6sx-usbmisc" for imx6sx
9 "fsl,imx7d-usbmisc" for imx7d
9- reg: Should contain registers location and length10- reg: Should contain registers location and length
10 11
11Examples:12Examples:
Documentation/devicetree/bindings/vendor-prefixes.txt+28−13
@@ -3,8 +3,8 @@ Device tree binding vendor prefix registry. Keep list in alphabetical order. · 2 unmodified lines
3This isn't an exhaustive list, but you should add new prefixes to it before3This isn't an exhaustive list, but you should add new prefixes to it before
4using them to avoid name-space collisions.4using them to avoid name-space collisions.
5 5
6abilis Abilis Systems
7abcn Abracon Corporation6abcn Abracon Corporation
7abilis Abilis Systems
8active-semi Active-Semi International Inc8active-semi Active-Semi International Inc
9ad Avionic Design GmbH9ad Avionic Design GmbH
10adapteva Adapteva, Inc.10adapteva Adapteva, Inc.
@@ -36,6 +36,7 @@ aspeed ASPEED Technology Inc. · 25 unmodified lines
36atlas Atlas Scientific LLC36atlas Atlas Scientific LLC
37atmel Atmel Corporation37atmel Atmel Corporation
38auo AU Optronics Corporation38auo AU Optronics Corporation
39auvidea Auvidea GmbH
39avago Avago Technologies40avago Avago Technologies
40avic Shanghai AVIC Optoelectronics Co., Ltd.41avic Shanghai AVIC Optoelectronics Co., Ltd.
41axis Axis Communications AB42axis Axis Communications AB
@@ -75,6 +76,7 @@ digilent Diglent, Inc. · 33 unmodified lines
75dlg Dialog Semiconductor76dlg Dialog Semiconductor
76dlink D-Link Corporation77dlink D-Link Corporation
77dmo Data Modul AG78dmo Data Modul AG
79domintech Domintech Co., Ltd.
78dptechnics DPTechnics80dptechnics DPTechnics
79dragino Dragino Technology Co., Limited81dragino Dragino Technology Co., Limited
80ea Embedded Artists AB82ea Embedded Artists AB
@@ -85,6 +87,7 @@ elan Elan Microelectronic Corp. · 4 unmodified lines
85embest Shenzhen Embest Technology Co., Ltd.87embest Shenzhen Embest Technology Co., Ltd.
86emmicro EM Microelectronic88emmicro EM Microelectronic
87energymicro Silicon Laboratories (formerly Energy Micro AS)89energymicro Silicon Laboratories (formerly Energy Micro AS)
90engicam Engicam S.r.l.
88epcos EPCOS AG91epcos EPCOS AG
89epfl Ecole Polytechnique Fédérale de Lausanne92epfl Ecole Polytechnique Fédérale de Lausanne
90epson Seiko Epson Corp.93epson Seiko Epson Corp.
@@ -98,11 +101,12 @@ ezchip EZchip Semiconductor · 7 unmodified lines
98fcs Fairchild Semiconductor101fcs Fairchild Semiconductor
99firefly Firefly102firefly Firefly
100focaltech FocalTech Systems Co.,Ltd103focaltech FocalTech Systems Co.,Ltd
104friendlyarm Guangzhou FriendlyARM Computer Tech Co., Ltd
101fsl Freescale Semiconductor105fsl Freescale Semiconductor
102ge General Electric Company106ge General Electric Company
103geekbuying GeekBuying107geekbuying GeekBuying
104GEFanuc GE Fanuc Intelligent Platforms Embedded Systems, Inc.
105gef GE Fanuc Intelligent Platforms Embedded Systems, Inc.108gef GE Fanuc Intelligent Platforms Embedded Systems, Inc.
109GEFanuc GE Fanuc Intelligent Platforms Embedded Systems, Inc.
106geniatech Geniatech, Inc.110geniatech Geniatech, Inc.
107giantplus Giantplus Technology Co., Ltd.111giantplus Giantplus Technology Co., Ltd.
108globalscale Globalscale Technologies, Inc.112globalscale Globalscale Technologies, Inc.
@@ -126,7 +130,6 @@ i2se I2SE GmbH · 17 unmodified lines
126ibm International Business Machines (IBM)130ibm International Business Machines (IBM)
127idt Integrated Device Technologies, Inc.131idt Integrated Device Technologies, Inc.
128ifi Ingenieurburo Fur Ic-Technologie (I/F/I)132ifi Ingenieurburo Fur Ic-Technologie (I/F/I)
129iom Iomega Corporation
130img Imagination Technologies Ltd.133img Imagination Technologies Ltd.
131infineon Infineon Technologies134infineon Infineon Technologies
132inforce Inforce Computing135inforce Inforce Computing
@@ -135,11 +138,15 @@ innolux Innolux Corporation · 2 unmodified lines
135intel Intel Corporation138intel Intel Corporation
136intercontrol Inter Control Group139intercontrol Inter Control Group
137invensense InvenSense Inc.140invensense InvenSense Inc.
141inversepath Inverse Path
142iom Iomega Corporation
138isee ISEE 2007 S.L.143isee ISEE 2007 S.L.
139isil Intersil144isil Intersil
140issi Integrated Silicon Solutions Inc.145issi Integrated Silicon Solutions Inc.
146jdi Japan Display Inc.
141jedec JEDEC Solid State Technology Association147jedec JEDEC Solid State Technology Association
142karo Ka-Ro electronics GmbH148karo Ka-Ro electronics GmbH
149keithkoep Keith & Koep GmbH
143keymile Keymile GmbH150keymile Keymile GmbH
144kinetic Kinetic Technologies151kinetic Kinetic Technologies
145kosagi Sutajio Ko-Usagi PTE Ltd.152kosagi Sutajio Ko-Usagi PTE Ltd.
@@ -149,16 +156,18 @@ lantiq Lantiq Semiconductor · 3 unmodified lines
149lenovo Lenovo Group Ltd.156lenovo Lenovo Group Ltd.
150lg LG Corporation157lg LG Corporation
151linux Linux-specific binding158linux Linux-specific binding
152lsi LSI Corp. (LSI Logic)
153lltc Linear Technology Corporation159lltc Linear Technology Corporation
160lsi LSI Corp. (LSI Logic)
154marvell Marvell Technology Group Ltd.161marvell Marvell Technology Group Ltd.
155maxim Maxim Integrated Products162maxim Maxim Integrated Products
156meas Measurement Specialties163meas Measurement Specialties
157mediatek MediaTek Inc.164mediatek MediaTek Inc.
158melexis Melexis N.V.165melexis Melexis N.V.
166melfas MELFAS Inc.
159merrii Merrii Technology Co., Ltd.167merrii Merrii Technology Co., Ltd.
160micrel Micrel Inc.168micrel Micrel Inc.
161microchip Microchip Technology Inc.169microchip Microchip Technology Inc.
170microcrystal Micro Crystal AG
162micron Micron Technology Inc.171micron Micron Technology Inc.
163minix MINIX Technology Ltd.172minix MINIX Technology Ltd.
164mitsubishi Mitsubishi Electric Corporation173mitsubishi Mitsubishi Electric Corporation
@@ -190,20 +199,20 @@ onnn ON Semiconductor Corp. · 25 unmodified lines
190ontat On Tat Industrial Company199ontat On Tat Industrial Company
191opencores OpenCores.org200opencores OpenCores.org
192option Option NV201option Option NV
202ORCL Oracle Corporation
193ortustech Ortus Technology Co., Ltd.203ortustech Ortus Technology Co., Ltd.
194ovti OmniVision Technologies204ovti OmniVision Technologies
195ORCL Oracle Corporation
196oxsemi Oxford Semiconductor, Ltd.205oxsemi Oxford Semiconductor, Ltd.
197panasonic Panasonic Corporation206panasonic Panasonic Corporation
198parade Parade Technologies Inc.207parade Parade Technologies Inc.
199pericom Pericom Technology Inc.208pericom Pericom Technology Inc.
200phytec PHYTEC Messtechnik GmbH209phytec PHYTEC Messtechnik GmbH
201picochip Picochip Ltd210picochip Picochip Ltd
211pixcir PIXCIR MICROELECTRONICS Co., Ltd
202plathome Plat'Home Co., Ltd.212plathome Plat'Home Co., Ltd.
203plda PLDA213plda PLDA
204pixcir PIXCIR MICROELECTRONICS Co., Ltd
205pulsedlight PulsedLight, Inc
206powervr PowerVR (deprecated, use img)214powervr PowerVR (deprecated, use img)
215pulsedlight PulsedLight, Inc
207qca Qualcomm Atheros, Inc.216qca Qualcomm Atheros, Inc.
208qcom Qualcomm Technologies, Inc217qcom Qualcomm Technologies, Inc
209qemu QEMU, a generic and open source machine emulator and virtualizer218qemu QEMU, a generic and open source machine emulator and virtualizer
@@ -231,12 +240,13 @@ sgx SGX Sensortech · 21 unmodified lines
231sharp Sharp Corporation240sharp Sharp Corporation
232si-en Si-En Technology Ltd.241si-en Si-En Technology Ltd.
233sigma Sigma Designs, Inc.242sigma Sigma Designs, Inc.
243sii Seiko Instruments, Inc.
234sil Silicon Image244sil Silicon Image
235silabs Silicon Laboratories245silabs Silicon Laboratories
246silead Silead Inc.
247silergy Silergy Corp.
236siliconmitus Silicon Mitus, Inc.248siliconmitus Silicon Mitus, Inc.
237simtek249simtek
238sii Seiko Instruments, Inc.
239silergy Silergy Corp.
240sirf SiRF Technology, Inc.250sirf SiRF Technology, Inc.
241sis Silicon Integrated Systems Corp.251sis Silicon Integrated Systems Corp.
242sitronix Sitronix Technology Corporation252sitronix Sitronix Technology Corporation
@@ -254,9 +264,12 @@ starry Starry Electronic Technology (ShenZhen) Co., LTD · 11 unmodified lines
254startek Startek264startek Startek
255ste ST-Ericsson265ste ST-Ericsson
256stericsson ST-Ericsson266stericsson ST-Ericsson
267summit Summit microelectronics
268sunchip Shenzhen Sunchip Technology Co., Ltd
269SUNW Sun Microsystems, Inc
270swir Sierra Wireless
257syna Synaptics Inc.271syna Synaptics Inc.
258synology Synology, Inc.272synology Synology, Inc.
259SUNW Sun Microsystems, Inc
260tbs TBS Technologies273tbs TBS Technologies
261tcg Trusted Computing Group274tcg Trusted Computing Group
262tcl Toby Churchill Ltd.275tcl Toby Churchill Ltd.
@@ -265,17 +278,19 @@ technologic Technologic Systems · 2 unmodified lines
265thine THine Electronics, Inc.278thine THine Electronics, Inc.
266ti Texas Instruments279ti Texas Instruments
267tlm Trusted Logic Mobility280tlm Trusted Logic Mobility
281topeet Topeet
268toradex Toradex AG282toradex Toradex AG
269toshiba Toshiba Corporation283toshiba Toshiba Corporation
270toumaz Toumaz284toumaz Toumaz
271tplink TP-LINK Technologies Co., Ltd.
272tpk TPK U.S.A. LLC285tpk TPK U.S.A. LLC
286tplink TP-LINK Technologies Co., Ltd.
287tpo TPO
273tronfy Tronfy288tronfy Tronfy
274tronsmart Tronsmart289tronsmart Tronsmart
275truly Truly Semiconductors Limited290truly Truly Semiconductors Limited
276tyan Tyan Computer Corporation291tyan Tyan Computer Corporation
277upisemi uPI Semiconductor Corp.
278uniwest United Western Technologies Corp (UniWest)292uniwest United Western Technologies Corp (UniWest)
293upisemi uPI Semiconductor Corp.
279urt United Radiant Technology Corporation294urt United Radiant Technology Corporation
280usi Universal Scientific Industrial Co., Ltd.295usi Universal Scientific Industrial Co., Ltd.
281v3 V3 Semiconductor296v3 V3 Semiconductor
@@ -293,7 +308,7 @@ x-powers X-Powers · 11 unmodified lines
293xes Extreme Engineering Solutions (X-ES)308xes Extreme Engineering Solutions (X-ES)
294xillybus Xillybus Ltd.309xillybus Xillybus Ltd.
295xlnx Xilinx310xlnx Xilinx
296zyxel ZyXEL Communications Corp.
297zarlink Zarlink Semiconductor311zarlink Zarlink Semiconductor
298zii Zodiac Inflight Innovations312zii Zodiac Inflight Innovations
299zte ZTE Corp.313zte ZTE Corp.
314zyxel ZyXEL Communications Corp.
Documentation/devicetree/bindings/watchdog/of-xilinx-wdt.txt+3−0
@@ -7,6 +7,8 @@ Required properties: · 6 unmodified lines
7- reg : Physical base address and size7- reg : Physical base address and size
8 8
9Optional properties:9Optional properties:
10- clocks : Input clock specifier. Refer to common clock
11 bindings.
10- clock-frequency : Frequency of clock in Hz12- clock-frequency : Frequency of clock in Hz
11- xlnx,wdt-enable-once : 0 - Watchdog can be restarted13- xlnx,wdt-enable-once : 0 - Watchdog can be restarted
12 1 - Watchdog can be enabled just once14 1 - Watchdog can be enabled just once
@@ -17,6 +19,7 @@ Example: · 4 unmodified lines
17axi-timebase-wdt@40100000 {19axi-timebase-wdt@40100000 {
18 clock-frequency = <50000000>;20 clock-frequency = <50000000>;
19 compatible = "xlnx,xps-timebase-wdt-1.00.a";21 compatible = "xlnx,xps-timebase-wdt-1.00.a";
22 clocks = <&clkc 15>;
20 reg = <0x40100000 0x10000>;23 reg = <0x40100000 0x10000>;
21 xlnx,wdt-enable-once = <0x0>;24 xlnx,wdt-enable-once = <0x0>;
22 xlnx,wdt-interval = <0x1b>;25 xlnx,wdt-interval = <0x1b>;
Documentation/devicetree/bindings/watchdog/st_lpc_wdt.txt+1−2
@@ -9,8 +9,7 @@ functionality. · 8 unmodified lines
9 9
10Required properties10Required properties
11 11
12- compatible : Must be one of: "st,stih407-lpc" "st,stih416-lpc"12- compatible : Should be: "st,stih407-lpc"
13 "st,stih415-lpc" "st,stid127-lpc"
14- reg : LPC registers base address + size13- reg : LPC registers base address + size
15- interrupts : LPC interrupt line number and associated flags14- interrupts : LPC interrupt line number and associated flags
16- clocks : Clock used by LPC device (See: ../clock/clock-bindings.txt)15- clocks : Clock used by LPC device (See: ../clock/clock-bindings.txt)
Documentation/devicetree/changesets.txt+5−14
@@ -21,20 +21,11 @@ a set of changes. No changes to the active tree are made at this point. · 20 unmodified lines
21All the change operations are recorded in the of_changeset 'entries'21All the change operations are recorded in the of_changeset 'entries'
22list.22list.
23 23
243. mutex_lock(of_mutex) - starts a changeset; The global of_mutex243. of_changeset_apply() - Apply the changes to the tree. Either the
25ensures there can only be one editor at a time.
26
274. of_changeset_apply() - Apply the changes to the tree. Either the
28entire changeset will get applied, or if there is an error the tree will25entire changeset will get applied, or if there is an error the tree will
29be restored to the previous state26be restored to the previous state. The core ensures proper serialization
30 27through locking. An unlocked version __of_changeset_apply is available,
315. mutex_unlock(of_mutex) - All operations complete, release the mutex28if needed.
32 29
33If a successfully applied changeset needs to be removed, it can be done30If a successfully applied changeset needs to be removed, it can be done
34with the following sequence.31with of_changeset_revert().
35
361. mutex_lock(of_mutex)
37
382. of_changeset_revert()
39
403. mutex_unlock(of_mutex)
Documentation/dmaengine/provider.txt+11−0
@@ -282,6 +282,17 @@ supported. · 281 unmodified lines
282 that is supposed to push the current282 that is supposed to push the current
283 transaction descriptor to a pending queue, waiting283 transaction descriptor to a pending queue, waiting
284 for issue_pending to be called.284 for issue_pending to be called.
285 - In this structure the function pointer callback_result can be
286 initialized in order for the submitter to be notified that a
287 transaction has completed. In the earlier code the function pointer
288 callback has been used. However it does not provide any status to the
289 transaction and will be deprecated. The result structure defined as
290 dmaengine_result that is passed in to callback_result has two fields:
291 + result: This provides the transfer result defined by
292 dmaengine_tx_result. Either success or some error
293 condition.
294 + residue: Provides the residue bytes of the transfer for those that
295 support residue.
285 296
286 * device_issue_pending297 * device_issue_pending
287 - Takes the first transaction descriptor in the pending queue,298 - Takes the first transaction descriptor in the pending queue,
Documentation/docutils.conf+7−0
@@ -0,0 +1,7 @@
1# -*- coding: utf-8 mode: conf-colon -*-
2#
3# docutils configuration file
4# http://docutils.sourceforge.net/docs/user/config.html
5
6[general]
7halt_level: severe
Documentation/driver-api/basics.rst+120−0
@@ -0,0 +1,120 @@
1Driver Basics
2=============
3
4Driver Entry and Exit points
5----------------------------
6
7.. kernel-doc:: include/linux/init.h
8 :internal:
9
10Atomic and pointer manipulation
11-------------------------------
12
13.. kernel-doc:: arch/x86/include/asm/atomic.h
14 :internal:
15
16Delaying, scheduling, and timer routines
17----------------------------------------
18
19.. kernel-doc:: include/linux/sched.h
20 :internal:
21
22.. kernel-doc:: kernel/sched/core.c
23 :export:
24
25.. kernel-doc:: kernel/sched/cpupri.c
26 :internal:
27
28.. kernel-doc:: kernel/sched/fair.c
29 :internal:
30
31.. kernel-doc:: include/linux/completion.h
32 :internal:
33
34.. kernel-doc:: kernel/time/timer.c
35 :export:
36
37Wait queues and Wake events
38---------------------------
39
40.. kernel-doc:: include/linux/wait.h
41 :internal:
42
43.. kernel-doc:: kernel/sched/wait.c
44 :export:
45
46High-resolution timers
47----------------------
48
49.. kernel-doc:: include/linux/ktime.h
50 :internal:
51
52.. kernel-doc:: include/linux/hrtimer.h
53 :internal:
54
55.. kernel-doc:: kernel/time/hrtimer.c
56 :export:
57
58Workqueues and Kevents
59----------------------
60
61.. kernel-doc:: include/linux/workqueue.h
62 :internal:
63
64.. kernel-doc:: kernel/workqueue.c
65 :export:
66
67Internal Functions
68------------------
69
70.. kernel-doc:: kernel/exit.c
71 :internal:
72
73.. kernel-doc:: kernel/signal.c
74 :internal:
75
76.. kernel-doc:: include/linux/kthread.h
77 :internal:
78
79.. kernel-doc:: kernel/kthread.c
80 :export:
81
82Kernel objects manipulation
83---------------------------
84
85.. kernel-doc:: lib/kobject.c
86 :export:
87
88Kernel utility functions
89------------------------
90
91.. kernel-doc:: include/linux/kernel.h
92 :internal:
93
94.. kernel-doc:: kernel/printk/printk.c
95 :export:
96
97.. kernel-doc:: kernel/panic.c
98 :export:
99
100.. kernel-doc:: kernel/sys.c
101 :export:
102
103.. kernel-doc:: kernel/rcu/srcu.c
104 :export:
105
106.. kernel-doc:: kernel/rcu/tree.c
107 :export:
108
109.. kernel-doc:: kernel/rcu/tree_plugin.h
110 :export:
111
112.. kernel-doc:: kernel/rcu/update.c
113 :export:
114
115Device Resource Management
116--------------------------
117
118.. kernel-doc:: drivers/base/devres.c
119 :export:
120
Documentation/driver-api/frame-buffer.rst+62−0
@@ -0,0 +1,62 @@
1Frame Buffer Library
2====================
3
4The frame buffer drivers depend heavily on four data structures. These
5structures are declared in include/linux/fb.h. They are fb_info,
6fb_var_screeninfo, fb_fix_screeninfo and fb_monospecs. The last
7three can be made available to and from userland.
8
9fb_info defines the current state of a particular video card. Inside
10fb_info, there exists a fb_ops structure which is a collection of
11needed functions to make fbdev and fbcon work. fb_info is only visible
12to the kernel.
13
14fb_var_screeninfo is used to describe the features of a video card
15that are user defined. With fb_var_screeninfo, things such as depth
16and the resolution may be defined.
17
18The next structure is fb_fix_screeninfo. This defines the properties
19of a card that are created when a mode is set and can't be changed
20otherwise. A good example of this is the start of the frame buffer
21memory. This "locks" the address of the frame buffer memory, so that it
22cannot be changed or moved.
23
24The last structure is fb_monospecs. In the old API, there was little
25importance for fb_monospecs. This allowed for forbidden things such as
26setting a mode of 800x600 on a fix frequency monitor. With the new API,
27fb_monospecs prevents such things, and if used correctly, can prevent a
28monitor from being cooked. fb_monospecs will not be useful until
29kernels 2.5.x.
30
31Frame Buffer Memory
32-------------------
33
34.. kernel-doc:: drivers/video/fbdev/core/fbmem.c
35 :export:
36
37Frame Buffer Colormap
38---------------------
39
40.. kernel-doc:: drivers/video/fbdev/core/fbcmap.c
41 :export:
42
43Frame Buffer Video Mode Database
44--------------------------------
45
46.. kernel-doc:: drivers/video/fbdev/core/modedb.c
47 :internal:
48
49.. kernel-doc:: drivers/video/fbdev/core/modedb.c
50 :export:
51
52Frame Buffer Macintosh Video Mode Database
53------------------------------------------
54
55.. kernel-doc:: drivers/video/fbdev/macmodes.c
56 :export:
57
58Frame Buffer Fonts
59------------------
60
61Refer to the file lib/fonts/fonts.c for more information.
62
Documentation/driver-api/hsi.rst+88−0
@@ -0,0 +1,88 @@
1High Speed Synchronous Serial Interface (HSI)
2=============================================
3
4Introduction
5---------------
6
7High Speed Syncronous Interface (HSI) is a fullduplex, low latency protocol,
8that is optimized for die-level interconnect between an Application Processor
9and a Baseband chipset. It has been specified by the MIPI alliance in 2003 and
10implemented by multiple vendors since then.
11
12The HSI interface supports full duplex communication over multiple channels
13(typically 8) and is capable of reaching speeds up to 200 Mbit/s.
14
15The serial protocol uses two signals, DATA and FLAG as combined data and clock
16signals and an additional READY signal for flow control. An additional WAKE
17signal can be used to wakeup the chips from standby modes. The signals are
18commonly prefixed by AC for signals going from the application die to the
19cellular die and CA for signals going the other way around.
20
21::
22
23 +------------+ +---------------+
24 | Cellular | | Application |
25 | Die | | Die |
26 | | - - - - - - CAWAKE - - - - - - >| |
27 | T|------------ CADATA ------------>|R |
28 | X|------------ CAFLAG ------------>|X |
29 | |<----------- ACREADY ------------| |
30 | | | |
31 | | | |
32 | |< - - - - - ACWAKE - - - - - - -| |
33 | R|<----------- ACDATA -------------|T |
34 | X|<----------- ACFLAG -------------|X |
35 | |------------ CAREADY ----------->| |
36 | | | |
37 | | | |
38 +------------+ +---------------+
39
40HSI Subsystem in Linux
41-------------------------
42
43In the Linux kernel the hsi subsystem is supposed to be used for HSI devices.
44The hsi subsystem contains drivers for hsi controllers including support for
45multi-port controllers and provides a generic API for using the HSI ports.
46
47It also contains HSI client drivers, which make use of the generic API to
48implement a protocol used on the HSI interface. These client drivers can
49use an arbitrary number of channels.
50
51hsi-char Device
52------------------
53
54Each port automatically registers a generic client driver called hsi_char,
55which provides a charecter device for userspace representing the HSI port.
56It can be used to communicate via HSI from userspace. Userspace may
57configure the hsi_char device using the following ioctl commands:
58
59HSC_RESET
60 flush the HSI port
61
62HSC_SET_PM

26 more lines aren’t shown here.

Documentation/driver-api/i2c.rst+46−0

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

Documentation/driver-api/index.rst+26−0

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

Documentation/driver-api/infrastructure.rst+169−0

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

Documentation/driver-api/input.rst+51−0

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

Documentation/driver-api/message-based.rst+12−0

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

Documentation/driver-api/miscellaneous.rst+50−0

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

Documentation/driver-api/sound.rst+54−0

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

Documentation/driver-api/spi.rst+53−0

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

Documentation/driver-model/device.txt+1−1

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

Documentation/driver-model/devres.txt+8−0

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

Documentation/email-clients.txt+117−97

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

Documentation/features/perf/kprobes-event/arch-support.txt+1−1

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

Documentation/filesystems/00-INDEX+0−2

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

Documentation/filesystems/Locking+20−12

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

Documentation/filesystems/Makefile+0−5

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

Documentation/filesystems/autofs4-mount-control.txt+42−29

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

Documentation/filesystems/autofs4.txt+4−4

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

Documentation/filesystems/ceph.txt+4−0

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

Documentation/filesystems/dax.txt+9−6

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

Documentation/filesystems/directory-locking+1−1

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

Documentation/filesystems/f2fs.txt+1−0

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

Documentation/filesystems/porting+6−2

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

Documentation/filesystems/proc.txt+13−27

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

Documentation/filesystems/vfs.txt+33−23

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

Documentation/filesystems/xfs.txt+123−0

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

Documentation/gcov.txt+0−257

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

Documentation/gpio/board.txt+3−3

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

Documentation/gpio/driver.txt+6−0

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

Documentation/gpio/gpio-legacy.txt+4−12

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

Documentation/gpu/conf.py+5−0

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

Documentation/gpu/drm-internals.rst+6−3

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

Documentation/gpu/drm-kms-helpers.rst+120−101

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

Documentation/gpu/drm-kms.rst+118−385

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

Documentation/gpu/drm-mm.rst+29−29

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

Documentation/gpu/drm-uapi.rst+107−0

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

Documentation/gpu/i915.rst+3−0

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

Documentation/gpu/index.rst+8−0

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

Documentation/gpu/kms-properties.csv+0−21

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

Documentation/gpu/vgaarbiter.rstrenamed from Documentation/vgaarbiter.txt+80−81

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

Documentation/hid/intel-ish-hid.txt+454−0

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

Documentation/hsi.txt+0−75

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

Documentation/hwmon/adt7470+17−0

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

Documentation/hwmon/hwmon-kernel-api.txt+229−2

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

Documentation/hwmon/max6650+1−0

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

Documentation/hwmon/ucd9000+10−2

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

Documentation/hwmon/xgene-hwmon+30−0

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

Documentation/i2c/slave-interface+5−0

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

Documentation/ia64/Makefile+0−5

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

Documentation/iio/iio_configfs.txt+2−2

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

Documentation/index.rst+5−7

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

Documentation/infiniband/sysfs.txt+30−0

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

Documentation/input/alps.txt+57−0

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

Documentation/ioctl/botching-up-ioctls.txt+8−5

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

Documentation/kasan.txt+0−171

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

Documentation/kbuild/kconfig-language.txt+38−1

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

Documentation/kbuild/makefiles.txt+16−0

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

Documentation/kdump/kdump.txt+9−0

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

Documentation/kernel-docs.txt+648−727

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

Documentation/kernel-documentation.rst+31−0

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

Documentation/kernel-parameters.txt+105−30

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

Documentation/kmemcheck.txt+0−754

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

Documentation/ko_KR/memory-barriers.txt+3135−0

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

Documentation/kprobes.txt+10−0

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

Documentation/kselftest.txt+3−2

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

Documentation/laptops/00-INDEX+0−4

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

Documentation/laptops/Makefile+0−5

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

Documentation/laptops/laptop-mode.txt+1−1

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

Documentation/leds/leds-mlxcpld.txt+110−0

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

Documentation/leds/ledtrig-oneshot.txt+2−18

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

Documentation/leds/ledtrig-usbport.txt+41−0

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

Documentation/livepatch/module-elf-format.txt+16−4

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

Documentation/locking/lglock.txt+0−166

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

Documentation/media/Makefile+2−1

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

Documentation/media/audio.h.rst.exceptions+3−3

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

Documentation/media/ca.h.rst.exceptions+16−16

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

Documentation/media/cec.h.rst.exceptions+0−6

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

Documentation/media/conf.py+10−0

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

Documentation/media/conf_nitpick.py+109−0

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

Documentation/media/dmx.h.rst.exceptions+44−41

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

Documentation/media/frontend.h.rst.exceptions+4−4

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

Documentation/media/index.rst+24−0

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

Documentation/media/intro.rst+1−1

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

Documentation/media/kapi/cec-core.rstrenamed from Documentation/cec.txt+94−53

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

Documentation/media/kapi/dtv-core.rst+37−3

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

Documentation/media/kapi/mc-core.rst+13−12

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

Documentation/media/kapi/v4l2-dev.rst+6−4

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

Documentation/media/kapi/v4l2-event.rst+3−3

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

Documentation/media/kapi/v4l2-fh.rst+2−2

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

Documentation/media/kapi/v4l2-subdev.rst+6−17

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

Documentation/media/media_api_files/typical_media_device.pdf+0−0

Binary file not shown.

Documentation/media/media_kapi.rst+1−0

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

Documentation/media/net.h.rst.exceptions+2−2

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

Documentation/media/uapi/cec/cec-func-close.rst+6−3

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

Documentation/media/uapi/cec/cec-func-ioctl.rst+7−4

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

Documentation/media/uapi/cec/cec-func-open.rst+6−3

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

Documentation/media/uapi/cec/cec-func-poll.rst+15−3

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

Documentation/media/uapi/cec/cec-intro.rst+3−1

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

Documentation/media/uapi/cec/cec-ioc-adap-g-caps.rst+9−7

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

Documentation/media/uapi/cec/cec-ioc-adap-g-log-addrs.rst+41−11

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

Documentation/media/uapi/cec/cec-ioc-adap-g-phys-addr.rst+10−7

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

Documentation/media/uapi/cec/cec-ioc-dqevent.rst+25−21

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

Documentation/media/uapi/cec/cec-ioc-g-mode.rst+13−7

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

Documentation/media/uapi/cec/cec-ioc-receive.rst+24−14

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

Documentation/media/uapi/dvb/audio-bilingual-channel-select.rst+5−10

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

Documentation/media/uapi/dvb/audio-channel-select.rst+5−9

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

Documentation/media/uapi/dvb/audio-clear-buffer.rst+3−9

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

Documentation/media/uapi/dvb/audio-continue.rst+3−8

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

Documentation/media/uapi/dvb/audio-fclose.rst+3−1

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

Documentation/media/uapi/dvb/audio-fopen.rst+5−1

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

Documentation/media/uapi/dvb/audio-fwrite.rst+3−1

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

Documentation/media/uapi/dvb/audio-get-capabilities.rst+5−9

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

Documentation/media/uapi/dvb/audio-get-pts.rst+5−9

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

Documentation/media/uapi/dvb/audio-get-status.rst+5−9

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

Documentation/media/uapi/dvb/audio-pause.rst+3−8

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

Documentation/media/uapi/dvb/audio-play.rst+3−8

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

Documentation/media/uapi/dvb/audio-select-source.rst+5−9

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

Documentation/media/uapi/dvb/audio-set-attributes.rst+6−10

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

Documentation/media/uapi/dvb/audio-set-av-sync.rst+7−17

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

Documentation/media/uapi/dvb/audio-set-bypass-mode.rst+7−18

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

Documentation/media/uapi/dvb/audio-set-ext-id.rst+5−10

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

Documentation/media/uapi/dvb/audio-set-id.rst+5−10

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

Documentation/media/uapi/dvb/audio-set-karaoke.rst+5−9

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

Documentation/media/uapi/dvb/audio-set-mixer.rst+5−10

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

Documentation/media/uapi/dvb/audio-set-mute.rst+7−17

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

Documentation/media/uapi/dvb/audio-set-streamtype.rst+5−9

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

Documentation/media/uapi/dvb/audio-stop.rst+3−8

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

Documentation/media/uapi/dvb/audio_data_types.rst+7−30

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

Documentation/media/uapi/dvb/ca-fclose.rst+5−13

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

Documentation/media/uapi/dvb/ca-fopen.rst+20−31

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

Documentation/media/uapi/dvb/ca-get-cap.rst+31−20

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

Documentation/media/uapi/dvb/ca-get-descr-info.rst+24−20

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

Documentation/media/uapi/dvb/ca-get-msg.rst+31−16

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

Documentation/media/uapi/dvb/ca-get-slot-info.rst+79−13

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

Documentation/media/uapi/dvb/ca-reset.rst+5−19

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

Documentation/media/uapi/dvb/ca-send-msg.rst+7−23

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

Documentation/media/uapi/dvb/ca-set-descr.rst+7−23

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

Documentation/media/uapi/dvb/ca-set-pid.rst+19−18

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

Documentation/media/uapi/dvb/ca_data_types.rst+6−6

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

Documentation/media/uapi/dvb/dmx-add-pid.rst+6−22

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

Documentation/media/uapi/dvb/dmx-fclose.rst+4−12

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

Documentation/media/uapi/dvb/dmx-fopen.rst+18−27

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

Documentation/media/uapi/dvb/dmx-fread.rst+10−24

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

Documentation/media/uapi/dvb/dmx-fwrite.rst+10−24

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

Documentation/media/uapi/dvb/dmx-get-caps.rst+7−25

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

Documentation/media/uapi/dvb/dmx-get-event.rst+6−22

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

Documentation/media/uapi/dvb/dmx-get-pes-pids.rst+7−24

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

Documentation/media/uapi/dvb/dmx-get-stc.rst+6−25

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

Documentation/media/uapi/dvb/dmx-remove-pid.rst+6−22

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

Documentation/media/uapi/dvb/dmx-set-buffer-size.rst+6−23

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

Documentation/media/uapi/dvb/dmx-set-filter.rst+6−22

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

Documentation/media/uapi/dvb/dmx-set-pes-filter.rst+7−22

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

Documentation/media/uapi/dvb/dmx-set-source.rst+7−22

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

Documentation/media/uapi/dvb/dmx-start.rst+5−19

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

Documentation/media/uapi/dvb/dmx-stop.rst+4−18

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

Documentation/media/uapi/dvb/dmx_types.rst+15−25

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

Documentation/media/uapi/dvb/dtv-fe-stats.rst+1−1

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

Documentation/media/uapi/dvb/dtv-properties.rst+1−1

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

Documentation/media/uapi/dvb/dtv-property.rst+1−1

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

Documentation/media/uapi/dvb/dtv-stats.rst+1−1

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

Documentation/media/uapi/dvb/dvb-fe-read-status.rst+3−1

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

Documentation/media/uapi/dvb/dvb-frontend-event.rst+1−1

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

Documentation/media/uapi/dvb/dvb-frontend-parameters.rst+5−5

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

Documentation/media/uapi/dvb/dvbapi.rst+3−1

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

Documentation/media/uapi/dvb/dvbproperty.rst+4−2

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

Documentation/media/uapi/dvb/examples.rst+3−1

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

Documentation/media/uapi/dvb/fe-bandwidth-t.rst+1−4

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

Documentation/media/uapi/dvb/fe-diseqc-recv-slave-reply.rst+5−8

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

Documentation/media/uapi/dvb/fe-diseqc-reset-overload.rst+2−5

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

Documentation/media/uapi/dvb/fe-diseqc-send-burst.rst+4−11

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

Documentation/media/uapi/dvb/fe-diseqc-send-master-cmd.rst+6−8

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

Documentation/media/uapi/dvb/fe-dishnetwork-send-legacy-cmd.rst+6−10

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

Documentation/media/uapi/dvb/fe-enable-high-lnb-voltage.rst+2−4

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

Documentation/media/uapi/dvb/fe-get-event.rst+8−27

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

Documentation/media/uapi/dvb/fe-get-frontend.rst+8−22

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

Documentation/media/uapi/dvb/fe-get-info.rst+11−13

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

Documentation/media/uapi/dvb/fe-get-property.rst+6−5

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

Documentation/media/uapi/dvb/fe-read-ber.rst+8−22

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

Documentation/media/uapi/dvb/fe-read-signal-strength.rst+7−24

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

Documentation/media/uapi/dvb/fe-read-snr.rst+7−22

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

Documentation/media/uapi/dvb/fe-read-status.rst+10−9

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

Documentation/media/uapi/dvb/fe-read-uncorrected-blocks.rst+7−24

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

Documentation/media/uapi/dvb/fe-set-frontend-tune-mode.rst+2−4

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

Documentation/media/uapi/dvb/fe-set-frontend.rst+8−23

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

Documentation/media/uapi/dvb/fe-set-tone.rst+4−11

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

Documentation/media/uapi/dvb/fe-set-voltage.rst+4−6

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

Documentation/media/uapi/dvb/fe-type-t.rst+5−5

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

Documentation/media/uapi/dvb/fe_property_parameters.rst+29−48

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

Documentation/media/uapi/dvb/frontend-stat-properties.rst+1−1

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

Documentation/media/uapi/dvb/frontend.rst+3−1

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

Documentation/media/uapi/dvb/frontend_f_close.rst+3−3

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

Documentation/media/uapi/dvb/frontend_f_open.rst+2−2

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

Documentation/media/uapi/dvb/net-add-if.rst+5−13

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

Documentation/media/uapi/dvb/net-get-if.rst+5−7

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

Documentation/media/uapi/dvb/net-remove-if.rst+2−4

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

Documentation/media/uapi/dvb/video-clear-buffer.rst+3−1

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

Documentation/media/uapi/dvb/video-command.rst+33−1

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

Documentation/media/uapi/dvb/video-continue.rst+3−1

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

Documentation/media/uapi/dvb/video-fast-forward.rst+3−1

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

Documentation/media/uapi/dvb/video-fclose.rst+2−1

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

Documentation/media/uapi/dvb/video-fopen.rst+4−1

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

Documentation/media/uapi/dvb/video-freeze.rst+3−1

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

Documentation/media/uapi/dvb/video-fwrite.rst+2−1

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

Documentation/media/uapi/dvb/video-get-capabilities.rst+3−1

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

Documentation/media/uapi/dvb/video-get-event.rst+20−1

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

Documentation/media/uapi/dvb/video-get-frame-count.rst+3−1

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

Documentation/media/uapi/dvb/video-get-frame-rate.rst+3−1

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

Documentation/media/uapi/dvb/video-get-navi.rst+11−1

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

Documentation/media/uapi/dvb/video-get-pts.rst+3−1

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

Documentation/media/uapi/dvb/video-get-size.rst+13−1

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

Documentation/media/uapi/dvb/video-get-status.rst+14−1

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

Documentation/media/uapi/dvb/video-play.rst+3−1

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

Documentation/media/uapi/dvb/video-select-source.rst+13−1

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

Documentation/media/uapi/dvb/video-set-attributes.rst+19−1

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

Documentation/media/uapi/dvb/video-set-blank.rst+3−1

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

Documentation/media/uapi/dvb/video-set-display-format.rst+3−1

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

Documentation/media/uapi/dvb/video-set-format.rst+12−1

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

Documentation/media/uapi/dvb/video-set-highlight.rst+27−1

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

Documentation/media/uapi/dvb/video-set-id.rst+3−1

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

Documentation/media/uapi/dvb/video-set-spu-palette.rst+11−1

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

Documentation/media/uapi/dvb/video-set-spu.rst+12−1

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

Documentation/media/uapi/dvb/video-set-streamtype.rst+3−1

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

Documentation/media/uapi/dvb/video-set-system.rst+3−1

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

Documentation/media/uapi/dvb/video-slowmotion.rst+3−1

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

Documentation/media/uapi/dvb/video-stillpicture.rst+3−1

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

Documentation/media/uapi/dvb/video-stop.rst+3−1

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

Documentation/media/uapi/dvb/video-try-command.rst+3−1

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

Documentation/media/uapi/dvb/video_types.rst+8−8

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

Documentation/media/uapi/gen-errors.rst+2−0

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

Documentation/media/uapi/mediactl/media-func-close.rst+3−3

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

Documentation/media/uapi/mediactl/media-func-ioctl.rst+3−3

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

Documentation/media/uapi/mediactl/media-func-open.rst+2−2

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

Documentation/media/uapi/mediactl/media-ioc-device-info.rst+6−6

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

Documentation/media/uapi/mediactl/media-ioc-enum-entities.rst+7−7

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

Documentation/media/uapi/mediactl/media-ioc-enum-links.rst+19−15

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

Documentation/media/uapi/mediactl/media-ioc-g-topology.rst+16−12

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

Documentation/media/uapi/mediactl/media-ioc-setup-link.rst+4−6

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

Documentation/media/uapi/mediactl/media-types.rst+30−10

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

Documentation/media/uapi/rc/lirc-get-features.rst+2−4

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

Documentation/media/uapi/rc/lirc-get-length.rst+2−4

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

Documentation/media/uapi/rc/lirc-get-rec-mode.rst+6−5

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

Documentation/media/uapi/rc/lirc-get-rec-resolution.rst+2−4

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

Documentation/media/uapi/rc/lirc-get-send-mode.rst+5−4

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

Documentation/media/uapi/rc/lirc-get-timeout.rst+5−4

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

Documentation/media/uapi/rc/lirc-read.rst+5−2

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

Documentation/media/uapi/rc/lirc-set-measure-carrier-mode.rst+2−4

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

Documentation/media/uapi/rc/lirc-set-rec-carrier-range.rst+2−4

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

Documentation/media/uapi/rc/lirc-set-rec-carrier.rst+2−4

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

Documentation/media/uapi/rc/lirc-set-rec-timeout-reports.rst+2−4

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

Documentation/media/uapi/rc/lirc-set-rec-timeout.rst+2−4

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

Documentation/media/uapi/rc/lirc-set-send-carrier.rst+2−4

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

Documentation/media/uapi/rc/lirc-set-send-duty-cycle.rst+2−4

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

Documentation/media/uapi/rc/lirc-set-transmitter-mask.rst+2−4

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

Documentation/media/uapi/rc/lirc-set-wideband-receiver.rst+5−5

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

Documentation/media/uapi/rc/lirc-write.rst+5−3

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

Documentation/media/uapi/rc/rc-tables.rst+2−0

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

Documentation/media/uapi/v4l/audio.rst+9−7

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

Documentation/media/uapi/v4l/buffer.rst+543−861

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

Documentation/media/uapi/v4l/control.rst+39−100

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

Documentation/media/uapi/v4l/crop.rst+16−10

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

Documentation/media/uapi/v4l/dev-capture.rst+8−8

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

Documentation/media/uapi/v4l/dev-codec.rst+3−1

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

Documentation/media/uapi/v4l/dev-osd.rst+14−12

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

Documentation/media/uapi/v4l/dev-output.rst+9−9

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

Documentation/media/uapi/v4l/dev-overlay.rst+19−15

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

Documentation/media/uapi/v4l/dev-radio.rst+1−1

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

Documentation/media/uapi/v4l/dev-raw-vbi.rst+110−157

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

Documentation/media/uapi/v4l/dev-raw-vbi_files/vbi_525.pdf+0−0

Binary file not shown.

Documentation/media/uapi/v4l/dev-raw-vbi_files/vbi_625.pdf+0−0

Binary file not shown.

Documentation/media/uapi/v4l/dev-rds.rst+72−143

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

Documentation/media/uapi/v4l/dev-sdr.rst+22−35

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

Documentation/media/uapi/v4l/dev-sliced-vbi.rst+309−475

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

Documentation/media/uapi/v4l/dev-subdev.rst+49−84

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

Documentation/media/uapi/v4l/dev-touch.rst+56−0

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

Documentation/media/uapi/v4l/devices.rst+1−0

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

Documentation/media/uapi/v4l/diff-v4l.rst+246−514

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

Documentation/media/uapi/v4l/dmabuf.rst+4−4

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

Documentation/media/uapi/v4l/extended-controls.rst+1110−2221

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

Documentation/media/uapi/v4l/field-order.rst+74−122

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

Documentation/media/uapi/v4l/format.rst+1−1

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

Documentation/media/uapi/v4l/func-close.rst+2−2

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

Documentation/media/uapi/v4l/func-ioctl.rst+2−2

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

Documentation/media/uapi/v4l/func-mmap.rst+9−7

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

Documentation/media/uapi/v4l/func-munmap.rst+4−4

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

Documentation/media/uapi/v4l/func-open.rst+2−2

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

Documentation/media/uapi/v4l/func-poll.rst+2−2

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

Documentation/media/uapi/v4l/func-read.rst+5−3

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

Documentation/media/uapi/v4l/func-select.rst+16−2

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

Documentation/media/uapi/v4l/func-write.rst+5−3

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

Documentation/media/uapi/v4l/hist-v4l2.rst+148−261

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

Documentation/media/uapi/v4l/libv4l-introduction.rst+46−31

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

Documentation/media/uapi/v4l/mmap.rst+6−6

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

Documentation/media/uapi/v4l/pixfmt-002.rst+120−183

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

Documentation/media/uapi/v4l/pixfmt-003.rst+68−140

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

Documentation/media/uapi/v4l/pixfmt-006.rst+102−241

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

Documentation/media/uapi/v4l/pixfmt-007.rst+301−453

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

Documentation/media/uapi/v4l/pixfmt-013.rst+73−115

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

Documentation/media/uapi/v4l/pixfmt-grey.rst+20−53

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

Documentation/media/uapi/v4l/pixfmt-indexed.rst+28−54

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

Documentation/media/uapi/v4l/pixfmt-m420.rst+80−173

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

Documentation/media/uapi/v4l/pixfmt-nv12.rst+80−172

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

Documentation/media/uapi/v4l/pixfmt-nv12m.rst+82−176

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

Documentation/media/uapi/v4l/pixfmt-nv12mt.rst+2−4

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

Documentation/media/uapi/v4l/pixfmt-nv12mt_files/nv12mt.gif+0−0

Binary file not shown.

Documentation/media/uapi/v4l/pixfmt-nv12mt_files/nv12mt.png+0−0

Binary file not shown.

Documentation/media/uapi/v4l/pixfmt-nv12mt_files/nv12mt_example.gif+0−0

Binary file not shown.

Documentation/media/uapi/v4l/pixfmt-nv12mt_files/nv12mt_example.png+0−0

Binary file not shown.

Documentation/media/uapi/v4l/pixfmt-nv16.rst+104−221

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

Documentation/media/uapi/v4l/pixfmt-nv16m.rst+105−225

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

Documentation/media/uapi/v4l/pixfmt-nv24.rst+56−132

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

Documentation/media/uapi/v4l/pixfmt-packed-rgb.rst+786−1404

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

Documentation/media/uapi/v4l/pixfmt-packed-yuv.rst+173−296

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

Documentation/media/uapi/v4l/pixfmt-reserved.rst+221−326

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

Documentation/media/uapi/v4l/pixfmt-rgb.rst+0−3

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

Documentation/media/uapi/v4l/pixfmt-sbggr16.rst+36−88

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

Documentation/media/uapi/v4l/pixfmt-sbggr8.rst+0−81

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

Documentation/media/uapi/v4l/pixfmt-sdr-cs08.rst+4−17

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

Documentation/media/uapi/v4l/pixfmt-sdr-cs14le.rst+6−20

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

Documentation/media/uapi/v4l/pixfmt-sdr-cu08.rst+4−17

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

Documentation/media/uapi/v4l/pixfmt-sdr-cu16le.rst+6−19

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

Documentation/media/uapi/v4l/pixfmt-sdr-ru12le.rst+4−10

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

Documentation/media/uapi/v4l/pixfmt-sgbrg8.rst+0−81

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

Documentation/media/uapi/v4l/pixfmt-sgrbg8.rst+0−81

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

Documentation/media/uapi/v4l/pixfmt-srggb10.rst+45−89

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

Documentation/media/uapi/v4l/pixfmt-srggb10alaw8.rst+0−2

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

Documentation/media/uapi/v4l/pixfmt-srggb10p.rst+42−67

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

Documentation/media/uapi/v4l/pixfmt-srggb12.rst+40−84

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

Documentation/media/uapi/v4l/pixfmt-srggb8.rst+33−60

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

Documentation/media/uapi/v4l/pixfmt-tch-td08.rst+52−0

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

Documentation/media/uapi/v4l/pixfmt-tch-td16.rst+67−0

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

Documentation/media/uapi/v4l/pixfmt-tch-tu08.rst+50−0

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

Documentation/media/uapi/v4l/pixfmt-tch-tu16.rst+66−0

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

Documentation/media/uapi/v4l/pixfmt-uv8.rst+21−50

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

Documentation/media/uapi/v4l/pixfmt-uyvy.rst+72−159

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

Documentation/media/uapi/v4l/pixfmt-vyuy.rst+72−159

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

Documentation/media/uapi/v4l/pixfmt-y10.rst+37−82

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

Documentation/media/uapi/v4l/pixfmt-y10b.rst+5−17

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

Documentation/media/uapi/v4l/pixfmt-y12.rst+37−82

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

Documentation/media/uapi/v4l/pixfmt-y12i.rst+3−11

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

Documentation/media/uapi/v4l/pixfmt-y16-be.rst+40−83

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

Documentation/media/uapi/v4l/pixfmt-y16.rst+40−83

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

Documentation/media/uapi/v4l/pixfmt-y41p.rst+108−231

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

Documentation/media/uapi/v4l/pixfmt-y8i.rst+37−82

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

Documentation/media/uapi/v4l/pixfmt-yuv410.rst+75−156

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

Documentation/media/uapi/v4l/pixfmt-yuv411p.rst+67−166

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

Documentation/media/uapi/v4l/pixfmt-yuv420.rst+90−186

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

Documentation/media/uapi/v4l/pixfmt-yuv420m.rst+92−194

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

Documentation/media/uapi/v4l/pixfmt-yuv422m.rst+82−199

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

Documentation/media/uapi/v4l/pixfmt-yuv422p.rst+80−191

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

Documentation/media/uapi/v4l/pixfmt-yuv444m.rst+88−213

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

Documentation/media/uapi/v4l/pixfmt-yuyv.rst+77−164

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

Documentation/media/uapi/v4l/pixfmt-yvyu.rst+72−159

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

Documentation/media/uapi/v4l/pixfmt-z16.rst+37−82

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

Documentation/media/uapi/v4l/pixfmt.rst+3−2

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

Documentation/media/uapi/v4l/planar-apis.rst+5−5

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

Documentation/media/uapi/v4l/rw.rst+1−1

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

Documentation/media/uapi/v4l/selection-api-005.rst+5−5

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

Documentation/media/uapi/v4l/standard.rst+7−5

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

Documentation/media/uapi/v4l/streaming-par.rst+1−1

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

Documentation/media/uapi/v4l/subdev-formats.rst+6341−11507

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

Documentation/media/uapi/v4l/tch-formats.rst+18−0

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

Documentation/media/uapi/v4l/tuner.rst+10−8

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

Documentation/media/uapi/v4l/userp.rst+7−5

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

Documentation/media/uapi/v4l/v4l2-selection-flags.rst+29−56

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

Documentation/media/uapi/v4l/v4l2-selection-targets.rst+56−117

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

Documentation/media/uapi/v4l/v4l2.rst+6−6

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

Documentation/media/uapi/v4l/video.rst+1−1

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

Documentation/media/uapi/v4l/vidioc-create-bufs.rst+31−56

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

Documentation/media/uapi/v4l/vidioc-cropcap.rst+55−90

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

Documentation/media/uapi/v4l/vidioc-dbg-g-chip-info.rst+45−90

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

Documentation/media/uapi/v4l/vidioc-dbg-g-register.rst+44−90

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

Documentation/media/uapi/v4l/vidioc-decoder-cmd.rst+132−193

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

Documentation/media/uapi/v4l/vidioc-dqevent.rst+269−453

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

Documentation/media/uapi/v4l/vidioc-dv-timings-cap.rst+89−178

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

Documentation/media/uapi/v4l/vidioc-encoder-cmd.rst+60−94

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

Documentation/media/uapi/v4l/vidioc-enum-dv-timings.rst+29−44

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

Documentation/media/uapi/v4l/vidioc-enum-fmt.rst+64−101

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

Documentation/media/uapi/v4l/vidioc-enum-frameintervals.rst+68−138

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

Documentation/media/uapi/v4l/vidioc-enum-framesizes.rst+80−163

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

Documentation/media/uapi/v4l/vidioc-enum-freq-bands.rst+76−126

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

Documentation/media/uapi/v4l/vidioc-enumaudio.rst+4−6

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

Documentation/media/uapi/v4l/vidioc-enumaudioout.rst+7−7

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

Documentation/media/uapi/v4l/vidioc-enuminput.rst+152−286

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

Documentation/media/uapi/v4l/vidioc-enumoutput.rst+81−147

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

Documentation/media/uapi/v4l/vidioc-enumstd.rst+118−207

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

Documentation/media/uapi/v4l/vidioc-expbuf.rst+38−68

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

Documentation/media/uapi/v4l/vidioc-g-audio.rst+45−80

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

Documentation/media/uapi/v4l/vidioc-g-audioout.rst+32−54

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

Documentation/media/uapi/v4l/vidioc-g-crop.rst+22−28

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

Documentation/media/uapi/v4l/vidioc-g-ctrl.rst+18−25

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

Documentation/media/uapi/v4l/vidioc-g-dv-timings.rst+173−318

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

Documentation/media/uapi/v4l/vidioc-g-edid.rst+42−56

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

Documentation/media/uapi/v4l/vidioc-g-enc-index.rst+63−125

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

Documentation/media/uapi/v4l/vidioc-g-ext-ctrls.rst+235−354

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

Documentation/media/uapi/v4l/vidioc-g-fbuf.rst+239−385

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

Documentation/media/uapi/v4l/vidioc-g-fmt.rst+57−96

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

Documentation/media/uapi/v4l/vidioc-g-frequency.rst+36−55

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

Documentation/media/uapi/v4l/vidioc-g-input.rst+6−5

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

Documentation/media/uapi/v4l/vidioc-g-jpegcomp.rst+52−110

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

Documentation/media/uapi/v4l/vidioc-g-modulator.rst+112−175

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

Documentation/media/uapi/v4l/vidioc-g-output.rst+6−5

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

Documentation/media/uapi/v4l/vidioc-g-parm.rst+163−250

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

Documentation/media/uapi/v4l/vidioc-g-priority.rst+31−55

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

Documentation/media/uapi/v4l/vidioc-g-selection.rst+43−58

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

Documentation/media/uapi/v4l/vidioc-g-sliced-vbi-cap.rst+129−211

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

Documentation/media/uapi/v4l/vidioc-g-std.rst+6−7

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

Documentation/media/uapi/v4l/vidioc-g-tuner.rst+346−598

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

Documentation/media/uapi/v4l/vidioc-log-status.rst+4−1

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

Documentation/media/uapi/v4l/vidioc-overlay.rst+2−4

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

Documentation/media/uapi/v4l/vidioc-prepare-buf.rst+3−5

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

Documentation/media/uapi/v4l/vidioc-qbuf.rst+18−15

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

Documentation/media/uapi/v4l/vidioc-query-dv-timings.rst+9−6

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

Documentation/media/uapi/v4l/vidioc-querybuf.rst+9−11

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

Documentation/media/uapi/v4l/vidioc-querycap.rst+208−373

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

Documentation/media/uapi/v4l/vidioc-queryctrl.rst+385−635

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

Documentation/media/uapi/v4l/vidioc-querystd.rst+5−5

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

Documentation/media/uapi/v4l/vidioc-reqbufs.rst+23−43

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

Documentation/media/uapi/v4l/vidioc-s-hw-freq-seek.rst+53−93

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

Documentation/media/uapi/v4l/vidioc-streamon.rst+9−6

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

Documentation/media/uapi/v4l/vidioc-subdev-enum-frame-interval.rst+33−74

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

Documentation/media/uapi/v4l/vidioc-subdev-enum-frame-size.rst+37−82

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

Documentation/media/uapi/v4l/vidioc-subdev-enum-mbus-code.rst+25−50

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

Documentation/media/uapi/v4l/vidioc-subdev-g-crop.rst+24−43

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

Documentation/media/uapi/v4l/vidioc-subdev-g-fmt.rst+33−58

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

Documentation/media/uapi/v4l/vidioc-subdev-g-frame-interval.rst+21−34

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

Documentation/media/uapi/v4l/vidioc-subdev-g-selection.rst+29−56

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

Documentation/media/uapi/v4l/vidioc-subscribe-event.rst+52−75

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

Documentation/media/v4l-drivers/bttv.rst+1−0

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

Documentation/media/v4l-drivers/cpia2.rst+3−0

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

Documentation/media/v4l-drivers/cx23885-cardlist.rst+1−0

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

Documentation/media/v4l-drivers/fourcc.rst+1−1

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

Documentation/media/v4l-drivers/si476x.rst+62−54

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

Documentation/media/v4l-drivers/zr364xx.rst+1−1

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

Documentation/media/video.h.rst.exceptions+10−10

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

Documentation/media/videodev2.h.rst.exceptions+108−102

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

Documentation/memory-barriers.txt+3−2

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

Documentation/mic/Makefile+0−1

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

Documentation/mic/mpssd/Makefile+0−21

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

Documentation/misc-devices/Makefile+0−1

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

Documentation/misc-devices/mei/Makefile+0−5

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

Documentation/networking/00-INDEX+2−2

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

Documentation/networking/Makefile+0−1

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

Documentation/networking/batman-adv.txt+11−6

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

Documentation/networking/dsa/dsa.txt+28−5

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

Documentation/networking/ena.txt+305−0

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

Documentation/networking/ip-sysctl.txt+23−22

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

Documentation/networking/ipvlan.txt+6−1

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

Documentation/networking/rxrpc.txt+46−44

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

Documentation/networking/strparser.txt+136−0

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

Documentation/networking/switchdev.txt+18−22

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

Documentation/networking/timestamping/Makefile+0−14

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

Documentation/pcmcia/Makefile+0−7

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

Documentation/pcmcia/devicetable.txt+2−2

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

Documentation/perf/xgene-pmu.txt+48−0

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

Documentation/power/power_supply_class.txt+2−2

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

Documentation/powerpc/cxlflash.txt+39−5

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

Documentation/powerpc/syscall64-abi.txt+105−0

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

Documentation/prctl/Makefile+0−10

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

Documentation/ptp/Makefile+0−8

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

Documentation/remoteproc.txt+3−3

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

Documentation/scheduler/sched-deadline.txt+18−0

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

Documentation/scsi/00-INDEX+0−2

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

Documentation/scsi/dtc3x80.txt+0−43

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

Documentation/scsi/g_NCR5380.txt+21−13

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

Documentation/scsi/in2000.txt+0−202

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

Documentation/scsi/scsi-parameters.txt+0−20

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

Documentation/scsi/smartpqi.txt+80−0

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

Documentation/serial/serial-rs485.txt+2−3

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

Documentation/sphinx-static/theme_overrides.css+14−1

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

Documentation/sphinx/cdomain.py+165−0

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

Documentation/sphinx/kernel-doc.py+8−0

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

Documentation/sphinx/kernel_include.py+7−0

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

Documentation/sphinx/load_config.py+32−0

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

Documentation/sphinx/parse-headers.pl+70−59

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

Documentation/sphinx/rstFlatTable.py+6−0

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

Documentation/spi/00-INDEX+0−2

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

Documentation/stable_api_nonsense.txt+26−11

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

Documentation/stable_kernel_rules.txt+75−35

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

Documentation/static-keys.txt+9−0

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

Documentation/sync_file.txt+14−0

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

Documentation/sysctl/README+1−0

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

Documentation/sysctl/fs.txt+7−0

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

Documentation/sysctl/user.txt+66−0

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

Documentation/thermal/sysfs-api.txt+19−0

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

Documentation/timers/00-INDEX+0−4

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

Documentation/timers/Makefile+0−5

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

Documentation/timers/hpet.txt+1−1

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

Documentation/trace/ftrace-design.txt+11−0

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

Documentation/trace/ftrace.txt+5−5

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

Documentation/trace/hwlat_detector.txt+79−0

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

Documentation/trace/kprobetrace.txt+6−3

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

Documentation/trace/uprobetracer.txt+6−3

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

Documentation/vDSO/Makefile+0−17

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

Documentation/virtual/kvm/devices/arm-vgic-its.txt+38−0

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

Documentation/virtual/kvm/devices/arm-vgic-v3.txt+206−0

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

Documentation/virtual/kvm/devices/arm-vgic.txt+17−35

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

Documentation/virtual/kvm/devices/vcpu.txt+3−1

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

Documentation/vme_api.txt+7−6

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

Documentation/watchdog/Makefile+0−1

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

Documentation/watchdog/src/Makefile+0−5

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

Documentation/watchdog/watchdog-api.txt+1−1

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

Documentation/watchdog/watchdog-kernel-api.txt+33−0

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

Documentation/watchdog/wdt.txt+1−1

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

Documentation/x86/protection-keys.txt+64−6

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

Documentation/x86/x86_64/mm.txt+3−3

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

Documentation/xtensa/mmu.txt+146−27

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

MAINTAINERS+464−160

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

Makefile+20−9

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

README+2−6

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

arch/Kconfig+73−11

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

arch/alpha/Kconfig+0−1

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

arch/alpha/include/asm/Kbuild+1−0

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

arch/alpha/include/asm/uaccess.h+9−11

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

arch/alpha/include/uapi/asm/mman.h+5−0

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

arch/alpha/kernel/Makefile+1−1

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

arch/alpha/kernel/alpha_ksyms.c+0−102

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

arch/alpha/kernel/machvec_impl.h+4−2

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

arch/alpha/kernel/ptrace.c+6−3

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

arch/alpha/kernel/setup.c+1−0

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

arch/alpha/kernel/vmlinux.lds.S+1−0

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

arch/alpha/lib/callback_srm.S+5−0

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

arch/alpha/lib/checksum.c+3−0

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

arch/alpha/lib/clear_page.S+2−1

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

arch/alpha/lib/clear_user.S+2−0

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

arch/alpha/lib/copy_page.S+2−1

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

arch/alpha/lib/copy_user.S+4−15

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

arch/alpha/lib/csum_ipv6_magic.S+2−0

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

arch/alpha/lib/csum_partial_copy.c+2−0

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

arch/alpha/lib/dec_and_lock.c+2−0

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

arch/alpha/lib/divide.S+3−0

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

arch/alpha/lib/ev6-clear_page.S+2−1

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

arch/alpha/lib/ev6-clear_user.S+2−1

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

arch/alpha/lib/ev6-copy_page.S+2−1

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

arch/alpha/lib/ev6-copy_user.S+3−23

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

arch/alpha/lib/ev6-csum_ipv6_magic.S+2−0

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

arch/alpha/lib/ev6-divide.S+3−0

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

arch/alpha/lib/ev6-memchr.S+2−1

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

arch/alpha/lib/ev6-memcpy.S+2−1

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

arch/alpha/lib/ev6-memset.S+6−1

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

arch/alpha/lib/ev67-strcat.S+2−1

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

arch/alpha/lib/ev67-strchr.S+2−1

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

arch/alpha/lib/ev67-strlen.S+2−1

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

arch/alpha/lib/ev67-strncat.S+2−1

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

arch/alpha/lib/ev67-strrchr.S+2−1

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

arch/alpha/lib/fpreg.c+7−0

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

arch/alpha/lib/memchr.S+2−1

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

arch/alpha/lib/memcpy.c+2−3

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

arch/alpha/lib/memmove.S+2−1

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

arch/alpha/lib/memset.S+6−1

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

arch/alpha/lib/strcat.S+2−0

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

arch/alpha/lib/strchr.S+2−1

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

arch/alpha/lib/strcpy.S+2−1

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

arch/alpha/lib/strlen.S+2−1

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

arch/alpha/lib/strncat.S+2−1

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

arch/alpha/lib/strncpy.S+2−1

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

arch/alpha/lib/strrchr.S+2−1

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

arch/arc/Kconfig+3−3

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

arch/arc/Makefile+2−5

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

arch/arc/boot/dts/abilis_tb100_dvk.dts+1−0

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

arch/arc/boot/dts/abilis_tb101_dvk.dts+1−0

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

arch/arc/boot/dts/axs101.dts+1−0

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

arch/arc/boot/dts/axs103.dts+1−0

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

arch/arc/boot/dts/axs103_idu.dts+1−0

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

arch/arc/boot/dts/nsim_700.dts+1−0

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

arch/arc/boot/dts/nsim_hs.dts+1−0

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

arch/arc/boot/dts/nsim_hs_idu.dts+1−0

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

arch/arc/boot/dts/nsimosci.dts+1−0

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

arch/arc/boot/dts/nsimosci_hs.dts+1−0

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

arch/arc/boot/dts/nsimosci_hs_idu.dts+1−0

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

arch/arc/boot/dts/vdk_hs38.dts+1−0

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

arch/arc/boot/dts/vdk_hs38_smp.dts+1−0

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

arch/arc/boot/dts/zebu_hs.dts+69−0

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

arch/arc/boot/dts/zebu_hs_idu.dts+85−0

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

arch/arc/configs/axs101_defconfig+3−0

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

arch/arc/configs/axs103_defconfig+3−0

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

arch/arc/configs/axs103_smp_defconfig+3−0

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

arch/arc/configs/nsim_hs_defconfig+4−1

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

arch/arc/configs/nsim_hs_smp_defconfig+3−0

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

arch/arc/configs/zebu_hs_defconfig+86−0

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

arch/arc/configs/zebu_hs_smp_defconfig+89−0

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

arch/arc/include/asm/Kbuild+1−0

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

arch/arc/include/asm/arcregs.h+1−9

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

arch/arc/include/asm/atomic.h+261−2

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

arch/arc/include/asm/cache.h+1−1

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

arch/arc/include/asm/dwarf.h+38−0

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

arch/arc/include/asm/elf.h+1−2

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

arch/arc/include/asm/irqflags-arcv2.h+1−1

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

arch/arc/include/asm/linkage.h+12−0

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

arch/arc/include/asm/perf_event.h+3−0

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

arch/arc/include/asm/uaccess.h+9−2

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

arch/arc/kernel/ctx_sw_asm.S+2−1

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

arch/arc/kernel/entry.S+5−19

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

arch/arc/kernel/intc-arcv2.c+1−1

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

arch/arc/kernel/module.c+8−11

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

arch/arc/kernel/perf_event.c+4−2

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

arch/arc/kernel/setup.c+3−2

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

arch/arc/kernel/signal.c+4−4

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

arch/arc/kernel/unwind.c+17−7

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

arch/arc/kernel/vmlinux.lds.S+5−17

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

arch/arc/lib/memcmp.S+2−2

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

arch/arc/lib/memcpy-700.S+2−2

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

arch/arc/lib/memcpy-archs.S+2−2

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

arch/arc/lib/memset-archs.S+4−4

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

arch/arc/lib/memset.S+4−4

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

arch/arc/lib/strchr-700.S+2−2

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

arch/arc/lib/strcmp-archs.S+2−2

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

arch/arc/lib/strcmp.S+2−2

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

arch/arc/lib/strcpy-700.S+2−2

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

arch/arc/lib/strlen.S+2−2

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

arch/arc/mm/cache.c+18−5

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

arch/arc/mm/ioremap.c+1−1

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

arch/arc/plat-sim/platform.c+1−0

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

arch/arm/Kconfig+4−3

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

arch/arm/Kconfig.debug+11−11

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

arch/arm/Makefile+0−1

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

arch/arm/boot/Makefile+2−0

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

arch/arm/boot/compressed/head.S+1−1

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

arch/arm/boot/dts/Makefile+47−12

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

arch/arm/boot/dts/am335x-baltos.dtsi+4−4

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

arch/arm/boot/dts/am335x-base0033.dts+2−2

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

arch/arm/boot/dts/am335x-bone-common.dtsi+6−6

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

arch/arm/boot/dts/am335x-boneblack.dts+67−15

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

arch/arm/boot/dts/am335x-chilisom.dtsi+1−1

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

arch/arm/boot/dts/am335x-cm-t335.dts+4−4

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

arch/arm/boot/dts/am335x-evm.dts+10−8

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

arch/arm/boot/dts/am335x-evmsk.dts+36−34

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

arch/arm/boot/dts/am335x-icev2.dts+28−19

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

arch/arm/boot/dts/am335x-igep0033.dtsi+5−5

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

arch/arm/boot/dts/am335x-lxm.dts+3−3

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

arch/arm/boot/dts/am335x-nano.dts+2−2

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

arch/arm/boot/dts/am335x-pepper.dts+9−9

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

arch/arm/boot/dts/am335x-phycore-som.dtsi+3−3

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

arch/arm/boot/dts/am335x-shc.dts+8−8

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

arch/arm/boot/dts/am335x-sl50.dts+10−5

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

arch/arm/boot/dts/am335x-wega.dtsi+63−1

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

arch/arm/boot/dts/am33xx.dtsi+15−77

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

arch/arm/boot/dts/am3517-craneboard.dts+1−1

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

arch/arm/boot/dts/am3517-evm.dts+1−1

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

arch/arm/boot/dts/am3517.dtsi+1−1

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

arch/arm/boot/dts/am3517_mt_ventoux.dts+1−1

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

arch/arm/boot/dts/am4372.dtsi+7−3

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

arch/arm/boot/dts/am437x-cm-t43.dts+0−6

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

arch/arm/boot/dts/am437x-gp-evm.dts+14−7

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

arch/arm/boot/dts/am437x-idk-evm.dts+1−1

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

arch/arm/boot/dts/am437x-sk-evm.dts+35−10

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

arch/arm/boot/dts/am43x-epos-evm.dts+2−9

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

arch/arm/boot/dts/am572x-idk.dts+1−1

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

arch/arm/boot/dts/am57xx-beagle-x15-common.dtsi+596−0

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

arch/arm/boot/dts/am57xx-beagle-x15-revb1.dts+24−0

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

arch/arm/boot/dts/am57xx-beagle-x15.dts+7−805

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

arch/arm/boot/dts/am57xx-cl-som-am57x.dts+2−2

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

arch/arm/boot/dts/am57xx-idk-common.dtsi+49−0

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

arch/arm/boot/dts/arm-realview-eb-11mp-bbrevd-ctrevb.dts+32−0

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

arch/arm/boot/dts/arm-realview-eb-11mp-bbrevd.dts+28−0

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

arch/arm/boot/dts/arm-realview-eb-11mp-ctrevb.dtsrenamed from arch/arm/boot/dts/arm-realview-eb-11mp-revb.dts+0−0

File renamed without changes.

arch/arm/boot/dts/arm-realview-eb-11mp.dts+1−1

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

arch/arm/boot/dts/arm-realview-eb-a9mp-bbrevd.dts+28−0

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

arch/arm/boot/dts/arm-realview-eb-bbrevd.dts+29−0

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

arch/arm/boot/dts/arm-realview-eb-bbrevd.dtsi+45−0

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

arch/arm/boot/dts/arm-realview-eb.dtsi+7−16

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

arch/arm/boot/dts/armada-370-db.dts+15−14

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

arch/arm/boot/dts/armada-370-seagate-personal-cloud.dtsi+20−20

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

arch/arm/boot/dts/armada-370-synology-ds213j.dts+56−56

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

arch/arm/boot/dts/armada-370-xp.dtsi+36−20

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

arch/arm/boot/dts/armada-370.dtsi+16−18

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

arch/arm/boot/dts/armada-385-db-ap.dts+41−17

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

arch/arm/boot/dts/armada-385-linksys.dtsi+4−5

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

arch/arm/boot/dts/armada-388-clearfog.dts+28−28

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

arch/arm/boot/dts/armada-388-db.dts+13−12

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

arch/arm/boot/dts/armada-388-gp.dts+15−15

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

arch/arm/boot/dts/armada-388-rd.dts+13−12

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

arch/arm/boot/dts/armada-38x.dtsi+33−24

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

arch/arm/boot/dts/armada-390-db.dts+175−0

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

arch/arm/boot/dts/armada-390.dtsi+3−0

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

arch/arm/boot/dts/armada-395-gp.dts+163−0

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

arch/arm/boot/dts/armada-395.dtsi+76−0

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

arch/arm/boot/dts/armada-398-db.dts+32−24

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

arch/arm/boot/dts/armada-398.dtsi+9−1

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

arch/arm/boot/dts/armada-39x.dtsi+101−25

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

arch/arm/boot/dts/armada-xp-axpwifiap.dts+12−12

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

arch/arm/boot/dts/armada-xp-db.dts+12−12

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

arch/arm/boot/dts/armada-xp-gp.dts+12−12

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

arch/arm/boot/dts/armada-xp-linksys-mamba.dts+12−12

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

arch/arm/boot/dts/armada-xp-synology-ds414.dts+56−56

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

arch/arm/boot/dts/armada-xp.dtsi+18−13

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

arch/arm/boot/dts/armv7-m.dtsi+0−2

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

arch/arm/boot/dts/artpec6.dtsi+20−11

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

arch/arm/boot/dts/axp209.dtsi+6−0

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

arch/arm/boot/dts/bcm-nsp.dtsi+37−0

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

arch/arm/boot/dts/bcm2835-rpi-a-plus.dts+1−0

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

arch/arm/boot/dts/bcm2835-rpi-a.dts+1−0

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

arch/arm/boot/dts/bcm2835-rpi-b-plus.dts+1−0

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

arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts+1−0

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

arch/arm/boot/dts/bcm2835-rpi-b.dts+1−0

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

arch/arm/boot/dts/bcm2835-rpi-zero.dts+40−0

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

arch/arm/boot/dts/bcm2835-rpi.dtsi+1−0

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

arch/arm/boot/dts/bcm2836-rpi-2-b.dts+1−0

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

arch/arm/boot/dts/bcm283x-rpi-usb-host.dtsi+3−0

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

arch/arm/boot/dts/bcm283x.dtsi+11−1

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

arch/arm/boot/dts/bcm5301x.dtsi+11−0

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

arch/arm/boot/dts/bcm958522er.dts+130−0

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

arch/arm/boot/dts/bcm958525er.dts+142−0

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

arch/arm/boot/dts/bcm958525xmc.dts+43−1

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

arch/arm/boot/dts/bcm958622hr.dts+170−0

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

arch/arm/boot/dts/bcm958623hr.dts+178−0

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

arch/arm/boot/dts/bcm958625hr.dts+70−1

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

arch/arm/boot/dts/bcm958625k.dts+13−0

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

arch/arm/boot/dts/bcm988312hr.dts+182−0

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

arch/arm/boot/dts/berlin2-sony-nsz-gs7.dts+1−1

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

arch/arm/boot/dts/berlin2.dtsi+3−4

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

arch/arm/boot/dts/berlin2cd-google-chromecast.dts+1−1

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

arch/arm/boot/dts/berlin2cd.dtsi+3−2

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

arch/arm/boot/dts/berlin2q-marvell-dmp.dts+1−1

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

arch/arm/boot/dts/berlin2q.dtsi+3−5

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

arch/arm/boot/dts/da850-evm.dts+45−6

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

arch/arm/boot/dts/da850-lcdk.dts+221−0

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

arch/arm/boot/dts/da850.dtsi+51−29

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

arch/arm/boot/dts/dm8148-evm.dts+2−2

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

arch/arm/boot/dts/dm8148-t410.dts+2−2

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

arch/arm/boot/dts/dm814x.dtsi+2−2

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

arch/arm/boot/dts/dm8168-evm.dts+2−2

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

arch/arm/boot/dts/dm816x.dtsi+2−2

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

arch/arm/boot/dts/dra62x-j5eco-evm.dts+2−2

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

arch/arm/boot/dts/dra7-evm.dts+7−7

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

arch/arm/boot/dts/dra7.dtsi+10−26

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

arch/arm/boot/dts/dra72-evm-common.dtsi+2−2

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

arch/arm/boot/dts/dra72-evm-revc.dts+1−1

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

arch/arm/boot/dts/dra72-evm.dts+1−1

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

arch/arm/boot/dts/dra74x.dtsi+0−1

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

arch/arm/boot/dts/dra7xx-clocks.dtsi+11−4

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

arch/arm/boot/dts/efm32gg-dk3750.dts+3−2

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

arch/arm/boot/dts/efm32gg.dtsi+4−0

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

arch/arm/boot/dts/exynos3250-artik5.dtsi+2−1

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

arch/arm/boot/dts/exynos3250-monk.dts+2−1

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

arch/arm/boot/dts/exynos3250-pinctrl.dtsi+167−179

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

arch/arm/boot/dts/exynos3250-rinato.dts+2−1

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

arch/arm/boot/dts/exynos3250.dtsi+2−1

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

arch/arm/boot/dts/exynos4.dtsi+2−1

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

arch/arm/boot/dts/exynos4210-origen.dts+2−1

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

arch/arm/boot/dts/exynos4210-pinctrl.dtsi+230−228

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

arch/arm/boot/dts/exynos4210-smdkv310.dts+8−7

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

arch/arm/boot/dts/exynos4210-trats.dts+2−1

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

arch/arm/boot/dts/exynos4210-universal_c210.dts+7−6

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

arch/arm/boot/dts/exynos4412-odroid-common.dtsi+8−8

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

arch/arm/boot/dts/exynos4412-odroidu3.dts+2−1

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

arch/arm/boot/dts/exynos4412-odroidx.dts+3−2

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

arch/arm/boot/dts/exynos4412-odroidx2.dts+2−1

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

arch/arm/boot/dts/exynos4412-origen.dts+8−7

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

arch/arm/boot/dts/exynos4412-smdk4412.dts+8−7

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

arch/arm/boot/dts/exynos4412-tiny4412.dts+2−1

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

arch/arm/boot/dts/exynos4412-trats2.dts+2−1

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

arch/arm/boot/dts/exynos4415-pinctrl.dtsi+149−147

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

arch/arm/boot/dts/exynos4415.dtsi+2−1

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

arch/arm/boot/dts/exynos4x12-pinctrl.dtsi+259−266

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

arch/arm/boot/dts/exynos4x12.dtsi+4−1

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

arch/arm/boot/dts/exynos5.dtsi+2−1

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

arch/arm/boot/dts/exynos5250-arndale.dts+3−2

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

arch/arm/boot/dts/exynos5250-pinctrl.dtsi+203−201

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

arch/arm/boot/dts/exynos5250-smdk5250.dts+6−5

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

arch/arm/boot/dts/exynos5250-snow-common.dtsi+41−40

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

arch/arm/boot/dts/exynos5250-snow-rev5.dts+3−3

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

arch/arm/boot/dts/exynos5250-snow.dts+3−3

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

arch/arm/boot/dts/exynos5250-spring.dts+39−38

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

arch/arm/boot/dts/exynos5260-pinctrl.dtsi+139−141

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

arch/arm/boot/dts/exynos5260-xyref5260.dts+5−4

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

arch/arm/boot/dts/exynos5260.dtsi+2−2

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

arch/arm/boot/dts/exynos5410-odroidxu.dts+18−20

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

arch/arm/boot/dts/exynos5410-pinctrl.dtsi+92−90

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

arch/arm/boot/dts/exynos5410-smdk5410.dts+7−6

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

arch/arm/boot/dts/exynos5420-arndale-octa.dts+18−4

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

arch/arm/boot/dts/exynos5420-peach-pit.dts+66−65

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

arch/arm/boot/dts/exynos5420-pinctrl.dtsi+179−177

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

arch/arm/boot/dts/exynos5420-smdk5420.dts+12−11

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

arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi+13−12

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

arch/arm/boot/dts/exynos5440-sd5v1.dts+6−0

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

arch/arm/boot/dts/exynos5440-ssdk5440.dts+6−0

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

arch/arm/boot/dts/exynos5440.dtsi+2−1

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

arch/arm/boot/dts/exynos54xx.dtsi+0−1

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

arch/arm/boot/dts/exynos5800-peach-pi.dts+66−65

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

arch/arm/boot/dts/imx35.dtsi+7−0

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

arch/arm/boot/dts/imx50.dtsi+10−0

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

arch/arm/boot/dts/imx53-usbarmory.dts+224−0

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

arch/arm/boot/dts/imx53.dtsi+18−0

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

arch/arm/boot/dts/imx6dl-gw553x.dts+55−0

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

arch/arm/boot/dts/imx6dl-riotboard.dts+11−11

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

arch/arm/boot/dts/imx6dl-ts4900.dts+49−0

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

arch/arm/boot/dts/imx6dl.dtsi+53−0

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

arch/arm/boot/dts/imx6q-arm2.dts+12−12

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

arch/arm/boot/dts/imx6q-b450v3.dts+16−0

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

arch/arm/boot/dts/imx6q-b650v3.dts+9−0

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

arch/arm/boot/dts/imx6q-ba16.dtsi+12−12

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

arch/arm/boot/dts/imx6q-bx50v3.dtsi+70−0

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

arch/arm/boot/dts/imx6q-cm-fx6.dts+12−12

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

arch/arm/boot/dts/imx6q-dmo-edmqmx6.dts+12−12

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

arch/arm/boot/dts/imx6q-evi.dts+16−12

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

arch/arm/boot/dts/imx6q-gw5400-a.dts+12−12

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

arch/arm/boot/dts/imx6q-gw553x.dts+55−0

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

arch/arm/boot/dts/imx6q-marsboard.dts+12−12

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

arch/arm/boot/dts/imx6q-novena.dts+6−6

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

arch/arm/boot/dts/imx6q-sbc6x.dts+12−12

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

arch/arm/boot/dts/imx6q-tbs2910.dts+12−12

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

arch/arm/boot/dts/imx6q-ts4900.dts+53−0

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

arch/arm/boot/dts/imx6q.dtsi+37−0

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

arch/arm/boot/dts/imx6qdl-apalis.dtsi+12−12

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

arch/arm/boot/dts/imx6qdl-dfi-fs700-m60.dtsi+12−12

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

arch/arm/boot/dts/imx6qdl-gw51xx.dtsi+24−12

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

arch/arm/boot/dts/imx6qdl-gw52xx.dtsi+27−12

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

arch/arm/boot/dts/imx6qdl-gw53xx.dtsi+27−12

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

arch/arm/boot/dts/imx6qdl-gw54xx.dtsi+32−12

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

arch/arm/boot/dts/imx6qdl-gw551x.dtsi+12−0

This diff is large: its 25 lines aren’t shown here.

arch/arm/boot/dts/imx6qdl-gw552x.dtsi+12−0

This diff is large: its 25 lines aren’t shown here.

arch/arm/boot/dts/imx6qdl-gw553x.dtsi+433−0

This diff is large: its 434 lines aren’t shown here.

arch/arm/boot/dts/imx6qdl-icore-rqs.dtsi+12−12

This diff is large: its 32 lines aren’t shown here.

arch/arm/boot/dts/imx6qdl-nit6xlite.dtsi+6−6

This diff is large: its 19 lines aren’t shown here.

arch/arm/boot/dts/imx6qdl-nitrogen6_max.dtsi+12−12

This diff is large: its 32 lines aren’t shown here.

arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi+12−12

This diff is large: its 32 lines aren’t shown here.

arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi+24−12

This diff is large: its 51 lines aren’t shown here.

arch/arm/boot/dts/imx6qdl-rex.dtsi+12−12

This diff is large: its 32 lines aren’t shown here.

arch/arm/boot/dts/imx6qdl-sabreauto.dtsi+12−12

This diff is large: its 32 lines aren’t shown here.

arch/arm/boot/dts/imx6qdl-sabrelite.dtsi+12−12

This diff is large: its 32 lines aren’t shown here.

arch/arm/boot/dts/imx6qdl-sabresd.dtsi+12−12

This diff is large: its 32 lines aren’t shown here.

arch/arm/boot/dts/imx6qdl-ts4900.dtsi+481−0

This diff is large: its 482 lines aren’t shown here.

arch/arm/boot/dts/imx6qdl-udoo.dtsi+12−12

This diff is large: its 31 lines aren’t shown here.

arch/arm/boot/dts/imx6qdl-wandboard.dtsi+12−12

This diff is large: its 32 lines aren’t shown here.

arch/arm/boot/dts/imx6qdl.dtsi+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/imx6sl.dtsi+47−0

This diff is large: its 82 lines aren’t shown here.

arch/arm/boot/dts/imx6sx-pinfunc.h+14−0

This diff is large: its 21 lines aren’t shown here.

arch/arm/boot/dts/imx6sx-sabreauto.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/imx6sx.dtsi+22−0

This diff is large: its 83 lines aren’t shown here.

arch/arm/boot/dts/imx6ul-geam-kit.dts+101−0

This diff is large: its 102 lines aren’t shown here.

arch/arm/boot/dts/imx6ul-geam.dtsi+361−0

This diff is large: its 362 lines aren’t shown here.

arch/arm/boot/dts/imx6ul-pico-hobbit.dts+33−0

This diff is large: its 58 lines aren’t shown here.

arch/arm/boot/dts/imx6ul.dtsi+8−1

This diff is large: its 51 lines aren’t shown here.

arch/arm/boot/dts/imx7-colibri-eval-v3.dtsi+0−4

This diff is large: its 11 lines aren’t shown here.

arch/arm/boot/dts/imx7-colibri.dtsi+57−4

This diff is large: its 112 lines aren’t shown here.

arch/arm/boot/dts/imx7d-sdb.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/imx7d.dtsi+27−15

This diff is large: its 58 lines aren’t shown here.

arch/arm/boot/dts/imx7s-warp.dts+446−0

This diff is large: its 447 lines aren’t shown here.

arch/arm/boot/dts/imx7s.dtsi+215−156

This diff is large: its 501 lines aren’t shown here.

arch/arm/boot/dts/integratorap.dts+50−1

This diff is large: its 72 lines aren’t shown here.

arch/arm/boot/dts/integratorcp.dts+63−11

This diff is large: its 108 lines aren’t shown here.

arch/arm/boot/dts/keystone-k2e-evm.dts+10−2

This diff is large: its 29 lines aren’t shown here.

arch/arm/boot/dts/keystone-k2e.dtsi+2−2

This diff is large: its 18 lines aren’t shown here.

arch/arm/boot/dts/keystone-k2g.dtsi+32−0

This diff is large: its 45 lines aren’t shown here.

arch/arm/boot/dts/keystone-k2hk-evm.dts+5−1

This diff is large: its 16 lines aren’t shown here.

arch/arm/boot/dts/keystone-k2l-evm.dts+5−1

This diff is large: its 16 lines aren’t shown here.

arch/arm/boot/dts/keystone.dtsi+2−2

This diff is large: its 18 lines aren’t shown here.

arch/arm/boot/dts/kirkwood-ib62x0.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/kirkwood-openblocks_a6.dts+8−1

This diff is large: its 20 lines aren’t shown here.

arch/arm/boot/dts/kirkwood-openrd.dtsi+4−0

This diff is large: its 11 lines aren’t shown here.

arch/arm/boot/dts/logicpd-som-lv.dtsi+6−5

This diff is large: its 28 lines aren’t shown here.

arch/arm/boot/dts/logicpd-torpedo-som.dtsi+6−0

This diff is large: its 20 lines aren’t shown here.

arch/arm/boot/dts/lpc18xx.dtsi+7−0

This diff is large: its 21 lines aren’t shown here.

arch/arm/boot/dts/lpc32xx.dtsi+11−1

This diff is large: its 21 lines aren’t shown here.

arch/arm/boot/dts/lpc4337-ciaa.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/lpc4350-hitex-eval.dts+2−2

This diff is large: its 18 lines aren’t shown here.

arch/arm/boot/dts/lpc4357-ea4357-devkit.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/ls1021a-twr.dts+12−1

This diff is large: its 25 lines aren’t shown here.

arch/arm/boot/dts/meson8b.dtsi+21−0

This diff is large: its 28 lines aren’t shown here.

arch/arm/boot/dts/mps2.dtsi+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/boot/dts/ntc-gr8-evb.dts+342−0

This diff is large: its 343 lines aren’t shown here.

arch/arm/boot/dts/ntc-gr8.dtsi+1087−0

This diff is large: its 1088 lines aren’t shown here.

arch/arm/boot/dts/omap2.dtsi+2−2

This diff is large: its 14 lines aren’t shown here.

arch/arm/boot/dts/omap2420-h4.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/omap2420-n8x0-common.dtsi+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/omap2430-sdp.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/omap3-beagle-xm.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/omap3-beagle.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/omap3-cm-t3x.dtsi+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/omap3-devkit8000-common.dtsi+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/omap3-evm-37xx.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/omap3-evm.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/omap3-gta04.dtsi+2−2

This diff is large: its 18 lines aren’t shown here.

arch/arm/boot/dts/omap3-igep.dtsi+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/omap3-ldp.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/omap3-lilly-a83x.dtsi+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/omap3-n900.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/omap3-n950-n9.dtsi+3−3

This diff is large: its 24 lines aren’t shown here.

arch/arm/boot/dts/omap3-overo-alto35-common.dtsi+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/omap3-overo-base.dtsi+9−1

This diff is large: its 24 lines aren’t shown here.

arch/arm/boot/dts/omap3-overo-chestnut43-common.dtsi+2−4

This diff is large: its 25 lines aren’t shown here.

arch/arm/boot/dts/omap3-overo-common-lcd35.dtsi+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/omap3-overo-gallop43-common.dtsi+2−2

This diff is large: its 16 lines aren’t shown here.

arch/arm/boot/dts/omap3-overo-palo35-common.dtsi+2−2

This diff is large: its 16 lines aren’t shown here.

arch/arm/boot/dts/omap3-overo-palo43-common.dtsi+2−2

This diff is large: its 16 lines aren’t shown here.

arch/arm/boot/dts/omap3-overo-tobi-common.dtsi+0−2

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/omap3-overo-tobiduo-common.dtsi+0−3

This diff is large: its 10 lines aren’t shown here.

arch/arm/boot/dts/omap3-pandora-common.dtsi+5−5

This diff is large: its 42 lines aren’t shown here.

arch/arm/boot/dts/omap3-sniper.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/omap3-tao3530.dtsi+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/omap3-zoom3.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/omap3.dtsi+3−3

This diff is large: its 23 lines aren’t shown here.

arch/arm/boot/dts/omap3430-sdp.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/omap34xx.dtsi+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/omap36xx.dtsi+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/omap4-duovero-parlor.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/omap4-duovero.dtsi+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/omap4-kc1.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/omap4-panda-common.dtsi+3−1

This diff is large: its 18 lines aren’t shown here.

arch/arm/boot/dts/omap4-sdp.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/omap4-var-som-om44.dtsi+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/omap4.dtsi+2−2

This diff is large: its 14 lines aren’t shown here.

arch/arm/boot/dts/omap5-board-common.dtsi+15−14

This diff is large: its 71 lines aren’t shown here.

arch/arm/boot/dts/omap5-cm-t54.dts+3−3

This diff is large: its 21 lines aren’t shown here.

arch/arm/boot/dts/omap5-igep0050.dts+40−2

This diff is large: its 63 lines aren’t shown here.

arch/arm/boot/dts/omap5-uevm.dts+16−2

This diff is large: its 30 lines aren’t shown here.

arch/arm/boot/dts/omap5.dtsi+12−14

This diff is large: its 63 lines aren’t shown here.

arch/arm/boot/dts/orion5x-mv88f5181.dtsi+49−0

This diff is large: its 50 lines aren’t shown here.

arch/arm/boot/dts/orion5x-netgear-wnr854t.dts+251−0

This diff is large: its 252 lines aren’t shown here.

arch/arm/boot/dts/orion5x.dtsi+2−1

This diff is large: its 12 lines aren’t shown here.

arch/arm/boot/dts/qcom-apq8060-dragonboard.dts+39−0

This diff is large: its 46 lines aren’t shown here.

arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dts+15−0

This diff is large: its 28 lines aren’t shown here.

arch/arm/boot/dts/qcom-apq8064.dtsi+160−20

This diff is large: its 227 lines aren’t shown here.

arch/arm/boot/dts/qcom-apq8084.dtsi+103−0

This diff is large: its 117 lines aren’t shown here.

arch/arm/boot/dts/qcom-ipq8064-ap148.dts+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/boot/dts/qcom-msm8660.dtsi+57−18

This diff is large: its 96 lines aren’t shown here.

arch/arm/boot/dts/qcom-msm8974-lge-nexus5-hammerhead.dts+262−0

This diff is large: its 263 lines aren’t shown here.

arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dts+59−22

This diff is large: its 116 lines aren’t shown here.

arch/arm/boot/dts/qcom-msm8974.dtsi+139−0

This diff is large: its 172 lines aren’t shown here.

arch/arm/boot/dts/qcom-pm8941.dtsi+5−0

This diff is large: its 12 lines aren’t shown here.

arch/arm/boot/dts/r7s72100-rskrza1.dts+61−0

This diff is large: its 62 lines aren’t shown here.

arch/arm/boot/dts/r7s72100.dtsi+22−0

This diff is large: its 34 lines aren’t shown here.

arch/arm/boot/dts/r8a7790.dtsi+0−23

This diff is large: its 51 lines aren’t shown here.

arch/arm/boot/dts/r8a7791.dtsi+0−18

This diff is large: its 39 lines aren’t shown here.

arch/arm/boot/dts/r8a7792-blanche.dts+264−0

This diff is large: its 289 lines aren’t shown here.

arch/arm/boot/dts/r8a7792-wheat.dts+199−0

This diff is large: its 200 lines aren’t shown here.

arch/arm/boot/dts/r8a7792.dtsi+549−5

This diff is large: its 636 lines aren’t shown here.

arch/arm/boot/dts/r8a7794-alt.dts+106−0

This diff is large: its 134 lines aren’t shown here.

arch/arm/boot/dts/r8a7794-silk.dts+70−0

This diff is large: its 102 lines aren’t shown here.

arch/arm/boot/dts/r8a7794.dtsi+308−1

This diff is large: its 356 lines aren’t shown here.

arch/arm/boot/dts/rk3036.dtsi+11−1

This diff is large: its 27 lines aren’t shown here.

arch/arm/boot/dts/rk3288-evb-act8846.dts+4−0

This diff is large: its 11 lines aren’t shown here.

arch/arm/boot/dts/rk3288-evb-rk808.dts+4−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/boot/dts/rk3288-evb.dtsi+44−1

This diff is large: its 73 lines aren’t shown here.

arch/arm/boot/dts/rk3288-fennec.dts+382−0

This diff is large: its 383 lines aren’t shown here.

arch/arm/boot/dts/rk3288-firefly-reload-core.dtsi+310−0

This diff is large: its 311 lines aren’t shown here.

arch/arm/boot/dts/rk3288-firefly-reload.dts+403−0

This diff is large: its 404 lines aren’t shown here.

arch/arm/boot/dts/rk3288-popmetal.dts+10−2

This diff is large: its 27 lines aren’t shown here.

arch/arm/boot/dts/rk3288.dtsi+41−32

This diff is large: its 101 lines aren’t shown here.

arch/arm/boot/dts/rk3xxx.dtsi+11−1

This diff is large: its 27 lines aren’t shown here.

arch/arm/boot/dts/s3c2416-pinctrl.dtsi+20−18

This diff is large: its 119 lines aren’t shown here.

arch/arm/boot/dts/s3c6410-mini6410.dts+2−2

This diff is large: its 16 lines aren’t shown here.

arch/arm/boot/dts/s3c64xx-pinctrl.dtsi+177−179

This diff is large: its 735 lines aren’t shown here.

arch/arm/boot/dts/s5pv210-aquila.dts+3−3

This diff is large: its 19 lines aren’t shown here.

arch/arm/boot/dts/s5pv210-goni.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/s5pv210-pinctrl.dtsi+239−237

This diff is large: its 815 lines aren’t shown here.

arch/arm/boot/dts/s5pv210-smdkc110.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/s5pv210-smdkv210.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/s5pv210-torbreck.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/s5pv210.dtsi+3−1

This diff is large: its 15 lines aren’t shown here.

arch/arm/boot/dts/sama5d2.dtsi+29−0

This diff is large: its 36 lines aren’t shown here.

arch/arm/boot/dts/skeleton.dtsi+4−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/socfpga_arria10.dtsi+16−0

This diff is large: its 23 lines aren’t shown here.

arch/arm/boot/dts/socfpga_arria10_socdk_sdmmc.dts+12−0

This diff is large: its 16 lines aren’t shown here.

arch/arm/boot/dts/ste-nomadik-nhk15.dts+68−0

This diff is large: its 87 lines aren’t shown here.

arch/arm/boot/dts/ste-nomadik-stn8815.dtsi+28−0

This diff is large: its 42 lines aren’t shown here.

arch/arm/boot/dts/stih407-clock.dtsi+11−11

This diff is large: its 99 lines aren’t shown here.

arch/arm/boot/dts/stih407-family.dtsi+190−5

This diff is large: its 244 lines aren’t shown here.

arch/arm/boot/dts/stih407-pinctrl.dtsi+106−34

This diff is large: its 368 lines aren’t shown here.

arch/arm/boot/dts/stih407.dtsi+13−3

This diff is large: its 36 lines aren’t shown here.

arch/arm/boot/dts/stih410-b2260.dts+194−0

This diff is large: its 195 lines aren’t shown here.

arch/arm/boot/dts/stih410-clock.dtsi+10−10

This diff is large: its 90 lines aren’t shown here.

arch/arm/boot/dts/stih410.dtsi+39−7

This diff is large: its 100 lines aren’t shown here.

arch/arm/boot/dts/stih415-pinctrl.dtsi+27−27

This diff is large: its 243 lines aren’t shown here.

arch/arm/boot/dts/stih416-b2020e.dts+3−3

This diff is large: its 24 lines aren’t shown here.

arch/arm/boot/dts/stih416-pinctrl.dtsi+35−30

This diff is large: its 301 lines aren’t shown here.

arch/arm/boot/dts/stih416.dtsi+6−2

This diff is large: its 30 lines aren’t shown here.

arch/arm/boot/dts/stih418-b2199.dts+4−4

This diff is large: its 33 lines aren’t shown here.

arch/arm/boot/dts/stih418-clock.dtsi+10−10

This diff is large: its 90 lines aren’t shown here.

arch/arm/boot/dts/stih41x-b2000.dtsi+3−2

This diff is large: its 20 lines aren’t shown here.

arch/arm/boot/dts/stih41x-b2020.dtsi+3−3

This diff is large: its 24 lines aren’t shown here.

arch/arm/boot/dts/stihxxx-b2120.dtsi+48−4

This diff is large: its 76 lines aren’t shown here.

arch/arm/boot/dts/stm32f429.dtsi+10−0

This diff is large: its 31 lines aren’t shown here.

arch/arm/boot/dts/sun4i-a10-ba10-tvbox.dts+0−4

This diff is large: its 11 lines aren’t shown here.

arch/arm/boot/dts/sun5i-a13-empire-electronix-m712.dts+51−0

This diff is large: its 52 lines aren’t shown here.

arch/arm/boot/dts/sun5i-a13-inet-98v-rev2.dts+1−163

This diff is large: its 173 lines aren’t shown here.

arch/arm/boot/dts/sun5i-a13.dtsi+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/sun5i-r8-chip.dts+10−0

This diff is large: its 17 lines aren’t shown here.

arch/arm/boot/dts/sun6i-a31.dtsi+101−331

This diff is large: its 728 lines aren’t shown here.

arch/arm/boot/dts/sun6i-a31s-colorfly-e708-q1.dts+1−137

This diff is large: its 162 lines aren’t shown here.

arch/arm/boot/dts/sun6i-a31s-inet-q972.dts+100−0

This diff is large: its 101 lines aren’t shown here.

arch/arm/boot/dts/sun6i-reference-design-tablet.dtsi+193−0

This diff is large: its 194 lines aren’t shown here.

arch/arm/boot/dts/sun7i-a20.dtsi+4−4

This diff is large: its 36 lines aren’t shown here.

arch/arm/boot/dts/sun8i-a23-a33.dtsi+116−196

This diff is large: its 472 lines aren’t shown here.

arch/arm/boot/dts/sun8i-a23-gt90h-v4.dts+7−188

This diff is large: its 223 lines aren’t shown here.

arch/arm/boot/dts/sun8i-a23-inet86dz.dts+9−0

This diff is large: its 16 lines aren’t shown here.

arch/arm/boot/dts/sun8i-a23-polaroid-mid2407pxe03.dts+68−0

This diff is large: its 73 lines aren’t shown here.

arch/arm/boot/dts/sun8i-a23-polaroid-mid2809pxe04.dts+51−0

This diff is large: its 56 lines aren’t shown here.

arch/arm/boot/dts/sun8i-a23.dtsi+13−67

This diff is large: its 92 lines aren’t shown here.

arch/arm/boot/dts/sun8i-a33-ga10h-v1.1.dts+28−0

This diff is large: its 48 lines aren’t shown here.

arch/arm/boot/dts/sun8i-a33-inet-d978-rev2.dts+108−0

This diff is large: its 109 lines aren’t shown here.

arch/arm/boot/dts/sun8i-a33-olinuxino.dts+226−0

This diff is large: its 227 lines aren’t shown here.

arch/arm/boot/dts/sun8i-a33.dtsi+159−77

This diff is large: its 271 lines aren’t shown here.

arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/sun8i-h3-nanopi-neo.dts+125−0

This diff is large: its 126 lines aren’t shown here.

arch/arm/boot/dts/sun8i-h3-orangepi-2.dts+28−0

This diff is large: its 49 lines aren’t shown here.

arch/arm/boot/dts/sun8i-h3-orangepi-lite.dts+178−0

This diff is large: its 179 lines aren’t shown here.

arch/arm/boot/dts/sun8i-h3-orangepi-one.dts+18−0

This diff is large: its 25 lines aren’t shown here.

arch/arm/boot/dts/sun8i-h3-orangepi-pc-plus.dts+88−0

This diff is large: its 89 lines aren’t shown here.

arch/arm/boot/dts/sun8i-h3-orangepi-pc.dts+18−0

This diff is large: its 25 lines aren’t shown here.

arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/sun8i-h3-orangepi-plus2e.dts+53−0

This diff is large: its 54 lines aren’t shown here.

arch/arm/boot/dts/sun8i-h3.dtsi+94−5

This diff is large: its 152 lines aren’t shown here.

arch/arm/boot/dts/sun8i-q8-common.dtsi+49−0

This diff is large: its 60 lines aren’t shown here.

arch/arm/boot/dts/sun8i-reference-design-tablet.dtsi+26−0

This diff is large: its 40 lines aren’t shown here.

arch/arm/boot/dts/sun9i-a80-cubieboard4.dts+145−0

This diff is large: its 159 lines aren’t shown here.

arch/arm/boot/dts/sun9i-a80-optimus.dts+150−2

This diff is large: its 180 lines aren’t shown here.

arch/arm/boot/dts/sun9i-a80.dtsi+6−8

This diff is large: its 31 lines aren’t shown here.

arch/arm/boot/dts/tegra114-dalmore.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/tegra114-roth.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/tegra114-tn7.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/tegra114.dtsi+4−4

This diff is large: its 36 lines aren’t shown here.

arch/arm/boot/dts/tegra124-jetson-tk1.dts+5−17

This diff is large: its 66 lines aren’t shown here.

arch/arm/boot/dts/tegra124.dtsi+82−1

This diff is large: its 125 lines aren’t shown here.

arch/arm/boot/dts/uniphier-common32.dtsi+56−7

This diff is large: its 122 lines aren’t shown here.

arch/arm/boot/dts/uniphier-ld4-ref.dtsrenamed from arch/arm/boot/dts/uniphier-ph1-ld4-ref.dts+6−5

This diff is large: its 28 lines aren’t shown here.

arch/arm/boot/dts/uniphier-ld4.dtsirenamed from arch/arm/boot/dts/uniphier-ph1-ld4.dtsi+40−19

This diff is large: its 142 lines aren’t shown here.

arch/arm/boot/dts/uniphier-ld6b-ref.dtsrenamed from arch/arm/boot/dts/uniphier-ph1-ld6b-ref.dts+6−5

This diff is large: its 28 lines aren’t shown here.

arch/arm/boot/dts/uniphier-ld6b.dtsirenamed from arch/arm/boot/dts/uniphier-ph1-ld6b.dtsi+9−8

This diff is large: its 40 lines aren’t shown here.

arch/arm/boot/dts/uniphier-pro4-ace.dtsrenamed from arch/arm/boot/dts/uniphier-ph1-pro4-ace.dts+6−5

This diff is large: its 26 lines aren’t shown here.

arch/arm/boot/dts/uniphier-pro4-ref.dtsrenamed from arch/arm/boot/dts/uniphier-ph1-pro4-ref.dts+6−5

This diff is large: its 28 lines aren’t shown here.

arch/arm/boot/dts/uniphier-pro4-sanji.dtsrenamed from arch/arm/boot/dts/uniphier-ph1-pro4-sanji.dts+6−5

This diff is large: its 26 lines aren’t shown here.

arch/arm/boot/dts/uniphier-pro4.dtsirenamed from arch/arm/boot/dts/uniphier-ph1-pro4.dtsi+41−22

This diff is large: its 162 lines aren’t shown here.

arch/arm/boot/dts/uniphier-pro5.dtsirenamed from arch/arm/boot/dts/uniphier-ph1-pro5.dtsi+36−22

This diff is large: its 143 lines aren’t shown here.

arch/arm/boot/dts/uniphier-pxs2-gentil.dtsrenamed from arch/arm/boot/dts/uniphier-proxstream2-gentil.dts+7−5

This diff is large: its 27 lines aren’t shown here.

arch/arm/boot/dts/uniphier-pxs2-vodka.dtsrenamed from arch/arm/boot/dts/uniphier-proxstream2-vodka.dts+6−5

This diff is large: its 26 lines aren’t shown here.

arch/arm/boot/dts/uniphier-pxs2.dtsirenamed from arch/arm/boot/dts/uniphier-proxstream2.dtsi+39−23

This diff is large: its 168 lines aren’t shown here.

arch/arm/boot/dts/uniphier-sld3-ref.dtsrenamed from arch/arm/boot/dts/uniphier-ph1-sld3-ref.dts+6−5

This diff is large: its 28 lines aren’t shown here.

arch/arm/boot/dts/uniphier-sld3.dtsirenamed from arch/arm/boot/dts/uniphier-ph1-sld3.dtsi+51−24

This diff is large: its 184 lines aren’t shown here.

arch/arm/boot/dts/uniphier-sld8-ref.dtsrenamed from arch/arm/boot/dts/uniphier-ph1-sld8-ref.dts+6−5

This diff is large: its 28 lines aren’t shown here.

arch/arm/boot/dts/uniphier-sld8.dtsirenamed from arch/arm/boot/dts/uniphier-ph1-sld8.dtsi+40−19

This diff is large: its 142 lines aren’t shown here.

arch/arm/boot/dts/vf-colibri-eval-v3.dtsi+12−1

This diff is large: its 28 lines aren’t shown here.

arch/arm/boot/dts/vf610m4.dtsi+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/common/bL_switcher_dummy_if.c+1−13

This diff is large: its 18 lines aren’t shown here.

arch/arm/common/locomo.c+2−3

This diff is large: its 19 lines aren’t shown here.

arch/arm/common/sa1111.c+276−190

This diff is large: its 744 lines aren’t shown here.

arch/arm/configs/colibri_pxa270_defconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/configs/davinci_all_defconfig+25−41

This diff is large: its 209 lines aren’t shown here.

arch/arm/configs/exynos_defconfig+9−2

This diff is large: its 39 lines aren’t shown here.

arch/arm/configs/imx_v4_v5_defconfig+1−2

This diff is large: its 16 lines aren’t shown here.

arch/arm/configs/imx_v6_v7_defconfig+11−6

This diff is large: its 85 lines aren’t shown here.

arch/arm/configs/integrator_defconfig+3−10

This diff is large: its 42 lines aren’t shown here.

arch/arm/configs/keystone_defconfig+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/configs/lpd270_defconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/configs/multi_v4t_defconfig+1−3

This diff is large: its 11 lines aren’t shown here.

arch/arm/configs/multi_v7_defconfig+11−2

This diff is large: its 79 lines aren’t shown here.

arch/arm/configs/mvebu_v5_defconfig+1−4

This diff is large: its 12 lines aren’t shown here.

arch/arm/configs/mvebu_v7_defconfig+3−0

This diff is large: its 24 lines aren’t shown here.

arch/arm/configs/omap2plus_defconfig+1−1

This diff is large: its 16 lines aren’t shown here.

arch/arm/configs/pxa255-idp_defconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/configs/pxa_defconfig+0−2

This diff is large: its 9 lines aren’t shown here.

arch/arm/configs/s3c2410_defconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/configs/trizeps4_defconfig+0−2

This diff is large: its 9 lines aren’t shown here.

arch/arm/crypto/aes-ce-glue.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/crypto/ghash-ce-glue.c+25−1

This diff is large: its 48 lines aren’t shown here.

arch/arm/crypto/sha1-armv7-neon.S+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/include/asm/Kbuild+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/include/asm/arch_gicv3.h+81−16

This diff is large: its 164 lines aren’t shown here.

arch/arm/include/asm/assembler.h+4−0

This diff is large: its 12 lines aren’t shown here.

arch/arm/include/asm/cacheflush.h+0−17

This diff is large: its 22 lines aren’t shown here.

arch/arm/include/asm/cachetype.h+39−0

This diff is large: its 44 lines aren’t shown here.

arch/arm/include/asm/clocksource.h+8−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/include/asm/cp15.h+15−0

This diff is large: its 22 lines aren’t shown here.

arch/arm/include/asm/cputype.h+32−5

This diff is large: its 91 lines aren’t shown here.

arch/arm/include/asm/delay.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/include/asm/dma-mapping.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/include/asm/flat.h+3−2

This diff is large: its 12 lines aren’t shown here.

arch/arm/include/asm/glue-cache.h+0−4

This diff is large: its 12 lines aren’t shown here.

arch/arm/include/asm/hardware/cache-l2x0.h+19−0

This diff is large: its 33 lines aren’t shown here.

arch/arm/include/asm/hardware/cache-uniphier.h+2−18

This diff is large: its 37 lines aren’t shown here.

arch/arm/include/asm/hardware/sa1111.h+3−1

This diff is large: its 18 lines aren’t shown here.

arch/arm/include/asm/hw_breakpoint.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/include/asm/irq.h+3−2

This diff is large: its 12 lines aren’t shown here.

arch/arm/include/asm/kvm_asm.h+7−0

This diff is large: its 21 lines aren’t shown here.

arch/arm/include/asm/kvm_emulate.h+28−7

This diff is large: its 77 lines aren’t shown here.

arch/arm/include/asm/kvm_host.h+11−6

This diff is large: its 35 lines aren’t shown here.

arch/arm/include/asm/kvm_hyp.h+4−14

This diff is large: its 40 lines aren’t shown here.

arch/arm/include/asm/kvm_mmu.h+2−26

This diff is large: its 40 lines aren’t shown here.

arch/arm/include/asm/memory.h+3−12

This diff is large: its 41 lines aren’t shown here.

arch/arm/include/asm/module.h+2−4

This diff is large: its 13 lines aren’t shown here.

arch/arm/include/asm/pgtable-2level-hwdef.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/include/asm/pgtable-3level-hwdef.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/include/asm/trusted_foundations.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/include/asm/uaccess.h+6−5

This diff is large: its 18 lines aren’t shown here.

arch/arm/include/asm/v7m.h+22−0

This diff is large: its 36 lines aren’t shown here.

arch/arm/include/debug/brcmstb.S+145−0

This diff is large: its 146 lines aren’t shown here.

arch/arm/include/uapi/asm/kvm.h+7−0

This diff is large: its 14 lines aren’t shown here.

arch/arm/kernel/Makefile+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/kernel/armksyms.c+0−183

This diff is large: its 184 lines aren’t shown here.

arch/arm/kernel/cpuidle.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/kernel/devtree.c+11−3

This diff is large: its 37 lines aren’t shown here.

arch/arm/kernel/entry-ftrace.S+3−0

This diff is large: its 24 lines aren’t shown here.

arch/arm/kernel/ftrace.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/kernel/head-nommu.S+15−1

This diff is large: its 23 lines aren’t shown here.

arch/arm/kernel/head.S+3−0

This diff is large: its 17 lines aren’t shown here.

arch/arm/kernel/hyp-stub.S+13−0

This diff is large: its 20 lines aren’t shown here.

arch/arm/kernel/module-plts.c+144−99

This diff is large: its 306 lines aren’t shown here.

arch/arm/kernel/module.lds+1−2

This diff is large: its 6 lines aren’t shown here.

arch/arm/kernel/perf_event_v7.c+28−19

This diff is large: its 110 lines aren’t shown here.

arch/arm/kernel/process.c+1−2

This diff is large: its 10 lines aren’t shown here.

arch/arm/kernel/setup.c+12−14

This diff is large: its 57 lines aren’t shown here.

arch/arm/kernel/smccc-call.S+3−0

This diff is large: its 21 lines aren’t shown here.

arch/arm/kernel/smp.c+3−12

This diff is large: its 31 lines aren’t shown here.

arch/arm/kernel/vdso.c+7−6

This diff is large: its 52 lines aren’t shown here.

arch/arm/kernel/vmlinux-xip.lds.S+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/kernel/vmlinux.lds.S+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/kvm/Makefile+3−0

This diff is large: its 17 lines aren’t shown here.

arch/arm/kvm/arm.c+21−10

This diff is large: its 73 lines aren’t shown here.

arch/arm/kvm/coproc.c+35−0

This diff is large: its 53 lines aren’t shown here.

arch/arm/kvm/emulate.c+12−99

This diff is large: its 122 lines aren’t shown here.

arch/arm/kvm/handle_exit.c+22−27

This diff is large: its 88 lines aren’t shown here.

arch/arm/kvm/hyp/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/kvm/hyp/entry.S+31−0

This diff is large: its 45 lines aren’t shown here.

arch/arm/kvm/hyp/hyp-entry.S+15−1

This diff is large: its 30 lines aren’t shown here.

arch/arm/kvm/hyp/switch.c+20−5

This diff is large: its 66 lines aren’t shown here.

arch/arm/kvm/hyp/tlb.c+4−11

This diff is large: its 34 lines aren’t shown here.

arch/arm/kvm/mmio.c+0−6

This diff is large: its 13 lines aren’t shown here.

arch/arm/kvm/mmu.c+8−3

This diff is large: its 46 lines aren’t shown here.

arch/arm/lib/ashldi3.S+3−0

This diff is large: its 14 lines aren’t shown here.

arch/arm/lib/ashrdi3.S+3−0

This diff is large: its 14 lines aren’t shown here.

arch/arm/lib/bitops.h+5−0

This diff is large: its 38 lines aren’t shown here.

arch/arm/lib/bswapsdi2.S+3−0

This diff is large: its 13 lines aren’t shown here.

arch/arm/lib/clear_user.S+4−0

This diff is large: its 18 lines aren’t shown here.

arch/arm/lib/copy_from_user.S+5−6

This diff is large: its 29 lines aren’t shown here.

arch/arm/lib/copy_page.S+2−0

This diff is large: its 13 lines aren’t shown here.

arch/arm/lib/copy_to_user.S+4−0

This diff is large: its 18 lines aren’t shown here.

arch/arm/lib/csumipv6.S+2−1

This diff is large: its 14 lines aren’t shown here.

arch/arm/lib/csumpartial.S+2−0

This diff is large: its 13 lines aren’t shown here.

arch/arm/lib/csumpartialcopy.S+1−0

This diff is large: its 7 lines aren’t shown here.

arch/arm/lib/csumpartialcopygeneric.S+2−0

This diff is large: its 13 lines aren’t shown here.

arch/arm/lib/csumpartialcopyuser.S+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/lib/delay.c+3−1

This diff is large: its 20 lines aren’t shown here.

arch/arm/lib/div64.S+2−0

This diff is large: its 13 lines aren’t shown here.

arch/arm/lib/findbit.S+9−0

This diff is large: its 72 lines aren’t shown here.

arch/arm/lib/getuser.S+9−0

This diff is large: its 72 lines aren’t shown here.

arch/arm/lib/io-readsb.S+2−0

This diff is large: its 13 lines aren’t shown here.

arch/arm/lib/io-readsl.S+2−0

This diff is large: its 13 lines aren’t shown here.

arch/arm/lib/io-readsw-armv3.S+2−1

This diff is large: its 14 lines aren’t shown here.

arch/arm/lib/io-readsw-armv4.S+2−0

This diff is large: its 13 lines aren’t shown here.

arch/arm/lib/io-writesb.S+2−0

This diff is large: its 13 lines aren’t shown here.

arch/arm/lib/io-writesl.S+2−0

This diff is large: its 13 lines aren’t shown here.

arch/arm/lib/io-writesw-armv3.S+2−0

This diff is large: its 13 lines aren’t shown here.

arch/arm/lib/io-writesw-armv4.S+2−0

This diff is large: its 13 lines aren’t shown here.

arch/arm/lib/lib1funcs.S+9−0

This diff is large: its 58 lines aren’t shown here.

arch/arm/lib/lshrdi3.S+3−0

This diff is large: its 14 lines aren’t shown here.

arch/arm/lib/memchr.S+2−0

This diff is large: its 13 lines aren’t shown here.

arch/arm/lib/memcpy.S+3−0

This diff is large: its 14 lines aren’t shown here.

arch/arm/lib/memmove.S+2−0

This diff is large: its 13 lines aren’t shown here.

arch/arm/lib/memset.S+3−0

This diff is large: its 14 lines aren’t shown here.

arch/arm/lib/memzero.S+2−0

This diff is large: its 13 lines aren’t shown here.

arch/arm/lib/muldi3.S+3−0

This diff is large: its 14 lines aren’t shown here.

arch/arm/lib/putuser.S+5−0

This diff is large: its 40 lines aren’t shown here.

arch/arm/lib/strchr.S+2−0

This diff is large: its 13 lines aren’t shown here.

arch/arm/lib/strrchr.S+2−0

This diff is large: its 13 lines aren’t shown here.

arch/arm/lib/uaccess_with_memcpy.c+3−0

This diff is large: its 24 lines aren’t shown here.

arch/arm/lib/ucmpdi2.S+3−0

This diff is large: its 24 lines aren’t shown here.

arch/arm/mach-at91/Kconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-axxia/Kconfig+0−2

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-bcm/Kconfig+14−1

This diff is large: its 29 lines aren’t shown here.

arch/arm/mach-bcm/brcmstb.c+16−0

This diff is large: its 23 lines aren’t shown here.

arch/arm/mach-clps711x/Makefile.boot+0−0

Empty file deleted.

arch/arm/mach-clps711x/board-autcpu12.c+0−275

This diff is large: its 276 lines aren’t shown here.

arch/arm/mach-clps711x/board-cdb89712.c+0−147

This diff is large: its 148 lines aren’t shown here.

arch/arm/mach-clps711x/board-clep7312.c+0−45

This diff is large: its 46 lines aren’t shown here.

arch/arm/mach-clps711x/board-edb7211.c+0−188

This diff is large: its 189 lines aren’t shown here.

arch/arm/mach-clps711x/board-p720t.c+0−373

This diff is large: its 374 lines aren’t shown here.

arch/arm/mach-clps711x/common.c+0−65

This diff is large: its 66 lines aren’t shown here.

arch/arm/mach-clps711x/common.h+0−23

This diff is large: its 24 lines aren’t shown here.

arch/arm/mach-clps711x/devices.c+0−149

This diff is large: its 150 lines aren’t shown here.

arch/arm/mach-clps711x/devices.h+0−12

This diff is large: its 13 lines aren’t shown here.

arch/arm/mach-cns3xxx/Kconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-davinci/da850.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-davinci/da8xx-dt.c+2−0

This diff is large: its 16 lines aren’t shown here.

arch/arm/mach-exynos/Kconfig+1−2

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-exynos/exynos.c+0−15

This diff is large: its 26 lines aren’t shown here.

arch/arm/mach-exynos/include/mach/map.h+0−5

This diff is large: its 12 lines aren’t shown here.

arch/arm/mach-exynos/suspend.c+6−0

This diff is large: its 13 lines aren’t shown here.

arch/arm/mach-footbridge/include/mach/hardware.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-imx/Kconfig+12−40

This diff is large: its 101 lines aren’t shown here.

arch/arm/mach-imx/Makefile+2−7

This diff is large: its 35 lines aren’t shown here.

arch/arm/mach-imx/common.h+1−6

This diff is large: its 39 lines aren’t shown here.

arch/arm/mach-imx/cpuidle-imx6q.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-imx/cpuidle-imx6sx.c+11−0

This diff is large: its 32 lines aren’t shown here.

arch/arm/mach-imx/devices-imx1.h+0−30

This diff is large: its 31 lines aren’t shown here.

arch/arm/mach-imx/devices/Makefile+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-imx/devices/devices-common.h+0−12

This diff is large: its 19 lines aren’t shown here.

arch/arm/mach-imx/devices/platform-imx-fb.c+0−5

This diff is large: its 12 lines aren’t shown here.

arch/arm/mach-imx/devices/platform-imx-i2c.c+0−5

This diff is large: its 12 lines aren’t shown here.

arch/arm/mach-imx/devices/platform-imx-uart.c+0−37

This diff is large: its 51 lines aren’t shown here.

arch/arm/mach-imx/devices/platform-spi_imx.c+0−9

This diff is large: its 16 lines aren’t shown here.

arch/arm/mach-imx/hardware.h+1−2

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-imx/iomux-mx1.h+0−155

This diff is large: its 156 lines aren’t shown here.

arch/arm/mach-imx/iomux-mx3.h+0−34

This diff is large: its 49 lines aren’t shown here.

arch/arm/mach-imx/mach-apf9328.c+0−148

This diff is large: its 149 lines aren’t shown here.

arch/arm/mach-imx/mach-armadillo5x0.c+23−16

This diff is large: its 76 lines aren’t shown here.

arch/arm/mach-imx/mach-imx1.crenamed from arch/arm/mach-imx/imx1-dt.c+21−2

This diff is large: its 40 lines aren’t shown here.

arch/arm/mach-imx/mach-imx27_visstrim_m10.c+17−7

This diff is large: its 63 lines aren’t shown here.

arch/arm/mach-imx/mach-imx6ul.c+4−0

This diff is large: its 25 lines aren’t shown here.

arch/arm/mach-imx/mach-kzm_arm11_01.c+10−5

This diff is large: its 54 lines aren’t shown here.

arch/arm/mach-imx/mach-mx21ads.c+9−4

This diff is large: its 29 lines aren’t shown here.

arch/arm/mach-imx/mach-mx27_3ds.c+20−10

This diff is large: its 70 lines aren’t shown here.

arch/arm/mach-imx/mach-mx27ads.c+10−3

This diff is large: its 31 lines aren’t shown here.

arch/arm/mach-imx/mach-mx31_3ds.c+23−16

This diff is large: its 80 lines aren’t shown here.

arch/arm/mach-imx/mach-mx31ads.c+9−9

This diff is large: its 39 lines aren’t shown here.

arch/arm/mach-imx/mach-mx31lilly.c+37−13

This diff is large: its 79 lines aren’t shown here.

arch/arm/mach-imx/mach-mx31lite.c+48−20

This diff is large: its 130 lines aren’t shown here.

arch/arm/mach-imx/mach-mx31moboard.c+14−9

This diff is large: its 58 lines aren’t shown here.

arch/arm/mach-imx/mach-mx35_3ds.c+10−5

This diff is large: its 43 lines aren’t shown here.

arch/arm/mach-imx/mach-pca100.c+15−11

This diff is large: its 56 lines aren’t shown here.

arch/arm/mach-imx/mach-pcm037.c+34−35

This diff is large: its 114 lines aren’t shown here.

arch/arm/mach-imx/mach-pcm043.c+8−2

This diff is large: its 30 lines aren’t shown here.

arch/arm/mach-imx/mach-qong.c+1−1

This diff is large: its 15 lines aren’t shown here.

arch/arm/mach-imx/mach-scb9328.c+0−143

This diff is large: its 144 lines aren’t shown here.

arch/arm/mach-imx/mach-vpr200.c+17−12

This diff is large: its 49 lines aren’t shown here.

arch/arm/mach-imx/mm-imx1.c+0−67

This diff is large: its 68 lines aren’t shown here.

arch/arm/mach-imx/mx1.h+0−172

This diff is large: its 173 lines aren’t shown here.

arch/arm/mach-imx/mx31lilly-db.c+0−20

This diff is large: its 41 lines aren’t shown here.

arch/arm/mach-imx/mx31lite-db.c+0−33

This diff is large: its 62 lines aren’t shown here.

arch/arm/mach-imx/pm-imx6.c+6−6

This diff is large: its 54 lines aren’t shown here.

arch/arm/mach-imx/ssi-fiq-ksym.c+0−20

This diff is large: its 21 lines aren’t shown here.

arch/arm/mach-imx/ssi-fiq.S+6−1

This diff is large: its 18 lines aren’t shown here.

arch/arm/mach-integrator/Kconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-integrator/integrator_ap.c+0−36

This diff is large: its 83 lines aren’t shown here.

arch/arm/mach-integrator/integrator_cp.c+13−110

This diff is large: its 188 lines aren’t shown here.

arch/arm/mach-keystone/Kconfig+0−2

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-mv78xx0/common.c+2−7

This diff is large: its 30 lines aren’t shown here.

arch/arm/mach-mxs/mach-mxs.c+0−77

This diff is large: its 91 lines aren’t shown here.

arch/arm/mach-nomadik/Kconfig+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-omap1/board-h2-mmc.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-omap1/board-h2.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-omap1/board-h3-mmc.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-omap1/board-h3.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-omap1/board-htcherald.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/arm/mach-omap1/board-innovator.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/arm/mach-omap1/board-nokia770.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/arm/mach-omap1/board-sx1-mmc.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-omap1/devices.c+5−5

This diff is large: its 45 lines aren’t shown here.

arch/arm/mach-omap1/fb.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-omap1/include/mach/usb.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-omap1/mmc.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-omap1/usb.c+3−3

This diff is large: its 27 lines aren’t shown here.

arch/arm/mach-omap2/Kconfig+0−12

This diff is large: its 26 lines aren’t shown here.

arch/arm/mach-omap2/Makefile+0−4

This diff is large: its 12 lines aren’t shown here.

arch/arm/mach-omap2/board-flash.c+4−6

This diff is large: its 32 lines aren’t shown here.

arch/arm/mach-omap2/board-flash.h+3−8

This diff is large: its 32 lines aren’t shown here.

arch/arm/mach-omap2/board-ldp.c+0−430

This diff is large: its 431 lines aren’t shown here.

arch/arm/mach-omap2/board-n8x0.c+2−3

This diff is large: its 19 lines aren’t shown here.

arch/arm/mach-omap2/board-rx51-peripherals.c+0−1312

This diff is large: its 1313 lines aren’t shown here.

arch/arm/mach-omap2/board-rx51-video.c+0−67

This diff is large: its 68 lines aren’t shown here.

arch/arm/mach-omap2/board-rx51.c+0−141

This diff is large: its 142 lines aren’t shown here.

arch/arm/mach-omap2/board-rx51.h+0−11

This diff is large: its 12 lines aren’t shown here.

arch/arm/mach-omap2/cm33xx.c+0−6

This diff is large: its 20 lines aren’t shown here.

arch/arm/mach-omap2/cminst44xx.c+0−6

This diff is large: its 20 lines aren’t shown here.

arch/arm/mach-omap2/common-board-devices.c+1−2

This diff is large: its 10 lines aren’t shown here.

arch/arm/mach-omap2/devices.c+3−4

This diff is large: its 21 lines aren’t shown here.

arch/arm/mach-omap2/drm.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-omap2/fb.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-omap2/gpmc-smsc911x.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-omap2/hsmmc.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-omap2/hsmmc.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-omap2/omap-wakeupgen.c+13−22

This diff is large: its 48 lines aren’t shown here.

arch/arm/mach-omap2/omap_hwmod.c+8−0

This diff is large: its 22 lines aren’t shown here.

arch/arm/mach-omap2/omap_hwmod.h+4−0

This diff is large: its 13 lines aren’t shown here.

arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c+2−0

This diff is large: its 16 lines aren’t shown here.

arch/arm/mach-omap2/omap_hwmod_3xxx_data.c+12−0

This diff is large: its 21 lines aren’t shown here.

arch/arm/mach-omap2/twl-common.c+1−2

This diff is large: its 10 lines aren’t shown here.

arch/arm/mach-orion5x/common.c+2−2

This diff is large: its 12 lines aren’t shown here.

arch/arm/mach-orion5x/common.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-orion5x/rd88f5181l-fxo-setup.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/arm/mach-orion5x/rd88f5181l-ge-setup.c+2−3

This diff is large: its 19 lines aren’t shown here.

arch/arm/mach-orion5x/rd88f6183ap-ge-setup.c+2−4

This diff is large: its 27 lines aren’t shown here.

arch/arm/mach-orion5x/wnr854t-setup.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/arm/mach-orion5x/wrt350n-v2-setup.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/arm/mach-pxa/Kconfig+11−0

This diff is large: its 18 lines aren’t shown here.

arch/arm/mach-pxa/Makefile+2−1

This diff is large: its 11 lines aren’t shown here.

arch/arm/mach-pxa/corgi_pm.c+4−9

This diff is large: its 21 lines aren’t shown here.

arch/arm/mach-pxa/devices.h+1−0

This diff is large: its 5 lines aren’t shown here.

arch/arm/mach-pxa/generic.h+0−2

This diff is large: its 15 lines aren’t shown here.

arch/arm/mach-pxa/hx4700.c+1−1

This diff is large: its 12 lines aren’t shown here.

arch/arm/mach-pxa/include/mach/dma.h+0−1

This diff is large: its 6 lines aren’t shown here.

arch/arm/mach-pxa/lubbock.c+14−0

This diff is large: its 28 lines aren’t shown here.

arch/arm/mach-pxa/magician.c+1−5

This diff is large: its 23 lines aren’t shown here.

arch/arm/mach-pxa/pm.c+3−2

This diff is large: its 12 lines aren’t shown here.

arch/arm/mach-pxa/pxa-dt.c+22−13

This diff is large: its 55 lines aren’t shown here.

arch/arm/mach-pxa/pxa25x.c+17−9

This diff is large: its 52 lines aren’t shown here.

arch/arm/mach-pxa/pxa27x.c+8−6

This diff is large: its 37 lines aren’t shown here.

arch/arm/mach-pxa/pxa3xx.c+7−4

This diff is large: its 36 lines aren’t shown here.

arch/arm/mach-pxa/pxa_cplds_irqs.c+15−9

This diff is large: its 54 lines aren’t shown here.

arch/arm/mach-pxa/sharpsl_pm.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-pxa/sharpsl_pm.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-pxa/spitz_pm.c+3−6

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-qcom/Makefile+0−1

This diff is large: its 3 lines aren’t shown here.

arch/arm/mach-realview/Kconfig+11−61

This diff is large: its 143 lines aren’t shown here.

arch/arm/mach-realview/Makefile+1−11

This diff is large: its 18 lines aren’t shown here.

arch/arm/mach-realview/board-eb.h+0−94

This diff is large: its 95 lines aren’t shown here.

arch/arm/mach-realview/board-pb1176.h+0−81

This diff is large: its 82 lines aren’t shown here.

arch/arm/mach-realview/board-pb11mp.h+0−96

This diff is large: its 97 lines aren’t shown here.

arch/arm/mach-realview/board-pba8.h+0−71

This diff is large: its 72 lines aren’t shown here.

arch/arm/mach-realview/board-pbx.h+0−106

This diff is large: its 107 lines aren’t shown here.

arch/arm/mach-realview/core.c+0−405

This diff is large: its 406 lines aren’t shown here.

arch/arm/mach-realview/core.h+0−58

This diff is large: its 59 lines aren’t shown here.

arch/arm/mach-realview/hardware.h+0−40

This diff is large: its 41 lines aren’t shown here.

arch/arm/mach-realview/hotplug.h+1−0

This diff is large: its 2 lines aren’t shown here.

arch/arm/mach-realview/irqs-eb.h+0−114

This diff is large: its 115 lines aren’t shown here.

arch/arm/mach-realview/irqs-pb1176.h+0−77

This diff is large: its 78 lines aren’t shown here.

arch/arm/mach-realview/irqs-pb11mp.h+0−97

This diff is large: its 98 lines aren’t shown here.

arch/arm/mach-realview/irqs-pba8.h+0−71

This diff is large: its 72 lines aren’t shown here.

arch/arm/mach-realview/irqs-pbx.h+0−87

This diff is large: its 88 lines aren’t shown here.

arch/arm/mach-realview/platform.h+0−247

This diff is large: its 248 lines aren’t shown here.

arch/arm/mach-realview/platsmp-dt.c+1−2

This diff is large: its 10 lines aren’t shown here.

arch/arm/mach-realview/platsmp.c+0−86

This diff is large: its 87 lines aren’t shown here.

arch/arm/mach-realview/realview_eb.c+0−492

This diff is large: its 493 lines aren’t shown here.

arch/arm/mach-realview/realview_pb1176.c+0−395

This diff is large: its 396 lines aren’t shown here.

arch/arm/mach-realview/realview_pb11mp.c+0−385

This diff is large: its 386 lines aren’t shown here.

arch/arm/mach-realview/realview_pba8.c+0−307

This diff is large: its 308 lines aren’t shown here.

arch/arm/mach-realview/realview_pbx.c+0−402

This diff is large: its 403 lines aren’t shown here.

arch/arm/mach-rpc/include/mach/hardware.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-s3c24xx/common.c+50−5

This diff is large: its 115 lines aren’t shown here.

arch/arm/mach-s3c24xx/mach-mini2440.c+20−0

This diff is large: its 37 lines aren’t shown here.

arch/arm/mach-s3c64xx/mach-crag6410-module.c+1−2

This diff is large: its 10 lines aren’t shown here.

arch/arm/mach-sa1100/clock.c+3−2

This diff is large: its 20 lines aren’t shown here.

arch/arm/mach-sa1100/generic.c+4−0

This diff is large: its 25 lines aren’t shown here.

arch/arm/mach-sa1100/generic.h+2−0

This diff is large: its 6 lines aren’t shown here.

arch/arm/mach-sa1100/h3xxx.c+1−1

This diff is large: its 11 lines aren’t shown here.

arch/arm/mach-sa1100/include/mach/hardware.h+1−19

This diff is large: its 38 lines aren’t shown here.

arch/arm/mach-sa1100/jornada720.c+16−0

This diff is large: its 40 lines aren’t shown here.

arch/arm/mach-shmobile/Kconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-shmobile/platsmp-scu.c+8−18

This diff is large: its 43 lines aren’t shown here.

arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c+26−36

This diff is large: its 79 lines aren’t shown here.

arch/arm/mach-shmobile/setup-r8a7790.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-shmobile/setup-r8a7791.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-spear/Kconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-sunxi/Kconfig+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-sunxi/sunxi.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-uniphier/Makefile+1−1

This diff is large: its 3 lines aren’t shown here.

arch/arm/mach-uniphier/headsmp.S+0−43

This diff is large: its 44 lines aren’t shown here.

arch/arm/mach-uniphier/platsmp.c+0−209

This diff is large: its 210 lines aren’t shown here.

arch/arm/mach-versatile/Kconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mm/Kconfig+14−3

This diff is large: its 58 lines aren’t shown here.

arch/arm/mm/Makefile+3−0

This diff is large: its 20 lines aren’t shown here.

arch/arm/mm/cache-l2x0-pmu.c+584−0

This diff is large: its 585 lines aren’t shown here.

arch/arm/mm/cache-l2x0.c+8−3

This diff is large: its 39 lines aren’t shown here.

arch/arm/mm/cache-uniphier.c+3−60

This diff is large: its 106 lines aren’t shown here.

arch/arm/mm/cache-v7m.S+453−0

This diff is large: its 454 lines aren’t shown here.

arch/arm/mm/dma-mapping.c+65−2

This diff is large: its 102 lines aren’t shown here.

arch/arm/mm/fault.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mm/mmu.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/arm/mm/proc-macros.S+16−0

This diff is large: its 39 lines aren’t shown here.

arch/arm/mm/proc-v7.S+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mm/proc-v7m.S+94−14

This diff is large: its 156 lines aren’t shown here.

arch/arm/plat-orion/common.c+33−52

This diff is large: its 217 lines aren’t shown here.

arch/arm/plat-orion/include/plat/common.h+3−7

This diff is large: its 25 lines aren’t shown here.

arch/arm/plat-pxa/Makefile+0−2

This diff is large: its 9 lines aren’t shown here.

arch/arm/plat-pxa/dma.c+0−386

This diff is large: its 387 lines aren’t shown here.

arch/arm/plat-pxa/include/plat/dma.h+0−100

This diff is large: its 101 lines aren’t shown here.

arch/arm/plat-samsung/include/plat/map-s5p.h+0−4

This diff is large: its 11 lines aren’t shown here.

arch/arm/xen/enlighten.c+3−4

This diff is large: its 28 lines aren’t shown here.

arch/arm64/Kconfig+22−17

This diff is large: its 106 lines aren’t shown here.

arch/arm64/Kconfig.debug+0−10

This diff is large: its 17 lines aren’t shown here.

arch/arm64/Kconfig.platforms+25−7

This diff is large: its 120 lines aren’t shown here.

arch/arm64/Makefile+11−1

This diff is large: its 30 lines aren’t shown here.

arch/arm64/boot/dts/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi+4−4

This diff is large: its 15 lines aren’t shown here.

arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts+11−0

This diff is large: its 15 lines aren’t shown here.

arch/arm64/boot/dts/amlogic/meson-gxbb-p200.dts+6−0

This diff is large: its 10 lines aren’t shown here.

arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi+35−0

This diff is large: its 46 lines aren’t shown here.

arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi+42−0

This diff is large: its 53 lines aren’t shown here.

arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi+330−7

This diff is large: its 439 lines aren’t shown here.

arch/arm64/boot/dts/apm/apm-mustang.dts+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm64/boot/dts/apm/apm-shadowcat.dtsi+127−8

This diff is large: its 226 lines aren’t shown here.

arch/arm64/boot/dts/apm/apm-storm.dtsi+88−25

This diff is large: its 176 lines aren’t shown here.

arch/arm64/boot/dts/broadcom/bcm2835-rpi.dtsi+1−0

This diff is large: its 2 lines aren’t shown here.

arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dts+2−2

This diff is large: its 10 lines aren’t shown here.

arch/arm64/boot/dts/broadcom/bcm2837.dtsi+1−1

This diff is large: its 6 lines aren’t shown here.

arch/arm64/boot/dts/broadcom/bcm283x-rpi-smsc9514.dtsi+1−0

This diff is large: its 2 lines aren’t shown here.

arch/arm64/boot/dts/broadcom/bcm283x.dtsi+1−0

This diff is large: its 2 lines aren’t shown here.

arch/arm64/boot/dts/broadcom/ns2.dtsi+12−4

This diff is large: its 33 lines aren’t shown here.

arch/arm64/boot/dts/cavium/thunder-88xx.dtsi+4−4

This diff is large: its 15 lines aren’t shown here.

arch/arm64/boot/dts/exynos/exynos7.dtsi+9−4

This diff is large: its 27 lines aren’t shown here.

arch/arm64/boot/dts/freescale/fsl-ls1043a-qds.dts+8−6

This diff is large: its 21 lines aren’t shown here.

arch/arm64/boot/dts/freescale/fsl-ls1043a-rdb.dts+8−0

This diff is large: its 15 lines aren’t shown here.

arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi+13−5

This diff is large: its 42 lines aren’t shown here.

arch/arm64/boot/dts/freescale/fsl-ls2080a-qds.dts+3−0

This diff is large: its 10 lines aren’t shown here.

arch/arm64/boot/dts/freescale/fsl-ls2080a-rdb.dts+4−0

This diff is large: its 11 lines aren’t shown here.

arch/arm64/boot/dts/freescale/fsl-ls2080a.dtsi+24−4

This diff is large: its 82 lines aren’t shown here.

arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts+84−2

This diff is large: its 112 lines aren’t shown here.

arch/arm64/boot/dts/hisilicon/hi6220.dtsi+61−0

This diff is large: its 101 lines aren’t shown here.

arch/arm64/boot/dts/hisilicon/hip05.dtsi+0−5

This diff is large: its 12 lines aren’t shown here.

arch/arm64/boot/dts/hisilicon/hip05_hns.dtsi+0−180

This diff is large: its 181 lines aren’t shown here.

arch/arm64/boot/dts/hisilicon/hip06-d03.dts+28−0

This diff is large: its 35 lines aren’t shown here.

arch/arm64/boot/dts/hisilicon/hip06.dtsi+365−0

This diff is large: its 379 lines aren’t shown here.

arch/arm64/boot/dts/marvell/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm64/boot/dts/marvell/armada-8020.dtsi+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm64/boot/dts/marvell/armada-8040-db.dts+150−0

This diff is large: its 151 lines aren’t shown here.

arch/arm64/boot/dts/marvell/armada-8040.dtsi+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm64/boot/dts/marvell/armada-ap806.dtsi+18−4

This diff is large: its 36 lines aren’t shown here.

arch/arm64/boot/dts/marvell/armada-cp110-master.dtsi+3−0

This diff is large: its 24 lines aren’t shown here.

arch/arm64/boot/dts/marvell/armada-cp110-slave.dtsi+249−0

This diff is large: its 250 lines aren’t shown here.

arch/arm64/boot/dts/marvell/berlin4ct.dtsi+9−3

This diff is large: its 64 lines aren’t shown here.

arch/arm64/boot/dts/mediatek/mt8173-evb.dts+38−0

This diff is large: its 45 lines aren’t shown here.

arch/arm64/boot/dts/mediatek/mt8173.dtsi+77−0

This diff is large: its 119 lines aren’t shown here.

arch/arm64/boot/dts/nvidia/tegra132.dtsi+117−2

This diff is large: its 140 lines aren’t shown here.

arch/arm64/boot/dts/nvidia/tegra210-smaug.dts+120−0

This diff is large: its 154 lines aren’t shown here.

arch/arm64/boot/dts/nvidia/tegra210.dtsi+199−7

This diff is large: its 303 lines aren’t shown here.

arch/arm64/boot/dts/qcom/Makefile+1−0

This diff is large: its 7 lines aren’t shown here.

arch/arm64/boot/dts/qcom/apq8016-sbc-soc-pins.dtsi+48−0

This diff is large: its 53 lines aren’t shown here.

arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi+82−0

This diff is large: its 103 lines aren’t shown here.

arch/arm64/boot/dts/qcom/apq8096-db820c-pins.dtsi+39−0

This diff is large: its 40 lines aren’t shown here.

arch/arm64/boot/dts/qcom/apq8096-db820c.dtsrenamed from arch/arm/mach-qcom/board.c+7−17

This diff is large: its 35 lines aren’t shown here.

arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi+88−0

This diff is large: its 89 lines aren’t shown here.

arch/arm64/boot/dts/qcom/msm8916.dtsi+280−6

This diff is large: its 359 lines aren’t shown here.

arch/arm64/boot/dts/qcom/msm8996.dtsi+93−1

This diff is large: its 115 lines aren’t shown here.

arch/arm64/boot/dts/renesas/Makefile+1−1

This diff is large: its 6 lines aren’t shown here.

arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts+328−0

This diff is large: its 329 lines aren’t shown here.

arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts+87−0

This diff is large: its 143 lines aren’t shown here.

arch/arm64/boot/dts/renesas/r8a7795.dtsi+272−4

This diff is large: its 333 lines aren’t shown here.

arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts+16−0

This diff is large: its 28 lines aren’t shown here.

arch/arm64/boot/dts/renesas/r8a7796.dtsi+117−0

This diff is large: its 124 lines aren’t shown here.

arch/arm64/boot/dts/rockchip/Makefile+1−0

This diff is large: its 7 lines aren’t shown here.

arch/arm64/boot/dts/rockchip/rk3368-orion-r68-meta.dts+382−0

This diff is large: its 383 lines aren’t shown here.

arch/arm64/boot/dts/rockchip/rk3368-r88.dts+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm64/boot/dts/rockchip/rk3368.dtsi+10−0

This diff is large: its 24 lines aren’t shown here.

arch/arm64/boot/dts/rockchip/rk3399-evb.dts+87−0

This diff is large: its 125 lines aren’t shown here.

arch/arm64/boot/dts/rockchip/rk3399.dtsi+554−53

This diff is large: its 992 lines aren’t shown here.

arch/arm64/boot/dts/socionext/Makefile+3−1

This diff is large: its 8 lines aren’t shown here.

arch/arm64/boot/dts/socionext/uniphier-ld11-ref.dts+100−0

This diff is large: its 101 lines aren’t shown here.

arch/arm64/boot/dts/socionext/uniphier-ld11.dtsi+338−0

This diff is large: its 339 lines aren’t shown here.

arch/arm64/boot/dts/socionext/uniphier-ld20-ref.dtsrenamed from arch/arm64/boot/dts/socionext/uniphier-ph1-ld20-ref.dts+6−5

This diff is large: its 28 lines aren’t shown here.

arch/arm64/boot/dts/socionext/uniphier-ld20.dtsirenamed from arch/arm64/boot/dts/socionext/uniphier-ph1-ld20.dtsi+71−31

This diff is large: its 221 lines aren’t shown here.

arch/arm64/boot/dts/xilinx/zynqmp-ep108.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm64/boot/dts/xilinx/zynqmp.dtsi+74−34

This diff is large: its 313 lines aren’t shown here.

arch/arm64/boot/dts/zte/Makefile+5−0

This diff is large: its 6 lines aren’t shown here.

arch/arm64/boot/dts/zte/zx296718-evb.dts+64−0

This diff is large: its 65 lines aren’t shown here.

arch/arm64/boot/dts/zte/zx296718.dtsi+292−0

This diff is large: its 293 lines aren’t shown here.

arch/arm64/configs/defconfig+33−2

This diff is large: its 169 lines aren’t shown here.

arch/arm64/crypto/aes-glue.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm64/include/asm/Kbuild+0−5

This diff is large: its 34 lines aren’t shown here.

arch/arm64/include/asm/acpi.h+6−2

This diff is large: its 22 lines aren’t shown here.

arch/arm64/include/asm/alternative.h+53−18

This diff is large: its 112 lines aren’t shown here.

arch/arm64/include/asm/arch_gicv3.h+19−0

This diff is large: its 40 lines aren’t shown here.

arch/arm64/include/asm/arch_timer.h+55−27

This diff is large: its 151 lines aren’t shown here.

arch/arm64/include/asm/assembler.h+49−4

This diff is large: its 84 lines aren’t shown here.

arch/arm64/include/asm/atomic_lse.h+27−37

This diff is large: its 172 lines aren’t shown here.

arch/arm64/include/asm/barrier.h+3−0

This diff is large: its 10 lines aren’t shown here.

arch/arm64/include/asm/cacheflush.h+2−1

This diff is large: its 17 lines aren’t shown here.

arch/arm64/include/asm/clocksource.h+8−0

This diff is large: its 9 lines aren’t shown here.

arch/arm64/include/asm/cmpxchg.h+1−3

This diff is large: its 12 lines aren’t shown here.

arch/arm64/include/asm/cpufeature.h+27−17

This diff is large: its 125 lines aren’t shown here.

arch/arm64/include/asm/cputype.h+1−5

This diff is large: its 13 lines aren’t shown here.

arch/arm64/include/asm/dcc.h+4−10

This diff is large: its 35 lines aren’t shown here.

arch/arm64/include/asm/debug-monitors.h+0−2

This diff is large: its 9 lines aren’t shown here.

arch/arm64/include/asm/esr.h+75−9

This diff is large: its 106 lines aren’t shown here.

arch/arm64/include/asm/exec.h+3−0

This diff is large: its 10 lines aren’t shown here.

arch/arm64/include/asm/hw_breakpoint.h+7−8

This diff is large: its 42 lines aren’t shown here.

arch/arm64/include/asm/insn.h+10−1

This diff is large: its 32 lines aren’t shown here.

arch/arm64/include/asm/io.h+4−15

This diff is large: its 48 lines aren’t shown here.

arch/arm64/include/asm/kvm_arm.h+2−2

This diff is large: its 18 lines aren’t shown here.

arch/arm64/include/asm/kvm_asm.h+7−2

This diff is large: its 18 lines aren’t shown here.

arch/arm64/include/asm/kvm_emulate.h+17−5

This diff is large: its 50 lines aren’t shown here.

arch/arm64/include/asm/kvm_host.h+6−6

This diff is large: its 22 lines aren’t shown here.

arch/arm64/include/asm/kvm_hyp.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm64/include/asm/kvm_mmu.h+3−13

This diff is large: its 31 lines aren’t shown here.

arch/arm64/include/asm/memory.h+6−2

This diff is large: its 26 lines aren’t shown here.

arch/arm64/include/asm/mmu_context.h+13−23

This diff is large: its 62 lines aren’t shown here.

arch/arm64/include/asm/module.h+5−0

This diff is large: its 19 lines aren’t shown here.

arch/arm64/include/asm/percpu.h+60−68

This diff is large: its 174 lines aren’t shown here.

arch/arm64/include/asm/pgtable-hwdef.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm64/include/asm/pgtable-prot.h+3−2

This diff is large: its 24 lines aren’t shown here.

arch/arm64/include/asm/pgtable.h+15−5

This diff is large: its 55 lines aren’t shown here.

arch/arm64/include/asm/processor.h+3−5

This diff is large: its 28 lines aren’t shown here.

arch/arm64/include/asm/sections.h+30−0

This diff is large: its 31 lines aren’t shown here.

arch/arm64/include/asm/spinlock.h+21−16

This diff is large: its 98 lines aren’t shown here.

arch/arm64/include/asm/suspend.h+3−0

This diff is large: its 8 lines aren’t shown here.

arch/arm64/include/asm/sysreg.h+32−12

This diff is large: its 69 lines aren’t shown here.

arch/arm64/include/asm/system_misc.h+0−6

This diff is large: its 13 lines aren’t shown here.

arch/arm64/include/asm/thread_info.h+3−0

This diff is large: its 10 lines aren’t shown here.

arch/arm64/include/asm/tlbflush.h+26−8

This diff is large: its 91 lines aren’t shown here.

arch/arm64/include/asm/traps.h+1−5

This diff is large: its 27 lines aren’t shown here.

arch/arm64/include/asm/uaccess.h+14−4

This diff is large: its 43 lines aren’t shown here.

arch/arm64/include/asm/virt.h+3−12

This diff is large: its 36 lines aren’t shown here.

arch/arm64/kernel/Makefile+2−0

This diff is large: its 9 lines aren’t shown here.

arch/arm64/kernel/acpi.c+10−1

This diff is large: its 32 lines aren’t shown here.

arch/arm64/kernel/acpi_numa.c+3−1

This diff is large: its 12 lines aren’t shown here.

arch/arm64/kernel/alternative.c+24−4

This diff is large: its 62 lines aren’t shown here.

arch/arm64/kernel/armv8_deprecated.c+22−14

This diff is large: its 71 lines aren’t shown here.

arch/arm64/kernel/asm-offsets.c+2−0

This diff is large: its 15 lines aren’t shown here.

arch/arm64/kernel/cacheinfo.c+3−5

This diff is large: its 23 lines aren’t shown here.

arch/arm64/kernel/cpu_errata.c+25−2

This diff is large: its 55 lines aren’t shown here.

arch/arm64/kernel/cpu_ops.c+2−1

This diff is large: its 17 lines aren’t shown here.

arch/arm64/kernel/cpufeature.c+85−62

This diff is large: its 371 lines aren’t shown here.

arch/arm64/kernel/cpuinfo.c+0−2

This diff is large: its 9 lines aren’t shown here.

arch/arm64/kernel/debug-monitors.c+15−33

This diff is large: its 94 lines aren’t shown here.

arch/arm64/kernel/entry-ftrace.S+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm64/kernel/entry.S+7−17

This diff is large: its 63 lines aren’t shown here.

arch/arm64/kernel/fpsimd.c+5−17

This diff is large: its 34 lines aren’t shown here.

arch/arm64/kernel/ftrace.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm64/kernel/head.S+113−90

This diff is large: its 408 lines aren’t shown here.

arch/arm64/kernel/hibernate-asm.S+3−3

This diff is large: its 20 lines aren’t shown here.

arch/arm64/kernel/hibernate.c+82−36

This diff is large: its 226 lines aren’t shown here.

arch/arm64/kernel/hw_breakpoint.c+16−32

This diff is large: its 90 lines aren’t shown here.

arch/arm64/kernel/insn.c+14−1

This diff is large: its 29 lines aren’t shown here.

arch/arm64/kernel/kaslr.c+2−1

This diff is large: its 17 lines aren’t shown here.

arch/arm64/kernel/kgdb.c+24−12

This diff is large: its 51 lines aren’t shown here.

arch/arm64/kernel/perf_event.c+78−22

This diff is large: its 199 lines aren’t shown here.

arch/arm64/kernel/probes/decode-insn.c+23−25

This diff is large: its 72 lines aren’t shown here.

arch/arm64/kernel/probes/kprobes.c+15−21

This diff is large: its 85 lines aren’t shown here.

arch/arm64/kernel/process.c+22−18

This diff is large: its 99 lines aren’t shown here.

arch/arm64/kernel/relocate_kernel.S+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm64/kernel/setup.c+8−3

This diff is large: its 27 lines aren’t shown here.

arch/arm64/kernel/signal.c+26−10

This diff is large: its 42 lines aren’t shown here.

arch/arm64/kernel/sleep.S+12−19

This diff is large: its 68 lines aren’t shown here.

arch/arm64/kernel/smp.c+20−9

This diff is large: its 90 lines aren’t shown here.

arch/arm64/kernel/smp_spin_table.c+2−1

This diff is large: its 10 lines aren’t shown here.

arch/arm64/kernel/stacktrace.c+25−1

This diff is large: its 47 lines aren’t shown here.

arch/arm64/kernel/suspend.c+17−4

This diff is large: its 58 lines aren’t shown here.

arch/arm64/kernel/sys_compat.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm64/kernel/traps.c+84−45

This diff is large: its 166 lines aren’t shown here.

arch/arm64/kernel/vdso.c+18−18

This diff is large: its 95 lines aren’t shown here.

arch/arm64/kernel/vmlinux.lds.S+20−0

This diff is large: its 34 lines aren’t shown here.

arch/arm64/kvm/Kconfig+2−2

This diff is large: its 18 lines aren’t shown here.

arch/arm64/kvm/Makefile+2−1

This diff is large: its 12 lines aren’t shown here.

arch/arm64/kvm/handle_exit.c+23−0

This diff is large: its 33 lines aren’t shown here.

arch/arm64/kvm/hyp.S+1−5

This diff is large: its 12 lines aren’t shown here.

arch/arm64/kvm/hyp/Makefile+1−1

This diff is large: its 11 lines aren’t shown here.

arch/arm64/kvm/hyp/debug-sr.c+1−3

This diff is large: its 11 lines aren’t shown here.

arch/arm64/kvm/hyp/entry.S+80−48

This diff is large: its 160 lines aren’t shown here.

arch/arm64/kvm/hyp/hyp-entry.S+44−29

This diff is large: its 138 lines aren’t shown here.

arch/arm64/kvm/hyp/switch.c+71−13

This diff is large: its 139 lines aren’t shown here.

arch/arm64/kvm/hyp/tlb.c+3−10

This diff is large: its 37 lines aren’t shown here.

arch/arm64/kvm/inject_fault.c+12−0

This diff is large: its 16 lines aren’t shown here.

arch/arm64/kvm/sys_regs.c+11−20

This diff is large: its 82 lines aren’t shown here.

arch/arm64/kvm/sys_regs_generic_v8.c+2−4

This diff is large: its 20 lines aren’t shown here.

arch/arm64/lib/copy_from_user.S+1−6

This diff is large: its 13 lines aren’t shown here.

arch/arm64/lib/copy_page.S+4−9

This diff is large: its 31 lines aren’t shown here.

arch/arm64/mm/cache.S+39−43

This diff is large: its 126 lines aren’t shown here.

arch/arm64/mm/dma-mapping.c+6−5

This diff is large: its 53 lines aren’t shown here.

arch/arm64/mm/extable.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm64/mm/fault.c+16−6

This diff is large: its 68 lines aren’t shown here.

arch/arm64/mm/flush.c+0−2

This diff is large: its 9 lines aren’t shown here.

arch/arm64/mm/init.c+23−18

This diff is large: its 98 lines aren’t shown here.

arch/arm64/mm/mm.h+0−2

This diff is large: its 3 lines aren’t shown here.

arch/arm64/mm/mmu.c+2−13

This diff is large: its 38 lines aren’t shown here.

arch/arm64/mm/numa.c+83−32

This diff is large: its 250 lines aren’t shown here.

arch/arm64/mm/pageattr.c+40−1

This diff is large: its 45 lines aren’t shown here.

arch/arm64/mm/pgd.c+0−2

This diff is large: its 9 lines aren’t shown here.

arch/arm64/mm/proc.S+6−7

This diff is large: its 49 lines aren’t shown here.

arch/avr32/include/asm/uaccess.h+10−1

This diff is large: its 25 lines aren’t shown here.

arch/avr32/kernel/avr32_ksyms.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/avr32/kernel/traps.c+2−1

This diff is large: its 10 lines aren’t shown here.

arch/avr32/kernel/vmlinux.lds.S+1−0

This diff is large: its 8 lines aren’t shown here.

arch/avr32/lib/copy_user.S+4−4

This diff is large: its 18 lines aren’t shown here.

arch/avr32/mm/fault.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/blackfin/Kconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/blackfin/include/asm/uaccess.h+21−12

This diff is large: its 54 lines aren’t shown here.

arch/blackfin/kernel/ftrace-entry.S+2−2

This diff is large: its 18 lines aren’t shown here.

arch/blackfin/kernel/ftrace.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/blackfin/kernel/ptrace.c+3−2

This diff is large: its 19 lines aren’t shown here.

arch/blackfin/kernel/vmlinux.lds.S+1−0

This diff is large: its 8 lines aren’t shown here.

arch/blackfin/mach-bf561/coreb.c+1−12

This diff is large: its 20 lines aren’t shown here.

arch/c6x/kernel/vmlinux.lds.S+1−0

This diff is large: its 8 lines aren’t shown here.

arch/cris/Kconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/cris/arch-v10/drivers/axisflashmap.c+0−19

This diff is large: its 33 lines aren’t shown here.

arch/cris/arch-v10/drivers/eeprom.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/cris/arch-v10/lib/dram_init.S+1−1

This diff is large: its 9 lines aren’t shown here.

arch/cris/arch-v32/drivers/cryptocop.c+2−4

This diff is large: its 27 lines aren’t shown here.

arch/cris/arch-v32/drivers/pci/bios.c+1−1

This diff is large: its 8 lines aren’t shown here.

arch/cris/arch-v32/drivers/sync_serial.c+6−0

This diff is large: its 13 lines aren’t shown here.

arch/cris/arch-v32/kernel/fasttimer.c+7−8

This diff is large: its 29 lines aren’t shown here.

arch/cris/arch-v32/kernel/irq.c+1−2

This diff is large: its 11 lines aren’t shown here.

arch/cris/arch-v32/kernel/ptrace.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/cris/arch-v32/mach-a3/dma.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/cris/arch-v32/mach-a3/dram_init.S+1−1

This diff is large: its 9 lines aren’t shown here.

arch/cris/arch-v32/mach-fs/dma.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/cris/arch-v32/mach-fs/dram_init.S+1−1

This diff is large: its 9 lines aren’t shown here.

arch/cris/arch-v32/mm/intmem.c+10−3

This diff is large: its 31 lines aren’t shown here.

arch/cris/configs/artpec_3_defconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/cris/configs/dev88_defconfig+48−0

This diff is large: its 49 lines aren’t shown here.

arch/cris/configs/etrax-100lx_v2_defconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/cris/configs/etraxfs_defconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/cris/include/arch-v32/arch/cryptocop.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/cris/include/asm/io.h+1−170

This diff is large: its 184 lines aren’t shown here.

arch/cris/include/asm/uaccess.h+32−39

This diff is large: its 106 lines aren’t shown here.

arch/cris/include/uapi/arch-v10/arch/sv_addr_ag.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/cris/kernel/vmlinux.lds.S+1−0

This diff is large: its 8 lines aren’t shown here.

arch/cris/mm/fault.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/frv/include/asm/pgtable.h+1−0

This diff is large: its 7 lines aren’t shown here.

arch/frv/include/asm/segment.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/frv/include/asm/uaccess.h+9−5

This diff is large: its 38 lines aren’t shown here.

arch/frv/kernel/vmlinux.lds.S+1−0

This diff is large: its 8 lines aren’t shown here.

arch/h8300/kernel/vmlinux.lds.S+1−0

This diff is large: its 8 lines aren’t shown here.

arch/hexagon/include/asm/uaccess.h+2−1

This diff is large: its 10 lines aren’t shown here.

arch/hexagon/kernel/vmlinux.lds.S+1−0

This diff is large: its 8 lines aren’t shown here.

arch/ia64/hp/sim/boot/Makefile+1−1

This diff is large: its 7 lines aren’t shown here.

arch/ia64/include/asm/atomic.h+16−0

This diff is large: its 23 lines aren’t shown here.

arch/ia64/include/asm/export.h+3−0

This diff is large: its 4 lines aren’t shown here.

arch/ia64/include/asm/libata-portmap.h+0−4

This diff is large: its 13 lines aren’t shown here.

arch/ia64/include/asm/thread_info.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/ia64/include/asm/uaccess.h+13−20

This diff is large: its 59 lines aren’t shown here.

arch/ia64/kernel/acpi.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/ia64/kernel/entry.S+3−0

This diff is large: its 23 lines aren’t shown here.

arch/ia64/kernel/err_inject.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/ia64/kernel/esi_stub.S+2−0

This diff is large: its 13 lines aren’t shown here.

arch/ia64/kernel/head.S+2−0

This diff is large: its 16 lines aren’t shown here.

arch/ia64/kernel/ia64_ksyms.c+2−92

This diff is large: its 104 lines aren’t shown here.

arch/ia64/kernel/ivt.S+2−0

This diff is large: its 16 lines aren’t shown here.

arch/ia64/kernel/mca.c+9−27

This diff is large: its 98 lines aren’t shown here.

arch/ia64/kernel/pal.S+7−0

This diff is large: its 53 lines aren’t shown here.

arch/ia64/kernel/ptrace.c+9−5

This diff is large: its 49 lines aren’t shown here.

arch/ia64/kernel/setup.c+4−0

This diff is large: its 12 lines aren’t shown here.

arch/ia64/kernel/vmlinux.lds.S+1−0

This diff is large: its 8 lines aren’t shown here.

arch/ia64/lib/Makefile+3−5

This diff is large: its 21 lines aren’t shown here.

arch/ia64/lib/clear_page.S+2−0

This diff is large: its 13 lines aren’t shown here.

arch/ia64/lib/clear_user.S+2−0

This diff is large: its 13 lines aren’t shown here.

arch/ia64/lib/copy_page.S+2−0

This diff is large: its 13 lines aren’t shown here.

arch/ia64/lib/copy_page_mck.S+2−0

This diff is large: its 13 lines aren’t shown here.

arch/ia64/lib/copy_user.S+2−0

This diff is large: its 13 lines aren’t shown here.

arch/ia64/lib/flush.S+2−0

This diff is large: its 16 lines aren’t shown here.

arch/ia64/lib/idiv32.S+2−0

This diff is large: its 13 lines aren’t shown here.

arch/ia64/lib/idiv64.S+2−0

This diff is large: its 13 lines aren’t shown here.

arch/ia64/lib/ip_fast_csum.S+3−0

This diff is large: its 21 lines aren’t shown here.

arch/ia64/lib/memcpy.S+2−0

This diff is large: its 13 lines aren’t shown here.

arch/ia64/lib/memcpy_mck.S+3−0

This diff is large: its 21 lines aren’t shown here.

arch/ia64/lib/memset.S+2−0

This diff is large: its 13 lines aren’t shown here.

arch/ia64/lib/strlen.S+2−0

This diff is large: its 13 lines aren’t shown here.

arch/ia64/lib/strlen_user.S+2−0

This diff is large: its 13 lines aren’t shown here.

arch/ia64/lib/strncpy_from_user.S+2−0

This diff is large: its 13 lines aren’t shown here.

arch/ia64/lib/strnlen_user.S+2−0

This diff is large: its 13 lines aren’t shown here.

arch/ia64/lib/xor.S+5−0

This diff is large: its 37 lines aren’t shown here.

arch/m32r/include/asm/uaccess.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/m32r/kernel/ptrace.c+10−5

This diff is large: its 50 lines aren’t shown here.

arch/m32r/kernel/vmlinux.lds.S+1−0

This diff is large: its 8 lines aren’t shown here.

arch/m68k/Kconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m68k/Kconfig.cpu+6−0

This diff is large: its 48 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/atari/config.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/m68k/coldfire/clk.c+4−0

This diff is large: its 11 lines aren’t shown here.

arch/m68k/coldfire/head.S+4−4

This diff is large: its 15 lines aren’t shown here.

arch/m68k/coldfire/m528x.c+4−4

This diff is large: its 19 lines aren’t shown here.

arch/m68k/coldfire/m53xx.c+2−6

This diff is large: its 22 lines aren’t shown here.

arch/m68k/coldfire/m54xx.c+1−39

This diff is large: its 57 lines aren’t shown here.

arch/m68k/configs/amiga_defconfig+3−0

This diff is large: its 17 lines aren’t shown here.

arch/m68k/configs/apollo_defconfig+3−0

This diff is large: its 17 lines aren’t shown here.

arch/m68k/configs/atari_defconfig+3−0

This diff is large: its 17 lines aren’t shown here.

arch/m68k/configs/bvme6000_defconfig+3−0

This diff is large: its 17 lines aren’t shown here.

arch/m68k/configs/hp300_defconfig+3−0

This diff is large: its 17 lines aren’t shown here.

arch/m68k/configs/mac_defconfig+3−0

This diff is large: its 17 lines aren’t shown here.

arch/m68k/configs/multi_defconfig+3−0

This diff is large: its 17 lines aren’t shown here.

arch/m68k/configs/mvme147_defconfig+3−0

This diff is large: its 17 lines aren’t shown here.

arch/m68k/configs/mvme16x_defconfig+3−0

This diff is large: its 17 lines aren’t shown here.

arch/m68k/configs/q40_defconfig+3−0

This diff is large: its 17 lines aren’t shown here.

arch/m68k/configs/sun3_defconfig+3−0

This diff is large: its 17 lines aren’t shown here.

arch/m68k/configs/sun3x_defconfig+3−0

This diff is large: its 17 lines aren’t shown here.

arch/m68k/include/asm/bootinfo.h+6−0

This diff is large: its 13 lines aren’t shown here.

arch/m68k/include/asm/export.h+3−0

This diff is large: its 4 lines aren’t shown here.

arch/m68k/include/asm/m5441xsim.h+4−0

This diff is large: its 11 lines aren’t shown here.

arch/m68k/include/asm/m54xxacr.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/m68k/include/asm/m54xxsim.h+4−0

This diff is large: its 11 lines aren’t shown here.

arch/m68k/include/asm/mcfmmu.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/m68k/include/asm/nettel.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/m68k/include/asm/uaccess_no.h+0−3

This diff is large: its 10 lines aren’t shown here.

arch/m68k/include/uapi/asm/bootinfo.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/m68k/kernel/Makefile+2−1

This diff is large: its 17 lines aren’t shown here.

arch/m68k/kernel/m68k_ksyms.c+0−32

This diff is large: its 33 lines aren’t shown here.

arch/m68k/kernel/process.c+28−28

This diff is large: its 78 lines aren’t shown here.

arch/m68k/kernel/setup_mm.c+5−3

This diff is large: its 43 lines aren’t shown here.

arch/m68k/kernel/setup_no.c+13−90

This diff is large: its 144 lines aren’t shown here.

arch/m68k/kernel/signal.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/m68k/kernel/uboot.c+107−0

This diff is large: its 108 lines aren’t shown here.

arch/m68k/kernel/vmlinux-nommu.lds+1−0

This diff is large: its 8 lines aren’t shown here.

arch/m68k/kernel/vmlinux-std.lds+1−0

This diff is large: its 8 lines aren’t shown here.

arch/m68k/kernel/vmlinux-sun3.lds+1−0

This diff is large: its 8 lines aren’t shown here.

arch/m68k/lib/ashldi3.c+4−0

This diff is large: its 15 lines aren’t shown here.

arch/m68k/lib/ashrdi3.c+4−0

This diff is large: its 15 lines aren’t shown here.

arch/m68k/lib/divsi3.S+3−0

This diff is large: its 14 lines aren’t shown here.

arch/m68k/lib/lshrdi3.c+4−0

This diff is large: its 15 lines aren’t shown here.

arch/m68k/lib/modsi3.S+3−0

This diff is large: its 14 lines aren’t shown here.

arch/m68k/lib/muldi3.c+4−0

This diff is large: its 15 lines aren’t shown here.

arch/m68k/lib/mulsi3.S+2−2

This diff is large: its 15 lines aren’t shown here.

arch/m68k/lib/udivsi3.S+2−2

This diff is large: its 15 lines aren’t shown here.

arch/m68k/lib/umodsi3.S+2−2

This diff is large: its 15 lines aren’t shown here.

arch/m68k/mac/config.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/m68k/mm/mcfmmu.c+30−1

This diff is large: its 45 lines aren’t shown here.

arch/m68k/q40/config.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/metag/include/asm/atomic.h+1−2

This diff is large: its 13 lines aren’t shown here.

arch/metag/include/asm/uaccess.h+2−1

This diff is large: its 11 lines aren’t shown here.

arch/metag/kernel/vmlinux.lds.S+1−0

This diff is large: its 8 lines aren’t shown here.

arch/microblaze/include/asm/uaccess.h+7−7

This diff is large: its 36 lines aren’t shown here.

arch/microblaze/kernel/ftrace.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/microblaze/kernel/vmlinux.lds.S+1−0

This diff is large: its 8 lines aren’t shown here.

arch/microblaze/pci/pci-common.c+2−2

This diff is large: its 13 lines aren’t shown here.

arch/mips/Kbuild.platforms+1−1

This diff is large: its 16 lines aren’t shown here.

arch/mips/Kconfig+84−39

This diff is large: its 207 lines aren’t shown here.

arch/mips/Kconfig.debug+0−36

This diff is large: its 43 lines aren’t shown here.

arch/mips/Makefile+76−5

This diff is large: its 107 lines aren’t shown here.

arch/mips/alchemy/common/setup.c+3−3

This diff is large: its 21 lines aren’t shown here.

arch/mips/ath79/clock.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/bcm47xx/serial.c+4−7

This diff is large: its 27 lines aren’t shown here.

arch/mips/bcm63xx/clk.c+3−0

This diff is large: its 10 lines aren’t shown here.

arch/mips/bmips/Kconfig+16−4

This diff is large: its 34 lines aren’t shown here.

arch/mips/bmips/setup.c+11−1

This diff is large: its 51 lines aren’t shown here.

arch/mips/boot/Makefile+66−0

This diff is large: its 70 lines aren’t shown here.

arch/mips/boot/dts/brcm/Makefile+22−14

This diff is large: its 50 lines aren’t shown here.

arch/mips/boot/dts/brcm/bcm3368-netgear-cvg834g.dts+22−0

This diff is large: its 23 lines aren’t shown here.

arch/mips/boot/dts/brcm/bcm3368.dtsi+101−0

This diff is large: its 102 lines aren’t shown here.

arch/mips/boot/dts/brcm/bcm63268-comtrend-vr-3032u.dts+108−0

This diff is large: its 109 lines aren’t shown here.

arch/mips/boot/dts/brcm/bcm63268.dtsi+134−0

This diff is large: its 135 lines aren’t shown here.

arch/mips/boot/dts/brcm/bcm6358-neufbox4-sercomm.dtsrenamed from arch/mips/boot/dts/brcm/bcm96358nb4ser.dts+1−0

This diff is large: its 8 lines aren’t shown here.

arch/mips/boot/dts/brcm/bcm6362-neufbox6-sercomm.dts+22−0

This diff is large: its 23 lines aren’t shown here.

arch/mips/boot/dts/brcm/bcm6362.dtsi+134−0

This diff is large: its 135 lines aren’t shown here.

arch/mips/boot/dts/brcm/bcm7125.dtsi+30−4

This diff is large: its 76 lines aren’t shown here.

arch/mips/boot/dts/brcm/bcm7346.dtsi+92−5

This diff is large: its 159 lines aren’t shown here.

arch/mips/boot/dts/brcm/bcm7358.dtsi+84−5

This diff is large: its 144 lines aren’t shown here.

arch/mips/boot/dts/brcm/bcm7360.dtsi+84−5

This diff is large: its 151 lines aren’t shown here.

arch/mips/boot/dts/brcm/bcm7362.dtsi+84−5

This diff is large: its 151 lines aren’t shown here.

arch/mips/boot/dts/brcm/bcm7420.dtsi+38−4

This diff is large: its 84 lines aren’t shown here.

arch/mips/boot/dts/brcm/bcm7425.dtsi+104−5

This diff is large: its 171 lines aren’t shown here.

arch/mips/boot/dts/brcm/bcm7435.dtsi+104−5

This diff is large: its 171 lines aren’t shown here.

arch/mips/boot/dts/brcm/bcm97125cbmb.dts+4−0

This diff is large: its 11 lines aren’t shown here.

arch/mips/boot/dts/brcm/bcm97346dbsmb.dts+17−0

This diff is large: its 42 lines aren’t shown here.

arch/mips/boot/dts/brcm/bcm97358svmb.dts+13−0

This diff is large: its 31 lines aren’t shown here.

arch/mips/boot/dts/brcm/bcm97360svmb.dts+8−0

This diff is large: its 19 lines aren’t shown here.

arch/mips/boot/dts/brcm/bcm97362svmb.dts+13−0

This diff is large: its 38 lines aren’t shown here.

arch/mips/boot/dts/brcm/bcm97420c.dts+8−0

This diff is large: its 15 lines aren’t shown here.

arch/mips/boot/dts/brcm/bcm97425svmb.dts+21−0

This diff is large: its 39 lines aren’t shown here.

arch/mips/boot/dts/brcm/bcm97435svmb.dts+21−0

This diff is large: its 46 lines aren’t shown here.

arch/mips/boot/dts/brcm/bcm97xxx-nand-cs1-bch24.dtsi+25−0

This diff is large: its 26 lines aren’t shown here.

arch/mips/boot/dts/brcm/bcm97xxx-nand-cs1-bch4.dtsi+25−0

This diff is large: its 26 lines aren’t shown here.

arch/mips/boot/dts/cavium-octeon/dlink_dsr-1000n.dts+1−44

This diff is large: its 66 lines aren’t shown here.

arch/mips/boot/dts/cavium-octeon/dlink_dsr-500n-1000n.dtsi+58−0

This diff is large: its 59 lines aren’t shown here.

arch/mips/boot/dts/cavium-octeon/dlink_dsr-500n.dts+40−0

This diff is large: its 41 lines aren’t shown here.

arch/mips/boot/dts/mti/Makefile+1−1

This diff is large: its 7 lines aren’t shown here.

arch/mips/boot/dts/mti/malta.dts+99−0

This diff is large: its 110 lines aren’t shown here.

arch/mips/boot/dts/mti/sead3.dts+238−0

This diff is large: its 254 lines aren’t shown here.

arch/mips/cavium-octeon/executive/cvmx-helper-board.c+2−335

This diff is large: its 386 lines aren’t shown here.

arch/mips/cavium-octeon/executive/cvmx-helper-rgmii.c+1−4

This diff is large: its 19 lines aren’t shown here.

arch/mips/cavium-octeon/executive/cvmx-helper-sgmii.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/cavium-octeon/executive/cvmx-helper-xaui.c+0−2

This diff is large: its 9 lines aren’t shown here.

arch/mips/cavium-octeon/executive/cvmx-helper.c+0−10

This diff is large: its 24 lines aren’t shown here.

arch/mips/cavium-octeon/octeon-irq.c+6−0

This diff is large: its 13 lines aren’t shown here.

arch/mips/cavium-octeon/octeon-platform.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/cavium-octeon/setup.c+33−19

This diff is large: its 132 lines aren’t shown here.

arch/mips/cavium-octeon/smp.c+3−21

This diff is large: its 33 lines aren’t shown here.

arch/mips/configs/generic/32r1.config+2−0

This diff is large: its 3 lines aren’t shown here.

arch/mips/configs/generic/32r2.config+3−0

This diff is large: its 4 lines aren’t shown here.

arch/mips/configs/generic/32r6.config+2−0

This diff is large: its 3 lines aren’t shown here.

arch/mips/configs/generic/64r1.config+4−0

This diff is large: its 5 lines aren’t shown here.

arch/mips/configs/generic/64r2.config+5−0

This diff is large: its 6 lines aren’t shown here.

arch/mips/configs/generic/64r6.config+4−0

This diff is large: its 5 lines aren’t shown here.

arch/mips/configs/generic/board-sead-3.config+32−0

This diff is large: its 33 lines aren’t shown here.

arch/mips/configs/generic/eb.config+1−0

This diff is large: its 2 lines aren’t shown here.

arch/mips/configs/generic/el.config+1−0

This diff is large: its 2 lines aren’t shown here.

arch/mips/configs/generic/micro32r2.config+4−0

This diff is large: its 5 lines aren’t shown here.

arch/mips/configs/generic_defconfig+96−0

This diff is large: its 97 lines aren’t shown here.

arch/mips/configs/loongson1c_defconfig+126−0

This diff is large: its 127 lines aren’t shown here.

arch/mips/configs/malta_defconfig+3−1

This diff is large: its 18 lines aren’t shown here.

arch/mips/configs/malta_kvm_defconfig+3−1

This diff is large: its 18 lines aren’t shown here.

arch/mips/configs/malta_kvm_guest_defconfig+3−1

This diff is large: its 18 lines aren’t shown here.

arch/mips/configs/malta_qemu_32r6_defconfig+2−0

This diff is large: its 9 lines aren’t shown here.

arch/mips/configs/maltaaprp_defconfig+2−0

This diff is large: its 9 lines aren’t shown here.

arch/mips/configs/maltasmvp_defconfig+2−0

This diff is large: its 9 lines aren’t shown here.

arch/mips/configs/maltasmvp_eva_defconfig+2−0

This diff is large: its 9 lines aren’t shown here.

arch/mips/configs/maltaup_defconfig+2−0

This diff is large: its 9 lines aren’t shown here.

arch/mips/configs/maltaup_xpa_defconfig+3−1

This diff is large: its 18 lines aren’t shown here.

arch/mips/configs/pistachio_defconfig+0−2

This diff is large: its 16 lines aren’t shown here.

arch/mips/configs/sead3_defconfig+0−121

This diff is large: its 122 lines aren’t shown here.

arch/mips/configs/sead3micro_defconfig+0−122

This diff is large: its 123 lines aren’t shown here.

arch/mips/dec/int-handler.S+38−2

This diff is large: its 54 lines aren’t shown here.

arch/mips/generic/Kconfig+19−0

This diff is large: its 20 lines aren’t shown here.

arch/mips/generic/Makefile+15−0

This diff is large: its 16 lines aren’t shown here.

arch/mips/generic/Platform+14−0

This diff is large: its 15 lines aren’t shown here.

arch/mips/generic/board-sead3.c+376−0

This diff is large: its 377 lines aren’t shown here.

arch/mips/generic/init.c+176−0

This diff is large: its 177 lines aren’t shown here.

arch/mips/generic/irq.c+64−0

This diff is large: its 65 lines aren’t shown here.

arch/mips/generic/proc.c+29−0

This diff is large: its 30 lines aren’t shown here.

arch/mips/generic/vmlinux.its.S+31−0

This diff is large: its 32 lines aren’t shown here.

arch/mips/include/asm/addrspace.h+1−2

This diff is large: its 10 lines aren’t shown here.

arch/mips/include/asm/asmmacro.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/mips/include/asm/barrier.h+96−0

This diff is large: its 103 lines aren’t shown here.

arch/mips/include/asm/cacheflush.h+5−0

This diff is large: its 19 lines aren’t shown here.

arch/mips/include/asm/cpu-type.h+2−1

This diff is large: its 10 lines aren’t shown here.

arch/mips/include/asm/cpu.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/mips/include/asm/device.h+5−0

This diff is large: its 12 lines aren’t shown here.

arch/mips/include/asm/dma-coherence.h+12−4

This diff is large: its 27 lines aren’t shown here.

arch/mips/include/asm/dma-mapping.h+10−0

This diff is large: its 15 lines aren’t shown here.

arch/mips/include/asm/extable.h+13−0

This diff is large: its 14 lines aren’t shown here.

arch/mips/include/asm/i8259.h+11−1

This diff is large: its 24 lines aren’t shown here.

arch/mips/include/asm/irq.h+3−2

This diff is large: its 11 lines aren’t shown here.

arch/mips/include/asm/kexec.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/mips/include/asm/kvm_host.h+40−23

This diff is large: its 83 lines aren’t shown here.

arch/mips/include/asm/mach-cavium-octeon/mangle-port.h+2−2

This diff is large: its 19 lines aren’t shown here.

arch/mips/include/asm/mach-generic/dma-coherence.h+13−1

This diff is large: its 21 lines aren’t shown here.

arch/mips/include/asm/mach-generic/floppy.h+1−5

This diff is large: its 13 lines aren’t shown here.

arch/mips/include/asm/mach-generic/spaces.h+3−5

This diff is large: its 22 lines aren’t shown here.

arch/mips/include/asm/mach-ip27/spaces.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/mips/include/asm/mach-loongson32/irq.h+40−1

This diff is large: its 76 lines aren’t shown here.

arch/mips/include/asm/mach-loongson32/loongson1.h+5−0

This diff is large: its 20 lines aren’t shown here.

arch/mips/include/asm/mach-loongson32/platform.h+1−0

This diff is large: its 7 lines aren’t shown here.

arch/mips/include/asm/mach-loongson32/regs-clk.h+34−0

This diff is large: its 46 lines aren’t shown here.

arch/mips/include/asm/mach-loongson32/regs-mux.h+61−0

This diff is large: its 73 lines aren’t shown here.

arch/mips/include/asm/mach-loongson64/loongson.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/include/asm/mach-paravirt/kernel-entry-init.h+2−0

This diff is large: its 14 lines aren’t shown here.

arch/mips/include/asm/mach-sead3/cpu-feature-overrides.h+0−72

This diff is large: its 73 lines aren’t shown here.

arch/mips/include/asm/mach-sead3/irq.h+0−9

This diff is large: its 10 lines aren’t shown here.

arch/mips/include/asm/mach-sead3/kernel-entry-init.h+0−21

This diff is large: its 22 lines aren’t shown here.

arch/mips/include/asm/mach-sead3/war.h+0−24

This diff is large: its 25 lines aren’t shown here.

arch/mips/include/asm/machine.h+63−0

This diff is large: its 64 lines aren’t shown here.

arch/mips/include/asm/mips-boards/sead3int.h+0−32

This diff is large: its 33 lines aren’t shown here.

arch/mips/include/asm/mips-cm.h+12−0

This diff is large: its 30 lines aren’t shown here.

arch/mips/include/asm/mipsregs.h+0−2

This diff is large: its 9 lines aren’t shown here.

arch/mips/include/asm/module.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/include/asm/octeon/cvmx-helper-board.h+0−30

This diff is large: its 44 lines aren’t shown here.

arch/mips/include/asm/octeon/cvmx-mdio.h+0−506

This diff is large: its 507 lines aren’t shown here.

arch/mips/include/asm/pci.h+45−15

This diff is large: its 109 lines aren’t shown here.

arch/mips/include/asm/pgalloc.h+1−5

This diff is large: its 13 lines aren’t shown here.

arch/mips/include/asm/pgtable.h+0−2

This diff is large: its 9 lines aren’t shown here.

arch/mips/include/asm/pm-cps.h+4−2

This diff is large: its 15 lines aren’t shown here.

arch/mips/include/asm/ptrace.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/include/asm/smp.h+14−0

This diff is large: its 21 lines aren’t shown here.

arch/mips/include/asm/uaccess.h+22−8

This diff is large: its 93 lines aren’t shown here.

arch/mips/include/asm/uprobes.h+0−13

This diff is large: its 24 lines aren’t shown here.

arch/mips/include/uapi/asm/mman.h+5−0

This diff is large: its 10 lines aren’t shown here.

arch/mips/include/uapi/asm/unistd.h+16−6

This diff is large: its 66 lines aren’t shown here.

arch/mips/kernel/binfmt_elfn32.c+1−7

This diff is large: its 28 lines aren’t shown here.

arch/mips/kernel/binfmt_elfo32.c+1−7

This diff is large: its 28 lines aren’t shown here.

arch/mips/kernel/branch.c+35−1

This diff is large: its 47 lines aren’t shown here.

arch/mips/kernel/cpu-probe.c+30−23

This diff is large: its 111 lines aren’t shown here.

arch/mips/kernel/crash.c+17−1

This diff is large: its 34 lines aren’t shown here.

arch/mips/kernel/ftrace.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/mips/kernel/genex.S+1−2

This diff is large: its 11 lines aren’t shown here.

arch/mips/kernel/kprobes.c+9−58

This diff is large: its 88 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/machine_kexec.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/mips/kernel/mips-cpc.c+14−3

This diff is large: its 38 lines aren’t shown here.

arch/mips/kernel/mips-r2-to-r6-emul.c+2−1

This diff is large: its 18 lines aren’t shown here.

arch/mips/kernel/module.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/mips/kernel/pm-cps.c+73−87

This diff is large: its 319 lines aren’t shown here.

arch/mips/kernel/probes-common.h+83−0

This diff is large: its 84 lines aren’t shown here.

arch/mips/kernel/proc.c+7−0

This diff is large: its 14 lines aren’t shown here.

arch/mips/kernel/process.c+13−6

This diff is large: its 38 lines aren’t shown here.

arch/mips/kernel/ptrace32.c+3−2

This diff is large: its 19 lines aren’t shown here.

arch/mips/kernel/scall32-o32.S+3−0

This diff is large: its 7 lines aren’t shown here.

arch/mips/kernel/scall64-64.S+3−0

This diff is large: its 8 lines aren’t shown here.

arch/mips/kernel/scall64-n32.S+3−0

This diff is large: its 8 lines aren’t shown here.

arch/mips/kernel/scall64-o32.S+3−0

This diff is large: its 8 lines aren’t shown here.

arch/mips/kernel/setup.c+8−1

This diff is large: its 30 lines aren’t shown here.

arch/mips/kernel/smp-cps.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/kernel/smp-gic.c+0−66

This diff is large: its 67 lines aren’t shown here.

arch/mips/kernel/smp-mt.c+0−23

This diff is large: its 27 lines aren’t shown here.

arch/mips/kernel/smp.c+59−13

This diff is large: its 137 lines aren’t shown here.

arch/mips/kernel/traps.c+50−3

This diff is large: its 101 lines aren’t shown here.

arch/mips/kernel/uprobes.c+19−96

This diff is large: its 174 lines aren’t shown here.

arch/mips/kernel/vdso.c+4−4

This diff is large: its 21 lines aren’t shown here.

arch/mips/kernel/vmlinux.lds.S+1−0

This diff is large: its 8 lines aren’t shown here.

arch/mips/kvm/commpage.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/kvm/dyntrans.c+2−3

This diff is large: its 19 lines aren’t shown here.

arch/mips/kvm/emulate.c+64−15

This diff is large: its 127 lines aren’t shown here.

arch/mips/kvm/interrupt.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/kvm/mips.c+41−0

This diff is large: its 76 lines aren’t shown here.

arch/mips/kvm/mmu.c+14−2

This diff is large: its 30 lines aren’t shown here.

arch/mips/kvm/trap_emul.c+18−1

This diff is large: its 33 lines aren’t shown here.

arch/mips/lantiq/xway/vmmc.c+2−4

This diff is large: its 24 lines aren’t shown here.

arch/mips/lantiq/xway/xrx200_phy_fw.c+4−8

This diff is large: its 35 lines aren’t shown here.

arch/mips/lasat/picvue_proc.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/mips/lib/ashldi3.c+1−1

This diff is large: its 6 lines aren’t shown here.

arch/mips/lib/ashrdi3.c+1−1

This diff is large: its 6 lines aren’t shown here.

arch/mips/lib/bswapdi.c+2−1

This diff is large: its 7 lines aren’t shown here.

arch/mips/lib/bswapsi.c+2−1

This diff is large: its 7 lines aren’t shown here.

arch/mips/lib/cmpdi2.c+1−1

This diff is large: its 6 lines aren’t shown here.

arch/mips/lib/delay.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/lib/iomap-pci.c+5−1

This diff is large: its 22 lines aren’t shown here.

arch/mips/lib/iomap.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/lib/lshrdi3.c+1−1

This diff is large: its 6 lines aren’t shown here.

arch/mips/lib/ucmpdi2.c+1−1

This diff is large: its 6 lines aren’t shown here.

arch/mips/loongson32/Kconfig+15−0

This diff is large: its 22 lines aren’t shown here.

arch/mips/loongson32/Makefile+6−0

This diff is large: its 10 lines aren’t shown here.

arch/mips/loongson32/Platform+1−0

This diff is large: its 5 lines aren’t shown here.

arch/mips/loongson32/common/irq.c+52−3

This diff is large: its 96 lines aren’t shown here.

arch/mips/loongson32/common/platform.c+32−0

This diff is large: its 87 lines aren’t shown here.

arch/mips/loongson32/common/setup.c+4−0

This diff is large: its 12 lines aren’t shown here.

arch/mips/loongson32/ls1c/Makefile+5−0

This diff is large: its 6 lines aren’t shown here.

arch/mips/loongson32/ls1c/board.c+27−0

This diff is large: its 28 lines aren’t shown here.

arch/mips/loongson64/loongson-3/smp.c+8−26

This diff is large: its 61 lines aren’t shown here.

arch/mips/math-emu/cp1emu.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/math-emu/dsemul.c+1−0

This diff is large: its 7 lines aren’t shown here.

arch/mips/mm/c-octeon.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/mips/mm/c-r3k.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/mips/mm/c-r4k.c+43−20

This diff is large: its 143 lines aren’t shown here.

arch/mips/mm/c-tx39.c+3−0

This diff is large: its 10 lines aren’t shown here.

arch/mips/mm/cache.c+6−2

This diff is large: its 29 lines aren’t shown here.

arch/mips/mm/dma-default.c+9−9

This diff is large: its 65 lines aren’t shown here.

arch/mips/mm/extable.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/mm/fault.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/mm/gup.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/mm/highmem.c+2−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/mm/init.c+10−8

This diff is large: its 48 lines aren’t shown here.

arch/mips/mm/ioremap.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/mm/mmap.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/mm/page.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/mm/tlb-r4k.c+6−3

This diff is large: its 23 lines aren’t shown here.

arch/mips/mti-malta/malta-dt.c+0−15

This diff is large: its 19 lines aren’t shown here.

arch/mips/mti-malta/malta-dtshim.c+181−6

This diff is large: its 253 lines aren’t shown here.

arch/mips/mti-malta/malta-init.c+7−10

This diff is large: its 38 lines aren’t shown here.

arch/mips/mti-malta/malta-int.c+5−106

This diff is large: its 173 lines aren’t shown here.

arch/mips/mti-malta/malta-platform.c+1−72

This diff is large: its 97 lines aren’t shown here.

arch/mips/mti-malta/malta-reset.c+2−19

This diff is large: its 41 lines aren’t shown here.

arch/mips/mti-malta/malta-setup.c+8−8

This diff is large: its 53 lines aren’t shown here.

arch/mips/mti-sead3/Makefile+0−15

This diff is large: its 16 lines aren’t shown here.

arch/mips/mti-sead3/Platform+0−7

This diff is large: its 8 lines aren’t shown here.

arch/mips/mti-sead3/sead3-console.c+0−46

This diff is large: its 47 lines aren’t shown here.

arch/mips/mti-sead3/sead3-display.c+0−77

This diff is large: its 78 lines aren’t shown here.

arch/mips/mti-sead3/sead3-init.c+0−152

This diff is large: its 153 lines aren’t shown here.

arch/mips/mti-sead3/sead3-int.c+0−42

This diff is large: its 43 lines aren’t shown here.

arch/mips/mti-sead3/sead3-lcd.c+0−43

This diff is large: its 44 lines aren’t shown here.

arch/mips/mti-sead3/sead3-platform.c+0−223

This diff is large: its 224 lines aren’t shown here.

arch/mips/mti-sead3/sead3-reset.c+0−40

This diff is large: its 41 lines aren’t shown here.

arch/mips/mti-sead3/sead3-setup.c+0−108

This diff is large: its 109 lines aren’t shown here.

arch/mips/mti-sead3/sead3-time.c+0−99

This diff is large: its 100 lines aren’t shown here.

arch/mips/net/bpf_jit.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/pci/Makefile+2−0

This diff is large: its 9 lines aren’t shown here.

arch/mips/pci/pci-alchemy.c+2−1

This diff is large: its 10 lines aren’t shown here.

arch/mips/pci/pci-ar71xx.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/pci/pci-ar724x.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/pci/pci-generic.c+52−0

This diff is large: its 53 lines aren’t shown here.

arch/mips/pci/pci-lantiq.c+0−2

This diff is large: its 16 lines aren’t shown here.

arch/mips/pci/pci-legacy.c+302−0

This diff is large: its 303 lines aren’t shown here.

arch/mips/pci/pci-mt7620.c+0−3

This diff is large: its 22 lines aren’t shown here.

arch/mips/pci/pci-octeon.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/mips/pci/pci-rt2880.c+0−2

This diff is large: its 16 lines aren’t shown here.

arch/mips/pci/pci-rt3883.c+0−2

This diff is large: its 16 lines aren’t shown here.

arch/mips/pci/pci.c+5−292

This diff is large: its 320 lines aren’t shown here.

arch/mips/pci/pcie-octeon.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/pnx833x/common/platform.c+2−6

This diff is large: its 15 lines aren’t shown here.

arch/mips/ralink/timer.c+7−21

This diff is large: its 54 lines aren’t shown here.

arch/mips/txx9/Kconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/txx9/generic/pci.c+1−5

This diff is large: its 22 lines aren’t shown here.

arch/mips/txx9/generic/setup.c+35−35

This diff is large: its 93 lines aren’t shown here.

arch/mips/txx9/generic/setup_tx3927.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/txx9/generic/setup_tx4927.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/txx9/generic/setup_tx4938.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/txx9/jmr3927/setup.c+9−2

This diff is large: its 32 lines aren’t shown here.

arch/mips/txx9/rbtx4927/setup.c+22−10

This diff is large: its 63 lines aren’t shown here.

arch/mips/txx9/rbtx4938/setup.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/mips/vdso/Makefile+1−3

This diff is large: its 18 lines aren’t shown here.

arch/mn10300/include/asm/processor.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mn10300/include/asm/uaccess.h+1−7

This diff is large: its 29 lines aren’t shown here.

arch/mn10300/kernel/signal.c+3−3

This diff is large: its 27 lines aren’t shown here.

arch/mn10300/kernel/vmlinux.lds.S+1−0

This diff is large: its 8 lines aren’t shown here.

arch/mn10300/lib/usercopy.c+3−1

This diff is large: its 18 lines aren’t shown here.

arch/nios2/boot/dts/10m50_devboard.dts+1−0

This diff is large: its 8 lines aren’t shown here.

arch/nios2/include/asm/cpuinfo.h+4−4

This diff is large: its 15 lines aren’t shown here.

arch/nios2/include/asm/uaccess.h+8−5

This diff is large: its 34 lines aren’t shown here.

arch/nios2/kernel/cpuinfo.c+5−10

This diff is large: its 36 lines aren’t shown here.

arch/nios2/kernel/vmlinux.lds.S+1−0

This diff is large: its 8 lines aren’t shown here.

arch/openrisc/include/asm/uaccess.h+11−28

This diff is large: its 65 lines aren’t shown here.

arch/openrisc/kernel/vmlinux.lds.S+1−0

This diff is large: its 8 lines aren’t shown here.

arch/parisc/Kconfig+3−2

This diff is large: its 23 lines aren’t shown here.

arch/parisc/include/asm/dwarf.h+23−0

This diff is large: its 24 lines aren’t shown here.

arch/parisc/include/asm/linkage.h+12−0

This diff is large: its 33 lines aren’t shown here.

arch/parisc/include/asm/pgtable.h+3−3

This diff is large: its 14 lines aren’t shown here.

arch/parisc/include/asm/traps.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/parisc/include/asm/uaccess.h+37−14

This diff is large: its 77 lines aren’t shown here.

arch/parisc/include/uapi/asm/mman.h+5−0

This diff is large: its 10 lines aren’t shown here.

arch/parisc/kernel/cache.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/parisc/kernel/entry.S+24−22

This diff is large: its 187 lines aren’t shown here.

arch/parisc/kernel/ftrace.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/parisc/kernel/hpmc.S+10−6

This diff is large: its 66 lines aren’t shown here.

arch/parisc/kernel/inventory.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/parisc/kernel/pacache.S+45−39

This diff is large: its 254 lines aren’t shown here.

arch/parisc/kernel/real2.S+14−10

This diff is large: its 107 lines aren’t shown here.

arch/parisc/kernel/setup.c+8−0

This diff is large: its 22 lines aren’t shown here.

arch/parisc/kernel/smp.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/parisc/kernel/time.c+0−6

This diff is large: its 13 lines aren’t shown here.

arch/parisc/kernel/traps.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/parisc/kernel/vmlinux.lds.S+10−7

This diff is large: its 52 lines aren’t shown here.

arch/parisc/lib/fixup.S+8−8

This diff is large: its 43 lines aren’t shown here.

arch/parisc/lib/lusercopy.S+4−4

This diff is large: its 36 lines aren’t shown here.

arch/parisc/lib/memcpy.c+6−5

This diff is large: its 36 lines aren’t shown here.

arch/parisc/mm/fault.c+53−2

This diff is large: its 77 lines aren’t shown here.

arch/parisc/mm/init.c+64−64

This diff is large: its 237 lines aren’t shown here.

arch/powerpc/Kconfig+3−8

This diff is large: its 46 lines aren’t shown here.

arch/powerpc/Makefile+20−27

This diff is large: its 92 lines aren’t shown here.

arch/powerpc/boot/Makefile+55−31

This diff is large: its 163 lines aren’t shown here.

arch/powerpc/boot/cuboot-c2k.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/boot/decompress.c+148−0

This diff is large: its 149 lines aren’t shown here.

arch/powerpc/boot/fixup-headers.sed+12−0

This diff is large: its 13 lines aren’t shown here.

arch/powerpc/boot/gunzip_util.c+0−204

This diff is large: its 205 lines aren’t shown here.

arch/powerpc/boot/gunzip_util.h+0−45

This diff is large: its 46 lines aren’t shown here.

arch/powerpc/boot/main.c+33−18

This diff is large: its 87 lines aren’t shown here.

arch/powerpc/boot/ops.h+3−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/boot/stdbool.h+14−0

This diff is large: its 15 lines aren’t shown here.

arch/powerpc/boot/stdint.h+13−0

This diff is large: its 14 lines aren’t shown here.

arch/powerpc/boot/types.h+14−0

This diff is large: its 26 lines aren’t shown here.

arch/powerpc/boot/wrapper+45−16

This diff is large: its 144 lines aren’t shown here.

arch/powerpc/boot/xz_config.h+39−0

This diff is large: its 40 lines aren’t shown here.

arch/powerpc/configs/dpaa.config+1−0

This diff is large: its 2 lines aren’t shown here.

arch/powerpc/configs/powernv_defconfig+12−7

This diff is large: its 79 lines aren’t shown here.

arch/powerpc/configs/ppc64_defconfig+12−7

This diff is large: its 79 lines aren’t shown here.

arch/powerpc/configs/pseries_defconfig+12−7

This diff is large: its 79 lines aren’t shown here.

arch/powerpc/crypto/sha1-powerpc-asm.S+11−2

This diff is large: its 34 lines aren’t shown here.

arch/powerpc/include/asm/Kbuild+1−0

This diff is large: its 7 lines aren’t shown here.

arch/powerpc/include/asm/asm-prototypes.h+40−3

This diff is large: its 63 lines aren’t shown here.

arch/powerpc/include/asm/atomic.h+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/include/asm/book3s/32/pgtable.h+2−1

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/include/asm/book3s/64/mmu-hash.h+37−0

This diff is large: its 44 lines aren’t shown here.

arch/powerpc/include/asm/book3s/64/pgtable.h+5−2

This diff is large: its 23 lines aren’t shown here.

arch/powerpc/include/asm/book3s/64/radix.h+69−19

This diff is large: its 134 lines aren’t shown here.

arch/powerpc/include/asm/book3s/64/tlbflush-radix.h+1−0

This diff is large: its 6 lines aren’t shown here.

arch/powerpc/include/asm/cpu_has_feature.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/include/asm/cputable.h+4−1

This diff is large: its 33 lines aren’t shown here.

arch/powerpc/include/asm/exception-64s.h+60−88

This diff is large: its 316 lines aren’t shown here.

arch/powerpc/include/asm/fadump.h+0−4

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/include/asm/head-64.h+393−0

This diff is large: its 394 lines aren’t shown here.

arch/powerpc/include/asm/hw_irq.h+6−0

This diff is large: its 27 lines aren’t shown here.

arch/powerpc/include/asm/io.h+29−0

This diff is large: its 36 lines aren’t shown here.

arch/powerpc/include/asm/kvm_asm.h+10−0

This diff is large: its 24 lines aren’t shown here.

arch/powerpc/include/asm/kvm_book3s.h+39−0

This diff is large: its 60 lines aren’t shown here.

arch/powerpc/include/asm/kvm_book3s_64.h+8−82

This diff is large: its 130 lines aren’t shown here.

arch/powerpc/include/asm/kvm_host.h+57−67

This diff is large: its 193 lines aren’t shown here.

arch/powerpc/include/asm/kvm_ppc.h+28−0

This diff is large: its 55 lines aren’t shown here.

arch/powerpc/include/asm/libata-portmap.h+0−4

This diff is large: its 13 lines aren’t shown here.

arch/powerpc/include/asm/machdep.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/include/asm/mmu-book3e.h+3−0

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/include/asm/mmu.h+5−0

This diff is large: its 19 lines aren’t shown here.

arch/powerpc/include/asm/mmu_context.h+3−1

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/include/asm/mmzone.h+3−0

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/include/asm/mpic_msgr.h+3−3

This diff is large: its 13 lines aren’t shown here.

arch/powerpc/include/asm/nohash/32/pgtable.h+2−1

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/include/asm/nohash/64/pgtable.h+2−1

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/include/asm/opal.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/include/asm/parport.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/include/asm/pnv-pci.h+6−1

This diff is large: its 31 lines aren’t shown here.

arch/powerpc/include/asm/ppc-opcode.h+3−0

This diff is large: its 24 lines aren’t shown here.

arch/powerpc/include/asm/ppc_asm.h+16−33

This diff is large: its 110 lines aren’t shown here.

arch/powerpc/include/asm/processor.h+7−9

This diff is large: its 43 lines aren’t shown here.

arch/powerpc/include/asm/reg.h+7−1

This diff is large: its 30 lines aren’t shown here.

arch/powerpc/include/asm/reg_8xx.h+4−0

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/include/asm/signal.h+0−2

This diff is large: its 7 lines aren’t shown here.

arch/powerpc/include/asm/tm.h+0−5

This diff is large: its 12 lines aren’t shown here.

arch/powerpc/include/asm/uaccess.h+7−31

This diff is large: its 77 lines aren’t shown here.

arch/powerpc/include/asm/unistd.h+4−0

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/kernel/Makefile+12−12

This diff is large: its 72 lines aren’t shown here.

arch/powerpc/kernel/asm-offsets.c+7−7

This diff is large: its 35 lines aren’t shown here.

arch/powerpc/kernel/cputable.c+20−0

This diff is large: its 34 lines aren’t shown here.

arch/powerpc/kernel/eeh.c+3−1

This diff is large: its 25 lines aren’t shown here.

arch/powerpc/kernel/eeh_driver.c+9−1

This diff is large: its 19 lines aren’t shown here.

arch/powerpc/kernel/eeh_pe.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/kernel/entry_32.S+2−1

This diff is large: its 24 lines aren’t shown here.

arch/powerpc/kernel/entry_64.S+12−12

This diff is large: its 112 lines aren’t shown here.

arch/powerpc/kernel/epapr_hcalls.S+2−0

This diff is large: its 13 lines aren’t shown here.

arch/powerpc/kernel/exceptions-64s.S+1008−1060

This diff is large: its 2305 lines aren’t shown here.

arch/powerpc/kernel/fadump.c+12−1

This diff is large: its 35 lines aren’t shown here.

arch/powerpc/kernel/fpu.S+3−26

This diff is large: its 57 lines aren’t shown here.

arch/powerpc/kernel/ftrace.c+2−1

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/kernel/head_32.S+5−3

This diff is large: its 64 lines aren’t shown here.

arch/powerpc/kernel/head_40x.S+2−0

This diff is large: its 16 lines aren’t shown here.

arch/powerpc/kernel/head_44x.S+2−0

This diff is large: its 16 lines aren’t shown here.

arch/powerpc/kernel/head_64.S+38−17

This diff is large: its 156 lines aren’t shown here.

arch/powerpc/kernel/head_8xx.S+65−74

This diff is large: its 243 lines aren’t shown here.

arch/powerpc/kernel/head_fsl_booke.S+2−0

This diff is large: its 16 lines aren’t shown here.

arch/powerpc/kernel/hw_breakpoint.c+6−3

This diff is large: its 45 lines aren’t shown here.

arch/powerpc/kernel/ibmebus.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/kernel/idle_book3s.S+5−5

This diff is large: its 45 lines aren’t shown here.

arch/powerpc/kernel/iommu.c+4−2

This diff is large: its 20 lines aren’t shown here.

arch/powerpc/kernel/irq.c+11−6

This diff is large: its 45 lines aren’t shown here.

arch/powerpc/kernel/legacy_serial.c+7−7

This diff is large: its 57 lines aren’t shown here.

arch/powerpc/kernel/machine_kexec_64.c+23−52

This diff is large: its 133 lines aren’t shown here.

arch/powerpc/kernel/misc.S+2−0

This diff is large: its 13 lines aren’t shown here.

arch/powerpc/kernel/misc_32.S+13−1

This diff is large: its 91 lines aren’t shown here.

arch/powerpc/kernel/misc_64.S+25−9

This diff is large: its 118 lines aren’t shown here.

arch/powerpc/kernel/module.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/kernel/nvram_64.c+5−5

This diff is large: its 40 lines aren’t shown here.

arch/powerpc/kernel/pci-common.c+4−2

This diff is large: its 27 lines aren’t shown here.

arch/powerpc/kernel/pci_32.c+2−0

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/ppc_ksyms.c+0−37

This diff is large: its 38 lines aren’t shown here.

arch/powerpc/kernel/ppc_ksyms_32.c+0−60

This diff is large: its 61 lines aren’t shown here.

arch/powerpc/kernel/process.c+106−75

This diff is large: its 391 lines aren’t shown here.

arch/powerpc/kernel/prom_init.c+82−0

This diff is large: its 103 lines aren’t shown here.

arch/powerpc/kernel/ptrace.c+98−255

This diff is large: its 749 lines aren’t shown here.

arch/powerpc/kernel/ptrace32.c+3−2

This diff is large: its 19 lines aren’t shown here.

arch/powerpc/kernel/setup-common.c+18−9

This diff is large: its 56 lines aren’t shown here.

arch/powerpc/kernel/setup_32.c+6−0

This diff is large: its 25 lines aren’t shown here.

arch/powerpc/kernel/signal.c+23−18

This diff is large: its 99 lines aren’t shown here.

arch/powerpc/kernel/signal.h+10−8

This diff is large: its 50 lines aren’t shown here.

arch/powerpc/kernel/signal_32.c+66−56

This diff is large: its 399 lines aren’t shown here.

arch/powerpc/kernel/signal_64.c+114−93

This diff is large: its 548 lines aren’t shown here.

arch/powerpc/kernel/syscalls.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/kernel/time.c+2−0

This diff is large: its 16 lines aren’t shown here.

arch/powerpc/kernel/tm.S+50−44

This diff is large: its 151 lines aren’t shown here.

arch/powerpc/kernel/traps.c+101−27

This diff is large: its 297 lines aren’t shown here.

arch/powerpc/kernel/vdso64/Makefile+0−6

This diff is large: its 16 lines aren’t shown here.

arch/powerpc/kernel/vdso64/datapage.S+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/kernel/vdso64/gettimeofday.S+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/kernel/vector.S+3−25

This diff is large: its 49 lines aren’t shown here.

arch/powerpc/kernel/vmlinux.lds.S+53−3

This diff is large: its 72 lines aren’t shown here.

arch/powerpc/kvm/Kconfig+3−0

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/kvm/Makefile+8−11

This diff is large: its 68 lines aren’t shown here.

arch/powerpc/kvm/book3s.c+7−6

This diff is large: its 43 lines aren’t shown here.

arch/powerpc/kvm/book3s_emulate.c+3−1

This diff is large: its 25 lines aren’t shown here.

arch/powerpc/kvm/book3s_hv.c+373−160

This diff is large: its 770 lines aren’t shown here.

arch/powerpc/kvm/book3s_hv_builtin.c+156−0

This diff is large: its 167 lines aren’t shown here.

arch/powerpc/kvm/book3s_hv_rm_xics.c+120−0

This diff is large: its 156 lines aren’t shown here.

arch/powerpc/kvm/book3s_hv_rmhandlers.S+109−88

This diff is large: its 321 lines aren’t shown here.

arch/powerpc/kvm/book3s_pr.c+9−1

This diff is large: its 38 lines aren’t shown here.

arch/powerpc/kvm/book3s_xics.c+56−1

This diff is large: its 103 lines aren’t shown here.

arch/powerpc/kvm/book3s_xics.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/kvm/booke.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/kvm/e500_mmu.c+37−36

This diff is large: its 154 lines aren’t shown here.

arch/powerpc/kvm/powerpc.c+61−0

This diff is large: its 89 lines aren’t shown here.

arch/powerpc/kvm/trace_hv.h+22−0

This diff is large: its 29 lines aren’t shown here.

arch/powerpc/lib/Makefile+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/lib/checksum_32.S+7−3

This diff is large: its 44 lines aren’t shown here.

arch/powerpc/lib/checksum_64.S+3−0

This diff is large: its 21 lines aren’t shown here.

arch/powerpc/lib/copy_32.S+5−0

This diff is large: its 30 lines aren’t shown here.

arch/powerpc/lib/copypage_64.S+2−0

This diff is large: its 13 lines aren’t shown here.

arch/powerpc/lib/copyuser_64.S+3−1

This diff is large: its 29 lines aren’t shown here.

arch/powerpc/lib/hweight_64.S+5−0

This diff is large: its 37 lines aren’t shown here.

arch/powerpc/lib/mem_64.S+5−0

This diff is large: its 37 lines aren’t shown here.

arch/powerpc/lib/memcmp_64.S+2−0

This diff is large: its 13 lines aren’t shown here.

arch/powerpc/lib/memcpy_64.S+2−0

This diff is large: its 13 lines aren’t shown here.

arch/powerpc/lib/ppc_ksyms.c+0−29

This diff is large: its 30 lines aren’t shown here.

arch/powerpc/lib/string.S+6−0

This diff is large: its 46 lines aren’t shown here.

arch/powerpc/lib/string_64.S+2−0

This diff is large: its 13 lines aren’t shown here.

arch/powerpc/mm/Makefile+3−4

This diff is large: its 21 lines aren’t shown here.

arch/powerpc/mm/copro_fault.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/mm/fault.c+2−2

This diff is large: its 19 lines aren’t shown here.

arch/powerpc/mm/hash_low_32.S+3−0

This diff is large: its 24 lines aren’t shown here.

arch/powerpc/mm/hash_native_64.c+2−40

This diff is large: its 56 lines aren’t shown here.

arch/powerpc/mm/hash_utils_64.c+106−32

This diff is large: its 196 lines aren’t shown here.

arch/powerpc/mm/hugetlbpage.c+7−0

This diff is large: its 16 lines aren’t shown here.

arch/powerpc/mm/init_32.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/mm/mmu_context_iommu.c+77−4

This diff is large: its 107 lines aren’t shown here.

arch/powerpc/mm/mmu_context_nohash.c+24−32

This diff is large: its 77 lines aren’t shown here.

arch/powerpc/mm/numa.c+5−41

This diff is large: its 75 lines aren’t shown here.

arch/powerpc/mm/pgtable-book3s64.c+10−1

This diff is large: its 22 lines aren’t shown here.

arch/powerpc/mm/pgtable-radix.c+40−0

This diff is large: its 61 lines aren’t shown here.

arch/powerpc/mm/pgtable.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/mm/slb_low.S+9−6

This diff is large: its 29 lines aren’t shown here.

arch/powerpc/mm/tlb-radix.c+24−0

This diff is large: its 28 lines aren’t shown here.

arch/powerpc/net/bpf_jit.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/net/bpf_jit64.h+17−9

This diff is large: its 68 lines aren’t shown here.

arch/powerpc/net/bpf_jit_comp64.c+194−70

This diff is large: its 417 lines aren’t shown here.

arch/powerpc/oprofile/cell/spu_profiler.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/oprofile/cell/spu_task_sync.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/perf/core-book3s.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/perf/hv-gpci.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/perf/power7-pmu.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/perf/power8-pmu.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/perf/power9-pmu.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/44x/warp.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/512x/mpc5121_ads_cpld.c+4−4

This diff is large: its 35 lines aren’t shown here.

arch/powerpc/platforms/512x/mpc512x_lpbfifo.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/52xx/mpc52xx_pic.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/82xx/Kconfig+2−2

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/82xx/ep8248e.c+3−1

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/82xx/pq2ads-pci-pic.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/83xx/asp834x.c+1−3

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/83xx/km83xx.c+1−4

This diff is large: its 12 lines aren’t shown here.

arch/powerpc/platforms/83xx/misc.c+8−0

This diff is large: its 12 lines aren’t shown here.

arch/powerpc/platforms/83xx/mpc830x_rdb.c+1−4

This diff is large: its 12 lines aren’t shown here.

arch/powerpc/platforms/83xx/mpc831x_rdb.c+1−4

This diff is large: its 12 lines aren’t shown here.

arch/powerpc/platforms/83xx/mpc832x_mds.c+1−4

This diff is large: its 19 lines aren’t shown here.

arch/powerpc/platforms/83xx/mpc832x_rdb.c+2−5

This diff is large: its 21 lines aren’t shown here.

arch/powerpc/platforms/83xx/mpc834x_itx.c+1−4

This diff is large: its 12 lines aren’t shown here.

arch/powerpc/platforms/83xx/mpc834x_mds.c+1−4

This diff is large: its 12 lines aren’t shown here.

arch/powerpc/platforms/83xx/mpc836x_mds.c+1−4

This diff is large: its 19 lines aren’t shown here.

arch/powerpc/platforms/83xx/mpc836x_rdk.c+1−4

This diff is large: its 12 lines aren’t shown here.

arch/powerpc/platforms/83xx/mpc837x_mds.c+1−4

This diff is large: its 12 lines aren’t shown here.

arch/powerpc/platforms/83xx/mpc837x_rdb.c+1−4

This diff is large: its 12 lines aren’t shown here.

arch/powerpc/platforms/83xx/mpc83xx.h+1−0

This diff is large: its 7 lines aren’t shown here.

arch/powerpc/platforms/83xx/sbc834x.c+1−4

This diff is large: its 12 lines aren’t shown here.

arch/powerpc/platforms/83xx/suspend.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/platforms/85xx/Kconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/85xx/bsc913x_qds.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/85xx/bsc913x_rdb.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/85xx/c293pcie.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/85xx/common.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/85xx/corenet_generic.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/85xx/ge_imp3a.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/85xx/mpc8536_ds.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/85xx/mpc85xx_ads.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/85xx/mpc85xx_cds.c+20−9

This diff is large: its 69 lines aren’t shown here.

arch/powerpc/platforms/85xx/mpc85xx_ds.c+2−5

This diff is large: its 42 lines aren’t shown here.

arch/powerpc/platforms/85xx/mpc85xx_mds.c+8−4

This diff is large: its 68 lines aren’t shown here.

arch/powerpc/platforms/85xx/mpc85xx_rdb.c+0−10

This diff is large: its 80 lines aren’t shown here.

arch/powerpc/platforms/85xx/mvme2500.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/85xx/p1010rdb.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/85xx/p1022_ds.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/85xx/p1022_rdk.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/85xx/p1023_rdb.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/85xx/ppa8548.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/85xx/qemu_e500.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/85xx/sbc8548.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/85xx/sgy_cts1000.c+5−3

This diff is large: its 31 lines aren’t shown here.

arch/powerpc/platforms/85xx/socrates.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/85xx/socrates_fpga_pic.c+3−3

This diff is large: its 27 lines aren’t shown here.

arch/powerpc/platforms/85xx/stx_gp3.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/85xx/tqm85xx.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/85xx/twr_p102x.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/85xx/xes_mpc85xx.c+0−3

This diff is large: its 24 lines aren’t shown here.

arch/powerpc/platforms/86xx/gef_ppc9a.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/86xx/gef_sbc310.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/86xx/gef_sbc610.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/86xx/mpc8610_hpcd.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/86xx/mpc86xx_hpcn.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/86xx/mvme7100.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/86xx/pic.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/platforms/86xx/sbc8641d.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/8xx/m8xx_setup.c+1−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/Kconfig.cputype+2−0

This diff is large: its 16 lines aren’t shown here.

arch/powerpc/platforms/cell/axon_msi.c+3−3

This diff is large: its 27 lines aren’t shown here.

arch/powerpc/platforms/cell/cbe_regs.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/cell/interrupt.c+6−12

This diff is large: its 52 lines aren’t shown here.

arch/powerpc/platforms/cell/iommu.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/platforms/cell/pmu.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+9−9

This diff is large: its 65 lines aren’t shown here.

arch/powerpc/platforms/cell/spu_base.c+8−8

This diff is large: its 55 lines aren’t shown here.

arch/powerpc/platforms/cell/spu_manage.c+6−3

This diff is large: its 30 lines aren’t shown here.

arch/powerpc/platforms/cell/spufs/inode.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/chrp/setup.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/platforms/embedded6xx/flipper-pic.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/embedded6xx/hlwd-pic.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/platforms/embedded6xx/mvme5100.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/platforms/maple/pci.c+3−3

This diff is large: its 27 lines aren’t shown here.

arch/powerpc/platforms/maple/setup.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/platforms/pasemi/Kconfig+10−0

This diff is large: its 17 lines aren’t shown here.

arch/powerpc/platforms/pasemi/gpio_mdio.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/platforms/pasemi/iommu.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/pasemi/misc.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/pasemi/msi.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/platforms/pasemi/setup.c+4−4

This diff is large: its 36 lines aren’t shown here.

arch/powerpc/platforms/powermac/low_i2c.c+3−3

This diff is large: its 27 lines aren’t shown here.

arch/powerpc/platforms/powermac/pfunc_base.c+2−2

This diff is large: its 18 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+3−3

This diff is large: its 27 lines aren’t shown here.

arch/powerpc/platforms/powermac/smp.c+26−26

This diff is large: its 80 lines aren’t shown here.

arch/powerpc/platforms/powernv/eeh-powernv.c+13−5

This diff is large: its 56 lines aren’t shown here.

arch/powerpc/platforms/powernv/npu-dma.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/powernv/opal-irqchip.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/platforms/powernv/opal-wrappers.S+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/powernv/pci-cxl.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/platforms/powernv/pci-ioda.c+118−20

This diff is large: its 262 lines aren’t shown here.

arch/powerpc/platforms/powernv/pci.c+4−4

This diff is large: its 29 lines aren’t shown here.

arch/powerpc/platforms/ps3/device-init.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/ps3/interrupt.c+5−5

This diff is large: its 42 lines aren’t shown here.

arch/powerpc/platforms/ps3/smp.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/platforms/ps3/spu.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/platforms/pseries/dlpar.c+3−2

This diff is large: its 26 lines aren’t shown here.

arch/powerpc/platforms/pseries/event_sources.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/pseries/lpar.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/platforms/pseries/msi.c+3−3

This diff is large: its 27 lines aren’t shown here.

arch/powerpc/platforms/pseries/scanlog.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/pseries/setup.c+3−3

This diff is large: its 34 lines aren’t shown here.

arch/powerpc/relocs_check.sh+3−1

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/sysdev/axonram.c+3−3

This diff is large: its 27 lines aren’t shown here.

arch/powerpc/sysdev/cpm1.c+4−6

This diff is large: its 45 lines aren’t shown here.

arch/powerpc/sysdev/cpm2.c+0−4

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/sysdev/cpm_common.c+15−0

This diff is large: its 22 lines aren’t shown here.

arch/powerpc/sysdev/dcr-low.S+3−0

This diff is large: its 20 lines aren’t shown here.

arch/powerpc/sysdev/ehv_pic.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/sysdev/fsl_gtm.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/sysdev/fsl_mpic_err.c+3−3

This diff is large: its 20 lines aren’t shown here.

arch/powerpc/sysdev/fsl_msi.c+6−6

This diff is large: its 54 lines aren’t shown here.

arch/powerpc/sysdev/fsl_pci.c+5−7

This diff is large: its 34 lines aren’t shown here.

arch/powerpc/sysdev/fsl_soc.c+20−13

This diff is large: its 67 lines aren’t shown here.

arch/powerpc/sysdev/fsl_soc.h+0−2

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/sysdev/ge/ge_pic.c+4−4

This diff is large: its 33 lines aren’t shown here.

arch/powerpc/sysdev/i8259.c+2−2

This diff is large: its 12 lines aren’t shown here.

arch/powerpc/sysdev/ipic.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/sysdev/mmio_nvram.c+1−1

This diff is large: its 9 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+8−8

This diff is large: its 64 lines aren’t shown here.

arch/powerpc/sysdev/mpic_msgr.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/sysdev/mpic_u3msi.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/sysdev/mv64x60_pic.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/sysdev/pmi.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/sysdev/ppc4xx_hsta_msi.c+3−3

This diff is large: its 27 lines aren’t shown here.

arch/powerpc/sysdev/ppc4xx_msi.c+3−3

This diff is large: its 27 lines aren’t shown here.

arch/powerpc/sysdev/ppc4xx_soc.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/sysdev/tsi108_pci.c+1−1

This diff is large: its 9 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/sysdev/xics/icp-hv.c+3−3

This diff is large: its 22 lines aren’t shown here.

arch/powerpc/sysdev/xics/icp-native.c+3−3

This diff is large: its 22 lines aren’t shown here.

arch/powerpc/sysdev/xics/icp-opal.c+11−9

This diff is large: its 60 lines aren’t shown here.

arch/powerpc/sysdev/xics/xics-common.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/xmon/spr_access.S+2−2

This diff is large: its 15 lines aren’t shown here.

arch/s390/Kconfig+4−1

This diff is large: its 31 lines aren’t shown here.

arch/s390/Makefile+2−0

This diff is large: its 9 lines aren’t shown here.

arch/s390/appldata/appldata_base.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/s390/boot/compressed/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

arch/s390/configs/default_defconfig+8−3

This diff is large: its 74 lines aren’t shown here.

arch/s390/configs/gcov_defconfig+10−3

This diff is large: its 83 lines aren’t shown here.

arch/s390/configs/performance_defconfig+10−3

This diff is large: its 83 lines aren’t shown here.

arch/s390/crypto/aes_s390.c+222−368

This diff is large: its 865 lines aren’t shown here.

arch/s390/crypto/crc32-vx.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/s390/crypto/des_s390.c+145−185

This diff is large: its 561 lines aren’t shown here.

arch/s390/crypto/ghash_s390.c+5−15

This diff is large: its 58 lines aren’t shown here.

arch/s390/crypto/prng.c+26−75

This diff is large: its 203 lines aren’t shown here.

arch/s390/crypto/sha1_s390.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/s390/crypto/sha256_s390.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/s390/crypto/sha512_s390.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/s390/crypto/sha_common.c+7−16

This diff is large: its 58 lines aren’t shown here.

arch/s390/hypfs/inode.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/s390/include/asm/Kbuild+1−0

This diff is large: its 8 lines aren’t shown here.

arch/s390/include/asm/cpacf.h+79−99

This diff is large: its 349 lines aren’t shown here.

arch/s390/include/asm/facilities_src.h+24−0

This diff is large: its 29 lines aren’t shown here.

arch/s390/include/asm/fpu/api.h+21−11

This diff is large: its 59 lines aren’t shown here.

arch/s390/include/asm/kvm_host.h+68−68

This diff is large: its 157 lines aren’t shown here.

arch/s390/include/asm/lowcore.h+2−1

This diff is large: its 10 lines aren’t shown here.

arch/s390/include/asm/mmu.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/s390/include/asm/mmu_context.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/s390/include/asm/pci.h+5−0

This diff is large: its 26 lines aren’t shown here.

arch/s390/include/asm/pgtable.h+25−49

This diff is large: its 115 lines aren’t shown here.

arch/s390/include/asm/tlbflush.h+20−52

This diff is large: its 111 lines aren’t shown here.

arch/s390/include/asm/uaccess.h+4−4

This diff is large: its 33 lines aren’t shown here.

arch/s390/include/asm/uprobes.h+0−10

This diff is large: its 15 lines aren’t shown here.

arch/s390/include/asm/vx-insn.h+114−34

This diff is large: its 297 lines aren’t shown here.

arch/s390/include/uapi/asm/Kbuild+1−0

This diff is large: its 8 lines aren’t shown here.

arch/s390/kernel/Makefile+4−1

This diff is large: its 19 lines aren’t shown here.

arch/s390/kernel/asm-offsets.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/s390/kernel/compat_linux.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/s390/kernel/crash_dump.c+1−3

This diff is large: its 11 lines aren’t shown here.

arch/s390/kernel/early.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/s390/kernel/entry.S+6−0

This diff is large: its 27 lines aren’t shown here.

arch/s390/kernel/fpu.c+122−195

This diff is large: its 363 lines aren’t shown here.

arch/s390/kernel/ftrace.c+2−1

This diff is large: its 10 lines aren’t shown here.

arch/s390/kernel/kprobes.c+2−0

This diff is large: its 15 lines aren’t shown here.

arch/s390/kernel/mcount.S+3−0

This diff is large: its 17 lines aren’t shown here.

arch/s390/kernel/nmi.c+39−28

This diff is large: its 122 lines aren’t shown here.

arch/s390/kernel/s390_ksyms.c+0−15

This diff is large: its 16 lines aren’t shown here.

arch/s390/kernel/sysinfo.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/s390/kernel/time.c+14−72

This diff is large: its 182 lines aren’t shown here.

arch/s390/kernel/traps.c+2−1

This diff is large: its 14 lines aren’t shown here.

arch/s390/kernel/vdso32/Makefile+2−1

This diff is large: its 11 lines aren’t shown here.

arch/s390/kernel/vdso64/Makefile+2−1

This diff is large: its 11 lines aren’t shown here.

arch/s390/kernel/vmlinux.lds.S+1−0

This diff is large: its 8 lines aren’t shown here.

arch/s390/kvm/gaccess.c+18−19

This diff is large: its 60 lines aren’t shown here.

arch/s390/kvm/guestdbg.c+30−29

This diff is large: its 131 lines aren’t shown here.

arch/s390/kvm/intercept.c+8−2

This diff is large: its 24 lines aren’t shown here.

arch/s390/kvm/interrupt.c+75−23

This diff is large: its 146 lines aren’t shown here.

arch/s390/kvm/kvm-s390.c+69−54

This diff is large: its 214 lines aren’t shown here.

arch/s390/kvm/kvm-s390.h+11−3

This diff is large: its 41 lines aren’t shown here.

arch/s390/kvm/priv.c+21−0

This diff is large: its 35 lines aren’t shown here.

arch/s390/kvm/vsie.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/s390/lib/mem.S+3−0

This diff is large: its 21 lines aren’t shown here.

arch/s390/mm/fault.c+13−19

This diff is large: its 58 lines aren’t shown here.

arch/s390/mm/gmap.c+15−0

This diff is large: its 43 lines aren’t shown here.

arch/s390/mm/gup.c+2−1

This diff is large: its 10 lines aren’t shown here.

arch/s390/mm/pageattr.c+2−2

This diff is large: its 14 lines aren’t shown here.

arch/s390/mm/pgtable.c+9−9

This diff is large: its 63 lines aren’t shown here.

arch/s390/pci/pci.c+9−0

This diff is large: its 16 lines aren’t shown here.

arch/s390/pci/pci_dma.c+170−76

This diff is large: its 395 lines aren’t shown here.

arch/score/include/asm/extable.h+11−0

This diff is large: its 12 lines aren’t shown here.

arch/score/include/asm/module.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/score/include/asm/uaccess.h+25−29

This diff is large: its 121 lines aren’t shown here.

arch/score/kernel/ptrace.c+6−4

This diff is large: its 38 lines aren’t shown here.

arch/score/kernel/traps.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/score/kernel/vmlinux.lds.S+1−0

This diff is large: its 8 lines aren’t shown here.

arch/sh/Makefile+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/boards/Kconfig+10−0

This diff is large: its 17 lines aren’t shown here.

arch/sh/configs/j2_defconfig+2−0

This diff is large: its 16 lines aren’t shown here.

arch/sh/include/asm/atomic-llsc.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/include/asm/uaccess.h+4−3

This diff is large: its 21 lines aren’t shown here.

arch/sh/include/asm/uaccess_64.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/smp-shx3.c+5−21

This diff is large: its 38 lines aren’t shown here.

arch/sh/kernel/ftrace.c+3−3

This diff is large: its 27 lines aren’t shown here.

arch/sh/kernel/vmlinux.lds.S+1−0

This diff is large: its 8 lines aren’t shown here.

arch/sh/mm/gup.c+2−1

This diff is large: its 10 lines aren’t shown here.

arch/sparc/Kconfig+0−2

This diff is large: its 16 lines aren’t shown here.

arch/sparc/include/asm/Kbuild+1−0

This diff is large: its 8 lines aren’t shown here.

arch/sparc/include/asm/elf_64.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sparc/include/asm/extable_64.h+20−0

This diff is large: its 21 lines aren’t shown here.

arch/sparc/include/asm/ftrace.h+4−0

This diff is large: its 11 lines aren’t shown here.

arch/sparc/include/asm/hypervisor.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/sparc/include/asm/irq_64.h+3−2

This diff is large: its 12 lines aren’t shown here.

arch/sparc/include/asm/page_64.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/sparc/include/asm/smp_64.h+2−0

This diff is large: its 16 lines aren’t shown here.

arch/sparc/include/asm/string.h+34−0

This diff is large: its 39 lines aren’t shown here.

arch/sparc/include/asm/string_32.h+0−56

This diff is large: its 61 lines aren’t shown here.

arch/sparc/include/asm/string_64.h+0−44

This diff is large: its 55 lines aren’t shown here.

arch/sparc/include/asm/uaccess_32.h+6−7

This diff is large: its 35 lines aren’t shown here.

arch/sparc/include/asm/uaccess_64.h+4−21

This diff is large: its 53 lines aren’t shown here.

arch/sparc/kernel/Makefile+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sparc/kernel/entry.S+3−0

This diff is large: its 17 lines aren’t shown here.

arch/sparc/kernel/ftrace.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sparc/kernel/head_32.S+3−0

This diff is large: its 21 lines aren’t shown here.

arch/sparc/kernel/head_64.S+6−1

This diff is large: its 42 lines aren’t shown here.

arch/sparc/kernel/helpers.S+2−0

This diff is large: its 13 lines aren’t shown here.

arch/sparc/kernel/hvcalls.S+5−0

This diff is large: its 40 lines aren’t shown here.

arch/sparc/kernel/kprobes.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sparc/kernel/pci_sun4v.c+41−11

This diff is large: its 116 lines aren’t shown here.

arch/sparc/kernel/process_64.c+5−5

This diff is large: its 37 lines aren’t shown here.

arch/sparc/kernel/ptrace_64.c+16−8

This diff is large: its 75 lines aren’t shown here.

arch/sparc/kernel/setup_64.c+26−0

This diff is large: its 54 lines aren’t shown here.

arch/sparc/kernel/smp_32.c+0−2

This diff is large: its 10 lines aren’t shown here.

arch/sparc/kernel/smp_64.c+14−0

This diff is large: its 21 lines aren’t shown here.

arch/sparc/kernel/sparc_ksyms.c+12−0

This diff is large: its 13 lines aren’t shown here.

arch/sparc/kernel/sparc_ksyms_32.c+0−31

This diff is large: its 32 lines aren’t shown here.

arch/sparc/kernel/sparc_ksyms_64.c+0−53

This diff is large: its 54 lines aren’t shown here.

arch/sparc/kernel/traps_64.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sparc/kernel/unaligned_64.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sparc/kernel/vmlinux.lds.S+1−0

This diff is large: its 8 lines aren’t shown here.

arch/sparc/lib/Makefile+0−1

This diff is large: its 6 lines aren’t shown here.

arch/sparc/lib/U1memcpy.S+2−0

This diff is large: its 13 lines aren’t shown here.

arch/sparc/lib/VISsave.S+2−0

This diff is large: its 13 lines aren’t shown here.

arch/sparc/lib/ashldi3.S+2−0

This diff is large: its 13 lines aren’t shown here.

arch/sparc/lib/ashrdi3.S+2−0

This diff is large: its 13 lines aren’t shown here.

arch/sparc/lib/atomic_64.S+12−4

This diff is large: its 69 lines aren’t shown here.

arch/sparc/lib/bitops.S+7−0

This diff is large: its 53 lines aren’t shown here.

arch/sparc/lib/blockops.S+3−0

This diff is large: its 21 lines aren’t shown here.

arch/sparc/lib/bzero.S+4−0

This diff is large: its 22 lines aren’t shown here.

arch/sparc/lib/checksum_32.S+3−0

This diff is large: its 24 lines aren’t shown here.

arch/sparc/lib/checksum_64.S+2−0

This diff is large: its 16 lines aren’t shown here.

arch/sparc/lib/clear_page.S+3−0

This diff is large: its 24 lines aren’t shown here.

arch/sparc/lib/copy_in_user.S+2−0

This diff is large: its 13 lines aren’t shown here.

arch/sparc/lib/copy_page.S+2−0

This diff is large: its 16 lines aren’t shown here.

arch/sparc/lib/copy_user.S+2−0

This diff is large: its 16 lines aren’t shown here.

arch/sparc/lib/csum_copy.S+3−0

This diff is large: its 17 lines aren’t shown here.

arch/sparc/lib/divdi3.S+2−0

This diff is large: its 13 lines aren’t shown here.

arch/sparc/lib/ffs.S+3−0

This diff is large: its 15 lines aren’t shown here.

arch/sparc/lib/hweight.S+5−0

This diff is large: its 38 lines aren’t shown here.

arch/sparc/lib/ipcsum.S+2−0

This diff is large: its 11 lines aren’t shown here.

arch/sparc/lib/ksyms.c+0−174

This diff is large: its 175 lines aren’t shown here.

arch/sparc/lib/locks.S+5−0

This diff is large: its 40 lines aren’t shown here.

arch/sparc/lib/lshrdi3.S+2−0

This diff is large: its 11 lines aren’t shown here.

arch/sparc/lib/mcount.S+2−0

This diff is large: its 16 lines aren’t shown here.

arch/sparc/lib/memcmp.S+2−0

This diff is large: its 13 lines aren’t shown here.

arch/sparc/lib/memcpy.S+3−83

This diff is large: its 111 lines aren’t shown here.

arch/sparc/lib/memmove.S+2−0

This diff is large: its 13 lines aren’t shown here.

arch/sparc/lib/memscan_32.S+4−0

This diff is large: its 18 lines aren’t shown here.

arch/sparc/lib/memscan_64.S+4−0

This diff is large: its 18 lines aren’t shown here.

arch/sparc/lib/memset.S+3−0

This diff is large: its 17 lines aren’t shown here.

arch/sparc/lib/muldi3.S+2−0

This diff is large: its 13 lines aren’t shown here.

arch/sparc/lib/strlen.S+2−0

This diff is large: its 13 lines aren’t shown here.

arch/sparc/lib/strncmp_32.S+2−0

This diff is large: its 13 lines aren’t shown here.

arch/sparc/lib/strncmp_64.S+2−0

This diff is large: its 13 lines aren’t shown here.

arch/sparc/lib/xor.S+9−0

This diff is large: its 69 lines aren’t shown here.

arch/sparc/mm/fault_64.c+2−1

This diff is large: its 17 lines aren’t shown here.

arch/sparc/mm/gup.c+2−1

This diff is large: its 10 lines aren’t shown here.

arch/sparc/mm/init_64.c+4−20

This diff is large: its 59 lines aren’t shown here.

arch/sparc/mm/tlb.c+31−4

This diff is large: its 56 lines aren’t shown here.

arch/sparc/mm/tsb.c+12−6

This diff is large: its 44 lines aren’t shown here.

arch/sparc/prom/ranges.c+24−28

This diff is large: its 109 lines aren’t shown here.

arch/tile/Kconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/tile/include/asm/irq.h+3−2

This diff is large: its 12 lines aren’t shown here.

arch/tile/kernel/entry.S+1−1

This diff is large: its 9 lines aren’t shown here.

arch/tile/kernel/ftrace.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/tile/kernel/pmc.c+0−3

This diff is large: its 18 lines aren’t shown here.

arch/tile/kernel/process.c+17−56

This diff is large: its 122 lines aren’t shown here.

arch/tile/kernel/traps.c+7−2

This diff is large: its 29 lines aren’t shown here.

arch/tile/kernel/vmlinux.lds.S+1−0

This diff is large: its 8 lines aren’t shown here.

arch/tile/mm/mmap.c+1−2

This diff is large: its 8 lines aren’t shown here.

arch/um/drivers/harddog_kern.c+1−24

This diff is large: its 29 lines aren’t shown here.

arch/um/kernel/dyn.lds.S+1−0

This diff is large: its 8 lines aren’t shown here.

arch/um/kernel/skas/syscall.c+3−7

This diff is large: its 25 lines aren’t shown here.

arch/um/kernel/uml.lds.S+1−0

This diff is large: its 8 lines aren’t shown here.

arch/unicore32/kernel/process.c+1−2

This diff is large: its 10 lines aren’t shown here.

arch/unicore32/kernel/vmlinux.lds.S+1−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/Kconfig+16−17

This diff is large: its 93 lines aren’t shown here.

arch/x86/Makefile+3−2

This diff is large: its 15 lines aren’t shown here.

arch/x86/boot/compressed/eboot.c+72−102

This diff is large: its 232 lines aren’t shown here.

arch/x86/boot/compressed/head_32.S+3−3

This diff is large: its 27 lines aren’t shown here.

arch/x86/boot/compressed/head_64.S+4−4

This diff is large: its 35 lines aren’t shown here.

arch/x86/configs/x86_64_defconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/entry/common.c+8−16

This diff is large: its 85 lines aren’t shown here.

arch/x86/entry/entry_32.S+54−16

This diff is large: its 103 lines aren’t shown here.

arch/x86/entry/entry_64.S+118−41

This diff is large: its 252 lines aren’t shown here.

arch/x86/entry/syscalls/syscall_32.tbl+3−0

This diff is large: its 7 lines aren’t shown here.

arch/x86/entry/syscalls/syscall_64.tbl+3−0

This diff is large: its 10 lines aren’t shown here.

arch/x86/entry/syscalls/syscalltbl.sh+9−6

This diff is large: its 44 lines aren’t shown here.

arch/x86/entry/thunk_32.S+3−0

This diff is large: its 16 lines aren’t shown here.

arch/x86/entry/thunk_64.S+3−0

This diff is large: its 17 lines aren’t shown here.

arch/x86/entry/vdso/vclock_gettime.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/entry/vdso/vdso2c.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/entry/vdso/vma.c+102−73

This diff is large: its 230 lines aren’t shown here.

arch/x86/events/amd/core.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/x86/events/amd/uncore.c+18−4

This diff is large: its 69 lines aren’t shown here.

arch/x86/events/core.c+34−26

This diff is large: its 118 lines aren’t shown here.

arch/x86/events/intel/bts.c+96−30

This diff is large: its 247 lines aren’t shown here.

arch/x86/events/intel/core.c+28−21

This diff is large: its 133 lines aren’t shown here.

arch/x86/events/intel/cqm.c+9−0

This diff is large: its 23 lines aren’t shown here.

arch/x86/events/intel/ds.c+84−43

This diff is large: its 192 lines aren’t shown here.

arch/x86/events/intel/lbr.c+34−40

This diff is large: its 132 lines aren’t shown here.

arch/x86/events/intel/pt.c+37−5

This diff is large: its 89 lines aren’t shown here.

arch/x86/events/intel/pt.h+5−0

This diff is large: its 24 lines aren’t shown here.

arch/x86/events/intel/rapl.c+5−0

This diff is large: its 23 lines aren’t shown here.

arch/x86/events/intel/uncore.c+11−1

This diff is large: its 42 lines aren’t shown here.

arch/x86/events/intel/uncore.h+7−0

This diff is large: its 35 lines aren’t shown here.

arch/x86/events/intel/uncore_snb.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/x86/events/intel/uncore_snbep.c+614−12

This diff is large: its 732 lines aren’t shown here.

arch/x86/events/perf_event.h+10−3

This diff is large: its 47 lines aren’t shown here.

arch/x86/ia32/ia32_signal.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/include/asm/alternative.h+6−2

This diff is large: its 17 lines aren’t shown here.

arch/x86/include/asm/apic.h+2−3

This diff is large: its 21 lines aren’t shown here.

arch/x86/include/asm/cacheflush.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/include/asm/cmpxchg.h+0−44

This diff is large: its 54 lines aren’t shown here.

arch/x86/include/asm/compat.h+4−4

This diff is large: its 15 lines aren’t shown here.

arch/x86/include/asm/cpufeatures.h+2−1

This diff is large: its 17 lines aren’t shown here.

arch/x86/include/asm/desc.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/include/asm/e820.h+4−2

This diff is large: its 20 lines aren’t shown here.

arch/x86/include/asm/efi.h+17−12

This diff is large: its 55 lines aren’t shown here.

arch/x86/include/asm/export.h+4−0

This diff is large: its 5 lines aren’t shown here.

arch/x86/include/asm/extable.h+35−0

This diff is large: its 36 lines aren’t shown here.

arch/x86/include/asm/fpu/signal.h+6−0

This diff is large: its 13 lines aren’t shown here.

arch/x86/include/asm/fpu/xstate.h+6−4

This diff is large: its 26 lines aren’t shown here.

arch/x86/include/asm/ftrace.h+3−0

This diff is large: its 17 lines aren’t shown here.

arch/x86/include/asm/hypervisor.h+4−0

This diff is large: its 18 lines aren’t shown here.

arch/x86/include/asm/intel-family.h+3−2

This diff is large: its 17 lines aren’t shown here.

arch/x86/include/asm/intel-mid.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/x86/include/asm/intel_scu_ipc.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/x86/include/asm/irq.h+3−2

This diff is large: its 12 lines aren’t shown here.

arch/x86/include/asm/irqflags.h+8−4

This diff is large: its 44 lines aren’t shown here.

arch/x86/include/asm/kaslr.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/include/asm/kdebug.h+0−2

This diff is large: its 9 lines aren’t shown here.

arch/x86/include/asm/kexec.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/include/asm/kvm_host.h+41−37

This diff is large: its 118 lines aren’t shown here.

arch/x86/include/asm/mce.h+36−30

This diff is large: its 105 lines aren’t shown here.

arch/x86/include/asm/mmu.h+8−0

This diff is large: its 15 lines aren’t shown here.

arch/x86/include/asm/mmu_context.h+19−6

This diff is large: its 57 lines aren’t shown here.

arch/x86/include/asm/mpspec.h+2−1

This diff is large: its 24 lines aren’t shown here.

arch/x86/include/asm/msr-index.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/include/asm/paravirt.h+0−22

This diff is large: its 43 lines aren’t shown here.

arch/x86/include/asm/paravirt_types.h+0−8

This diff is large: its 32 lines aren’t shown here.

arch/x86/include/asm/pci.h+14−0

This diff is large: its 28 lines aren’t shown here.

arch/x86/include/asm/percpu.h+3−2

This diff is large: its 19 lines aren’t shown here.

arch/x86/include/asm/pgtable_64_types.h+3−1

This diff is large: its 15 lines aren’t shown here.

arch/x86/include/asm/pgtable_types.h+0−2

This diff is large: its 9 lines aren’t shown here.

arch/x86/include/asm/pkeys.h+72−1

This diff is large: its 85 lines aren’t shown here.

arch/x86/include/asm/pmem.h+1−4

This diff is large: its 12 lines aren’t shown here.

arch/x86/include/asm/processor.h+14−11

This diff is large: its 58 lines aren’t shown here.

arch/x86/include/asm/pvclock.h+3−2

This diff is large: its 13 lines aren’t shown here.

arch/x86/include/asm/realmode.h+1−1

This diff is large: its 11 lines aren’t shown here.

arch/x86/include/asm/rwsem.h+5−3

This diff is large: its 30 lines aren’t shown here.

arch/x86/include/asm/sections.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/include/asm/signal.h+4−0

This diff is large: its 11 lines aren’t shown here.

arch/x86/include/asm/smp.h+1−3

This diff is large: its 18 lines aren’t shown here.

arch/x86/include/asm/special_insns.h+7−15

This diff is large: its 42 lines aren’t shown here.

arch/x86/include/asm/spinlock.h+0−174

This diff is large: its 188 lines aren’t shown here.

arch/x86/include/asm/spinlock_types.h+0−13

This diff is large: its 21 lines aren’t shown here.

arch/x86/include/asm/stacktrace.h+60−60

This diff is large: its 155 lines aren’t shown here.

arch/x86/include/asm/string_64.h+18−1

This diff is large: its 43 lines aren’t shown here.

arch/x86/include/asm/switch_to.h+50−114

This diff is large: its 181 lines aren’t shown here.

arch/x86/include/asm/syscall.h+5−15

This diff is large: its 48 lines aren’t shown here.

arch/x86/include/asm/thread_info.h+5−59

This diff is large: its 115 lines aren’t shown here.

arch/x86/include/asm/traps.h+6−0

This diff is large: its 13 lines aren’t shown here.

arch/x86/include/asm/uaccess.h+8−34

This diff is large: its 77 lines aren’t shown here.

arch/x86/include/asm/unwind.h+63−0

This diff is large: its 64 lines aren’t shown here.

arch/x86/include/asm/uv/uv_bau.h+42−3

This diff is large: its 78 lines aren’t shown here.

arch/x86/include/asm/vdso.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/x86/include/asm/xen/events.h+0−11

This diff is large: its 16 lines aren’t shown here.

arch/x86/include/uapi/asm/mce.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/x86/include/uapi/asm/prctl.h+6−0

This diff is large: its 11 lines aren’t shown here.

arch/x86/kernel/Makefile+8−3

This diff is large: its 32 lines aren’t shown here.

arch/x86/kernel/acpi/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/kernel/acpi/boot.c+13−26

This diff is large: its 97 lines aren’t shown here.

arch/x86/kernel/acpi/cppc_msr.c+58−0

This diff is large: its 59 lines aren’t shown here.

arch/x86/kernel/acpi/cstate.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/acpi/sleep.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/apic/apic.c+84−21

This diff is large: its 201 lines aren’t shown here.

arch/x86/kernel/apic/apic_flat_64.c+6−16

This diff is large: its 58 lines aren’t shown here.

arch/x86/kernel/apic/apic_noop.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/apic/apic_numachip.c+1−4

This diff is large: its 12 lines aren’t shown here.

arch/x86/kernel/apic/bigsmp_32.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/apic/hw_nmi.c+9−9

This diff is large: its 42 lines aren’t shown here.

arch/x86/kernel/apic/io_apic.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/x86/kernel/apic/msi.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/apic/probe_32.c+3−3

This diff is large: its 27 lines aren’t shown here.

arch/x86/kernel/apic/vector.c+20−3

This diff is large: its 32 lines aren’t shown here.

arch/x86/kernel/apic/x2apic_cluster.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/apic/x2apic_phys.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/apic/x2apic_uv_x.c+9−31

This diff is large: its 81 lines aren’t shown here.

arch/x86/kernel/asm-offsets.c+5−2

This diff is large: its 16 lines aren’t shown here.

arch/x86/kernel/asm-offsets_32.c+5−0

This diff is large: its 12 lines aren’t shown here.

arch/x86/kernel/asm-offsets_64.c+5−0

This diff is large: its 12 lines aren’t shown here.

arch/x86/kernel/cpu/common.c+20−21

This diff is large: its 72 lines aren’t shown here.

arch/x86/kernel/cpu/hypervisor.c+11−0

This diff is large: its 15 lines aren’t shown here.

arch/x86/kernel/cpu/mcheck/mce.c+33−11

This diff is large: its 95 lines aren’t shown here.

arch/x86/kernel/cpu/mcheck/mce_amd.c+167−37

This diff is large: its 319 lines aren’t shown here.

arch/x86/kernel/cpu/microcode/amd.c+10−3

This diff is large: its 52 lines aren’t shown here.

arch/x86/kernel/cpu/microcode/core.c+17−35

This diff is large: its 81 lines aren’t shown here.

arch/x86/kernel/cpu/mtrr/main.c+2−2

This diff is large: its 17 lines aren’t shown here.

arch/x86/kernel/cpu/mtrr/mtrr.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/cpu/scattered.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/cpu/vmware.c+15−2

This diff is large: its 33 lines aren’t shown here.

arch/x86/kernel/crash.c+19−3

This diff is large: its 43 lines aren’t shown here.

arch/x86/kernel/dumpstack.c+110−148

This diff is large: its 307 lines aren’t shown here.

arch/x86/kernel/dumpstack_32.c+92−62

This diff is large: its 202 lines aren’t shown here.

arch/x86/kernel/dumpstack_64.c+100−218

This diff is large: its 390 lines aren’t shown here.

arch/x86/kernel/e820.c+89−64

This diff is large: its 410 lines aren’t shown here.

arch/x86/kernel/early-quirks.c+6−14

This diff is large: its 51 lines aren’t shown here.

arch/x86/kernel/fpu/core.c+4−0

This diff is large: its 18 lines aren’t shown here.

arch/x86/kernel/fpu/init.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/kernel/fpu/xstate.c+6−1

This diff is large: its 37 lines aren’t shown here.

arch/x86/kernel/ftrace.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/head_32.S+6−4

This diff is large: its 52 lines aren’t shown here.

arch/x86/kernel/head_64.S+8−7

This diff is large: its 68 lines aren’t shown here.

arch/x86/kernel/hpet.c+94−0

This diff is large: its 105 lines aren’t shown here.

arch/x86/kernel/i386_ksyms_32.c+0−47

This diff is large: its 48 lines aren’t shown here.

arch/x86/kernel/irq_64.c+1−2

This diff is large: its 10 lines aren’t shown here.

arch/x86/kernel/kexec-bzimage64.c+2−2

This diff is large: its 17 lines aren’t shown here.

arch/x86/kernel/kgdb.c+4−4

This diff is large: its 40 lines aren’t shown here.

arch/x86/kernel/kprobes/core.c+9−4

This diff is large: its 46 lines aren’t shown here.

arch/x86/kernel/kprobes/opt.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/ksysfs.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/kvm.c+16−272

This diff is large: its 338 lines aren’t shown here.

arch/x86/kernel/kvmclock.c+2−1

This diff is large: its 17 lines aren’t shown here.

arch/x86/kernel/livepatch.c+65−0

This diff is large: its 66 lines aren’t shown here.

arch/x86/kernel/machine_kexec_64.c+3−0

This diff is large: its 10 lines aren’t shown here.

arch/x86/kernel/mcount_64.S+2−0

This diff is large: its 16 lines aren’t shown here.

arch/x86/kernel/mpparse.c+3−0

This diff is large: its 10 lines aren’t shown here.

arch/x86/kernel/paravirt-spinlocks.c+0−7

This diff is large: its 28 lines aren’t shown here.

arch/x86/kernel/paravirt.c+1−2

This diff is large: its 17 lines aren’t shown here.

arch/x86/kernel/paravirt_patch_32.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/x86/kernel/paravirt_patch_64.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/x86/kernel/process.c+33−16

This diff is large: its 112 lines aren’t shown here.

arch/x86/kernel/process_32.c+9−24

This diff is large: its 71 lines aren’t shown here.

arch/x86/kernel/process_64.c+46−19

This diff is large: its 124 lines aren’t shown here.

arch/x86/kernel/ptrace.c+7−7

This diff is large: its 56 lines aren’t shown here.

arch/x86/kernel/pvclock.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/quirks.c+31−0

This diff is large: its 35 lines aren’t shown here.

arch/x86/kernel/reboot.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/resource.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/x86/kernel/setup.c+17−20

This diff is large: its 91 lines aren’t shown here.

arch/x86/kernel/setup_percpu.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/x86/kernel/signal.c+12−10

This diff is large: its 69 lines aren’t shown here.

arch/x86/kernel/signal_compat.c+28−3

This diff is large: its 60 lines aren’t shown here.

arch/x86/kernel/smp.c+7−0

This diff is large: its 30 lines aren’t shown here.

arch/x86/kernel/smpboot.c+54−39

This diff is large: its 215 lines aren’t shown here.

arch/x86/kernel/stacktrace.c+34−45

This diff is large: its 115 lines aren’t shown here.

arch/x86/kernel/step.c+2−1

This diff is large: its 10 lines aren’t shown here.

arch/x86/kernel/sys_x86_64.c+1−4

This diff is large: its 19 lines aren’t shown here.

arch/x86/kernel/tboot.c+4−4

This diff is large: its 17 lines aren’t shown here.

arch/x86/kernel/traps.c+61−0

This diff is large: its 81 lines aren’t shown here.

arch/x86/kernel/tsc.c+9−3

This diff is large: its 28 lines aren’t shown here.

arch/x86/kernel/unwind_frame.c+93−0

This diff is large: its 94 lines aren’t shown here.

arch/x86/kernel/unwind_guess.c+53−0

This diff is large: its 54 lines aren’t shown here.

arch/x86/kernel/vmlinux.lds.S+1−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/kernel/x8664_ksyms_64.c+0−85

This diff is large: its 86 lines aren’t shown here.

arch/x86/kernel/x86_init.c+3−3

This diff is large: its 27 lines aren’t shown here.

arch/x86/kvm/Makefile+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kvm/cpuid.c+2−1

This diff is large: its 10 lines aren’t shown here.

arch/x86/kvm/debugfs.c+69−0

This diff is large: its 70 lines aren’t shown here.

arch/x86/kvm/hyperv.c+141−16

This diff is large: its 180 lines aren’t shown here.

arch/x86/kvm/hyperv.h+3−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/kvm/i8254.c+7−7

This diff is large: its 61 lines aren’t shown here.

arch/x86/kvm/ioapic.c+6−4

This diff is large: its 38 lines aren’t shown here.

arch/x86/kvm/lapic.c+3−2

This diff is large: its 13 lines aren’t shown here.

arch/x86/kvm/mmu.c+6−6

This diff is large: its 48 lines aren’t shown here.

arch/x86/kvm/pmu_amd.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/x86/kvm/svm.c+388−31

This diff is large: its 576 lines aren’t shown here.

arch/x86/kvm/vmx.c+136−73

This diff is large: its 457 lines aren’t shown here.

arch/x86/kvm/x86.c+111−72

This diff is large: its 323 lines aren’t shown here.

arch/x86/kvm/x86.h+1−5

This diff is large: its 20 lines aren’t shown here.

arch/x86/lib/checksum_32.S+3−0

This diff is large: its 21 lines aren’t shown here.

arch/x86/lib/clear_page_64.S+2−0

This diff is large: its 16 lines aren’t shown here.

arch/x86/lib/cmpxchg8b_emu.S+2−0

This diff is large: its 13 lines aren’t shown here.

arch/x86/lib/copy_page_64.S+2−0

This diff is large: its 16 lines aren’t shown here.

arch/x86/lib/copy_user_64.S+8−0

This diff is large: its 54 lines aren’t shown here.

arch/x86/lib/csum-partial_64.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/lib/getuser.S+5−0

This diff is large: its 40 lines aren’t shown here.

arch/x86/lib/hweight.S+3−0

This diff is large: its 19 lines aren’t shown here.

arch/x86/lib/memcpy_64.S+7−3

This diff is large: its 41 lines aren’t shown here.

arch/x86/lib/memmove_64.S+3−0

This diff is large: its 14 lines aren’t shown here.

arch/x86/lib/memset_64.S+3−0

This diff is large: its 17 lines aren’t shown here.

arch/x86/lib/putuser.S+5−0

This diff is large: its 40 lines aren’t shown here.

arch/x86/lib/strstr_32.c+2−1

This diff is large: its 12 lines aren’t shown here.

arch/x86/mm/amdtopology.c+5−17

This diff is large: its 36 lines aren’t shown here.

arch/x86/mm/extable.c+1−1

This diff is large: its 6 lines aren’t shown here.

arch/x86/mm/fault.c+42−1

This diff is large: its 64 lines aren’t shown here.

arch/x86/mm/gup.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/mm/init.c+3−1

This diff is large: its 12 lines aren’t shown here.

arch/x86/mm/kaslr.c+24−2

This diff is large: its 56 lines aren’t shown here.

arch/x86/mm/mpx.c+2−3

This diff is large: its 13 lines aren’t shown here.

arch/x86/mm/numa.c+13−14

This diff is large: its 45 lines aren’t shown here.

arch/x86/mm/pageattr.c+11−10

This diff is large: its 60 lines aren’t shown here.

arch/x86/mm/pat.c+10−7

This diff is large: its 48 lines aren’t shown here.

arch/x86/mm/pat_rbtree.c+1−3

This diff is large: its 11 lines aren’t shown here.

arch/x86/mm/pkeys.c+134−8

This diff is large: its 185 lines aren’t shown here.

arch/x86/mm/tlb.c+15−0

This diff is large: its 26 lines aren’t shown here.

arch/x86/oprofile/backtrace.c+24−25

This diff is large: its 63 lines aren’t shown here.

arch/x86/pci/Makefile+0−2

This diff is large: its 9 lines aren’t shown here.

arch/x86/pci/common.c+7−0

This diff is large: its 21 lines aren’t shown here.

arch/x86/pci/fixup.c+13−7

This diff is large: its 29 lines aren’t shown here.

arch/x86/pci/pcbios.c+5−2

This diff is large: its 15 lines aren’t shown here.

arch/x86/pci/xen.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/platform/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/platform/atom/punit_atom_debug.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/platform/efi/efi-bgrt.c+2−11

This diff is large: its 24 lines aren’t shown here.

arch/x86/platform/efi/efi.c+91−109

This diff is large: its 318 lines aren’t shown here.

arch/x86/platform/efi/efi_64.c+3−22

This diff is large: its 55 lines aren’t shown here.

arch/x86/platform/efi/quirks.c+114−13

This diff is large: its 174 lines aren’t shown here.

arch/x86/platform/intel-mid/device_libs/Makefile+4−0

This diff is large: its 10 lines aren’t shown here.

arch/x86/platform/intel-mid/device_libs/platform_bcm43xx.c+95−0

This diff is large: its 96 lines aren’t shown here.

arch/x86/platform/intel-mid/device_libs/platform_mrfld_sd.c+47−0

This diff is large: its 48 lines aren’t shown here.

arch/x86/platform/intel-mid/intel-mid.c+5−0

This diff is large: its 12 lines aren’t shown here.

arch/x86/platform/intel-mid/pwr.c+65−11

This diff is large: its 121 lines aren’t shown here.

arch/x86/platform/mellanox/Makefile+1−0

This diff is large: its 2 lines aren’t shown here.

arch/x86/platform/mellanox/mlx-platform.c+266−0

This diff is large: its 267 lines aren’t shown here.

arch/x86/platform/uv/bios_uv.c+11−6

This diff is large: its 31 lines aren’t shown here.

arch/x86/platform/uv/tlb_uv.c+111−73

This diff is large: its 405 lines aren’t shown here.

arch/x86/power/cpu.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/ras/mce_amd_inj.c+31−23

This diff is large: its 141 lines aren’t shown here.

arch/x86/um/Makefile+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/um/checksum_32.S+2−0

This diff is large: its 13 lines aren’t shown here.

arch/x86/um/ksyms.c+0−13

This diff is large: its 14 lines aren’t shown here.

arch/x86/um/ptrace_32.c+9−5

This diff is large: its 57 lines aren’t shown here.

arch/x86/um/ptrace_64.c+6−1

This diff is large: its 22 lines aren’t shown here.

arch/x86/xen/enlighten.c+108−27

This diff is large: its 215 lines aren’t shown here.

arch/x86/xen/grant-table.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/xen/platform-pci-unplug.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/xen/pmu.c+5−2

This diff is large: its 14 lines aren’t shown here.

arch/x86/xen/setup.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/xen/smp.c+8−45

This diff is large: its 99 lines aren’t shown here.

arch/x86/xen/smp.h+13−0

This diff is large: its 26 lines aren’t shown here.

arch/x86/xen/spinlock.c+1−249

This diff is large: its 280 lines aren’t shown here.

arch/x86/xen/time.c+0−5

This diff is large: its 12 lines aren’t shown here.

arch/xtensa/Kconfig+78−17

This diff is large: its 154 lines aren’t shown here.

arch/xtensa/boot/boot-elf/boot.lds.S+1−1

This diff is large: its 9 lines aren’t shown here.

arch/xtensa/boot/boot-elf/bootstrap.S+6−1

This diff is large: its 14 lines aren’t shown here.

arch/xtensa/boot/boot-uboot/Makefile+1−9

This diff is large: its 17 lines aren’t shown here.

arch/xtensa/boot/dts/csp.dts+54−0

This diff is large: its 55 lines aren’t shown here.

arch/xtensa/boot/dts/xtfpga.dtsi+7−8

This diff is large: its 36 lines aren’t shown here.

arch/xtensa/configs/audio_kc705_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/xtensa/configs/cadence_csp_defconfig+122−0

This diff is large: its 123 lines aren’t shown here.

arch/xtensa/configs/common_defconfig+4−605

This diff is large: its 657 lines aren’t shown here.

arch/xtensa/configs/generic_kc705_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/xtensa/configs/iss_defconfig+2−726

This diff is large: its 761 lines aren’t shown here.

arch/xtensa/configs/nommu_kc705_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/xtensa/configs/smp_lx200_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/xtensa/include/asm/asm-uaccess.h+160−0

This diff is large: its 161 lines aren’t shown here.

arch/xtensa/include/asm/bitops.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/xtensa/include/asm/cacheasm.h+4−7

This diff is large: its 31 lines aren’t shown here.

arch/xtensa/include/asm/fixmap.h+5−0

This diff is large: its 12 lines aren’t shown here.

arch/xtensa/include/asm/highmem.h+5−0

This diff is large: its 12 lines aren’t shown here.

arch/xtensa/include/asm/initialize_mmu.h+30−14

This diff is large: its 95 lines aren’t shown here.

arch/xtensa/include/asm/kmem_layout.h+74−0

This diff is large: its 75 lines aren’t shown here.

arch/xtensa/include/asm/page.h+12−15

This diff is large: its 50 lines aren’t shown here.

arch/xtensa/include/asm/pgtable.h+4−3

This diff is large: its 21 lines aren’t shown here.

arch/xtensa/include/asm/platform.h+6−0

This diff is large: its 11 lines aren’t shown here.

arch/xtensa/include/asm/processor.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/xtensa/include/asm/sysmem.h+1−20

This diff is large: its 29 lines aren’t shown here.

arch/xtensa/include/asm/uaccess.h+0−153

This diff is large: its 171 lines aren’t shown here.

arch/xtensa/include/asm/vectors.h+24−43

This diff is large: its 118 lines aren’t shown here.

arch/xtensa/include/uapi/asm/mman.h+5−0

This diff is large: its 10 lines aren’t shown here.

arch/xtensa/include/uapi/asm/types.h+2−1

This diff is large: its 10 lines aren’t shown here.

arch/xtensa/include/uapi/asm/unistd.h+14−1

This diff is large: its 22 lines aren’t shown here.

arch/xtensa/kernel/coprocessor.S+1−1

This diff is large: its 9 lines aren’t shown here.

arch/xtensa/kernel/entry.S+4−3

This diff is large: its 23 lines aren’t shown here.

arch/xtensa/kernel/head.S+1−1

This diff is large: its 9 lines aren’t shown here.

arch/xtensa/kernel/setup.c+151−37

This diff is large: its 301 lines aren’t shown here.

arch/xtensa/kernel/time.c+39−1

This diff is large: its 63 lines aren’t shown here.

arch/xtensa/kernel/vmlinux.lds.S+3−4

This diff is large: its 21 lines aren’t shown here.

arch/xtensa/mm/init.c+19−260

This diff is large: its 337 lines aren’t shown here.

arch/xtensa/platforms/iss/include/platform/simcall.h+5−0

This diff is large: its 12 lines aren’t shown here.

arch/xtensa/platforms/iss/setup.c+6−22

This diff is large: its 59 lines aren’t shown here.

arch/xtensa/platforms/iss/simdisk.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/xtensa/platforms/xt2000/setup.c+1−20

This diff is large: its 28 lines aren’t shown here.

arch/xtensa/platforms/xtfpga/setup.c+41−75

This diff is large: its 164 lines aren’t shown here.

arch/xtensa/variants/csp/include/variant/core.h+575−0

This diff is large: its 576 lines aren’t shown here.

arch/xtensa/variants/csp/include/variant/tie-asm.h+194−0

This diff is large: its 195 lines aren’t shown here.

arch/xtensa/variants/csp/include/variant/tie.h+161−0

This diff is large: its 162 lines aren’t shown here.

block/Kconfig+6−0

This diff is large: its 18 lines aren’t shown here.

block/Makefile+2−2

This diff is large: its 15 lines aren’t shown here.

block/badblocks.c+4−2

This diff is large: its 20 lines aren’t shown here.

block/bio.c+3−2

This diff is large: its 26 lines aren’t shown here.

block/blk-cgroup.c+1−3

This diff is large: its 12 lines aren’t shown here.

block/blk-core.c+13−3

This diff is large: its 48 lines aren’t shown here.

block/blk-flush.c+3−3

This diff is large: its 27 lines aren’t shown here.

block/blk-lib.c+15−0

This diff is large: its 47 lines aren’t shown here.

block/blk-mq-cpu.c+0−67

This diff is large: its 68 lines aren’t shown here.

block/blk-mq-cpumap.c+5−20

This diff is large: its 44 lines aren’t shown here.

block/blk-mq-pci.c+47−0

This diff is large: its 48 lines aren’t shown here.

block/blk-mq-sysfs.c+25−15

This diff is large: its 108 lines aren’t shown here.

block/blk-mq-tag.c+117−397

This diff is large: its 723 lines aren’t shown here.

block/blk-mq-tag.h+12−32

This diff is large: its 75 lines aren’t shown here.

block/blk-mq.c+170−235

This diff is large: its 814 lines aren’t shown here.

block/blk-mq.h+7−21

This diff is large: its 57 lines aren’t shown here.

block/blk-softirq.c+11−18

This diff is large: its 58 lines aren’t shown here.

block/blk-sysfs.c+2−2

This diff is large: its 18 lines aren’t shown here.

block/blk-throttle.c+4−2

This diff is large: its 14 lines aren’t shown here.

block/blk.h+3−8

This diff is large: its 18 lines aren’t shown here.

block/cfq-iosched.c+10−3

This diff is large: its 49 lines aren’t shown here.

block/ioctl.c+12−6

This diff is large: its 39 lines aren’t shown here.

crypto/algif_hash.c+61−12

This diff is large: its 144 lines aren’t shown here.

crypto/async_tx/async_pq.c+4−4

This diff is large: its 23 lines aren’t shown here.

crypto/blkcipher.c+2−1

This diff is large: its 17 lines aren’t shown here.

crypto/crct10dif_generic.c+1−4

This diff is large: its 12 lines aren’t shown here.

crypto/cryptd.c+9−3

This diff is large: its 33 lines aren’t shown here.

crypto/crypto_engine.c+157−46

This diff is large: its 355 lines aren’t shown here.

crypto/drbg.c+15−16

This diff is large: its 94 lines aren’t shown here.

crypto/echainiv.c+24−91

This diff is large: its 171 lines aren’t shown here.

crypto/gcm.c+1−1

This diff is large: its 9 lines aren’t shown here.

crypto/ghash-generic.c+1−12

This diff is large: its 26 lines aren’t shown here.

crypto/mcryptd.c+1−6

This diff is large: its 14 lines aren’t shown here.

crypto/rsa-pkcs1pad.c+24−17

This diff is large: its 66 lines aren’t shown here.

crypto/rsa_helper.c+2−2

This diff is large: its 11 lines aren’t shown here.

crypto/testmgr.c+18−6

This diff is large: its 96 lines aren’t shown here.

crypto/testmgr.h+4−0

This diff is large: its 32 lines aren’t shown here.

crypto/xor.c+20−21

This diff is large: its 71 lines aren’t shown here.

crypto/xts.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/Makefile+3−3

This diff is large: its 27 lines aren’t shown here.

drivers/acpi/Kconfig+10−1

This diff is large: its 37 lines aren’t shown here.

drivers/acpi/Makefile+4−0

This diff is large: its 22 lines aren’t shown here.

drivers/acpi/acpi_apd.c+24−3

This diff is large: its 68 lines aren’t shown here.

drivers/acpi/acpi_lpss.c+17−0

This diff is large: its 57 lines aren’t shown here.

drivers/acpi/acpi_pad.c+5−0

This diff is large: its 19 lines aren’t shown here.

drivers/acpi/acpi_platform.c+19−1

This diff is large: its 41 lines aren’t shown here.

drivers/acpi/acpi_processor.c+103−1

This diff is large: its 128 lines aren’t shown here.

drivers/acpi/acpi_watchdog.c+123−0

This diff is large: its 124 lines aren’t shown here.

drivers/acpi/acpica/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/acpi/acpica/acapps.h+6−4

This diff is large: its 28 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/acevents.h+3−0

This diff is large: its 10 lines aren’t shown here.

drivers/acpi/acpica/acglobal.h+2−0

This diff is large: its 16 lines aren’t shown here.

drivers/acpi/acpica/aclocal.h+2−0

This diff is large: its 16 lines aren’t shown here.

drivers/acpi/acpica/acnamesp.h+8−0

This diff is large: its 22 lines aren’t shown here.

drivers/acpi/acpica/acparser.h+2−0

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/actables.h+8−4

This diff is large: its 26 lines aren’t shown here.

drivers/acpi/acpica/acutils.h+27−26

This diff is large: its 96 lines aren’t shown here.

drivers/acpi/acpica/dbconvert.c+4−3

This diff is large: its 14 lines aren’t shown here.

drivers/acpi/acpica/dbexec.c+34−28

This diff is large: its 77 lines aren’t shown here.

drivers/acpi/acpica/dbfileio.c+6−14

This diff is large: its 69 lines aren’t shown here.

drivers/acpi/acpica/dbinput.c+2−0

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/dbmethod.c+132−0

This diff is large: its 150 lines aren’t shown here.

drivers/acpi/acpica/dbobject.c+2−2

This diff is large: its 14 lines aren’t shown here.

drivers/acpi/acpica/dsmethod.c+12−2

This diff is large: its 58 lines aren’t shown here.

drivers/acpi/acpica/dsutils.c+8−9

This diff is large: its 24 lines aren’t shown here.

drivers/acpi/acpica/dswexec.c+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/acpi/acpica/dswload2.c+2−5

This diff is large: its 19 lines aren’t shown here.

drivers/acpi/acpica/evgpe.c+57−0

This diff is large: its 78 lines aren’t shown here.

drivers/acpi/acpica/evgpeinit.c+5−2

This diff is large: its 29 lines aren’t shown here.

drivers/acpi/acpica/evrgnini.c+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/acpi/acpica/evxfgpe.c+43−0

This diff is large: its 62 lines aren’t shown here.

drivers/acpi/acpica/exconcat.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/exconfig.c+48−93

This diff is large: its 261 lines aren’t shown here.

drivers/acpi/acpica/exconvrt.c+4−4

This diff is large: its 22 lines aren’t shown here.

drivers/acpi/acpica/exmisc.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/acpi/acpica/exoparg1.c+13−10

This diff is large: its 38 lines aren’t shown here.

drivers/acpi/acpica/exresop.c+6−5

This diff is large: its 19 lines aren’t shown here.

drivers/acpi/acpica/extrace.c+0−25

This diff is large: its 75 lines aren’t shown here.

drivers/acpi/acpica/exutils.c+8−0

This diff is large: its 22 lines aren’t shown here.

drivers/acpi/acpica/hwgpe.c+18−5

This diff is large: its 60 lines aren’t shown here.

drivers/acpi/acpica/nsaccess.c+3−3

This diff is large: its 13 lines aren’t shown here.

drivers/acpi/acpica/nsconvert.c+0−1

This diff is large: its 8 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/nsload.c+12−18

This diff is large: its 72 lines aren’t shown here.

drivers/acpi/acpica/nsparse.c+134−31

This diff is large: its 199 lines aren’t shown here.

drivers/acpi/acpica/nsutils.c+50−16

This diff is large: its 103 lines aren’t shown here.

drivers/acpi/acpica/psparse.c+5−1

This diff is large: its 23 lines aren’t shown here.

drivers/acpi/acpica/psxface.c+84−0

This diff is large: its 91 lines aren’t shown here.

drivers/acpi/acpica/tbdata.c+141−6

This diff is large: its 170 lines aren’t shown here.

drivers/acpi/acpica/tbfadt.c+69−67

This diff is large: its 190 lines aren’t shown here.

drivers/acpi/acpica/tbfind.c+8−4

This diff is large: its 41 lines aren’t shown here.

drivers/acpi/acpica/tbinstal.c+9−64

This diff is large: its 94 lines aren’t shown here.

drivers/acpi/acpica/tbutils.c+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/acpi/acpica/tbxface.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/acpi/acpica/tbxfload.c+16−50

This diff is large: its 156 lines aren’t shown here.

drivers/acpi/acpica/tbxfroot.c+4−1

This diff is large: its 19 lines aren’t shown here.

drivers/acpi/acpica/utaddress.c+0−8

This diff is large: its 29 lines aren’t shown here.

drivers/acpi/acpica/utbuffer.c+14−16

This diff is large: its 100 lines aren’t shown here.

drivers/acpi/acpica/utdebug.c+37−24

This diff is large: its 72 lines aren’t shown here.

drivers/acpi/acpica/utdecode.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/uthex.c+42−4

This diff is large: its 68 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/utnonansi.c+2−355

This diff is large: its 368 lines aren’t shown here.

drivers/acpi/acpica/utosi.c+17−5

This diff is large: its 55 lines aren’t shown here.

drivers/acpi/acpica/utpredef.c+0−2

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/utprint.c+90−15

This diff is large: its 177 lines aren’t shown here.

drivers/acpi/acpica/utstrtoul64.c+348−0

This diff is large: its 349 lines aren’t shown here.

drivers/acpi/acpica/uttrack.c+1−3

This diff is large: its 15 lines aren’t shown here.

drivers/acpi/acpica/utxface.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/utxfinit.c+5−4

This diff is large: its 37 lines aren’t shown here.

drivers/acpi/apei/erst.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/apei/ghes.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/arm64/Kconfig+6−0

This diff is large: its 7 lines aren’t shown here.

drivers/acpi/arm64/Makefile+1−0

This diff is large: its 2 lines aren’t shown here.

drivers/acpi/arm64/iort.c+368−0

This diff is large: its 369 lines aren’t shown here.

drivers/acpi/battery.c+6−4

This diff is large: its 22 lines aren’t shown here.

drivers/acpi/bus.c+7−2

This diff is large: its 44 lines aren’t shown here.

drivers/acpi/button.c+82−3

This diff is large: its 121 lines aren’t shown here.

drivers/acpi/cppc_acpi.c+513−151

This diff is large: its 976 lines aren’t shown here.

drivers/acpi/ec.c+381−89

This diff is large: its 657 lines aren’t shown here.

drivers/acpi/fan.c+11−1

This diff is large: its 20 lines aren’t shown here.

drivers/acpi/internal.h+13−4

This diff is large: its 54 lines aren’t shown here.

drivers/acpi/ioapic.c+26−20

This diff is large: its 105 lines aren’t shown here.

drivers/acpi/nfit/core.c+208−50

This diff is large: its 514 lines aren’t shown here.

drivers/acpi/nfit/mce.c+20−6

This diff is large: its 48 lines aren’t shown here.

drivers/acpi/nfit/nfit.h+17−0

This diff is large: its 51 lines aren’t shown here.

drivers/acpi/osl.c+10−3

This diff is large: its 22 lines aren’t shown here.

drivers/acpi/pci_irq.c+9−1

This diff is large: its 17 lines aren’t shown here.

drivers/acpi/pci_root.c+11−1

This diff is large: its 19 lines aren’t shown here.

drivers/acpi/processor_core.c+111−22

This diff is large: its 241 lines aren’t shown here.

drivers/acpi/processor_driver.c+49−46

This diff is large: its 142 lines aren’t shown here.

drivers/acpi/processor_idle.c+3−2

This diff is large: its 26 lines aren’t shown here.

drivers/acpi/processor_throttling.c+2−2

This diff is large: its 14 lines aren’t shown here.

drivers/acpi/property.c+68−49

This diff is large: its 157 lines aren’t shown here.

drivers/acpi/scan.c+2−0

This diff is large: its 16 lines aren’t shown here.

drivers/acpi/sleep.c+3−3

This diff is large: its 27 lines aren’t shown here.

drivers/acpi/spcr.c+111−0

This diff is large: its 112 lines aren’t shown here.

drivers/acpi/sysfs.c+61−38

This diff is large: its 200 lines aren’t shown here.

drivers/acpi/tables.c+9−7

This diff is large: its 47 lines aren’t shown here.

drivers/acpi/thermal.c+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/amba/bus.c+5−0

This diff is large: its 19 lines aren’t shown here.

drivers/android/binder.c+1−6

This diff is large: its 28 lines aren’t shown here.

drivers/ata/ahci.c+32−117

This diff is large: its 187 lines aren’t shown here.

drivers/ata/ahci.h+5−19

This diff is large: its 49 lines aren’t shown here.

drivers/ata/ahci_qoriq.c+7−13

This diff is large: its 72 lines aren’t shown here.

drivers/ata/ahci_st.c+4−0

This diff is large: its 18 lines aren’t shown here.

drivers/ata/libahci.c+7−2

This diff is large: its 26 lines aren’t shown here.

drivers/ata/libata-scsi.c+253−35

This diff is large: its 380 lines aren’t shown here.

drivers/ata/pata_at91.c+1−3

This diff is large: its 12 lines aren’t shown here.

drivers/ata/pata_octeon_cf.c+1−2

This diff is large: its 10 lines aren’t shown here.

drivers/ata/sata_mv.c+2−4

This diff is large: its 18 lines aren’t shown here.

drivers/atm/eni.c+3−2

This diff is large: its 12 lines aren’t shown here.

drivers/atm/fore200e.c+3−3

This diff is large: its 21 lines aren’t shown here.

drivers/atm/he.c+6−4

This diff is large: its 24 lines aren’t shown here.

drivers/atm/iphase.c+12−7

This diff is large: its 47 lines aren’t shown here.

drivers/atm/nicstar.c+9−6

This diff is large: its 50 lines aren’t shown here.

drivers/atm/zatm.c+9−7

This diff is large: its 39 lines aren’t shown here.

drivers/auxdisplay/Kconfig+9−0

This diff is large: its 14 lines aren’t shown here.

drivers/auxdisplay/Makefile+1−0

This diff is large: its 5 lines aren’t shown here.

drivers/auxdisplay/img-ascii-lcd.c+443−0

This diff is large: its 444 lines aren’t shown here.

drivers/base/Kconfig+10−0

This diff is large: its 17 lines aren’t shown here.

drivers/base/attribute_container.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/base/core.c+30−10

This diff is large: its 103 lines aren’t shown here.

drivers/base/cpu.c+6−5

This diff is large: its 19 lines aren’t shown here.

drivers/base/dd.c+24−9

This diff is large: its 85 lines aren’t shown here.

drivers/base/dma-coherent.c+6−4

This diff is large: its 34 lines aren’t shown here.

drivers/base/dma-mapping.c+7−4

This diff is large: its 34 lines aren’t shown here.

drivers/base/memory.c+4−1

This diff is large: its 13 lines aren’t shown here.

drivers/base/pinctrl.c+8−4

This diff is large: its 18 lines aren’t shown here.

drivers/base/platform-msi.c+1−2

This diff is large: its 15 lines aren’t shown here.

drivers/base/platform.c+11−7

This diff is large: its 53 lines aren’t shown here.

drivers/base/power/domain.c+352−78

This diff is large: its 735 lines aren’t shown here.

drivers/base/power/opp/core.c+3−7

This diff is large: its 31 lines aren’t shown here.

drivers/base/power/opp/of.c+12−2

This diff is large: its 21 lines aren’t shown here.

drivers/base/power/runtime.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/base/regmap/internal.h+3−2

This diff is large: its 19 lines aren’t shown here.

drivers/base/regmap/regcache-rbtree.c+28−10

This diff is large: its 60 lines aren’t shown here.

drivers/base/regmap/regcache.c+3−2

This diff is large: its 14 lines aren’t shown here.

drivers/base/regmap/regmap-debugfs.c+13−3

This diff is large: its 37 lines aren’t shown here.

drivers/base/regmap/regmap.c+57−13

This diff is large: its 138 lines aren’t shown here.

drivers/base/soc.c+0−9

This diff is large: its 20 lines aren’t shown here.

drivers/bcma/driver_chipcommon.c+29−3

This diff is large: its 68 lines aren’t shown here.

drivers/bcma/main.c+4−2

This diff is large: its 24 lines aren’t shown here.

drivers/block/loop.c+4−5

This diff is large: its 41 lines aren’t shown here.

drivers/block/mtip32xx/mtip32xx.c+1−2

This diff is large: its 17 lines aren’t shown here.

drivers/block/nbd.c+160−250

This diff is large: its 756 lines aren’t shown here.

drivers/block/null_blk.c+79−50

This diff is large: its 184 lines aren’t shown here.

drivers/block/rbd.c+1253−334

This diff is large: its 2223 lines aren’t shown here.

drivers/block/rbd_types.h+11−0

This diff is large: its 18 lines aren’t shown here.

drivers/block/virtio_blk.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/block/xen-blkfront.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/bluetooth/Kconfig+23−0

This diff is large: its 35 lines aren’t shown here.

drivers/bluetooth/Makefile+2−0

This diff is large: its 16 lines aren’t shown here.

drivers/bluetooth/bcm203x.c+1−3

This diff is large: its 12 lines aren’t shown here.

drivers/bluetooth/btqca.c+4−4

This diff is large: its 22 lines aren’t shown here.

drivers/bluetooth/btqcomsmd.c+182−0

This diff is large: its 183 lines aren’t shown here.

drivers/bluetooth/btrtl.c+95−12

This diff is large: its 169 lines aren’t shown here.

drivers/bluetooth/btusb.c+15−8

This diff is large: its 90 lines aren’t shown here.

drivers/bluetooth/btwilink.c+3−1

This diff is large: its 25 lines aren’t shown here.

drivers/bluetooth/hci_bcm.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/bluetooth/hci_bcsp.c+74−54

This diff is large: its 272 lines aren’t shown here.

drivers/bluetooth/hci_intel.c+3−3

This diff is large: its 27 lines aren’t shown here.

drivers/bluetooth/hci_ldisc.c+21−13

This diff is large: its 70 lines aren’t shown here.

drivers/bluetooth/hci_mrvl.c+387−0

This diff is large: its 388 lines aren’t shown here.

drivers/bluetooth/hci_qca.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/bluetooth/hci_uart.h+8−1

This diff is large: its 27 lines aren’t shown here.

drivers/bluetooth/hci_vhci.c+1−15

This diff is large: its 23 lines aren’t shown here.

drivers/bus/Kconfig+9−5

This diff is large: its 29 lines aren’t shown here.

drivers/bus/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/bus/arm-cci.c+19−28

This diff is large: its 90 lines aren’t shown here.

drivers/bus/arm-ccn.c+100−66

This diff is large: its 382 lines aren’t shown here.

drivers/bus/mips_cdmm.c+12−58

This diff is large: its 128 lines aren’t shown here.

drivers/bus/qcom-ebi2.c+408−0

This diff is large: its 409 lines aren’t shown here.

drivers/bus/tegra-aconnect.c+2−20

This diff is large: its 39 lines aren’t shown here.

drivers/bus/vexpress-config.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/char/agp/intel-gtt.c+2−0

This diff is large: its 9 lines aren’t shown here.

drivers/char/bfin-otp.c+1−39

This diff is large: its 47 lines aren’t shown here.

drivers/char/hw_random/Kconfig+13−0

This diff is large: its 20 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/amd-rng.c+78−62

This diff is large: its 211 lines aren’t shown here.

drivers/char/hw_random/bcm2835-rng.c+3−2

This diff is large: its 13 lines aren’t shown here.

drivers/char/hw_random/cavium-rng-vf.c+99−0

This diff is large: its 100 lines aren’t shown here.

drivers/char/hw_random/cavium-rng.c+94−0

This diff is large: its 95 lines aren’t shown here.

drivers/char/hw_random/core.c+20−17

This diff is large: its 51 lines aren’t shown here.

drivers/char/hw_random/geode-rng.c+19−39

This diff is large: its 87 lines aren’t shown here.

drivers/char/hw_random/meson-rng.c+0−3

This diff is large: its 10 lines aren’t shown here.

drivers/char/hw_random/omap-rng.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/char/hw_random/omap3-rom-rng.c+2−8

This diff is large: its 24 lines aren’t shown here.

drivers/char/hw_random/pasemi-rng.c+8−31

This diff is large: its 67 lines aren’t shown here.

drivers/char/hw_random/pic32-rng.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/char/hw_random/st-rng.c+1−3

This diff is large: its 18 lines aren’t shown here.

drivers/char/hw_random/tx4939-rng.c+1−10

This diff is large: its 24 lines aren’t shown here.

drivers/char/ipmi/Kconfig+8−0

This diff is large: its 12 lines aren’t shown here.

drivers/char/ipmi/Makefile+1−0

This diff is large: its 5 lines aren’t shown here.

drivers/char/ipmi/bt-bmc.c+505−0

This diff is large: its 506 lines aren’t shown here.

drivers/char/ipmi/ipmi_msghandler.c+3−4

This diff is large: its 31 lines aren’t shown here.

drivers/char/mem.c+6−0

This diff is large: its 20 lines aren’t shown here.

drivers/char/mwave/3780i.c+32−32

This diff is large: its 215 lines aren’t shown here.

drivers/char/mwave/3780i.h+4−4

This diff is large: its 33 lines aren’t shown here.

drivers/char/mwave/mwavedd.c+21−21

This diff is large: its 129 lines aren’t shown here.

drivers/char/mwave/mwavedd.h+7−7

This diff is large: its 29 lines aren’t shown here.

drivers/char/mwave/smapi.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/char/mwave/smapi.h+1−5

This diff is large: its 20 lines aren’t shown here.

drivers/char/mwave/tp3780i.c+26−26

This diff is large: its 151 lines aren’t shown here.

drivers/char/ppdev.c+20−5

This diff is large: its 49 lines aren’t shown here.

drivers/char/random.c+27−13

This diff is large: its 60 lines aren’t shown here.

drivers/char/snsc.c+6−1

This diff is large: its 20 lines aren’t shown here.

drivers/char/sonypi.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/char/tb0219.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/char/tile-srom.c+15−13

This diff is large: its 73 lines aren’t shown here.

drivers/char/tpm/st33zp24/st33zp24.c+0−2

This diff is large: its 9 lines aren’t shown here.

drivers/char/tpm/tpm-dev.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/char/tpm/tpm-interface.c+38−46

This diff is large: its 261 lines aren’t shown here.

drivers/char/tpm/tpm-sysfs.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/char/tpm/tpm.h+24−22

This diff is large: its 66 lines aren’t shown here.

drivers/char/tpm/tpm2-cmd.c+66−55

This diff is large: its 274 lines aren’t shown here.

drivers/char/tpm/tpm_crb.c+24−26

This diff is large: its 139 lines aren’t shown here.

drivers/char/tpm/tpm_tis_core.c+15−9

This diff is large: its 59 lines aren’t shown here.

drivers/char/ttyprintk.c+31−38

This diff is large: its 92 lines aren’t shown here.

drivers/char/virtio_console.c+16−10

This diff is large: its 68 lines aren’t shown here.

drivers/char/xillybus/xillybus_core.c+2−2

This diff is large: its 13 lines aren’t shown here.

drivers/clk/Kconfig+6−14

This diff is large: its 42 lines aren’t shown here.

drivers/clk/Makefile+2−3

This diff is large: its 27 lines aren’t shown here.

drivers/clk/at91/clk-generated.c+17−13

This diff is large: its 68 lines aren’t shown here.

drivers/clk/at91/clk-h32mx.c+4−4

This diff is large: its 26 lines aren’t shown here.

drivers/clk/at91/clk-main.c+52−36

This diff is large: its 232 lines aren’t shown here.

drivers/clk/at91/clk-master.c+12−9

This diff is large: its 64 lines aren’t shown here.

drivers/clk/at91/clk-peripheral.c+23−16

This diff is large: its 112 lines aren’t shown here.

drivers/clk/at91/clk-pll.c+12−9

This diff is large: its 64 lines aren’t shown here.

drivers/clk/at91/clk-plldiv.c+13−11

This diff is large: its 59 lines aren’t shown here.

drivers/clk/at91/clk-programmable.c+13−9

This diff is large: its 63 lines aren’t shown here.

drivers/clk/at91/clk-slow.c+13−362

This diff is large: its 431 lines aren’t shown here.

drivers/clk/at91/clk-smd.c+13−9

This diff is large: its 57 lines aren’t shown here.

drivers/clk/at91/clk-system.c+13−9

This diff is large: its 58 lines aren’t shown here.

drivers/clk/at91/clk-usb.c+40−29

This diff is large: its 170 lines aren’t shown here.

drivers/clk/at91/clk-utmi.c+13−9

This diff is large: its 56 lines aren’t shown here.

drivers/clk/at91/sckc.c+463−1

This diff is large: its 479 lines aren’t shown here.

drivers/clk/at91/sckc.h+0−22

This diff is large: its 23 lines aren’t shown here.

drivers/clk/axis/clk-artpec6.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/clk/bcm/Kconfig+29−1

This diff is large: its 38 lines aren’t shown here.

drivers/clk/bcm/Makefile+4−4

This diff is large: its 12 lines aren’t shown here.

drivers/clk/bcm/clk-bcm2835-aux.c+12−16

This diff is large: its 49 lines aren’t shown here.

drivers/clk/bcm/clk-bcm2835.c+106−40

This diff is large: its 331 lines aren’t shown here.

drivers/clk/bcm/clk-bcm53573-ilp.c+148−0

This diff is large: its 149 lines aren’t shown here.

drivers/clk/bcm/clk-kona-setup.c+37−43

This diff is large: its 164 lines aren’t shown here.

drivers/clk/bcm/clk-kona.c+4−5

This diff is large: its 24 lines aren’t shown here.

drivers/clk/bcm/clk-kona.h+2−5

This diff is large: its 28 lines aren’t shown here.

drivers/clk/berlin/berlin2-avpll.c+6−6

This diff is large: its 52 lines aren’t shown here.

drivers/clk/berlin/berlin2-avpll.h+2−6

This diff is large: its 20 lines aren’t shown here.

drivers/clk/berlin/berlin2-div.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/clk/berlin/berlin2-div.h+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/clk/berlin/berlin2-pll.c+3−3

This diff is large: its 25 lines aren’t shown here.

drivers/clk/berlin/berlin2-pll.h+3−6

This diff is large: its 22 lines aren’t shown here.

drivers/clk/berlin/bg2.c+52−46

This diff is large: its 226 lines aren’t shown here.

drivers/clk/berlin/bg2q.c+22−17

This diff is large: its 95 lines aren’t shown here.

drivers/clk/clk-asm9260.c+18−13

This diff is large: its 100 lines aren’t shown here.

drivers/clk/clk-axi-clkgen.c+6−6

This diff is large: its 28 lines aren’t shown here.

drivers/clk/clk-axm5516.c+17−22

This diff is large: its 76 lines aren’t shown here.

drivers/clk/clk-cdce706.c+22−18

This diff is large: its 85 lines aren’t shown here.

drivers/clk/clk-cdce925.c+23−19

This diff is large: its 103 lines aren’t shown here.

drivers/clk/clk-clps711x.c+39−39

This diff is large: its 127 lines aren’t shown here.

drivers/clk/clk-cs2000-cp.c+6−10

This diff is large: its 49 lines aren’t shown here.

drivers/clk/clk-divider.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/clk/clk-efm32gg.c+35−28

This diff is large: its 107 lines aren’t shown here.

drivers/clk/clk-fixed-factor.c+65−9

This diff is large: its 111 lines aren’t shown here.

drivers/clk/clk-fixed-rate.c+64−8

This diff is large: its 100 lines aren’t shown here.

drivers/clk/clk-ls1x.c+0−161

This diff is large: its 162 lines aren’t shown here.

drivers/clk/clk-max-gen.c+0−194

This diff is large: its 195 lines aren’t shown here.

drivers/clk/clk-max-gen.h+0−32

This diff is large: its 33 lines aren’t shown here.

drivers/clk/clk-max77686.c+250−12

This diff is large: its 303 lines aren’t shown here.

drivers/clk/clk-max77802.c+0−96

This diff is large: its 97 lines aren’t shown here.

drivers/clk/clk-mb86s7x.c+10−6

This diff is large: its 49 lines aren’t shown here.

drivers/clk/clk-moxart.c+12−10

This diff is large: its 58 lines aren’t shown here.

drivers/clk/clk-nspire.c+10−9

This diff is large: its 47 lines aren’t shown here.

drivers/clk/clk-palmas.c+4−8

This diff is large: its 51 lines aren’t shown here.

drivers/clk/clk-pwm.c+4−5

This diff is large: its 24 lines aren’t shown here.

drivers/clk/clk-qoriq.c+5−1

This diff is large: its 13 lines aren’t shown here.

drivers/clk/clk-rk808.c+22−22

This diff is large: its 89 lines aren’t shown here.

drivers/clk/clk-scpi.c+14−19

This diff is large: its 99 lines aren’t shown here.

drivers/clk/clk-si514.c+5−6

This diff is large: its 27 lines aren’t shown here.

drivers/clk/clk-si5351.c+41−30

This diff is large: its 176 lines aren’t shown here.

drivers/clk/clk-si570.c+6−7

This diff is large: its 36 lines aren’t shown here.

drivers/clk/clk-twl6040.c+51−36

This diff is large: its 139 lines aren’t shown here.

drivers/clk/clk-vt8500.c+12−10

This diff is large: its 56 lines aren’t shown here.

drivers/clk/clk-wm831x.c+9−12

This diff is large: its 39 lines aren’t shown here.

drivers/clk/clk-xgene.c+221−0

This diff is large: its 235 lines aren’t shown here.

drivers/clk/clk.c+26−23

This diff is large: its 110 lines aren’t shown here.

drivers/clk/h8300/clk-div.c+5−5

This diff is large: its 29 lines aren’t shown here.

drivers/clk/h8300/clk-h8s2678.c+6−6

This diff is large: its 33 lines aren’t shown here.

drivers/clk/imx/clk-imx1.c+5−41

This diff is large: its 62 lines aren’t shown here.

drivers/clk/imx/clk-imx35.c+17−15

This diff is large: its 46 lines aren’t shown here.

drivers/clk/imx/clk-imx51-imx53.c+20−0

This diff is large: its 34 lines aren’t shown here.

drivers/clk/imx/clk-imx6q.c+34−12

This diff is large: its 86 lines aren’t shown here.

drivers/clk/imx/clk-imx7d.c+72−45

This diff is large: its 320 lines aren’t shown here.

drivers/clk/imx/clk.h+9−0

This diff is large: its 16 lines aren’t shown here.

drivers/clk/loongson1/Makefile+3−0

This diff is large: its 4 lines aren’t shown here.

drivers/clk/loongson1/clk-loongson1b.c+122−0

This diff is large: its 123 lines aren’t shown here.

drivers/clk/loongson1/clk-loongson1c.c+97−0

This diff is large: its 98 lines aren’t shown here.

drivers/clk/loongson1/clk.c+43−0

This diff is large: its 44 lines aren’t shown here.

drivers/clk/loongson1/clk.h+19−0

This diff is large: its 20 lines aren’t shown here.

drivers/clk/mediatek/Kconfig+21−0

This diff is large: its 22 lines aren’t shown here.

drivers/clk/mediatek/Makefile+3−3

This diff is large: its 8 lines aren’t shown here.

drivers/clk/mediatek/clk-gate.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/clk/mediatek/clk-mt8173.c+3−1

This diff is large: its 12 lines aren’t shown here.

drivers/clk/mediatek/clk-mtk.c+6−6

This diff is large: its 54 lines aren’t shown here.

drivers/clk/mediatek/clk-pll.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/clk/meson/Makefile+2−2

This diff is large: its 8 lines aren’t shown here.

drivers/clk/meson/clkc.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/clk/meson/gxbb-aoclk.c+191−0

This diff is large: its 192 lines aren’t shown here.

drivers/clk/meson/gxbb.c+91−86

This diff is large: its 205 lines aren’t shown here.

drivers/clk/meson/gxbb.h+17−14

This diff is large: its 84 lines aren’t shown here.

drivers/clk/meson/meson8b.crenamed from drivers/clk/meson/meson8b-clkc.c+264−35

This diff is large: its 415 lines aren’t shown here.

drivers/clk/meson/meson8b.h+151−0

This diff is large: its 152 lines aren’t shown here.

drivers/clk/microchip/clk-core.c+3−3

This diff is large: its 13 lines aren’t shown here.

drivers/clk/microchip/clk-pic32mzda.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/clk/mmp/clk-mmp2.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/clk/mvebu/Kconfig+3−0

This diff is large: its 10 lines aren’t shown here.

drivers/clk/mvebu/Makefile+3−0

This diff is large: its 10 lines aren’t shown here.

drivers/clk/mvebu/armada-37xx-periph.c+447−0

This diff is large: its 448 lines aren’t shown here.

drivers/clk/mvebu/armada-37xx-tbg.c+158−0

This diff is large: its 159 lines aren’t shown here.

drivers/clk/mvebu/armada-37xx-xtal.c+91−0

This diff is large: its 92 lines aren’t shown here.

drivers/clk/mvebu/armada-39x.c+2−0

This diff is large: its 9 lines aren’t shown here.

drivers/clk/mvebu/cp110-system-controller.c+22−9

This diff is large: its 76 lines aren’t shown here.

drivers/clk/mvebu/orion.c+70−0

This diff is large: its 77 lines aren’t shown here.

drivers/clk/nxp/clk-lpc18xx-creg.c+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/clk/nxp/clk-lpc32xx.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/clk/qcom/Kconfig+19−0

This diff is large: its 40 lines aren’t shown here.

drivers/clk/qcom/Makefile+4−1

This diff is large: its 22 lines aren’t shown here.

drivers/clk/qcom/clk-regmap.c+2−3

This diff is large: its 17 lines aren’t shown here.

drivers/clk/qcom/clk-regmap.h+1−2

This diff is large: its 9 lines aren’t shown here.

drivers/clk/qcom/common.c+32−26

This diff is large: its 113 lines aren’t shown here.

drivers/clk/qcom/gcc-ipq4019.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/clk/qcom/gcc-mdm9615.c+1727−0

This diff is large: its 1728 lines aren’t shown here.

This diff is larger than a page shows: the files after these aren’t listed. Clone the repository to see all of it.

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t