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
6969 James Bottomley <jejb@titanic.il.steeleye.com>
7070 James E Wilson <wilson@specifix.com>
7171 James Ketrenos <jketreno@io.(none)>
72+Javi Merino <javi.merino@kernel.org> <javi.merino@arm.com>
7273 <javier@osg.samsung.com> <javier.martinez@collabora.co.uk>
7374 Jean Tourrilhes <jt@hpl.hp.com>
7475 Jeff Garzik <jgarzik@pretzel.yyz.us>
7576 Jens Axboe <axboe@suse.de>
7677 Jens Osterkamp <Jens.Osterkamp@de.ibm.com>
78+Johan Hovold <johan@kernel.org> <jhovold@gmail.com>
79+Johan Hovold <johan@kernel.org> <johan@hovoldconsulting.com>
7780 John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
7881 John Stultz <johnstul@us.ibm.com>
7982 <josh@joshtriplett.org> <josh@freedesktop.org>
@@ -88,6 +91,7 @@ Kay Sievers <kay.sievers@vrfy.org> · 8 unmodified lines
8891 Kenneth W Chen <kenneth.w.chen@intel.com>
8992 Konstantin Khlebnikov <koct9i@gmail.com> <k.khlebnikov@samsung.com>
9093 Koushik <raghavendra.koushik@neterion.com>
94+Krzysztof Kozlowski <krzk@kernel.org> <k.kozlowski@samsung.com>
9195 Krzysztof Kozlowski <krzk@kernel.org> <k.kozlowski.k@gmail.com>
9296 Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
9397 Leonid I Ananiev <leonid.i.ananiev@intel.com>
@@ -123,6 +127,7 @@ Peter Oruba <peter@oruba.de> · 29 unmodified lines
123127 Peter Oruba <peter.oruba@amd.com>
124128 Pratyush Anand <pratyush.anand@gmail.com> <pratyush.anand@st.com>
125129 Praveen BP <praveenbp@ti.com>
130+Qais Yousef <qsyousef@gmail.com> <qais.yousef@imgtec.com>
126131 Rajesh Shah <rajesh.shah@intel.com>
127132 Ralf Baechle <ralf@linux-mips.org>
128133 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
@@ -158,6 +163,7 @@ Valdis Kletnieks <Valdis.Kletnieks@vt.edu> · 29 unmodified lines
158163 Viresh Kumar <vireshk@kernel.org> <viresh.kumar@st.com>
159164 Viresh Kumar <vireshk@kernel.org> <viresh.linux@gmail.com>
160165 Viresh Kumar <vireshk@kernel.org> <viresh.kumar2@arm.com>
166+Vlad Dogaru <ddvlad@gmail.com> <vlad.dogaru@intel.com>
161167 Vladimir Davydov <vdavydov.dev@gmail.com> <vdavydov@virtuozzo.com>
162168 Vladimir Davydov <vdavydov.dev@gmail.com> <vdavydov@parallels.com>
163169 Takashi YOSHII <takashi.yoshii.zj@renesas.com>
CREDITS+22−5
@@ -1090,6 +1090,10 @@ S: 6350 Stoneridge Mall Road · 1089 unmodified lines
10901090 S: Pleasanton, CA 94588
10911091 S: USA
10921092
1093+N: Dmitry Eremin-Solenikov
1094+E: dbaryshkov@gmail.com
1095+D: Power Supply Maintainer from v3.14 - v3.15
1096+
10931097 N: Doug Evans
10941098 E: dje@cygnus.com
10951099 D: Wrote Xenix FS (part of standard kernel since 0.99.15)
@@ -1944,6 +1948,11 @@ E: kraxel@bytesex.org · 848 unmodified lines
19441948 E: kraxel@suse.de
19451949 D: video4linux, bttv, vesafb, some scsi, misc fixes
19461950
1951+N: Hans J. Koch
1952+D: USERSPACE I/O, MAX6650
1953+D: Hans passed away in June 2016, and will be greatly missed.
1954+W: https://lwn.net/Articles/691000/
1955+
19471956 N: Harald Koenig
19481957 E: koenig@tat.physik.uni-tuebingen.de
19491958 D: 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
22872296
22882297 N: Pavel Machek
22892298 E: pavel@ucw.cz
2290−D: Softcursor for vga, hypertech cdrom support, vcsa bugfix, nbd
2299+P: 4096R/92DFCE96 4FA7 9EEF FCD4 C44F C585 B8C7 C060 2241 92DF CE96
2300+D: Softcursor for vga, hypertech cdrom support, vcsa bugfix, nbd,
22912301 D: sun4/330 port, capabilities for elf, speedup for rm on ext2, USB,
2292−D: work on suspend-to-ram/disk, killing duplicates from ioctl32
2293−S: Volkova 1131
2294−S: 198 00 Praha 9
2302+D: work on suspend-to-ram/disk, killing duplicates from ioctl32,
2303+D: Altera SoCFPGA and Nokia N900 support.
22952304 S: Czech Republic
22962305
22972306 N: Paul Mackerras
@@ -3518,6 +3527,10 @@ S: 145 Howard St. · 1220 unmodified lines
35183527 S: Northborough, MA 01532
35193528 S: USA
35203529
3530+N: Doug Thompson
3531+E: dougthompson@xmission.com
3532+D: EDAC
3533+
35213534 N: Tommy Thorn
35223535 E: Tommy.Thorn@irisa.fr
35233536 W: http://www.irisa.fr/prive/thorn/index.html
@@ -3654,6 +3667,10 @@ S: Obere Heerbergstrasse 17 · 130 unmodified lines
36543667 S: 97078 Wuerzburg
36553668 S: Germany
36563669
3670+N: Jason Uhlenkott
3671+E: juhlenko@akamai.com
3672+D: I3000 EDAC driver
3673+
36573674 N: Greg Ungerer
36583675 E: gerg@snapgear.com
36593676 D: uClinux kernel hacker
@@ -3691,7 +3708,7 @@ S: Germany · 31 unmodified lines
36913708 N: Geert Uytterhoeven
36923709 E: geert@linux-m68k.org
36933710 W: http://users.telenet.be/geertu/
3694−P: 1024/862678A6 C51D 361C 0BD1 4C90 B275 C553 6EEA 11BA 8626 78A6
3711+P: 4096R/4804B4BC3F55EEFB 750D 82B0 A781 5431 5E25 925B 4804 B4BC 3F55 EEFB
36953712 D: m68k/Amiga and PPC/CHRP Longtrail coordinator
36963713 D: Frame buffer device and XF68_FBDev maintainer
36973714 D: m68k IDE maintainer
Documentation/00-INDEX+2−1
@@ -46,7 +46,8 @@ IRQ.txt · 45 unmodified lines
4646 Intel-IOMMU.txt
4747 - basic info on the Intel IOMMU virtualization support.
4848 Makefile
49− - some files in Documentation dir are actually sample code to build
49+ - This file does nothing. Removing it breaks make htmldocs and
50+ make distclean.
5051 ManagementStyle
5152 - how to (attempt to) manage kernel hackers.
5253 RCU/
Documentation/80211/cfg80211.rst+345−0
@@ -0,0 +1,345 @@
1+==================
2+cfg80211 subsystem
3+==================
4+
5+Device 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+
83+Actions 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+
218+Scanning 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+
254+Utility 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+
281+Data 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+
299+Regulatory 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+
314+RFkill 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+
329+Test 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+
3+project = "Linux 802.11 Driver Developer's Guide"
4+
5+tags.add("subproject")
Documentation/80211/index.rst+17−0
@@ -0,0 +1,17 @@
1+=====================================
2+Linux 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+============
2+Introduction
3+============
4+
5+Explaining wireless 802.11 networking in the Linux kernel
6+
7+Copyright 2007-2009 Johannes Berg
8+
9+These books attempt to give a description of the various subsystems
10+that play a role in 802.11 wireless networking in Linux. Since these
11+books are for kernel developers they attempts to document the
12+structures and functions used in the kernel as well as giving a
13+higher-level overview.
14+
15+The reader is expected to be familiar with the 802.11 standard as
16+published by the IEEE in 802.11-2007 (or possibly later versions).
17+References 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+=============================
2+mac80211 subsystem (advanced)
3+=============================
4+
5+Information contained within this part of the book is of interest only
6+for advanced interaction of mac80211 with drivers to exploit more
7+hardware capabilities and improve performance.
8+
9+LED support
10+===========
11+
12+Mac80211 supports various ways of blinking LEDs. Wherever possible,
13+device LEDs should be exposed as LED class devices and hooked up to the
14+appropriate trigger, which will then be triggered appropriately by
15+mac80211.
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+
38+Hardware 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+
62+Powersave support
63+=================
64+
65+.. kernel-doc:: include/net/mac80211.h
66+ :doc: Powersave support
67+
68+Beacon 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+
77+Multiple queues and QoS support
78+===============================
79+
80+TBD
81+
82+.. kernel-doc:: include/net/mac80211.h
83+ :functions: ieee80211_tx_queue_params
84+
85+Access point mode support
86+=========================
87+
88+TBD
89+
90+Some parts of the if_conf should be discussed here instead
91+
92+Insert notes about VLAN interfaces with hw crypto here or in the hw
93+crypto chapter.
94+
95+support 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+
125+Supporting multiple virtual interfaces
126+======================================
127+
128+TBD
129+
130+Note: WDS with identical MAC address should almost always be OK
131+
132+Insert notes about having multiple virtual interfaces with different MAC
133+addresses here, note which configurations are supported by mac80211, add
134+notes 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+
142+Station handling
143+================
144+
145+TODO
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+
159+Hardware scan offload
160+=====================
161+
162+TBD
163+
164+.. kernel-doc:: include/net/mac80211.h
165+ :functions: ieee80211_scan_completed
166+
167+Aggregation
168+===========
169+
170+TX 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+
178+RX 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+
189+Spatial 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+
201+TBD
202+
203+This part of the book describes the rate control algorithm interface and
204+how it relates to mac80211 and drivers.
205+
206+Rate Control API
207+================
208+
209+TBD
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+
232+TBD
233+
234+This part of the book describes mac80211 internals.
235+
236+Key handling
237+============
238+
239+Key handling basics
240+-------------------
241+
242+.. kernel-doc:: net/mac80211/key.c
243+ :doc: Key handling basics
244+
245+MORE TBD
246+--------
247+
248+TBD
249+
250+Receive processing
251+==================
252+
253+TBD
254+
255+Transmit processing
256+===================
257+
258+TBD
259+
260+Station info handling
261+=====================
262+
263+Programming 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+
272+STA information lifetime rules
273+------------------------------
274+
275+.. kernel-doc:: net/mac80211/sta_info.c
276+ :doc: STA information lifetime rules
277+
278+Aggregation
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+
290+Synchronisation
291+===============
292+
293+TBD
294+
295+Locking, lots of RCU
Documentation/80211/mac80211.rst+216−0
@@ -0,0 +1,216 @@
1+===========================
2+mac80211 subsystem (basics)
3+===========================
4+
5+You should read and understand the information contained within this
6+part of the book while implementing a mac80211 driver. In some chapters,
7+advanced usage is noted, those may be skipped if this isn't needed.
8+
9+This part of the book only covers station and monitor mode
10+functionality, additional information required to implement the other
11+modes is covered in the second part of the book.
12+
13+Basic hardware handling
14+=======================
15+
16+TBD
17+
18+This chapter shall contain information on getting a hw struct allocated
19+and registered with mac80211.
20+
21+Since it is required to allocate rates/modes before registering a hw
22+struct, this chapter shall also contain information on setting up the
23+rate/mode structs.
24+
25+Additionally, some discussion about the callbacks and the general
26+programming model should be in here, including the definition of
27+ieee80211_ops which will be referred to a lot.
28+
29+Finally, a discussion of hardware capabilities should be done with
30+references 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+
59+PHY configuration
60+=================
61+
62+TBD
63+
64+This chapter should describe PHY handling including start/stop callbacks
65+and 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+
73+Virtual interfaces
74+==================
75+
76+TBD
77+
78+This chapter should describe virtual interface basics that are relevant
79+to the driver (VLANs, MGMT etc are not.) It should explain the use of
80+the add_iface/remove_iface callbacks as well as the interface
81+configuration callbacks.
82+
83+Things related to AP mode should be discussed there.
84+
85+Things related to supporting multiple interfaces should be in the
86+appropriate chapter, a BIG FAT note should be here about this though and
87+the recommendation to allow only a single interface in STA mode at
88+first!
89+
90+.. kernel-doc:: include/net/mac80211.h
91+ :functions: ieee80211_vif
92+
93+Receive and transmit processing
94+===============================
95+
96+what should be here
97+-------------------
98+
99+TBD
100+
101+This should describe the receive and transmit paths in mac80211/the
102+drivers as well as transmit status handling.
103+
104+Frame format
105+------------
106+
107+.. kernel-doc:: include/net/mac80211.h
108+ :doc: Frame format
109+
110+Packet alignment
111+----------------
112+
113+.. kernel-doc:: net/mac80211/rx.c
114+ :doc: Packet alignment
115+
116+Calling into mac80211 from interrupts
117+-------------------------------------
118+
119+.. kernel-doc:: include/net/mac80211.h
120+ :doc: Calling mac80211 from interrupts
121+
122+functions/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+
197+Frame 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+
206+The 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
66
77 Being used for adding and removing rbd block devices.
88
9−Usage: <mon ip addr> <options> <pool name> <rbd image name> [snap name]
9+Usage: <mon ip addr> <options> <pool name> <rbd image name> [<snap name>]
1010
1111 $ echo "192.168.0.1 name=admin rbd foo" > /sys/bus/rbd/add
1212
@@ -14,9 +14,13 @@ The snapshot name can be "-" or omitted to map the image read/write. A <dev-id> · 1 unmodified line
1414 will be assigned for any registered block device. If snapshot is used, it will
1515 be mapped read-only.
1616
17−Removal of a device:
17+Usage: <dev-id> [force]
1818
19− $ echo <dev-id> > /sys/bus/rbd/remove
19+ $ echo 2 > /sys/bus/rbd/remove
20+
21+Optional "force" argument which when passed will wait for running requests and
22+then unmap the image. Requests sent to the driver after initiating the removal
23+will be failed. (August 2016, since 4.9.)
2024
2125 What: /sys/bus/rbd/add_single_major
2226 Date: December 2013
@@ -43,10 +47,25 @@ Description: Available only if rbd module is inserted with single_major · 20 unmodified lines
4347 Entries under /sys/bus/rbd/devices/<dev-id>/
4448 --------------------------------------------
4549
50+client_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+
4656 client_id
4757
4858 The ceph unique client id that was assigned for this specific session.
4959
60+cluster_fsid
61+
62+ The ceph cluster UUID. (August 2016, since 4.9.)
63+
64+config_info
65+
66+ The string written into /sys/bus/rbd/add{,_single_major}. (August
67+ 2016, since 4.9.)
68+
5069 features
5170
5271 A hexadecimal encoding of the feature bits for this image.
@@ -92,6 +111,10 @@ current_snap · 39 unmodified lines
92111
93112 The current snapshot for which the device is mapped.
94113
114+snap_id
115+
116+ The current snapshot's id. (August 2016, since 4.9.)
117+
95118 parent
96119
97120 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
220220 Date: October 2014
221221 Contact: linuxppc-dev@lists.ozlabs.org
222222 Description: write only
223− Writing 1 will issue a PERST to card which may cause the card
224− to reload the FPGA depending on load_image_on_perst.
223+ Writing 1 will issue a PERST to card provided there are no
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.
225228 Users: https://github.com/ibm-capi/libcxl
226229
227230 What: /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
2424 of led events.
2525 You can change triggers in a similar manner to the way an IO
2626 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-*.
2829
2930 What: /sys/class/leds/<led>/inverted
3031 Date: January 2011
Documentation/ABI/testing/sysfs-class-led-trigger-oneshot+36−0
@@ -0,0 +1,36 @@
1+What: /sys/class/leds/<led>/delay_on
2+Date: Jun 2012
3+KernelVersion: 3.6
4+Contact: linux-leds@vger.kernel.org
5+Description:
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+
10+What: /sys/class/leds/<led>/delay_off
11+Date: Jun 2012
12+KernelVersion: 3.6
13+Contact: linux-leds@vger.kernel.org
14+Description:
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+
19+What: /sys/class/leds/<led>/invert
20+Date: Jun 2012
21+KernelVersion: 3.6
22+Contact: linux-leds@vger.kernel.org
23+Description:
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+
30+What: /sys/class/leds/<led>/shot
31+Date: Jun 2012
32+KernelVersion: 3.6
33+Contact: linux-leds@vger.kernel.org
34+Description:
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 @@
1+What: /sys/class/leds/<led>/ports/<port>
2+Date: September 2016
3+KernelVersion: 4.9
4+Contact: linux-leds@vger.kernel.org
5+ linux-usb@vger.kernel.org
6+Description:
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
153153
154154 What: /sys/class/mic/mic(x)/heartbeat_enable
155155 Date: March 2015
156−KernelVersion: 3.20
156+KernelVersion: 4.4
157157 Contact: Ashutosh Dixit <ashutosh.dixit@intel.com>
158158 Description:
159159 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
2222 What: /sys/class/power_supply/max14577-charger/device/fast_charge_timer
2323 Date: October 2014
2424 KernelVersion: 3.18.0
25−Contact: Krzysztof Kozlowski <k.kozlowski@samsung.com>
25+Contact: Krzysztof Kozlowski <krzk@kernel.org>
2626 Description:
2727 This entry shows and sets the maximum time the max14577
2828 charger operates in fast-charge mode. When the timer expires
@@ -36,7 +36,7 @@ Description: · 7 unmodified lines
3636 What: /sys/class/power_supply/max77693-charger/device/fast_charge_timer
3737 Date: January 2015
3838 KernelVersion: 3.19.0
39−Contact: Krzysztof Kozlowski <k.kozlowski@samsung.com>
39+Contact: Krzysztof Kozlowski <krzk@kernel.org>
4040 Description:
4141 This entry shows and sets the maximum time the max77693
4242 charger operates in fast-charge mode. When the timer expires
@@ -50,7 +50,7 @@ Description: · 7 unmodified lines
5050 What: /sys/class/power_supply/max77693-charger/device/top_off_threshold_current
5151 Date: January 2015
5252 KernelVersion: 3.19.0
53−Contact: Krzysztof Kozlowski <k.kozlowski@samsung.com>
53+Contact: Krzysztof Kozlowski <krzk@kernel.org>
5454 Description:
5555 This entry shows and sets the charging current threshold for
5656 entering top-off charging mode. When charging current in fast
@@ -65,7 +65,7 @@ Description: · 8 unmodified lines
6565 What: /sys/class/power_supply/max77693-charger/device/top_off_timer
6666 Date: January 2015
6767 KernelVersion: 3.19.0
68−Contact: Krzysztof Kozlowski <k.kozlowski@samsung.com>
68+Contact: Krzysztof Kozlowski <krzk@kernel.org>
6969 Description:
7070 This entry shows and sets the maximum time the max77693
7171 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
3535 DF-EX <*--------> G25 <-> G27
3636 DF-EX <*----------------> G27
3737
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+
3844 DFGT:
3945 DF-EX <*> DFP <-> DFGT
4046 DF-EX <*--------> DFGT
@@ -50,3 +56,12 @@ Description: Displays the real model of the wheel regardless of any · 9 unmodified lines
5056 alternate mode the wheel might be switched to.
5157 It is a read-only value.
5258 This entry is not created for devices that have only one mode.
59+
60+What: /sys/bus/hid/drivers/logitech/<dev>/combine_pedals
61+Date: Sep 2016
62+KernelVersion: 4.9
63+Contact: Simon Wood <simon@mungewell.org>
64+Description: 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
2424 Date: August 2014
2525 Contact: linux-input@vger.kernel.org
2626 Description:
27+ <obsoleted by the LED class API now exported by the driver>
2728 Writing to this file sets the status LED luminance (1..127)
2829 when the stylus does not touch the tablet surface, and no
2930 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
3334 Date: August 2014
3435 Contact: linux-input@vger.kernel.org
3536 Description:
37+ <obsoleted by the LED class API now exported by the driver>
3638 Writing to this file sets the status LED luminance (1..127)
3739 when the stylus touches the tablet surface, or any button is
3840 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
4143 Date: August 2014
4244 Contact: linux-input@vger.kernel.org
4345 Description:
46+ <obsoleted by the LED class API now exported by the driver>
4447 Writing to this file sets which one of the four (for Intuos 4
4548 and Intuos 5) or of the right four (for Cintiq 21UX2 and Cintiq
4649 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
5053 Date: August 2014
5154 Contact: linux-input@vger.kernel.org
5255 Description:
56+ <obsoleted by the LED class API now exported by the driver>
5357 Writing to this file sets which one of the left four (for Cintiq 21UX2
5458 and Cintiq 24HD) status LEDs is active (0..3). The other three LEDs on
5559 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
9195 Date: July 2015
9296 Contact: linux-input@vger.kernel.org
9397 Description:
98+ <obsoleted by the LED class API now exported by the driver>
9499 Reading from this file reports the mode status of the
95100 remote as indicated by the LED lights on the device. If no
96101 reports have been received from the paired device, reading
Documentation/ABI/testing/sysfs-i2c-bmp085+0−31
@@ -1,31 +0,0 @@
1−What: /sys/bus/i2c/devices/<busnum>-<devaddr>/pressure0_input
2−Date: June 2010
3−Contact: Christoph Mair <christoph.mair@gmail.com>
4−Description: 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−
10−What: /sys/bus/i2c/devices/<busnum>-<devaddr>/temp0_input
11−Date: June 2010
12−Contact: Christoph Mair <christoph.mair@gmail.com>
13−Description: 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−
19−What: /sys/bus/i2c/devices/<busnum>-<devaddr>/oversampling
20−Date: June 2010
21−Contact: Christoph Mair <christoph.mair@gmail.com>
22−Description: 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 @@
1+What: /sys/kernel/irq
2+Date: September 2016
3+KernelVersion: 4.9
4+Contact: Craig Gallek <kraig@google.com>
5+Description: 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+
11+What: /sys/kernel/irq/<irq>/actions
12+Date: September 2016
13+KernelVersion: 4.9
14+Contact: Craig Gallek <kraig@google.com>
15+Description: The IRQ action chain. A comma-separated list of zero or more
16+ device names associated with this interrupt.
17+
18+What: /sys/kernel/irq/<irq>/chip_name
19+Date: September 2016
20+KernelVersion: 4.9
21+Contact: Craig Gallek <kraig@google.com>
22+Description: Human-readable chip name supplied by the associated device
23+ driver.
24+
25+What: /sys/kernel/irq/<irq>/hwirq
26+Date: September 2016
27+KernelVersion: 4.9
28+Contact: Craig Gallek <kraig@google.com>
29+Description: When interrupt translation domains are used, this file contains
30+ the underlying hardware IRQ number used for this Linux IRQ.
31+
32+What: /sys/kernel/irq/<irq>/name
33+Date: September 2016
34+KernelVersion: 4.9
35+Contact: Craig Gallek <kraig@google.com>
36+Description: Human-readable flow handler name as defined by the irq chip
37+ driver.
38+
39+What: /sys/kernel/irq/<irq>/per_cpu_count
40+Date: September 2016
41+KernelVersion: 4.9
42+Contact: Craig Gallek <kraig@google.com>
43+Description: 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+
49+What: /sys/kernel/irq/<irq>/type
50+Date: September 2016
51+KernelVersion: 4.9
52+Contact: Craig Gallek <kraig@google.com>
53+Description: The type of the interrupt. Either the string 'level' or 'edge'.
Documentation/Changes+169−95
@@ -1,8 +1,13 @@
1+.. _changes:
2+
3+Minimal requerements to compile the Kernel
4+++++++++++++++++++++++++++++++++++++++++++
5+
16 Intro
27 =====
38
49 This document is designed to provide a list of the minimum levels of
5−software necessary to run the 3.0 kernels.
10+software necessary to run the 4.x kernels.
611
712 This document is originally based on my "Changes" file for 2.0.x kernels
813 and 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
1015 'net).
1116
1217 Current Minimal Requirements
13−============================
18+****************************
1419
15−Upgrade to at *least* these software revisions before thinking you've
20+Upgrade to at **least** these software revisions before thinking you've
1621 encountered a bug! If you're unsure what version you're currently
1722 running, the suggested command should tell you.
1823
@@ -21,34 +26,40 @@ running a Linux kernel. Also, not all tools are necessary on all · 2 unmodified lines
2126 systems; obviously, if you don't have any ISDN hardware, for example,
2227 you probably needn't concern yourself with isdn4k-utils.
2328
24−o GNU C 3.2 # gcc --version
25−o GNU make 3.80 # make --version
26−o binutils 2.12 # ld -v
27−o util-linux 2.10o # fdformat --version
28−o module-init-tools 0.9.10 # depmod -V
29−o e2fsprogs 1.41.4 # e2fsck -V
30−o jfsutils 1.1.3 # fsck.jfs -V
31−o reiserfsprogs 3.6.3 # reiserfsck -V
32−o xfsprogs 2.6.0 # xfs_db -V
33−o squashfs-tools 4.0 # mksquashfs -version
34−o btrfs-progs 0.18 # btrfsck
35−o pcmciautils 004 # pccardctl -V
36−o quota-tools 3.09 # quota -V
37−o PPP 2.4.0 # pppd --version
38−o isdn4k-utils 3.1pre1 # isdnctrl 2>&1|grep version
39−o nfs-utils 1.0.5 # showmount --version
40−o procps 3.2.0 # ps --version
41−o oprofile 0.9 # oprofiled --version
42−o udev 081 # udevd --version
43−o grub 0.93 # grub --version || grub-install --version
44−o mcelog 0.6 # mcelog --version
45−o iptables 1.4.2 # iptables -V
46−o openssl & libcrypto 1.0.0 # openssl version
47−o bc 1.06.95 # bc --version
48−
29+====================== =============== ========================================
30+ Program Minimal version Command to check the version
31+====================== =============== ========================================
32+GNU C 3.2 gcc --version
33+GNU make 3.80 make --version
34+binutils 2.12 ld -v
35+util-linux 2.10o fdformat --version
36+module-init-tools 0.9.10 depmod -V
37+e2fsprogs 1.41.4 e2fsck -V
38+jfsutils 1.1.3 fsck.jfs -V
39+reiserfsprogs 3.6.3 reiserfsck -V
40+xfsprogs 2.6.0 xfs_db -V
41+squashfs-tools 4.0 mksquashfs -version
42+btrfs-progs 0.18 btrfsck
43+pcmciautils 004 pccardctl -V
44+quota-tools 3.09 quota -V
45+PPP 2.4.0 pppd --version
46+isdn4k-utils 3.1pre1 isdnctrl 2>&1|grep version
47+nfs-utils 1.0.5 showmount --version
48+procps 3.2.0 ps --version
49+oprofile 0.9 oprofiled --version
50+udev 081 udevd --version
51+grub 0.93 grub --version || grub-install --version
52+mcelog 0.6 mcelog --version
53+iptables 1.4.2 iptables -V
54+openssl & libcrypto 1.0.0 openssl version
55+bc 1.06.95 bc --version
56+Sphinx\ [#f1]_ 1.2 sphinx-build --version
57+====================== =============== ========================================
58+
59+.. [#f1] Sphinx is needed only to build the Kernel documentation
4960
5061 Kernel compilation
51−==================
62+******************
5263
5364 GCC
5465 ---
@@ -64,16 +75,16 @@ You will need GNU make 3.80 or later to build the kernel. · 9 unmodified lines
6475 Binutils
6576 --------
6677
67−Linux on IA-32 has recently switched from using as86 to using gas for
68−assembling the 16-bit boot code, removing the need for as86 to compile
78+Linux on IA-32 has recently switched from using ``as86`` to using ``gas`` for
79+assembling the 16-bit boot code, removing the need for ``as86`` to compile
6980 your kernel. This change does, however, mean that you need a recent
7081 release of binutils.
7182
7283 Perl
7384 ----
7485
75−You will need perl 5 and the following modules: Getopt::Long, Getopt::Std,
76−File::Basename, and File::Find to build the kernel.
86+You will need perl 5 and the following modules: ``Getopt::Long``,
87+``Getopt::Std``, ``File::Basename``, and ``File::Find`` to build the kernel.
7788
7889 BC
7990 --
@@ -93,7 +104,7 @@ and higher. · 13 unmodified lines
93104
94105
95106 System utilities
96−================
107+****************
97108
98109 Architectural changes
99110 ---------------------
@@ -115,7 +126,7 @@ well as the desired DocBook stylesheets. · 15 unmodified lines
115126 Util-linux
116127 ----------
117128
118−New versions of util-linux provide *fdisk support for larger disks,
129+New versions of util-linux provide ``fdisk`` support for larger disks,
119130 support new options to mount, recognize more supported partition
120131 types, have a fdformat which works with 2.4 kernels, and similar goodies.
121132 You'll probably want to upgrade.
@@ -125,54 +136,57 @@ Ksymoops · 3 unmodified lines
125136
126137 If the unthinkable happens and your kernel oopses, you may need the
127138 ksymoops tool to decode it, but in most cases you don't.
128−It is generally preferred to build the kernel with CONFIG_KALLSYMS so
139+It is generally preferred to build the kernel with ``CONFIG_KALLSYMS`` so
129140 that it produces readable dumps that can be used as-is (this also
130141 produces better output than ksymoops). If for some reason your kernel
131−is not build with CONFIG_KALLSYMS and you have no way to rebuild and
142+is not build with ``CONFIG_KALLSYMS`` and you have no way to rebuild and
132143 reproduce the Oops with that option, then you can still decode that Oops
133144 with ksymoops.
134145
135146 Module-Init-Tools
136147 -----------------
137148
138−A new module loader is now in the kernel that requires module-init-tools
149+A new module loader is now in the kernel that requires ``module-init-tools``
139150 to use. It is backward compatible with the 2.4.x series kernels.
140151
141152 Mkinitrd
142153 --------
143154
144−These changes to the /lib/modules file tree layout also require that
155+These changes to the ``/lib/modules`` file tree layout also require that
145156 mkinitrd be upgraded.
146157
147158 E2fsprogs
148159 ---------
149160
150−The latest version of e2fsprogs fixes several bugs in fsck and
161+The latest version of ``e2fsprogs`` fixes several bugs in fsck and
151162 debugfs. Obviously, it's a good idea to upgrade.
152163
153164 JFSutils
154165 --------
155166
156−The jfsutils package contains the utilities for the file system.
167+The ``jfsutils`` package contains the utilities for the file system.
157168 The following utilities are available:
158−o fsck.jfs - initiate replay of the transaction log, and check
169+
170+- ``fsck.jfs`` - initiate replay of the transaction log, and check
159171 and repair a JFS formatted partition.
160−o mkfs.jfs - create a JFS formatted partition.
161−o other file system utilities are also available in this package.
172+
173+- ``mkfs.jfs`` - create a JFS formatted partition.
174+
175+- other file system utilities are also available in this package.
162176
163177 Reiserfsprogs
164178 -------------
165179
166180 The reiserfsprogs package should be used for reiserfs-3.6.x
167181 (Linux kernels 2.4.x). It is a combined package and contains working
168−versions of mkreiserfs, resize_reiserfs, debugreiserfs and
169−reiserfsck. These utils work on both i386 and alpha platforms.
182+versions of ``mkreiserfs``, ``resize_reiserfs``, ``debugreiserfs`` and
183+``reiserfsck``. These utils work on both i386 and alpha platforms.
170184
171185 Xfsprogs
172186 --------
173187
174−The latest version of xfsprogs contains mkfs.xfs, xfs_db, and the
175−xfs_repair utilities, among others, for the XFS filesystem. It is
188+The latest version of ``xfsprogs`` contains ``mkfs.xfs``, ``xfs_db``, and the
189+``xfs_repair`` utilities, among others, for the XFS filesystem. It is
176190 architecture independent and any version from 2.0.0 onward should
177191 work correctly with this version of the XFS kernel code (2.6.0 or
178192 later is recommended, due to some significant improvements).
@@ -180,7 +194,7 @@ later is recommended, due to some significant improvements). · 1 unmodified line
180194 PCMCIAutils
181195 -----------
182196
183−PCMCIAutils replaces pcmcia-cs. It properly sets up
197+PCMCIAutils replaces ``pcmcia-cs``. It properly sets up
184198 PCMCIA sockets at system startup and loads the appropriate modules
185199 for 16-bit PCMCIA devices if the kernel is modularized and the hotplug
186200 subsystem is used.
@@ -198,19 +212,20 @@ Intel IA32 microcode · 11 unmodified lines
198212
199213 A driver has been added to allow updating of Intel IA32 microcode,
200214 accessible as a normal (misc) character device. If you are not using
201−udev you may need to:
215+udev you may need to::
202216
203−mkdir /dev/cpu
204−mknod /dev/cpu/microcode c 10 184
205−chmod 0644 /dev/cpu/microcode
217+ mkdir /dev/cpu
218+ mknod /dev/cpu/microcode c 10 184
219+ chmod 0644 /dev/cpu/microcode
206220
207221 as root before you can use this. You'll probably also want to
208222 get the user-space microcode_ctl utility to use with this.
209223
210224 udev
211225 ----
212−udev is a userspace application for populating /dev dynamically with
213−only entries for devices actually present. udev replaces the basic
226+
227+``udev`` is a userspace application for populating ``/dev`` dynamically with
228+only entries for devices actually present. ``udev`` replaces the basic
214229 functionality of devfs, while allowing persistent device naming for
215230 devices.
216231
@@ -218,10 +233,10 @@ FUSE · 1 unmodified line
218233 ----
219234
220235 Needs libfuse 2.4.0 or later. Absolute minimum is 2.3.0 but mount
221−options 'direct_io' and 'kernel_cache' won't work.
236+options ``direct_io`` and ``kernel_cache`` won't work.
222237
223238 Networking
224−==========
239+**********
225240
226241 General changes
227242 ---------------
@@ -243,9 +258,9 @@ enable it to operate over diverse media layers. If you use PPP, · 15 unmodified lines
243258 upgrade pppd to at least 2.4.0.
244259
245260 If you are not using udev, you must have the device file /dev/ppp
246−which can be made by:
261+which can be made by::
247262
248−mknod /dev/ppp c 108 0
263+ mknod /dev/ppp c 108 0
249264
250265 as root.
251266
@@ -260,22 +275,22 @@ NFS-utils · 8 unmodified lines
260275
261276 In ancient (2.4 and earlier) kernels, the nfs server needed to know
262277 about any client that expected to be able to access files via NFS. This
263−information would be given to the kernel by "mountd" when the client
264−mounted the filesystem, or by "exportfs" at system startup. exportfs
265−would take information about active clients from /var/lib/nfs/rmtab.
278+information would be given to the kernel by ``mountd`` when the client
279+mounted the filesystem, or by ``exportfs`` at system startup. exportfs
280+would take information about active clients from ``/var/lib/nfs/rmtab``.
266281
267282 This approach is quite fragile as it depends on rmtab being correct
268283 which is not always easy, particularly when trying to implement
269−fail-over. Even when the system is working well, rmtab suffers from
284+fail-over. Even when the system is working well, ``rmtab`` suffers from
270285 getting lots of old entries that never get removed.
271286
272287 With modern kernels we have the option of having the kernel tell mountd
273288 when it gets a request from an unknown host, and mountd can give
274289 appropriate export information to the kernel. This removes the
275−dependency on rmtab and means that the kernel only needs to know about
290+dependency on ``rmtab`` and means that the kernel only needs to know about
276291 currently active clients.
277292
278−To enable this new functionality, you need to:
293+To enable this new functionality, you need to::
279294
280295 mount -t nfsd nfsd /proc/fs/nfsd
281296
@@ -287,8 +302,32 @@ mcelog · 5 unmodified lines
287302 ------
288303
289304 On x86 kernels the mcelog utility is needed to process and log machine check
290−events when CONFIG_X86_MCE is enabled. Machine check events are errors reported
291−by the CPU. Processing them is strongly encouraged.
305+events when ``CONFIG_X86_MCE`` is enabled. Machine check events are errors
306+reported by the CPU. Processing them is strongly encouraged.
307+
308+Kernel documentation
309+********************
310+
311+Sphinx
312+------
313+
314+The ReST markups currently used by the Documentation/ files are meant to be
315+built with ``Sphinx`` version 1.2 or upper. If you're desiring to build
316+PDF 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+
325+Other tools
326+-----------
327+
328+In order to produce documentation from DocBook, you'll also need ``xmlto``.
329+Please notice, however, that we're currently migrating all documents to use
330+``Sphinx``.
292331
293332 Getting updated software
294333 ========================
@@ -298,114 +337,149 @@ Kernel compilation · 3 unmodified lines
298337
299338 gcc
300339 ---
301−o <ftp://ftp.gnu.org/gnu/gcc/>
340+
341+- <ftp://ftp.gnu.org/gnu/gcc/>
302342
303343 Make
304344 ----
305−o <ftp://ftp.gnu.org/gnu/make/>
345+
346+- <ftp://ftp.gnu.org/gnu/make/>
306347
307348 Binutils
308349 --------
309−o <ftp://ftp.kernel.org/pub/linux/devel/binutils/>
350+
351+- <ftp://ftp.kernel.org/pub/linux/devel/binutils/>
310352
311353 OpenSSL
312354 -------
313−o <https://www.openssl.org/>
355+
356+- <https://www.openssl.org/>
314357
315358 System utilities
316359 ****************
317360
318361 Util-linux
319362 ----------
320−o <ftp://ftp.kernel.org/pub/linux/utils/util-linux/>
363+
364+- <ftp://ftp.kernel.org/pub/linux/utils/util-linux/>
321365
322366 Ksymoops
323367 --------
324−o <ftp://ftp.kernel.org/pub/linux/utils/kernel/ksymoops/v2.4/>
368+
369+- <ftp://ftp.kernel.org/pub/linux/utils/kernel/ksymoops/v2.4/>
325370
326371 Module-Init-Tools
327372 -----------------
328−o <ftp://ftp.kernel.org/pub/linux/kernel/people/rusty/modules/>
373+
374+- <ftp://ftp.kernel.org/pub/linux/kernel/people/rusty/modules/>
329375
330376 Mkinitrd
331377 --------
332−o <https://code.launchpad.net/initrd-tools/main>
378+
379+- <https://code.launchpad.net/initrd-tools/main>
333380
334381 E2fsprogs
335382 ---------
336−o <http://prdownloads.sourceforge.net/e2fsprogs/e2fsprogs-1.29.tar.gz>
383+
384+- <http://prdownloads.sourceforge.net/e2fsprogs/e2fsprogs-1.29.tar.gz>
337385
338386 JFSutils
339387 --------
340−o <http://jfs.sourceforge.net/>
388+
389+- <http://jfs.sourceforge.net/>
341390
342391 Reiserfsprogs
343392 -------------
344−o <http://www.kernel.org/pub/linux/utils/fs/reiserfs/>
393+
394+- <http://www.kernel.org/pub/linux/utils/fs/reiserfs/>
345395
346396 Xfsprogs
347397 --------
348−o <ftp://oss.sgi.com/projects/xfs/>
398+
399+- <ftp://oss.sgi.com/projects/xfs/>
349400
350401 Pcmciautils
351402 -----------
352−o <ftp://ftp.kernel.org/pub/linux/utils/kernel/pcmcia/>
403+
404+- <ftp://ftp.kernel.org/pub/linux/utils/kernel/pcmcia/>
353405
354406 Quota-tools
355−----------
356−o <http://sourceforge.net/projects/linuxquota/>
407+-----------
408+
409+- <http://sourceforge.net/projects/linuxquota/>
357410
358411 DocBook Stylesheets
359412 -------------------
360−o <http://sourceforge.net/projects/docbook/files/docbook-dsssl/>
413+
414+- <http://sourceforge.net/projects/docbook/files/docbook-dsssl/>
361415
362416 XMLTO XSLT Frontend
363417 -------------------
364−o <http://cyberelk.net/tim/xmlto/>
418+
419+- <http://cyberelk.net/tim/xmlto/>
365420
366421 Intel P6 microcode
367422 ------------------
368−o <https://downloadcenter.intel.com/>
423+
424+- <https://downloadcenter.intel.com/>
369425
370426 udev
371427 ----
372−o <http://www.freedesktop.org/software/systemd/man/udev.html>
428+
429+- <http://www.freedesktop.org/software/systemd/man/udev.html>
373430
374431 FUSE
375432 ----
376−o <http://sourceforge.net/projects/fuse>
433+
434+- <http://sourceforge.net/projects/fuse>
377435
378436 mcelog
379437 ------
380−o <http://www.mcelog.org/>
438+
439+- <http://www.mcelog.org/>
381440
382441 Networking
383442 **********
384443
385444 PPP
386445 ---
387−o <ftp://ftp.samba.org/pub/ppp/>
446+
447+- <ftp://ftp.samba.org/pub/ppp/>
388448
389449 Isdn4k-utils
390450 ------------
391−o <ftp://ftp.isdn4linux.de/pub/isdn4linux/utils/>
451+
452+- <ftp://ftp.isdn4linux.de/pub/isdn4linux/utils/>
392453
393454 NFS-utils
394455 ---------
395−o <http://sourceforge.net/project/showfiles.php?group_id=14>
456+
457+- <http://sourceforge.net/project/showfiles.php?group_id=14>
396458
397459 Iptables
398460 --------
399−o <http://www.iptables.org/downloads.html>
461+
462+- <http://www.iptables.org/downloads.html>
400463
401464 Ip-route2
402465 ---------
403−o <https://www.kernel.org/pub/linux/utils/net/iproute2/>
466+
467+- <https://www.kernel.org/pub/linux/utils/net/iproute2/>
404468
405469 OProfile
406470 --------
407−o <http://oprofile.sf.net/download/>
471+
472+- <http://oprofile.sf.net/download/>
408473
409474 NFS-Utils
410475 ---------
411−o <http://nfs.sourceforge.net/>
476+
477+- <http://nfs.sourceforge.net/>
478+
479+Kernel documentation
480+********************
481+
482+Sphinx
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
1919 will work to resolve the issue to the best of their ability. For more
2020 information on who is on the Technical Advisory Board and what their
2121 role is, please see:
22− http://www.linuxfoundation.org/programs/advisory-councils/tab
22+ http://www.linuxfoundation.org/projects/linux/tab
2323
2424 As a reviewer of code, please strive to keep things civil and focused on
2525 the technical issues involved. We are all humans, and frustrations can
Documentation/CodingStyle+260−144
@@ -1,8 +1,10 @@
1+.. _codingstyle:
12
2− Linux kernel coding style
3+Linux kernel coding style
4+=========================
35
46 This is a short document describing the preferred coding style for the
5−linux kernel. Coding style is very personal, and I won't _force_ my
7+linux kernel. Coding style is very personal, and I won't **force** my
68 views on anybody, but this is what goes for anything that I have to be
79 able to maintain, and I'd prefer it for most other things too. Please
810 at 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
1315 Anyway, here goes:
1416
1517
16− Chapter 1: Indentation
18+1) Indentation
19+--------------
1720
1821 Tabs are 8 characters, and thus indentations are also 8 characters.
1922 There 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
3639 Heed that warning.
3740
3841 The preferred way to ease multiple indentation levels in a switch statement is
39−to align the "switch" and its subordinate "case" labels in the same column
40−instead of "double-indenting" the "case" labels. E.g.:
42+to align the ``switch`` and its subordinate ``case`` labels in the same column
43+instead of ``double-indenting`` the ``case`` labels. E.g.:
44+
45+.. code-block:: c
4146
4247 switch (suffix) {
4348 case 'G':
@@ -59,6 +64,8 @@ instead of "double-indenting" the "case" labels. E.g.: · 15 unmodified lines
5964 Don't put multiple statements on a single line unless you have
6065 something to hide:
6166
67+.. code-block:: c
68+
6269 if (condition) do_this;
6370 do_something_everytime;
6471
@@ -71,7 +78,8 @@ used for indentation, and the above example is deliberately broken. · 6 unmodified lines
7178 Get a decent editor and don't leave whitespace at the end of lines.
7279
7380
74− Chapter 2: Breaking long lines and strings
81+2) Breaking long lines and strings
82+----------------------------------
7583
7684 Coding style is all about readability and maintainability using commonly
7785 available tools.
@@ -87,7 +95,8 @@ with a long argument list. However, never break user-visible strings such as · 9 unmodified lines
8795 printk messages, because that breaks the ability to grep for them.
8896
8997
90− Chapter 3: Placing Braces and Spaces
98+3) Placing Braces and Spaces
99+----------------------------
91100
92101 The other issue that always comes up in C styling is the placement of
93102 braces. 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
95104 shown to us by the prophets Kernighan and Ritchie, is to put the opening
96105 brace last on the line, and put the closing brace first, thusly:
97106
107+.. code-block:: c
108+
98109 if (x is true) {
99110 we do y
100111 }
@@ -102,6 +113,8 @@ brace last on the line, and put the closing brace first, thusly: · 1 unmodified line
102113 This applies to all non-function statement blocks (if, switch, for,
103114 while, do). E.g.:
104115
116+.. code-block:: c
117+
105118 switch (action) {
106119 case KOBJ_ADD:
107120 return "add";
@@ -116,6 +129,8 @@ while, do). E.g.: · 8 unmodified lines
116129 However, there is one special case, namely functions: they have the
117130 opening brace at the beginning of the next line, thus:
118131
132+.. code-block:: c
133+
119134 int function(int x)
120135 {
121136 body of function
@@ -123,20 +138,24 @@ opening brace at the beginning of the next line, thus: · 1 unmodified line
123138
124139 Heretic people all over the world have claimed that this inconsistency
125140 is ... well ... inconsistent, but all right-thinking people know that
126−(a) K&R are _right_ and (b) K&R are right. Besides, functions are
141+(a) K&R are **right** and (b) K&R are right. Besides, functions are
127142 special anyway (you can't nest them in C).
128143
129−Note that the closing brace is empty on a line of its own, _except_ in
144+Note that the closing brace is empty on a line of its own, **except** in
130145 the cases where it is followed by a continuation of the same statement,
131−ie a "while" in a do-statement or an "else" in an if-statement, like
146+ie a ``while`` in a do-statement or an ``else`` in an if-statement, like
132147 this:
133148
149+.. code-block:: c
150+
134151 do {
135152 body of do-loop
136153 } while (condition);
137154
138155 and
139156
157+.. code-block:: c
158+
140159 if (x == y) {
141160 ..
142161 } else if (x > y) {
@@ -155,11 +174,15 @@ comments on. · 12 unmodified lines
155174
156175 Do not unnecessarily use braces where a single statement will do.
157176
177+.. code-block:: c
178+
158179 if (condition)
159180 action();
160181
161182 and
162183
184+.. code-block:: none
185+
163186 if (condition)
164187 do_this();
165188 else
@@ -168,6 +191,8 @@ and · 2 unmodified lines
168191 This does not apply if only one branch of a conditional statement is a single
169192 statement; in the latter case use braces in both branches:
170193
194+.. code-block:: c
195+
171196 if (condition) {
172197 do_this();
173198 do_that();
@@ -175,57 +200,67 @@ statement; in the latter case use braces in both branches: · 1 unmodified line
175200 otherwise();
176201 }
177202
178− 3.1: Spaces
203+3.1) Spaces
204+***********
179205
180206 Linux kernel style for use of spaces depends (mostly) on
181207 function-versus-keyword usage. Use a space after (most) keywords. The
182208 notable exceptions are sizeof, typeof, alignof, and __attribute__, which look
183209 somewhat like functions (and are usually used with parentheses in Linux,
184−although they are not required in the language, as in: "sizeof info" after
185−"struct fileinfo info;" is declared).
210+although they are not required in the language, as in: ``sizeof info`` after
211+``struct fileinfo info;`` is declared).
186212
187−So use a space after these keywords:
213+So use a space after these keywords::
188214
189215 if, switch, case, for, do, while
190216
191217 but not with sizeof, typeof, alignof, or __attribute__. E.g.,
192218
219+.. code-block:: c
220+
221+
193222 s = sizeof(struct file);
194223
195224 Do not add spaces around (inside) parenthesized expressions. This example is
196−*bad*:
225+**bad**:
226+
227+.. code-block:: c
228+
197229
198230 s = sizeof( struct file );
199231
200232 When declaring pointer data or a function that returns a pointer type, the
201−preferred use of '*' is adjacent to the data name or function name and not
233+preferred use of ``*`` is adjacent to the data name or function name and not
202234 adjacent to the type name. Examples:
203235
236+.. code-block:: c
237+
238+
204239 char *linux_banner;
205240 unsigned long long memparse(char *ptr, char **retptr);
206241 char *match_strdup(substring_t *s);
207242
208243 Use one space around (on each side of) most binary and ternary operators,
209−such as any of these:
244+such as any of these::
210245
211246 = + - < > * / % | & ^ <= >= == != ? :
212247
213−but no space after unary operators:
248+but no space after unary operators::
214249
215250 & * + - ~ ! sizeof typeof alignof __attribute__ defined
216251
217−no space before the postfix increment & decrement unary operators:
252+no space before the postfix increment & decrement unary operators::
218253
219254 ++ --
220255
221−no space after the prefix increment & decrement unary operators:
256+no space after the prefix increment & decrement unary operators::
222257
223258 ++ --
224259
225−and no space around the '.' and "->" structure member operators.
260+and no space around the ``.`` and ``->`` structure member operators.
226261
227262 Do not leave trailing whitespace at the ends of lines. Some editors with
228−"smart" indentation will insert whitespace at the beginning of new lines as
263+``smart`` indentation will insert whitespace at the beginning of new lines as
229264 appropriate, so you can start typing the next line of code right away.
230265 However, some such editors do not remove the whitespace if you end up not
231266 putting 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
237272 context lines.
238273
239274
240− Chapter 4: Naming
275+4) Naming
276+---------
241277
242278 C is a Spartan language, and so should your naming be. Unlike Modula-2
243279 and Pascal programmers, C programmers do not use cute names like
244280 ThisVariableIsATemporaryCounter. A C programmer would call that
245−variable "tmp", which is much easier to write, and not the least more
281+variable ``tmp``, which is much easier to write, and not the least more
246282 difficult to understand.
247283
248284 HOWEVER, while mixed-case names are frowned upon, descriptive names for
249−global variables are a must. To call a global function "foo" is a
285+global variables are a must. To call a global function ``foo`` is a
250286 shooting offense.
251287
252−GLOBAL variables (to be used only if you _really_ need them) need to
288+GLOBAL variables (to be used only if you **really** need them) need to
253289 have descriptive names, as do global functions. If you have a function
254290 that 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()``.
256292
257293 Encoding the type of a function into the name (so-called Hungarian
258294 notation) 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
260296 makes buggy programs.
261297
262298 LOCAL variable names should be short, and to the point. If you have
263−some random integer loop counter, it should probably be called "i".
264−Calling it "loop_counter" is non-productive, if there is no chance of it
265−being mis-understood. Similarly, "tmp" can be just about any type of
299+some random integer loop counter, it should probably be called ``i``.
300+Calling it ``loop_counter`` is non-productive, if there is no chance of it
301+being mis-understood. Similarly, ``tmp`` can be just about any type of
266302 variable that is used to hold a temporary value.
267303
268304 If 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
270306 See chapter 6 (Functions).
271307
272308
273− Chapter 5: Typedefs
309+5) Typedefs
310+-----------
311+
312+Please don't use things like ``vps_t``.
313+It's a **mistake** to use typedef for structures and pointers. When you see a
314+
315+.. code-block:: c
274316
275−Please don't use things like "vps_t".
276−It's a _mistake_ to use typedef for structures and pointers. When you see a
277317
278318 vps_t a;
279319
280320 in the source, what does it mean?
281321 In contrast, if it says
282322
323+.. code-block:: c
324+
283325 struct virtual_container *a;
284326
285−you can actually tell what "a" is.
327+you can actually tell what ``a`` is.
286328
287−Lots of people think that typedefs "help readability". Not so. They are
329+Lots of people think that typedefs ``help readability``. Not so. They are
288330 useful only for:
289331
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**
291333 what the object is).
292334
293− Example: "pte_t" etc. opaque objects that you can only access using
335+ Example: ``pte_t`` etc. opaque objects that you can only access using
294336 the proper accessor functions.
295337
296− NOTE! Opaqueness and "accessor functions" are not good in themselves.
297− The reason we have them for things like pte_t etc. is that there
298− really is absolutely _zero_ portably accessible information there.
338+ .. note::
339+
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.
299343
300− (b) Clear integer types, where the abstraction _helps_ avoid confusion
301− whether it is "int" or "long".
344+ (b) Clear integer types, where the abstraction **helps** avoid confusion
345+ whether it is ``int`` or ``long``.
302346
303347 u8/u16/u32 are perfectly fine typedefs, although they fit into
304348 category (d) better than here.
305349
306− NOTE! Again - there needs to be a _reason_ for this. If something is
307− "unsigned long", then there's no reason to do
350+ .. note::
351+
352+ Again - there needs to be a **reason** for this. If something is
353+ ``unsigned long``, then there's no reason to do
308354
309355 typedef unsigned long myflags_t;
310356
311357 but if there is a clear reason for why it under certain circumstances
312− might be an "unsigned int" and under other configurations might be
313− "unsigned long", then by all means go ahead and use a typedef.
358+ might be an ``unsigned int`` and under other configurations might be
359+ ``unsigned long``, then by all means go ahead and use a typedef.
314360
315− (c) when you use sparse to literally create a _new_ type for
361+ (c) when you use sparse to literally create a **new** type for
316362 type-checking.
317363
318364 (d) New types which are identical to standard C99 types, in certain
319365 exceptional circumstances.
320366
321367 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``,
323369 some people object to their use anyway.
324370
325− Therefore, the Linux-specific 'u8/u16/u32/u64' types and their
371+ Therefore, the Linux-specific ``u8/u16/u32/u64`` types and their
326372 signed equivalents which are identical to standard types are
327373 permitted -- although they are not mandatory in new code of your
328374 own.
@@ -333,7 +379,7 @@ useful only for: · 4 unmodified lines
333379 (e) Types safe for use in userspace.
334380
335381 In certain structures which are visible to userspace, we cannot
336− require C99 types and cannot use the 'u32' form above. Thus, we
382+ require C99 types and cannot use the ``u32`` form above. Thus, we
337383 use __u32 and similar types in all structures which are shared
338384 with userspace.
339385
@@ -341,10 +387,11 @@ Maybe there are other cases too, but the rule should basically be to NEVER · 1 unmodified line
341387 EVER use a typedef unless you can clearly match one of those rules.
342388
343389 In general, a pointer, or a struct that has elements that can reasonably
344−be directly accessed should _never_ be a typedef.
390+be directly accessed should **never** be a typedef.
345391
346392
347− Chapter 6: Functions
393+6) Functions
394+------------
348395
349396 Functions should be short and sweet, and do just one thing. They should
350397 fit 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
372419 to understand what you did 2 weeks from now.
373420
374421 In source files, separate functions with one blank line. If the function is
375−exported, the EXPORT* macro for it should follow immediately after the closing
376−function brace line. E.g.:
422+exported, the **EXPORT** macro for it should follow immediately after the
423+closing function brace line. E.g.:
424+
425+.. code-block:: c
377426
378427 int system_is_up(void)
379428 {
@@ -386,7 +435,8 @@ Although this is not required by the C language, it is preferred in Linux · 6 unmodified lines
386435 because it is a simple way to add valuable information for the reader.
387436
388437
389− Chapter 7: Centralized exiting of functions
438+7) Centralized exiting of functions
439+-----------------------------------
390440
391441 Albeit deprecated by some people, the equivalent of the goto statement is
392442 used 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
396446 cleanup needed then just return directly.
397447
398448 Choose label names which say what the goto does or why the goto exists. An
399−example of a good name could be "out_buffer:" if the goto frees "buffer". Avoid
400−using GW-BASIC names like "err1:" and "err2:". Also don't name them after the
401−goto location like "err_kmalloc_failed:"
449+example of a good name could be ``out_free_buffer:`` if the goto frees ``buffer``.
450+Avoid using GW-BASIC names like ``err1:`` and ``err2:``, as you would have to
451+renumber them if you ever add or remove exit paths, and they make correctness
452+difficult to verify anyway.
402453
403454 The rationale for using gotos is:
404455
405456 - unconditional statements are easier to understand and follow
406457 - nesting is reduced
407458 - errors by not updating individual exit points when making
408− modifications are prevented
459+ modifications are prevented
409460 - saves the compiler work to optimize redundant code away ;)
410461
462+.. code-block:: c
463+
411464 int fun(int a)
412465 {
413466 int result = 0;
@@ -425,27 +478,41 @@ The rationale for using gotos is: · 11 unmodified lines
425478 goto out_buffer;
426479 }
427480 ...
428− out_buffer:
481+ out_free_buffer:
429482 kfree(buffer);
430483 return result;
431484 }
432485
433−A common type of bug to be aware of is "one err bugs" which look like this:
486+A common type of bug to be aware of is ``one err bugs`` which look like this:
487+
488+.. code-block:: c
434489
435490 err:
436491 kfree(foo->bar);
437492 kfree(foo);
438493 return ret;
439494
440−The bug in this code is that on some exit paths "foo" is NULL. Normally the
441−fix for this is to split it up into two error labels "err_bar:" and "err_foo:".
495+The bug in this code is that on some exit paths ``foo`` is NULL. Normally the
496+fix for this is to split it up into two error labels ``err_free_bar:`` and
497+``err_free_foo:``:
442498
499+.. code-block:: c
443500
444− Chapter 8: Commenting
501+ err_free_bar:
502+ kfree(foo->bar);
503+ err_free_foo:
504+ kfree(foo);
505+ return ret;
506+
507+Ideally you should simulate errors to test all exit paths.
508+
509+
510+8) Commenting
511+-------------
445512
446513 Comments are good, but there is also a danger of over-commenting. NEVER
447514 try to explain HOW your code works in a comment: it's much better to
448−write the code so that the _working_ is obvious, and it's a waste of
515+write the code so that the **working** is obvious, and it's a waste of
449516 time to explain badly written code.
450517
451518 Generally, 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
461528 See the files Documentation/kernel-documentation.rst and scripts/kernel-doc
462529 for details.
463530
464−Linux style for comments is the C89 "/* ... */" style.
465−Don't use C99-style "// ..." comments.
466−
467531 The preferred style for long (multi-line) comments is:
468532
533+.. code-block:: c
534+
469535 /*
470536 * This is the preferred style for multi-line
471537 * comments in the Linux kernel source code.
@@ -478,6 +544,8 @@ The preferred style for long (multi-line) comments is: · 6 unmodified lines
478544 For files in net/ and drivers/net/ the preferred style for long (multi-line)
479545 comments is a little different.
480546
547+.. code-block:: c
548+
481549 /* The preferred comment style for files in net/ and drivers/net
482550 * looks like this.
483551 *
@@ -491,10 +559,11 @@ multiple data declarations). This leaves you room for a small comment on each · 7 unmodified lines
491559 item, explaining its use.
492560
493561
494− Chapter 9: You've made a mess of it
562+9) You've made a mess of it
563+---------------------------
495564
496565 That's OK, we all do. You've probably been told by your long-time Unix
497−user helper that "GNU emacs" automatically formats the C sources for
566+user helper that ``GNU emacs`` automatically formats the C sources for
498567 you, and you've noticed that yes, it does do that, but the defaults it
499568 uses are less than desirable (in fact, they are worse than random
500569 typing - an infinite number of monkeys typing into GNU emacs would never
@@ -503,63 +572,66 @@ make a good program). · 2 unmodified lines
503572 So, you can either get rid of GNU emacs, or change it to use saner
504573 values. To do the latter, you can stick the following in your .emacs file:
505574
506−(defun c-lineup-arglist-tabs-only (ignored)
507− "Line up argument lists by tabs, not spaces"
508− (let* ((anchor (c-langelem-pos c-syntactic-element))
509− (column (c-langelem-2nd-pos c-syntactic-element))
510− (offset (- (1+ column) anchor))
511− (steps (floor offset c-basic-offset)))
512− (* (max steps 1)
513− c-basic-offset)))
514−
515−(add-hook 'c-mode-common-hook
516− (lambda ()
517− ;; Add kernel style
518− (c-add-style
519− "linux-tabs-only"
520− '("linux" (c-offsets-alist
521− (arglist-cont-nonempty
522− c-lineup-gcc-asm-reg
523− c-lineup-arglist-tabs-only))))))
524−
525−(add-hook 'c-mode-hook
526− (lambda ()
527− (let ((filename (buffer-file-name)))
528− ;; Enable kernel mode for the appropriate files
529− (when (and filename
530− (string-match (expand-file-name "~/src/linux-trees")
531− filename))
532− (setq indent-tabs-mode t)
533− (setq show-trailing-whitespace t)
534− (c-set-style "linux-tabs-only")))))
575+.. code-block:: none
576+
577+ (defun c-lineup-arglist-tabs-only (ignored)
578+ "Line up argument lists by tabs, not spaces"
579+ (let* ((anchor (c-langelem-pos c-syntactic-element))
580+ (column (c-langelem-2nd-pos c-syntactic-element))
581+ (offset (- (1+ column) anchor))
582+ (steps (floor offset c-basic-offset)))
583+ (* (max steps 1)
584+ c-basic-offset)))
585+
586+ (add-hook 'c-mode-common-hook
587+ (lambda ()
588+ ;; Add kernel style
589+ (c-add-style
590+ "linux-tabs-only"
591+ '("linux" (c-offsets-alist
592+ (arglist-cont-nonempty
593+ c-lineup-gcc-asm-reg
594+ c-lineup-arglist-tabs-only))))))
595+
596+ (add-hook 'c-mode-hook
597+ (lambda ()
598+ (let ((filename (buffer-file-name)))
599+ ;; Enable kernel mode for the appropriate files
600+ (when (and filename
601+ (string-match (expand-file-name "~/src/linux-trees")
602+ filename))
603+ (setq indent-tabs-mode t)
604+ (setq show-trailing-whitespace t)
605+ (c-set-style "linux-tabs-only")))))
535606
536607 This will make emacs go better with the kernel coding style for C
537−files below ~/src/linux-trees.
608+files below ``~/src/linux-trees``.
538609
539610 But even if you fail in getting emacs to do sane formatting, not
540−everything is lost: use "indent".
611+everything is lost: use ``indent``.
541612
542613 Now, again, GNU indent has the same brain-dead settings that GNU emacs
543614 has, which is why you need to give it a few command line options.
544615 However, that's not too bad, because even the makers of GNU indent
545616 recognize the authority of K&R (the GNU people aren't evil, they are
546617 just severely misguided in this matter), so you just give indent the
547−options "-kr -i8" (stands for "K&R, 8 character indents"), or use
548−"scripts/Lindent", which indents in the latest style.
618+options ``-kr -i8`` (stands for ``K&R, 8 character indents``), or use
619+``scripts/Lindent``, which indents in the latest style.
549620
550−"indent" has a lot of options, and especially when it comes to comment
621+``indent`` has a lot of options, and especially when it comes to comment
551622 re-formatting you may want to take a look at the man page. But
552−remember: "indent" is not a fix for bad programming.
623+remember: ``indent`` is not a fix for bad programming.
553624
554625
555− Chapter 10: Kconfig configuration files
626+10) Kconfig configuration files
627+-------------------------------
556628
557629 For all of the Kconfig* configuration files throughout the source tree,
558−the indentation is somewhat different. Lines under a "config" definition
630+the indentation is somewhat different. Lines under a ``config`` definition
559631 are indented with one tab, while help text is indented an additional two
560−spaces. Example:
632+spaces. Example::
561633
562−config AUDIT
634+ config AUDIT
563635 bool "Auditing support"
564636 depends on NET
565637 help
@@ -569,9 +641,9 @@ config AUDIT · 3 unmodified lines
569641 auditing without CONFIG_AUDITSYSCALL.
570642
571643 Seriously dangerous features (such as write support for certain
572−filesystems) should advertise this prominently in their prompt string:
644+filesystems) should advertise this prominently in their prompt string::
573645
574−config ADFS_FS_RW
646+ config ADFS_FS_RW
575647 bool "ADFS write support (DANGEROUS)"
576648 depends on ADFS_FS
577649 ...
@@ -580,41 +652,45 @@ For full documentation on the configuration files, see the file · 2 unmodified lines
580652 Documentation/kbuild/kconfig-language.txt.
581653
582654
583− Chapter 11: Data structures
655+11) Data structures
656+-------------------
584657
585658 Data structures that have visibility outside the single-threaded
586659 environment they are created and destroyed in should always have
587660 reference counts. In the kernel, garbage collection doesn't exist (and
588661 outside the kernel garbage collection is slow and inefficient), which
589−means that you absolutely _have_ to reference count all your uses.
662+means that you absolutely **have** to reference count all your uses.
590663
591664 Reference counting means that you can avoid locking, and allows multiple
592665 users to have access to the data structure in parallel - and not having
593666 to worry about the structure suddenly going away from under them just
594667 because they slept or did something else for a while.
595668
596−Note that locking is _not_ a replacement for reference counting.
669+Note that locking is **not** a replacement for reference counting.
597670 Locking is used to keep data structures coherent, while reference
598671 counting is a memory management technique. Usually both are needed, and
599672 they are not to be confused with each other.
600673
601674 Many data structures can indeed have two levels of reference counting,
602−when there are users of different "classes". The subclass count counts
675+when there are users of different ``classes``. The subclass count counts
603676 the number of subclass users, and decrements the global count just once
604677 when the subclass count goes to zero.
605678
606−Examples of this kind of "multi-level-reference-counting" can be found in
607−memory management ("struct mm_struct": mm_users and mm_count), and in
608−filesystem code ("struct super_block": s_count and s_active).
679+Examples of this kind of ``multi-level-reference-counting`` can be found in
680+memory management (``struct mm_struct``: mm_users and mm_count), and in
681+filesystem code (``struct super_block``: s_count and s_active).
609682
610683 Remember: if another thread can find your data structure, and you don't
611684 have a reference count on it, you almost certainly have a bug.
612685
613686
614− Chapter 12: Macros, Enums and RTL
687+12) Macros, Enums and RTL
688+-------------------------
615689
616690 Names of macros defining constants and labels in enums are capitalized.
617691
692+.. code-block:: c
693+
618694 #define CONSTANT 0x12345
619695
620696 Enums are preferred when defining several related constants.
@@ -626,7 +702,9 @@ Generally, inline functions are preferable to macros resembling functions. · 5 unmodified lines
626702
627703 Macros with multiple statements should be enclosed in a do - while block:
628704
629− #define macrofun(a, b, c) \
705+.. code-block:: c
706+
707+ #define macrofun(a, b, c) \
630708 do { \
631709 if (a == 5) \
632710 do_this(b, c); \
@@ -636,17 +714,21 @@ Things to avoid when using macros: · 3 unmodified lines
636714
637715 1) macros that affect control flow:
638716
717+.. code-block:: c
718+
639719 #define FOO(x) \
640720 do { \
641721 if (blah(x) < 0) \
642722 return -EBUGGERED; \
643723 } while (0)
644724
645−is a _very_ bad idea. It looks like a function call but exits the "calling"
725+is a **very** bad idea. It looks like a function call but exits the ``calling``
646726 function; don't break the internal parsers of those who will read the code.
647727
648728 2) macros that depend on having a local variable with a magic name:
649729
730+.. code-block:: c
731+
650732 #define FOO(val) bar(index, val)
651733
652734 might 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
659741 must enclose the expression in parentheses. Beware of similar issues with
660742 macros using parameters.
661743
744+.. code-block:: c
745+
662746 #define CONSTANT 0x4000
663747 #define CONSTEXP (CONSTANT | 3)
664748
665749 5) namespace collisions when defining local variables in macros resembling
666750 functions:
667751
668−#define FOO(x) \
669−({ \
670− typeof(x) ret; \
671− ret = calc_ret(x); \
672− (ret); \
673−})
752+.. code-block:: c
753+
754+ #define FOO(x) \
755+ ({ \
756+ typeof(x) ret; \
757+ ret = calc_ret(x); \
758+ (ret); \
759+ })
674760
675761 ret is a common name for a local variable - __foo_ret is less likely
676762 to collide with an existing variable.
@@ -679,11 +765,12 @@ The cpp manual deals with macros exhaustively. The gcc internals manual also · 2 unmodified lines
679765 covers RTL which is used frequently with assembly language in the kernel.
680766
681767
682− Chapter 13: Printing kernel messages
768+13) Printing kernel messages
769+----------------------------
683770
684771 Kernel developers like to be seen as literate. Do mind the spelling
685772 of kernel messages to make a good impression. Do not use crippled
686−words like "dont"; use "do not" or "don't" instead. Make the messages
773+words like ``dont``; use ``do not`` or ``don't`` instead. Make the messages
687774 concise, clear, and unambiguous.
688775
689776 Kernel 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
713800 used.
714801
715802
716− Chapter 14: Allocating memory
803+14) Allocating memory
804+---------------------
717805
718806 The kernel provides the following general purpose memory allocators:
719807 kmalloc(), kzalloc(), kmalloc_array(), kcalloc(), vmalloc(), and
@@ -722,6 +810,8 @@ about them. · 2 unmodified lines
722810
723811 The preferred form for passing a size of a struct is the following:
724812
813+.. code-block:: c
814+
725815 p = kmalloc(sizeof(*p), ...);
726816
727817 The alternative form where struct name is spelled out hurts readability and
@@ -734,20 +824,25 @@ language. · 6 unmodified lines
734824
735825 The preferred form for allocating an array is the following:
736826
827+.. code-block:: c
828+
737829 p = kmalloc_array(n, sizeof(...), ...);
738830
739831 The preferred form for allocating a zeroed array is the following:
740832
833+.. code-block:: c
834+
741835 p = kcalloc(n, sizeof(...), ...);
742836
743837 Both forms check for overflow on the allocation size n * sizeof(...),
744838 and return NULL if that occurred.
745839
746840
747− Chapter 15: The inline disease
841+15) The inline disease
842+----------------------
748843
749844 There appears to be a common misperception that gcc has a magic "make me
750−faster" speedup option called "inline". While the use of inlines can be
845+faster" speedup option called ``inline``. While the use of inlines can be
751846 appropriate (for example as a means of replacing macros, see Chapter 12), it
752847 very often is not. Abundant use of the inline keyword leads to a much bigger
753848 kernel, 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
771866 something it would have done anyway.
772867
773868
774− Chapter 16: Function return values and names
869+16) Function return values and names
870+------------------------------------
775871
776872 Functions can return values of many different kinds, and one of the
777873 most common is a value indicating whether the function succeeded or
778874 failed. 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,
780876 non-zero = success).
781877
782878 Mixing up these two sorts of representations is a fertile source of
783879 difficult-to-find bugs. If the C language included a strong distinction
784880 between integers and booleans then the compiler would find these mistakes
785881 for us... but it doesn't. To help prevent such bugs, always follow this
786−convention:
882+convention::
787883
788884 If the name of a function is an action or an imperative command,
789885 the function should return an error-code integer. If the name
790886 is a predicate, the function should return a "succeeded" boolean.
791887
792−For example, "add work" is a command, and the add_work() function returns 0
793−for success or -EBUSY for failure. In the same way, "PCI device present" is
888+For example, ``add work`` is a command, and the add_work() function returns 0
889+for success or -EBUSY for failure. In the same way, ``PCI device present`` is
794890 a predicate, and the pci_dev_present() function returns 1 if it succeeds in
795891 finding a matching device or 0 if it doesn't.
796892
@@ -805,17 +901,22 @@ result. Typical examples would be functions that return pointers; they use · 8 unmodified lines
805901 NULL or the ERR_PTR mechanism to report failure.
806902
807903
808− Chapter 17: Don't re-invent the kernel macros
904+17) Don't re-invent the kernel macros
905+-------------------------------------
809906
810907 The header file include/linux/kernel.h contains a number of macros that
811908 you should use, rather than explicitly coding some variant of them yourself.
812909 For example, if you need to calculate the length of an array, take advantage
813910 of the macro
814911
912+.. code-block:: c
913+
815914 #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
816915
817916 Similarly, if you need to calculate the size of some structure member, use
818917
918+.. code-block:: c
919+
819920 #define FIELD_SIZEOF(t, f) (sizeof(((t*)0)->f))
820921
821922 There 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
823924 defined that you shouldn't reproduce in your code.
824925
825926
826− Chapter 18: Editor modelines and other cruft
927+18) Editor modelines and other cruft
928+------------------------------------
827929
828930 Some editors can interpret configuration information embedded in source files,
829931 indicated with special markers. For example, emacs interprets lines marked
830932 like this:
831933
934+.. code-block:: c
935+
832936 -*- mode: c -*-
833937
834938 Or like this:
835939
940+.. code-block:: c
941+
836942 /*
837943 Local Variables:
838944 compile-command: "gcc -DMAGIC_DEBUG_FLAG foo.c"
@@ -841,6 +947,8 @@ Or like this: · 2 unmodified lines
841947
842948 Vim interprets markers that look like this:
843949
950+.. code-block:: c
951+
844952 /* vim:set sw=8 noet */
845953
846954 Do 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
850958 work correctly.
851959
852960
853− Chapter 19: Inline assembly
961+19) Inline assembly
962+-------------------
854963
855964 In architecture-specific code, you may need to use inline assembly to interface
856965 with 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
863972
864973 Large, non-trivial assembly functions should go in .S files, with corresponding
865974 C prototypes defined in C header files. The C prototypes for assembly
866−functions should use "asmlinkage".
975+functions should use ``asmlinkage``.
867976
868977 You may need to mark your asm statement as volatile, to prevent GCC from
869978 removing 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
874983 string, and end each string except the last with \n\t to properly indent the
875984 next instruction in the assembly output:
876985
986+.. code-block:: c
987+
877988 asm ("magic %reg1, #42\n\t"
878989 "more_magic %reg2, %reg3"
879990 : /* outputs */ : /* inputs */ : /* clobbers */);
880991
881992
882− Chapter 20: Conditional Compilation
993+20) Conditional Compilation
994+---------------------------
883995
884996 Wherever possible, don't use preprocessor conditionals (#if, #ifdef) in .c
885997 files; doing so makes code harder to read and logic harder to follow. Instead,
@@ -903,6 +1015,8 @@ unused, delete it.) · 17 unmodified lines
9031015 Within code, where possible, use the IS_ENABLED macro to convert a Kconfig
9041016 symbol into a C boolean expression, and use it in a normal C conditional:
9051017
1018+.. code-block:: c
1019+
9061020 if (IS_ENABLED(CONFIG_SOMETHING)) {
9071021 ...
9081022 }
@@ -918,12 +1032,15 @@ At the end of any non-trivial #if or #ifdef block (more than a few lines), · 9 unmodified lines
9181032 place a comment after the #endif on the same line, noting the conditional
9191033 expression used. For instance:
9201034
1035+.. code-block:: c
1036+
9211037 #ifdef CONFIG_SOMETHING
9221038 ...
9231039 #endif /* CONFIG_SOMETHING */
9241040
9251041
926− Appendix I: References
1042+Appendix I) References
1043+----------------------
9271044
9281045 The C Programming Language, Second Edition
9291046 by 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
9431060
9441061 Kernel CodingStyle, by greg@kroah.com at OLS 2002:
9451062 http://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
699699 dma_addr_t mapping;
700700
701701 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)) {
703703 /*
704704 * reduce current DMA mapping usage,
705705 * delay and try again later or
@@ -931,10 +931,8 @@ to "Closing". · 225 unmodified lines
931931
932932 1) Struct scatterlist requirements.
933933
934− Don't invent the architecture specific struct scatterlist; just use
935− <asm-generic/scatterlist.h>. You need to enable
936− CONFIG_NEED_SG_DMA_LENGTH if the architecture supports IOMMUs
937− (including software IOMMU).
934+ You need to enable CONFIG_NEED_SG_DMA_LENGTH if the architecture
935+ supports IOMMUs (including software IOMMU).
938936
939937 2) ARCH_DMA_MINALIGN
940938
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
277277 recommended that you never use these unless you really know what the
278278 cache width is.
279279
280+dma_addr_t
281+dma_map_resource(struct device *dev, phys_addr_t phys_addr, size_t size,
282+ enum dma_data_direction dir, unsigned long attrs)
283+
284+void
285+dma_unmap_resource(struct device *dev, dma_addr_t addr, size_t size,
286+ enum dma_data_direction dir, unsigned long attrs)
287+
288+API for mapping and unmapping for MMIO resources. All the notes and
289+warnings for the other mapping APIs apply here. The API should only be
290+used to map device MMIO resources, mapping of RAM is not permitted.
291+
280292 int
281293 dma_mapping_error(struct device *dev, dma_addr_t dma_addr)
282294
283−In some circumstances dma_map_single() and dma_map_page() will fail to create
284−a mapping. A driver can check for these errors by testing the returned
285−DMA address with dma_mapping_error(). A non-zero return value means the mapping
286−could not be created and the driver should take appropriate action (e.g.
287−reduce current DMA mapping usage or delay and try again later).
295+In some circumstances dma_map_single(), dma_map_page() and dma_map_resource()
296+will fail to create a mapping. A driver can check for these errors by testing
297+the returned DMA address with dma_mapping_error(). A non-zero return value
298+means the mapping could not be created and the driver should take appropriate
299+action (e.g. reduce current DMA mapping usage or delay and try again later).
288300
289301 int
290302 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
126126
127127 NOTE: At the moment DMA_ATTR_ALLOC_SINGLE_PAGES is only implemented on ARM,
128128 though ARM64 patches will likely be posted soon.
129+
130+DMA_ATTR_NO_WARN
131+----------------
132+
133+This tells the DMA-mapping subsystem to suppress allocation failure reports
134+(similarly to __GFP_NOWARN).
135+
136+On some architectures allocation failures are reported with error messages
137+to the system logs. Although this can help to identify and debug problems,
138+drivers which handle failures (eg, retry later) have no problems with them,
139+and can actually flood the system logs with error messages that aren't any
140+problem at all, depending on the implementation of the retry mechanism.
141+
142+So, this provides a way for drivers to avoid those error messages on calls
143+where allocation failures are not a problem, and shouldn't bother the logs.
144+
145+NOTE: 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
66 # To add a new book the only step required is to add the book to the
77 # list of DOCBOOKS.
88
9−DOCBOOKS := z8530book.xml device-drivers.xml \
9+DOCBOOKS := z8530book.xml \
1010 kernel-hacking.xml kernel-locking.xml deviceiobook.xml \
1111 writing_usb_driver.xml networking.xml \
1212 kernel-api.xml filesystems.xml lsm.xml usb.xml kgdb.xml \
1313 gadget.xml libata.xml mtdnand.xml librs.xml rapidio.xml \
1414 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 \
1616 alsa-driver-api.xml writing-an-alsa-driver.xml \
1717 tracepoint.xml w1.xml \
1818 writing_musb_glue_layer.xml crypto-API.xml iio.xml
@@ -22,9 +22,15 @@ ifeq ($(DOCBOOKS),) · 3 unmodified lines
2222 # Skip DocBook build if the user explicitly requested no DOCBOOKS.
2323 .DEFAULT:
2424 @echo " SKIP DocBook $@ target (DOCBOOKS=\"\" specified)."
25+else
26+ifneq ($(SPHINXDIRS),)
2527
28+# Skip DocBook build if the user explicitly requested a sphinx dir
29+.DEFAULT:
30+ @echo " SKIP DocBook $@ target (SPHINXDIRS specified)."
2631 else
2732
33+
2834 ###
2935 # The build process is as follows (targets):
3036 # (xmldocs) [by docproc]
@@ -66,6 +72,7 @@ installmandocs: mandocs · 35 unmodified lines
6672
6773 # no-op for the DocBook toolchain
6874 epubdocs:
75+latexdocs:
6976
7077 ###
7178 #External programs used
@@ -221,6 +228,7 @@ silent_gen_xml = : · 149 unmodified lines
221228 echo "</programlisting>") > $@
222229
223230 endif # DOCBOOKS=""
231+endif # SPHINDIR=...
224232
225233 ###
226234 # 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
797797 include/linux/crypto.h and their definition can be seen below.
798798 The former function registers a single transformation, while
799799 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.
801802 </para>
802803
803804 <programlisting>
@@ -822,18 +823,31 @@ kernel crypto API | Caller · 18 unmodified lines
822823 </para>
823824
824825 <para>
825− The bulk registration / unregistration functions require
826− that struct crypto_alg is an array of count size. These
827− functions simply loop over that array and register /
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.
826+ The bulk registration/unregistration functions
827+ register/unregister each transformation in the given array of
828+ length count. They handle errors as follows:
836829 </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+
837851 </sect1>
838852
839853 <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−<!--
81−X!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
121−X!Edrivers/base/attribute_container.c
122−-->
123−!Edrivers/base/dd.c
124−<!--
125−X!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
181−X!Edrivers/acpi/sleep/main.c
182−X!Edrivers/acpi/sleep/wakeup.c
183−X!Edrivers/acpi/motherboard.c
184−X!Edrivers/acpi/bus.c
185−-->
186−!Edrivers/acpi/scan.c
187−!Idrivers/acpi/scan.c
188−<!-- No correct structured comments
189−X!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
195−X!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
250−X!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>
306−X!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>
316−X!Idrivers/video/fbgen.c
317− </sect1>
318−KAO -->
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
331−X!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
483483 <function>get_user()</function>
484484 /
485485 <function>put_user()</function>
486− <filename class="headerfile">include/asm/uaccess.h</filename>
486+ <filename class="headerfile">include/linux/uaccess.h</filename>
487487 </title>
488488
489489 <para>
Documentation/HOWTO+98−50
@@ -1,5 +1,5 @@
11 HOWTO do Linux kernel development
2−---------------------------------
2+=================================
33
44 This is the be-all, end-all document on this topic. It contains
55 instructions 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
2828 you plan to do low-level development for that architecture. Though they
2929 are not a good substitute for a solid C education and/or years of
3030 experience, the following books are good for, if anything, reference:
31+
3132 - "The C Programming Language" by Kernighan and Ritchie [Prentice Hall]
3233 - "Practical C Programming" by Steve Oualline [O'Reilly]
3334 - "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
6465 their statements on legal matters.
6566
6667 For common questions and answers about the GPL, please see:
67− http://www.gnu.org/licenses/gpl-faq.html
68+
69+ https://www.gnu.org/licenses/gpl-faq.html
6870
6971
7072 Documentation
@@ -82,96 +84,118 @@ linux-api@vger.kernel.org. · 11 unmodified lines
8284
8385 Here is a list of files that are in the kernel source tree that are
8486 required reading:
87+
8588 README
8689 This file gives a short background on the Linux kernel and describes
8790 what is necessary to do to configure and build the kernel. People
8891 who are new to the kernel should start here.
8992
90− Documentation/Changes
93+ :ref:`Documentation/Changes <changes>`
9194 This file gives a list of the minimum levels of various software
9295 packages that are necessary to build and run the kernel
9396 successfully.
9497
95− Documentation/CodingStyle
98+ :ref:`Documentation/CodingStyle <codingstyle>`
9699 This describes the Linux kernel coding style, and some of the
97100 rationale behind it. All new code is expected to follow the
98101 guidelines in this document. Most maintainers will only accept
99102 patches if these rules are followed, and many people will only
100103 review code if it is in the proper style.
101104
102− Documentation/SubmittingPatches
103− Documentation/SubmittingDrivers
105+ :ref:`Documentation/SubmittingPatches <submittingpatches>` and :ref:`Documentation/SubmittingDrivers <submittingdrivers>`
104106 These files describe in explicit detail how to successfully create
105107 and send a patch, including (but not limited to):
108+
106109 - Email contents
107110 - Email format
108111 - Who to send it to
112+
109113 Following these rules will not guarantee success (as all patches are
110114 subject to scrutiny for content and style), but not following them
111115 will almost always prevent it.
112116
113117 Other excellent descriptions of how to create patches properly are:
118+
114119 "The Perfect Patch"
115− http://www.ozlabs.org/~akpm/stuff/tpp.txt
120+ https://www.ozlabs.org/~akpm/stuff/tpp.txt
121+
116122 "Linux kernel patch submission format"
117123 http://linux.yyz.us/patch-format.html
118124
119− Documentation/stable_api_nonsense.txt
125+ :ref:`Documentation/stable_api_nonsense.txt <stable_api_nonsense>`
120126 This file describes the rationale behind the conscious decision to
121127 not have a stable API within the kernel, including things like:
128+
122129 - Subsystem shim-layers (for compatibility?)
123130 - Driver portability between Operating Systems.
124131 - Mitigating rapid change within the kernel source tree (or
125132 preventing rapid change)
133+
126134 This document is crucial for understanding the Linux development
127135 philosophy and is very important for people moving to Linux from
128136 development on other Operating Systems.
129137
130− Documentation/SecurityBugs
138+ :ref:`Documentation/SecurityBugs <securitybugs>`
131139 If you feel you have found a security problem in the Linux kernel,
132140 please follow the steps in this document to help notify the kernel
133141 developers, and help solve the issue.
134142
135− Documentation/ManagementStyle
143+ :ref:`Documentation/ManagementStyle <managementstyle>`
136144 This document describes how Linux kernel maintainers operate and the
137145 shared ethos behind their methodologies. This is important reading
138146 for anyone new to kernel development (or anyone simply curious about
139147 it), as it resolves a lot of common misconceptions and confusion
140148 about the unique behavior of kernel maintainers.
141149
142− Documentation/stable_kernel_rules.txt
150+ :ref:`Documentation/stable_kernel_rules.txt <stable_kernel_rules>`
143151 This file describes the rules on how the stable kernel releases
144152 happen, and what to do if you want to get a change into one of these
145153 releases.
146154
147− Documentation/kernel-docs.txt
155+ :ref:`Documentation/kernel-docs.txt <kernel_docs>`
148156 A list of external documentation that pertains to kernel
149157 development. Please consult this list if you do not find what you
150158 are looking for within the in-kernel documentation.
151159
152− Documentation/applying-patches.txt
160+ :ref:`Documentation/applying-patches.txt <applying_patches>`
153161 A good introduction describing exactly what a patch is and how to
154162 apply it to the different development branches of the kernel.
155163
156164 The kernel also has a large number of documents that can be
157−automatically generated from the source code itself. This includes a
165+automatically generated from the source code itself or from
166+ReStructuredText markups (ReST), like this one. This includes a
158167 full description of the in-kernel API, and rules on how to handle
159−locking properly. The documents will be created in the
160−Documentation/DocBook/ directory and can be generated as PDF,
161−Postscript, HTML, and man pages by running:
168+locking properly.
169+
170+All such documents can be generated as PDF or HTML by running::
171+
162172 make pdfdocs
163− make psdocs
164173 make htmldocs
165− make mandocs
174+
166175 respectively from the main kernel source directory.
167176
177+The documents that uses ReST markup will be generated at Documentation/output.
178+They can also be generated on LaTeX and ePub formats with::
179+
180+ make latexdocs
181+ make epubdocs
182+
183+Currently, there are some documents written on DocBook that are in
184+the process of conversion to ReST. Such documents will be created in the
185+Documentation/DocBook/ directory and can be generated also as
186+Postscript or man pages by running::
187+
188+ make psdocs
189+ make mandocs
168190
169191 Becoming A Kernel Developer
170192 ---------------------------
171193
172194 If you do not know anything about Linux kernel development, you should
173195 look at the Linux KernelNewbies project:
174− http://kernelnewbies.org
196+
197+ https://kernelnewbies.org
198+
175199 It consists of a helpful mailing list where you can ask almost any type
176200 of basic kernel development question (make sure to search the archives
177201 first, before asking something that has already been answered in the
@@ -187,7 +211,9 @@ apply a patch. · 9 unmodified lines
187211 If you do not know where you want to start, but you want to look for
188212 some task to start doing to join into the kernel development community,
189213 go to the Linux Kernel Janitor's project:
190− http://kernelnewbies.org/KernelJanitors
214+
215+ https://kernelnewbies.org/KernelJanitors
216+
191217 It is a great place to start. It describes a list of relatively simple
192218 problems that need to be cleaned up and fixed within the Linux kernel
193219 source 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
199225 tree, but need some help getting it in the proper form, the
200226 kernel-mentors project was created to help you out with this. It is a
201227 mailing list, and can be found at:
202− http://selenic.com/mailman/listinfo/kernel-mentors
228+
229+ https://selenic.com/mailman/listinfo/kernel-mentors
203230
204231 Before making any actual modifications to the Linux kernel code, it is
205232 imperative 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
209236 Cross-Reference project, which is able to present source code in a
210237 self-referential, indexed webpage format. An excellent up-to-date
211238 repository of the kernel code may be found at:
239+
212240 http://lxr.free-electrons.com/
213241
214242
@@ -218,6 +246,7 @@ The development process · 3 unmodified lines
218246 Linux kernel development process currently consists of a few different
219247 main kernel "branches" and lots of different subsystem-specific kernel
220248 branches. These different branches are:
249+
221250 - main 4.x kernel tree
222251 - 4.x.y -stable kernel tree
223252 - 4.x -git kernel patches
@@ -227,14 +256,15 @@ branches. These different branches are: · 3 unmodified lines
227256 4.x kernel tree
228257 -----------------
229258 4.x kernels are maintained by Linus Torvalds, and can be found on
230−kernel.org in the pub/linux/kernel/v4.x/ directory. Its development
259+https://kernel.org in the pub/linux/kernel/v4.x/ directory. Its development
231260 process is as follows:
261+
232262 - As soon as a new kernel is released a two weeks window is open,
233263 during this period of time maintainers can submit big diffs to
234264 Linus, usually the patches that have already been included in the
235265 -next kernel for a few weeks. The preferred way to submit big changes
236266 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 just
267+ can be found at https://git-scm.com/) but plain patches are also just
238268 fine.
239269 - After two weeks a -rc1 kernel is released it is now possible to push
240270 only patches that do not include new features that could affect the
@@ -253,9 +283,10 @@ process is as follows: · 12 unmodified lines
253283
254284 It is worth mentioning what Andrew Morton wrote on the linux-kernel
255285 mailing list about kernel releases:
256− "Nobody knows when a kernel will be released, because it's
286+
287+ *"Nobody knows when a kernel will be released, because it's
257288 released according to perceived bug status, not according to a
258− preconceived timeline."
289+ preconceived timeline."*
259290
260291 4.x.y -stable kernel tree
261292 -------------------------
@@ -301,7 +332,7 @@ submission and other already ongoing work are avoided. · 39 unmodified lines
301332 Most of these repositories are git trees, but there are also other SCMs
302333 in use, or patch queues being published as quilt series. Addresses of
303334 these subsystem repositories are listed in the MAINTAINERS file. Many
304−of them can be browsed at http://git.kernel.org/.
335+of them can be browsed at https://git.kernel.org/.
305336
306337 Before a proposed patch is committed to such a subsystem tree, it is
307338 subject 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
310341 interface which shows patch postings, any comments on a patch or
311342 revisions to it, and maintainers can mark patches as under review,
312343 accepted, or rejected. Most of these patchwork sites are listed at
313−http://patchwork.kernel.org/.
344+https://patchwork.kernel.org/.
314345
315346 4.x -next kernel tree for integration tests
316347 -------------------------------------------
@@ -318,7 +349,8 @@ Before updates from subsystem trees are merged into the mainline 4.x · 1 unmodified line
318349 tree, they need to be integration-tested. For this purpose, a special
319350 testing repository exists into which virtually all subsystem trees are
320351 pulled on an almost daily basis:
321− http://git.kernel.org/?p=linux/kernel/git/next/linux-next.git
352+
353+ https://git.kernel.org/?p=linux/kernel/git/next/linux-next.git
322354
323355 This way, the -next kernel gives a summary outlook onto what will be
324356 expected 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
328360 Bug Reporting
329361 -------------
330362
331−bugzilla.kernel.org is where the Linux kernel developers track kernel
363+https://bugzilla.kernel.org is where the Linux kernel developers track kernel
332364 bugs. Users are encouraged to report all bugs that they find in this
333365 tool. For details on how to use the kernel bugzilla, please see:
334− http://bugzilla.kernel.org/page.cgi?id=faq.html
366+
367+ https://bugzilla.kernel.org/page.cgi?id=faq.html
335368
336369 The file REPORTING-BUGS in the main kernel source directory has a good
337370 template 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
349382 bugs is one of the best ways to get merits among other developers, because
350383 not many people like wasting time fixing other people's bugs.
351384
352−To work in the already reported bug reports, go to http://bugzilla.kernel.org.
385+To work in the already reported bug reports, go to https://bugzilla.kernel.org.
353386 If you want to be advised of the future bug reports, you can subscribe to the
354387 bugme-new mailing list (only new bug reports are mailed here) or to the
355388 bugme-janitor mailing list (every change in the bugzilla is mailed here)
356389
357− http://lists.linux-foundation.org/mailman/listinfo/bugme-new
358− http://lists.linux-foundation.org/mailman/listinfo/bugme-janitors
390+ https://lists.linux-foundation.org/mailman/listinfo/bugme-new
391+
392+ https://lists.linux-foundation.org/mailman/listinfo/bugme-janitors
359393
360394
361395
@@ -365,10 +399,14 @@ Mailing lists · 3 unmodified lines
365399 As some of the above documents describe, the majority of the core kernel
366400 developers participate on the Linux Kernel Mailing list. Details on how
367401 to subscribe and unsubscribe from the list can be found at:
402+
368403 http://vger.kernel.org/vger-lists.html#linux-kernel
404+
369405 There are archives of the mailing list on the web in many different
370406 places. Use a search engine to find these archives. For example:
407+
371408 http://dir.gmane.org/gmane.linux.kernel
409+
372410 It is highly recommended that you search the archives about the topic
373411 you want to bring up, before you post it to the list. A lot of things
374412 already discussed in detail are only recorded at the mailing list
@@ -381,11 +419,13 @@ groups. · 6 unmodified lines
381419
382420 Many of the lists are hosted on kernel.org. Information on them can be
383421 found at:
422+
384423 http://vger.kernel.org/vger-lists.html
385424
386425 Please remember to follow good behavioral habits when using the lists.
387426 Though a bit cheesy, the following URL has some simple guidelines for
388427 interacting with the list (or any list):
428+
389429 http://www.albion.com/netiquette/
390430
391431 If 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
400440 writing at the top of the mail.
401441
402442 If you add patches to your mail, make sure they are plain readable text
403−as stated in Documentation/SubmittingPatches. Kernel developers don't
404−want to deal with attachments or compressed patches; they may want
405−to comment on individual lines of your patch, which works only that way.
406−Make sure you use a mail program that does not mangle spaces and tab
407−characters. A good first test is to send the mail to yourself and try
408−to apply your own patch by yourself. If that doesn't work, get your
409−mail program fixed or change it until it works.
443+as stated in Documentation/SubmittingPatches.
444+Kernel developers don't want to deal with
445+attachments or compressed patches; they may want to comment on
446+individual lines of your patch, which works only that way. Make sure you
447+use a mail program that does not mangle spaces and tab characters. A
448+good first test is to send the mail to yourself and try to apply your
449+own patch by yourself. If that doesn't work, get your mail program fixed
450+or change it until it works.
410451
411452 Above all, please remember to show respect to other subscribers.
412453
@@ -418,6 +459,7 @@ The goal of the kernel community is to provide the best possible kernel · 5 unmodified lines
418459 there is. When you submit a patch for acceptance, it will be reviewed
419460 on its technical merits and those alone. So, what should you be
420461 expecting?
462+
421463 - criticism
422464 - comments
423465 - requests for change
@@ -432,6 +474,7 @@ If there are no responses to your posting, wait a few days and try · 8 unmodified lines
432474 again, sometimes things get lost in the huge volume.
433475
434476 What should you not do?
477+
435478 - expect your patch to be accepted without question
436479 - become defensive
437480 - ignore comments
@@ -445,8 +488,8 @@ Remember, being wrong is acceptable as long as you are willing to work · 7 unmodified lines
445488 toward a solution that is right.
446489
447490 It is normal that the answers to your first patch might simply be a list
448−of a dozen things you should correct. This does _not_ imply that your
449−patch will not be accepted, and it is _not_ meant against you
491+of a dozen things you should correct. This does **not** imply that your
492+patch will not be accepted, and it is **not** meant against you
450493 personally. Simply correct all issues raised against your patch and
451494 resend it.
452495
@@ -457,7 +500,9 @@ Differences between the kernel community and corporate structures · 4 unmodified lines
457500 The kernel community works differently than most traditional corporate
458501 development environments. Here are a list of things that you can try to
459502 do to avoid problems:
503+
460504 Good things to say regarding your proposed changes:
505+
461506 - "This solves multiple problems."
462507 - "This deletes 2000 lines of code."
463508 - "Here is a patch that explains what I am trying to describe."
@@ -466,6 +511,7 @@ do to avoid problems: · 2 unmodified lines
466511 - "This increases performance on typical machines..."
467512
468513 Bad things you should avoid saying:
514+
469515 - "We did it this way in AIX/ptx/Solaris, so therefore it must be
470516 good..."
471517 - "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
527573 and simplify (or simply re-order) patches before submitting them.
528574
529575 Here is an analogy from kernel developer Al Viro:
530− "Think of a teacher grading homework from a math student. The
576+
577+ *"Think of a teacher grading homework from a math student. The
531578 teacher does not want to see the student's trials and errors
532579 before they came up with the solution. They want to see the
533580 cleanest, most elegant answer. A good student knows this, and
534581 would never submit her intermediate work before the final
535− solution."
582+ solution.*
536583
537− The same is true of kernel development. The maintainers and
584+ *The same is true of kernel development. The maintainers and
538585 reviewers do not want to see the thought process behind the
539586 solution to the problem one is solving. They want to see a
540− simple and elegant solution."
587+ simple and elegant solution."*
541588
542589 It may be challenging to keep the balance between presenting an elegant
543590 solution 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
565612 the text in your email. This information will become the ChangeLog
566613 information for the patch, and will be preserved for everyone to see for
567614 all time. It should describe the patch completely, containing:
615+
568616 - why the change is necessary
569617 - the overall design approach in the patch
570618 - implementation details
@@ -572,12 +620,11 @@ all time. It should describe the patch completely, containing: · 1 unmodified line
572620
573621 For more details on what this should all look like, please see the
574622 ChangeLog section of the document:
623+
575624 "The Perfect Patch"
576625 http://www.ozlabs.org/~akpm/stuff/tpp.txt
577626
578627
579−
580−
581628 All of these things are sometimes very hard to do. It can take years to
582629 perfect these practices (if at all). It's a continuous process of
583630 improvement that requires a lot of patience and determination. But
@@ -588,8 +635,9 @@ start exactly where you are now. · 4 unmodified lines
588635
589636
590637 ----------
638+
591639 Thanks to Paolo Ciarrocchi who allowed the "Development Process"
592−(http://lwn.net/Articles/94386/) section
640+(https://lwn.net/Articles/94386/) section
593641 to be based on text he had written, and to Randy Dunlap and Gerrit
594642 Huizenga for some of the list of things you should and should not say.
595643 Also thanks to Pat Mochel, Hanna Linder, Randy Dunlap, Kay Sievers,
Documentation/Makefile+1−3
@@ -1,3 +1 @@
1−subdir-y := accounting auxdisplay blackfin \
2− filesystems filesystems ia64 laptops mic misc-devices \
3− networking pcmcia prctl ptp timers vDSO watchdog
1+subdir-y :=
Documentation/Makefile.sphinx+49−15
@@ -5,6 +5,9 @@ · 4 unmodified lines
55 # You can set these variables from the command line.
66 SPHINXBUILD = sphinx-build
77 SPHINXOPTS =
8+SPHINXDIRS = .
9+_SPHINXDIRS = $(patsubst $(srctree)/Documentation/%/conf.py,%,$(wildcard $(srctree)/Documentation/*/conf.py))
10+SPHINX_CONF = conf.py
811 PAPER =
912 BUILDDIR = $(obj)/output
1013
@@ -25,38 +28,62 @@ else ifneq ($(DOCBOOKS),) · 14 unmodified lines
2528
2629 else # HAVE_SPHINX
2730
28−# User-friendly check for rst2pdf
29−HAVE_RST2PDF := $(shell if python -c "import rst2pdf" >/dev/null 2>&1; then echo 1; else echo 0; fi)
31+# User-friendly check for pdflatex
32+HAVE_PDFLATEX := $(shell if which xelatex >/dev/null 2>&1; then echo 1; else echo 0; fi)
3033
3134 # Internal variables.
3235 PAPEROPT_a4 = -D latex_paper_size=a4
3336 PAPEROPT_letter = -D latex_paper_size=letter
3437 KERNELDOC = $(srctree)/scripts/kernel-doc
3538 KERNELDOC_CONF = -D kerneldoc_srctree=$(srctree) -D kerneldoc_bin=$(KERNELDOC)
36−ALLSPHINXOPTS = -D version=$(KERNELVERSION) -D release=$(KERNELRELEASE) -d $(BUILDDIR)/.doctrees $(KERNELDOC_CONF) $(PAPEROPT_$(PAPER)) -c $(srctree)/$(src) $(SPHINXOPTS) $(srctree)/$(src)
39+ALLSPHINXOPTS = $(KERNELDOC_CONF) $(PAPEROPT_$(PAPER)) $(SPHINXOPTS)
3740 # the i18n builder cannot share the environment and doctrees with the others
3841 I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
3942
40−quiet_cmd_sphinx = SPHINX $@
41− cmd_sphinx = BUILDDIR=$(BUILDDIR) $(SPHINXBUILD) -b $2 $(ALLSPHINXOPTS) $(BUILDDIR)/$2
43+# commands; the 'cmd' from scripts/Kbuild.include is not *loopable*
44+loop_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+
54+quiet_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);
4265
4366 htmldocs:
44− $(MAKE) BUILDDIR=$(BUILDDIR) -f $(srctree)/Documentation/media/Makefile $@
45− $(call cmd,sphinx,html)
67+ @$(foreach var,$(SPHINXDIRS),$(call loop_cmd,sphinx,html,$(var),,$(var)))
4668
47−pdfdocs:
48−ifeq ($(HAVE_RST2PDF),0)
49− $(warning The Python 'rst2pdf' module was not found. Make sure you have the module installed to produce PDF output.)
69+latexdocs:
70+ifeq ($(HAVE_PDFLATEX),0)
71+ $(warning The 'xelatex' command was not found. Make sure you have it installed and in PATH to produce PDF output.)
5072 @echo " SKIP Sphinx $@ target."
51−else # HAVE_RST2PDF
52− $(call cmd,sphinx,pdf)
53−endif # HAVE_RST2PDF
73+else # HAVE_PDFLATEX
74+ @$(foreach var,$(SPHINXDIRS),$(call loop_cmd,sphinx,latex,$(var),latex,$(var)))
75+endif # HAVE_PDFLATEX
76+
77+pdfdocs: latexdocs
78+ifneq ($(HAVE_PDFLATEX),0)
79+ $(foreach var,$(SPHINXDIRS), $(MAKE) PDFLATEX=xelatex LATEXOPTS="-interaction=nonstopmode" -C $(BUILDDIR)/$(var)/latex)
80+endif # HAVE_PDFLATEX
5481
5582 epubdocs:
56− $(call cmd,sphinx,epub)
83+ @$(foreach var,$(SPHINXDIRS),$(call loop_cmd,sphinx,epub,$(var),epub,$(var)))
5784
5885 xmldocs:
59− $(call cmd,sphinx,xml)
86+ @$(foreach var,$(SPHINXDIRS),$(call loop_cmd,sphinx,xml,$(var),xml,$(var)))
6087
6188 # no-ops for the Sphinx toolchain
6289 sgmldocs:
@@ -72,7 +99,14 @@ endif # HAVE_SPHINX · 9 unmodified lines
7299 dochelp:
73100 @echo ' Linux kernel internal documentation in different formats (Sphinx):'
74101 @echo ' htmldocs - HTML'
102+ @echo ' latexdocs - LaTeX'
75103 @echo ' pdfdocs - PDF'
76104 @echo ' epubdocs - EPUB'
77105 @echo ' xmldocs - XML'
78106 @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:
12
2− Linux kernel management style
3+Linux kernel management style
4+=============================
35
46 This is a short document describing the preferred (or made up, depending
57 on who you ask) management style for the linux kernel. It's meant to
68 mirror the CodingStyle document to some degree, and mainly written to
7−avoid answering (*) the same (or similar) questions over and over again.
9+avoid answering [#f1]_ the same (or similar) questions over and over again.
810
911 Management style is very personal and much harder to quantify than
1012 simple 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
1416 Btw, when talking about "kernel manager", it's all about the technical
1517 lead persons, not the people who do traditional management inside
1618 companies. If you sign purchase orders or you have any clue about the
17−budget of your group, you're almost certainly not a kernel manager.
18−These suggestions may or may not apply to you.
19+budget of your group, you're almost certainly not a kernel manager.
20+These suggestions may or may not apply to you.
1921
2022 First off, I'd suggest buying "Seven Habits of Highly Effective
21−People", and NOT read it. Burn it, it's a great symbolic gesture.
23+People", and NOT read it. Burn it, it's a great symbolic gesture.
2224
23−(*) This document does so not so much by answering the question, but by
24−making it painfully obvious to the questioner that we don't have a clue
25−to what the answer is.
25+.. [#f1] This document does so not so much by answering the question, but by
26+ making it painfully obvious to the questioner that we don't have a clue
27+ to what the answer is.
2628
2729 Anyway, here goes:
2830
31+.. _decisions:
2932
30− Chapter 1: Decisions
33+1) Decisions
34+------------
3135
3236 Everybody thinks managers make decisions, and that decision-making is
3337 important. The bigger and more painful the decision, the bigger the
3438 manager must be to make it. That's very deep and obvious, but it's not
35−actually true.
39+actually true.
3640
37−The name of the game is to _avoid_ having to make a decision. In
41+The name of the game is to **avoid** having to make a decision. In
3842 particular, if somebody tells you "choose (a) or (b), we really need you
3943 to decide on this", you're in trouble as a manager. The people you
4044 manage had better know the details better than you, so if they come to
4145 you for a technical decision, you're screwed. You're clearly not
42−competent to make that decision for them.
46+competent to make that decision for them.
4347
4448 (Corollary:if the people you manage don't know the details better than
45−you, you're also screwed, although for a totally different reason.
46−Namely that you are in the wrong job, and that _they_ should be managing
47−your brilliance instead).
49+you, you're also screwed, although for a totally different reason.
50+Namely that you are in the wrong job, and that **they** should be managing
51+your brilliance instead).
4852
49−So the name of the game is to _avoid_ decisions, at least the big and
53+So the name of the game is to **avoid** decisions, at least the big and
5054 painful ones. Making small and non-consequential decisions is fine, and
5155 makes you look like you know what you're doing, so what a kernel manager
5256 needs to do is to turn the big and painful ones into small things where
53−nobody really cares.
57+nobody really cares.
5458
5559 It helps to realize that the key difference between a big decision and a
5660 small one is whether you can fix your decision afterwards. Any decision
5761 can be made small by just always making sure that if you were wrong (and
58−you _will_ be wrong), you can always undo the damage later by
62+you **will** be wrong), you can always undo the damage later by
5963 backtracking. 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.
6165
6266 And people will even see that as true leadership (*cough* bullshit
6367 *cough*).
@@ -65,10 +69,10 @@ And people will even see that as true leadership (*cough* bullshit · 1 unmodified line
6569 Thus the key to avoiding big decisions becomes to just avoiding to do
6670 things that can't be undone. Don't get ushered into a corner from which
6771 you cannot escape. A cornered rat may be dangerous - a cornered manager
68−is just pitiful.
72+is just pitiful.
6973
7074 It turns out that since nobody would be stupid enough to ever really let
71−a kernel manager have huge fiscal responsibility _anyway_, it's usually
75+a kernel manager have huge fiscal responsibility **anyway**, it's usually
7276 fairly easy to backtrack. Since you're not going to be able to waste
7377 huge amounts of money that you might not be able to repay, the only
7478 thing 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
7680 incompetent nincompoop, say you're sorry, and undo all the worthless
7781 work you had people work on for the last year. Suddenly the decision
7882 you made a year ago wasn't a big decision after all, since it could be
79−easily undone.
83+easily undone.
8084
8185 It turns out that some people have trouble with this approach, for two
8286 reasons:
87+
8388 - admitting you were an idiot is harder than it looks. We all like to
8489 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.
8691 - having somebody tell you that what you worked on for the last year
8792 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 just
93+ too, and while the actual **work** was easy enough to undo by just
8994 deleting it, you may have irrevocably lost the trust of that
9095 engineer. And remember: "irrevocable" was what we tried to avoid in
9196 the first place, and your decision ended up being a big one after
92− all.
97+ all.
9398
9499 Happily, both of these reasons can be mitigated effectively by just
95100 admitting up-front that you don't have a friggin' clue, and telling
96101 people ahead of the fact that your decision is purely preliminary, and
97102 might be the wrong thing. You should always reserve the right to change
98−your mind, and make people very _aware_ of that. And it's much easier
99−to admit that you are stupid when you haven't _yet_ done the really
103+your mind, and make people very **aware** of that. And it's much easier
104+to admit that you are stupid when you haven't **yet** done the really
100105 stupid thing.
101106
102107 Then, when it really does turn out to be stupid, people just roll their
103−eyes and say "Oops, he did it again".
108+eyes and say "Oops, he did it again".
104109
105110 This preemptive admission of incompetence might also make the people who
106111 actually do the work also think twice about whether it's worth doing or
107−not. After all, if _they_ aren't certain whether it's a good idea, you
112+not. After all, if **they** aren't certain whether it's a good idea, you
108113 sure as hell shouldn't encourage them by promising them that what they
109114 work on will be included. Make them at least think twice before they
110−embark on a big endeavor.
115+embark on a big endeavor.
111116
112117 Remember: they'd better know more about the details than you do, and
113118 they usually already think they have the answer to everything. The best
114119 thing you can do as a manager is not to instill confidence, but rather a
115−healthy dose of critical thinking on what they do.
120+healthy dose of critical thinking on what they do.
116121
117122 Btw, another way to avoid a decision is to plaintively just whine "can't
118123 we just do both?" and look pitiful. Trust me, it works. If it's not
119124 clear which approach is better, they'll eventually figure it out. The
120125 answer may end up being that both teams get so frustrated by the
121−situation that they just give up.
126+situation that they just give up.
122127
123128 That may sound like a failure, but it's usually a sign that there was
124129 something wrong with both projects, and the reason the people involved
125130 couldn't decide was that they were both wrong. You end up coming up
126131 smelling like roses, and you avoided yet another decision that you could
127−have screwed up on.
132+have screwed up on.
128133
129134
130− Chapter 2: People
135+2) People
136+---------
131137
132138 Most people are idiots, and being a manager means you'll have to deal
133−with it, and perhaps more importantly, that _they_ have to deal with
134−_you_.
139+with it, and perhaps more importantly, that **they** have to deal with
140+**you**.
135141
136142 It turns out that while it's easy to undo technical mistakes, it's not
137143 as easy to undo personality disorders. You just have to live with
138−theirs - and yours.
144+theirs - and yours.
139145
140146 However, in order to prepare yourself as a kernel manager, it's best to
141147 remember not to burn any bridges, bomb any innocent villagers, or
142148 alienate too many kernel developers. It turns out that alienating people
143149 is fairly easy, and un-alienating them is hard. Thus "alienating"
144150 immediately falls under the heading of "not reversible", and becomes a
145−no-no according to Chapter 1.
151+no-no according to :ref:`decisions`.
146152
147153 There's just a few simple rules here:
154+
148155 (1) don't call people d*ckheads (at least not in public)
149156 (2) learn how to apologize when you forgot rule (1)
150157
151158 The 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 without
159+"you're a d*ckhead" in millions of different ways [#f2]_, sometimes without
153160 even realizing it, and almost always with a white-hot conviction that
154−you are right.
161+you are right.
155162
156163 And the more convinced you are that you are right (and let's face it,
157−you can call just about _anybody_ a d*ckhead, and you often _will_ be
158−right), the harder it ends up being to apologize afterwards.
164+you can call just about **anybody** a d*ckhead, and you often **will** be
165+right), the harder it ends up being to apologize afterwards.
159166
160167 To solve this problem, you really only have two options:
168+
161169 - get really good at apologies
162170 - spread the "love" out so evenly that nobody really ends up feeling
163171 like they get unfairly targeted. Make it inventive enough, and they
164− might even be amused.
172+ might even be amused.
165173
166174 The option of being unfailingly polite really doesn't exist. Nobody will
167175 trust somebody who is so clearly hiding his true character.
168176
169−(*) Paul Simon sang "Fifty Ways to Leave Your Lover", because quite
170−frankly, "A Million Ways to Tell a Developer He Is a D*ckhead" doesn't
171−scan nearly as well. But I'm sure he thought about it.
177+.. [#f2] Paul Simon sang "Fifty Ways to Leave Your Lover", because quite
178+ frankly, "A Million Ways to Tell a Developer He Is a D*ckhead" doesn't
179+ scan nearly as well. But I'm sure he thought about it.
172180
173181
174− Chapter 3: People II - the Good Kind
182+3) People II - the Good Kind
183+----------------------------
175184
176185 While it turns out that most people are idiots, the corollary to that is
177186 sadly that you are one too, and that while we can all bask in the secure
178187 knowledge that we're better than the average person (let's face it,
179188 nobody ever believes that they're average or below-average), we should
180189 also admit that we're not the sharpest knife around, and there will be
181−other people that are less of an idiot than you are.
190+other people that are less of an idiot than you are.
182191
183−Some people react badly to smart people. Others take advantage of them.
192+Some people react badly to smart people. Others take advantage of them.
184193
185−Make sure that you, as a kernel maintainer, are in the second group.
194+Make sure that you, as a kernel maintainer, are in the second group.
186195 Suck up to them, because they are the people who will make your job
187196 easier. In particular, they'll be able to make your decisions for you,
188197 which 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
191200 management responsibilities largely become ones of saying "Sounds like a
192201 good idea - go wild", or "That sounds good, but what about xxx?". The
193202 second version in particular is a great way to either learn something
194−new about "xxx" or seem _extra_ managerial by pointing out something the
203+new about "xxx" or seem **extra** managerial by pointing out something the
195204 smarter person hadn't thought about. In either case, you win.
196205
197206 One 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
199208 specific directions, but let's face it, they might be good at what they
200209 do, and suck at everything else. The good news is that people tend to
201210 naturally gravitate back to what they are good at, so it's not like you
202−are doing something irreversible when you _do_ prod them in some
211+are doing something irreversible when you **do** prod them in some
203212 direction, just don't push too hard.
204213
205214
206− Chapter 4: Placing blame
215+4) Placing blame
216+----------------
207217
208218 Things will go wrong, and people want somebody to blame. Tag, you're it.
209219
210220 It's not actually that hard to accept the blame, especially if people
211−kind of realize that it wasn't _all_ your fault. Which brings us to the
221+kind of realize that it wasn't **all** your fault. Which brings us to the
212222 best way of taking the blame: do it for another guy. You'll feel good
213223 for taking the fall, he'll feel good about not getting blamed, and the
214224 guy who lost his whole 36GB porn-collection because of your incompetence
215225 will grudgingly admit that you at least didn't try to weasel out of it.
216226
217227 Then 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 the
228+**in_private** that he screwed up. Not just so he can avoid it in the
219229 future, but so that he knows he owes you one. And, perhaps even more
220230 importantly, he's also likely the person who can fix it. Because, let's
221−face it, it sure ain't you.
231+face it, it sure ain't you.
222232
223−Taking the blame is also why you get to be manager in the first place.
233+Taking the blame is also why you get to be manager in the first place.
224234 It's part of what makes people trust you, and allow you the potential
225235 glory, because you're the one who gets to say "I screwed up". And if
226236 you've followed the previous rules, you'll be pretty good at saying that
227−by now.
237+by now.
228238
229239
230− Chapter 5: Things to avoid
240+5) Things to avoid
241+------------------
231242
232243 There's one thing people hate even more than being called "d*ckhead",
233244 and that is being called a "d*ckhead" in a sanctimonious voice. The
234245 first you can apologize for, the second one you won't really get the
235246 chance. They likely will no longer be listening even if you otherwise
236−do a good job.
247+do a good job.
237248
238249 We all think we're better than anybody else, which means that when
239−somebody else puts on airs, it _really_ rubs us the wrong way. You may
250+somebody else puts on airs, it **really** rubs us the wrong way. You may
240251 be morally and intellectually superior to everybody around you, but
241−don't try to make it too obvious unless you really _intend_ to irritate
242−somebody (*).
252+don't try to make it too obvious unless you really **intend** to irritate
253+somebody [#f3]_.
243254
244255 Similarly, don't be too polite or subtle about things. Politeness easily
245256 ends 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
251262 overboard to the point of being ridiculous can drive a point home
252263 without making it painful to the recipient, who just thinks you're being
253264 silly. It can thus help get through the personal mental block we all
254−have about criticism.
265+have about criticism.
255266
256−(*) Hint: internet newsgroups that are not directly related to your work
257−are great ways to take out your frustrations at other people. Write
258−insulting posts with a sneer just to get into a good flame every once in
259−a while, and you'll feel cleansed. Just don't crap too close to home.
267+.. [#f3] Hint: internet newsgroups that are not directly related to your work
268+ are great ways to take out your frustrations at other people. Write
269+ insulting posts with a sneer just to get into a good flame every once in
270+ a while, and you'll feel cleansed. Just don't crap too close to home.
260271
261272
262− Chapter 6: Why me?
273+6) Why me?
274+----------
263275
264276 Since your main responsibility seems to be to take the blame for other
265277 peoples mistakes, and make it painfully obvious to everybody else that
@@ -268,9 +280,9 @@ first place? · 2 unmodified lines
268280
269281 First off, while you may or may not get screaming teenage girls (or
270282 boys, let's not be judgmental or sexist here) knocking on your dressing
271−room door, you _will_ get an immense feeling of personal accomplishment
283+room door, you **will** get an immense feeling of personal accomplishment
272284 for being "in charge". Never mind the fact that you're really leading
273285 by trying to keep up with everybody else and running after them as fast
274−as you can. Everybody will still think you're the person in charge.
286+as you can. Everybody will still think you're the person in charge.
275287
276288 It'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
4949 CONFIG_PCIEAER = y.
5050
5151 2.2 Load PCI Express AER Root Driver
52−There is a case where a system has AER support in BIOS. Enabling the AER
53−Root driver and having AER support in BIOS may result unpredictable
54−behavior. To avoid this conflict, a successful load of the AER Root driver
55−requires ACPI _OSC support in the BIOS to allow the AER Root driver to
56−request for native control of AER. See the PCI FW 3.0 Specification for
57−details regarding OSC usage. Currently, lots of firmwares don't provide
58−_OSC support while they use PCI Express. To support such firmwares,
59−forceload, a parameter of type bool, could enable AER to continue to
60−be initiated although firmwares have no _OSC support. To enable the
61−walkaround, pls. add aerdriver.forceload=y to kernel boot parameter line
62−when booting kernel. Note that forceload=n by default.
63−
64−nosourceid, another parameter of type bool, can be used when broken
65−hardware (mostly chipsets) has root ports that cannot obtain the reporting
66−source ID. nosourceid=n by default.
52+
53+Some systems have AER support in firmware. Enabling Linux AER support at
54+the same time the firmware handles AER may result in unpredictable
55+behavior. Therefore, Linux does not handle AER events unless the firmware
56+grants AER control to the OS via the ACPI _OSC method. See the PCI FW 3.0
57+Specification for details regarding _OSC usage.
6758
6859 2.3 AER error output
69−When a PCI-E AER error is captured, an error message will be outputted to
70−console. If it's a correctable error, it is outputted as a warning.
60+
61+When a PCIe AER error is captured, an error message will be output to
62+console. If it's a correctable error, it is output as a warning.
7163 Otherwise, it is printed as an error. So users could choose different
7264 log level to filter out correctable error messages.
7365
Documentation/RCU/Design/Requirements/Requirements.html+22−0
@@ -2493,6 +2493,28 @@ or some future &ldquo;lazy&rdquo; · 2492 unmodified lines
24932493 variant of <tt>call_rcu()</tt> that might one day be created for
24942494 energy-efficiency purposes.
24952495
2496+<p>
2497+That said, there are limits.
2498+RCU requires that the <tt>rcu_head</tt> structure be aligned to a
2499+two-byte boundary, and passing a misaligned <tt>rcu_head</tt>
2500+structure to one of the <tt>call_rcu()</tt> family of functions
2501+will result in a splat.
2502+It is therefore necessary to exercise caution when packing
2503+structures containing fields of type <tt>rcu_head</tt>.
2504+Why not a four-byte or even eight-byte alignment requirement?
2505+Because the m68k architecture provides only two-byte alignment,
2506+and thus acts as alignment's least common denominator.
2507+
2508+<p>
2509+The 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.
2512+Deferring invocation could potentially have energy-efficiency
2513+benefits, but only if the rate of non-lazy callbacks decreases
2514+significantly for some important workload.
2515+In the meantime, reserving the bottom bit keeps this option open
2516+in case it one day becomes useful.
2517+
24962518 <h3><a name="Performance, Scalability, Response Time, and Reliability">
24972519 Performance, Scalability, Response Time, and Reliability</a></h3>
24982520
Documentation/RCU/lockdep-splat.txt+1−1
@@ -57,7 +57,7 @@ Call Trace: · 56 unmodified lines
5757 [<ffffffff817db154>] kernel_thread_helper+0x4/0x10
5858 [<ffffffff81066430>] ? finish_task_switch+0x80/0x110
5959 [<ffffffff817d9c04>] ? retint_restore_args+0xe/0xe
60− [<ffffffff81097510>] ? __init_kthread_worker+0x70/0x70
60+ [<ffffffff81097510>] ? __kthread_init_worker+0x70/0x70
6161 [<ffffffff817db150>] ? gs_change+0xb/0xb
6262
6363 Line 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
1010 command (perhaps grepping for "torture"). The test is started
1111 when the module is loaded, and stops when the module is unloaded.
1212
13−CONFIG_RCU_TORTURE_TEST_RUNNABLE
14−
15−It is also possible to specify CONFIG_RCU_TORTURE_TEST=y, which will
16−result in the tests being loaded into the base kernel. In this case,
17−the CONFIG_RCU_TORTURE_TEST_RUNNABLE config option is used to specify
18−whether the RCU torture tests are to be started immediately during
19−boot or whether the /proc/sys/kernel/rcutorture_runnable file is used
20−to enable them. This /proc file can be used to repeatedly pause and
21−restart the tests, regardless of the initial state specified by the
22−CONFIG_RCU_TORTURE_TEST_RUNNABLE config option.
23−
24−You 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
26−this can sometimes be useful in finding boot-time bugs.
27−
2813
2914 MODULE PARAMETERS
3015
Documentation/SecurityBugs+8−0
@@ -1,9 +1,15 @@
1+.. _securitybugs:
2+
3+Security bugs
4+=============
5+
16 Linux kernel developers take security very seriously. As such, we'd
27 like to know when a security bug is found so that it can be fixed and
38 disclosed as quickly as possible. Please report security bugs to the
49 Linux kernel security team.
510
611 1) Contact
12+----------
713
814 The Linux kernel security team can be contacted by email at
915 <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
1824 consent from the reporter unless it has already been made public.
1925
2026 2) Disclosure
27+-------------
2128
2229 The goal of the Linux kernel security team is to work with the
2330 bug 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
3340 disclosure date to be on the order of 7 days.
3441
3542 3) Non-disclosure agreements
43+----------------------------
3644
3745 The Linux kernel security team is not a formal body and therefore unable
3846 to enter any non-disclosure agreements.
Documentation/SubmitChecklist+69−58
@@ -1,109 +1,120 @@
1+.. _submitchecklist:
2+
13 Linux Kernel patch submission checklist
2−~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
35
46 Here are some basic things that developers should do if they want to see their
57 kernel patch submissions accepted more quickly.
68
79 These are all above and beyond the documentation that is provided in
8−Documentation/SubmittingPatches and elsewhere regarding submitting Linux
9−kernel patches.
10+:ref:`Documentation/SubmittingPatches <submittingpatches>`
11+and elsewhere regarding submitting Linux kernel patches.
1012
1113
12−1: If you use a facility then #include the file that defines/declares
14+1) If you use a facility then #include the file that defines/declares
1315 that facility. Don't depend on other header files pulling in ones
1416 that you use.
1517
16−2: Builds cleanly with applicable or modified CONFIG options =y, =m, and
17− =n. No gcc warnings/errors, no linker warnings/errors.
18+2) Builds cleanly:
19+
20+ a) with applicable or modified ``CONFIG`` options ``=y``, ``=m``, and
21+ ``=n``. No ``gcc`` warnings/errors, no linker warnings/errors.
1822
19−2b: Passes allnoconfig, allmodconfig
23+ b) Passes ``allnoconfig``, ``allmodconfig``
2024
21−2c: Builds successfully when using O=builddir
25+ c) Builds successfully when using ``O=builddir``
2226
23−3: Builds on multiple CPU architectures by using local cross-compile tools
27+3) Builds on multiple CPU architectures by using local cross-compile tools
2428 or some other build farm.
2529
26−4: ppc64 is a good architecture for cross-compilation checking because it
27− tends to use `unsigned long' for 64-bit quantities.
30+4) ppc64 is a good architecture for cross-compilation checking because it
31+ tends to use ``unsigned long`` for 64-bit quantities.
2832
29−5: Check your patch for general style as detailed in
30− Documentation/CodingStyle. Check for trivial violations with the
31− patch style checker prior to submission (scripts/checkpatch.pl).
33+5) Check your patch for general style as detailed in
34+ :ref:`Documentation/CodingStyle <codingstyle>`.
35+ Check for trivial violations with the patch style checker prior to
36+ submission (``scripts/checkpatch.pl``).
3237 You should be able to justify all violations that remain in
3338 your patch.
3439
35−6: Any new or modified CONFIG options don't muck up the config menu.
40+6) Any new or modified ``CONFIG`` options don't muck up the config menu.
3641
37−7: All new Kconfig options have help text.
42+7) All new ``Kconfig`` options have help text.
3843
39−8: Has been carefully reviewed with respect to relevant Kconfig
44+8) Has been carefully reviewed with respect to relevant ``Kconfig``
4045 combinations. This is very hard to get right with testing -- brainpower
4146 pays off here.
4247
43−9: Check cleanly with sparse.
48+9) Check cleanly with sparse.
49+
50+10) Use ``make checkstack`` and ``make namespacecheck`` and fix any problems
51+ that they find.
52+
53+ .. note::
4454
45−10: Use 'make checkstack' and 'make namespacecheck' and fix any problems
46− that they find. Note: checkstack does not point out problems explicitly,
47− but any one function that uses more than 512 bytes on the stack is a
48− candidate for change.
55+ ``checkstack`` does not point out problems explicitly,
56+ but any one function that uses more than 512 bytes on the stack is a
57+ candidate for change.
4958
50−11: Include kernel-doc to document global kernel APIs. (Not required for
51− static functions, but OK there also.) Use 'make htmldocs' or 'make
52− mandocs' to check the kernel-doc and fix any issues.
59+11) Include :ref:`kernel-doc <kernel_doc>` to document global kernel APIs.
60+ (Not required for static functions, but OK there also.) Use
61+ ``make htmldocs`` or ``make pdfdocs`` to check the
62+ :ref:`kernel-doc <kernel_doc>` and fix any issues.
5363
54−12: Has been tested with CONFIG_PREEMPT, CONFIG_DEBUG_PREEMPT,
55− CONFIG_DEBUG_SLAB, CONFIG_DEBUG_PAGEALLOC, CONFIG_DEBUG_MUTEXES,
56− CONFIG_DEBUG_SPINLOCK, CONFIG_DEBUG_ATOMIC_SLEEP, CONFIG_PROVE_RCU
57− and CONFIG_DEBUG_OBJECTS_RCU_HEAD all simultaneously enabled.
64+12) Has been tested with ``CONFIG_PREEMPT``, ``CONFIG_DEBUG_PREEMPT``,
65+ ``CONFIG_DEBUG_SLAB``, ``CONFIG_DEBUG_PAGEALLOC``, ``CONFIG_DEBUG_MUTEXES``,
66+ ``CONFIG_DEBUG_SPINLOCK``, ``CONFIG_DEBUG_ATOMIC_SLEEP``,
67+ ``CONFIG_PROVE_RCU`` and ``CONFIG_DEBUG_OBJECTS_RCU_HEAD`` all
68+ simultaneously enabled.
5869
59−13: Has been build- and runtime tested with and without CONFIG_SMP and
60− CONFIG_PREEMPT.
70+13) Has been build- and runtime tested with and without ``CONFIG_SMP`` and
71+ ``CONFIG_PREEMPT.``
6172
62−14: If the patch affects IO/Disk, etc: has been tested with and without
63− CONFIG_LBDAF.
73+14) If the patch affects IO/Disk, etc: has been tested with and without
74+ ``CONFIG_LBDAF.``
6475
65−15: All codepaths have been exercised with all lockdep features enabled.
76+15) All codepaths have been exercised with all lockdep features enabled.
6677
67−16: All new /proc entries are documented under Documentation/
78+16) All new ``/proc`` entries are documented under ``Documentation/``
6879
69−17: All new kernel boot parameters are documented in
70− Documentation/kernel-parameters.txt.
80+17) All new kernel boot parameters are documented in
81+ ``Documentation/kernel-parameters.txt``.
7182
72−18: All new module parameters are documented with MODULE_PARM_DESC()
83+18) All new module parameters are documented with ``MODULE_PARM_DESC()``
7384
74−19: All new userspace interfaces are documented in Documentation/ABI/.
75− See Documentation/ABI/README for more information.
85+19) All new userspace interfaces are documented in ``Documentation/ABI/``.
86+ See ``Documentation/ABI/README`` for more information.
7687 Patches that change userspace interfaces should be CCed to
7788 linux-api@vger.kernel.org.
7889
79−20: Check that it all passes `make headers_check'.
90+20) Check that it all passes ``make headers_check``.
8091
81−21: Has been checked with injection of at least slab and page-allocation
82− failures. See Documentation/fault-injection/.
92+21) Has been checked with injection of at least slab and page-allocation
93+ failures. See ``Documentation/fault-injection/``.
8394
8495 If the new code is substantial, addition of subsystem-specific fault
8596 injection might be appropriate.
8697
87−22: Newly-added code has been compiled with `gcc -W' (use "make
88− EXTRA_CFLAGS=-W"). This will generate lots of noise, but is good for
89− finding bugs like "warning: comparison between signed and unsigned".
98+22) Newly-added code has been compiled with ``gcc -W`` (use
99+ ``make EXTRA_CFLAGS=-W``). This will generate lots of noise, but is good
100+ for finding bugs like "warning: comparison between signed and unsigned".
90101
91−23: Tested after it has been merged into the -mm patchset to make sure
102+23) Tested after it has been merged into the -mm patchset to make sure
92103 that it still works with all of the other queued patches and various
93104 changes in the VM, VFS, and other subsystems.
94105
95−24: All memory barriers {e.g., barrier(), rmb(), wmb()} need a comment in the
96− source code that explains the logic of what they are doing and why.
106+24) All memory barriers {e.g., ``barrier()``, ``rmb()``, ``wmb()``} need a
107+ comment in the source code that explains the logic of what they are doing
108+ and why.
97109
98−25: If any ioctl's are added by the patch, then also update
99− Documentation/ioctl/ioctl-number.txt.
110+25) If any ioctl's are added by the patch, then also update
111+ ``Documentation/ioctl/ioctl-number.txt``.
100112
101−26: 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,
103− then test multiple builds with the related kconfig symbols disabled
104− and/or =m (if that option is available) [not all of these at the
113+26) If your modified source code depends on or uses any of the kernel
114+ APIs or features that are related to the following ``Kconfig`` symbols,
115+ then test multiple builds with the related ``Kconfig`` symbols disabled
116+ and/or ``=m`` (if that option is available) [not all of these at the
105117 same time, just various/random combinations of them]:
106118
107− CONFIG_SMP, CONFIG_SYSFS, CONFIG_PROC_FS, CONFIG_INPUT, CONFIG_PCI,
108− CONFIG_BLOCK, CONFIG_PM, CONFIG_MAGIC_SYSRQ,
109− CONFIG_NET, CONFIG_INET=n (but latter with CONFIG_NET=y)
119+ ``CONFIG_SMP``, ``CONFIG_SYSFS``, ``CONFIG_PROC_FS``, ``CONFIG_INPUT``, ``CONFIG_PCI``, ``CONFIG_BLOCK``, ``CONFIG_PM``, ``CONFIG_MAGIC_SYSRQ``,
120+ ``CONFIG_NET``, ``CONFIG_INET=n`` (but latter with ``CONFIG_NET=y``).
Documentation/SubmittingDrivers+37−17
@@ -1,5 +1,7 @@
1+.. _submittingdrivers:
2+
13 Submitting Drivers For The Linux Kernel
2−---------------------------------------
4+=======================================
35
46 This document is intended to explain how to submit device drivers to the
57 various kernel trees. Note that if you are interested in video card drivers
@@ -38,42 +40,48 @@ Linux 2.4: · 32 unmodified lines
3840 maintainer does not respond or you cannot find the appropriate
3941 maintainer then please contact Willy Tarreau <w@1wt.eu>.
4042
41−Linux 2.6:
43+Linux 2.6 and upper:
4244 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.6
45+ to track changes in API's. The final contact point for Linux 2.6+
4446 submissions is Andrew Morton.
4547
4648 What Criteria Determine Acceptance
4749 ----------------------------------
4850
49−Licensing: The code must be released to us under the
51+Licensing:
52+ The code must be released to us under the
5053 GNU General Public License. We don't insist on any kind
5154 of exclusive GPL licensing, and if you wish the driver
5255 to be useful to other communities such as BSD you may well
5356 wish to release under multiple licenses.
5457 See accepted licenses at include/linux/module.h
5558
56−Copyright: The copyright owner must agree to use of GPL.
59+Copyright:
60+ The copyright owner must agree to use of GPL.
5761 It's best if the submitter and copyright owner
5862 are the same person/entity. If not, the name of
5963 the person/entity authorizing use of GPL should be
6064 listed in case it's necessary to verify the will of
6165 the copyright owner.
6266
63−Interfaces: If your driver uses existing interfaces and behaves like
67+Interfaces:
68+ If your driver uses existing interfaces and behaves like
6469 other drivers in the same class it will be much more likely
6570 to be accepted than if it invents gratuitous new ones.
6671 If you need to implement a common API over Linux and NT
6772 drivers do it in userspace.
6873
69−Code: Please use the Linux style of code formatting as documented
70− in Documentation/CodingStyle. If you have sections of code
74+Code:
75+ Please use the Linux style of code formatting as documented
76+ in :ref:`Documentation/CodingStyle <codingStyle>`.
77+ If you have sections of code
7178 that need to be in other formats, for example because they
7279 are shared with a windows driver kit and you want to
7380 maintain them just once separate them out nicely and note
7481 this fact.
7582
76−Portability: Pointers are not always 32bits, not all computers are little
83+Portability:
84+ Pointers are not always 32bits, not all computers are little
7785 endian, people do not all have floating point and you
7886 shouldn't use inline x86 assembler in your driver without
7987 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
8189 but it is easy to make sure the code can easily be made
8290 portable.
8391
84−Clarity: It helps if anyone can see how to fix the driver. It helps
92+Clarity:
93+ It helps if anyone can see how to fix the driver. It helps
8594 you because you get patches not bug reports. If you submit a
8695 driver that intentionally obfuscates how the hardware works
8796 it will go in the bitbucket.
8897
89−PM support: Since Linux is used on many portable and desktop systems, your
98+PM support:
99+ Since Linux is used on many portable and desktop systems, your
90100 driver is likely to be used on such a system and therefore it
91101 should support basic power management by implementing, if
92102 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
101111 complete overview of the power management issues related to
102112 drivers see Documentation/power/devices.txt .
103113
104−Control: In general if there is active maintenance of a driver by
114+Control:
115+ In general if there is active maintenance of a driver by
105116 the author then patches will be redirected to them unless
106117 they are totally obvious and without need of checking.
107118 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
111122 What Criteria Do Not Determine Acceptance
112123 -----------------------------------------
113124
114−Vendor: Being the hardware vendor and maintaining the driver is
125+Vendor:
126+ Being the hardware vendor and maintaining the driver is
115127 often a good thing. If there is a stable working driver from
116128 other people already in the tree don't expect 'we are the
117129 vendor' to get your driver chosen. Ideally work with the
118130 existing driver author to build a single perfect driver.
119131
120−Author: It doesn't matter if a large Linux company wrote the driver,
132+Author:
133+ It doesn't matter if a large Linux company wrote the driver,
121134 or you did. Nobody has any special access to the kernel
122135 tree. Anyone who tells you otherwise isn't telling the
123136 whole story.
@@ -127,8 +140,10 @@ Resources · 3 unmodified lines
127140 ---------
128141
129142 Linux kernel master tree:
130− ftp.??.kernel.org:/pub/linux/kernel/...
131− ?? == your country code, such as "us", "uk", "fr", etc.
143+ ftp.\ *country_code*\ .kernel.org:/pub/linux/kernel/...
144+
145+ where *country_code* == your country code, such as
146+ **us**, **uk**, **fr**, etc.
132147
133148 http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git
134149
@@ -141,14 +156,19 @@ Linux Device Drivers, Third Edition (covers 2.6.10): · 6 unmodified lines
141156
142157 LWN.net:
143158 Weekly summary of kernel development activity - http://lwn.net/
159+
144160 2.6 API changes:
161+
145162 http://lwn.net/Articles/2.6-kernel-api/
163+
146164 Porting drivers from prior kernels to 2.6:
165+
147166 http://lwn.net/Articles/driver-porting/
148167
149168 KernelNewbies:
150169 Documentation and assistance for new kernel programmers
151− http://kernelnewbies.org/
170+
171+ http://kernelnewbies.org/
152172
153173 Linux USB project:
154174 http://www.linux-usb.org/
Documentation/SubmittingPatches+166−146
@@ -1,9 +1,7 @@
1+.. _submittingpatches:
12
2− How to Get Your Change Into the Linux Kernel
3− or
4− Care And Operation Of Your Linus Torvalds
5−
6−
3+How to Get Your Change Into the Linux Kernel or Care And Operation Of Your Linus Torvalds
4+=========================================================================================
75
86 For a person or company who wishes to submit a change to the Linux
97 kernel, 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
1210
1311 This document contains a large number of suggestions in a relatively terse
1412 format. For detailed information on how the kernel development process
15−works, see Documentation/development-process. Also, read
16−Documentation/SubmitChecklist for a list of items to check before
13+works, see :ref:`Documentation/development-process <development_process_main>`.
14+Also, read :ref:`Documentation/SubmitChecklist <submitchecklist>`
15+for a list of items to check before
1716 submitting code. If you are submitting a driver, also read
18−Documentation/SubmittingDrivers; for device tree binding patches, read
17+:ref:`Documentation/SubmittingDrivers <submittingdrivers>`;
18+for device tree binding patches, read
1919 Documentation/devicetree/bindings/submitting-patches.txt.
2020
21−Many of these steps describe the default behavior of the git version
22−control system; if you use git to prepare your patches, you'll find much
21+Many of these steps describe the default behavior of the ``git`` version
22+control system; if you use ``git`` to prepare your patches, you'll find much
2323 of the mechanical work done for you, though you'll still need to prepare
24−and document a sensible set of patches. In general, use of git will make
24+and document a sensible set of patches. In general, use of ``git`` will make
2525 your life as a kernel developer easier.
2626
27−--------------------------------------------
28−SECTION 1 - CREATING AND SENDING YOUR CHANGE
29−--------------------------------------------
27+Creating and Sending your Change
28+********************************
3029
3130
3231 0) Obtain a current source tree
3332 -------------------------------
3433
3534 If you do not have a repository with the current kernel source handy, use
36−git to obtain one. You'll want to start with the mainline repository,
37−which can be grabbed with:
35+``git`` to obtain one. You'll want to start with the mainline repository,
36+which can be grabbed with::
3837
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
4039
4140 Note, however, that you may not want to develop against the mainline tree
4241 directly. Most subsystem maintainers run their own trees and want to see
43−patches prepared against those trees. See the "T:" entry for the subsystem
42+patches prepared against those trees. See the **T:** entry for the subsystem
4443 in the MAINTAINERS file to find that tree, or simply ask the maintainer if
4544 the tree is not listed there.
4645
4746 It is still possible to download kernel releases via tarballs (as described
4847 in the next section), but that is the hard way to do kernel development.
4948
50−1) "diff -up"
51−------------
49+1) ``diff -up``
50+---------------
5251
53−If you must generate your patches by hand, use "diff -up" or "diff -uprN"
52+If you must generate your patches by hand, use ``diff -up`` or ``diff -uprN``
5453 to create patches. Git generates patches in this form by default; if
55−you're using git, you can skip this section entirely.
54+you're using ``git``, you can skip this section entirely.
5655
5756 All changes to the Linux kernel occur in the form of patches, as
58−generated by diff(1). When creating your patch, make sure to create it
59−in "unified diff" format, as supplied by the '-u' argument to diff(1).
60−Also, please use the '-p' argument which shows which C function each
61−change is in - that makes the resultant diff a lot easier to read.
57+generated by :manpage:`diff(1)`. When creating your patch, make sure to
58+create it in "unified diff" format, as supplied by the ``-u`` argument
59+to :manpage:`diff(1)`.
60+Also, please use the ``-p`` argument which shows which C function each
61+change is in - that makes the resultant ``diff`` a lot easier to read.
6262 Patches should be based in the root kernel source directory,
6363 not in any lower subdirectory.
6464
65−To create a patch for a single file, it is often sufficient to do:
65+To create a patch for a single file, it is often sufficient to do::
6666
6767 SRCTREE= linux
6868 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
7474 diff -up $SRCTREE/$MYFILE{.orig,} > /tmp/patch
7575
7676 To create a patch for multiple files, you should unpack a "vanilla",
77−or unmodified kernel source tree, and generate a diff against your
78−own source tree. For example:
77+or unmodified kernel source tree, and generate a ``diff`` against your
78+own source tree. For example::
7979
8080 MYSRC= /devel/linux
8181
@@ -84,27 +84,27 @@ own source tree. For example: · 2 unmodified lines
8484 diff -uprN -X linux-3.19-vanilla/Documentation/dontdiff \
8585 linux-3.19-vanilla $MYSRC > /tmp/patch
8686
87−"dontdiff" is a list of files which are generated by the kernel during
88−the build process, and should be ignored in any diff(1)-generated
87+``dontdiff`` is a list of files which are generated by the kernel during
88+the build process, and should be ignored in any :manpage:`diff(1)`-generated
8989 patch.
9090
9191 Make sure your patch does not include any extra files which do not
9292 belong in a patch submission. Make sure to review your patch -after-
93−generating it with diff(1), to ensure accuracy.
93+generating it with :manpage:`diff(1)`, to ensure accuracy.
9494
9595 If your changes produce a lot of deltas, you need to split them into
96−individual patches which modify things in logical stages; see section
97−#3. This will facilitate review by other kernel developers,
96+individual patches which modify things in logical stages; see
97+:ref:`split_changes`. This will facilitate review by other kernel developers,
9898 very important if you want your patch accepted.
9999
100−If you're using git, "git rebase -i" can help you with this process. If
101−you're not using git, quilt <http://savannah.nongnu.org/projects/quilt>
100+If you're using ``git``, ``git rebase -i`` can help you with this process. If
101+you're not using ``git``, ``quilt`` <http://savannah.nongnu.org/projects/quilt>
102102 is another popular alternative.
103103
104+.. _describe_changes:
104105
105−
106−2) Describe your changes.
107−-------------------------
106+2) Describe your changes
107+------------------------
108108
109109 Describe your problem. Whether your patch is a one-line bug fix or
110110 5000 lines of a new feature, there must be an underlying problem that
@@ -137,11 +137,11 @@ as you intend it to. · 26 unmodified lines
137137
138138 The maintainer will thank you if you write your patch description in a
139139 form which can be easily pulled into Linux's source code management
140−system, git, as a "commit log". See #15, below.
140+system, ``git``, as a "commit log". See :ref:`explicit_in_reply_to`.
141141
142142 Solve only one problem per patch. If your description starts to get
143143 long, that's a sign that you probably need to split up your patch.
144−See #3, next.
144+See :ref:`split_changes`.
145145
146146 When you submit or resubmit a patch or patch series, include the
147147 complete patch description and justification for it. Don't just
@@ -160,7 +160,7 @@ its behaviour. · 12 unmodified lines
160160 If the patch fixes a logged bug entry, refer to that bug entry by
161161 number and URL. If the patch follows from a mailing list discussion,
162162 give a URL to the mailing list archive; use the https://lkml.kernel.org/
163−redirector with a Message-Id, to ensure that the links cannot become
163+redirector with a ``Message-Id``, to ensure that the links cannot become
164164 stale.
165165
166166 However, try to make your explanation understandable without external
@@ -171,7 +171,7 @@ patch as submitted. · 4 unmodified lines
171171 If you want to refer to a specific commit, don't just refer to the
172172 SHA-1 ID of the commit. Please also include the oneline summary of
173173 the commit, to make it easier for reviewers to know what it is about.
174−Example:
174+Example::
175175
176176 Commit e21d2170f36602ae2708 ("video: remove unnecessary
177177 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
185185 change five years from now.
186186
187187 If your patch fixes a bug in a specific commit, e.g. you found an issue using
188−git-bisect, please use the 'Fixes:' tag with the first 12 characters of the
189−SHA-1 ID, and the one line summary. For example:
188+``git bisect``, please use the 'Fixes:' tag with the first 12 characters of
189+the SHA-1 ID, and the one line summary. For example::
190190
191191 Fixes: e21d2170f366 ("video: remove unnecessary platform_set_drvdata()")
192192
193−The following git-config settings can be used to add a pretty format for
194−outputting the above style in the git log or git show commands
193+The following ``git config`` settings can be used to add a pretty format for
194+outputting the above style in the ``git log`` or ``git show`` commands::
195195
196196 [core]
197197 abbrev = 12
198198 [pretty]
199199 fixes = Fixes: %h (\"%s\")
200200
201−3) Separate your changes.
202−-------------------------
201+.. _split_changes:
202+
203+3) Separate your changes
204+------------------------
203205
204−Separate each _logical change_ into a separate patch.
206+Separate each **logical change** into a separate patch.
205207
206208 For example, if your changes include both bug fixes and performance
207209 enhancements 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
217219 on its own merits.
218220
219221 If one patch depends on another patch in order for a change to be
220−complete, that is OK. Simply note "this patch depends on patch X"
222+complete, that is OK. Simply note **"this patch depends on patch X"**
221223 in your patch description.
222224
223225 When dividing your change into a series of patches, take special care to
224226 ensure that the kernel builds and runs properly after each patch in the
225−series. Developers using "git bisect" to track down a problem can end up
227+series. Developers using ``git bisect`` to track down a problem can end up
226228 splitting your patch series at any point; they will not thank you if you
227229 introduce bugs in the middle.
228230
@@ -231,11 +233,13 @@ then only post say 15 or so at a time and wait for review and integration. · 2 unmodified lines
231233
232234
233235
234−4) Style-check your changes.
235−----------------------------
236+4) Style-check your changes
237+---------------------------
236238
237239 Check your patch for basic style violations, details of which can be
238−found in Documentation/CodingStyle. Failure to do so simply wastes
240+found in
241+:ref:`Documentation/CodingStyle <codingstyle>`.
242+Failure to do so simply wastes
239243 the reviewers time and will get your patch rejected, probably
240244 without even being read.
241245
@@ -260,8 +264,8 @@ You should be able to justify all violations that remain in your · 18 unmodified lines
260264 patch.
261265
262266
263−5) Select the recipients for your patch.
264−----------------------------------------
267+5) Select the recipients for your patch
268+---------------------------------------
265269
266270 You should always copy the appropriate subsystem maintainer(s) on any patch
267271 to 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
295299 obviously, the patch should not be sent to any public lists.
296300
297301 Patches that fix a severe bug in a released kernel should be directed
298−toward the stable maintainers by putting a line like this:
302+toward the stable maintainers by putting a line like this::
299303
300304 Cc: stable@vger.kernel.org
301305
302306 into the sign-off area of your patch (note, NOT an email recipient). You
303−should also read Documentation/stable_kernel_rules.txt in addition to this
304−file.
307+should also read
308+:ref:`Documentation/stable_kernel_rules.txt <stable_kernel_rules>`
309+in addition to this file.
305310
306311 Note, however, that some subsystem maintainers want to come to their own
307312 conclusions 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
312317 maintainer (as listed in the MAINTAINERS file) a man-pages patch, or at
313318 least a notification of the change, so that some information makes its way
314319 into the manual pages. User-space API changes should also be copied to
315−linux-api@vger.kernel.org.
320+linux-api@vger.kernel.org.
316321
317322 For small patches you may want to CC the Trivial Patch Monkey
318323 trivial@kernel.org which collects "trivial" patches. Have a look
319324 into the MAINTAINERS file for its current manager.
325+
320326 Trivial patches must qualify for one of the following rules:
321− Spelling fixes in documentation
322− Spelling fixes for errors which could break grep(1)
323− Warning fixes (cluttering with useless warnings is bad)
324− Compilation fixes (only if they are actually correct)
325− Runtime fixes (only if they actually fix things)
326− Removing use of deprecated functions/macros
327− Contact detail and documentation fixes
328− Non-portable code replaced by portable code (even in arch-specific,
329− since people copy, as long as it's trivial)
330− Any fix by the author/maintainer of the file (ie. patch monkey
331− in re-transmission mode)
327+
328+- Spelling fixes in documentation
329+- Spelling fixes for errors which could break :manpage:`grep(1)`
330+- Warning fixes (cluttering with useless warnings is bad)
331+- Compilation fixes (only if they are actually correct)
332+- Runtime fixes (only if they actually fix things)
333+- Removing use of deprecated functions/macros
334+- Contact detail and documentation fixes
335+- Non-portable code replaced by portable code (even in arch-specific,
336+ since people copy, as long as it's trivial)
337+- Any fix by the author/maintainer of the file (ie. patch monkey
338+ in re-transmission mode)
332339
333340
334341
335−6) No MIME, no links, no compression, no attachments. Just plain text.
336−-----------------------------------------------------------------------
342+6) No MIME, no links, no compression, no attachments. Just plain text
343+----------------------------------------------------------------------
337344
338345 Linus and other kernel developers need to be able to read and comment
339346 on 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
341348 tools, so that they may comment on specific portions of your code.
342349
343350 For this reason, all patches should be submitted by e-mail "inline".
344−WARNING: Be wary of your editor's word-wrap corrupting your patch,
345−if you choose to cut-n-paste your patch.
351+
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.
346356
347357 Do not attach the patch as a MIME attachment, compressed or not.
348358 Many 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
353363 Exception: If your mailer is mangling patches then someone may ask
354364 you to re-send them using MIME.
355365
356−See Documentation/email-clients.txt for hints about configuring
357−your e-mail client so that it sends your patches untouched.
366+See :ref:`Documentation/email-clients.txt <email_clients>`
367+for hints about configuring your e-mail client so that it sends your patches
368+untouched.
358369
359−7) E-mail size.
360−---------------
370+7) E-mail size
371+--------------
361372
362373 Large changes are not appropriate for mailing lists, and some
363374 maintainers. 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
366377 that if your patch exceeds 300 kB, it almost certainly needs to be broken up
367378 anyway.
368379
369−8) Respond to review comments.
370−------------------------------
380+8) Respond to review comments
381+-----------------------------
371382
372383 Your patch will almost certainly get comments from reviewers on ways in
373384 which 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
382393 politely and address the problems they have pointed out.
383394
384395
385−9) Don't get discouraged - or impatient.
386−----------------------------------------
396+9) Don't get discouraged - or impatient
397+---------------------------------------
387398
388399 After you have submitted your change, be patient and wait. Reviewers are
389400 busy 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
419430 pass it on as an open-source patch. The rules are pretty simple: if you
420431 can certify the below:
421432
422− Developer's Certificate of Origin 1.1
433+Developer's Certificate of Origin 1.1
434+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
423435
424− By making a contribution to this project, I certify that:
436+By making a contribution to this project, I certify that:
425437
426438 (a) The contribution was created in whole or in part by me and I
427439 have the right to submit it under the open source license
@@ -445,7 +457,7 @@ can certify the below: · 17 unmodified lines
445457 maintained indefinitely and may be redistributed consistent with
446458 this project or the open source license(s) involved.
447459
448−then you just add a line saying
460+then you just add a line saying::
449461
450462 Signed-off-by: Random J Developer <random@developer.example.org>
451463
@@ -466,7 +478,7 @@ you add a line between the last Signed-off-by header and yours, indicating · 14 unmodified lines
466478 the nature of your changes. While there is nothing mandatory about this, it
467479 seems like prepending the description with your mail and/or name, all
468480 enclosed in square brackets, is noticeable enough to make it obvious that
469−you are responsible for last-minute changes. Example :
481+you are responsible for last-minute changes. Example::
470482
471483 Signed-off-by: Random J Developer <random@developer.example.org>
472484 [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
481493 Special note to back-porters: It seems to be a common and useful practice
482494 to insert an indication of the origin of a patch at the top of the commit
483495 message (just after the subject line) to facilitate tracking. For instance,
484−here's what we see in a 3.x-stable release:
496+here's what we see in a 3.x-stable release::
485497
486−Date: Tue Oct 7 07:26:38 2014 -0400
498+ Date: Tue Oct 7 07:26:38 2014 -0400
487499
488500 libata: Un-break ATA blacklist
489501
490502 commit 1c40279960bcd7d52dbdf1d466b20d24b99176c8 upstream.
491503
492−And here's what might appear in an older kernel once a patch is backported:
504+And here's what might appear in an older kernel once a patch is backported::
493505
494506 Date: Tue May 13 22:12:27 2008 +0200
495507
@@ -529,7 +541,7 @@ When in doubt people should refer to the original discussion in the mailing · 33 unmodified lines
529541 list archives.
530542
531543 If a person has had the opportunity to comment on a patch, but has not
532−provided such comments, you may optionally add a "Cc:" tag to the patch.
544+provided such comments, you may optionally add a ``Cc:`` tag to the patch.
533545 This is the only tag which might be added without an explicit action by the
534546 person it names - but it should indicate that this person was copied on the
535547 patch. This tag documents that potentially interested parties
@@ -552,11 +564,12 @@ future patches, and ensures credit for the testers. · 16 unmodified lines
552564 Reviewed-by:, instead, indicates that the patch has been reviewed and found
553565 acceptable according to the Reviewer's Statement:
554566
555− Reviewer's statement of oversight
567+Reviewer's statement of oversight
568+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
556569
557− By offering my Reviewed-by: tag, I state that:
570+By offering my Reviewed-by: tag, I state that:
558571
559− (a) I have carried out a technical review of this patch to
572+ (a) I have carried out a technical review of this patch to
560573 evaluate its appropriateness and readiness for inclusion into
561574 the mainline kernel.
562575
@@ -594,24 +607,25 @@ A Fixes: tag indicates that the patch fixes an issue in a previous commit. It · 31 unmodified lines
594607 is used to make it easy to determine where a bug originated, which can help
595608 review a bug fix. This tag also assists the stable kernel team in determining
596609 which stable kernel versions should receive your fix. This is the preferred
597−method for indicating a bug fixed by the patch. See #2 above for more details.
610+method for indicating a bug fixed by the patch. See :ref:`describe_changes`
611+for more details.
598612
599613
600614 14) The canonical patch format
601615 ------------------------------
602616
603617 This section describes how the patch itself should be formatted. Note
604−that, if you have your patches stored in a git repository, proper patch
605−formatting can be had with "git format-patch". The tools cannot create
618+that, if you have your patches stored in a ``git`` repository, proper patch
619+formatting can be had with ``git format-patch``. The tools cannot create
606620 the necessary text, though, so read the instructions below anyway.
607621
608−The canonical patch subject line is:
622+The canonical patch subject line is::
609623
610624 Subject: [PATCH 001/123] subsystem: summary phrase
611625
612626 The canonical patch message body contains the following:
613627
614− - A "from" line specifying the patch author (only needed if the person
628+ - A ``from`` line specifying the patch author (only needed if the person
615629 sending the patch is not the author).
616630
617631 - An empty line.
@@ -619,46 +633,46 @@ The canonical patch message body contains the following: · 1 unmodified line
619633 - The body of the explanation, line wrapped at 75 columns, which will
620634 be copied to the permanent changelog to describe this patch.
621635
622− - The "Signed-off-by:" lines, described above, which will
636+ - The ``Signed-off-by:`` lines, described above, which will
623637 also go in the changelog.
624638
625− - A marker line containing simply "---".
639+ - A marker line containing simply ``---``.
626640
627641 - Any additional comments not suitable for the changelog.
628642
629− - The actual patch (diff output).
643+ - The actual patch (``diff`` output).
630644
631645 The Subject line format makes it very easy to sort the emails
632646 alphabetically by subject line - pretty much any email reader will
633647 support that - since because the sequence number is zero-padded,
634648 the numerical and alphabetic sort is the same.
635649
636−The "subsystem" in the email's Subject should identify which
650+The ``subsystem`` in the email's Subject should identify which
637651 area or subsystem of the kernel is being patched.
638652
639−The "summary phrase" in the email's Subject should concisely
640−describe the patch which that email contains. The "summary
641−phrase" should not be a filename. Do not use the same "summary
642−phrase" for every patch in a whole patch series (where a "patch
643−series" is an ordered sequence of multiple, related patches).
653+The ``summary phrase`` in the email's Subject should concisely
654+describe the patch which that email contains. The ``summary
655+phrase`` should not be a filename. Do not use the same ``summary
656+phrase`` for every patch in a whole patch series (where a ``patch
657+series`` is an ordered sequence of multiple, related patches).
644658
645−Bear in mind that the "summary phrase" of your email becomes a
659+Bear in mind that the ``summary phrase`` of your email becomes a
646660 globally-unique identifier for that patch. It propagates all the way
647−into the git changelog. The "summary phrase" may later be used in
661+into the ``git`` changelog. The ``summary phrase`` may later be used in
648662 developer discussions which refer to the patch. People will want to
649−google for the "summary phrase" to read discussion regarding that
663+google for the ``summary phrase`` to read discussion regarding that
650664 patch. It will also be the only thing that people may quickly see
651665 when, two or three months later, they are going through perhaps
652−thousands of patches using tools such as "gitk" or "git log
653−--oneline".
666+thousands of patches using tools such as ``gitk`` or ``git log
667+--oneline``.
654668
655−For these reasons, the "summary" must be no more than 70-75
669+For these reasons, the ``summary`` must be no more than 70-75
656670 characters, and it must describe both what the patch changes, as well
657671 as why the patch might be necessary. It is challenging to be both
658672 succinct and descriptive, but that is what a well-written summary
659673 should do.
660674
661−The "summary phrase" may be prefixed by tags enclosed in square
675+The ``summary phrase`` may be prefixed by tags enclosed in square
662676 brackets: "Subject: [PATCH <tag>...] <summary phrase>". The tags are
663677 not considered part of the summary phrase, but describe how the patch
664678 should 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
670684 applied and that they have reviewed or applied all of the patches in
671685 the patch series.
672686
673−A couple of example Subjects:
687+A couple of example Subjects::
674688
675689 Subject: [PATCH 2/5] ext2: improve scalability of bitmap searching
676690 Subject: [PATCH v2 01/27] x86: fix eflags tracking
677691
678−The "from" line must be the very first line in the message body,
692+The ``from`` line must be the very first line in the message body,
679693 and has the form:
680694
681695 From: Original Author <author@example.com>
682696
683−The "from" line specifies who will be credited as the author of the
684−patch in the permanent changelog. If the "from" line is missing,
685−then the "From:" line from the email header will be used to determine
697+The ``from`` line specifies who will be credited as the author of the
698+patch in the permanent changelog. If the ``from`` line is missing,
699+then the ``From:`` line from the email header will be used to determine
686700 the patch author in the changelog.
687701
688702 The 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
694708 looking for the applicable patch. If a patch fixes a compile failure,
695709 it may not be necessary to include _all_ of the compile failures; just
696710 enough that it is likely that someone searching for the patch can find
697−it. As in the "summary phrase", it is important to be both succinct as
711+it. As in the ``summary phrase``, it is important to be both succinct as
698712 well as descriptive.
699713
700−The "---" marker line serves the essential purpose of marking for patch
714+The ``---`` marker line serves the essential purpose of marking for patch
701715 handling tools where the changelog message ends.
702716
703−One good use for the additional comments after the "---" marker is for
704−a diffstat, to show what files have changed, and the number of
705−inserted and deleted lines per file. A diffstat is especially useful
717+One good use for the additional comments after the ``---`` marker is for
718+a ``diffstat``, to show what files have changed, and the number of
719+inserted and deleted lines per file. A ``diffstat`` is especially useful
706720 on bigger patches. Other comments relevant only to the moment or the
707721 maintainer, not suitable for the permanent changelog, should also go
708−here. A good example of such comments might be "patch changelogs"
722+here. A good example of such comments might be ``patch changelogs``
709723 which describe what has changed between the v1 and v2 version of the
710724 patch.
711725
712−If you are going to include a diffstat after the "---" marker, please
713−use diffstat options "-p 1 -w 70" so that filenames are listed from
726+If you are going to include a ``diffstat`` after the ``---`` marker, please
727+use ``diffstat`` options ``-p 1 -w 70`` so that filenames are listed from
714728 the top of the kernel source tree and don't use too much horizontal
715−space (easily fit in 80 columns, maybe with some indentation). (git
729+space (easily fit in 80 columns, maybe with some indentation). (``git``
716730 generates appropriate diffstats by default.)
717731
718732 See more details on the proper patch format in the following
719733 references.
720734
735+.. _explicit_in_reply_to:
736+
721737 15) Explicit In-Reply-To headers
722738 --------------------------------
723739
724740 It 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 with
741+(e.g., when using ``git send-email``) to associate the patch with
726742 previous relevant discussion, e.g. to link a bug fix to the email with
727743 the bug report. However, for a multi-patch series, it is generally
728744 best 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
732748 the cover email text) to link to an earlier version of the patch series.
733749
734750
735−16) Sending "git pull" requests
736−-------------------------------
751+16) Sending ``git pull`` requests
752+---------------------------------
737753
738754 If you have a series of patches, it may be most convenient to have the
739755 maintainer pull them directly into the subsystem repository with a
740−"git pull" operation. Note, however, that pulling patches from a developer
756+``git pull`` operation. Note, however, that pulling patches from a developer
741757 requires a higher degree of trust than taking patches from a mailing list.
742758 As a result, many subsystem maintainers are reluctant to take pull
743759 requests, 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
746762
747763 A pull request should have [GIT] or [PULL] in the subject line. The
748764 request itself should include the repository name and the branch of
749−interest on a single line; it should look something like:
765+interest on a single line; it should look something like::
750766
751767 Please pull from
752768
@@ -755,10 +771,10 @@ interest on a single line; it should look something like: · 2 unmodified lines
755771 to get these changes:
756772
757773 A pull request should also include an overall message saying what will be
758−included in the request, a "git shortlog" listing of the patches
759−themselves, and a diffstat showing the overall effect of the patch series.
774+included in the request, a ``git shortlog`` listing of the patches
775+themselves, and a ``diffstat`` showing the overall effect of the patch series.
760776 The easiest way to get all this information together is, of course, to let
761−git do it for you with the "git request-pull" command.
777+``git`` do it for you with the ``git request-pull`` command.
762778
763779 Some maintainers (including Linus) want to see pull requests from signed
764780 commits; 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
770786 new developers, but there is no way around it. Attending conferences can
771787 be a good way to find developers who can sign your key.
772788
773−Once you have prepared a patch series in git that you wish to have somebody
774−pull, create a signed tag with "git tag -s". This will create a new tag
789+Once you have prepared a patch series in ``git`` that you wish to have somebody
790+pull, create a signed tag with ``git tag -s``. This will create a new tag
775791 identifying the last commit in the series and containing a signature
776792 created with your private key. You will also have the opportunity to add a
777793 changelog-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
782798 public tree.
783799
784800 When generating your pull request, use the signed tag as the target. A
785−command like this will do the trick:
801+command like this will do the trick::
786802
787803 git request-pull master git://my.public.tree/linux.git my-signed-tag
788804
789805
790−----------------------
791−SECTION 2 - REFERENCES
792−----------------------
806+REFERENCES
807+**********
793808
794809 Andrew Morton, "The perfect patch" (tpp).
795810 <http://www.ozlabs.org/~akpm/stuff/tpp.txt>
@@ -799,23 +814,28 @@ Jeff Garzik, "Linux kernel patch submission format". · 3 unmodified lines
799814
800815 Greg Kroah-Hartman, "How to piss off a kernel subsystem maintainer".
801816 <http://www.kroah.com/log/linux/maintainer.html>
817+
802818 <http://www.kroah.com/log/linux/maintainer-02.html>
819+
803820 <http://www.kroah.com/log/linux/maintainer-03.html>
821+
804822 <http://www.kroah.com/log/linux/maintainer-04.html>
823+
805824 <http://www.kroah.com/log/linux/maintainer-05.html>
825+
806826 <http://www.kroah.com/log/linux/maintainer-06.html>
807827
808828 NO!!!! No more huge patch bombs to linux-kernel@vger.kernel.org people!
809829 <https://lkml.org/lkml/2005/7/11/336>
810830
811831 Kernel Documentation/CodingStyle:
812− <Documentation/CodingStyle>
832+ :ref:`Documentation/CodingStyle <codingstyle>`
813833
814834 Linus Torvalds's mail on the canonical patch format:
815835 <http://lkml.org/lkml/2005/4/7/183>
816836
817837 Andi Kleen, "On submitting kernel patches"
818838 Some strategies to get difficult or controversial changes in.
839+
819840 http://halobates.de/on-submitting-patches.pdf
820841
821−--
Documentation/accounting/Makefile+0−7
@@ -1,7 +0,0 @@
1−# List of programs to build
2−hostprogs-y := getdelays
3−
4−# Tell kbuild to always build the programs
5−always := $(hostprogs-y)
6−
7−HOSTCFLAGS_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
5454 task of a thread group, the per-tgid statistics are also sent. More details
5555 are given in the taskstats interface description.
5656
57−The getdelays.c userspace utility in this directory allows simple commands to
58−be run and the corresponding delay statistics to be displayed. It also serves
59−as an example of using the taskstats interface.
57+The getdelays.c userspace utility in tools/accounting directory allows simple
58+commands to be run and the corresponding delay statistics to be displayed. It
59+also serves as an example of using the taskstats interface.
6060
6161 Usage
6262 -----
Documentation/acpi/acpi-lid.txt+96−0
@@ -0,0 +1,96 @@
1+Special Usage Model of the ACPI Control Method Lid Device
2+
3+Copyright (C) 2016, Intel Corporation
4+Author: Lv Zheng <lv.zheng@intel.com>
5+
6+
7+Abstract:
8+
9+Platforms containing lids convey lid state (open/close) to OSPMs using a
10+control method lid device. To implement this, the AML tables issue
11+Notify(lid_device, 0x80) to notify the OSPMs whenever the lid state has
12+changed. The _LID control method for the lid device must be implemented to
13+report the "current" state of the lid as either "opened" or "closed".
14+
15+For most platforms, both the _LID method and the lid notifications are
16+reliable. However, there are exceptions. In order to work with these
17+exceptional buggy platforms, special restrictions and expections should be
18+taken into account. This document describes the restrictions and the
19+expections of the Linux ACPI lid device driver.
20+
21+
22+1. Restrictions of the returning value of the _LID control method
23+
24+The _LID control method is described to return the "current" lid state.
25+However the word of "current" has ambiguity, some buggy AML tables return
26+the lid state upon the last lid notification instead of returning the lid
27+state 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
29+initial returning value. When the AML tables implement this control method
30+with cached value, the initial returning value is likely not reliable.
31+There are platforms always retun "closed" as initial lid state.
32+
33+2. Restrictions of the lid state change notifications
34+
35+There are buggy AML tables never notifying when the lid device state is
36+changed to "opened". Thus the "opened" notification is not guaranteed. But
37+it is guaranteed that the AML tables always notify "closed" when the lid
38+state is changed to "closed". The "closed" notification is normally used to
39+trigger some system power saving operations on Windows. Since it is fully
40+tested, it is reliable from all AML tables.
41+
42+3. Expections for the userspace users of the ACPI lid device driver
43+
44+The ACPI button driver exports the lid state to the userspace via the
45+following file:
46+ /proc/acpi/button/lid/LID0/state
47+This file actually calls the _LID control method described above. And given
48+the previous explanation, it is not reliable enough on some platforms. So
49+it is advised for the userspace program to not to solely rely on this file
50+to determine the actual lid state.
51+
52+The ACPI button driver emits the following input event to the userspace:
53+ SW_LID
54+The ACPI lid device driver is implemented to try to deliver the platform
55+triggered events to the userspace. However, given the fact that the buggy
56+firmware cannot make sure "opened"/"closed" events are paired, the ACPI
57+button driver uses the following 3 modes in order not to trigger issues.
58+
59+If the userspace hasn't been prepared to ignore the unreliable "opened"
60+events and the unreliable initial state notification, Linux users can use
61+the following kernel parameters to handle the possible issues:
62+A. 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.
72+B. 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+
80+If the userspace has been prepared to ignore the unreliable "opened" events
81+and the unreliable initial state notification, Linux users should always
82+use the following kernel parameter:
83+C. 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
2828 ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
2929 Package ()
3030 {
31− Package () {"reset-gpio", Package() {^BTH, 1, 1, 0 }},
32− Package () {"shutdown-gpio", Package() {^BTH, 0, 0, 0 }},
31+ Package () {"reset-gpios", Package() {^BTH, 1, 1, 0 }},
32+ Package () {"shutdown-gpios", Package() {^BTH, 0, 0, 0 }},
3333 }
3434 })
3535 }
@@ -48,7 +48,7 @@ Since ACPI GpioIo() resource does not have a field saying whether it is · 12 unmodified lines
4848 active low or high, the "active_low" argument can be used here. Setting
4949 it to 1 marks the GPIO as active low.
5050
51−In our Bluetooth example the "reset-gpio" refers to the second GpioIo()
51+In our Bluetooth example the "reset-gpios" refers to the second GpioIo()
5252 resource, second pin in that resource with the GPIO number of 31.
5353
5454 ACPI GPIO Mappings Provided by Drivers
@@ -83,8 +83,8 @@ static const struct acpi_gpio_params reset_gpio = { 1, 1, false }; · 28 unmodified lines
8383 static const struct acpi_gpio_params shutdown_gpio = { 0, 0, false };
8484
8585 static const struct acpi_gpio_mapping bluetooth_acpi_gpios[] = {
86− { "reset-gpio", &reset_gpio, 1 },
87− { "shutdown-gpio", &shutdown_gpio, 1 },
86+ { "reset-gpios", &reset_gpio, 1 },
87+ { "shutdown-gpios", &shutdown_gpio, 1 },
8888 { },
8989 };
9090
Documentation/applying-patches.txt+221−210
@@ -1,9 +1,13 @@
1+.. _applying_patches:
12
2− Applying Patches To The Linux Kernel
3− ------------------------------------
3+Applying Patches To The Linux Kernel
4+++++++++++++++++++++++++++++++++++++
45
5− Original by: Jesper Juhl, August 2005
6− Last update: 2006-01-05
6+Original by:
7+ Jesper Juhl, August 2005
8+
9+Last update:
10+ 2016-09-14
711
812
913 A 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
1721
1822
1923 What is a patch?
20−---
21− A patch is a small text document containing a delta of changes between two
22−different versions of a source tree. Patches are created with the `diff'
24+================
25+
26+A patch is a small text document containing a delta of changes between two
27+different versions of a source tree. Patches are created with the ``diff``
2328 program.
29+
2430 To correctly apply a patch you need to know what base it was generated from
2531 and what new version the patch will change the source tree into. These
2632 should both be present in the patch file metadata or be possible to deduce
@@ -28,8 +34,9 @@ from the filename. · 1 unmodified line
2834
2935
3036 How do I apply or revert a patch?
31−---
32− You apply a patch with the `patch' program. The patch program reads a diff
37+=================================
38+
39+You apply a patch with the ``patch`` program. The patch program reads a diff
3340 (or patch) file and makes the changes to the source tree described in it.
3441
3542 Patches for the Linux kernel are generated relative to the parent directory
@@ -38,26 +45,33 @@ holding the kernel source dir. · 2 unmodified lines
3845 This means that paths to files inside the patch file contain the name of the
3946 kernel source directories it was generated against (or some other directory
4047 names like "a/" and "b/").
48+
4149 Since this is unlikely to match the name of the kernel source dir on your
4250 local machine (but is often useful info to see what version an otherwise
4351 unlabeled patch was generated against) you should change into your kernel
4452 source directory and then strip the first element of the path from filenames
45−in the patch file when applying it (the -p1 argument to `patch' does this).
53+in the patch file when applying it (the ``-p1`` argument to ``patch`` does
54+this).
4655
4756 To revert a previously applied patch, use the -R argument to patch.
48−So, if you applied a patch like this:
57+So, if you applied a patch like this::
58+
4959 patch -p1 < ../patch-x.y.z
5060
51−You can revert (undo) it like this:
61+You can revert (undo) it like this::
62+
5263 patch -R -p1 < ../patch-x.y.z
5364
5465
55−How do I feed a patch/diff file to `patch'?
56−---
57− This (as usual with Linux and other UNIX like operating systems) can be
66+How do I feed a patch/diff file to ``patch``?
67+=============================================
68+
69+This (as usual with Linux and other UNIX like operating systems) can be
5870 done in several different ways.
71+
5972 In all the examples below I feed the file (in uncompressed form) to patch
60−via stdin using the following syntax:
73+via stdin using the following syntax::
74+
6175 patch -p1 < path/to/patch-x.y.z
6276
6377 If 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
6579 section here.
6680
6781 Patch can also get the name of the file to use via the -i argument, like
68−this:
82+this::
83+
6984 patch -p1 -i path/to/patch-x.y.z
7085
71−If your patch file is compressed with gzip or bzip2 and you don't want to
86+If your patch file is compressed with gzip or xz and you don't want to
7287 uncompress it before applying it, then you can feed it to patch like this
73−instead:
74− zcat path/to/patch-x.y.z.gz | patch -p1
75− bzcat path/to/patch-x.y.z.bz2 | patch -p1
88+instead::
89+
90+ xzcat path/to/patch-x.y.z.xz | patch -p1
91+ bzcat path/to/patch-x.y.z.gz | patch -p1
7692
7793 If you wish to uncompress the patch file by hand first before applying it
7894 (what I assume you've done in the examples below), then you simply run
79−gunzip or bunzip2 on the file -- like this:
95+gunzip or xz on the file -- like this::
96+
8097 gunzip patch-x.y.z.gz
81− bunzip2 patch-x.y.z.bz2
98+ xz -d patch-x.y.z.xz
8299
83100 Which will leave you with a plain text patch-x.y.z file that you can feed to
84−patch via stdin or the -i argument, as you prefer.
101+patch via stdin or the ``-i`` argument, as you prefer.
85102
86−A few other nice arguments for patch are -s which causes patch to be silent
103+A few other nice arguments for patch are ``-s`` which causes patch to be silent
87104 except for errors which is nice to prevent errors from scrolling out of the
88−screen too fast, and --dry-run which causes patch to just print a listing of
89−what would happen, but doesn't actually make any changes. Finally --verbose
105+screen too fast, and ``--dry-run`` which causes patch to just print a listing of
106+what would happen, but doesn't actually make any changes. Finally ``--verbose``
90107 tells patch to print more information about the work being done.
91108
92109
93110 Common errors when patching
94−---
95− When patch applies a patch file it attempts to verify the sanity of the
111+===========================
112+
113+When patch applies a patch file it attempts to verify the sanity of the
96114 file in different ways.
115+
97116 Checking that the file looks like a valid patch file and checking the code
98117 around the bits being modified matches the context provided in the patch are
99118 just 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
111130 usually adjust the line numbers and apply the patch.
112131
113132 Whenever patch applies a patch that it had to modify a bit to make it fit
114−it'll tell you about it by saying the patch applied with 'fuzz'.
133+it'll tell you about it by saying the patch applied with **fuzz**.
115134 You should be wary of such changes since even though patch probably got it
116135 right it doesn't /always/ get it right, and the result will sometimes be
117136 wrong.
118137
119138 When patch encounters a change that it can't fix up with fuzz it rejects it
120−outright and leaves a file with a .rej extension (a reject file). You can
139+outright and leaves a file with a ``.rej`` extension (a reject file). You can
121140 read this file to see exactly what change couldn't be applied, so you can
122141 go fix it up by hand if you wish.
123142
@@ -132,43 +151,47 @@ to start with a fresh tree downloaded in full from kernel.org. · 8 unmodified lines
132151
133152 Let's look a bit more at some of the messages patch can produce.
134153
135−If patch stops and presents a "File to patch:" prompt, then patch could not
154+If patch stops and presents a ``File to patch:`` prompt, then patch could not
136155 find a file to be patched. Most likely you forgot to specify -p1 or you are
137156 in the wrong directory. Less often, you'll find patches that need to be
138−applied with -p0 instead of -p1 (reading the patch file should reveal if
157+applied with ``-p0`` instead of ``-p1`` (reading the patch file should reveal if
139158 this is the case -- if so, then this is an error by the person who created
140159 the patch but is not fatal).
141160
142−If you get "Hunk #2 succeeded at 1887 with fuzz 2 (offset 7 lines)." or a
161+If you get ``Hunk #2 succeeded at 1887 with fuzz 2 (offset 7 lines).`` or a
143162 message similar to that, then it means that patch had to adjust the location
144163 of the change (in this example it needed to move 7 lines from where it
145164 expected to make the change to make it fit).
165+
146166 The resulting file may or may not be OK, depending on the reason the file
147167 was different than expected.
168+
148169 This often happens if you try to apply a patch that was generated against a
149170 different kernel version than the one you are trying to patch.
150171
151−If you get a message like "Hunk #3 FAILED at 2387.", then it means that the
172+If you get a message like ``Hunk #3 FAILED at 2387.``, then it means that the
152173 patch could not be applied correctly and the patch program was unable to
153−fuzz its way through. This will generate a .rej file with the change that
154−caused the patch to fail and also a .orig file showing you the original
174+fuzz its way through. This will generate a ``.rej`` file with the change that
175+caused the patch to fail and also a ``.orig`` file showing you the original
155176 content that couldn't be changed.
156177
157−If you get "Reversed (or previously applied) patch detected! Assume -R? [n]"
178+If you get ``Reversed (or previously applied) patch detected! Assume -R? [n]``
158179 then patch detected that the change contained in the patch seems to have
159180 already been made.
181+
160182 If you actually did apply this patch previously and you just re-applied it
161183 in error, then just say [n]o and abort this patch. If you applied this patch
162184 previously and actually intended to revert it, but forgot to specify -R,
163−then you can say [y]es here to make patch revert it for you.
185+then you can say [**y**]es here to make patch revert it for you.
186+
164187 This can also happen if the creator of the patch reversed the source and
165188 destination directories when creating the patch, and in that case reverting
166189 the patch will in fact apply it.
167190
168−A message similar to "patch: **** unexpected end of file in patch" or "patch
169−unexpectedly ends in middle of line" means that patch could make no sense of
170−the file you fed to it. Either your download is broken, you tried to feed
171−patch a compressed patch file without uncompressing it first, or the patch
191+A message similar to ``patch: **** unexpected end of file in patch`` or
192+``patch unexpectedly ends in middle of line`` means that patch could make no
193+sense of the file you fed to it. Either your download is broken, you tried to
194+feed patch a compressed patch file without uncompressing it first, or the patch
172195 file that you are using has been mangled by a mail client or mail transfer
173196 agent along the way somewhere, e.g., by splitting a long line into two lines.
174197 Often 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
182205 wish to apply.
183206
184207
185−Are there any alternatives to `patch'?
186−---
187− Yes there are alternatives.
208+Are there any alternatives to ``patch``?
209+========================================
188210
189− You can use the `interdiff' program (http://cyberelk.net/tim/patchutils/) to
211+
212+Yes there are alternatives.
213+
214+You can use the ``interdiff`` program (http://cyberelk.net/tim/patchutils/) to
190215 generate a patch representing the differences between two patches and then
191216 apply the result.
192−This will let you move from something like 2.6.12.2 to 2.6.12.3 in a single
217+
218+This will let you move from something like 4.7.2 to 4.7.3 in a single
193219 step. The -z flag to interdiff will even let you feed it patches in gzip or
194220 bzip2 compressed form directly without the use of zcat or bzcat or manual
195221 decompression.
196222
197−Here's how you'd go from 2.6.12.2 to 2.6.12.3 in a single step:
198− interdiff -z ../patch-2.6.12.2.bz2 ../patch-2.6.12.3.gz | patch -p1
223+Here's how you'd go from 4.7.2 to 4.7.3 in a single step::
224+
225+ interdiff -z ../patch-4.7.2.gz ../patch-4.7.3.gz | patch -p1
199226
200227 Although interdiff may save you a step or two you are generally advised to
201228 do the additional steps since interdiff can get things wrong in some cases.
202229
203− Another alternative is `ketchup', which is a python script for automatic
230+Another alternative is ``ketchup``, which is a python script for automatic
204231 downloading and applying of patches (http://www.selenic.com/ketchup/).
205232
206− Other nice tools are diffstat, which shows a summary of changes made by a
233+Other nice tools are diffstat, which shows a summary of changes made by a
207234 patch; lsdiff, which displays a short listing of affected files in a patch
208235 file, along with (optionally) the line numbers of the start of each patch;
209236 and 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
211238
212239
213240 Where can I download the patches?
214−---
215− The patches are available at http://kernel.org/
241+=================================
242+
243+The patches are available at http://kernel.org/
216244 Most recent patches are linked from the front page, but they also have
217245 specific homes.
218246
219−The 2.6.x.y (-stable) and 2.6.x patches live at
220− ftp://ftp.kernel.org/pub/linux/kernel/v2.6/
247+The 4.x.y (-stable) and 4.x patches live at
221248
222−The -rc patches live at
223− ftp://ftp.kernel.org/pub/linux/kernel/v2.6/testing/
249+ ftp://ftp.kernel.org/pub/linux/kernel/v4.x/
224250
225−The -git patches live at
226− ftp://ftp.kernel.org/pub/linux/kernel/v2.6/snapshots/
251+The -rc patches live at
227252
228−The -mm kernels live at
229− ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/
253+ ftp://ftp.kernel.org/pub/linux/kernel/v4.x/testing/
230254
231−In place of ftp.kernel.org you can use ftp.cc.kernel.org, where cc is a
255+In place of ``ftp.kernel.org`` you can use ``ftp.cc.kernel.org``, where cc is a
232256 country code. This way you'll be downloading from a mirror site that's most
233257 likely geographically closer to you, resulting in faster downloads for you,
234258 less bandwidth used globally and less load on the main kernel.org servers --
235259 these are good things, so do use mirrors when possible.
236260
237261
238−The 2.6.x kernels
239−---
240− These are the base stable releases released by Linus. The highest numbered
262+The 4.x kernels
263+===============
264+
265+These are the base stable releases released by Linus. The highest numbered
241266 release is the most recent.
242267
243268 If regressions or other serious flaws are found, then a -stable fix patch
244−will be released (see below) on top of this base. Once a new 2.6.x base
269+will be released (see below) on top of this base. Once a new 4.x base
245270 kernel is released, a patch is made available that is a delta between the
246−previous 2.6.x kernel and the new one.
271+previous 4.x kernel and the new one.
272+
273+To apply a patch moving from 4.6 to 4.7, you'd do the following (note
274+that such patches do **NOT** apply on top of 4.x.y kernels but on top of the
275+base 4.x kernel -- if you need to move from 4.x.y to 4.x+1 you need to
276+first revert the 4.x.y patch).
277+
278+Here are some examples::
247279
248−To apply a patch moving from 2.6.11 to 2.6.12, you'd do the following (note
249−that such patches do *NOT* apply on top of 2.6.x.y kernels but on top of the
250−base 2.6.x kernel -- if you need to move from 2.6.x.y to 2.6.x+1 you need to
251−first revert the 2.6.x.y patch).
280+ # moving from 4.6 to 4.7
252281
253−Here 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
254286
255−# moving from 2.6.11 to 2.6.12
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
287+ # moving from 4.6.1 to 4.7
260288
261−# moving from 2.6.11.1 to 2.6.12
262−$ cd ~/linux-2.6.11.1 # change to kernel source dir
263−$ patch -p1 -R < ../patch-2.6.11.1 # revert the 2.6.11.1 patch
264− # source dir is now 2.6.11
265−$ patch -p1 < ../patch-2.6.12 # apply new 2.6.12 patch
266−$ cd ..
267−$ mv linux-2.6.11.1 linux-2.6.12 # rename source dir
289+ $ cd ~/linux-4.6.1 # change to kernel source dir
290+ $ patch -p1 -R < ../patch-4.6.1 # revert the 4.6.1 patch
291+ # source dir is now 4.6
292+ $ patch -p1 < ../patch-4.7 # apply new 4.7 patch
293+ $ cd ..
294+ $ mv linux-4.6.1 linux-4.7 # rename source dir
268295
269296
270−The 2.6.x.y kernels
271−---
272− Kernels with 4-digit versions are -stable kernels. They contain small(ish)
297+The 4.x.y kernels
298+=================
299+
300+Kernels with 3-digit versions are -stable kernels. They contain small(ish)
273301 critical fixes for security problems or significant regressions discovered
274−in a given 2.6.x kernel.
302+in a given 4.x kernel.
275303
276304 This is the recommended branch for users who want the most recent stable
277305 kernel and are not interested in helping test development/experimental
278306 versions.
279307
280−If no 2.6.x.y kernel is available, then the highest numbered 2.6.x kernel is
308+If no 4.x.y kernel is available, then the highest numbered 4.x kernel is
281309 the current stable kernel.
282310
283− note: the -stable team usually do make incremental patches available as well
311+.. note::
312+
313+ The -stable team usually do make incremental patches available as well
284314 as patches against the latest mainline release, but I only cover the
285315 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/
287317
288−These patches are not incremental, meaning that for example the 2.6.12.3
289−patch does not apply on top of the 2.6.12.2 kernel source, but rather on top
290−of the base 2.6.12 kernel source .
291−So, in order to apply the 2.6.12.3 patch to your existing 2.6.12.2 kernel
292−source you have to first back out the 2.6.12.2 patch (so you are left with a
293−base 2.6.12 kernel source) and then apply the new 2.6.12.3 patch.
318+These patches are not incremental, meaning that for example the 4.7.3
319+patch does not apply on top of the 4.7.2 kernel source, but rather on top
320+of the base 4.7 kernel source.
294321
295−Here's a small example:
322+So, in order to apply the 4.7.3 patch to your existing 4.7.2 kernel
323+source you have to first back out the 4.7.2 patch (so you are left with a
324+base 4.7 kernel source) and then apply the new 4.7.3 patch.
296325
297−$ cd ~/linux-2.6.12.2 # change into the kernel source dir
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
326+Here's a small example::
302327
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
303333
304334 The -rc kernels
305−---
306− These are release-candidate kernels. These are development kernels released
335+===============
336+
337+These are release-candidate kernels. These are development kernels released
307338 by Linus whenever he deems the current git (the kernel's source management
308339 tool) tree to be in a reasonably sane state adequate for testing.
309340
@@ -317,39 +348,44 @@ This is a good branch to run for people who want to help out testing · 7 unmodified lines
317348 development kernels but do not want to run some of the really experimental
318349 stuff (such people should see the sections about -git and -mm kernels below).
319350
320−The -rc patches are not incremental, they apply to a base 2.6.x kernel, just
321−like the 2.6.x.y patches described above. The kernel version before the -rcN
351+The -rc patches are not incremental, they apply to a base 4.x kernel, just
352+like the 4.x.y patches described above. The kernel version before the -rcN
322353 suffix denotes the version of the kernel that this -rc kernel will eventually
323354 turn into.
324−So, 2.6.13-rc5 means that this is the fifth release candidate for the 2.6.13
325−kernel and the patch should be applied on top of the 2.6.12 kernel source.
326355
327−Here are 3 examples of how to apply these patches:
356+So, 4.8-rc5 means that this is the fifth release candidate for the 4.8
357+kernel and the patch should be applied on top of the 4.7 kernel source.
328358
329−# first an example of moving from 2.6.12 to 2.6.13-rc3
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
359+Here are 3 examples of how to apply these patches::
334360
335−# now let's move from 2.6.13-rc3 to 2.6.13-rc5
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
361+ # first an example of moving from 4.7 to 4.8-rc3
341362
342−# finally let's try and move from 2.6.12.3 to 2.6.13-rc5
343−$ cd ~/linux-2.6.12.3 # change to the kernel source dir
344−$ patch -p1 -R < ../patch-2.6.12.3 # revert the 2.6.12.3 patch
345−$ patch -p1 < ../patch-2.6.13-rc5 # apply new 2.6.13-rc5 patch
346−$ cd ..
347−$ mv linux-2.6.12.3 linux-2.6.13-rc5 # rename the kernel source dir
363+ $ cd ~/linux-4.7 # change to the 4.7 source dir
364+ $ patch -p1 < ../patch-4.8-rc3 # apply the 4.8-rc3 patch
365+ $ cd ..
366+ $ mv linux-4.7 linux-4.8-rc3 # rename the source dir
367+
368+ # 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
348383
349384
350385 The -git kernels
351−---
352− These are daily snapshots of Linus' kernel tree (managed in a git
386+================
387+
388+These are daily snapshots of Linus' kernel tree (managed in a git
353389 repository, hence the name).
354390
355391 These 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
357393 generated automatically without even a cursory glance to see if they are
358394 sane.
359395
360−-git patches are not incremental and apply either to a base 2.6.x kernel or
361−a base 2.6.x-rc kernel -- you can see which from their name.
362−A patch named 2.6.12-git1 applies to the 2.6.12 kernel source and a patch
363−named 2.6.13-rc3-git2 applies to the source of the 2.6.13-rc3 kernel.
364−
365−Here are some examples of how to apply these patches:
366−
367−# moving from 2.6.12 to 2.6.12-git1
368−$ cd ~/linux-2.6.12 # change to the kernel source dir
369−$ patch -p1 < ../patch-2.6.12-git1 # apply the 2.6.12-git1 patch
370−$ cd ..
371−$ mv linux-2.6.12 linux-2.6.12-git1 # rename the kernel source dir
372−
373−# moving from 2.6.12-git1 to 2.6.13-rc2-git3
374−$ cd ~/linux-2.6.12-git1 # change to the kernel source dir
375−$ patch -p1 -R < ../patch-2.6.12-git1 # revert the 2.6.12-git1 patch
376− # we now have a 2.6.12 kernel
377−$ patch -p1 < ../patch-2.6.13-rc2 # apply the 2.6.13-rc2 patch
378− # the kernel is now 2.6.13-rc2
379−$ patch -p1 < ../patch-2.6.13-rc2-git3 # apply the 2.6.13-rc2-git3 patch
380− # the kernel is now 2.6.13-rc2-git3
381−$ cd ..
382−$ mv linux-2.6.12-git1 linux-2.6.13-rc2-git3 # rename source dir
383−
384−
385−The -mm kernels
386−---
387− These are experimental kernels released by Andrew Morton.
388−
389−The -mm tree serves as a sort of proving ground for new features and other
390−experimental patches.
391−Once a patch has proved its worth in -mm for a while Andrew pushes it on to
392−Linus for inclusion in mainline.
393−
394−Although it's encouraged that patches flow to Linus via the -mm tree, this
395−is not always enforced.
396−Subsystem maintainers (or individuals) sometimes push their patches directly
397−to Linus, even though (or after) they have been merged and tested in -mm (or
398−sometimes even without prior testing in -mm).
399−
400−You should generally strive to get your patches into mainline via -mm to
401−ensure maximum testing.
402−
403−This branch is in constant flux and contains many experimental features, a
396+-git patches are not incremental and apply either to a base 4.x kernel or
397+a base 4.x-rc kernel -- you can see which from their name.
398+A patch named 4.7-git1 applies to the 4.7 kernel source and a patch
399+named 4.8-rc3-git2 applies to the source of the 4.8-rc3 kernel.
400+
401+Here are some examples of how to apply these patches::
402+
403+ # moving from 4.7 to 4.7-git1
404+
405+ $ cd ~/linux-4.7 # change to the kernel source dir
406+ $ patch -p1 < ../patch-4.7-git1 # apply the 4.7-git1 patch
407+ $ cd ..
408+ $ mv linux-4.7 linux-4.7-git1 # rename the kernel source dir
409+
410+ # moving from 4.7-git1 to 4.8-rc2-git3
411+
412+ $ cd ~/linux-4.7-git1 # change to the kernel source dir
413+ $ patch -p1 -R < ../patch-4.7-git1 # revert the 4.7-git1 patch
414+ # we now have a 4.7 kernel
415+ $ patch -p1 < ../patch-4.8-rc2 # apply the 4.8-rc2 patch
416+ # the kernel is now 4.8-rc2
417+ $ patch -p1 < ../patch-4.8-rc2-git3 # apply the 4.8-rc2-git3 patch
418+ # the kernel is now 4.8-rc2-git3
419+ $ cd ..
420+ $ mv linux-4.7-git1 linux-4.8-rc2-git3 # rename source dir
421+
422+
423+The -mm patches and the linux-next tree
424+=======================================
425+
426+The -mm patches are experimental patches released by Andrew Morton.
427+
428+In the past, -mm tree were used to also test subsystem patches, but this
429+function is now done via the
430+:ref:`linux-next <https://www.kernel.org/doc/man-pages/linux-next.html>`
431+tree. The Subsystem maintainers push their patches first to linux-next,
432+and, during the merge window, sends them directly to Linus.
433+
434+The -mm patches serve as a sort of proving ground for new features and other
435+experimental patches that aren't merged via a subsystem tree.
436+Once such patches has proved its worth in -mm for a while Andrew pushes
437+it on to Linus for inclusion in mainline.
438+
439+The linux-next tree is daily updated, and includes the -mm patches.
440+Both are in constant flux and contains many experimental features, a
404441 lot of debugging patches not appropriate for mainline etc., and is the most
405442 experimental of the branches described in this document.
406443
407−These kernels are not appropriate for use on systems that are supposed to be
444+These patches are not appropriate for use on systems that are supposed to be
408445 stable and they are more risky to run than any of the other branches (make
409446 sure you have up-to-date backups -- that goes for any experimental kernel but
410−even more so for -mm kernels).
411−
412−These kernels in addition to all the other experimental patches they contain
413−usually also contain any changes in the mainline -git kernels available at
414−the time of release.
415−
416−Testing of -mm kernels is greatly appreciated since the whole point of the
417−tree is to weed out regressions, crashes, data corruption bugs, build
418−breakage (and any other bug in general) before changes are merged into the
419−more stable mainline Linus tree.
420−But testers of -mm should be aware that breakage in this tree is more common
421−than in any other tree.
422−
423−The -mm kernels are not released on a fixed schedule, but usually a few -mm
424−kernels are released in between each -rc kernel (1 to 3 is common).
425−The -mm kernels apply to either a base 2.6.x kernel (when no -rc kernels
426−have been released yet) or to a Linus -rc kernel.
427−
428−Here 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
447+even more so for -mm patches or using a Kernel from the linux-next tree).
448+
449+Testing of -mm patches and linux-next is greatly appreciated since the whole
450+point of those are to weed out regressions, crashes, data corruption bugs,
451+build breakage (and any other bug in general) before changes are merged into
452+the more stable mainline Linus tree.
453+
454+But testers of -mm and linux-next should be aware that breakages are
455+more common than in any other tree.
445456
446457
447458 This concludes this list of explanations of the various kernel trees.
Documentation/arm/00-INDEX+0−2
@@ -8,8 +8,6 @@ Interrupts · 7 unmodified lines
88 - ARM Interrupt subsystem documentation
99 IXP4xx
1010 - Intel IXP4xx Network processor.
11−Makefile
12− - Build sourcefiles as part of the Documentation-build for arm
1311 Netwinder
1412 - Netwinder specific documentation
1513 Porting
Documentation/arm/CCN.txt+10−6
@@ -18,13 +18,17 @@ and config2 fields of the perf_event_attr structure. The "events" · 17 unmodified lines
1818 directory provides configuration templates for all documented
1919 events, that can be used with perf tool. For example "xp_valid_flit"
2020 is an equivalent of "type=0x8,event=0x4". Other parameters must be
21−explicitly specified. For events originating from device, "node"
22−defines 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
25−require comparator values ("cmp_l" and "cmp_h") and "mask", being
26−index of the comparator mask.
21+explicitly specified.
2722
23+For events originating from device, "node" defines its index.
24+
25+Crosspoint PMU events require "xp" (index), "bus" (bus number)
26+and "vc" (virtual channel ID).
27+
28+Crosspoint watchpoint-based events (special "event" value 0xfe)
29+require "xp" and "vc" as as above plus "port" (device port index),
30+"dir" (transmit/receive direction), comparator values ("cmp_l"
31+and "cmp_h") and "mask", being index of the comparator mask.
2832 Masks are defined separately from the event description
2933 (due to limited number of the config values) in the "cmp_mask"
3034 directory, with first 8 configurable by user and additional
Documentation/arm/sunxi/README+12−1
@@ -31,6 +31,8 @@ SunXi family · 30 unmodified lines
3131 + User Manual
3232 http://dl.linux-sunxi.org/A13/A13%20User%20Manual%20-%20v1.2%20%282013-01-08%29.pdf
3333
34+ - Next Thing Co GR8 (sun5i)
35+
3436 * Dual ARM Cortex-A7 based SoCs
3537 - Allwinner A20 (sun7i)
3638 + User Manual
@@ -73,4 +75,13 @@ SunXi family · 36 unmodified lines
7375 * Octa ARM Cortex-A7 based SoCs
7476 - Allwinner A83T
7577 + Datasheet
76− http://dl.linux-sunxi.org/A83T/A83T_datasheet_Revision_1.1.pdf
78+ 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
6161 | Cavium | ThunderX GICv3 | #23154 | CAVIUM_ERRATUM_23154 |
6262 | Cavium | ThunderX Core | #27456 | CAVIUM_ERRATUM_27456 |
6363 | 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
2−hostprogs-y := cfag12864b-example
3−
4−# Tell kbuild to always build the programs
5−always := $(hostprogs-y)
6−
7−HOSTCFLAGS_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
101101 Also, you can mmap the framebuffer: open & mmap, munmap & close...
102102 which is the best option for most uses.
103103
104−Check Documentation/auxdisplay/cfag12864b-example.c
104+Check samples/auxdisplay/cfag12864b-example.c
105105 for a real working userspace complete program with usage examples.
Documentation/blackfin/00-INDEX+0−4
@@ -1,10 +1,6 @@
11 00-INDEX
22 - This file
3−Makefile
4− - Makefile for gptimers example file.
53 bfin-gpio-notes.txt
64 - Notes in developing/using bfin-gpio driver.
75 bfin-spi-notes.txt
86 - Notes for using bfin spi bus driver.
9−gptimers-example.c
10− - gptimers example
Documentation/blackfin/Makefile+0−5
@@ -1,5 +0,0 @@
1−ifneq ($(CONFIG_BLACKFIN),)
2−ifneq ($(CONFIG_BFIN_GPTIMERS),)
3−obj-m := gptimers-example.o
4−endif
5−endif
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
115115
116116 Various parameters that the generic i/o scheduler logic uses are set at
117117 a per-queue level (e.g maximum request size, maximum number of segments in
118−a scatter-gather list, hardsect size)
118+a scatter-gather list, logical block size)
119119
120120 Some parameters that were earlier available as global arrays indexed by
121121 major/minor are now directly associated with the queue. Some of these may
@@ -156,7 +156,7 @@ Some new queue property settings: · 34 unmodified lines
156156 blk_queue_max_segment_size(q, max_seg_size)
157157 Maximum size of a clustered segment, 64kB default.
158158
159− blk_queue_hardsect_size(q, hardsect_size)
159+ blk_queue_logical_block_size(q, logical_block_size)
160160 Lowest possible sector size that the hardware can operate
161161 on, 512 bytes default.
162162
Documentation/clk.txt+22−20
@@ -31,24 +31,25 @@ serve as a convenient shorthand for the implementation of the · 30 unmodified lines
3131 hardware-specific bits for the hypothetical "foo" hardware.
3232
3333 Tying the two halves of this interface together is struct clk_hw, which
34−is defined in struct clk_foo and pointed to within struct clk. This
34+is defined in struct clk_foo and pointed to within struct clk_core. This
3535 allows for easy navigation between the two discrete halves of the common
3636 clock interface.
3737
3838 Part 2 - common data structures and api
3939
40−Below is the common struct clk definition from
41−include/linux/clk-private.h, modified for brevity:
40+Below is the common struct clk_core definition from
41+drivers/clk/clk.c, modified for brevity:
4242
43− struct clk {
43+ struct clk_core {
4444 const char *name;
4545 const struct clk_ops *ops;
4646 struct clk_hw *hw;
47− char **parent_names;
48− struct clk **parents;
49− struct clk *parent;
50− struct hlist_head children;
51− struct hlist_node child_node;
47+ struct module *owner;
48+ struct clk_core *parent;
49+ const char **parent_names;
50+ struct clk_core **parents;
51+ u8 num_parents;
52+ u8 new_parent_index;
5253 ...
5354 };
5455
@@ -56,16 +57,19 @@ The members above make up the core of the clk tree topology. The clk · 1 unmodified line
5657 api itself defines several driver-facing functions which operate on
5758 struct clk. That api is documented in include/linux/clk.h.
5859
59−Platforms and devices utilizing the common struct clk use the struct
60−clk_ops pointer in struct clk to perform the hardware-specific parts of
61−the operations defined in clk.h:
60+Platforms and devices utilizing the common struct clk_core use the struct
61+clk_ops pointer in struct clk_core to perform the hardware-specific parts of
62+the operations defined in clk-provider.h:
6263
6364 struct clk_ops {
6465 int (*prepare)(struct clk_hw *hw);
6566 void (*unprepare)(struct clk_hw *hw);
67+ int (*is_prepared)(struct clk_hw *hw);
68+ void (*unprepare_unused)(struct clk_hw *hw);
6669 int (*enable)(struct clk_hw *hw);
6770 void (*disable)(struct clk_hw *hw);
6871 int (*is_enabled)(struct clk_hw *hw);
72+ void (*disable_unused)(struct clk_hw *hw);
6973 unsigned long (*recalc_rate)(struct clk_hw *hw,
7074 unsigned long parent_rate);
7175 long (*round_rate)(struct clk_hw *hw,
@@ -84,6 +88,8 @@ the operations defined in clk.h: · 12 unmodified lines
8488 u8 index);
8589 unsigned long (*recalc_accuracy)(struct clk_hw *hw,
8690 unsigned long parent_accuracy);
91+ int (*get_phase)(struct clk_hw *hw);
92+ int (*set_phase)(struct clk_hw *hw, int degrees);
8793 void (*init)(struct clk_hw *hw);
8894 int (*debug_init)(struct clk_hw *hw,
8995 struct dentry *dentry);
@@ -91,7 +97,7 @@ the operations defined in clk.h: · 1 unmodified line
9197
9298 Part 3 - hardware clk implementations
9399
94−The strength of the common struct clk comes from its .ops and .hw pointers
100+The strength of the common struct clk_core comes from its .ops and .hw pointers
95101 which abstract the details of struct clk from the hardware-specific bits, and
96102 vice versa. To illustrate consider the simple gateable clk implementation in
97103 drivers/clk/clk-gate.c:
@@ -107,7 +113,7 @@ struct clk_gate contains struct clk_hw hw as well as hardware-specific · 9 unmodified lines
107113 knowledge about which register and bit controls this clk's gating.
108114 Nothing about clock topology or accounting, such as enable_count or
109115 notifier_count, is needed here. That is all handled by the common
110−framework code and struct clk.
116+framework code and struct clk_core.
111117
112118 Let's walk through enabling this clk from driver code:
113119
@@ -139,22 +145,18 @@ static void clk_gate_set_bit(struct clk_gate *gate) · 25 unmodified lines
139145
140146 Note that to_clk_gate is defined as:
141147
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)
143149
144150 This pattern of abstraction is used for every clock hardware
145151 representation.
146152
147153 Part 4 - supporting your own clk hardware
148154
149−When implementing support for a new type of clock it only necessary to
155+When implementing support for a new type of clock it is only necessary to
150156 include the following header:
151157
152158 #include <linux/clk-provider.h>
153159
154−include/linux/clk.h is included within that header and clk-private.h
155−must never be included from the code which implements the operations for
156−a clock. More on that below in Part 5.
157−
158160 To construct a clk hardware structure for your platform you must define
159161 the following:
160162
Documentation/conf.py+93−13
@@ -14,11 +14,17 @@ · 13 unmodified lines
1414
1515 import sys
1616 import os
17+import sphinx
18+
19+# Get Sphinx version
20+major, minor, patch = map(int, sphinx.__version__.split("."))
21+
1722
1823 # If extensions (or modules to document with autodoc) are in another directory,
1924 # add these directories to sys.path here. If the directory is relative to the
2025 # documentation root, use os.path.abspath to make it absolute, like shown here.
2126 sys.path.insert(0, os.path.abspath('sphinx'))
27+from load_config import loadConfig
2228
2329 # -- General configuration ------------------------------------------------
2430
@@ -28,14 +34,13 @@ sys.path.insert(0, os.path.abspath('sphinx')) · 3 unmodified lines
2834 # Add any Sphinx extension module names here, as strings. They can be
2935 # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
3036 # ones.
31−extensions = ['kernel-doc', 'rstFlatTable', 'kernel_include']
37+extensions = ['kernel-doc', 'rstFlatTable', 'kernel_include', 'cdomain']
3238
33−# Gracefully handle missing rst2pdf.
34−try:
35− import rst2pdf
36− extensions += ['rst2pdf.pdfbuilder']
37−except ImportError:
38− pass
39+# The name of the math extension changed on Sphinx 1.4
40+if minor > 3:
41+ extensions.append("sphinx.ext.imgmath")
42+else:
43+ extensions.append("sphinx.ext.pngmath")
3944
4045 # Add any paths that contain templates here, relative to this directory.
4146 templates_path = ['_templates']
@@ -252,23 +257,92 @@ htmlhelp_basename = 'TheLinuxKerneldoc' · 210 unmodified lines
252257
253258 latex_elements = {
254259 # The paper size ('letterpaper' or 'a4paper').
255−#'papersize': 'letterpaper',
260+'papersize': 'a4paper',
256261
257262 # The font size ('10pt', '11pt' or '12pt').
258−#'pointsize': '10pt',
259−
260−# Additional stuff for the LaTeX preamble.
261−#'preamble': '',
263+'pointsize': '8pt',
262264
263265 # Latex figure (float) alignment
264266 #'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+ '''
265333 }
266334
267335 # Grouping the document tree into LaTeX files. List of tuples
268336 # (source start file, target name, title,
269337 # author, documentclass [howto, manual, or own class]).
270338 latex_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',
272346 'The kernel development community', 'manual'),
273347 ]
274348
@@ -419,3 +493,9 @@ pdf_documents = [ · 144 unmodified lines
419493 # line arguments.
420494 kerneldoc_bin = '../scripts/kernel-doc'
421495 kerneldoc_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+# ------------------------------------------------------------------------------
501+loadConfig(globals())
Documentation/dev-tools/coccinelle.rstrenamed from Documentation/coccinelle.txt+190−169
@@ -1,10 +1,18 @@
1−Copyright 2010 Nicolas Palix <npalix@diku.dk>
2−Copyright 2010 Julia Lawall <julia@diku.dk>
3−Copyright 2010 Gilles Muller <Gilles.Muller@lip6.fr>
1+.. Copyright 2010 Nicolas Palix <npalix@diku.dk>
2+.. Copyright 2010 Julia Lawall <julia@diku.dk>
3+.. Copyright 2010 Gilles Muller <Gilles.Muller@lip6.fr>
44
5+.. highlight:: none
56
6− Getting Coccinelle
7−~~~~~~~~~~~~~~~~~~~~
7+Coccinelle
8+==========
9+
10+Coccinelle is a tool for pattern matching and text transformation that has
11+many uses in kernel development, including the application of complex,
12+tree-wide patches and detection of problematic programming patterns.
13+
14+Getting Coccinelle
15+-------------------
816
917 The semantic patches included in the kernel use features and options
1018 which are provided by Coccinelle version 1.0.0-rc11 and above.
@@ -22,24 +30,23 @@ of many distributions, e.g. : · 11 unmodified lines
2230 - NetBSD
2331 - FreeBSD
2432
25−
2633 You can get the latest version released from the Coccinelle homepage at
2734 http://coccinelle.lip6.fr/
2835
2936 Information and tips about Coccinelle are also provided on the wiki
3037 pages at http://cocci.ekstranet.diku.dk/wiki/doku.php
3138
32−Once you have it, run the following command:
39+Once you have it, run the following command::
3340
3441 ./configure
3542 make
3643
37−as a regular user, and install it with
44+as a regular user, and install it with::
3845
3946 sudo make install
4047
41− Supplemental documentation
42−~~~~~~~~~~~~~~~~~~~~~~~~~~~~
48+Supplemental documentation
49+---------------------------
4350
4451 For supplemental documentation refer to the wiki:
4552
@@ -47,49 +54,52 @@ https://bottest.wiki.kernel.org/coccicheck · 1 unmodified line
4754
4855 The wiki documentation always refers to the linux-next version of the script.
4956
50− Using Coccinelle on the Linux kernel
51−~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
57+Using Coccinelle on the Linux kernel
58+------------------------------------
5259
5360 A Coccinelle-specific target is defined in the top level
54−Makefile. This target is named 'coccicheck' and calls the 'coccicheck'
55−front-end in the 'scripts' directory.
61+Makefile. This target is named ``coccicheck`` and calls the ``coccicheck``
62+front-end in the ``scripts`` directory.
5663
57−Four basic modes are defined: patch, report, context, and org. The mode to
58−use is specified by setting the MODE variable with 'MODE=<mode>'.
64+Four basic modes are defined: ``patch``, ``report``, ``context``, and
65+``org``. The mode to use is specified by setting the MODE variable with
66+``MODE=<mode>``.
5967
60−'patch' proposes a fix, when possible.
68+- ``patch`` proposes a fix, when possible.
6169
62−'report' generates a list in the following format:
70+- ``report`` generates a list in the following format:
6371 file:line:column-column: message
6472
65−'context' highlights lines of interest and their context in a
66−diff-like style.Lines of interest are indicated with '-'.
73+- ``context`` highlights lines of interest and their context in a
74+ diff-like style.Lines of interest are indicated with ``-``.
6775
68−'org' generates a report in the Org mode format of Emacs.
76+- ``org`` generates a report in the Org mode format of Emacs.
6977
7078 Note that not all semantic patches implement all modes. For easy use
7179 of Coccinelle, the default mode is "report".
7280
7381 Two other modes provide some common combinations of these modes.
7482
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.
7688
77−'rep+ctxt' runs successively the report mode and the context mode.
78− It should be used with the C option (described later)
79− which checks the code on a file basis.
89+Examples
90+~~~~~~~~
8091
81−Examples:
82− To make a report for every semantic patch, run the following command:
92+To make a report for every semantic patch, run the following command::
8393
8494 make coccicheck MODE=report
8595
86− To produce patches, run:
96+To produce patches, run::
8797
8898 make coccicheck MODE=patch
8999
90100
91101 The coccicheck target applies every semantic patch available in the
92−sub-directories of 'scripts/coccinelle' to the entire Linux kernel.
102+sub-directories of ``scripts/coccinelle`` to the entire Linux kernel.
93103
94104 For each semantic patch, a commit message is proposed. It gives a
95105 description 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
99109 positives. Thus, reports must be carefully checked, and patches
100110 reviewed.
101111
102−To enable verbose messages set the V= variable, for example:
112+To enable verbose messages set the V= variable, for example::
103113
104114 make coccicheck MODE=report V=1
105115
106− Coccinelle parallelization
107−~~~~~~~~~~~~~~~~~~~~~~~~~~~~
116+Coccinelle parallelization
117+---------------------------
108118
109119 By default, coccicheck tries to run as parallel as possible. To change
110−the parallelism, set the J= variable. For example, to run across 4 CPUs:
120+the parallelism, set the J= variable. For example, to run across 4 CPUs::
111121
112122 make coccicheck MODE=report J=4
113123
@@ -115,44 +125,47 @@ As of Coccinelle 1.0.2 Coccinelle uses Ocaml parmap for parallelization, · 1 unmodified line
115125 if support for this is detected you will benefit from parmap parallelization.
116126
117127 When parmap is enabled coccicheck will enable dynamic load balancing by using
118−'--chunksize 1' argument, this ensures we keep feeding threads with work
128+``--chunksize 1`` argument, this ensures we keep feeding threads with work
119129 one by one, so that we avoid the situation where most work gets done by only
120130 a few threads. With dynamic load balancing, if a thread finishes early we keep
121131 feeding it more work.
122132
123133 When parmap is enabled, if an error occurs in Coccinelle, this error
124−value is propagated back, the return value of the 'make coccicheck'
134+value is propagated back, the return value of the ``make coccicheck``
125135 captures this return value.
126136
127− Using Coccinelle with a single semantic patch
128−~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
137+Using Coccinelle with a single semantic patch
138+---------------------------------------------
129139
130140 The optional make variable COCCI can be used to check a single
131141 semantic patch. In that case, the variable must be initialized with
132142 the name of the semantic patch to apply.
133143
134−For instance:
144+For instance::
135145
136146 make coccicheck COCCI=<my_SP.cocci> MODE=patch
137−or
147+
148+or::
149+
138150 make coccicheck COCCI=<my_SP.cocci> MODE=report
139151
140152
141− Controlling Which Files are Processed by Coccinelle
142−~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
153+Controlling Which Files are Processed by Coccinelle
154+---------------------------------------------------
155+
143156 By default the entire kernel source tree is checked.
144157
145−To apply Coccinelle to a specific directory, M= can be used.
146−For example, to check drivers/net/wireless/ one may write:
158+To apply Coccinelle to a specific directory, ``M=`` can be used.
159+For example, to check drivers/net/wireless/ one may write::
147160
148161 make coccicheck M=drivers/net/wireless/
149162
150163 To apply Coccinelle on a file basis, instead of a directory basis, the
151−following command may be used:
164+following command may be used::
152165
153166 make C=1 CHECK="scripts/coccicheck"
154167
155−To check only newly edited code, use the value 2 for the C flag, i.e.
168+To check only newly edited code, use the value 2 for the C flag, i.e.::
156169
157170 make C=2 CHECK="scripts/coccicheck"
158171
@@ -166,8 +179,8 @@ semantic patch as shown in the previous section. · 7 unmodified lines
166179 The "report" mode is the default. You can select another one with the
167180 MODE variable explained above.
168181
169− Debugging Coccinelle SmPL patches
170−~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
182+Debugging Coccinelle SmPL patches
183+---------------------------------
171184
172185 Using coccicheck is best as it provides in the spatch command line
173186 include options matching the options used when we compile the kernel.
@@ -177,8 +190,8 @@ manually run Coccinelle with debug options added. · 3 unmodified lines
177190 Alternatively you can debug running Coccinelle against SmPL patches
178191 by asking for stderr to be redirected to stderr, by default stderr
179192 is redirected to /dev/null, if you'd like to capture stderr you
180−can specify the DEBUG_FILE="file.txt" option to coccicheck. For
181−instance:
193+can specify the ``DEBUG_FILE="file.txt"`` option to coccicheck. For
194+instance::
182195
183196 rm -f cocci.err
184197 make coccicheck COCCI=scripts/coccinelle/free/kfree.cocci MODE=report DEBUG_FILE=cocci.err
@@ -186,7 +199,7 @@ instance: · 1 unmodified line
186199
187200 You can use SPFLAGS to add debugging flags, for instance you may want to
188201 add both --profile --show-trying to SPFLAGS when debugging. For instance
189−you may want to use:
202+you may want to use::
190203
191204 rm -f err.log
192205 export COCCI=scripts/coccinelle/misc/irqf_oneshot.cocci
@@ -198,24 +211,24 @@ work. · 5 unmodified lines
198211
199212 DEBUG_FILE support is only supported when using coccinelle >= 1.2.
200213
201− .cocciconfig support
202−~~~~~~~~~~~~~~~~~~~~~~
214+.cocciconfig support
215+--------------------
203216
204217 Coccinelle supports reading .cocciconfig for default Coccinelle options that
205218 should be used every time spatch is spawned, the order of precedence for
206219 variables for .cocciconfig is as follows:
207220
208− o Your current user's home directory is processed first
209− o Your directory from which spatch is called is processed next
210− o The directory provided with the --dir option is processed last, if used
221+- Your current user's home directory is processed first
222+- Your directory from which spatch is called is processed next
223+- The directory provided with the --dir option is processed last, if used
211224
212225 Since coccicheck runs through make, it naturally runs from the kernel
213226 proper 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``.
215228
216−'make coccicheck' also supports using M= targets.If you do not supply
229+``make coccicheck`` also supports using M= targets.If you do not supply
217230 any M= target, it is assumed you want to target the entire kernel.
218−The kernel coccicheck script has:
231+The kernel coccicheck script has::
219232
220233 if [ "$KBUILD_EXTMOD" = "" ] ; then
221234 OPTIONS="--dir $srctree $COCCIINCLUDE"
@@ -235,12 +248,12 @@ override any of the kernel's .coccicheck's settings using SPFLAGS. · 13 unmodified lines
235248
236249 We help Coccinelle when used against Linux with a set of sensible defaults
237250 options for Linux with our own Linux .cocciconfig. This hints to coccinelle
238−git can be used for 'git grep' queries over coccigrep. A timeout of 200
251+git can be used for ``git grep`` queries over coccigrep. A timeout of 200
239252 seconds should suffice for now.
240253
241254 The options picked up by coccinelle when reading a .cocciconfig do not appear
242255 as arguments to spatch processes running on your system, to confirm what
243−options will be used by Coccinelle run:
256+options will be used by Coccinelle run::
244257
245258 spatch --print-options-only
246259
@@ -252,219 +265,227 @@ carries its own .cocciconfig, you will need to use SPFLAGS to use idutils if · 5 unmodified lines
252265 desired. See below section "Additional flags" for more details on how to use
253266 idutils.
254267
255− Additional flags
256−~~~~~~~~~~~~~~~~~~
268+Additional flags
269+----------------
257270
258271 Additional flags can be passed to spatch through the SPFLAGS
259272 variable. This works as Coccinelle respects the last flags
260−given to it when options are in conflict.
273+given to it when options are in conflict. ::
261274
262275 make SPFLAGS=--use-glimpse coccicheck
263276
264277 Coccinelle supports idutils as well but requires coccinelle >= 1.0.6.
265278 When no ID file is specified coccinelle assumes your ID database file
266279 is in the file .id-utils.index on the top level of the kernel, coccinelle
267−carries a script scripts/idutils_index.sh which creates the database with
280+carries a script scripts/idutils_index.sh which creates the database with::
268281
269282 mkid -i C --output .id-utils.index
270283
271284 If you have another database filename you can also just symlink with this
272−name.
285+name. ::
273286
274287 make SPFLAGS=--use-idutils coccicheck
275288
276289 Alternatively you can specify the database filename explicitly, for
277−instance:
290+instance::
278291
279292 make SPFLAGS="--use-idutils /full-path/to/ID" coccicheck
280293
281−See spatch --help to learn more about spatch options.
294+See ``spatch --help`` to learn more about spatch options.
282295
283−Note that the '--use-glimpse' and '--use-idutils' options
296+Note that the ``--use-glimpse`` and ``--use-idutils`` options
284297 require external tools for indexing the code. None of them is
285298 thus active by default. However, by indexing the code with
286299 one of these tools, and according to the cocci file used,
287300 spatch could proceed the entire code base more quickly.
288301
289− SmPL patch specific options
290−~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
302+SmPL patch specific options
303+---------------------------
291304
292305 SmPL patches can have their own requirements for options passed
293306 to Coccinelle. SmPL patch specific options can be provided by
294−providing them at the top of the SmPL patch, for instance:
307+providing them at the top of the SmPL patch, for instance::
295308
296−// Options: --no-includes --include-headers
309+ // Options: --no-includes --include-headers
297310
298− SmPL patch Coccinelle requirements
299−~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
311+SmPL patch Coccinelle requirements
312+----------------------------------
300313
301314 As Coccinelle features get added some more advanced SmPL patches
302315 may require newer versions of Coccinelle. If an SmPL patch requires
303316 at least a version of Coccinelle, this can be specified as follows,
304−as an example if requiring at least Coccinelle >= 1.0.5:
317+as an example if requiring at least Coccinelle >= 1.0.5::
305318
306−// Requires: 1.0.5
319+ // Requires: 1.0.5
307320
308− Proposing new semantic patches
309−~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
321+Proposing new semantic patches
322+-------------------------------
310323
311324 New semantic patches can be proposed and submitted by kernel
312325 developers. For sake of clarity, they should be organized in the
313−sub-directories of 'scripts/coccinelle/'.
326+sub-directories of ``scripts/coccinelle/``.
314327
315328
316− Detailed description of the 'report' mode
317−~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
329+Detailed description of the ``report`` mode
330+-------------------------------------------
331+
332+``report`` generates a list in the following format::
318333
319−'report' generates a list in the following format:
320334 file:line:column-column: message
321335
322−Example:
336+Example
337+~~~~~~~
323338
324−Running
339+Running::
325340
326341 make coccicheck MODE=report COCCI=scripts/coccinelle/api/err_cast.cocci
327342
328−will execute the following part of the SmPL script.
343+will execute the following part of the SmPL script::
329344
330−<smpl>
331−@r depends on !context && !patch && (org || report)@
332−expression x;
333−position p;
334−@@
345+ <smpl>
346+ @r depends on !context && !patch && (org || report)@
347+ expression x;
348+ position p;
349+ @@
335350
336− ERR_PTR@p(PTR_ERR(x))
351+ ERR_PTR@p(PTR_ERR(x))
337352
338−@script:python depends on report@
339−p << r.p;
340−x << r.x;
341−@@
353+ @script:python depends on report@
354+ p << r.p;
355+ x << r.x;
356+ @@
342357
343−msg="ERR_CAST can be used with %s" % (x)
344−coccilib.report.print_report(p[0], msg)
345−</smpl>
358+ msg="ERR_CAST can be used with %s" % (x)
359+ coccilib.report.print_report(p[0], msg)
360+ </smpl>
346361
347362 This SmPL excerpt generates entries on the standard output, as
348−illustrated below:
363+illustrated below::
349364
350−/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 auth
352−/home/user/linux/crypto/xts.c:227:9-16: ERR_CAST can be used with alg
365+ /home/user/linux/crypto/ctr.c:188:9-16: ERR_CAST can be used with alg
366+ /home/user/linux/crypto/authenc.c:619:9-16: ERR_CAST can be used with auth
367+ /home/user/linux/crypto/xts.c:227:9-16: ERR_CAST can be used with alg
353368
354369
355− Detailed description of the 'patch' mode
356−~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
370+Detailed description of the ``patch`` mode
371+------------------------------------------
357372
358−When the 'patch' mode is available, it proposes a fix for each problem
373+When the ``patch`` mode is available, it proposes a fix for each problem
359374 identified.
360375
361−Example:
376+Example
377+~~~~~~~
378+
379+Running::
362380
363−Running
364381 make coccicheck MODE=patch COCCI=scripts/coccinelle/api/err_cast.cocci
365382
366−will execute the following part of the SmPL script.
383+will execute the following part of the SmPL script::
367384
368−<smpl>
369−@ depends on !context && patch && !org && !report @
370−expression x;
371−@@
385+ <smpl>
386+ @ depends on !context && patch && !org && !report @
387+ expression x;
388+ @@
372389
373−- ERR_PTR(PTR_ERR(x))
374−+ ERR_CAST(x)
375−</smpl>
390+ - ERR_PTR(PTR_ERR(x))
391+ + ERR_CAST(x)
392+ </smpl>
376393
377394 This SmPL excerpt generates patch hunks on the standard output, as
378−illustrated below:
395+illustrated below::
379396
380−diff -u -p a/crypto/ctr.c b/crypto/ctr.c
381−--- a/crypto/ctr.c 2010-05-26 10:49:38.000000000 +0200
382−+++ b/crypto/ctr.c 2010-06-03 23:44:49.000000000 +0200
383−@@ -185,7 +185,7 @@ static struct crypto_instance *crypto_ct
397+ diff -u -p a/crypto/ctr.c b/crypto/ctr.c
398+ --- a/crypto/ctr.c 2010-05-26 10:49:38.000000000 +0200
399+ +++ b/crypto/ctr.c 2010-06-03 23:44:49.000000000 +0200
400+ @@ -185,7 +185,7 @@ static struct crypto_instance *crypto_ct
384401 alg = crypto_attr_alg(tb[1], CRYPTO_ALG_TYPE_CIPHER,
385402 CRYPTO_ALG_TYPE_MASK);
386403 if (IS_ERR(alg))
387−- return ERR_PTR(PTR_ERR(alg));
388−+ return ERR_CAST(alg);
389−
404+ - return ERR_PTR(PTR_ERR(alg));
405+ + return ERR_CAST(alg);
406+
390407 /* Block size must be >= 4 bytes. */
391408 err = -EINVAL;
392409
393− Detailed description of the 'context' mode
394−~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
410+Detailed description of the ``context`` mode
411+--------------------------------------------
395412
396−'context' highlights lines of interest and their context
413+``context`` highlights lines of interest and their context
397414 in a diff-like style.
398415
399−NOTE: The diff-like output generated is NOT an applicable patch. The
400− intent of the 'context' mode is to highlight the important lines
401− (annotated with minus, '-') and gives some surrounding context
416+ **NOTE**: The diff-like output generated is NOT an applicable patch. The
417+ intent of the ``context`` mode is to highlight the important lines
418+ (annotated with minus, ``-``) and gives some surrounding context
402419 lines around. This output can be used with the diff mode of
403420 Emacs to review the code.
404421
405−Example:
422+Example
423+~~~~~~~
424+
425+Running::
406426
407−Running
408427 make coccicheck MODE=context COCCI=scripts/coccinelle/api/err_cast.cocci
409428
410−will execute the following part of the SmPL script.
429+will execute the following part of the SmPL script::
411430
412−<smpl>
413−@ depends on context && !patch && !org && !report@
414−expression x;
415−@@
431+ <smpl>
432+ @ depends on context && !patch && !org && !report@
433+ expression x;
434+ @@
416435
417−* ERR_PTR(PTR_ERR(x))
418−</smpl>
436+ * ERR_PTR(PTR_ERR(x))
437+ </smpl>
419438
420439 This SmPL excerpt generates diff hunks on the standard output, as
421−illustrated below:
440+illustrated below::
422441
423−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 +0200
425−+++ /tmp/nothing
426−@@ -185,7 +185,6 @@ static struct crypto_instance *crypto_ct
442+ diff -u -p /home/user/linux/crypto/ctr.c /tmp/nothing
443+ --- /home/user/linux/crypto/ctr.c 2010-05-26 10:49:38.000000000 +0200
444+ +++ /tmp/nothing
445+ @@ -185,7 +185,6 @@ static struct crypto_instance *crypto_ct
427446 alg = crypto_attr_alg(tb[1], CRYPTO_ALG_TYPE_CIPHER,
428447 CRYPTO_ALG_TYPE_MASK);
429448 if (IS_ERR(alg))
430−- return ERR_PTR(PTR_ERR(alg));
431−
449+ - return ERR_PTR(PTR_ERR(alg));
450+
432451 /* Block size must be >= 4 bytes. */
433452 err = -EINVAL;
434453
435− Detailed description of the 'org' mode
436−~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
454+Detailed description of the ``org`` mode
455+----------------------------------------
456+
457+``org`` generates a report in the Org mode format of Emacs.
437458
438−'org' generates a report in the Org mode format of Emacs.
459+Example
460+~~~~~~~
439461
440−Example:
462+Running::
441463
442−Running
443464 make coccicheck MODE=org COCCI=scripts/coccinelle/api/err_cast.cocci
444465
445−will execute the following part of the SmPL script.
466+will execute the following part of the SmPL script::
446467
447−<smpl>
448−@r depends on !context && !patch && (org || report)@
449−expression x;
450−position p;
451−@@
468+ <smpl>
469+ @r depends on !context && !patch && (org || report)@
470+ expression x;
471+ position p;
472+ @@
452473
453− ERR_PTR@p(PTR_ERR(x))
474+ ERR_PTR@p(PTR_ERR(x))
454475
455−@script:python depends on org@
456−p << r.p;
457−x << r.x;
458−@@
476+ @script:python depends on org@
477+ p << r.p;
478+ x << r.x;
479+ @@
459480
460−msg="ERR_CAST can be used with %s" % (x)
461−msg_safe=msg.replace("[","@(").replace("]",")")
462−coccilib.org.print_todo(p[0], msg_safe)
463−</smpl>
481+ msg="ERR_CAST can be used with %s" % (x)
482+ msg_safe=msg.replace("[","@(").replace("]",")")
483+ coccilib.org.print_todo(p[0], msg_safe)
484+ </smpl>
464485
465486 This SmPL excerpt generates Org entries on the standard output, as
466−illustrated below:
487+illustrated below::
467488
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]]
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]]
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]]
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]]
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]]
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 @@
1+Using gcov with the Linux kernel
2+================================
3+
4+gcov profiling kernel support enables the use of GCC's coverage testing
5+tool gcov_ with the Linux kernel. Coverage data of a running kernel
6+is exported in gcov-compatible format via the "gcov" debugfs directory.
7+To get coverage data for a specific file, change to the kernel build
8+directory 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+
13+This will create source code files annotated with execution counts
14+in the current directory. In addition, graphical gcov front-ends such
15+as lcov_ can be used to automate the process of collecting data
16+for the entire kernel and provide coverage overviews in HTML format.
17+
18+Possible 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+
29+Preparation
30+-----------
31+
32+Configure the kernel with::
33+
34+ CONFIG_DEBUG_FS=y
35+ CONFIG_GCOV_KERNEL=y
36+
37+select the gcc's gcov format, default is autodetect based on gcc version::
38+
39+ CONFIG_GCOV_FORMAT_AUTODETECT=y
40+
41+and to get coverage data for the entire kernel::
42+
43+ CONFIG_GCOV_PROFILE_ALL=y
44+
45+Note that kernels compiled with profiling flags will be significantly
46+larger and run slower. Also CONFIG_GCOV_PROFILE_ALL may not be supported
47+on all architectures.
48+
49+Profiling data will only become accessible once debugfs has been
50+mounted::
51+
52+ mount -t debugfs none /sys/kernel/debug
53+
54+
55+Customization
56+-------------
57+
58+To enable profiling for specific files or directories, add a line
59+similar 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+
69+To exclude files from being profiled even when CONFIG_GCOV_PROFILE_ALL
70+is specified, use::
71+
72+ GCOV_PROFILE_main.o := n
73+
74+and::
75+
76+ GCOV_PROFILE := n
77+
78+Only files which are linked to the main kernel image or are compiled as
79+kernel modules are supported by this mechanism.
80+
81+
82+Files
83+-----
84+
85+The 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+
104+Modules
105+-------
106+
107+Kernel modules may contain cleanup code which is only run during
108+module unload time. The gcov mechanism provides a means to collect
109+coverage data for such code by keeping a copy of the data associated
110+with the unloaded module. This data remains available through debugfs.
111+Once the module is loaded again, the associated coverage counters are
112+initialized with the data from its previous instantiation.
113+
114+This behavior can be deactivated by specifying the gcov_persist kernel
115+parameter::
116+
117+ gcov_persist=0
118+
119+At run-time, a user can also choose to discard data for an unloaded
120+module by writing to its data file or the global reset file.
121+
122+
123+Separated build and test machines
124+---------------------------------
125+
126+The gcov kernel profiling infrastructure is designed to work out-of-the
127+box for setups where kernels are built and run on the same machine. In
128+cases where the kernel runs on a separate machine, special preparations
129+must be made, depending on where the gcov tool is used:
130+
131+a) 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+
150+b) 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+
172+Troubleshooting
173+---------------
174+
175+Problem
176+ Compilation aborts during linker step.
177+
178+Cause
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+
183+Solution
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+
188+Problem
189+ Files copied from sysfs appear empty or incomplete.
190+
191+Cause
192+ Due to the way seq_file works, some tools such as cp or tar
193+ may not correctly copy files from sysfs.
194+
195+Solution
196+ Use ``cat``' to read ``.gcda`` files and ``cp -d`` to copy links.
197+ Alternatively use the mechanism shown in Appendix B.
198+
199+
200+Appendix A: gather_on_build.sh
201+------------------------------
202+
203+Sample 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+
231+Appendix B: gather_on_test.sh
232+-----------------------------
233+
234+Sample 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+
13 Debugging kernel and modules via gdb
24 ====================================
35
@@ -13,54 +15,58 @@ be transferred to the other gdb stubs as well. · 9 unmodified lines
1315 Requirements
1416 ------------
1517
16− o gdb 7.2+ (recommended: 7.4+) with python support enabled (typically true
17− for distributions)
18+- gdb 7.2+ (recommended: 7.4+) with python support enabled (typically true
19+ for distributions)
1820
1921
2022 Setup
2123 -----
2224
23− o Create a virtual Linux machine for QEMU/KVM (see www.linux-kvm.org and
24− www.qemu.org for more details). For cross-development,
25− http://landley.net/aboriginal/bin keeps a pool of machine images and
26− toolchains that can be helpful to start from.
25+- Create a virtual Linux machine for QEMU/KVM (see www.linux-kvm.org and
26+ www.qemu.org for more details). For cross-development,
27+ http://landley.net/aboriginal/bin keeps a pool of machine images and
28+ toolchains that can be helpful to start from.
2729
28− o Build the kernel with CONFIG_GDB_SCRIPTS enabled, but leave
29− CONFIG_DEBUG_INFO_REDUCED off. If your architecture supports
30− CONFIG_FRAME_POINTER, keep it enabled.
30+- Build the kernel with CONFIG_GDB_SCRIPTS enabled, but leave
31+ CONFIG_DEBUG_INFO_REDUCED off. If your architecture supports
32+ CONFIG_FRAME_POINTER, keep it enabled.
3133
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.
3339
34− Alternatively, QEMU allows to boot the kernel directly using -kernel,
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.
40+- Enable the gdb stub of QEMU/KVM, either
3841
39− o Enable the gdb stub of QEMU/KVM, either
4042 - at VM startup time by appending "-s" to the QEMU command line
41− or
43+
44+ or
45+
4246 - during runtime by issuing "gdbserver" from the QEMU monitor
4347 console
4448
45− o cd /path/to/linux-build
49+- cd /path/to/linux-build
4650
47− o Start gdb: gdb vmlinux
51+- Start gdb: gdb vmlinux
4852
49− 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, add
53+ Note: Some distros may restrict auto-loading of gdb scripts to known safe
54+ directories. In case gdb reports to refuse loading vmlinux-gdb.py, add::
5155
5256 add-auto-load-safe-path /path/to/linux-build
5357
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::
5561
56− o Attach to the booted guest:
5762 (gdb) target remote :1234
5863
5964
6065 Examples of using the Linux-provided gdb helpers
6166 ------------------------------------------------
6267
63− o Load module (and main kernel) symbols:
68+- Load module (and main kernel) symbols::
69+
6470 (gdb) lx-symbols
6571 loading vmlinux
6672 scanning for modules in /home/user/linux/build
@@ -72,17 +78,20 @@ Examples of using the Linux-provided gdb helpers · 5 unmodified lines
7278 ...
7379 loading @0xffffffffa0000000: /home/user/linux/build/drivers/ata/ata_generic.ko
7480
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+
7683 (gdb) b btrfs_init_sysfs
7784 Function "btrfs_init_sysfs" not defined.
7885 Make breakpoint pending on future shared library load? (y or [n]) y
7986 Breakpoint 1 (btrfs_init_sysfs) pending.
8087
81− o Continue the target
88+- Continue the target::
89+
8290 (gdb) c
8391
84− o Load the module on the target and watch the symbols being loaded as well as
85− the breakpoint hit:
92+- Load the module on the target and watch the symbols being loaded as well as
93+ the breakpoint hit::
94+
8695 loading @0xffffffffa0034000: /home/user/linux/build/lib/libcrc32c.ko
8796 loading @0xffffffffa0050000: /home/user/linux/build/lib/lzo/lzo_compress.ko
8897 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
91100 Breakpoint 1, btrfs_init_sysfs () at /home/user/linux/fs/btrfs/sysfs.c:36
92101 36 btrfs_kset = kset_create_and_add("btrfs", NULL, fs_kobj);
93102
94− o Dump the log buffer of the target kernel:
103+- Dump the log buffer of the target kernel::
104+
95105 (gdb) lx-dmesg
96106 [ 0.000000] Initializing cgroup subsys cpuset
97107 [ 0.000000] Initializing cgroup subsys cpu
@@ -102,19 +112,22 @@ Examples of using the Linux-provided gdb helpers · 4 unmodified lines
102112 [ 0.000000] BIOS-e820: [mem 0x000000000009fc00-0x000000000009ffff] reserved
103113 ....
104114
105− o Examine fields of the current task struct:
115+- Examine fields of the current task struct::
116+
106117 (gdb) p $lx_current().pid
107118 $1 = 4998
108119 (gdb) p $lx_current().comm
109120 $2 = "modprobe\000\000\000\000\000\000\000"
110121
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+
112124 (gdb) p $lx_per_cpu("runqueues").nr_running
113125 $3 = 1
114126 (gdb) p $lx_per_cpu("runqueues", 2).nr_running
115127 $4 = 0
116128
117− o Dig into hrtimers using the container_of helper:
129+- Dig into hrtimers using the container_of helper::
130+
118131 (gdb) set $next = $lx_per_cpu("hrtimer_bases").clock_base[0].active.next
119132 (gdb) p *$container_of($next, "struct hrtimer", "node")
120133 $5 = {
@@ -144,7 +157,7 @@ List of commands and functions · 23 unmodified lines
144157 ------------------------------
145158
146159 The number of commands and convenience functions may evolve over the time,
147−this is just a snapshot of the initial version:
160+this is just a snapshot of the initial version::
148161
149162 (gdb) apropos lx
150163 function lx_current -- Return current task
Documentation/dev-tools/kasan.rst+173−0
@@ -0,0 +1,173 @@
1+The Kernel Address Sanitizer (KASAN)
2+====================================
3+
4+Overview
5+--------
6+
7+KernelAddressSANitizer (KASAN) is a dynamic memory error detector. It provides
8+a fast and comprehensive solution for finding use-after-free and out-of-bounds
9+bugs.
10+
11+KASAN uses compile-time instrumentation for checking every memory access,
12+therefore you will need a GCC version 4.9.2 or later. GCC 5.0 or later is
13+required for detection of out-of-bounds accesses to stack or global variables.
14+
15+Currently KASAN is supported only for the x86_64 and arm64 architectures.
16+
17+Usage
18+-----
19+
20+To enable KASAN configure kernel with::
21+
22+ CONFIG_KASAN = y
23+
24+and choose between CONFIG_KASAN_OUTLINE and CONFIG_KASAN_INLINE. Outline and
25+inline are compiler instrumentation types. The former produces smaller binary
26+the latter is 1.1 - 2 times faster. Inline instrumentation requires a GCC
27+version 5.0 or later.
28+
29+KASAN works with both SLUB and SLAB memory allocators.
30+For better bug detection and nicer reporting, enable CONFIG_STACKTRACE.
31+
32+To disable instrumentation for specific files or directories, add a line
33+similar 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+
43+Error reports
44+~~~~~~~~~~~~~
45+
46+A 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+
121+The header of the report discribe what kind of bug happened and what kind of
122+access 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
124+the description of the accessed memory page.
125+
126+In the last section the report shows memory state around the accessed address.
127+Reading this part requires some understanding of how KASAN works.
128+
129+The state of each 8 aligned bytes of memory is encoded in one shadow byte.
130+Those 8 bytes can be accessible, partially accessible, freed or be a redzone.
131+We use the following encoding for each shadow byte: 0 means that all 8 bytes
132+of the corresponding memory region are accessible; number N (1 <= N <= 7) means
133+that the first N bytes are accessible, and other (8 - N) bytes are not;
134+any negative value indicates that the entire 8-byte word is inaccessible.
135+We use different negative values to distinguish between different kinds of
136+inaccessible memory like redzones or freed memory (see mm/kasan/kasan.h).
137+
138+In the report above the arrows point to the shadow byte 03, which means that
139+the accessed address is partially accessible.
140+
141+
142+Implementation details
143+----------------------
144+
145+From a high level, our approach to memory error detection is similar to that
146+of kmemcheck: use shadow memory to record whether each byte of memory is safe
147+to access, and use compile-time instrumentation to check shadow memory on each
148+memory access.
149+
150+AddressSanitizer 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
152+offset to translate a memory address to its corresponding shadow address.
153+
154+Here is the function which translates an address to its corresponding shadow
155+address::
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+
163+where ``KASAN_SHADOW_SCALE_SHIFT = 3``.
164+
165+Compile-time instrumentation used for checking memory accesses. Compiler inserts
166+function calls (__asan_load*(addr), __asan_store*(addr)) before each memory
167+access of size 1, 2, 4, 8 or 16. These functions check whether memory access is
168+valid or not by checking corresponding shadow memory.
169+
170+GCC 5.0 has possibility to perform inline instrumentation. Instead of making
171+function calls GCC directly inserts the code to check the shadow memory.
172+This option significantly enlarges kernel but it gives x1.1-x2 performance
173+boost 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
1212 and instrumentation of some inherently non-deterministic parts of kernel is
1313 disbled (e.g. scheduler, locking).
1414
15−Usage:
16−======
15+Usage
16+-----
1717
18−Configure kernel with:
18+Configure the kernel with::
1919
2020 CONFIG_KCOV=y
2121
2222 CONFIG_KCOV requires gcc built on revision 231296 or later.
23−Profiling data will only become accessible once debugfs has been mounted:
23+Profiling data will only become accessible once debugfs has been mounted::
2424
2525 mount -t debugfs none /sys/kernel/debug
2626
27−The following program demonstrates kcov usage from within a test program:
28−
29−#include <stdio.h>
30−#include <stddef.h>
31−#include <stdint.h>
32−#include <stdlib.h>
33−#include <sys/types.h>
34−#include <sys/stat.h>
35−#include <sys/ioctl.h>
36−#include <sys/mman.h>
37−#include <unistd.h>
38−#include <fcntl.h>
39−
40−#define KCOV_INIT_TRACE _IOR('c', 1, unsigned long)
41−#define KCOV_ENABLE _IO('c', 100)
42−#define KCOV_DISABLE _IO('c', 101)
43−#define COVER_SIZE (64<<10)
44−
45−int main(int argc, char **argv)
46−{
27+The following program demonstrates kcov usage from within a test program::
28+
29+ #include <stdio.h>
30+ #include <stddef.h>
31+ #include <stdint.h>
32+ #include <stdlib.h>
33+ #include <sys/types.h>
34+ #include <sys/stat.h>
35+ #include <sys/ioctl.h>
36+ #include <sys/mman.h>
37+ #include <unistd.h>
38+ #include <fcntl.h>
39+
40+ #define KCOV_INIT_TRACE _IOR('c', 1, unsigned long)
41+ #define KCOV_ENABLE _IO('c', 100)
42+ #define KCOV_DISABLE _IO('c', 101)
43+ #define COVER_SIZE (64<<10)
44+
45+ int main(int argc, char **argv)
46+ {
4747 int fd;
4848 unsigned long *cover, n, i;
4949
@@ -83,24 +83,24 @@ int main(int argc, char **argv) · 33 unmodified lines
8383 if (close(fd))
8484 perror("close"), exit(1);
8585 return 0;
86−}
87−
88−After piping through addr2line output of the program looks as follows:
89−
90−SyS_read
91−fs/read_write.c:562
92−__fdget_pos
93−fs/file.c:774
94−__fget_light
95−fs/file.c:746
96−__fget_light
97−fs/file.c:750
98−__fget_light
99−fs/file.c:760
100−__fdget_pos
101−fs/file.c:784
102−SyS_read
103−fs/read_write.c:562
86+ }
87+
88+After piping through addr2line output of the program looks as follows::
89+
90+ SyS_read
91+ fs/read_write.c:562
92+ __fdget_pos
93+ fs/file.c:774
94+ __fget_light
95+ fs/file.c:746
96+ __fget_light
97+ fs/file.c:750
98+ __fget_light
99+ fs/file.c:760
100+ __fdget_pos
101+ fs/file.c:784
102+ SyS_read
103+ fs/read_write.c:562
104104
105105 If a program needs to collect coverage from several threads (independently),
106106 it needs to open /sys/kernel/debug/kcov in each thread separately.
Documentation/dev-tools/kmemcheck.rst+733−0
@@ -0,0 +1,733 @@
1+Getting started with kmemcheck
2+==============================
3+
4+Vegard Nossum <vegardno@ifi.uio.no>
5+
6+
7+Introduction
8+------------
9+
10+kmemcheck is a debugging feature for the Linux Kernel. More specifically, it
11+is a dynamic checker that detects and warns about some uses of uninitialized
12+memory.
13+
14+Userspace programmers might be familiar with Valgrind's memcheck. The main
15+difference between memcheck and kmemcheck is that memcheck works for userspace
16+programs only, and kmemcheck works for the kernel only. The implementations
17+are of course vastly different. Because of this, kmemcheck is not as accurate
18+as memcheck, but it turns out to be good enough in practice to discover real
19+programmer errors that the compiler is not able to find through static
20+analysis.
21+
22+Enabling kmemcheck on a kernel will probably slow it down to the extent that
23+the machine will not be usable for normal workloads such as e.g. an
24+interactive desktop. kmemcheck will also cause the kernel to use about twice
25+as much memory as normal. For this reason, kmemcheck is strictly a debugging
26+feature.
27+
28+
29+Downloading
30+-----------
31+
32+As of version 2.6.31-rc1, kmemcheck is included in the mainline kernel.
33+
34+
35+Configuring and compiling
36+-------------------------
37+
38+kmemcheck only works for the x86 (both 32- and 64-bit) platform. A number of
39+configuration variables must have specific settings in order for the kmemcheck
40+menu 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+
70+In addition, I highly recommend turning on ``CONFIG_DEBUG_INFO=y``. This is also
71+located under "Kernel hacking". With this, you will be able to get line number
72+information from the kmemcheck warnings, which is extremely valuable in
73+debugging a problem. This option is not mandatory, however, because it slows
74+down the compilation process and produces a much bigger kernel image.
75+
76+Now the kmemcheck menu should be visible (under "Kernel hacking" / "Memory
77+Debugging" / "kmemcheck: trap use of uninitialized memory"). Here follows
78+a 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+
160+Now compile the kernel as usual.
161+
162+
163+How to use
164+----------
165+
166+Booting
167+~~~~~~~
168+
169+First some information about the command-line options. There is only one
170+option specific to kmemcheck, and this is called "kmemcheck". It can be used
171+to override the default mode as chosen by the ``CONFIG_KMEMCHECK_*_BY_DEFAULT``
172+option. Its possible settings are:
173+
174+- ``kmemcheck=0`` (disabled)
175+- ``kmemcheck=1`` (enabled)
176+- ``kmemcheck=2`` (one-shot mode)
177+
178+If SLUB debugging has been enabled in the kernel, it may take precedence over
179+kmemcheck in such a way that the slab caches which are under SLUB debugging
180+will 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``,
182+like this: ``slub_debug=-``
183+
184+In fact, this option may also be used for fine-grained control over SLUB vs.
185+kmemcheck. For example, if the command line includes
186+``kmemcheck=1 slub_debug=,dentry``, then SLUB debugging will be used only
187+for the "dentry" slab cache, and with kmemcheck tracking all the other
188+caches. This is advanced usage, however, and is not generally recommended.
189+
190+
191+Run-time enable/disable
192+~~~~~~~~~~~~~~~~~~~~~~~
193+
194+When the kernel has booted, it is possible to enable or disable kmemcheck at
195+run-time. WARNING: This feature is still experimental and may cause false
196+positive warnings to appear. Therefore, try not to use this. If you find that
197+it doesn't work properly (e.g. you see an unreasonable amount of warnings), I
198+will be happy to take bug reports.
199+
200+Use the file ``/proc/sys/kernel/kmemcheck`` for this purpose, e.g.::
201+
202+ $ echo 0 > /proc/sys/kernel/kmemcheck # disables kmemcheck
203+
204+The numbers are the same as for the ``kmemcheck=`` command-line option.
205+
206+
207+Debugging
208+~~~~~~~~~
209+
210+A 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+
236+The single most valuable information in this report is the RIP (or EIP on 32-
237+bit) value. This will help us pinpoint exactly which instruction that caused
238+the warning.
239+
240+If your kernel was compiled with ``CONFIG_DEBUG_INFO=y``, then all we have to do
241+is 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+
249+The "``-e vmlinux``" tells addr2line which file to look in. **IMPORTANT:**
250+This must be the vmlinux of the kernel that produced the warning in the
251+first place! If not, the line number information will almost certainly be
252+wrong.
253+
254+The "``-i``" tells addr2line to also print the line numbers of inlined
255+functions. In this case, the flag was very important, because otherwise,
256+it 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
258+is therefore not very useful. These inlined functions would not show up in
259+the stack trace above, simply because the kernel doesn't load the extra
260+debugging information. This technique can of course be used with ordinary
261+kernel oopses as well.
262+
263+In this case, it's the caller of ``memcpy()`` that is interesting, and it can be
264+found 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+
275+Since this was a read (kmemcheck usually warns about reads only, though it can
276+warn about writes to unallocated or freed memory as well), it was probably the
277+"from" argument which contained some uninitialized bytes. Following the chain
278+of 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+
299+Here, it is ``&first->info`` that is being passed on to ``copy_siginfo()``. The
300+variable ``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
302+where 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+
312+Now 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
315+kmemcheck 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+
330+Remember that since these addresses were found on the stack and not as the
331+RIP value, they actually point to the _next_ instruction (they are return
332+addresses). 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+
356+So instead of looking at 446, we should be looking at 431, which is the line
357+that executes just before 446. Here we see that what we are looking for is
358+``&tsk->signal->shared_pending``.
359+
360+Our 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+
369+There were more results, but none of them were related to list operations,
370+and these were the only assignments. We inspect the line numbers more closely
371+and 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+
387+and::
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+
397+In the first case, the list element we are looking for, ``q``, is being
398+returned from the function ``__sigqueue_alloc()``, which looks like an
399+allocation 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+
431+We 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+
442+And, you might remember, it was a ``memcpy()`` on ``&first->info`` that
443+caused the warning, so this makes perfect sense. It also seems reasonable
444+to assume that it is the caller of ``__sigqueue_alloc()`` that has the
445+responsibility of filling out (initializing) this member.
446+
447+But just which fields of the struct were uninitialized? Let's look at
448+kmemcheck'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+
455+These first two lines are the memory dump of the memory object itself, and
456+the 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
458+of the object itself! The position of the caret (^) corresponds with the
459+address of the read (ffff88003e4a2024).
460+
461+The 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+
470+In order to figure out where (relative to the start of the object) the
471+uninitialized memory was located, we have to look at the disassembly. For
472+that, 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+
495+As expected, it's the "``rep movsl``" instruction from the ``memcpy()``
496+that 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
498+register dump again (from the kmemcheck report), we can figure out how many
499+bytes were left to copy::
500+
501+ RAX: 0000000000000030 RBX: ffff88003d4ea968 RCX: 0000000000000009
502+
503+By looking at the disassembly, we also see that ``%ecx`` is being loaded
504+with the value ``$0xc`` just before (ffffffff8104edd8), so we are very
505+lucky. Keep in mind that this is the number of iterations, not bytes. And
506+since this is a "long" operation, we need to multiply by 4 to get the
507+number of bytes. So this means that the uninitialized value was encountered
508+at 4 * (0xc - 0x9) = 12 bytes from the start of the object.
509+
510+We can now try to figure out which field of the "``struct siginfo``" that
511+was 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+
523+On 64-bit, the int is 4 bytes long, so it must the union member that has
524+not 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+
531+Actually, it seems that the union member is located at offset 0x10 -- which
532+means that gcc has inserted 4 bytes of padding between the members ``si_code``
533+and ``_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+
544+This allows us to realize another important fact: ``si_code`` contains the
545+value 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
547+find 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+
552+This macro is used in exactly one place in the x86 kernel: In ``send_signal()``
553+in ``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+
578+Not only does this match with the ``.si_code`` member, it also matches the place
579+we found earlier when looking for where siginfo_t objects are enqueued on the
580+``shared_pending`` list.
581+
582+So to sum up: It seems that it is the padding introduced by the compiler
583+between two struct fields that is uninitialized, and this gets reported when
584+we do a ``memcpy()`` on the struct. This means that we have identified a false
585+positive warning.
586+
587+Normally, kmemcheck will not report uninitialized accesses in ``memcpy()`` calls
588+when both the source and destination addresses are tracked. (Instead, we copy
589+the shadow bytemap as well). In this case, the destination address clearly
590+was 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+
596+And we clearly see that the destination siginfo object is located on the
597+stack::
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+
608+And this ``&info`` is what eventually gets passed to ``copy_siginfo()`` as the
609+destination argument.
610+
611+Now, even though we didn't find an actual error here, the example is still a
612+good one, because it shows how one would go about to find out what the report
613+was all about.
614+
615+
616+Annotating false positives
617+~~~~~~~~~~~~~~~~~~~~~~~~~~
618+
619+There are a few different ways to make annotations in the source code that
620+will keep kmemcheck from checking and reporting certain allocations. Here
621+they 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+
672+Reporting errors
673+----------------
674+
675+As we have seen, kmemcheck will produce false positive reports. Therefore, it
676+is not very wise to blindly post kmemcheck warnings to mailing lists and
677+maintainers. Instead, I encourage maintainers and developers to find errors
678+in their own code. If you get a warning, you can try to work around it, try
679+to figure out if it's a real error or not, or simply ignore it. Most
680+developers know their own code and will quickly and efficiently determine the
681+root cause of a kmemcheck report. This is therefore also the most efficient
682+way to work with kmemcheck.
683+
684+That said, we (the kmemcheck maintainers) will always be on the lookout for
685+false positives that we can annotate and silence. So whatever you find,
686+please drop us a note privately! Kernel configs and steps to reproduce (if
687+available) are of course a great help too.
688+
689+Happy hacking!
690+
691+
692+Technical description
693+---------------------
694+
695+kmemcheck works by marking memory pages non-present. This means that whenever
696+somebody attempts to access the page, a page fault is generated. The page
697+fault handler notices that the page was in fact only hidden, and so it calls
698+on the kmemcheck code to make further investigations.
699+
700+When the investigations are completed, kmemcheck "shows" the page by marking
701+it present (as it would be under normal circumstances). This way, the
702+interrupted code can continue as usual.
703+
704+But after the instruction has been executed, we should hide the page again, so
705+that we can catch the next access too! Now kmemcheck makes use of a debugging
706+feature of the processor, namely single-stepping. When the processor has
707+finished the one instruction that generated the memory access, a debug
708+exception is raised. From here, we simply hide the page again and continue
709+execution, this time with the single-stepping feature turned off.
710+
711+kmemcheck requires some assistance from the memory allocator in order to work.
712+The 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+
724+If a slab cache is set up using the SLAB_NOTRACK flag, it will never return
725+memory that can take page faults because of kmemcheck.
726+
727+If a slab cache is NOT set up using the SLAB_NOTRACK flag, callers can still
728+request memory with the __GFP_NOTRACK or __GFP_NOTRACK_FALSE_POSITIVE flags.
729+This does not prevent the page faults from occurring, however, but marks the
730+object in question as being initialized so that no warnings will ever be
731+produced for this object.
732+
733+Currently, the SLAB and SLUB allocators are supported by kmemcheck.
Documentation/dev-tools/kmemleak.rstrenamed from Documentation/kmemleak.txt+59−43
@@ -1,15 +1,12 @@
11 Kernel Memory Leak Detector
22 ===========================
33
4−Introduction
5−------------
6−
74 Kmemleak provides a way of detecting possible kernel memory leaks in a
85 way similar to a tracing garbage collector
96 (https://en.wikipedia.org/wiki/Garbage_collection_%28computer_science%29#Tracing_garbage_collectors),
107 with the difference that the orphan objects are not freed but only
118 reported via /sys/kernel/debug/kmemleak. A similar method is used by the
12−Valgrind tool (memcheck --leak-check) to detect the memory leaks in
9+Valgrind tool (``memcheck --leak-check``) to detect the memory leaks in
1310 user-space applications.
1411 Kmemleak is supported on x86, arm, powerpc, sparc, sh, microblaze, ppc, mips, s390, metag and tile.
1512
@@ -19,20 +16,20 @@ Usage · 3 unmodified lines
1916 CONFIG_DEBUG_KMEMLEAK in "Kernel hacking" has to be enabled. A kernel
2017 thread scans the memory every 10 minutes (by default) and prints the
2118 number of new unreferenced objects found. To display the details of all
22−the possible memory leaks:
19+the possible memory leaks::
2320
2421 # mount -t debugfs nodev /sys/kernel/debug/
2522 # cat /sys/kernel/debug/kmemleak
2623
27−To trigger an intermediate memory scan:
24+To trigger an intermediate memory scan::
2825
2926 # echo scan > /sys/kernel/debug/kmemleak
3027
31−To clear the list of all current possible memory leaks:
28+To clear the list of all current possible memory leaks::
3229
3330 # echo clear > /sys/kernel/debug/kmemleak
3431
35−New leaks will then come up upon reading /sys/kernel/debug/kmemleak
32+New leaks will then come up upon reading ``/sys/kernel/debug/kmemleak``
3633 again.
3734
3835 Note 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
4037 objects to be reported as orphan.
4138
4239 Memory scanning parameters can be modified at run-time by writing to the
43−/sys/kernel/debug/kmemleak file. The following parameters are supported:
44−
45− off - disable kmemleak (irreversible)
46− stack=on - enable the task stacks scanning (default)
47− stack=off - disable the tasks stacks scanning
48− scan=on - start the automatic memory scanning thread (default)
49− scan=off - stop the automatic memory scanning thread
50− scan=<secs> - set the automatic memory scanning period in seconds
51− (default 600, 0 to stop the automatic scanning)
52− scan - trigger a memory scan
53− clear - clear list of current memory leak suspects, done by
54− marking all current reported unreferenced objects grey,
55− or free all kmemleak objects if kmemleak has been disabled.
56− dump=<addr> - dump information about the object found at <addr>
57−
58−Kmemleak can also be disabled at boot-time by passing "kmemleak=off" on
40+``/sys/kernel/debug/kmemleak`` file. The following parameters are supported:
41+
42+- off
43+ disable kmemleak (irreversible)
44+- stack=on
45+ enable the task stacks scanning (default)
46+- stack=off
47+ disable the tasks stacks scanning
48+- scan=on
49+ start the automatic memory scanning thread (default)
50+- scan=off
51+ stop the automatic memory scanning thread
52+- scan=<secs>
53+ set the automatic memory scanning period in seconds
54+ (default 600, 0 to stop the automatic scanning)
55+- 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+
64+Kmemleak can also be disabled at boot-time by passing ``kmemleak=off`` on
5965 the kernel command line.
6066
6167 Memory 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
6369 is configured via the CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE option.
6470
6571 If CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF are enabled, the kmemleak is
66−disabled by default. Passing "kmemleak=on" on the kernel command
72+disabled by default. Passing ``kmemleak=on`` on the kernel command
6773 line enables the function.
6874
6975 Basic Algorithm
7076 ---------------
7177
72−The memory allocations via kmalloc, vmalloc, kmem_cache_alloc and
78+The memory allocations via :c:func:`kmalloc`, :c:func:`vmalloc`,
79+:c:func:`kmem_cache_alloc` and
7380 friends are traced and the pointers, together with additional
7481 information like size and stack trace, are stored in a rbtree.
7582 The 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
113120 you can find new unreferenced objects; this should help with testing
114121 specific sections of code.
115122
116−To test a critical section on demand with a clean kmemleak do:
123+To test a critical section on demand with a clean kmemleak do::
117124
118125 # echo clear > /sys/kernel/debug/kmemleak
119126 ... test your kernel or modules ...
120127 # echo scan > /sys/kernel/debug/kmemleak
121128
122−Then as usual to get your report with:
129+Then as usual to get your report with::
123130
124131 # cat /sys/kernel/debug/kmemleak
125132
@@ -131,7 +138,7 @@ disabled by the user or due to an fatal error, internal kmemleak objects · 5 unmodified lines
131138 won't be freed when kmemleak is disabled, and those objects may occupy
132139 a large part of physical memory.
133140
134−In this situation, you may reclaim memory with:
141+In this situation, you may reclaim memory with::
135142
136143 # echo clear > /sys/kernel/debug/kmemleak
137144
@@ -140,20 +147,29 @@ Kmemleak API · 2 unmodified lines
140147
141148 See the include/linux/kmemleak.h header for the functions prototype.
142149
143−kmemleak_init - initialize kmemleak
144−kmemleak_alloc - notify of a memory block allocation
145−kmemleak_alloc_percpu - notify of a percpu memory block allocation
146−kmemleak_free - notify of a memory block freeing
147−kmemleak_free_part - notify of a partial memory block freeing
148−kmemleak_free_percpu - notify of a percpu memory block freeing
149−kmemleak_update_trace - update object allocation stack trace
150−kmemleak_not_leak - mark an object as not a leak
151−kmemleak_ignore - do not scan or report an object as leak
152−kmemleak_scan_area - add scan areas inside a memory block
153−kmemleak_no_scan - do not scan a memory block
154−kmemleak_erase - erase an old value in a pointer variable
155−kmemleak_alloc_recursive - as kmemleak_alloc but checks the recursiveness
156−kmemleak_free_recursive - as kmemleak_free but checks the recursiveness
150+- ``kmemleak_init`` - initialize kmemleak
151+- ``kmemleak_alloc`` - notify of a memory block allocation
152+- ``kmemleak_alloc_percpu`` - notify of a percpu memory block allocation
153+- ``kmemleak_free`` - notify of a memory block freeing
154+- ``kmemleak_free_part`` - notify of a partial memory block freeing
155+- ``kmemleak_free_percpu`` - notify of a percpu memory block freeing
156+- ``kmemleak_update_trace`` - update object allocation stack trace
157+- ``kmemleak_not_leak`` - mark an object as not a leak
158+- ``kmemleak_ignore`` - do not scan or report an object as leak
159+- ``kmemleak_scan_area`` - add scan areas inside a memory block
160+- ``kmemleak_no_scan`` - do not scan a memory block
161+- ``kmemleak_erase`` - erase an old value in a pointer variable
162+- ``kmemleak_alloc_recursive`` - as kmemleak_alloc but checks the recursiveness
163+- ``kmemleak_free_recursive`` - as kmemleak_free but checks the recursiveness
164+
165+The following functions take a physical address as the object pointer
166+and only perform the corresponding action if the address has a lowmem
167+mapping:
168+
169+- ``kmemleak_alloc_phys``
170+- ``kmemleak_free_part_phys``
171+- ``kmemleak_not_leak_phys``
172+- ``kmemleak_ignore_phys``
157173
158174 Dealing with false positives/negatives
159175 --------------------------------------
Documentation/dev-tools/sparse.rstrenamed from Documentation/sparse.txt+24−15
@@ -1,11 +1,20 @@
1−Copyright 2004 Linus Torvalds
2−Copyright 2004 Pavel Machek <pavel@ucw.cz>
3−Copyright 2006 Bob Copeland <me@bobcopeland.com>
1+.. Copyright 2004 Linus Torvalds
2+.. Copyright 2004 Pavel Machek <pavel@ucw.cz>
3+.. Copyright 2006 Bob Copeland <me@bobcopeland.com>
4+
5+Sparse
6+======
7+
8+Sparse is a semantic checker for C programs; it can be used to find a
9+number of potential problems with kernel code. See
10+https://lwn.net/Articles/689907/ for an overview of sparse; this document
11+contains some kernel-specific sparse information.
12+
413
514 Using sparse for typechecking
6−~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
15+-----------------------------
716
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::
918
1019 typedef int __bitwise pm_request_t;
1120
@@ -20,13 +29,13 @@ but in this case we really _do_ want to force the conversion). And because · 8 unmodified lines
2029 the enum values are all the same type, now "enum pm_request" will be that
2130 type too.
2231
23−And with gcc, all the __bitwise/__force stuff goes away, and it all ends
24−up looking just like integers to gcc.
32+And with gcc, all the "__bitwise"/"__force stuff" goes away, and it all
33+ends up looking just like integers to gcc.
2534
2635 Quite frankly, you don't need the enum there. The above all really just
2736 boils down to one special "int __bitwise" type.
2837
29−So the simpler way is to just do
38+So the simpler way is to just do::
3039
3140 typedef int __bitwise pm_request_t;
3241
@@ -50,7 +59,7 @@ __bitwise - noisy stuff; in particular, __le*/__be* are that. We really · 17 unmodified lines
5059 don't want to drown in noise unless we'd explicitly asked for it.
5160
5261 Using sparse for lock checking
53−~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
62+------------------------------
5463
5564 The following macros are undefined for gcc and defined during a sparse
5665 run 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
6978 sparse would otherwise report a context imbalance.
7079
7180 Getting sparse
72−~~~~~~~~~~~~~~
81+--------------
7382
7483 You can get latest released versions from the Sparse homepage at
7584 https://sparse.wiki.kernel.org/index.php/Main_Page
7685
7786 Alternatively, you can get snapshots of the latest development version
78−of sparse using git to clone..
87+of sparse using git to clone::
7988
8089 git://git.kernel.org/pub/scm/devel/sparse/sparse.git
8190
82−DaveJ has hourly generated tarballs of the git tree available at..
91+DaveJ has hourly generated tarballs of the git tree available at::
8392
8493 http://www.codemonkey.org.uk/projects/git-snapshots/sparse/
8594
8695
87−Once you have it, just do
96+Once you have it, just do::
8897
8998 make
9099 make install
@@ -92,7 +101,7 @@ Once you have it, just do · 1 unmodified line
92101 as a regular user, and it will install sparse in your ~/bin directory.
93102
94103 Using sparse
95−~~~~~~~~~~~~
104+------------
96105
97106 Do a kernel make with "make C=1" to run sparse on all the C files that get
98107 recompiled, 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
101110
102111 The optional make variable CF can be used to pass arguments to sparse. The
103112 build system passes -Wbitwise to sparse automatically. To perform endianness
104−checks, you may define __CHECK_ENDIAN__:
113+checks, you may define __CHECK_ENDIAN__::
105114
106115 make C=2 CF="-D__CHECK_ENDIAN__"
107116
Documentation/dev-tools/tools.rst+25−0
@@ -0,0 +1,25 @@
1+================================
2+Development tools for the kernel
3+================================
4+
5+This document is a collection of documents about development tools that can
6+be used to work on the kernel. For now, the documents have been pulled
7+together without any significant effot to integrate them into a coherent
8+whole; 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 @@
1−Undefined Behavior Sanitizer - UBSAN
2−
3−Overview
4−--------
1+The Undefined Behavior Sanitizer - UBSAN
2+========================================
53
64 UBSAN is a runtime undefined behaviour checker.
75
@@ -10,11 +8,13 @@ Compiler inserts code that perform certain kinds of checks before operations · 2 unmodified lines
108 that may cause UB. If check fails (i.e. UB detected) __ubsan_handle_*
119 function called to print error message.
1210
13−GCC has that feature since 4.9.x [1] (see -fsanitize=undefined option and
14−its suboptions). GCC 5.x has more checkers implemented [2].
11+GCC has that feature since 4.9.x [1_] (see ``-fsanitize=undefined`` option and
12+its suboptions). GCC 5.x has more checkers implemented [2_].
1513
1614 Report example
17−---------------
15+--------------
16+
17+::
1818
1919 ================================================================================
2020 UBSAN: Undefined behaviour in ../include/linux/bitops.h:110:33
@@ -47,29 +47,33 @@ Report example · 26 unmodified lines
4747 Usage
4848 -----
4949
50−To enable UBSAN configure kernel with:
50+To enable UBSAN configure kernel with::
5151
5252 CONFIG_UBSAN=y
5353
54−and to check the entire kernel:
54+and to check the entire kernel::
5555
5656 CONFIG_UBSAN_SANITIZE_ALL=y
5757
5858 To enable instrumentation for specific files or directories, add a line
5959 similar to the following to the respective kernel Makefile:
6060
61− For a single file (e.g. main.o):
62− UBSAN_SANITIZE_main.o := y
61+- For a single file (e.g. main.o)::
62+
63+ UBSAN_SANITIZE_main.o := y
6364
64− For all files in one directory:
65− UBSAN_SANITIZE := y
65+- For all files in one directory::
66+
67+ UBSAN_SANITIZE := y
6668
6769 To exclude files from being instrumented even if
68−CONFIG_UBSAN_SANITIZE_ALL=y, use:
70+``CONFIG_UBSAN_SANITIZE_ALL=y``, use::
71+
72+ UBSAN_SANITIZE_main.o := n
73+
74+and::
6975
70− UBSAN_SANITIZE_main.o := n
71− and:
72− UBSAN_SANITIZE := n
76+ UBSAN_SANITIZE := n
7377
7478 Detection of unaligned accesses controlled through the separate option -
7579 CONFIG_UBSAN_ALIGNMENT. It's off by default on architectures that support
@@ -80,5 +84,5 @@ reports. · 4 unmodified lines
8084 References
8185 ----------
8286
83−[1] - https://gcc.gnu.org/onlinedocs/gcc-4.9.0/gcc/Debugging-Options.html
84−[2] - https://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html
87+.. _1: https://gcc.gnu.org/onlinedocs/gcc-4.9.0/gcc/Debugging-Options.html
88+.. _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 @@
1−1: A GUIDE TO THE KERNEL DEVELOPMENT PROCESS
1+Introdution
2+===========
23
3−The purpose of this document is to help developers (and their managers)
4−work with the development community with a minimum of frustration. It is
5−an attempt to document how this community works in a way which is
6−accessible to those who are not intimately familiar with Linux kernel
7−development (or, indeed, free software development in general). While
8−there is some technical material here, this is very much a process-oriented
9−discussion which does not require a deep knowledge of kernel programming to
10−understand.
11−
12−
13−1.1: EXECUTIVE SUMMARY
4+Executive summary
5+-----------------
146
157 The rest of this section covers the scope of the kernel development process
168 and 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
2012 influence the direction of kernel development. Code contributed to the
2113 Linux kernel must be made available under a GPL-compatible license.
2214
23−Section 2 introduces the development process, the kernel release cycle, and
24−the mechanics of the merge window. The various phases in the patch
25−development, review, and merging cycle are covered. There is some
15+:ref:`development_process` introduces the development process, the kernel
16+release cycle, and the mechanics of the merge window. The various phases in
17+the patch development, review, and merging cycle are covered. There is some
2618 discussion of tools and mailing lists. Developers wanting to get started
2719 with kernel development are encouraged to track down and fix bugs as an
2820 initial exercise.
2921
30−Section 3 covers early-stage project planning, with an emphasis on
31−involving the development community as soon as possible.
22+:ref:`development_early_stage` covers early-stage project planning, with an
23+emphasis on involving the development community as soon as possible.
3224
33−Section 4 is about the coding process; several pitfalls which have been
34−encountered by other developers are discussed. Some requirements for
25+:ref:`development_coding` is about the coding process; several pitfalls which
26+have been encountered by other developers are discussed. Some requirements for
3527 patches are covered, and there is an introduction to some of the tools
3628 which can help to ensure that kernel patches are correct.
3729
38−Section 5 talks about the process of posting patches for review. To be
39−taken seriously by the development community, patches must be properly
40−formatted and described, and they must be sent to the right place.
30+:ref:`development_posting` talks about the process of posting patches for
31+review. To be taken seriously by the development community, patches must be
32+properly formatted and described, and they must be sent to the right place.
4133 Following the advice in this section should help to ensure the best
4234 possible reception for your work.
4335
44−Section 6 covers what happens after posting patches; the job is far from
45−done at that point. Working with reviewers is a crucial part of the
46−development process; this section offers a number of tips on how to avoid
47−problems at this important stage. Developers are cautioned against
36+:ref:`development_followthrough` covers what happens after posting patches; the
37+job is far from done at that point. Working with reviewers is a crucial part
38+of the development process; this section offers a number of tips on how to
39+avoid problems at this important stage. Developers are cautioned against
4840 assuming that the job is done when a patch is merged into the mainline.
4941
50−Section 7 introduces a couple of "advanced" topics: managing patches with
51−git and reviewing patches posted by others.
52−
53−Section 8 concludes the document with pointers to sources for more
54−information on kernel development.
42+:ref:`development_advancedtopics` introduces a couple of "advanced" topics:
43+managing patches with git and reviewing patches posted by others.
5544
45+:ref:`development_conclusion` concludes the document with pointers to sources
46+for more information on kernel development.
5647
57−1.2: WHAT THIS DOCUMENT IS ABOUT
48+What this document is about
49+---------------------------
5850
5951 The Linux kernel, at over 8 million lines of code and well over 1000
6052 contributors 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
108100 better; the following text should help you - or those who work for you -
109101 join our community.
110102
111−
112−1.3: CREDITS
103+Credits
104+-------
113105
114106 This document was written by Jonathan Corbet, corbet@lwn.net. It has been
115107 improved by comments from Johannes Berg, James Berry, Alex Chiang, Roland
@@ -120,8 +112,8 @@ Jochen Voß. · 4 unmodified lines
120112 This work was supported by the Linux Foundation; thanks especially to
121113 Amanda McPherson, who saw the value of this effort and made it all happen.
122114
123−
124−1.4: THE IMPORTANCE OF GETTING CODE INTO THE MAINLINE
115+The importance of getting code into the mainline
116+------------------------------------------------
125117
126118 Some companies and developers occasionally wonder why they should bother
127119 learning 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
233225 point, vendors whose code is in the mainline and well maintained will be
234226 much better positioned to get the new product ready for market quickly.
235227
236−
237−1.5: LICENSING
228+Licensing
229+---------
238230
239231 Code is contributed to the Linux kernel under a number of licenses, but all
240232 code 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 @@
1−2: HOW THE DEVELOPMENT PROCESS WORKS
1+.. _development_process:
2+
3+How the development process works
4+=================================
25
36 Linux kernel development in the early 1990's was a pretty loose affair,
47 with 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
710 processes to keep development happening smoothly. A solid understanding of
811 how the process works is required in order to be an effective part of it.
912
10−
11−2.1: THE BIG PICTURE
13+The big picture
14+---------------
1215
1316 The kernel developers use a loosely time-based release process, with a new
1417 major kernel release happening every two or three months. The recent
1518 release history looks like this:
1619
20+ ====== =================
1721 2.6.38 March 14, 2011
1822 2.6.37 January 4, 2011
1923 2.6.36 October 20, 2010
2024 2.6.35 August 1, 2010
2125 2.6.34 May 15, 2010
2226 2.6.33 February 24, 2010
27+ ====== =================
2328
2429 Every 2.6.x release is a major kernel release with new features, internal
2530 API 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
6873 As an example, here is how the 2.6.38 development cycle went (all dates in
6974 2011):
7075
76+ ============== ===============================
7177 January 4 2.6.37 stable release
7278 January 18 2.6.38-rc1, merge window closes
7379 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
7884 March 1 2.6.38-rc7
7985 March 7 2.6.38-rc8
8086 March 14 2.6.38 stable release
87+ ============== ===============================
8188
8289 How do the developers decide when to close the development cycle and create
8390 the 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
105112 a little more than one development cycle past their initial release. So,
106113 for example, the 2.6.36 kernel's history looked like:
107114
115+ ============== ===============================
108116 October 10 2.6.36 stable release
109117 November 22 2.6.36.1
110118 December 9 2.6.36.2
111119 January 7 2.6.36.3
112120 February 17 2.6.36.4
121+ ============== ===============================
113122
114123 2.6.36.4 was the final stable update for the 2.6.36 release.
115124
@@ -117,9 +126,11 @@ Some kernels are designated "long term" kernels; they will receive support · 1 unmodified line
117126 for a longer period. As of this writing, the current long term kernels
118127 and their maintainers are:
119128
129+ ====== ====================== ===========================
120130 2.6.27 Willy Tarreau (Deep-frozen stable kernel)
121131 2.6.32 Greg Kroah-Hartman
122132 2.6.35 Andi Kleen (Embedded flag kernel)
133+ ====== ====================== ===========================
123134
124135 The selection of a kernel for long-term support is purely a matter of a
125136 maintainer 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
127138 release.
128139
129140
130−2.2: THE LIFECYCLE OF A PATCH
141+The lifecycle of a patch
142+------------------------
131143
132144 Patches do not go directly from the developer's keyboard into the mainline
133145 kernel. 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
195207 step. This approach invariably leads to frustration for everybody
196208 involved.
197209
198−
199−2.3: HOW PATCHES GET INTO THE KERNEL
210+How patches get into the Kernel
211+-------------------------------
200212
201213 There is exactly one person who can merge patches into the mainline kernel
202214 repository: 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
242254 normally the right way to go.
243255
244256
245−2.4: NEXT TREES
257+Next trees
258+----------
246259
247260 The chain of subsystem trees guides the flow of patches into the kernel,
248261 but 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
294307 their way into linux-next some time before the merge window opens.
295308
296309
297−2.4.1: STAGING TREES
310+Staging trees
311+-------------
298312
299313 The kernel source tree contains the drivers/staging/ directory, where
300314 many 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
322336 a proper mainline driver.
323337
324338
325−2.5: TOOLS
339+Tools
340+-----
326341
327342 As can be seen from the above text, the kernel development process depends
328343 heavily 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
368383 quilt is the best tool for the job.
369384
370385
371−2.6: MAILING LISTS
386+Mailing lists
387+-------------
372388
373389 A great deal of Linux kernel development work is done by way of mailing
374390 lists. 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
436452 in the MAINTAINERS file packaged with the kernel source.
437453
438454
439−2.7: GETTING STARTED WITH KERNEL DEVELOPMENT
455+Getting started with Kernel development
456+---------------------------------------
440457
441458 Questions about how to get started with the kernel development process are
442459 common - from both individuals and companies. Equally common are missteps
@@ -463,6 +480,8 @@ they wish for by these means. · 20 unmodified lines
463480
464481 Andrew Morton gives this advice for aspiring kernel developers
465482
483+::
484+
466485 The #1 project for all kernel beginners should surely be "make sure
467486 that the kernel runs perfectly at all times on all machines which
468487 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 @@
1−3: EARLY-STAGE PLANNING
1+.. _development_early_stage:
2+
3+Early-stage planning
4+====================
25
36 When contemplating a Linux kernel development project, it can be tempting
47 to 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
710 communication can save far more time later on.
811
912
10−3.1: SPECIFYING THE PROBLEM
13+Specifying the problem
14+----------------------
1115
1216 Like any engineering project, a successful kernel enhancement starts with a
1317 clear 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
6468 Only then does it make sense to start considering possible solutions.
6569
6670
67−3.2: EARLY DISCUSSION
71+Early discussion
72+----------------
6873
6974 When planning a kernel development project, it makes great sense to hold
7075 discussions 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
117122 avoided with some early discussion with the kernel developers.
118123
119124
120−3.3: WHO DO YOU TALK TO?
125+Who do you talk to?
126+-------------------
121127
122128 When developers decide to take their plans public, the next question will
123129 be: where do we start? The answer is to find the right mailing list(s) and
@@ -141,6 +147,8 @@ development project. · 17 unmodified lines
141147 The task of finding the right maintainer is sometimes challenging enough
142148 that the kernel developers have added a script to ease the process:
143149
150+::
151+
144152 .../scripts/get_maintainer.pl
145153
146154 This 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
155163 track down a maintainer for a specific piece of code.
156164
157165
158−3.4: WHEN TO POST?
166+When to post?
167+-------------
159168
160169 If possible, posting your plans during the early stages can only be
161170 helpful. 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
179188 community informed as you go.
180189
181190
182−3.5: GETTING OFFICIAL BUY-IN
191+Getting official buy-in
192+-----------------------
183193
184194 If your work is being done in a corporate environment - as most Linux
185195 kernel 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 @@
1−4: GETTING THE CODE RIGHT
1+.. _development_coding:
2+
3+Getting the code right
4+======================
25
36 While there is much to be said for a solid and community-oriented design
47 process, 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
1215 quest.
1316
1417
15−4.1: PITFALLS
18+Pitfalls
19+---------
1620
17−* Coding style
21+Coding style
22+************
1823
1924 The kernel has long had a standard coding style, described in
2025 Documentation/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
5459 80-column limit, for example), just do it.
5560
5661
57−* Abstraction layers
62+Abstraction layers
63+******************
5864
5965 Computer Science professors teach students to make extensive use of
6066 abstraction 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
8793 replicating the same code throughout the kernel.
8894
8995
90−* #ifdef and preprocessor use in general
96+#ifdef and preprocessor use in general
97+**************************************
9198
9299 The C preprocessor seems to present a powerful temptation to some C
93100 programmers, 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
113120 the compiler to perform type checking on the arguments and return value.
114121
115122
116−* Inline functions
123+Inline functions
124+****************
117125
118126 Inline functions present a hazard of their own, though. Programmers can
119127 become 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
137145 irrelevant.
138146
139147
140−* Locking
148+Locking
149+*******
141150
142151 In May, 2006, the "Devicescape" networking stack was, with great
143152 fanfare, 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
151160 corporate doors. But one large problem in particular was that it was not
152161 designed to work on multiprocessor systems. Before this networking stack
153162 (now called mac80211) could be merged, a locking scheme needed to be
154−retrofitted onto it.
163+retrofitted onto it.
155164
156165 Once upon a time, Linux kernel code could be developed without thinking
157166 about 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
169178 attention to concurrency will have a difficult path into the mainline.
170179
171180
172−* Regressions
181+Regressions
182+***********
173183
174184 One final hazard worth mentioning is this: it can be tempting to make a
175185 change (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
185195 breaks? The best answer to this question was expressed by Linus in July,
186196 2007:
187197
198+::
199+
188200 So we don't fix bugs by introducing new problems. That way lies
189201 madness, and nobody ever knows if you actually make any real
190202 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
201213 user-space interfaces is always required.
202214
203215
204−
205−4.2: CODE CHECKING TOOLS
216+Code checking tools
217+-------------------
206218
207219 For now, at least, the writing of error-free code remains an ideal that few
208220 of 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
250262 There are quite a few other debugging options, some of which will be
251263 discussed below. Some of them have a significant performance impact and
252264 should not be used all of the time. But some time spent learning the
253−available options will likely be paid back many times over in short order.
265+available options will likely be paid back many times over in short order.
254266
255267 One of the heavier debugging tools is the locking checker, or "lockdep."
256268 This 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
263275 developers and users) in a deployed system; lockdep allows them to be found
264276 in an automated manner ahead of time. Code with any sort of non-trivial
265277 locking should be run with lockdep enabled before being submitted for
266−inclusion.
278+inclusion.
267279
268280 As a diligent kernel programmer, you will, beyond doubt, check the return
269281 status 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
300312 Other kinds of portability errors are best found by compiling your code for
301313 other architectures. If you do not happen to have an S/390 system or a
302314 Blackfin development board handy, you can still perform the compilation
303−step. A large set of cross compilers for x86 systems can be found at
315+step. A large set of cross compilers for x86 systems can be found at
304316
305317 http://www.kernel.org/pub/tools/crosstool/
306318
@@ -308,7 +320,8 @@ Some time spent installing and using these compilers will help avoid · 1 unmodified line
308320 embarrassment later.
309321
310322
311−4.3: DOCUMENTATION
323+Documentation
324+-------------
312325
313326 Documentation has often been more the exception than the rule with kernel
314327 development. 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
364377 "cleanup" needs a comment saying why it is done the way it is. And so on.
365378
366379
367−4.4: INTERNAL API CHANGES
380+Internal API changes
381+--------------------
368382
369383 The binary interface provided by the kernel to user space cannot be broken
370384 except 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 @@
1−5: POSTING PATCHES
1+.. _development_posting:
2+
3+Posting patches
4+===============
25
36 Sooner or later, the time comes when your work is ready to be presented to
47 the community for review and, eventually, inclusion into the mainline
@@ -11,7 +14,8 @@ SubmittingDrivers, and SubmitChecklist in the kernel documentation · 6 unmodified lines
1114 directory.
1215
1316
14−5.1: WHEN TO POST
17+When to post
18+------------
1519
1620 There is a constant temptation to avoid posting patches before they are
1721 completely "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
2731 with the idea that they can help you drive the work in the right direction.
2832
2933
30−5.2: BEFORE CREATING PATCHES
34+Before creating patches
35+-----------------------
3136
3237 There are a number of things which should be done before you consider
3338 sending 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
5257 always pays back the effort in short order.
5358
5459
55−5.3: PATCH PREPARATION
60+Patch preparation
61+-----------------
5662
5763 The preparation of patches for posting can be a surprising amount of work,
5864 but, 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
122128 done. When done properly, though, it is time well spent.
123129
124130
125−5.4: PATCH FORMATTING AND CHANGELOGS
131+Patch formatting and changelogs
132+-------------------------------
126133
127134 So now you have a perfect series of patches for posting, but the work is
128135 not 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
140147 subsystem name first, followed by the purpose of the patch. For
141148 example:
142149
150+ ::
151+
143152 gpio: fix build on CONFIG_GPIO_SYSFS=n
144153
145154 - 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
192201 detail in the SubmittingPatches document; what follows here is a brief
193202 summary. Each of these lines has the format:
194203
204+::
205+
195206 tag: Full Name <email address> optional-other-stuff
196207
197208 The 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
225236 for addition without the explicit permission of the person named.
226237
227238
228−5.5: SENDING THE PATCH
239+Sending the patch
240+-----------------
229241
230242 Before you mail your patches, there are a couple of other things you should
231243 take care of:
@@ -287,6 +299,8 @@ obvious maintainer, Andrew Morton is often the patch target of last resort. · 55 unmodified lines
287299 Patches need good subject lines. The canonical format for a patch line is
288300 something like:
289301
302+::
303+
290304 [PATCH nn/mm] subsys: one-line description of the patch
291305
292306 where "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 @@
1−6: FOLLOWTHROUGH
1+.. _development_followthrough:
2+
3+Followthrough
4+=============
25
36 At this point, you have followed the guidelines given so far and, with the
47 addition 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
1619 prevent the inclusion of your patches into the mainline.
1720
1821
19−6.1: WORKING WITH REVIEWERS
22+Working with reviewers
23+----------------------
2024
2125 A patch of any significance will result in a number of comments from other
2226 developers 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
97101 in mind, of course, that he may not agree with you either.
98102
99103
100−6.2: WHAT HAPPENS NEXT
104+What happens next
105+-----------------
101106
102107 If a patch is considered to be a good thing to add to the kernel, and once
103108 most 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
177182 afterward.
178183
179184
180−6.3: OTHER THINGS THAT CAN HAPPEN
185+Other things that can happen
186+-----------------------------
181187
182188 One day, you may open your mail client and see that somebody has mailed you
183189 a 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 @@
1−7: ADVANCED TOPICS
1+.. _development_advancedtopics:
2+
3+Advanced topics
4+===============
25
36 At this point, hopefully, you have a handle on how the development process
47 works. There is still more to learn, however! This section will cover a
58 number of topics which can be helpful for developers wanting to become a
69 regular part of the Linux kernel development process.
710
8−7.1: MANAGING PATCHES WITH GIT
11+Managing patches with git
12+-------------------------
913
1014 The use of distributed version control for the kernel began in early 2002,
1115 when 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
114118 thing happening; putting up a git tree with unreviewed or off-topic patches
115119 can affect your ability to get trees pulled in the future. Quoting Linus:
116120
121+::
122+
117123 You can send me patches, but for me to pull a git patch from you, I
118124 need to know that you know what you're doing, and I need to be able
119125 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
141147 sure that you have remembered to push those changes to the public server.
142148
143149
144−7.2: REVIEWING PATCHES
150+Reviewing patches
151+-----------------
145152
146153 Some readers will certainly object to putting this section with "advanced
147154 topics" 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 @@
1−8: FOR MORE INFORMATION
1+.. _development_conclusion:
2+
3+For more information
4+====================
25
36 There are numerous sources of information on Linux kernel development and
47 related topics. First among those will always be the Documentation
@@ -47,7 +50,8 @@ Documentation for git can be found at: · 42 unmodified lines
4750 http://www.kernel.org/pub/software/scm/git/docs/user-manual.html
4851
4952
50−9: CONCLUSION
53+Conclusion
54+==========
5155
5256 Congratulations to anybody who has made it through this long-winded
5357 document. 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+
3+project = 'Linux Kernel Development Documentation'
4+
5+tags.add("subproject")
6+
7+latex_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+
3+A guide to the Kernel Development Process
4+=========================================
5+
6+Contents:
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+
21+The purpose of this document is to help developers (and their managers)
22+work with the development community with a minimum of frustration. It is
23+an attempt to document how this community works in a way which is
24+accessible to those who are not intimately familiar with Linux kernel
25+development (or, indeed, free software development in general). While
26+there is some technical material here, this is very much a process-oriented
27+discussion which does not require a deep knowledge of kernel programming to
28+understand.
29+
Documentation/development-process/index.rst+9−0
@@ -0,0 +1,9 @@
1+Linux Kernel Development Documentation
2+======================================
3+
4+Contents:
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
9090 - interrupts : Should be single bit error interrupt, then double bit error
9191 interrupt, in this order.
9292
93+NAND FIFO ECC
94+Required 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+
101+DMA FIFO ECC
102+Required 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+
109+USB FIFO ECC
110+Required 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+
117+QSPI FIFO ECC
118+Required 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+
125+SDMMC FIFO ECC
126+Required 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+
93134 Example:
94135
95136 eccmgr: eccmgr@ffd06000 {
@@ -132,4 +173,61 @@ Example: · 36 unmodified lines
132173 interrupts = <5 IRQ_TYPE_LEVEL_HIGH>,
133174 <37 IRQ_TYPE_LEVEL_HIGH>;
134175 };
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+ };
135233 };
Documentation/devicetree/bindings/arm/arch_timer.txt+6−0
@@ -25,6 +25,12 @@ to deliver its interrupts via SPIs. · 24 unmodified lines
2525 - always-on : a boolean property. If present, the timer is powered through an
2626 always-on power domain, therefore it never loses context.
2727
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+
2834 ** Optional properties:
2935
3036 - 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
3838 Required root node properties:
3939 compatible = "raspberrypi,compute-module", "brcm,bcm2835";
4040
41+Raspberry Pi Zero
42+Required root node properties:
43+compatible = "raspberrypi,model-zero", "brcm,bcm2835";
44+
4145 Generic BCM2835 board
4246 Required root node properties:
4347 compatible = "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
55 Required root node properties:
66 - compatible = "ti,da850-evm", "ti,da850";
77
8+DA850/OMAP-L138/AM18x L138/C6748 Development Kit (LCDK) board
9+Required root node properties:
10+ - compatible = "ti,da850-lcdk", "ti,da850";
11+
812 EnBW AM1808 based CMC board
913 Required root node properties:
1014 - compatible = "enbw,cmc", "ti,da850;
Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt+28−11
@@ -175,38 +175,55 @@ Example: · 174 unmodified lines
175175 };
176176
177177 -----------------------------------------------------------------------
178−Hisilicon HiP05 PCIe-SAS system controller
178+Hisilicon HiP05/HiP06 PCIe-SAS sub system controller
179179
180180 Required properties:
181181 - compatible : "hisilicon,pcie-sas-subctrl", "syscon";
182182 - reg : Register address and size
183183
184−The HiP05 PCIe-SAS system controller is shared by PCIe and SAS controllers in
185−HiP05 Soc to implement some basic configurations.
184+The PCIe-SAS sub system controller is shared by PCIe and SAS controllers in
185+HiP05 or HiP06 Soc to implement some basic configurations.
186186
187187 Example:
188− /* for HiP05 PCIe-SAS system */
189− pcie_sas: system_controller@0xb0000000 {
188+ /* for HiP05 PCIe-SAS sub system */
189+ pcie_sas: system_controller@b0000000 {
190190 compatible = "hisilicon,pcie-sas-subctrl", "syscon";
191191 reg = <0xb0000000 0x10000>;
192192 };
193193
194−Hisilicon HiP05 PERISUB system controller
194+Hisilicon HiP05/HiP06 PERI sub system controller
195195
196196 Required properties:
197−- compatible : "hisilicon,hip05-perisubc", "syscon";
197+- compatible : "hisilicon,peri-subctrl", "syscon";
198198 - reg : Register address and size
199199
200−The HiP05 PERISUB system controller is shared by peripheral controllers in
201−HiP05 Soc to implement some basic configurations. The peripheral
200+The PERI sub system controller is shared by peripheral controllers in
201+HiP05 or HiP06 Soc to implement some basic configurations. The peripheral
202202 controllers include mdio, ddr, iic, uart, timer and so on.
203203
204204 Example:
205− /* for HiP05 perisub-ctrl-c system */
205+ /* for HiP05 sub peri system */
206206 peri_c_subctrl: syscon@80000000 {
207− compatible = "hisilicon,hip05-perisubc", "syscon";
207+ compatible = "hisilicon,peri-subctrl", "syscon";
208208 reg = <0x0 0x80000000 0x0 0x10000>;
209209 };
210+
211+Hisilicon HiP05/HiP06 DSA sub system controller
212+
213+Required properties:
214+- compatible : "hisilicon,dsa-subctrl", "syscon";
215+- reg : Register address and size
216+
217+The DSA sub system controller is shared by peripheral controllers in
218+HiP05 or HiP06 Soc to implement some basic configurations.
219+
220+Example:
221+ /* for HiP05 dsa sub system */
222+ pcie_sas: system_controller@a0000000 {
223+ compatible = "hisilicon,dsa-subctrl", "syscon";
224+ reg = <0xa0000000 0x10000>;
225+ };
226+
210227 -----------------------------------------------------------------------
211228 Hisilicon CPU controller
212229
Documentation/devicetree/bindings/arm/marvell/armada-39x.txt+13−2
@@ -8,8 +8,19 @@ Required root node property: · 7 unmodified lines
88
99 - compatible: must contain "marvell,armada390"
1010
11−In addition, boards using the Marvell Armada 398 SoC shall have the
12−following property before the previous one:
11+In addition, boards using the Marvell Armada 395 SoC shall have the
12+following property before the common "marvell,armada390" one:
13+
14+Required root node property:
15+
16+compatible: must contain "marvell,armada395"
17+
18+Example:
19+
20+compatible = "marvell,a395-gp", "marvell,armada395", "marvell,armada390";
21+
22+Boards using the Marvell Armada 398 SoC shall have the following
23+property before the common "marvell,armada390" one:
1324
1425 Required root node property:
1526
Documentation/devicetree/bindings/arm/marvell/marvell,orion5x.txt+25−0
@@ -0,0 +1,25 @@
1+Marvell Orion SoC Family Device Tree Bindings
2+---------------------------------------------
3+
4+Boards with a SoC of the Marvell Orion family, eg 88f5181
5+
6+* Required root node properties:
7+compatible: must contain "marvell,orion5x"
8+
9+In addition, the above compatible shall be extended with the specific
10+SoC. Currently known SoC compatibles are:
11+
12+"marvell,orion5x-88f5181"
13+"marvell,orion5x-88f5182"
14+
15+And in addition, the compatible shall be extended with the specific
16+board. 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
55
66 Required Properties:
77
8−- compatible: Should be:
8+- compatible: Should be one of:
9+ - "mediatek,mt2701-apmixedsys"
910 - "mediatek,mt8135-apmixedsys"
1011 - "mediatek,mt8173-apmixedsys"
1112 - #clock-cells: Must be 1
Documentation/devicetree/bindings/arm/mediatek/mediatek,bdpsys.txt+22−0
@@ -0,0 +1,22 @@
1+Mediatek bdpsys controller
2+============================
3+
4+The Mediatek bdpsys controller provides various clocks to the system.
5+
6+Required Properties:
7+
8+- compatible: Should be:
9+ - "mediatek,mt2701-bdpsys", "syscon"
10+- #clock-cells: Must be 1
11+
12+The bdpsys controller uses the common clk binding from
13+Documentation/devicetree/bindings/clock/clock-bindings.txt
14+The available clocks are defined in dt-bindings/clock/mt*-clk.h.
15+
16+Example:
17+
18+bdpsys: 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 @@
1+Mediatek ethsys controller
2+============================
3+
4+The Mediatek ethsys controller provides various clocks to the system.
5+
6+Required Properties:
7+
8+- compatible: Should be:
9+ - "mediatek,mt2701-ethsys", "syscon"
10+- #clock-cells: Must be 1
11+
12+The ethsys controller uses the common clk binding from
13+Documentation/devicetree/bindings/clock/clock-bindings.txt
14+The available clocks are defined in dt-bindings/clock/mt*-clk.h.
15+
16+Example:
17+
18+ethsys: 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 @@
1+Mediatek hifsys controller
2+============================
3+
4+The Mediatek hifsys controller provides various clocks and reset
5+outputs to the system.
6+
7+Required Properties:
8+
9+- compatible: Should be:
10+ - "mediatek,mt2701-hifsys", "syscon"
11+- #clock-cells: Must be 1
12+
13+The hifsys controller uses the common clk binding from
14+Documentation/devicetree/bindings/clock/clock-bindings.txt
15+The available clocks are defined in dt-bindings/clock/mt*-clk.h.
16+
17+Example:
18+
19+hifsys: 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
55
66 Required Properties:
77
8−- compatible: Should be:
8+- compatible: Should be one of:
9+ - "mediatek,mt2701-imgsys", "syscon"
910 - "mediatek,mt8173-imgsys", "syscon"
1011 - #clock-cells: Must be 1
1112
Documentation/devicetree/bindings/arm/mediatek/mediatek,infracfg.txt+2−1
@@ -6,7 +6,8 @@ outputs to the system. · 5 unmodified lines
66
77 Required Properties:
88
9−- compatible: Should be:
9+- compatible: Should be one of:
10+ - "mediatek,mt2701-infracfg", "syscon"
1011 - "mediatek,mt8135-infracfg", "syscon"
1112 - "mediatek,mt8173-infracfg", "syscon"
1213 - #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
55
66 Required Properties:
77
8−- compatible: Should be:
8+- compatible: Should be one of:
9+ - "mediatek,mt2701-mmsys", "syscon"
910 - "mediatek,mt8173-mmsys", "syscon"
1011 - #clock-cells: Must be 1
1112
Documentation/devicetree/bindings/arm/mediatek/mediatek,pericfg.txt+2−1
@@ -6,7 +6,8 @@ outputs to the system. · 5 unmodified lines
66
77 Required Properties:
88
9−- compatible: Should be:
9+- compatible: Should be one of:
10+ - "mediatek,mt2701-pericfg", "syscon"
1011 - "mediatek,mt8135-pericfg", "syscon"
1112 - "mediatek,mt8173-pericfg", "syscon"
1213 - #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
55
66 Required Properties:
77
8−- compatible: Should be:
8+- compatible: Should be one of:
9+ - "mediatek,mt2701-topckgen"
910 - "mediatek,mt8135-topckgen"
1011 - "mediatek,mt8173-topckgen"
1112 - #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
55
66 Required Properties:
77
8−- compatible: Should be:
8+- compatible: Should be one of:
9+ - "mediatek,mt2701-vdecsys", "syscon"
910 - "mediatek,mt8173-vdecsys", "syscon"
1011 - #clock-cells: Must be 1
1112
Documentation/devicetree/bindings/arm/omap/omap.txt+6−0
@@ -180,3 +180,9 @@ Boards: · 179 unmodified lines
180180
181181 - DRA722 EVM: Software Development Board for DRA722
182182 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
3131 or
3232 - compatible = "firefly,firefly-rk3288-beta", "rockchip,rk3288";
3333
34+- Firefly Firefly-RK3288 Reload board:
35+ Required root node properties:
36+ - compatible = "firefly,firefly-rk3288-reload", "rockchip,rk3288";
37+
3438 - ChipSPARK PopMetal-RK3288 board:
3539 Required root node properties:
3640 - compatible = "chipspark,popmetal-rk3288", "rockchip,rk3288";
@@ -110,6 +114,14 @@ Rockchip platforms device tree bindings · 73 unmodified lines
110114 - Rockchip RK3229 Evaluation board:
111115 - compatible = "rockchip,rk3229-evb", "rockchip,rk3229";
112116
117+- Rockchip RK3288 Fennec board:
118+ Required root node properties:
119+ - compatible = "rockchip,rk3288-fennec", "rockchip,rk3288";
120+
113121 - Rockchip RK3399 evb:
114122 Required root node properties:
115123 - 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
1010 - "samsung,exynos5260-pmu" - for Exynos5260 SoC.
1111 - "samsung,exynos5410-pmu" - for Exynos5410 SoC,
1212 - "samsung,exynos5420-pmu" - for Exynos5420 SoC.
13+ - "samsung,exynos5433-pmu" - for Exynos5433 SoC.
1314 - "samsung,exynos7-pmu" - for Exynos7 SoC.
1415 second value must be always "syscon".
1516
Documentation/devicetree/bindings/arm/shmobile.txt+6−0
@@ -49,6 +49,8 @@ Boards: · 48 unmodified lines
4949 compatible = "renesas,genmai", "renesas,r7s72100"
5050 - Gose
5151 compatible = "renesas,gose", "renesas,r8a7793"
52+ - H3ULCB (RTP0RC7795SKB00010S)
53+ compatible = "renesas,h3ulcb", "renesas,r8a7795";
5254 - Henninger
5355 compatible = "renesas,henninger", "renesas,r8a7791"
5456 - Koelsch (RTP0RC7791SEB00010S)
@@ -63,9 +65,13 @@ Boards: · 8 unmodified lines
6365 compatible = "renesas,marzen", "renesas,r8a7779"
6466 - Porter (M2-LCDP)
6567 compatible = "renesas,porter", "renesas,r8a7791"
68+ - RSKRZA1 (YR0K77210C000BE)
69+ compatible = "renesas,rskrza1", "renesas,r7s72100"
6670 - Salvator-X (RTP0RC7795SIPB0010S)
6771 compatible = "renesas,salvator-x", "renesas,r8a7795";
6872 - Salvator-X
6973 compatible = "renesas,salvator-x", "renesas,r8a7796";
7074 - SILK (RTP0RC7794LCB00011S)
7175 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
1414 allwinner,sun8i-a83t
1515 allwinner,sun8i-h3
1616 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
44 TS-4800 board
55 Required root node properties:
66 - compatible = "technologic,imx51-ts4800", "fsl,imx51";
7+
8+TS-4900 is a System-on-Module based on the Freescale i.MX6 System-on-Chip.
9+It can be mounted on a carrier board providing additional peripheral connectors.
10+Required 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
1313
1414 Bus matrix required properties:
1515 - compatible = "zte,zx-bus-matrix"
16+
17+
18+---------------------------------------
19+- ZX296718 SoC:
20+ Required root node properties:
21+ - compatible = "zte,zx296718"
22+
23+ZX296718 EVB board:
24+ - "zte,zx296718-evb"
25+
26+System management required properties:
27+ - compatible = "zte,zx296718-aon-sysctrl"
28+ - compatible = "zte,zx296718-sysctrl"
29+
30+Example:
31+aon_sysctrl: aon-sysctrl@116000 {
32+ compatible = "zte,zx296718-aon-sysctrl", "syscon";
33+ reg = <0x116000 0x1000>;
34+};
35+
36+sysctrl: 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 @@
1+Binding for ASCII LCD displays on Imagination Technologies boards
2+
3+Required properties:
4+- compatible : should be one of:
5+ "img,boston-lcd"
6+ "mti,malta-lcd"
7+ "mti,sead3-lcd"
8+
9+Required properties for "img,boston-lcd":
10+- reg : memory region locating the device registers
11+
12+Required 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+
16+The layout of the registers & properties of the display are determined
17+from the compatible string, making this binding somewhat trivial.
Documentation/devicetree/bindings/bus/qcom,ebi2.txt+138−0
@@ -0,0 +1,138 @@
1+Qualcomm External Bus Interface 2 (EBI2)
2+
3+The EBI2 contains two peripheral blocks: XMEM and LCDC. The XMEM handles any
4+external memory (such as NAND or other memory-mapped peripherals) whereas
5+LCDC handles LCD displays.
6+
7+As it says it connects devices to an external bus interface, meaning address
8+lines (up to 9 address lines so can only address 1KiB external memory space),
9+data lines (16 bits), OE (output enable), ADV (address valid, used on some
10+NOR 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+
13+Apparently this bus is clocked at 64MHz. It has dedicated pins on the package
14+and the bus can only come out on these pins, however if some of the pins are
15+unused they can be left unconnected or remuxed to be used as GPIO or in some
16+cases other orthogonal functions as well.
17+
18+Also CS1 and CS2 has -A and -B signals. Why they have that is unclear to me.
19+
20+The chip selects have the following memory range assignments. This region of
21+memory is referred to as "Chip Peripheral SS FPB0" and is 168MB big.
22+
23+Chip Select Physical address base
24+CS0 GPIO134 0x1a800000-0x1b000000 (8MB)
25+CS1 GPIO39 (A) / GPIO123 (B) 0x1b000000-0x1b800000 (8MB)
26+CS2 GPIO40 (A) / GPIO124 (B) 0x1b800000-0x1c000000 (8MB)
27+CS3 GPIO133 0x1d000000-0x25000000 (128 MB)
28+CS4 GPIO132 0x1c800000-0x1d000000 (8MB)
29+CS5 GPIO131 0x1c000000-0x1c800000 (8MB)
30+
31+The APQ8060 Qualcomm Application Processor User Guide, 80-N7150-14 Rev. A,
32+August 6, 2012 contains some incomplete documentation of the EBI2.
33+
34+FIXME: the manual mentions "write precharge cycles" and "precharge cycles".
35+We have not been able to figure out which bit fields these correspond to
36+in the hardware, or what valid values exist. The current hypothesis is that
37+this is something just used on the FAST chip selects and that the SLOW
38+chip selects are understood fully. There is also a "byte device enable"
39+flag somewhere for 8bit memories.
40+
41+FIXME: The chipselects have SLOW and FAST configuration registers. It's a bit
42+unclear what this means, if they are mutually exclusive or can be used
43+together, or if some chip selects are hardwired to be FAST and others are SLOW
44+by design.
45+
46+The XMEM registers are totally undocumented but could be partially decoded
47+because the Cypress AN49576 Antioch Westbridge apparently has suspiciously
48+similar register layout, see: http://www.cypress.com/file/105771/download
49+
50+Required 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+
69+Optional subnodes:
70+- Nodes inside the EBI2 will be considered device nodes.
71+
72+The following optional properties are properties that can be tagged onto
73+any device subnode. We are assuming that there can be only ONE device per
74+chipselect subnode, else the properties will become ambigous.
75+
76+Optional 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+
95+Optional 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+
107+Example:
108+
109+ebi2@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+
3+The Amlogic GXBB AO clock controller generates and supplies clock to various
4+controllers within the Always-On part of the SoC.
5+
6+Required 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+
14+Each clock is assigned an identifier and client nodes can use this identifier
15+to specify the clock which they consume. All available clocks are defined as
16+preprocessor macros in the dt-bindings/clock/gxbb-aoclkc.h header and can be
17+used in device tree sources.
18+
19+- #reset-cells: should be 1.
20+
21+Each reset is assigned an identifier and client nodes can use this identifier
22+to specify the reset which they consume. All available resets are defined as
23+preprocessor macros in the dt-bindings/reset/gxbb-aoclkc.h header and can be
24+used in device tree sources.
25+
26+Example: 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+
35+Example: 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
55 reference designs by adding special control registers that manage such
66 oscillators to their system controllers.
77
8−The ARM system controller contains logic to serialize and initialize
8+The various ARM system controllers contain logic to serialize and initialize
99 an ICST clock request after a write to the 32 bit register at an offset
1010 into the system controller. Furthermore, to even be able to alter one of
1111 these frequencies, the system controller must first be unlocked by
1212 writing a special token to another offset in the system controller.
1313
14+Some ARM hardware contain special versions of the serial interface that only
15+connects the low 8 bits of the VDW (missing one bit), hardwires RDW to
16+different values and sometimes also hardwire the output divider. They
17+therefore have special compatible strings as per this table (the OD value is
18+the value on the pins, not the resulting output divider):
19+
20+Hardware variant: RDW OD VDW
21+
22+Integrator/AP 22 1 Bit 8 0, rest variable
23+integratorap-cm
24+
25+Integrator/AP 46 3 Bit 8 0, rest variable
26+integratorap-sys
27+
28+Integrator/AP 22 or 1 17 or (33 or 25 MHz)
29+integratorap-pci 14 1 14
30+
31+Integrator/CP 22 variable Bit 8 0, rest variable
32+integratorcp-cm-core
33+
34+Integrator/CP 22 variable Bit 8 0, rest variable
35+integratorcp-cm-mem
36+
1437 The ICST oscillator must be provided inside a system controller node.
1538
1639 Required 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"
1748 - lock-offset: the offset address into the system controller where the
1849 unlocking register is located
1950 - vco-offset: the offset address into the system controller where the
2051 ICST control register is located (even 32 bit address)
21−- compatible: must be one of "arm,syscon-icst525" or "arm,syscon-icst307"
2252 - #clock-cells: must be <0>
2353 - clocks: parent clock, since the ICST needs a parent clock to derive its
2454 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+
3+Marvell Armada 37xx SoCs provide peripheral clocks which are
4+used as clock source for the peripheral of the SoC.
5+
6+There are two different blocks associated to north bridge and south
7+bridge.
8+
9+The peripheral clock consumer should specify the desired clock by
10+having the clock ID in its "clocks" phandle cell.
11+
12+The following is a list of provided IDs for Armada 370 North bridge clocks:
13+ID Clock name Description
14+-----------------------------------
15+0 mmc MMC controller
16+1 sata_host Sata Host
17+2 sec_at Security AT
18+3 sac_dap Security DAP
19+4 tsecm Security Engine
20+5 setm_tmx Serial Embedded Trace Module
21+6 avs Adaptive Voltage Scaling
22+7 sqf SPI
23+8 pwm PWM
24+9 i2c_2 I2C 2
25+10 i2c_1 I2C 1
26+11 ddr_phy DDR PHY
27+12 ddr_fclk DDR F clock
28+13 trace Trace
29+14 counter Counter
30+15 eip97 EIP 97
31+16 cpu CPU
32+
33+The following is a list of provided IDs for Armada 370 South bridge clocks:
34+ID Clock name Description
35+-----------------------------------
36+0 gbe-50 50 MHz parent clock for Gigabit Ethernet
37+1 gbe-core parent clock for Gigabit Ethernet core
38+2 gbe-125 125 MHz parent clock for Gigabit Ethernet
39+3 gbe1-50 50 MHz clock for Gigabit Ethernet port 1
40+4 gbe0-50 50 MHz clock for Gigabit Ethernet port 0
41+5 gbe1-125 125 MHz clock for Gigabit Ethernet port 1
42+6 gbe0-125 125 MHz clock for Gigabit Ethernet port 0
43+7 gbe1-core Gigabit Ethernet core port 1
44+8 gbe0-core Gigabit Ethernet core port 0
45+9 gbe-bm Gigabit Ethernet Buffer Manager
46+10 sdio SDIO
47+11 usb32-sub2-sys USB 2 clock
48+12 usb32-ss-sys USB 3 clock
49+
50+Required 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+
62+Example:
63+
64+nb_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+
3+Marvell Armada 37xx SoCs provde Time Base Generator clocks which are
4+used as parent clocks for the peripheral clocks.
5+
6+The TBG clock consumer should specify the desired clock by having the
7+clock ID in its "clocks" phandle cell.
8+
9+The 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+
15+Required 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+
20+Example:
21+
22+tbg: 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+
3+Marvell Armada 37xx SoCs allow to determine the xtal clock frequencies by
4+reading the gpio latch register.
5+
6+This node must be a subnode of the node exposing the register address
7+of the GPIO block where the gpio latch is located.
8+
9+Required 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+
14+Optional properties:
15+- clock-output-names : from common clock binding; allows overwrite default clock
16+ output names ("xtal")
17+
18+Example:
19+gpio1: 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
66
77 Required properties:
88 - compatible : shall be one of the following:
9− "atmel,at91sam9x5-sckc":
9+ "atmel,at91sam9x5-sckc" or
10+ "atmel,sama5d4-sckc":
1011 at91 SCKC (Slow Clock Controller)
1112 This node contains the slow clock definitions.
1213
Documentation/devicetree/bindings/clock/brcm,bcm53573-ilp.txt+36−0
@@ -0,0 +1,36 @@
1+Broadcom BCM53573 ILP clock
2+===========================
3+
4+This binding uses the common clock binding:
5+ Documentation/devicetree/bindings/clock/clock-bindings.txt
6+
7+This binding is used for ILP clock (sometimes referred as "slow clock")
8+on Broadcom BCM53573 devices using Cortex-A7 CPU.
9+
10+ILP's rate has to be calculated on runtime and it depends on ALP clock
11+which has to be referenced.
12+
13+This clock is part of PMU (Power Management Unit), a Broadcom's device
14+handing power-related aspects. Its node must be sub-node of the PMU
15+device.
16+
17+Required 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+
24+Example:
25+
26+pmu@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
1010 - "samsung,exynos4210-audss-clock" - controller compatible with all Exynos4 SoCs.
1111 - "samsung,exynos5250-audss-clock" - controller compatible with Exynos5250
1212 SoCs.
13+ - "samsung,exynos5410-audss-clock" - controller compatible with Exynos5410
14+ SoCs.
1315 - "samsung,exynos5420-audss-clock" - controller compatible with Exynos5420
1416 SoCs.
1517 - reg: physical base address and length of the controller's register set.
@@ -91,5 +93,5 @@ i2s0: i2s@03830000 { · 75 unmodified lines
9193 <&clock_audss EXYNOS_MOUT_AUDSS>,
9294 <&clock_audss EXYNOS_MOUT_I2S>;
9395 clock-names = "iis", "i2s_opclk0", "i2s_opclk1",
94− "mout_audss", "mout_i2s";
96+ "mout_audss", "mout_i2s";
9597 };
Documentation/devicetree/bindings/clock/exynos5410-clock.txt+13−8
@@ -12,24 +12,29 @@ Required Properties: · 11 unmodified lines
1212
1313 - #clock-cells: should be 1.
1414
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+
1520 All available clocks are defined as preprocessor macros in
1621 dt-bindings/clock/exynos5410.h header and can be used in device
1722 tree sources.
1823
19−External clock:
20−
21−There is clock that is generated outside the SoC. It
22−is expected that it is defined using standard clock bindings
23−with following clock-output-name:
24−
25− - "fin_pll" - PLL input clock from XXTI
26−
2724 Example 1: An example of a clock controller node is listed below.
2825
26+ fin_pll: xxti {
27+ compatible = "fixed-clock";
28+ clock-frequency = <24000000>;
29+ clock-output-names = "fin_pll";
30+ #clock-cells = <0>;
31+ };
32+
2933 clock: clock-controller@0x10010000 {
3034 compatible = "samsung,exynos5410-clock";
3135 reg = <0x10010000 0x30000>;
3236 #clock-cells = <1>;
37+ clocks = <&fin_pll>;
3338 };
3439
3540 Example 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 @@
1−Binding for Maxim MAX77686 32k clock generator block
1+Binding for Maxim MAX77686/MAX77802/MAX77620 32k clock generator block
22
3−This is a part of device tree bindings of MAX77686 multi-function device.
4−More information can be found in bindings/mfd/max77686.txt file.
3+This is a part of device tree bindings of MAX77686/MAX77802/MAX77620
4+multi-function device. More information can be found in MFD DT binding
5+doc 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.
59
610 The 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
12+dt-bindings/clock/maxim,max77686.h.
13+
14+
15+The MAX77802 contains two 32.768khz clock outputs that can be controlled
16+(gated/ungated) over I2C. Clocks are defined as preprocessor macros in
17+dt-bindings/clock/maxim,max77802.h.
18+
19+The MAX77686 contains one 32.768khz clock outputs that can be controlled
20+(gated/ungated) over I2C. Clocks are defined as preprocessor macros in
21+dt-bindings/clock/maxim,max77620.h.
822
923 Following properties should be presend in main device node of the MFD chip.
1024
@@ -17,30 +31,84 @@ Optional properties: · 6 unmodified lines
1731
1832 Each clock is assigned an identifier and client nodes can use this identifier
1933 to specify the clock which they consume. Following indices are allowed:
20− - 0: 32khz_ap clock,
21− - 1: 32khz_cp clock,
22− - 2: 32khz_pmic clock.
34+ - 0: 32khz_ap clock (max77686, max77802), 32khz_out0 (max77620)
35+ - 1: 32khz_cp clock (max77686, max77802),
36+ - 2: 32khz_pmic clock (max77686).
37+
38+Clocks are defined as preprocessor macros in above dt-binding header for
39+respective chips.
40+
41+Example:
42+
43+1. 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+
68+2. 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+ };
2392
24−Clocks are defined as preprocessor macros in dt-bindings/clock/maxim,max77686.h
25−header and can be used in device tree sources.
2693
27−Example: Node of the MFD chip
94+3. With MAX77620:
2895
29− max77686: max77686@09 {
30− compatible = "maxim,max77686";
31− interrupt-parent = <&wakeup_eint>;
32− interrupts = <26 0>;
33− reg = <0x09>;
34− #clock-cells = <1>;
96+#include <dt-bindings/clock/maxim,max77620.h>
97+/* ... */
3598
36− /* ... */
37− };
99+ Node of the MFD chip
100+ max77620: max77620@3c {
101+ compatible = "maxim,max77620";
102+ reg = <0x3c>;
103+ #clock-cells = <1>;
104+ /* ... */
105+ };
38106
39−Example: Clock consumer node
107+ Clock consumer node
40108
41− foo@0 {
42− compatible = "bar,foo";
43− /* ... */
44− clock-names = "my-clock";
45− clocks = <&max77686 MAX77686_CLK_PMIC>;
46− };
109+ foo@0 {
110+ compatible = "bar,foo";
111+ /* ... */
112+ clock-names = "my-clock";
113+ clocks = <&max77620 MAX77620_CLK_32K_OUT0>;
114+ };
Documentation/devicetree/bindings/clock/maxim,max77802.txt+0−44
@@ -1,44 +0,0 @@
1−Binding for Maxim MAX77802 32k clock generator block
2−
3−This is a part of device tree bindings of MAX77802 multi-function device.
4−More information can be found in bindings/mfd/max77802.txt file.
5−
6−The MAX77802 contains two 32.768khz clock outputs that can be controlled
7−(gated/ungated) over I2C.
8−
9−Following properties should be present in main device node of the MFD chip.
10−
11−Required properties:
12−- #clock-cells: From common clock binding; shall be set to 1.
13−
14−Optional properties:
15−- clock-output-names: From common clock binding.
16−
17−Each clock is assigned an identifier and client nodes can use this identifier
18−to specify the clock which they consume. Following indices are allowed:
19− - 0: 32khz_ap clock,
20− - 1: 32khz_cp clock.
21−
22−Clocks are defined as preprocessor macros in dt-bindings/clock/maxim,max77802.h
23−header and can be used in device tree sources.
24−
25−Example: 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−
37−Example: 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
5252 "marvell,dove-core-clock" - for Dove SoC core clocks
5353 "marvell,kirkwood-core-clock" - for Kirkwood SoC (except mv88f6180)
5454 "marvell,mv88f6180-core-clock" - for Kirkwood MV88f6180 SoC
55+ "marvell,mv88f5181-core-clock" - for Orion MV88F5181 SoC
5556 "marvell,mv88f5182-core-clock" - for Orion MV88F5182 SoC
5657 "marvell,mv88f5281-core-clock" - for Orion MV88F5281 SoC
5758 "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
8686 7 pex3 PCIe 3
8787 8 pex0 PCIe 0
8888 9 usb3h0 USB3 Host 0
89+10 usb3h1 USB3 Host 1
90+15 sata0 SATA 0
8991 17 sdio SDIO
9092 22 xor0 XOR 0
9193 28 xor1 XOR 1
Documentation/devicetree/bindings/clock/qcom,gcc.txt+17−0
@@ -15,6 +15,7 @@ Required properties : · 14 unmodified lines
1515 "qcom,gcc-msm8974pro"
1616 "qcom,gcc-msm8974pro-ac"
1717 "qcom,gcc-msm8996"
18+ "qcom,gcc-mdm9615"
1819
1920 - reg : shall contain base register location and length
2021 - #clock-cells : shall contain 1
@@ -22,6 +23,11 @@ Required properties : · 1 unmodified line
2223
2324 Optional properties :
2425 - #power-domain-cells : shall contain 1
26+- Qualcomm TSENS (thermal sensor device) on some devices can
27+be part of GCC and hence the TSENS properties can also be
28+part of the GCC/clock-controller node.
29+For more details on the TSENS properties please refer
30+Documentation/devicetree/bindings/thermal/qcom-tsens.txt
2531
2632 Example:
2733 clock-controller@900000 {
@@ -31,3 +37,14 @@ Example: · 3 unmodified lines
3137 #reset-cells = <1>;
3238 #power-domain-cells = <1>;
3339 };
40+
41+Example 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
77 "qcom,lcc-msm8960"
88 "qcom,lcc-apq8064"
99 "qcom,lcc-ipq8064"
10+ "qcom,lcc-mdm9615"
1011
1112 - reg : shall contain base register location and length
1213 - #clock-cells : shall contain 1
Documentation/devicetree/bindings/clock/st,stm32-rcc.txt+35−7
@@ -1,16 +1,16 @@
11 STMicroelectronics STM32 Reset and Clock Controller
22 ===================================================
33
4−The RCC IP is both a reset and a clock controller. This documentation only
5−describes the clock part.
4+The RCC IP is both a reset and a clock controller.
65
7−Please also refer to clock-bindings.txt in this directory for common clock
8−controller binding usage.
6+Please refer to clock-bindings.txt for common clock controller binding usage.
7+Please also refer to reset.txt for common reset controller binding usage.
98
109 Required properties:
1110 - compatible: Should be "st,stm32f42xx-rcc"
1211 - reg: should be register base and length as documented in the
1312 datasheet
13+- #reset-cells: 1, see below
1414 - #clock-cells: 2, device nodes should specify the clock in their "clocks"
1515 property, containing a phandle to the clock device node, an index selecting
1616 between gated clocks and other clocks and an index specifying the clock to
@@ -19,6 +19,7 @@ Required properties: · 2 unmodified lines
1919 Example:
2020
2121 rcc: rcc@40023800 {
22+ #reset-cells = <1>;
2223 #clock-cells = <2>
2324 compatible = "st,stm32f42xx-rcc", "st,stm32-rcc";
2425 reg = <0x40023800 0x400>;
@@ -35,16 +36,23 @@ from the first RCC clock enable register (RCC_AHB1ENR, address offset 0x30). · 10 unmodified lines
3536 It is calculated as: index = register_offset / 4 * 32 + bit_offset.
3637 Where bit_offset is the bit offset within the register (LSB is 0, MSB is 31).
3738
39+To simplify the usage and to share bit definition with the reset and clock
40+drivers of the RCC IP, macros are available to generate the index in
41+human-readble format.
42+
43+For STM32F4 series, the macro are available here:
44+ - include/dt-bindings/mfd/stm32f4-rcc.h
45+
3846 Example:
3947
4048 /* Gated clock, AHB1 bit 0 (GPIOA) */
4149 ... {
42− clocks = <&rcc 0 0>
50+ clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOA)>
4351 };
4452
4553 /* Gated clock, AHB2 bit 4 (CRYP) */
4654 ... {
47− clocks = <&rcc 0 36>
55+ clocks = <&rcc 0 STM32F4_AHB2_CLOCK(CRYP)>
4856 };
4957
5058 Specifying other clocks
@@ -61,5 +69,25 @@ Example: · 10 unmodified lines
6169
6270 /* Misc clock, FCLK */
6371 ... {
64− clocks = <&rcc 1 1>
72+ clocks = <&rcc 1 STM32F4_APB1_CLOCK(TIM2)>
73+ };
74+
75+
76+Specifying softreset control of devices
77+=======================================
78+
79+Device nodes should specify the reset channel required in their "resets"
80+property, containing a phandle to the reset device node and an index specifying
81+which channel to use.
82+The index is the bit number within the RCC registers bank, starting from RCC
83+base address.
84+It is calculated as: index = register_offset / 4 * 32 + bit_offset.
85+Where bit_offset is the bit offset within the register.
86+For example, for CRC reset:
87+ crc = AHB1RSTR_offset / 4 * 32 + CRCRST_bit_offset = 0x10 / 4 * 32 + 12 = 140
88+
89+example:
90+
91+ timer2 {
92+ resets = <&rcc STM32F4_APB1_RESET(TIM2)>;
6593 };
Documentation/devicetree/bindings/clock/st/st,clkgen-divmux.txt+0−49
@@ -1,49 +0,0 @@
1−Binding for a ST divider and multiplexer clock driver.
2−
3−This binding uses the common clock binding[1].
4−Base 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−
9−Required 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−
25−Example:
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
1010 Required properties:
1111
1212 - compatible : shall be:
13− "st,stih416-clkgenc-vcc-hd", "st,clkgen-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"
13+ "st,stih407-clkgen-a9-mux"
2114
2215 - #clock-cells : from common clock binding; shall be set to 0.
2316
@@ -27,10 +20,13 @@ Required properties: · 3 unmodified lines
2720
2821 Example:
2922
30− clk_m_hva: clk-m-hva@fd690868 {
23+ clk_m_a9: clk-m-a9@92b0000 {
3124 #clock-cells = <0>;
32− compatible = "st,stih416-clkgenf-vcc-hva", "st,clkgen-mux";
33− reg = <0xfd690868 4>;
25+ compatible = "st,stih407-clkgen-a9-mux";
26+ reg = <0x92b0000 0x10000>;
3427
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>;
3632 };
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
99 Required properties:
1010
1111 - compatible : shall be:
12− "st,clkgena-prediv-c65", "st,clkgena-prediv"
13− "st,clkgena-prediv-c32", "st,clkgena-prediv"
14−
15− "st,clkgena-plls-c65"
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"
12+ "st,clkgen-pll0"
13+ "st,clkgen-pll1"
14+ "st,stih407-clkgen-plla9"
15+ "st,stih418-clkgen-plla9"
3016
3117 - #clock-cells : From common clock binding; shall be set to 1.
3218
@@ -36,17 +22,16 @@ Required properties: · 3 unmodified lines
3622
3723 Example:
3824
39− clockgen-a@fee62000 {
40− reg = <0xfee62000 0xb48>;
25+ clockgen-a9@92b0000 {
26+ compatible = "st,clkgen-c32";
27+ reg = <0x92b0000 0xffff>;
4128
42− clk_s_a0_pll: clk-s-a0-pll {
29+ clockgen_a9_pll: clockgen-a9-pll {
4330 #clock-cells = <1>;
44− compatible = "st,clkgena-plls-c65";
31+ compatible = "st,stih407-clkgen-plla9";
4532
4633 clocks = <&clk_sysin>;
4734
48− clock-output-names = "clk-s-a0-pll0-hs",
49− "clk-s-a0-pll0-ls",
50− "clk-s-a0-pll1";
35+ clock-output-names = "clockgen-a9-pll-odf";
5136 };
5237 };
Documentation/devicetree/bindings/clock/st/st,clkgen-prediv.txt+0−36
@@ -1,36 +0,0 @@
1−Binding for a ST pre-divider clock driver.
2−
3−This binding uses the common clock binding[1].
4−Base 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−
9−Required 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−
21−Example:
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 @@
1−Binding for a type of STMicroelectronics clock crossbar (VCC).
2−
3−The crossbar can take up to 4 input clocks and control up to 16
4−output clocks. Not all inputs or outputs have to be in use in a
5−particular instantiation. Each output can be individually enabled,
6−select any of the input clocks and apply a divide (by 1,2,4 or 8) to
7−that selected clock.
8−
9−This binding uses the common clock binding[1].
10−
11−[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
12−
13−Required 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−
33−Example:
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
1313 ...
1414 };
1515
16− prediv_node {
17− ...
18− };
19−
20− divmux_node {
21− ...
22− };
23−
2416 quadfs_node {
2517 ...
2618 };
@@ -29,10 +21,6 @@ address is common of all subnode. · 2 unmodified lines
2921 ...
3022 };
3123
32− vcc_node {
33− ...
34− };
35−
3624 flexgen_node {
3725 ...
3826 };
@@ -43,11 +31,8 @@ This binding uses the common clock binding[1]. · 4 unmodified lines
4331 Each subnode should use the binding described in [2]..[7]
4432
4533 [1] Documentation/devicetree/bindings/clock/clock-bindings.txt
46−[2] Documentation/devicetree/bindings/clock/st,clkgen-divmux.txt
4734 [3] Documentation/devicetree/bindings/clock/st,clkgen-mux.txt
4835 [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
5136 [7] Documentation/devicetree/bindings/clock/st,quadfs.txt
5237 [8] Documentation/devicetree/bindings/clock/st,flexgen.txt
5338
@@ -57,44 +42,27 @@ Required properties: · 3 unmodified lines
5742
5843 Example:
5944
60− clockgen-a@fee62000 {
61−
62− reg = <0xfee62000 0xb48>;
45+ clockgen-a@090ff000 {
46+ compatible = "st,clkgen-c32";
47+ reg = <0x90ff000 0x1000>;
6348
6449 clk_s_a0_pll: clk-s-a0-pll {
6550 #clock-cells = <1>;
66− compatible = "st,clkgena-plls-c65";
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";
51+ compatible = "st,clkgen-pll0";
7952
8053 clocks = <&clk_sysin>;
8154
82− clock-output-names = "clk-s-a0-osc-prediv";
55+ clock-output-names = "clk-s-a0-pll-ofd-0";
8356 };
8457
85− clk_s_a0_hs: clk-s-a0-hs {
58+ clk_s_a0_flexgen: clk-s-a0-flexgen {
59+ compatible = "st,flexgen";
60+
8661 #clock-cells = <1>;
87− compatible = "st,clkgena-divmux-c65-hs",
88− "st,clkgena-divmux";
8962
90− clocks = <&clk-s_a0_osc_prediv>,
91− <&clk-s_a0_pll 0>, /* pll0 hs */
92− <&clk-s_a0_pll 2>; /* pll1 */
63+ clocks = <&clk_s_a0_pll 0>,
64+ <&clk_sysin>;
9365
94− clock-output-names = "clk-s-fdma-0",
95− "clk-s-fdma-1",
96− ""; /* clk-s-jit-sense */
97− /* fourth output unused */
66+ clock-output-names = "clk-ic-lmi0";
9867 };
9968 };
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
6060 Required properties:
6161 - compatible : shall be:
6262 "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)
6367
6468 - #clock-cells : from common clock binding; shall be set to 1 (multiple clock
6569 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
1111
1212 Required properties:
1313 - compatible : shall be:
14− "st,stih416-quadfs216", "st,quadfs"
15− "st,stih416-quadfs432", "st,quadfs"
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"
14+ "st,quadfs"
15+ "st,quadfs-pll"
2016
2117
2218 - #clock-cells : from common clock binding; shall be set to 1.
@@ -35,14 +31,15 @@ Required properties: · 12 unmodified lines
3531
3632 Example:
3733
38− clockgen_e: clockgen-e@fd3208bc {
39− #clock-cells = <1>;
40− compatible = "st,stih416-quadfs660-E", "st,quadfs";
41− reg = <0xfd3208bc 0xB0>;
42−
43− clocks = <&clk_sysin>;
44− clock-output-names = "clk-m-pix-mdtp-0",
45− "clk-m-pix-mdtp-1",
46− "clk-m-pix-mdtp-2",
47− "clk-m-mpelpc";
48− };
34+ clk_s_c0_quadfs: clk-s-c0-quadfs@9103000 {
35+ #clock-cells = <1>;
36+ compatible = "st,quadfs-pll";
37+ reg = <0x9103000 0x1000>;
38+
39+ clocks = <&clk_sysin>;
40+
41+ clock-output-names = "clk-s-c0-fs0-ch0",
42+ "clk-s-c0-fs0-ch1",
43+ "clk-s-c0-fs0-ch2",
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
22 ------------------------------------
33
44 Required 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"
69 - "allwinner,sun8i-h3-ccu"
710
811 - reg: Must contain the registers base address and length
Documentation/devicetree/bindings/clock/uniphier-clock.txt+134−0
@@ -0,0 +1,134 @@
1+UniPhier clock controller
2+
3+
4+System clock
5+------------
6+
7+Required 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+
19+Example:
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+
34+Provided clocks:
35+
36+ 8: ST DMAC
37+12: GIO (Giga bit stream I/O)
38+14: USB3 ch0 host
39+15: USB3 ch1 host
40+16: USB3 ch0 PHY0
41+17: USB3 ch0 PHY1
42+20: USB3 ch1 PHY0
43+21: USB3 ch1 PHY1
44+
45+
46+Media I/O (MIO) clock
47+---------------------
48+
49+Required 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+
61+Example:
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+
76+Provided 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
84+10: USB2 ch2 host
85+11: USB2 ch3 host
86+12: USB2 ch0 PHY
87+13: USB2 ch1 PHY
88+14: USB2 ch2 PHY
89+15: USB2 ch3 PHY
90+
91+
92+Peripheral clock
93+----------------
94+
95+Required 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+
107+Example:
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+
122+Provided 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
134+10: I2C ch6
Documentation/devicetree/bindings/clock/xgene.txt+18−0
@@ -8,6 +8,7 @@ Required properties: · 7 unmodified lines
88 - compatible : shall be one of the following:
99 "apm,xgene-socpll-clock" - for a X-Gene SoC PLL clock
1010 "apm,xgene-pcppll-clock" - for a X-Gene PCP PLL clock
11+ "apm,xgene-pmd-clock" - for a X-Gene PMD clock
1112 "apm,xgene-device-clock" - for a X-Gene device clock
1213 "apm,xgene-socpll-v2-clock" - for a X-Gene SoC PLL v2 clock
1314 "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
2223 Optional properties for PLL clocks:
2324 - clock-names : shall be the name of the PLL. If missing, use the device name.
2425
26+Required 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.
32+Optional properties for PLL clocks:
33+- clock-names : shall be the name of the clock. If missing, use the device name.
34+
2535 Required properties for device clocks:
2636 - reg : shall be a list of address and length pairs describing the CSR
2737 reset and/or the divider. Either may be omitted, but at least
@@ -59,6 +69,14 @@ For example: · 31 unmodified lines
5969 type = <0>;
6070 };
6171
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+
6280 socpll: socpll@17000120 {
6381 compatible = "apm,xgene-socpll-clock";
6482 #clock-cells = <1>;
Documentation/devicetree/bindings/clock/zx296718-clk.txt+35−0
@@ -0,0 +1,35 @@
1+Device Tree Clock bindings for ZTE zx296718
2+
3+This binding uses the common clock binding[1].
4+
5+[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
6+
7+Required 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+
18+The clock consumer should specify the desired clock by having the clock
19+ID in its "clocks" phandle cell. See include/dt-bindings/clock/zx296718-clock.h
20+for the full list of zx296718 clock IDs.
21+
22+
23+topclk: topcrm@1461000 {
24+ compatible = "zte,zx296718-topcrm-clk";
25+ reg = <0x01461000 0x1000>;
26+ #clock-cells = <1>;
27+};
28+
29+usbphy0: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+
4+Required 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+
11+Example:
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+
3+Required 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+
20+Following 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+
155+Example:
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 @@
1+Dumb RGB to VGA DAC bridge
2+---------------------------
3+
4+This binding is aimed for dumb RGB to VGA DAC based bridges that do not require
5+any configuration.
6+
7+Required properties:
8+
9+- compatible: Must be "dumb-vga-dac"
10+
11+Required nodes:
12+
13+This device has two video ports. Their connections are modelled using the OF
14+graph 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+
20+Example
21+-------
22+
23+bridge {
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
2121 - video-ports: 24 bits value which defines how the video controller
2222 output is wired to the TDA998x input - default: <0x230145>
2323
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+
2433 Example:
2534
35+#include <dt-bindings/display/tda998x.h>
36+
2637 tda998x: hdmi-encoder {
2738 compatible = "nxp,tda998x";
2839 reg = <0x70>;
@@ -30,4 +41,11 @@ Example: · 1 unmodified line
3041 interrupts = <27 2>; /* falling edge */
3142 pinctrl-0 = <&pmx_camera>;
3243 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+
3351 };
Documentation/devicetree/bindings/display/exynos/exynos_hdmi.txt+2−2
@@ -9,7 +9,7 @@ Required properties: · 8 unmodified lines
99 - reg: physical base address of the hdmi and length of memory mapped
1010 region.
1111 - 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.
1313 a) phandle of the gpio controller node.
1414 b) pin number within the gpio controller.
1515 c) optional flags and pull up/down.
@@ -56,7 +56,7 @@ Example: · 40 unmodified lines
5656 compatible = "samsung,exynos4212-hdmi";
5757 reg = <0x14530000 0x100000>;
5858 interrupts = <0 95 0>;
59− hpd-gpio = <&gpx3 7 1>;
59+ hpd-gpios = <&gpx3 7 1>;
6060 ddc = <&hdmi_ddc_node>;
6161 phy = <&hdmi_phy_node>;
6262 samsung,syscon-phandle = <&pmu_system_controller>;
Documentation/devicetree/bindings/display/msm/hdmi.txt+4−5
@@ -14,17 +14,16 @@ Required properties: · 13 unmodified lines
1414 - power-domains: Should be <&mmcc MDSS_GDSC>.
1515 - clocks: device clocks
1616 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
2017 - core-vdda-supply: phandle to supply regulator
2118 - hdmi-mux-supply: phandle to mux regulator
2219 - phys: the phandle for the HDMI PHY device
2320 - phy-names: the name of the corresponding PHY device
2421
2522 Optional properties:
26−- qcom,hdmi-tx-mux-en-gpio: hdmi mux enable pin
27−- qcom,hdmi-tx-mux-sel-gpio: hdmi mux select pin
23+- hpd-gpios: hpd pin
24+- 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
2827 - power-domains: reference to the power domain(s), if available.
2928 - pinctrl-names: the pin control state names; should contain "default"
3029 - pinctrl-0: the default pinctrl state (active)
Documentation/devicetree/bindings/display/panel/innolux,g101ice-l01.txt+7−0
@@ -0,0 +1,7 @@
1+Innolux Corporation 10.1" G101ICE-L01 WXGA (1280x800) LVDS panel
2+
3+Required properties:
4+- compatible: should be "innolux,g101ice-l01"
5+
6+This binding is compatible with the simple-panel binding, which is specified
7+in simple-panel.txt in this directory.
Documentation/devicetree/bindings/display/panel/jdi,lt070me05000.txt+31−0
@@ -0,0 +1,31 @@
1+JDI model LT070ME05000 1200x1920 7" DSI Panel
2+
3+Required 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+
17+Example:
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 @@
1+TPO TPG110 Panel
2+================
3+
4+This binding builds on the DPI bindings, adding a few properties
5+as a superset of a DPI. See panel-dpi.txt for the required DPI
6+bindings.
7+
8+Required 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+
15+Required nodes:
16+- Video port for DPI input, see panel-dpi.txt
17+- Panel timing for DPI setup, see panel-dpi.txt
18+
19+Example
20+-------
21+
22+panel {
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
66
77 Required properties:
88 - compatible: value should be one of the following
9− "rockchip,rk3288-vop";
109 "rockchip,rk3036-vop";
10+ "rockchip,rk3288-vop";
11+ "rockchip,rk3399-vop-big";
12+ "rockchip,rk3399-vop-lit";
1113
1214 - interrupts: should contain a list of all VOP IP block interrupts in the
1315 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
2626 The TCON acts as a timing controller for RGB, LVDS and TV interfaces.
2727
2828 Required 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
3032 - reg: base address and size of memory-mapped region
3133 - interrupts: interrupt associated to this IP
3234 - clocks: phandles to the clocks feeding the TCON. Three are needed:
3335 - 'ahb': the interface clocks
3436 - 'tcon-ch0': The clock driving the TCON channel 0
35− - 'tcon-ch1': The clock driving the TCON channel 1
3637 - resets: phandles to the reset controllers driving the encoder
3738 - "lcd": the reset line for the TCON channel 0
3839
@@ -49,6 +50,33 @@ Required properties: · 10 unmodified lines
4950 second the block connected to the TCON channel 1 (usually the TV
5051 encoder)
5152
53+On the A13, there is one more clock required:
54+ - 'tcon-ch1': The clock driving the TCON channel 1
55+
56+DRC
57+---
58+
59+The DRC (Dynamic Range Controller), found in the latest Allwinner SoCs
60+(A31, A23, A33), allows to dynamically adjust pixel
61+brightness/contrast based on histogram measurements for LCD content
62+adaptive backlight control.
63+
64+
65+Required 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
5280
5381 Display Engine Backend
5482 ----------------------
@@ -59,6 +87,7 @@ system. · 4 unmodified lines
5987 Required properties:
6088 - compatible: value must be one of:
6189 * allwinner,sun5i-a13-display-backend
90+ * allwinner,sun8i-a33-display-backend
6291 - reg: base address and size of the memory-mapped region.
6392 - clocks: phandles to the clocks feeding the frontend and backend
6493 * ahb: the backend interface clock
@@ -71,6 +100,14 @@ Required properties: · 6 unmodified lines
71100 Documentation/devicetree/bindings/media/video-interfaces.txt. The
72101 first port should be the input endpoints, the second one the output
73102
103+On 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+
74111 Display Engine Frontend
75112 -----------------------
76113
@@ -80,6 +117,7 @@ deinterlacing and color space conversion. · 3 unmodified lines
80117 Required properties:
81118 - compatible: value must be one of:
82119 * allwinner,sun5i-a13-display-frontend
120+ * allwinner,sun8i-a33-display-frontend
83121 - reg: base address and size of the memory-mapped region.
84122 - interrupts: interrupt associated to this IP
85123 - clocks: phandles to the clocks feeding the frontend and backend
@@ -104,6 +142,7 @@ extra node. · 18 unmodified lines
104142 Required properties:
105143 - compatible: value must be one of:
106144 * allwinner,sun5i-a13-display-engine
145+ * allwinner,sun8i-a33-display-engine
107146
108147 - allwinner,pipelines: list of phandle to the display engine
109148 frontends available.
Documentation/devicetree/bindings/display/tilcdc/tilcdc.txt+26−0
@@ -17,6 +17,18 @@ Optional properties: · 16 unmodified lines
1717 the lcd controller.
1818 - max-pixelclock: The maximum pixel clock that can be supported
1919 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.
2032
2133 Optional nodes:
2234
@@ -24,6 +36,18 @@ Optional nodes: · 1 unmodified line
2436 binding follows Documentation/devicetree/bindings/graph.txt and
2537 suppors a single port with a single endpoint.
2638
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+
2751 Example:
2852
2953 fb: fb@4830e000 {
@@ -33,6 +57,8 @@ Example: · 3 unmodified lines
3357 interrupts = <36>;
3458 ti,hwmods = "lcdc";
3559
60+ blue-and-red-wiring = "crossed";
61+
3662 port {
3763 lcdc_0: endpoint@0 {
3864 remote-endpoint = <&hdmi_0>;
Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt+1−0
@@ -8,6 +8,7 @@ Required properties: · 7 unmodified lines
88 "fsl,imx51-sdma"
99 "fsl,imx53-sdma"
1010 "fsl,imx6q-sdma"
11+ "fsl,imx7d-sdma"
1112 The -to variants should be preferred since they allow to determine the
1213 correct ROM script addresses needed for the driver to work without additional
1314 firmware.
Documentation/devicetree/bindings/dma/renesas,rcar-dmac.txt+3−1
@@ -1,4 +1,4 @@
1−* Renesas R-Car DMA Controller Device Tree bindings
1+* Renesas R-Car (RZ/G) DMA Controller Device Tree bindings
22
33 Renesas R-Car Generation 2 SoCs have multiple multi-channel DMA
44 controller instances named DMAC capable of serving multiple clients. Channels
@@ -16,6 +16,8 @@ Required Properties: · 11 unmodified lines
1616
1717 - compatible: "renesas,dmac-<soctype>", "renesas,rcar-dmac" as fallback.
1818 Examples with soctypes are:
19+ - "renesas,dmac-r8a7743" (RZ/G1M)
20+ - "renesas,dmac-r8a7745" (RZ/G1E)
1921 - "renesas,dmac-r8a7790" (R-Car H2)
2022 - "renesas,dmac-r8a7791" (R-Car M2-W)
2123 - "renesas,dmac-r8a7792" (R-Car V2H)
Documentation/devicetree/bindings/dma/sun6i-dma.txt+1−0
@@ -7,6 +7,7 @@ Required properties: · 6 unmodified lines
77 - compatible: Must be one of
88 "allwinner,sun6i-a31-dma"
99 "allwinner,sun8i-a23-dma"
10+ "allwinner,sun8i-a83t-dma"
1011 "allwinner,sun8i-h3-dma"
1112 - reg: Should contain the registers base address and length
1213 - 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 @@
1+Qualcomm's PM8941 USB ID Extcon device
2+
3+Some Qualcomm PMICs have a "misc" module that can be used to detect when
4+the USB ID pin has been pulled low or high.
5+
6+PROPERTIES
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+
28+Example:
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+
3+In the Amlogic SoCs the Secure Monitor code is used to provide access to the
4+NVMEM, enable JTAG, set USB boot, etc...
5+
6+Required properties for the secure monitor node:
7+- compatible: Should be "amlogic,meson-gxbb-sm"
8+
9+Example:
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 @@
1+Bindings for the Broadcom's brcm,bcm6345-gpio memory-mapped GPIO controllers.
2+
3+These bindings can be used on any BCM63xx SoC. However, BCM6338 and BCM6345
4+are the only ones which don't need a pinctrl driver.
5+BCM6338 have 8-bit data and dirout registers, where GPIO state can be read
6+and/or written, and the direction changed from input to output.
7+BCM6345 have 16-bit data and dirout registers, where GPIO state can be read
8+and/or written, and the direction changed from input to output.
9+
10+Required 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+
23+Optional properties:
24+ - native-endian: use native endian memory.
25+
26+Examples:
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 @@
1+Aspeed GPIO controller Device Tree Bindings
2+-------------------------------------------
3+
4+Required 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+
18+Optional properties:
19+
20+- interrupt-parent : The parent interrupt controller, optional if inherited
21+
22+The gpio and interrupt properties are further described in their respective
23+bindings 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 @@
1+AXP209 GPIO controller
2+
3+This driver follows the usual GPIO bindings found in
4+Documentation/devicetree/bindings/gpio/gpio.txt
5+
6+Required 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+
12+This node must be a subnode of the axp20x PMIC, documented in
13+Documentation/devicetree/bindings/mfd/axp20x.txt
14+
15+Example:
16+
17+axp209: 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 @@
1+TPIC2810 GPIO controller bindings
2+
3+Required 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+
9+Example:
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−
3−Required 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−
10−Example:
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+
3+This bindings describes the GPIO controller for Technologic's FPGA core.
4+TS-4900's FPGA encodes the GPIO state on 3 bits, whereas the TS-7970's FPGA
5+uses 2 bits: it doesn't use a dedicated input bit.
6+
7+Required 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+
16+Optional property:
17+- ngpios: Number of GPIOs this controller is instantiated with,
18+ the default is 32. See gpio.txt for more details.
19+
20+Example:
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
4444 interrupt-controller;
4545 #interrupt-cells = <0x2>;
4646 };
47−
48−* Marvell Orion GPIO Controller
49−
50−Required 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−
57−Optional properties:
58−- mask-offset : For SMP Orions, offset for Nth CPU
59−
60−Example:
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
1111 - "renesas,gpio-r8a7793": for R8A7793 (R-Car M2-N) compatible GPIO controller.
1212 - "renesas,gpio-r8a7794": for R8A7794 (R-Car E2) compatible GPIO controller.
1313 - "renesas,gpio-r8a7795": for R8A7795 (R-Car H3) compatible GPIO controller.
14+ - "renesas,gpio-r8a7796": for R8A7796 (R-Car M3-W) compatible GPIO controller.
1415 - "renesas,gpio-rcar": for generic R-Car GPIO controller.
1516
1617 - 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 @@
1+LTC4151 High Voltage I2C Current and Voltage Monitor
2+
3+Required properties:
4+- compatible: Must be "lltc,ltc4151"
5+- reg: I2C address
6+
7+Optional properties:
8+- shunt-resistor-micro-ohms
9+ Shunt resistor value in micro-Ohms
10+ Defaults to <1000> if unset.
11+
12+Example:
13+
14+ltc4151@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 @@
1+Bindings for MAX6651 and MAX6650 I2C fan controllers
2+
3+Reference:
4+[1] https://datasheets.maximintegrated.com/en/ds/MAX6650-MAX6651.pdf
5+
6+Required properties:
7+- compatible : One of "maxim,max6650" or "maxim,max6651"
8+- reg : I2C address, one of 0x1b, 0x1f, 0x4b, 0x48.
9+
10+Optional 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+
21+Example:
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
4444 - our-claim-gpio: The GPIO that we use to claim the bus.
4545 - their-claim-gpios: The GPIOs that the other sides use to claim the bus.
4646 Note that some implementations may only support a single other master.
47−- Standard I2C mux properties. See i2c-mux.txt in this directory.
48−- Single I2C child bus node at reg 0. See i2c-mux.txt in this directory.
47+- I2C arbitration bus node. See i2c-arb.txt in this directory.
4948
5049 Optional properties:
5150 - slew-delay-us: microseconds to wait for a GPIO to go high. Default is 10 us.
@@ -63,8 +62,6 @@ Example: · 11 unmodified lines
6362
6463 i2c-arbitrator {
6564 compatible = "i2c-arb-gpio-challenge";
66− #address-cells = <1>;
67− #size-cells = <0>;
6865
6966 i2c-parent = <&{/i2c@12CA0000}>;
7067
@@ -74,8 +71,7 @@ Example: · 3 unmodified lines
7471 wait-retry-us = <3000>;
7572 wait-free-us = <50000>;
7673
77− i2c@0 {
78− reg = <0>;
74+ i2c-arb {
7975 #address-cells = <1>;
8076 #size-cells = <0>;
8177
Documentation/devicetree/bindings/i2c/i2c-arb.txt+35−0
@@ -0,0 +1,35 @@
1+Common i2c arbitration bus properties.
2+
3+- i2c-arb child node
4+
5+Required properties for the i2c-arb child node:
6+- #address-cells = <1>;
7+- #size-cells = <0>;
8+
9+Optional properties for i2c-arb child node:
10+- Child nodes conforming to i2c bus binding
11+
12+
13+Example :
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 @@
1+An i2c gate is useful to e.g. reduce the digital noise for RF tuners connected
2+to the i2c bus. Gates are similar to arbitrators in that you need to perform
3+some kind of operation to access the i2c bus past the arbitrator/gate, but
4+there are no competing masters to consider for gates and therefore there is
5+no arbitration happening for gates.
6+
7+Common i2c gate properties.
8+
9+- i2c-gate child node
10+
11+Required properties for the i2c-gate child node:
12+- #address-cells = <1>;
13+- #size-cells = <0>;
14+
15+Optional properties for i2c-gate child node:
16+- Child nodes conforming to i2c bus binding
17+
18+
19+Example :
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 @@
11 Amlogic Meson I2C controller
22
33 Required properties:
4− - compatible: must be "amlogic,meson6-i2c"
4+ - compatible: must be "amlogic,meson6-i2c" or "amlogic,meson-gxbb-i2c"
55 - reg: physical address and length of the device registers
66 - interrupts: a single interrupt specifier
77 - 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
22
33 An i2c bus multiplexer/switch will have several child busses that are
44 numbered uniquely in a device dependent manner. The nodes for an i2c bus
5−multiplexer/switch will have one child node for each child
6−bus.
5+multiplexer/switch will have one child node for each child bus.
76
8−Required properties:
7+Optional 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+
21+Required properties for the i2c-mux child node:
922 - #address-cells = <1>;
1023 - #size-cells = <0>;
1124
12−Required properties for child nodes:
25+Required properties for i2c child bus nodes:
1326 - #address-cells = <1>;
1427 - #size-cells = <0>;
1528 - reg : The sub-bus number.
1629
17−Optional properties for child nodes:
30+Optional properties for i2c child bus nodes:
1831 - Other properties specific to the multiplexer/switch hardware.
1932 - Child nodes conforming to i2c bus binding
2033
Documentation/devicetree/bindings/i2c/i2c-rcar.txt+1−0
@@ -11,6 +11,7 @@ Required properties: · 10 unmodified lines
1111 "renesas,i2c-r8a7793"
1212 "renesas,i2c-r8a7794"
1313 "renesas,i2c-r8a7795"
14+ "renesas,i2c-r8a7796"
1415 - reg: physical base address of the controller and length of memory mapped
1516 region.
1617 - 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
3232 - clock-frequency
3333 frequency of bus clock in Hz.
3434
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+
3543 - i2c-scl-falling-time-ns
3644 Number of nanoseconds the SCL signal takes to fall; t(f) in the I2C
3745 specification.
Documentation/devicetree/bindings/i2c/nxp,pca9541.txt+29−0
@@ -0,0 +1,29 @@
1+* NXP PCA9541 I2C bus master selector
2+
3+Required 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+
14+Example:
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
3838 dallas,ds75 Digital Thermometer and Thermostat
3939 dlg,da9053 DA9053: flexible system level PMIC with multicore support
4040 dlg,da9063 DA9063: system PMIC for quad-core application processors
41+domintech,dmard09 DMARD09: 3-axis Accelerometer
4142 epson,rx8010 I2C-BUS INTERFACE REAL TIME CLOCK MODULE
4243 epson,rx8025 High-Stability. I2C-Bus INTERFACE REAL TIME CLOCK MODULE
4344 epson,rx8581 I2C-BUS INTERFACE REAL TIME CLOCK MODULE
@@ -50,12 +51,12 @@ fsl,sgtl5000 SGTL5000: Ultra Low-Power Audio Codec · 6 unmodified lines
5051 gmt,g751 G751: Digital Temperature Sensor and Thermal Watchdog with Two-Wire Interface
5152 infineon,slb9635tt Infineon SLB9635 (Soft-) I2C TPM (old protocol, max 100khz)
5253 infineon,slb9645tt Infineon SLB9645 I2C TPM (new protocol, max 400khz)
53−isil,isl12057 Intersil ISL12057 I2C RTC Chip
5454 isil,isl29028 Intersil ISL29028 Ambient Light and Proximity Sensor
5555 maxim,ds1050 5 Bit Programmable, Pulse-Width Modulator
5656 maxim,max1237 Low-Power, 4-/12-Channel, 2-Wire Serial, 12-Bit ADCs
5757 maxim,max6625 9-Bit/12-Bit Temperature Sensors with I²C-Compatible Serial Interface
5858 mc,rv3029c2 Real Time Clock Module with I2C-Bus
59+mcube,mc3230 mCube 3-axis 8-bit digital accelerometer
5960 microchip,mcp4531-502 Microchip 7-bit Single I2C Digital Potentiometer (5k)
6061 microchip,mcp4531-103 Microchip 7-bit Single I2C Digital Potentiometer (10k)
6162 microchip,mcp4531-503 Microchip 7-bit Single I2C Digital Potentiometer (50k)
Documentation/devicetree/bindings/iio/accel/dmard06.txt+19−0
@@ -0,0 +1,19 @@
1+Device tree bindings for Domintech DMARD05, DMARD06, DMARD07 accelerometers
2+
3+Required 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+
9+Example:
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 @@
1+Kionix KXSD9 Accelerometer device tree bindings
2+
3+Required properties:
4+ - compatible: should be set to "kionix,kxsd9"
5+ - reg: i2c slave address
6+
7+Optional 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+
13+Example:
14+
15+kxsd9@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+
4+The Auxiliary Analog/Digital Converter (AUXADC) is an ADC found
5+in some Mediatek SoCs which among other things measures the temperatures
6+in the SoC. It can be used directly with register accesses, but it is also
7+used by thermal controller which reads the temperatures from the AUXADC
8+directly via its own bus interface. See
9+Documentation/devicetree/bindings/thermal/mediatek-thermal.txt
10+for the Thermal Controller which holds a phandle to the AUXADC.
11+
12+Required 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+
21+Example:
22+
23+auxadc: 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+
3+Required 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+
15+Optional 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+
27+Example:
28+adc@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+
3+Required properties:
4+ - compatible: Should be "ti,adc141s626" or "ti,adc161s626"
5+ - reg: spi chip select number for the device
6+
7+Recommended properties:
8+ - spi-max-frequency: Definition as per
9+ Documentation/devicetree/bindings/spi/spi-bus.txt
10+
11+Example:
12+adc@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+
3+https://www.atlas-scientific.com/_files/_datasheets/_oem/ORP_oem_datasheet.pdf
4+
5+Required 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+
15+Example:
16+
17+atlas@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+
3+Required properties:
4+
5+- compatible : should be "asahi-kasei,ak8974"
6+- reg : the I2C address of the magnetometer
7+
8+Optional 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+
20+Example:
21+
22+ak8974@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 @@
1+Murata ZPA2326 pressure sensor
2+
3+Pressure sensor from Murata with SPI and I2C bus interfaces.
4+
5+Required properties:
6+- compatible: "murata,zpa2326"
7+- reg: the I2C address or SPI chip select the device will respond to
8+
9+Recommended 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+
13+Optional 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+
23+Example:
24+
25+zpa2326@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 @@
1+Semtech's SX9500 capacitive proximity button device driver
2+
3+Required 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+
12+Optional properties:
13+ - reset-gpios: Reference to the GPIO connected to the device's active
14+ low reset pin.
15+
16+Example:
17+
18+sx9500@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 @@
1+Maxim thermocouple support
2+
3+* https://datasheets.maximintegrated.com/en/ds/MAX6675.pdf
4+* https://datasheets.maximintegrated.com/en/ds/MAX31855.pdf
5+
6+Required 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+
15+Example:
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 @@
1+Hisilicon RoCE DT description
2+
3+Hisilicon RoCE engine is a part of network subsystem.
4+It works depending on other part of network wubsytem, such as, gmac and
5+dsa fabric.
6+
7+Additional properties are described here:
8+
9+Required properties:
10+- compatible: Should contain "hisilicon,hns-roce-v1".
11+- reg: Physical base address of the RoCE driver and
12+length of memory mapped region.
13+- eth-handle: phandle, specifies a reference to a node
14+representing a ethernet device.
15+- dsaf-handle: phandle, specifies a reference to a node
16+representing 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
20+Optional 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
24+and 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
29+Example:
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 @@
1+ADC attached resistor ladder buttons
2+------------------------------------
3+
4+Required 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+
10+Optional properties:
11+ - poll-interval: Poll interval time in milliseconds
12+ - autorepeat: Boolean, Enable auto repeat feature of Linux input
13+ subsystem.
14+
15+Each button (key) is represented as a sub-node of "adc-keys":
16+
17+Required 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+
22+Example:
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+
3+Required 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+
8+Optional 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+
14+Example:
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
3434
3535 gpio_keys_polled {
3636 compatible = "gpio-keys-polled";
37− #address-cells = <1>;
38− #size-cells = <0>;
3937 poll-interval = <100>;
4038 autorepeat;
41− button@21 {
39+
40+ button21 {
4241 label = "GPIO Key UP";
4342 linux,code = <103>;
4443 gpios = <&gpio1 0 1>;
Documentation/devicetree/bindings/input/touchscreen/edt-ft5x06.txt+8−0
@@ -19,6 +19,7 @@ Required properties: · 18 unmodified lines
1919 or: "edt,edt-ft5306"
2020 or: "edt,edt-ft5406"
2121 or: "edt,edt-ft5506"
22+ or: "focaltech,ft6236"
2223
2324 - reg: I2C slave address of the chip (0x38)
2425 - interrupt-parent: a phandle pointing to the interrupt controller
@@ -43,6 +44,13 @@ Optional properties: · 18 unmodified lines
4344
4445 - offset: allows setting the edge compensation in the range from
4546 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
4654
4755 Example:
4856 polytouch: edt-ft5x06@38 {
Documentation/devicetree/bindings/input/touchscreen/ektf2127.txt+27−0
@@ -0,0 +1,27 @@
1+* Elan eKTF2127 I2C touchscreen controller
2+
3+Required 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+
13+For additional optional properties see: touchscreen.txt
14+
15+Example:
16+
17+i2c@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−
3−Required 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−
14−Optional 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−
24−Example:
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+
3+Required 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+
9+Optional properties:
10+- ce-gpios: GPIO connected to the CE (chip enable) pin of the chip
11+
12+Example:
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
1313 - touchscreen-size-y : See touchscreen.txt
1414
1515 Optional properties:
16+- firmware-name : File basename (string) for board specific firmware
1617 - touchscreen-inverted-x : See touchscreen.txt
1718 - touchscreen-inverted-y : See touchscreen.txt
1819 - touchscreen-swapped-x-y : See touchscreen.txt
Documentation/devicetree/bindings/input/tps65218-pwrbutton.txt+14−3
@@ -1,13 +1,24 @@
1−Texas Instruments TPS65218 power button
1+Texas Instruments TPS65217 and TPS65218 power button
2+
3+This module is part of the TPS65217/TPS65218. For more details about the whole
4+TPS65217 chip see Documentation/devicetree/bindings/regulator/tps65217.txt.
25
36 This driver provides a simple power button event via an Interrupt.
47
58 Required properties:
6−- compatible: should be "ti,tps65218-pwrbutton"
9+- compatible: should be "ti,tps65217-pwrbutton" or "ti,tps65218-pwrbutton"
10+
11+Required properties for TPS65218:
712 - interrupts: should be one of the following
813 - <3 IRQ_TYPE_EDGE_BOTH>: For controllers compatible with tps65218
914
10−Example:
15+Examples:
16+
17+&tps {
18+ tps65217-pwrbutton {
19+ compatible = "ti,tps65217-pwrbutton";
20+ };
21+};
1122
1223 &tps {
1324 power-button {
Documentation/devicetree/bindings/interrupt-controller/jcore,aic.txt+26−0
@@ -0,0 +1,26 @@
1+J-Core Advanced Interrupt Controller
2+
3+Required 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+
19+Example:
20+
21+aic: 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 @@
1+Marvell Armada 7K/8K PIC Interrupt controller
2+---------------------------------------------
3+
4+This is the Device Tree binding for the PIC, a secondary interrupt
5+controller available on the Marvell Armada 7K/8K ARM64 SoCs, and
6+typically connected to the GIC as the primary interrupt controller.
7+
8+Required 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+
17+Example:
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
3131 Example:
3232
3333 odmi: odmi@300000 {
34− compatible = "marvell,ap806-odm-controller",
34+ compatible = "marvell,ap806-odmi-controller",
3535 "marvell,odmi-controller";
3636 interrupt-controller;
3737 msi-controller;
Documentation/devicetree/bindings/interrupt-controller/renesas,irqc.txt+3−1
@@ -1,10 +1,12 @@
1−DT bindings for the R-Mobile/R-Car interrupt controller
1+DT bindings for the R-Mobile/R-Car/RZ/G interrupt controller
22
33 Required properties:
44
55 - compatible: has to be "renesas,irqc-<soctype>", "renesas,irqc" as fallback.
66 Examples with soctypes are:
77 - "renesas,irqc-r8a73a4" (R-Mobile APE6)
8+ - "renesas,irqc-r8a7743" (RZ/G1M)
9+ - "renesas,irqc-r8a7745" (RZ/G1E)
810 - "renesas,irqc-r8a7790" (R-Car H2)
911 - "renesas,irqc-r8a7791" (R-Car M2-W)
1012 - "renesas,irqc-r8a7792" (R-Car V2H)
Documentation/devicetree/bindings/interrupt-controller/st,stm32-exti.txt+20−0
@@ -0,0 +1,20 @@
1+STM32 External Interrupt Controller
2+
3+Required 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+
12+Example:
13+
14+exti: 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
2727 * "cmdq-sync" - CMD_SYNC complete
2828 * "gerror" - Global Error activated
2929
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+
3036 ** SMMUv3 optional properties:
3137
3238 - dma-coherent : Present if DMA operations made by the SMMU (page
@@ -54,6 +60,6 @@ the PCIe specification. · 21 unmodified lines
5460 <GIC_SPI 79 IRQ_TYPE_EDGE_RISING>;
5561 interrupt-names = "eventq", "priq", "cmdq-sync", "gerror";
5662 dma-coherent;
57− #iommu-cells = <0>;
63+ #iommu-cells = <1>;
5864 msi-parent = <&its 0xff0000>;
5965 };
Documentation/devicetree/bindings/iommu/arm,smmu.txt+47−14
@@ -35,12 +35,16 @@ conditions. · 34 unmodified lines
3535 interrupt per context bank. In the case of a single,
3636 combined interrupt, it must be listed multiple times.
3737
38−- mmu-masters : A list of phandles to device nodes representing bus
39− masters for which the SMMU can provide a translation
40− and their corresponding StreamIDs (see example below).
41− Each device node linked from this list must have a
42− "#stream-id-cells" property, indicating the number of
43− StreamIDs associated with it.
38+- #iommu-cells : See Documentation/devicetree/bindings/iommu/iommu.txt
39+ for details. With a value of 1, each "iommus" entry
40+ represents a distinct stream ID emitted by that device
41+ into the relevant SMMU.
42+
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.
4448
4549 ** System MMU optional properties:
4650
@@ -56,9 +60,20 @@ conditions. · 9 unmodified lines
5660 aliases of secure registers have to be used during
5761 SMMU configuration.
5862
59−Example:
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.
6072
61− smmu {
73+** Examples:
74+
75+ /* SMMU with stream matching or stream indexing */
76+ smmu1: iommu {
6277 compatible = "arm,smmu-v1";
6378 reg = <0xba5e0000 0x10000>;
6479 #global-interrupts = <2>;
@@ -68,11 +83,29 @@ Example: · 3 unmodified lines
6883 <0 35 4>,
6984 <0 36 4>,
7085 <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+ };
71107
72− /*
73− * Two DMA controllers, the first with two StreamIDs (0xd01d
74− * and 0xd01e) and the second with only one (0xd11c).
75− */
76− mmu-masters = <&dma0 0xd01d 0xd01e>,
77− <&dma1 0xd11c>;
108+ /* device with stream IDs 1, 17, 33 and 49 */
109+ master3 {
110+ iommus = <&smmu2 1 0x30>;
78111 };
Documentation/devicetree/bindings/ipmi/aspeed,ast2400-bt-bmc.txt+23−0
@@ -0,0 +1,23 @@
1+* Aspeed BT (Block Transfer) IPMI interface
2+
3+The Aspeed SOCs (AST2400 and AST2500) are commonly used as BMCs
4+(BaseBoard Management Controllers) and the BT interface can be used to
5+perform in-band IPMI communication with their host.
6+
7+Required properties:
8+
9+- compatible : should be "aspeed,ast2400-bt-bmc"
10+- reg: physical address and size of the registers
11+
12+Optional properties:
13+
14+- interrupts: interrupt generated by the BT interface. without an
15+ interrupt, the driver will operate in poll mode.
16+
17+Example:
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
1919 a device, i.e. no other LED class device can be assigned the same
2020 label.
2121
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+
2229 - linux,default-trigger : This parameter, if present, is a
2330 string defining the trigger assigned to the LED. Current triggers are:
2431 "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
4949 - active-low : Boolean, makes LED active low.
5050 Default : false
5151 - default-state : see
52− Documentation/devicetree/bindings/leds/leds-gpio.txt
52+ Documentation/devicetree/bindings/leds/common.txt
5353 - linux,default-trigger : see
5454 Documentation/devicetree/bindings/leds/common.txt
5555
Documentation/devicetree/bindings/leds/leds-bcm6358.txt+1−1
@@ -28,7 +28,7 @@ LED sub-node optional properties: · 27 unmodified lines
2828 - active-low : Boolean, makes LED active low.
2929 Default : false
3030 - default-state : see
31− Documentation/devicetree/bindings/leds/leds-gpio.txt
31+ Documentation/devicetree/bindings/leds/common.txt
3232 - linux,default-trigger : see
3333 Documentation/devicetree/bindings/leds/common.txt
3434
Documentation/devicetree/bindings/leds/leds-gpio.txt+2−7
@@ -14,13 +14,8 @@ LED sub-node properties: · 13 unmodified lines
1414 see Documentation/devicetree/bindings/leds/common.txt
1515 - linux,default-trigger : (optional)
1616 see Documentation/devicetree/bindings/leds/common.txt
17−- default-state: (optional) The initial state of the LED. Valid
18− values are "on", "off", and "keep". If the LED is already on or off
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.
17+- default-state: (optional) The initial state of the LED.
18+ see Documentation/devicetree/bindings/leds/common.txt
2419 - retain-state-suspended: (optional) The suspend state can be retained.Such
2520 as charge-led gpio.
2621 - panic-indicator : (optional)
Documentation/devicetree/bindings/leds/leds-is31fl319x.txt+59−0
@@ -0,0 +1,59 @@
1+LEDs connected to is31fl319x LED controller chip
2+
3+Required 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+
15+Optional 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+
20+Each led is represented as a sub-node of the issi,is31fl319x device.
21+There can be less leds subnodes than the chip can support but not more.
22+
23+Required led sub-node properties:
24+- reg : number of LED line
25+ Valid values: 1 - number of leds supported by the chip variant.
26+
27+Optional 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+
40+Examples:
41+
42+fancy_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 @@
1+Qualcomm PM8058 LED driver
2+
3+The Qualcomm PM8058 is a multi-functional device which contains
4+an LED driver block for up to six LEDs: three normal LEDs, two
5+"flash" LEDs and one "keypad backlight" LED. The names are
6+quoted because sometimes these LED drivers are used for wildly
7+different things than flash or keypad backlight: their names
8+are more of a suggestion than a hard-wired usecase.
9+
10+Hardware-wise the different LEDs support slightly different
11+output currents. The "flash" LEDs do not need to charge nor
12+do they support external triggers. They are just powerful LED
13+drivers.
14+
15+The LEDs appear as children to the PM8058 device, with the
16+proper compatible string. For the PM8058 bindings see:
17+mfd/qcom-pm8xxx.txt.
18+
19+Each LED is represented as a sub-node of the syscon device. Each
20+node's name represents the name of the corresponding LED.
21+
22+LED sub-node properties:
23+
24+Required 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+
30+Optional 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+
35+Example:
36+
37+qcom,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
2323 see Documentation/devicetree/bindings/leds/common.txt
2424 - linux,default-trigger : (optional)
2525 see Documentation/devicetree/bindings/leds/common.txt
26−- default-state: (optional) The initial state of the LED. Valid
27− values are "on", "off", and "keep". If the LED is already on or off
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.
26+- default-state: (optional) The initial state of the LED
27+ see Documentation/devicetree/bindings/leds/common.txt
3328
3429 Example:
3530
Documentation/devicetree/bindings/mailbox/meson-mhu.txt+34−0
@@ -0,0 +1,34 @@
1+Amlogic Meson MHU Mailbox Driver
2+================================
3+
4+The Amlogic's Meson SoCs Message-Handling-Unit (MHU) is a mailbox controller
5+that has 3 independent channels/links to communicate with remote processor(s).
6+MHU links are hardwired on a platform. A link raises interrupt for any
7+received data. However, there is no specified way of knowing if the sent
8+data has been read by the remote. This driver assumes the sender polls
9+STAT register and the remote clears it after having read the data.
10+
11+Mailbox Device Node:
12+====================
13+
14+Required 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+
23+Example:
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 @@
1+Atmel Image Sensor Controller (ISC)
2+----------------------------------------------
3+
4+Required 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+
24+ISC 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
26+defined in Documentation/devicetree/bindings/media/video-interfaces.txt.
27+
28+Example:
29+isc: 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+
50+i2c1: 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
1616 - clocks : list of clock specifiers, corresponding to entries in
1717 clock-names property;
1818 - clock-names : must contain "ppmuispx", "ppmuispx", "lite0", "lite1"
19− "mpll", "sysreg", "isp", "drc", "fd", "mcuisp", "uart",
20− "ispdiv0", "ispdiv1", "mcuispdiv0", "mcuispdiv1", "aclk200",
21− "div_aclk200", "aclk400mcuisp", "div_aclk400mcuisp" entries,
19+ "mpll", "sysreg", "isp", "drc", "fd", "mcuisp", "gicisp",
20+ "pwm_isp", "mcuctl_isp", "uart", "ispdiv0", "ispdiv1",
21+ "mcuispdiv0", "mcuispdiv1", "aclk200", "div_aclk200",
22+ "aclk400mcuisp", "div_aclk400mcuisp" entries,
2223 matching entries in the clocks property.
2324 pmu subnode
2425 -----------
Documentation/devicetree/bindings/media/i2c/ad5820.txt+19−0
@@ -0,0 +1,19 @@
1+* Analog Devices AD5820 autofocus coil
2+
3+Required 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+
11+Example:
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
1515 "adi,adv7282"
1616 "adi,adv7282-m"
1717
18+Optional Properties :
19+- powerdown-gpios: reference to the GPIO connected to the powerdown pin,
20+ if any.
21+
22+
1823 Example:
1924
2025 i2c0@1c22000 {
Documentation/devicetree/bindings/media/meson-ir.txt+4−1
@@ -1,7 +1,10 @@
11 * Amlogic Meson IR remote control receiver
22
33 Required 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"
58 - reg : physical base address and length of the device registers
69 - interrupts : a single specifier for the interrupt from the device
710
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
77
88 There are three types of FCP: FCP for Codec (FCPC), FCP for VSP (FCPV) and FCP
99 for FDP (FCPF). Their configuration and behaviour depend on the module they
10−are paired with. These DT bindings currently support the FCPV only.
10+are paired with. These DT bindings currently support the FCPV and FCPF.
1111
1212 - compatible: Must be one or more of the following
1313
1414 - "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'
1516 - "renesas,fcpv" for generic compatible 'FCP for VSP'
17+ - "renesas,fcpf" for generic compatible 'FCP for FDP'
1618
1719 When compatible with the generic version, nodes must list the
1820 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
2123 - reg: the register base and size for the device registers
2224 - clocks: Reference to the functional clock
2325
26+Optional properties:
27+ - power-domains : power-domain property defined with a power domain specifier
28+ to respective power domain.
29+
2430
2531 Device node example
2632 -------------------
@@ -29,4 +35,5 @@ Device node example · 2 unmodified lines
2935 compatible = "renesas,r8a7795-fcpv", "renesas,fcpv";
3036 reg = <0 0xfea2f000 0 0x200>;
3137 clocks = <&cpg CPG_MOD 602>;
38+ power-domains = <&sysc R8A7795_PD_A3VP>;
3239 };
Documentation/devicetree/bindings/media/st,st-hva.txt+24−0
@@ -0,0 +1,24 @@
1+st-hva: multi-format video encoder for STMicroelectronics SoC.
2+
3+Required 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+
15+Example:
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 @@
1+STMicroelectronics STIH4xx HDMI CEC driver
2+
3+Required 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+
13+Example for STIH407:
14+
15+sti-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
77 "fsl,qoriq-memory-controller".
88 - reg : Address and size of DDR controller registers
99 - interrupts : Error interrupt of DDR controller
10+- little-endian : Specifies little-endian access to registers
11+ If omitted, big-endian will be used.
1012
1113 Example 1:
1214
Documentation/devicetree/bindings/mfd/ac100.txt+54−0
@@ -0,0 +1,54 @@
1+X-Powers AC100 Codec/RTC IC Device Tree bindings
2+
3+AC100 is a audio codec and RTC subsystem combo IC. The 2 parts are
4+separated, including power supplies and interrupt lines, but share
5+a common register address space and host interface.
6+
7+Required 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+
32+Example:
33+
34+ac100: 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
1414 reg = <0x5b>;
1515 status = "okay";
1616
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−
2417 active-semi,vsel-high;
2518
2619 regulators {
@@ -73,4 +66,19 @@ Example: · 46 unmodified lines
7366 regulator-always-on;
7467 };
7568 };
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+ };
7684 };
Documentation/devicetree/bindings/mfd/arizona.txt+18−0
@@ -85,6 +85,24 @@ Optional properties: · 84 unmodified lines
8585 present, the number of values should be less than or equal to the
8686 number of inputs, unspecified inputs will use the chip default.
8787
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+
88106 - DCVDD-supply, MICVDD-supply : Power supplies, only need to be specified if
89107 they are being externally supplied. As covered in
90108 Documentation/devicetree/bindings/regulator/regulator.txt
Documentation/devicetree/bindings/mfd/aspeed-scu.txt+18−0
@@ -0,0 +1,18 @@
1+The Aspeed System Control Unit manages the global behaviour of the SoC,
2+configuring elements such as clocks, pinmux, and reset.
3+
4+Required 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+
13+Example:
14+
15+syscon: 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
1010
1111 Required properties:
1212 - 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"
1415 - reg: The I2C slave address or RSB hardware address for the AXP chip
1516 - interrupt-parent: The parent interrupt controller
1617 - interrupts: SoC NMI / GPIO interrupt connected to the PMIC's IRQ pin
@@ -47,7 +48,6 @@ Optional properties for DCDC regulators: · 30 unmodified lines
4748 probably makes sense for HiFi audio related
4849 applications that aren't battery constrained.
4950
50−
5151 AXP202/AXP209 regulators, type, and corresponding input supply names:
5252
5353 Regulator Type Supply Name Notes
@@ -86,6 +86,30 @@ LDO_IO1 : LDO : ips-supply : GPIO 1 · 32 unmodified lines
8686 RTC_LDO : LDO : ips-supply : always on
8787 DRIVEVBUS : Enable output : drivevbus-supply : external regulator
8888
89+AXP806 regulators, type, and corresponding input supply names:
90+
91+Regulator Type Supply Name Notes
92+--------- ---- ----------- -----
93+DCDCA : DC-DC buck : vina-supply : poly-phase capable
94+DCDCB : DC-DC buck : vinb-supply : poly-phase capable
95+DCDCC : DC-DC buck : vinc-supply : poly-phase capable
96+DCDCD : DC-DC buck : vind-supply : poly-phase capable
97+DCDCE : DC-DC buck : vine-supply : poly-phase capable
98+ALDO1 : LDO : aldoin-supply : shared supply
99+ALDO2 : LDO : aldoin-supply : shared supply
100+ALDO3 : LDO : aldoin-supply : shared supply
101+BLDO1 : LDO : bldoin-supply : shared supply
102+BLDO2 : LDO : bldoin-supply : shared supply
103+BLDO3 : LDO : bldoin-supply : shared supply
104+BLDO4 : LDO : bldoin-supply : shared supply
105+CLDO1 : LDO : cldoin-supply : shared supply
106+CLDO2 : LDO : cldoin-supply : shared supply
107+CLDO3 : LDO : cldoin-supply : shared supply
108+SW : On/Off Switch : swin-supply
109+
110+Additionally, the AXP806 DC-DC regulators support poly-phase arrangements
111+for higher output current. The possible groupings are: A+B, A+B+C, D+E.
112+
89113 AXP809 regulators, type, and corresponding input supply names:
90114
91115 Regulator Type Supply Name Notes
Documentation/devicetree/bindings/mfd/lp873x.txt+59−0
@@ -0,0 +1,59 @@
1+TI LP873X PMIC MFD driver
2+
3+Required 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.
12+Example:
13+
14+pmic: 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
1717 - interrupt-parent : The parent interrupt controller.
1818
1919 Optional properties:
20−- regulators : The regulators of max77693 have to be instantiated under subnod
20+- regulators : The regulators of max77693 have to be instantiated under subnode
2121 named "regulators" using the following format.
2222
2323 regulators {
24− regualtor-compatible = ESAFEOUT1/ESAFEOUT2/CHARGER
25− standard regulator constratints[*].
24+ regulator-compatible = ESAFEOUT1/ESAFEOUT2/CHARGER
25+ standard regulator constraints[*].
2626 };
2727
2828 [*] refer Documentation/devicetree/bindings/regulator/regulator.txt
2929
3030 - haptic : The MAX77693 haptic device utilises a PWM controlled motor to provide
3131 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.
3333
3434 Required properties:
35− - compatible : Must be "maxim,max77693-hpatic"
35+ - compatible : Must be "maxim,max77693-haptic"
3636 - haptic-supply : power supply for the haptic motor
3737 [*] refer Documentation/devicetree/bindings/regulator/regulator.txt
3838 - pwms : phandle to the physical PWM(Pulse Width Modulation) device.
3939 PWM properties should be named "pwms". And number of cell is different
4040 for each pwm device.
41− To get more informations, please refer to documentaion.
41+ To get more information, please refer to documentation.
4242 [*] refer Documentation/devicetree/bindings/pwm/pwm.txt
4343
4444 - 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
6262 "qcom,pm8058-rtc"
6363 "qcom,pm8921-rtc"
6464 "qcom,pm8941-rtc"
65+ "qcom,pm8018-rtc"
6566
6667 - reg:
6768 Usage: required
Documentation/devicetree/bindings/mfd/qcom-rpm.txt+15−0
@@ -13,6 +13,7 @@ frequencies. · 12 unmodified lines
1313 "qcom,rpm-msm8660"
1414 "qcom,rpm-msm8960"
1515 "qcom,rpm-ipq8064"
16+ "qcom,rpm-mdm9615"
1617
1718 - reg:
1819 Usage: required
@@ -59,6 +60,7 @@ Regulator nodes are identified by their compatible: · 40 unmodified lines
5960 "qcom,rpm-pm8058-regulators"
6061 "qcom,rpm-pm8901-regulators"
6162 "qcom,rpm-pm8921-regulators"
63+ "qcom,rpm-pm8018-regulators"
6264
6365 - vdd_l0_l1_lvs-supply:
6466 - vdd_l2_l11_l12-supply:
@@ -137,6 +139,15 @@ Regulator nodes are identified by their compatible: · 72 unmodified lines
137139 Definition: reference to regulator supplying the input pin, as
138140 described in the data sheet
139141
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+
140151 The regulator node houses sub-nodes for each regulator within the device. Each
141152 sub-node is identified using the node's name, with valid values listed for each
142153 of the pmics below.
@@ -156,6 +167,10 @@ pm8921: · 13 unmodified lines
156167 l29, lvs1, lvs2, lvs3, lvs4, lvs5, lvs6, lvs7, usb-switch, hdmi-switch,
157168 ncp
158169
170+pm8018:
171+ s1, s2, s3, s4, s5, , l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11,
172+ l12, l14, lvs1
173+
159174 The content of each sub-node is defined by the standard binding for regulators -
160175 see regulator.txt - with additional custom properties described below:
161176
Documentation/devicetree/bindings/mfd/rk808.txt+34−3
@@ -1,7 +1,11 @@
1−RK808 Power Management Integrated Circuit
1+RK8XX Power Management Integrated Circuit
2+
3+The rk8xx family current members:
4+rk808
5+rk818
26
37 Required properties:
4−- compatible: "rockchip,rk808"
8+- compatible: "rockchip,rk808", "rockchip,rk818"
59 - reg: I2C slave address
610 - interrupt-parent: The parent interrupt controller.
711 - interrupts: the interrupt outputs of the controller.
@@ -13,6 +17,8 @@ Optional properties: · 5 unmodified lines
1317 default output clock name
1418 - rockchip,system-power-controller: Telling whether or not this pmic is controlling
1519 the system power.
20+
21+Optional RK808 properties:
1622 - vcc1-supply: The input supply for DCDC_REG1
1723 - vcc2-supply: The input supply for DCDC_REG2
1824 - vcc3-supply: The input supply for DCDC_REG3
@@ -29,7 +35,20 @@ Optional properties: · 10 unmodified lines
2935 the gpio controller. If DVS GPIOs aren't present, voltage changes will happen
3036 very quickly with no slow ramp time.
3137
32−Regulators: All the regulators of RK808 to be instantiated shall be
38+Optional 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+
51+Regulators: All the regulators of RK8XX to be instantiated shall be
3352 listed in a child node named 'regulators'. Each regulator is represented
3453 by a child node of the 'regulators' node.
3554
@@ -48,6 +67,18 @@ number as described in RK808 datasheet. · 12 unmodified lines
4867 - SWITCH_REGn
4968 - valid values for n are 1 to 2
5069
70+Following regulators of the RK818 PMIC block are supported. Note that
71+the 'n' in regulator name, as in DCDC_REGn or LDOn, represents the DCDC or LDO
72+number 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+
5182 Standard regulator bindings are used inside regulator subnodes. Check
5283 Documentation/devicetree/bindings/regulator/regulator.txt
5384 for more details
Documentation/devicetree/bindings/mfd/samsung,exynos5433-lpass.txt+70−0
@@ -0,0 +1,70 @@
1+Samsung Exynos SoC Low Power Audio Subsystem (LPASS)
2+
3+Required 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+
13+Each IP block of the Low Power Audio Subsystem should be specified as
14+an optional sub-node. For "samsung,exynos5433-lpass" compatible this includes:
15+UART, SLIMBUS, PCM, I2S, DMAC, Timers 0...4, VIC, WDT 0...1 devices.
16+
17+Bindings of the sub-nodes are described in:
18+ ../serial/samsung_uart.txt
19+ ../sound/samsung-i2s.txt
20+ ../dma/arm-pl330.txt
21+
22+
23+Example:
24+
25+audio-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
44 keypad, touchscreen, adc, pwm, rotator.
55
66 Required properties:
7− - compatible : "st,stmpe[610|801|811|1601|2401|2403]"
7+ - compatible : "st,stmpe[610|801|811|1600|1601|2401|2403]"
88 - reg : I2C/SPI address of the device
99
1010 Optional properties:
Documentation/devicetree/bindings/mfd/twl6040.txt+1−0
@@ -12,6 +12,7 @@ Required properties: · 11 unmodified lines
1212 - interrupt-parent: The parent interrupt controller
1313 - gpio-controller:
1414 - #gpio-cells = <1>: twl6040 provides GPO lines.
15+- #clock-cells = <0>; twl6040 is a provider of pdmclk which is used by McPDM
1516 - twl6040,audpwron-gpio: Power on GPIO line for the twl6040
1617
1718 - vio-supply: Regulator for the twl6040 VIO supply
Documentation/devicetree/bindings/mips/brcm/soc.txt+2−2
@@ -2,9 +2,9 @@ · 1 unmodified line
22
33 Required properties:
44
5−- compatible: "brcm,bcm3384", "brcm,bcm33843"
5+- compatible: "brcm,bcm3368", "brcm,bcm3384", "brcm,bcm33843"
66 "brcm,bcm3384-viper", "brcm,bcm33843-viper"
7− "brcm,bcm6328", "brcm,bcm6358", "brcm,bcm6368",
7+ "brcm,bcm6328", "brcm,bcm6358", "brcm,bcm6362", "brcm,bcm6368",
88 "brcm,bcm63168", "brcm,bcm63268",
99 "brcm,bcm7125", "brcm,bcm7346", "brcm,bcm7358", "brcm,bcm7360",
1010 "brcm,bcm7362", "brcm,bcm7420", "brcm,bcm7425"
Documentation/devicetree/bindings/mmc/arasan,sdhci.txt+3−0
@@ -36,6 +36,9 @@ Optional Properties: · 35 unmodified lines
3636 - #clock-cells: If specified this should be the value <0>. With this property
3737 in place we will export a clock representing the Card Clock. This clock
3838 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.
3942
4043 Example:
4144 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
88 that support them.
99
1010 Required properties:
11−- compatible: "brcm,bcm7425-sdhci"
11+- compatible: should be one of the following
12+ - "brcm,bcm7425-sdhci"
13+ - "brcm,bcm7445-sdhci"
1214
1315 Refer to clocks/clock-bindings.txt for generic clock consumer properties.
1416
Documentation/devicetree/bindings/mmc/mmc-pwrseq-simple.txt+2−0
@@ -16,6 +16,8 @@ Optional properties: · 15 unmodified lines
1616 See ../clocks/clock-bindings.txt for details.
1717 - clock-names : Must include the following entry:
1818 "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)
1921
2022 Example:
2123
Documentation/devicetree/bindings/mmc/mmc.txt+14−1
@@ -75,6 +75,17 @@ Optional SDIO properties: · 74 unmodified lines
7575 - wakeup-source: Enables wake up of host system on SDIO IRQ assertion
7676 (Legacy property supported: "enable-sdio-wakeup")
7777
78+MMC power
79+---------
80+
81+Controllers may implement power control from both the connected cards and
82+the IO signaling (for example to change to high-speed 1.8V signalling). If
83+the system supports this, then the following two properties should point
84+to valid regulator nodes:
85+
86+- vqmmc-supply: supply node for IO line power
87+- vmmc-supply: supply node for card's power
88+
7889
7990 MMC power sequences:
8091 --------------------
@@ -102,11 +113,13 @@ Required host node properties when using function subnodes: · 21 unmodified lines
102113 - #size-cells: should be zero.
103114
104115 Required function subnode properties:
105−- compatible: name of SDIO function following generic names recommended practice
106116 - reg: Must contain the SDIO function number of the function this subnode
107117 describes. A value of 0 denotes the memory SD function, values from
108118 1 to 7 denote the SDIO functions.
109119
120+Optional function subnode properties:
121+- compatible: name of SDIO function following generic names recommended practice
122+
110123
111124 Examples
112125 --------
Documentation/devicetree/bindings/mmc/sdhci-st.txt+1−1
@@ -10,7 +10,7 @@ Required properties: · 9 unmodified lines
1010 subsystem (mmcss) inside the FlashSS (available in STiH407 SoC
1111 family).
1212
13−- clock-names: Should be "mmc".
13+- clock-names: Should be "mmc" and "icn". (NB: The latter is not compulsory)
1414 See: Documentation/devicetree/bindings/resource-names.txt
1515 - clocks: Phandle to the clock.
1616 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
88 Absolute maximum transfer rate is 200MB/s
99
1010 Required 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"
1217 - reg : mmc controller base registers
1318 - clocks : a list with 4 phandle + clock specifier pairs
1419 - 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
3939
4040 Optional properties:
4141
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+
4246 * clocks: from common clock binding: handle to biu and ciu clocks for the
4347 bus interface unit clock and the card interface unit clock.
4448
Documentation/devicetree/bindings/mmc/tmio_mmc.txt+1−0
@@ -23,6 +23,7 @@ Required properties: · 22 unmodified lines
2323 "renesas,sdhi-r8a7793" - SDHI IP on R8A7793 SoC
2424 "renesas,sdhi-r8a7794" - SDHI IP on R8A7794 SoC
2525 "renesas,sdhi-r8a7795" - SDHI IP on R8A7795 SoC
26+ "renesas,sdhi-r8a7796" - SDHI IP on R8A7796 SoC
2627
2728 Optional properties:
2829 - 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
3535 - nand-ecc-step-size: integer representing the number of data bytes
3636 that are covered by a single ECC step.
3737
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+
3847 The ECC strength and ECC step size properties define the correction capability
3948 of a controller. Together, they say a controller can correct "{strength} bit
4049 errors per {size} bytes".
Documentation/devicetree/bindings/net/apm-xgene-enet.txt+3−0
@@ -47,6 +47,9 @@ Optional properties: · 46 unmodified lines
4747 Valid values are between 0 to 7, that maps to
4848 273, 589, 899, 1222, 1480, 1806, 2147, 2464 ps
4949 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+
5053
5154 Example:
5255 menetclk: menetclk {
Documentation/devicetree/bindings/net/brcm,amac.txt+24−0
@@ -0,0 +1,24 @@
1+Broadcom AMAC Ethernet Controller Device Tree Bindings
2+-------------------------------------------------------------
3+
4+Required 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+
12+Optional properties:
13+- mac-address: See ethernet.txt file in the same directory
14+
15+Examples:
16+
17+amac0: 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
66 - reg: addresses and length of the register sets for the device, must be 6
77 pairs of register addresses and lengths
88 - 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+
12+Deprecated binding required properties:
13+
914 - dsa,mii-bus: phandle to the MDIO bus controller, see dsa/dsa.txt
1015 - dsa,ethernet: phandle to the CPU network interface controller, see dsa/dsa.txt
11−- #size-cells: must be 0
1216 - #address-cells: must be 2, see dsa/dsa.txt
1317
1418 Subnodes:
@@ -39,6 +43,45 @@ Optional properties: · 24 unmodified lines
3943
4044 Example:
4145
46+switch_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+
83+Example using the old DSA DeviceTree binding:
84+
4285 switch_top@f0b00000 {
4386 compatible = "simple-bus";
4487 #size-cells = <1>;
Documentation/devicetree/bindings/net/brcm,bgmac-nsp.txt+24−0
@@ -0,0 +1,24 @@
1+Broadcom GMAC Ethernet Controller Device Tree Bindings
2+-------------------------------------------------------------
3+
4+Required 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+
12+Optional properties:
13+- mac-address: See ethernet.txt file in the same directory
14+
15+Examples:
16+
17+gmac0: 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+
3+Required properties:
4+
5+- compatible: should be "qca,qca8337"
6+- #size-cells: must be 0
7+- #address-cells: must be 1
8+
9+Subnodes:
10+
11+The integrated switch subnode should be specified according to the binding
12+described in dsa/dsa.txt. As the QCA8K switches do not have a N:N mapping of
13+port and PHY id, each subnode describing a port needs to have a valid phandle
14+referencing the internal PHY connected to it. The CPU port of this switch is
15+always port 0.
16+
17+Example:
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
1111 the maximum frame size (there's contradiction in ePAPR).
1212 - phy-mode: string, operation mode of the PHY interface; supported values are
1313 "mii", "gmii", "sgmii", "qsgmii", "tbi", "rev-mii", "rmii", "rgmii", "rgmii-id",
14− "rgmii-rxid", "rgmii-txid", "rtbi", "smii", "xgmii"; this is now a de-facto
15− standard property;
14+ "rgmii-rxid", "rgmii-txid", "rtbi", "smii", "xgmii", "trgmii"; this is now a
15+ de-facto standard property;
1616 - phy-connection-type: the same as "phy-mode" property but described in ePAPR;
1717 - phy-handle: phandle, specifies a reference to a node representing a PHY
1818 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
2121 - clock-names: Tuple listing input clock names.
2222 Required elements: 'pclk', 'hclk'
2323 Optional elements: 'tx_clk'
24+ Optional elements: 'rx_clk' applies to cdns,zynqmp-gem
2425 - clocks: Phandles to input clocks.
2526
2627 Optional properties for PHY child node:
Documentation/devicetree/bindings/net/mediatek-net.txt+4−2
@@ -25,13 +25,15 @@ Optional properties: · 24 unmodified lines
2525 - interrupt-parent: Should be the phandle for the interrupt controller
2626 that services interrupts for this device
2727
28−
2928 * Ethernet MAC node
3029
3130 Required properties:
3231 - compatible: Should be "mediatek,eth-mac"
3332 - 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.
3537
3638 Example:
3739
Documentation/devicetree/bindings/net/meson-dwmac.txt+37−8
@@ -1,18 +1,32 @@
11 * Amlogic Meson DWMAC Ethernet controller
22
33 The device inherits all the properties of the dwmac/stmmac devices
4−described in the file net/stmmac.txt with the following changes.
4+described in the file stmmac.txt in the current directory with the
5+following changes.
56
6−Required properties:
7+Required properties on all platforms:
78
8−- compatible: should be "amlogic,meson6-dwmac" along with "snps,dwmac"
9− and any applicable more detailed version number
10− described in net/stmmac.txt
9+- compatible: Depending on the platform this should be one of:
10+ - "amlogic,meson6-dwmac"
11+ - "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.
1116
12−- reg: should contain a register range for the dwmac controller and
13− another one for the Amlogic specific configuration
17+- reg: The first register range should be the one of the DWMAC
18+ controller. The second range is is for the Amlogic specific
19+ configuration (for example the PRG_ETHERNET register range
20+ on Meson8b and newer)
1421
15−Example:
22+Required 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+
29+Example for Meson6:
1630
1731 ethmac: ethernet@c9410000 {
1832 compatible = "amlogic,meson6-dwmac", "snps,dwmac";
@@ -23,3 +37,18 @@ Example: · 4 unmodified lines
2337 clocks = <&clk81>;
2438 clock-names = "stmmaceth";
2539 }
40+
41+Example 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
3434
3535 All skew control options are specified in picoseconds. The minimum
3636 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.
3839
3940 Optional properties:
4041
41− Maximum value of 1860:
42+ Maximum value of 1860, default value 900:
4243
4344 - rxc-skew-ps : Skew control of RX clock pad
4445 - txc-skew-ps : Skew control of TX clock pad
4546
46− Maximum value of 900:
47+ Maximum value of 900, default value 420:
4748
4849 - rxdv-skew-ps : Skew control of RX CTL pad
4950 - 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+
3+Required 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+
8+Optional 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+
24+Note: see dt-bindings/net/mscc-phy-vsc8531.h for applicable values
25+
26+Table: 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+
52+Example:
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 @@
1+Qualcomm Technologies EMAC Gigabit Ethernet Controller
2+
3+This network controller consists of two devices: a MAC and an SGMII
4+internal PHY. Each device is represented by a device tree node. A phandle
5+connects the MAC node to its corresponding internal phy node. Another
6+phandle points to the external PHY node.
7+
8+Required properties:
9+
10+MAC 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+
19+Internal 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+
24+The external phy child node:
25+- reg : The phy address
26+
27+Example:
28+
29+FSM9900:
30+
31+soc {
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+
78+QDF2432:
79+
80+soc {
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
1010 "renesas,etheravb-r8a7793" if the device is a part of R8A7793 SoC.
1111 "renesas,etheravb-r8a7794" if the device is a part of R8A7794 SoC.
1212 "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.
1314 "renesas,etheravb-rcar-gen2" for generic R-Car Gen 2 compatible interface.
1415 "renesas,etheravb-rcar-gen3" for generic R-Car Gen 3 compatible interface.
1516
@@ -33,7 +34,7 @@ Optional properties: · 17 unmodified lines
3334 - interrupt-parent: the phandle for the interrupt controller that services
3435 interrupts for this device.
3536 - 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;
3738 it should include one entry per channel, named "ch%u",
3839 where %u is the channel number ranging from 0 to 24.
3940 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
33 The device node has following properties.
44
55 Required properties:
6− - compatible: Can be one of "rockchip,rk3228-gmac", "rockchip,rk3288-gmac",
7− "rockchip,rk3368-gmac"
6+ - compatible: should be "rockchip,<name>-gamc"
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
812 - reg: addresses and length of the register sets for the device.
913 - interrupts: Should contain the GMAC interrupts.
1014 - 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
55
66 Required properties:
77 - 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.
810 "renesas,ether-r8a7778" if the device is a part of R8A7778 SoC.
911 "renesas,ether-r8a7779" if the device is a part of R8A7779 SoC.
1012 "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
33 Required properties:
44 - compatible : Should be "smsc,lan<model>", "smsc,lan9115"
55 - reg : Address and length of the io space for SMSC LAN
6−- interrupts : Should contain SMSC LAN interrupt line
7−- interrupt-parent : Should be the phandle for the interrupt controller
8− that services interrupts for this device
6+- interrupts : one or two interrupt specifiers
7+ - The first interrupt is the SMSC LAN interrupt line
8+ - 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
911 - phy-mode : See ethernet.txt file in the same directory
1012
1113 Optional properties:
@@ -21,6 +23,10 @@ Optional properties: · 9 unmodified lines
2123 external PHY
2224 - smsc,save-mac-address : Indicates that mac address needs to be saved
2325 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.
2430
2531 Examples:
2632
@@ -29,7 +35,8 @@ lan9220@f4000000 { · 2 unmodified lines
2935 reg = <0xf4000000 0x2000000>;
3036 phy-mode = "mii";
3137 interrupt-parent = <&gpio1>;
32− interrupts = <31>;
38+ interrupts = <31>, <32>;
39+ reset-gpios = <&gpio1 30 GPIO_ACTIVE_LOW>;
3340 reg-io-width = <4>;
3441 smsc,irq-push-pull;
3542 };
Documentation/devicetree/bindings/net/snps,dwc-qos-ethernet.txt+95−4
@@ -1,21 +1,111 @@
11 * Synopsys DWC Ethernet QoS IP version 4.10 driver (GMAC)
22
3+This binding supports the Synopsys Designware Ethernet QoS (Quality Of Service)
4+IP block. The IP supports multiple options for bus type, clocking and reset
5+structure, and feature list. Consequently, a number of properties and list
6+entries in properties are marked as optional, or only required in specific HW
7+configurations.
38
49 Required 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.
619 - reg: Address and length of the register set for the device
7−- clocks: Phandles to the reference clock and the bus clock
8−- clock-names: Should be "phy_ref_clk" for the reference clock and "apb_pclk"
9− for the bus clock.
20+- clocks: Phandle and clock specifiers for each entry in clock-names, in the
21+ same order. See ../clock/clock-bindings.txt.
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"
1083 - interrupt-parent: Should be the phandle for the interrupt controller
1184 that services interrupts for this device
1285 - interrupts: Should contain the core's combined interrupt signal
1386 - 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.
14102
15103 Optional properties:
16104 - dma-coherent: Present if dma operations are coherent
17105 - mac-address: See ethernet.txt in the same directory
18106 - 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.
19109 - snps,en-lpi: If present it enables use of the AXI low-power interface
20110 - snps,write-requests: Number of write requests that the AXI port can issue.
21111 It depends on the SoC configuration.
@@ -52,6 +142,7 @@ ethernet2@40010000 { · 30 unmodified lines
52142 reg = <0x40010000 0x4000>;
53143 phy-handle = <&phy2>;
54144 phy-mode = "gmii";
145+ phy-reset-gpios = <&gpioctlr 43 GPIO_ACTIVE_LOW>;
55146
56147 snps,en-tx-lpi-clockgating;
57148 snps,en-lpi;
Documentation/devicetree/bindings/net/stm32-dwmac.txt+32−0
@@ -0,0 +1,32 @@
1+STMicroelectronics STM32 / MCU DWMAC glue layer controller
2+
3+This file documents platform glue layer for stmmac.
4+Please see stmmac.txt for the other unchanged properties.
5+
6+The device node has following properties.
7+
8+Required 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.
17+Example:
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 @@
1+Espressif ESP8089 wireless SDIO devices
2+
3+This node provides properties for controlling the ESP8089 wireless device.
4+The node is expected to be specified as a child node to the SDIO controller
5+that connects the device to the system.
6+
7+Required properties:
8+
9+ - compatible : Should be "esp,esp8089".
10+
11+Optional properties:
12+ - esp,crystal-26M-en: Integer value for the crystal_26M_en firmware parameter
13+
14+Example:
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 @@
1+XILINX GMIITORGMII Converter Driver Device Tree Bindings
2+--------------------------------------------------------
3+
4+The Gigabit Media Independent Interface (GMII) to Reduced Gigabit Media
5+Independent Interface (RGMII) core provides the RGMII between RGMII-compliant
6+Ethernet physical media devices (PHY) and the Gigabit Ethernet controller.
7+This core can be used in all three modes of operation(10/100/1000 Mb/s).
8+The Management Data Input/Output (MDIO) interface is used to configure the
9+Speed of operation. This core can switch dynamically between the three
10+Different speed modes by configuring the conveter register through mdio write.
11+
12+This converter sits between the ethernet MAC and the external phy.
13+MAC <==> GMII2RGMII <==> RGMII_PHY
14+
15+For more details about mdio please refer phy.txt file in the same directory.
16+
17+Required 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+
23+Example:
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+
3+Required properties:
4+- compatible: should be "amlogic,meson-gxbb-efuse"
5+
6+= Data cells =
7+Are child nodes of eFuse, bindings of which as described in
8+bindings/nvmem/nvmem.txt
9+
10+Example:
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 =
31+Are device nodes which consume nvmem data cells.
32+
33+For 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 @@
11 = Rockchip eFuse device tree bindings =
22
33 Required 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.
59 - reg: Should contain the registers location and exact eFuse size
610 - clocks: Should be the clock id of eFuse
711 - clock-names: Should be "pclk_efuse"
812
13+Deprecated properties:
14+- compatible: "rockchip,rockchip-efuse"
15+ Old efuse compatible value compatible to rk3066a, rk3188 and rk3288
16+ efuses
17+
918 = Data cells =
1019 Are child nodes of eFuse, bindings of which as described in
1120 bindings/nvmem/nvmem.txt
@@ -13,7 +22,7 @@ bindings/nvmem/nvmem.txt · 1 unmodified line
1322 Example:
1423
1524 efuse: efuse@ffb40000 {
16− compatible = "rockchip,rockchip-efuse";
25+ compatible = "rockchip,rk3288-efuse";
1726 reg = <0xffb40000 0x20>;
1827 #address-cells = <1>;
1928 #size-cells = <1>;
Documentation/devicetree/bindings/pci/axis,artpec6-pcie.txt+4−3
@@ -24,16 +24,17 @@ Example: · 23 unmodified lines
2424 compatible = "axis,artpec6-pcie", "snps,dw-pcie";
2525 reg = <0xf8050000 0x2000
2626 0xf8040000 0x1000
27− 0xc0000000 0x1000>;
27+ 0xc0000000 0x2000>;
2828 reg-names = "dbi", "phy", "config";
2929 #address-cells = <3>;
3030 #size-cells = <2>;
3131 device_type = "pci";
3232 /* downstream I/O */
33− ranges = <0x81000000 0 0x00010000 0xc0010000 0 0x00010000
33+ ranges = <0x81000000 0 0 0xc0002000 0 0x00010000
3434 /* non-prefetchable memory */
35− 0x82000000 0 0xc0020000 0xc0020000 0 0x1ffe0000>;
35+ 0x82000000 0 0xc0012000 0xc0012000 0 0x1ffee000>;
3636 num-lanes = <2>;
37+ bus-range = <0x00 0xff>;
3738 interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
3839 interrupt-names = "msi";
3940 #interrupt-cells = <1>;
Documentation/devicetree/bindings/pci/designware-pcie.txt+3−0
@@ -17,6 +17,8 @@ Required properties: · 16 unmodified lines
1717 - num-lanes: number of lanes to use
1818
1919 Optional properties:
20+- num-viewport: number of view ports configured in hardware. If a platform
21+ does not specify it, the driver assumes 2.
2022 - num-lanes: number of lanes to use (this property should be specified unless
2123 the link is brought already up in BIOS)
2224 - reset-gpio: gpio pin number of power good signal
@@ -44,4 +46,5 @@ Example configuration: · 21 unmodified lines
4446 interrupts = <25>, <24>;
4547 #interrupt-cells = <1>;
4648 num-lanes = <1>;
49+ num-viewport = <3>;
4750 };
Documentation/devicetree/bindings/pci/pci-iommu.txt+171−0
@@ -0,0 +1,171 @@
1+This document describes the generic device tree binding for describing the
2+relationship between PCI(e) devices and IOMMU(s).
3+
4+Each PCI(e) device under a root complex is uniquely identified by its Requester
5+ID (AKA RID). A Requester ID is a triplet of a Bus number, Device number, and
6+Function number.
7+
8+For the purpose of this document, when treated as a numeric value, a RID is
9+formatted 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+
16+IOMMUs may distinguish PCI devices through sideband data derived from the
17+Requester ID. While a given PCI device can only master through one IOMMU, a
18+root complex may split masters across a set of IOMMUs (e.g. with one IOMMU per
19+bus).
20+
21+The generic 'iommus' property is insufficient to describe this relationship,
22+and a mechanism is required to map from a PCI device to its IOMMU and sideband
23+data.
24+
25+For generic IOMMU bindings, see
26+Documentation/devicetree/bindings/iommu/iommu.txt.
27+
28+
29+PCI root complex
30+================
31+
32+Optional 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+
48+Example (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+
75+Example (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+
103+Example (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+
131+Example (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+
3+Required 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+
42+Optional 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*
50+The core controller provides a single interrupt for legacy INTx. The PCIe node
51+should contain an interrupt controller node as a target for the PCI
52+'interrupt-map' property. This node represents the domain at which the four
53+INTx interrupts are decoded and routed.
54+
55+
56+Required 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+
63+Example:
64+
65+pcie0: 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
5555 msi-parent = <&nwl_pcie>;
5656 reg = <0x0 0xfd0e0000 0x0 0x1000>,
5757 <0x0 0xfd480000 0x0 0x1000>,
58− <0x0 0xe0000000 0x0 0x1000000>;
58+ <0x80 0x00000000 0x0 0x1000000>;
5959 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 */
6162
6263 pcie_intc: legacy-interrupt-controller {
6364 interrupt-controller;
Documentation/devicetree/bindings/perf/apm-xgene-pmu.txt+112−0
@@ -0,0 +1,112 @@
1+* APM X-Gene SoC PMU bindings
2+
3+This is APM X-Gene SoC PMU (Performance Monitoring Unit) module.
4+The 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+
11+The following section describes the SoC PMU DT node binding.
12+
13+Required 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+
22+Required properties for L3C subnode:
23+- compatible : Shall be "apm,xgene-pmu-l3c".
24+- reg : First resource shall be the L3C PMU resource.
25+
26+Required properties for IOB subnode:
27+- compatible : Shall be "apm,xgene-pmu-iob".
28+- reg : First resource shall be the IOB PMU resource.
29+
30+Required 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+
35+Required 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+
40+Example:
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 @@
1+Driver for Broadcom Northstar USB 3.0 PHY
2+
3+Required 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+
10+Initialization of USB 3.0 PHY depends on Northstar version. There are currently
11+three known series: Ax, Bx and Cx.
12+Known A0: BCM4707 rev 0
13+Known B0: BCM4707 rev 4, BCM53573 rev 2
14+Known B1: BCM4707 rev 6
15+Known C0: BCM47094 rev 0
16+
17+Example:
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+
3+Required 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+
12+Optional properties:
13+- resets: reference to the reset controller
14+- phy-supply: see phy-bindings.txt in this directory
15+
16+
17+Example:
18+
19+usb0_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
1212 - interrupts: Should contain phy interrupt
1313 - fsl,anatop: phandle for anatop register, it is only for imx6 SoC series
1414
15+Optional 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+
1525 Example:
1626 usbphy1: usbphy@020c9000 {
1727 compatible = "fsl,imx6q-usbphy", "fsl,imx23-usbphy";
Documentation/devicetree/bindings/phy/phy-rockchip-inno-usb2.txt+64−0
@@ -0,0 +1,64 @@
1+ROCKCHIP USB2.0 PHY WITH INNO IP BLOCK
2+
3+Required 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+
11+Optional 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+
15+Required 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+
21+Required 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+
29+Optional properties:
30+ - phy-supply : phandle to a regulator that provides power to VBUS.
31+ See ./phy-bindings.txt for details.
32+
33+Example:
34+
35+grf: 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+
4+Required 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+
19+Note, there are 2 type-c phys for RK3399, and they are almost identical, except
20+these registers(description below), every register node contains 3 sections:
21+offset, 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+
37+Required 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+
43+Required properties (port (child) node):
44+- #phy-cells : must be 0, See ./phy-bindings.txt for details.
45+
46+Example:
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
55
66 Required properties:
77 - 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
810 SoC.
911 "renesas,rcar-gen3-usb2-phy" for a generic R-Car Gen3 compatible device.
1012
@@ -30,11 +32,11 @@ Example (R-Car H3): · 19 unmodified lines
3032 compatible = "renesas,usb2-phy-r8a7795", "renesas,rcar-gen3-usb2-phy";
3133 reg = <0 0xee080200 0 0x700>;
3234 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
33− clocks = <&mstp7_clks R8A7795_CLK_EHCI0>;
35+ clocks = <&cpg CPG_MOD 703>;
3436 };
3537
3638 usb-phy@ee0a0200 {
3739 compatible = "renesas,usb2-phy-r8a7795", "renesas,rcar-gen3-usb2-phy";
3840 reg = <0 0xee0a0200 0 0x700>;
39− clocks = <&mstp7_clks R8A7795_CLK_EHCI0>;
41+ clocks = <&cpg CPG_MOD 702>;
4042 };
Documentation/devicetree/bindings/phy/rockchip-pcie-phy.txt+31−0
@@ -0,0 +1,31 @@
1+Rockchip PCIE PHY
2+-----------------------
3+
4+Required 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+
14+Example:
15+
16+grf: 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
2727 - clocks : phandle + clock specifier for the phy clocks
2828 - clock-names: string, clock name, must be "phyclk"
2929 - #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.
3033
3134 Example:
3235
Documentation/devicetree/bindings/phy/sun4i-usb-phy.txt+1−0
@@ -10,6 +10,7 @@ Required properties: · 9 unmodified lines
1010 * allwinner,sun8i-a23-usb-phy
1111 * allwinner,sun8i-a33-usb-phy
1212 * allwinner,sun8i-h3-usb-phy
13+ * allwinner,sun50i-a64-usb-phy
1314 - reg : a list of offset + length pairs
1415 - reg-names :
1516 * "phy_ctrl"
Documentation/devicetree/bindings/phy/ti-phy.txt+2−0
@@ -31,6 +31,8 @@ OMAP USB2 PHY · 30 unmodified lines
3131
3232 Required properties:
3333 - compatible: Should be "ti,omap-usb2"
34+ Should be "ti,dra7x-usb2" for the 1st instance of USB2 PHY on
35+ DRA7x
3436 Should be "ti,dra7x-usb2-phy2" for the 2nd instance of USB2 PHY
3537 in DRA7x
3638 - 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
2323 "allwinner,sun8i-h3-pinctrl"
2424 "allwinner,sun8i-h3-r-pinctrl"
2525 "allwinner,sun50i-a64-pinctrl"
26+ "nextthing,gr8-pinctrl"
2627
2728 - reg: Should contain the register physical address and length for the
2829 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
44 part and usage.
55
66 Required properties:
7−- compatible: "marvell,88f5181l-pinctrl", "marvell,88f5182-pinctrl",
7+- compatible: "marvell,88f5181-pinctrl",
8+ "marvell,88f5181l-pinctrl",
9+ "marvell,88f5182-pinctrl",
810 "marvell,88f5281-pinctrl"
911
1012 - reg: two register areas, the first one describing the first two
Documentation/devicetree/bindings/pinctrl/pinctrl-aspeed.txt+67−0
@@ -0,0 +1,67 @@
1+Aspeed Pin Controllers
2+----------------------
3+
4+The Aspeed SoCs vary in functionality inside a generation but have a common mux
5+device register layout.
6+
7+Required 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+
14+The pin controller node should be a child of a syscon node with the required
15+property:
16+- compatible: "syscon", "simple-mfd"
17+
18+Refer to the the bindings described in
19+Documentation/devicetree/bindings/mfd/syscon.txt
20+
21+Subnode Format
22+--------------
23+
24+The required properties of child nodes are (as defined in pinctrl-bindings):
25+- function
26+- groups
27+
28+Each function has only one associated pin group. Each group is named by its
29+function. The following values for the function and groups properties are
30+supported:
31+
32+aspeed,ast2400-pinctrl, aspeed,g4-pinctrl:
33+
34+ACPI BMCINT DDCCLK DDCDAT FLACK FLBUSY FLWP GPID0 GPIE0 GPIE2 GPIE4 GPIE6 I2C10
35+I2C11 I2C12 I2C13 I2C3 I2C4 I2C5 I2C6 I2C7 I2C8 I2C9 LPCPD LPCPME LPCSMI MDIO1
36+MDIO2 NCTS1 NCTS3 NCTS4 NDCD1 NDCD3 NDCD4 NDSR1 NDSR3 NDTR1 NDTR3 NRI1 NRI3
37+NRI4 NRTS1 NRTS3 PWM0 PWM1 PWM2 PWM3 PWM4 PWM5 PWM6 PWM7 RGMII1 RMII1 ROM16
38+ROM8 ROMCS1 ROMCS2 ROMCS3 ROMCS4 RXD1 RXD3 RXD4 SD1 SGPMI SIOPBI SIOPBO TIMER3
39+TIMER5 TIMER6 TIMER7 TIMER8 TXD1 TXD3 TXD4 UART6 VGAHS VGAVS VPI18 VPI24 VPI30
40+VPO12 VPO24
41+
42+aspeed,ast2500-pinctrl, aspeed,g5-pinctrl:
43+
44+GPID0 GPID2 GPIE0 I2C10 I2C11 I2C12 I2C13 I2C14 I2C3 I2C4 I2C5 I2C6 I2C7 I2C8
45+I2C9 MAC1LINK MDIO1 MDIO2 OSCCLK PEWAKE PWM0 PWM1 PWM2 PWM3 PWM4 PWM5 PWM6 PWM7
46+RGMII1 RGMII2 RMII1 RMII2 SD1 SPI1 SPI1DEBUG SPI1PASSTHRU TIMER4 TIMER5 TIMER6
47+TIMER7 TIMER8 VGABIOSROM
48+
49+
50+Examples:
51+
52+syscon: 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+
66+Please refer to pinctrl-bindings.txt in this directory for details of the
67+common 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
3030
3131 Pin controller node:
3232 Required properties:
33−- compatible : should be "st,<SOC>-<pio-block>-pinctrl"
34− like st,stih415-sbc-pinctrl, st,stih415-front-pinctrl and so on.
33+- compatible : should be "st,stih407-<pio-block>-pinctrl"
3534 - st,syscfg : Should be a phandle of the syscfg node.
3635 - st,retime-pin-mask : Should be mask to specify which pins can be retimed.
3736 If the property is not present, it is assumed that all the pins in the
@@ -50,7 +49,11 @@ Optional properties: · 12 unmodified lines
5049 GPIO controller/bank node.
5150 Required properties:
5251 - 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
5457 - st,bank-name : Should be a name string for this bank as specified in
5558 datasheet.
5659
@@ -76,23 +79,23 @@ include/dt-bindings/interrupt-controller/irq.h · 19 unmodified lines
7679
7780 Example:
7881 pin-controller-sbc {
79− #address-cells = <1>;
80− #size-cells = <1>;
81− compatible = "st,stih415-sbc-pinctrl";
82− st,syscfg = <&syscfg_sbc>;
83− reg = <0xfe61f080 0x4>;
84− reg-names = "irqmux";
85− interrupts = <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>;
86− interrupt-names = "irqmux";
87− ranges = <0 0xfe610000 0x5000>;
88−
89− PIO0: gpio@fe610000 {
82+ #address-cells = <1>;
83+ #size-cells = <1>;
84+ compatible = "st,stih407-sbc-pinctrl";
85+ st,syscfg = <&syscfg_sbc>;
86+ reg = <0x0961f080 0x4>;
87+ reg-names = "irqmux";
88+ interrupts = <GIC_SPI 188 IRQ_TYPE_NONE>;
89+ interrupt-names = "irqmux";
90+ ranges = <0 0x09610000 0x6000>;
91+
92+ pio0: gpio@09610000 {
9093 gpio-controller;
91− #gpio-cells = <1>;
94+ #gpio-cells = <2>;
9295 interrupt-controller;
9396 #interrupt-cells = <2>;
94− reg = <0 0x100>;
95− st,bank-name = "PIO0";
97+ reg = <0x0 0x100>;
98+ st,bank-name = "PIO0";
9699 };
97100 ...
98101 pin-functions nodes follow...
@@ -162,7 +165,7 @@ pin-controller { · 63 unmodified lines
162165
163166 sdhci0:sdhci@fe810000{
164167 ...
165− interrupt-parent = <&PIO3>;
168+ interrupt-parent = <&pio3>;
166169 #interrupt-cells = <2>;
167170 interrupts = <3 IRQ_TYPE_LEVEL_HIGH>; /* Interrupt line via PIO3-3 */
168171 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
1717 "qcom,pm8994-gpio"
1818 "qcom,pma8084-gpio"
1919
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+
2023 - reg:
2124 Usage: required
2225 Value type: <prop-encoded-array>
@@ -183,7 +186,7 @@ to specify in a pin configuration subnode: · 160 unmodified lines
183186 Example:
184187
185188 pm8921_gpio: gpio@150 {
186− compatible = "qcom,pm8921-gpio";
189+ compatible = "qcom,pm8921-gpio", "qcom,ssbi-gpio";
187190 reg = <0x150 0x160>;
188191 interrupts = <192 1>, <193 1>, <194 1>,
189192 <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
1919 "qcom,pm8994-mpp",
2020 "qcom,pma8084-mpp",
2121
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+
2225 - reg:
2326 Usage: required
2427 Value type: <prop-encoded-array>
@@ -158,7 +161,7 @@ to specify in a pin configuration subnode: · 133 unmodified lines
158161 Example:
159162
160163 mpps@a000 {
161− compatible = "qcom,pm8841-mpp";
164+ compatible = "qcom,pm8841-mpp", "qcom,spmi-mpp";
162165 reg = <0xa000>;
163166 gpio-controller;
164167 #gpio-cells = <2>;
Documentation/devicetree/bindings/pinctrl/renesas,pfc-pinctrl.txt+2−0
@@ -17,9 +17,11 @@ Required Properties: · 16 unmodified lines
1717 - "renesas,pfc-r8a7779": for R8A7779 (R-Car H1) compatible pin-controller.
1818 - "renesas,pfc-r8a7790": for R8A7790 (R-Car H2) compatible pin-controller.
1919 - "renesas,pfc-r8a7791": for R8A7791 (R-Car M2-W) compatible pin-controller.
20+ - "renesas,pfc-r8a7792": for R8A7792 (R-Car V2H) compatible pin-controller.
2021 - "renesas,pfc-r8a7793": for R8A7793 (R-Car M2-N) compatible pin-controller.
2122 - "renesas,pfc-r8a7794": for R8A7794 (R-Car E2) compatible pin-controller.
2223 - "renesas,pfc-r8a7795": for R8A7795 (R-Car H3) compatible pin-controller.
24+ - "renesas,pfc-r8a7796": for R8A7796 (R-Car M3-W) compatible pin-controller.
2325 - "renesas,pfc-sh73a0": for SH73A0 (SH-Mobile AG5) compatible pin-controller.
2426
2527 - 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
229229
230230 Example 1: A pin-controller node with pin groups.
231231
232+ #include <dt-bindings/pinctrl/samsung.h>
233+
232234 pinctrl_0: pinctrl@11400000 {
233235 compatible = "samsung,exynos4210-pinctrl";
234236 reg = <0x11400000 0x1000>;
@@ -238,53 +240,53 @@ Example 1: A pin-controller node with pin groups. · 3 unmodified lines
238240
239241 uart0_data: uart0-data {
240242 samsung,pins = "gpa0-0", "gpa0-1";
241− samsung,pin-function = <2>;
242− samsung,pin-pud = <0>;
243− samsung,pin-drv = <0>;
243+ samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
244+ samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
245+ samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
244246 };
245247
246248 uart0_fctl: uart0-fctl {
247249 samsung,pins = "gpa0-2", "gpa0-3";
248− samsung,pin-function = <2>;
249− samsung,pin-pud = <0>;
250− samsung,pin-drv = <0>;
250+ samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
251+ samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
252+ samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
251253 };
252254
253255 uart1_data: uart1-data {
254256 samsung,pins = "gpa0-4", "gpa0-5";
255− samsung,pin-function = <2>;
256− samsung,pin-pud = <0>;
257− samsung,pin-drv = <0>;
257+ samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
258+ samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
259+ samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
258260 };
259261
260262 uart1_fctl: uart1-fctl {
261263 samsung,pins = "gpa0-6", "gpa0-7";
262− samsung,pin-function = <2>;
263− samsung,pin-pud = <0>;
264− samsung,pin-drv = <0>;
264+ samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
265+ samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
266+ samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
265267 };
266268
267269 i2c2_bus: i2c2-bus {
268270 samsung,pins = "gpa0-6", "gpa0-7";
269− samsung,pin-function = <3>;
270− samsung,pin-pud = <3>;
271− samsung,pin-drv = <0>;
271+ samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
272+ samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
273+ samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
272274 };
273275
274276 sd4_bus8: sd4-bus-width8 {
275277 part-1 {
276278 samsung,pins = "gpk0-3", "gpk0-4",
277279 "gpk0-5", "gpk0-6";
278− samsung,pin-function = <3>;
279− samsung,pin-pud = <3>;
280− samsung,pin-drv = <3>;
280+ samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
281+ samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
282+ samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
281283 };
282284 part-2 {
283285 samsung,pins = "gpk1-3", "gpk1-4",
284286 "gpk1-5", "gpk1-6";
285− samsung,pin-function = <4>;
286− samsung,pin-pud = <4>;
287− samsung,pin-drv = <3>;
287+ samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
288+ samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
289+ samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
288290 };
289291 };
290292 };
Documentation/devicetree/bindings/pinctrl/st,stm32-pinctrl.txt+5−0
@@ -14,6 +14,11 @@ Required properies: · 13 unmodified lines
1414 - #size-cells : The value of this property must be 1
1515 - ranges : defines mapping between pin controller node (parent) to
1616 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.
1722 - pins-are-numbered: Specify the subnodes are using numbered pinmux to
1823 specify pins.
1924
Documentation/devicetree/bindings/power/act8945a-charger.txt+0−35
@@ -1,35 +0,0 @@
1−Device-Tree bindings for charger of Active-semi ACT8945A Multi-Function Device
2−
3−Required 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−
8−Optional 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−
23−Example:
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 @@
11 *Device-Tree bindings for ST SW reset functionality
22
33 Required properties:
4−- compatible: should be "st,<chip>-restart".
4+- compatible: should be "stih407-restart".
55 - st,syscfg: should be a phandle of the syscfg node.
66
77 Example node:
88 restart {
9− compatible = "st,stih416-restart";
10− st,syscfg = <&syscfg_sbc>;
9+ compatible = "st,stih407-restart";
10+ st,syscfg = <&syscfg_sbc_reg>;
11+ status = "okay";
1112 };
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 @@
1+Device-Tree bindings for charger of Active-semi ACT8945A Multi-Function Device
2+
3+Required 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+
15+Optional 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+
28+Example:
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 @@
1+Amlogic Meson PWM Controller
2+============================
3+
4+Required 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+
9+Optional 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+
14+Example:
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
22
33 Required properties:
44 - 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.
66 - "mediatek,mt6595-disp-pwm": found on mt6595 SoC.
7+ - "mediatek,mt8173-disp-pwm": found on mt8173 SoC.
78 - reg: physical base address and length of the controller's registers.
89 - #pwm-cells: must be 2. See pwm.txt in this directory for a description of
910 the cell format.
Documentation/devicetree/bindings/pwm/pwm-st.txt+5−3
@@ -13,13 +13,14 @@ Required parameters: · 12 unmodified lines
1313 - pinctrl-0: List of phandles pointing to pin configuration nodes
1414 for PWM module.
1515 For Pinctrl properties, please refer to [1].
16−- clock-names: Set to "pwm".
16+- clock-names: Valid entries are "pwm" and/or "capture".
1717 - clocks: phandle of the clock used by the PWM module.
1818 For Clk properties, please refer to [2].
19+- interrupts: IRQ for the Capture device
1920
2021 Optional properties:
21−- st,pwm-num-chan: Number of available channels. If not passed, the driver
22− will consider single channel by default.
22+- st,pwm-num-chan: Number of available PWM channels. Default is 0.
23+- st,capture-num-chan: Number of available Capture channels. Default is 0.
2324
2425 [1] Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt
2526 [2] Documentation/devicetree/bindings/clock/clock-bindings.txt
@@ -38,4 +39,5 @@ pwm1: pwm@fe510000 { · 12 unmodified lines
3839 clocks = <&clk_sysin>;
3940 clock-names = "pwm";
4041 st,pwm-num-chan = <4>;
42+ st,capture-num-chan = <2>;
4143 };
Documentation/devicetree/bindings/pwm/pwm-sun4i.txt+1−0
@@ -6,6 +6,7 @@ Required properties: · 5 unmodified lines
66 - "allwinner,sun5i-a10s-pwm"
77 - "allwinner,sun5i-a13-pwm"
88 - "allwinner,sun7i-a20-pwm"
9+ - "allwinner,sun8i-h3-pwm"
910 - reg: physical base address and length of the controller's registers
1011 - #pwm-cells: should be 3. See pwm.txt in this directory for a description of
1112 the cells format.
Documentation/devicetree/bindings/regulator/ltc3676.txt+94−0
@@ -0,0 +1,94 @@
1+Linear Technology LTC3676 8-output regulators
2+
3+Required properties:
4+- compatible: "lltc,ltc3676"
5+- reg: I2C slave address
6+
7+Required 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+
12+Each regulator is defined using the standard binding for regulators. The
13+nodes for sw1, sw2, sw3, sw4, ldo1, ldo2 and ldo4 additionally need to specify
14+the resistor values of their external feedback voltage dividers:
15+
16+Required 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+
20+Regulators sw1, sw2, sw3, sw4 can regulate the feedback reference from:
21+412.5mV to 800mV in 12.5 mV steps. The output voltage thus ranges between
22+0.4125 * (1 + R1/R2) V and 0.8 * (1 + R1/R2) V.
23+
24+Regulators ldo1, ldo2, and ldo4 have a fixed 0.725 V reference and thus output
25+0.725 * (1 + R1/R2) V. The ldo3 regulator is fixed to 1.8 V. The ldo1 standby
26+regulator can not be disabled and thus should have the regulator-always-on
27+property set.
28+
29+Example:
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 @@
11 * Powerventure Semiconductor PV88080 Voltage Regulator
22
33 Required properties:
4−- compatible: "pvs,pv88080".
5−- reg: I2C slave address, usually 0x49.
4+- compatible: Must be one of the following, depending on the
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
612 - interrupts: the interrupt outputs of the controller
713 - regulators: A node that houses a sub-node for each regulator within the
814 device. Each sub-node is identified using the node's name, with valid
915 values listed below. The content of each sub-node is defined by the
1016 standard binding for regulators; see regulator.txt.
11− BUCK1, BUCK2, and BUCK3.
17+ BUCK1, BUCK2, BUCK3 and HVBUCK.
1218
1319 Optional properties:
1420 - Any optional property defined in regulator.txt
1521
16−Example
22+Example:
1723
1824 pmic: pv88080@49 {
19− compatible = "pvs,pv88080";
25+ compatible = "pvs,pv88080-ba";
2026 reg = <0x49>;
2127 interrupt-parent = <&gpio>;
2228 interrupts = <24 24>;
@@ -45,5 +51,12 @@ Example · 22 unmodified lines
4551 regulator-min-microamp = <1496000>;
4652 regulator-max-microamp = <4189000>;
4753 };
54+
55+ HVBUCK {
56+ regulator-name = "hvbuck";
57+ regulator-min-microvolt = < 5000>;
58+ regulator-max-microvolt = <1275000>;
59+ };
4860 };
4961 };
62+
Documentation/devicetree/bindings/regulator/regulator.txt+1−1
@@ -13,7 +13,7 @@ Optional properties: · 12 unmodified lines
1313 - regulator-allow-bypass: allow the regulator to go into bypass mode
1414 - regulator-allow-set-load: allow the regulator performance level to be configured
1515 - <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)
1717 For hardware which supports disabling ramp rate, it should be explicitly
1818 initialised to zero (regulator-ramp-delay = <0>) for disabling ramp delay.
1919 - 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 @@
1+Qualcomm WCNSS Peripheral Image Loader
2+
3+This document defines the binding for a component that loads and boots firmware
4+on 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
63+A single subnode of the WCNSS PIL describes the attached rf module and its
64+resource 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
94+The following example describes the resources needed to boot control the WCNSS,
95+with attached WCN3680, as it is commonly found on MSM8974 boards.
96+
97+pronto@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 @@
1+STMicroelectronics STM32 Peripheral Reset Controller
2+====================================================
3+
4+The RCC IP is both a reset and a clock controller.
5+
6+Please see Documentation/devicetree/bindings/clock/st,stm32-rcc.txt
Documentation/devicetree/bindings/reset/uniphier-reset.txt+93−0
@@ -0,0 +1,93 @@
1+UniPhier reset controller
2+
3+
4+System reset
5+------------
6+
7+Required 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+
19+Example:
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+
35+Media I/O (MIO) reset
36+---------------------
37+
38+Required 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+
50+Example:
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+
66+Peripheral reset
67+----------------
68+
69+Required 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+
80+Example:
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
1111 - trickle-diode-disable : Do not use internal trickle charger diode
1212 Should be given if internal trickle charger diode should be disabled
1313 Example:
14− ds1390: rtc@68 {
14+ ds1390: rtc@0 {
1515 compatible = "dallas,ds1390";
1616 trickle-resistor-ohms = <250>;
1717 reg = <0>;
Documentation/devicetree/bindings/rtc/epson,rx8900.txt+22−0
@@ -0,0 +1,22 @@
1+Real Time Clock driver for:
2+ - Epson RX8900
3+ - Micro Crystal rv8803
4+
5+Required properties:
6+- compatible: should be: "microcrystal,rv8803" or "epson,rx8900"
7+- reg : the I2C address of the device for I2C
8+
9+Optional 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+
15+Example:
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
1818 through pmic_power_en
1919 - clocks: Any internal or external clocks feeding in to rtc
2020 - 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+
24+Optional subnodes:
25+- generic pinctrl node
26+
27+Required pinctrl subnodes properties:
28+- pins - Names of ext_wakeup pins to configure
29+
30+Optional pinctrl subnodes properties:
31+- input-enable - Enables ext_wakeup
32+- ti,active-high - Set input active high (by default active low)
2133
2234 Example:
2335
@@ -30,4 +42,13 @@ rtc@1c23000 { · 6 unmodified lines
3042 system-power-controller;
3143 clocks = <&clk_32k_rtc>, <&clk_32768_ck>;
3244 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+ };
3354 };
Documentation/devicetree/bindings/serial/8250.txt+2−0
@@ -42,6 +42,8 @@ Optional properties: · 41 unmodified lines
4242 - auto-flow-control: one way to enable automatic flow control support. The
4343 driver is allowed to detect support for the capability even without this
4444 property.
45+- tx-threshold: Specify the TX FIFO low water indication for parts with
46+ programmable TX FIFO thresholds.
4547
4648 Note:
4749 * fsl,ns16550:
Documentation/devicetree/bindings/serial/st,stm32-usart.txt+46−0
@@ -0,0 +1,46 @@
1+* STMicroelectronics STM32 USART
2+
3+Required properties:
4+- compatible: Can be either "st,stm32-usart", "st,stm32-uart",
5+"st,stm32f7-usart" or "st,stm32f7-uart" depending on whether
6+the device supports synchronous mode and is compatible with
7+stm32(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+
12+Optional 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+
18+Examples:
19+usart4: 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+
28+usart2: 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+
38+usart1: 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 @@
1−MediaTek AUXADC
2−===============
3−
4−The Auxiliary Analog/Digital Converter (AUXADC) is an ADC found
5−in some Mediatek SoCs which among other things measures the temperatures
6−in the SoC. It can be used directly with register accesses, but it is also
7−used by thermal controller which reads the temperatures from the AUXADC
8−directly via its own bus interface. See
9−Documentation/devicetree/bindings/thermal/mediatek-thermal.txt
10−for the Thermal Controller which holds a phandle to the AUXADC.
11−
12−Required properties:
13−- compatible: Must be "mediatek,mt8173-auxadc"
14−- reg: Address range of the AUXADC unit
15−
16−Example:
17−
18−auxadc: 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 @@
1+NAU8810 audio CODEC
2+
3+This device supports I2C only.
4+
5+Required properties:
6+
7+ - compatible : "nuvoton,nau8810"
8+
9+ - reg : the I2C address of the device.
10+
11+Example:
12+
13+codec: 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 @@
1+NVIDIA Tegra audio complex, with SGTL5000 CODEC
2+
3+Required 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+
26+Example:
27+
28+sound {
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
1616 * "spkr-iomux"
1717 - qcom,model : Name of the sound card.
1818
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+
1937 Dai-link subnode properties and subnodes:
2038
2139 Required dai-link subnodes:
@@ -37,6 +55,18 @@ sound: sound { · 15 unmodified lines
3755 reg-names = "mic-iomux", "spkr-iomux";
3856 qcom,model = "DB410c";
3957
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+
4070 /* I2S - Internal codec */
4171 internal-dai-link@0 {
4272 cpu { /* PRIMARY */
Documentation/devicetree/bindings/sound/renesas,rsrc-card.txt+0−75
@@ -1,75 +0,0 @@
1−Renesas Sampling Rate Convert Sound Card:
2−
3−Renesas Sampling Rate Convert Sound Card specifies audio DAI connections of SoC <-> codec.
4−
5−Required 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"
12−Optional 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−
19−Optional 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−
41−Required CPU/CODEC subnodes properties:
42−
43−- sound-dai : phandle and port of CPU/CODEC
44−
45−Optional 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−
57−Example
58−
59−sound {
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 @@
1+ROCKCHIP with MAX98357A/RT5514/DA7219 codecs on GRU boards
2+
3+Required 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+
9+Optional 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+
15+Example:
16+
17+sound {
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
1212
1313 Optional properties:
1414
15+- clocks: The phandle of the master clock to the CODEC
16+- clock-names: Should be "mclk"
17+
1518 - realtek,in1-differential
1619 - realtek,in3-differential
1720 - realtek,in4-differential
Documentation/devicetree/bindings/sound/rt5660.txt+47−0
@@ -0,0 +1,47 @@
1+RT5660 audio CODEC
2+
3+This device supports I2C only.
4+
5+Required properties:
6+
7+- compatible : "realtek,rt5660".
8+
9+- reg : The I2C address of the device.
10+
11+Optional 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+
29+Pins 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+
42+Example:
43+
44+rt5660 {
45+ compatible = "realtek,rt5660";
46+ reg = <0x1c>;
47+};
Documentation/devicetree/bindings/sound/rt5663.txt+30−0
@@ -0,0 +1,30 @@
1+RT5663/RT5668 audio CODEC
2+
3+This device supports I2C only.
4+
5+Required 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+
13+Optional properties:
14+
15+Pins 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+
24+Example:
25+
26+codec: 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
2222 headphones are attached.
2323 - simple-audio-card,mic-det-gpio : Reference to GPIO that signals when
2424 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.
2527
2628 Optional subnodes:
2729
@@ -162,3 +164,38 @@ sound { · 134 unmodified lines
162164 };
163165 };
164166 };
167+
168+Example 3 - route audio from IMX6 SSI2 through TLV320DAC3100 codec
169+through 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+
183+sound {
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 @@
1+ASoC simple SCU Sound Card
2+
3+Simple-Card specifies audio DAI connections of SoC <-> codec.
4+
5+Required properties:
6+
7+- compatible : "simple-scu-audio-card"
8+ "renesas,rsrc-card"
9+
10+Optional 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+
17+Optional 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+
39+Required CPU/CODEC subnodes properties:
40+
41+- sound-dai : phandle and port of CPU/CODEC
42+
43+Optional 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+
55+Example 1. Sampling Rate Covert
56+
57+sound {
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+
82+Example 2. 2 CPU 1 Codec
83+
84+sound {
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
1111 ---------------------------------------
1212
1313 Required 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",
1517
1618 - st,syscfg: phandle to boot-device system configuration registers
1719
@@ -33,32 +35,24 @@ Required properties: · 15 unmodified lines
3335 "tx" for "st,sti-uni-player" compatibility
3436 "rx" for "st,sti-uni-reader" compatibility
3537
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−
4638 Required properties ("st,sti-uni-player" compatibility only):
4739 - clocks: CPU_DAI IP clock source, listed in the same order than the
4840 CPU_DAI properties.
4941
50− - st,uniperiph-id: internal SOC IP instance ID.
51−
5242 Optional properties:
5343 - pinctrl-0: defined for CPU_DAI@1 and CPU_DAI@4 to describe I2S PIOs for
5444 external codecs connection.
5545
5646 - pinctrl-names: should contain only one value - "default".
5747
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+
5852 Example:
5953
60− sti_uni_player1: sti-uni-player@1 {
61− compatible = "st,sti-uni-player";
54+ sti_uni_player1: sti-uni-player@0x8D81000 {
55+ compatible = "st,stih407-uni-player-hdmi";
6256 status = "okay";
6357 #sound-dai-cells = <0>;
6458 st,syscfg = <&syscfg_core>;
@@ -66,15 +60,12 @@ Example: · 1 unmodified line
6660 reg = <0x8D81000 0x158>;
6761 interrupts = <GIC_SPI 85 IRQ_TYPE_NONE>;
6862 dmas = <&fdma0 3 0 1>;
69− st,dai-name = "Uni Player #1 (I2S)";
7063 dma-names = "tx";
71− st,uniperiph-id = <1>;
72− st,version = <5>;
73− st,mode = "TDM";
64+ st,tdm-mode = <1>;
7465 };
7566
76− sti_uni_player2: sti-uni-player@2 {
77− compatible = "st,sti-uni-player";
67+ sti_uni_player2: sti-uni-player@0x8D82000 {
68+ compatible = "st,stih407-uni-player-pcm-out";
7869 status = "okay";
7970 #sound-dai-cells = <0>;
8071 st,syscfg = <&syscfg_core>;
@@ -82,15 +73,11 @@ Example: · 1 unmodified line
8273 reg = <0x8D82000 0x158>;
8374 interrupts = <GIC_SPI 86 IRQ_TYPE_NONE>;
8475 dmas = <&fdma0 4 0 1>;
85− dai-name = "Uni Player #2 (DAC)";
8676 dma-names = "tx";
87− st,uniperiph-id = <2>;
88− st,version = <5>;
89− st,mode = "PCM";
9077 };
9178
92− sti_uni_player3: sti-uni-player@3 {
93− compatible = "st,sti-uni-player";
79+ sti_uni_player3: sti-uni-player@0x8D85000 {
80+ compatible = "st,stih407-uni-player-spdif";
9481 status = "okay";
9582 #sound-dai-cells = <0>;
9683 st,syscfg = <&syscfg_core>;
@@ -99,14 +86,10 @@ Example: · 2 unmodified lines
9986 interrupts = <GIC_SPI 89 IRQ_TYPE_NONE>;
10087 dmas = <&fdma0 7 0 1>;
10188 dma-names = "tx";
102− dai-name = "Uni Player #3 (SPDIF)";
103− st,uniperiph-id = <3>;
104− st,version = <5>;
105− st,mode = "SPDIF";
10689 };
10790
108− sti_uni_reader1: sti-uni-reader@1 {
109− compatible = "st,sti-uni-reader";
91+ sti_uni_reader1: sti-uni-reader@0x8D84000 {
92+ compatible = "st,stih407-uni-reader-hdmi";
11093 status = "disabled";
11194 #sound-dai-cells = <0>;
11295 st,syscfg = <&syscfg_core>;
@@ -114,9 +97,6 @@ Example: · 1 unmodified line
11497 interrupts = <GIC_SPI 88 IRQ_TYPE_NONE>;
11598 dmas = <&fdma0 6 0 1>;
11699 dma-names = "rx";
117− dai-name = "Uni Reader #1 (HDMI RX)";
118− st,version = <3>;
119− st,mode = "PCM";
120100 };
121101
122102 2) 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
99
1010 - compatible : should be one of the following:
1111 - "allwinner,sun4i-a10-spdif": for the Allwinner A10 SoC
12+ - "allwinner,sun6i-a31-spdif": for the Allwinner A31 SoC
1213
1314 - reg : Offset and length of the register set for the device.
1415
@@ -25,6 +26,8 @@ Required properties: · 10 unmodified lines
2526 "apb" clock for the spdif bus.
2627 "spdif" clock for spdif controller.
2728
29+ - resets : reset specifier for the ahb reset (A31 and newer only)
30+
2831 Example:
2932
3033 spdif: spdif@01c21000 {
Documentation/devicetree/bindings/sound/tlv320aic31xx.txt+6−3
@@ -11,6 +11,7 @@ Required properties: · 10 unmodified lines
1111 "ti,tlv320aic3110" - TLV320AIC3110 (stereo speaker amp, no MiniDSP)
1212 "ti,tlv320aic3120" - TLV320AIC3120 (mono speaker amp, MiniDSP)
1313 "ti,tlv320aic3111" - TLV320AIC3111 (stereo speaker amp, MiniDSP)
14+ "ti,tlv320dac3100" - TLV320DAC3100 (no ADC, mono speaker amp, no MiniDSP)
1415
1516 - reg - <int> - I2C slave address
1617 - HPVDD-supply, SPRVDD-supply, SPLVDD-supply, AVDD-supply, IOVDD-supply,
@@ -37,9 +38,11 @@ CODEC output pins: · 20 unmodified lines
3738 * MICBIAS
3839
3940 CODEC input pins:
40− * MIC1LP
41− * MIC1RP
42− * MIC1LM
41+ * MIC1LP, devices with ADC
42+ * MIC1RP, devices with ADC
43+ * MIC1LM, devices with ADC
44+ * AIN1, devices without ADC
45+ * AIN2, devices without ADC
4346
4447 The pins can be used in referring sound node's audio-routing property.
4548
Documentation/devicetree/bindings/spi/brcm,spi-bcm-qspi.txt+233−0
@@ -0,0 +1,233 @@
1+Broadcom SPI controller
2+
3+The Broadcom SPI controller is a SPI master found on various SOCs, including
4+BRCMSTB (BCM7XXX), Cygnus, NSP and NS2. The Broadcom Master SPI hw IP consits
5+of :
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+
16+Required 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+
60+Optional properties:
61+
62+
63+- native-endian
64+ Defined when using BE SoC and device uses BE register read/write
65+
66+Recommended optional m25p80 properties:
67+- spi-rx-bus-width: Definition as per
68+ Documentation/devicetree/bindings/spi/spi-bus.txt
69+
70+Examples:
71+
72+BRCMSTB 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+
150+iProc 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 @@
1+J-Core SPI master
2+
3+Required 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+
13+Optional 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+
22+See spi-bus.txt for additional properties not specific to this device.
23+
24+Example:
25+
26+spi@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
3131 So if for example the controller has 2 CS lines, and the cs-gpios
3232 property looks like this:
3333
34−cs-gpios = <&gpio1 0 0> <0> <&gpio1 1 0> <&gpio1 2 0>;
34+cs-gpios = <&gpio1 0 0>, <0>, <&gpio1 1 0>, <&gpio1 2 0>;
3535
3636 Then it should be configured so that num_chipselect = 4 with the
3737 following 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
77 receive buffer.
88
99 Required properties:
10− - compatible: should be "amlogic,meson6-spifc"
10+ - compatible: should be "amlogic,meson6-spifc" or "amlogic,meson-gxbb-spifc"
1111 - reg: physical base address and length of the controller registers
1212 - clocks: phandle of the input clock for the baud rate generator
1313 - #address-cells: should be 1
Documentation/devicetree/bindings/thermal/max77620_thermal.txt+70−0
@@ -0,0 +1,70 @@
1+Thermal driver for MAX77620 Power management IC from Maxim Semiconductor.
2+
3+Maxim Semiconductor MAX77620 supports alarm interrupts when its
4+die temperature crosses 120C and 140C. These threshold temperatures
5+are not configurable. Device does not provide the real temperature
6+of die other than just indicating whether temperature is above or
7+below threshold level.
8+
9+Required properties:
10+-------------------
11+#thermal-sensor-cells: Please refer <devicetree/bindings/thermal/thermal.txt>
12+ for more details.
13+ The value must be 0.
14+
15+For more details, please refer generic thermal DT binding document
16+<devicetree/bindings/thermal/thermal.txt>.
17+
18+Please refer <devicetree/bindings/mfd/max77620.txt> for mfd DT binding
19+document for the MAX77620.
20+
21+Example:
22+--------
23+#include <dt-bindings/mfd/max77620.h>
24+#include <dt-bindings/thermal/thermal.h>
25+...
26+
27+i2c@7000d000 {
28+ spmic: max77620@3c {
29+ compatible = "maxim,max77620";
30+ :::::
31+ #thermal-sensor-cells = <0>;
32+ :::
33+ };
34+};
35+
36+cool_dev: cool-dev {
37+ compatible = "cooling-dev";
38+ #cooling-cells = <2>;
39+};
40+
41+thermal-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
88 is also needed.
99
1010 Required 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
1214 - reg: Address range of the thermal controller
1315 - interrupts: IRQ for the thermal controller
1416 - 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
1010 - compatible : For Tegra124, must contain "nvidia,tegra124-soctherm".
1111 For Tegra132, must contain "nvidia,tegra132-soctherm".
1212 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:
1414 - 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
1521 - interrupts : Defines the interrupt used by SOCTHERM
1622 - clocks : Must contain an entry for each entry in clock-names.
1723 See ../clocks/clock-bindings.txt for details.
@@ -25,17 +31,45 @@ Required properties : · 7 unmodified lines
2531 - #thermal-sensor-cells : Should be 1. See ./thermal.txt for a description
2632 of this property. See <dt-bindings/thermal/tegra124-soctherm.h> for a
2733 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.
2857
2958 Note:
3059 - the "critical" type trip points will be set to SOC_THERM hardware as the
3160 shut down temperature. Once the temperature of this thermal zone is higher
3261 than 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
63+temperature. Once the the temperature of this thermal zone is higher
64+than it, it will trigger the HW throttle event.
3365
3466 Example :
3567
3668 soctherm@700e2000 {
3769 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";
3973 interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
4074 clocks = <&tegra_car TEGRA124_CLK_TSENSOR>,
4175 <&tegra_car TEGRA124_CLK_SOC_THERM>;
@@ -44,6 +78,76 @@ Example : · 2 unmodified lines
4478 reset-names = "soctherm";
4579
4680 #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+
113+Example: 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+ };
47151 };
48152
49153 Example: referring to thermal sensors :
@@ -62,6 +166,19 @@ Example: referring to thermal sensors : · 12 unmodified lines
62166 hysteresis = <1000>;
63167 type = "critical";
64168 };
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+ };
65182 };
66183 };
67184 };
Documentation/devicetree/bindings/thermal/qcom-tsens.txt+21−0
@@ -0,0 +1,21 @@
1+* QCOM SoC Temperature Sensor (TSENS)
2+
3+Required 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
12+nvmem cells
13+
14+Example:
15+tsens: 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 @@
1+J-Core Programmable Interval Timer and Clocksource
2+
3+Required 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+
18+Example:
19+
20+timer@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
22
33 Required properties:
44
5−- compatible : Must be "moxa,moxart-timer"
5+- compatible : Must be one of:
6+ - "moxa,moxart-timer"
7+ - "aspeed,ast2400-timer"
68 - reg : Should contain registers location and length
79 - interrupts : Should contain the timer interrupt number
810 - 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
22 ================================================
33
44 Required properties:
5−- compatible: Should be "oxsemi,ox810se-rps-timer"
5+- compatible: Should be "oxsemi,ox810se-rps-timer" or "oxsemi,ox820-rps-timer"
66 - reg : Specifies base physical address and size of the registers.
77 - interrupts : The interrupts of the two timers
88 - 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
8181 - fsl,usbmisc: phandler of non-core register device, with one
8282 argument that indicate usb controller index
8383 - 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.
8486 - external-vbus-divider: enables off-chip resistor divider for Vbus
8587
8688 Example:
Documentation/devicetree/bindings/usb/dwc2.txt+6−1
@@ -10,6 +10,8 @@ Required properties: · 9 unmodified lines
1010 - "rockchip,rk3288-usb", "rockchip,rk3066-usb", "snps,dwc2": for rk3288 Soc;
1111 - "lantiq,arx100-usb": The DWC2 USB controller instance in Lantiq ARX SoCs;
1212 - "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;
1315 - snps,dwc2: A generic DWC2 USB controller with default parameters.
1416 - reg : Should contain 1 register range (address and length)
1517 - interrupts : Should contain 1 interrupt
@@ -26,7 +28,10 @@ Refer to phy/phy-bindings.txt for generic phy consumer properties · 10 unmodified lines
2628 - g-use-dma: enable dma usage in gadget driver.
2729 - g-rx-fifo-size: size of rx fifo size in gadget mode.
2830 - 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+
32+Deprecated properties:
33+- g-tx-fifo-size: size of periodic tx fifo per endpoint (except ep0)
34+ in gadget mode.
3035
3136 Example:
3237
Documentation/devicetree/bindings/usb/dwc3-cavium.txt+28−0
@@ -0,0 +1,28 @@
1+Cavium SuperSpeed DWC3 USB SoC controller
2+
3+Required properties:
4+- compatible: Should contain "cavium,octeon-7130-usb-uctl"
5+
6+Required child node:
7+A child node must exist to represent the core DWC3 IP block. The name of
8+the node is not important. The content of the node is defined in dwc3.txt.
9+
10+Example 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
1313 in the array is expected to be a handle to the USB2/HS PHY and
1414 the second element is expected to be a handle to the USB3/SS PHY
1515 - phys: from the *Generic PHY* bindings
16− - phy-names: from the *Generic PHY* bindings
16+ - phy-names: from the *Generic PHY* bindings; supported names are "usb2-phy"
17+ or "usb3-phy".
1718 - snps,usb3_lpm_capable: determines if platform is USB3 LPM capable
1819 - snps,disable_scramble_quirk: true when SW should disable data scrambling.
1920 Only really useful for FPGA builds.
@@ -39,6 +40,11 @@ Optional properties: · 19 unmodified lines
3940 disabling the suspend signal to the PHY.
4041 - snps,dis_rxdet_inp3_quirk: when set core will disable receiver detection
4142 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.
4248 - snps,is-utmi-l1-suspend: true when DWC3 asserts output signal
4349 utmi_l1_suspend_n, false when asserts utmi_sleep_n
4450 - snps,hird-threshold: HIRD threshold
Documentation/devicetree/bindings/usb/generic.txt+6−0
@@ -11,6 +11,11 @@ Optional properties: · 10 unmodified lines
1111 "peripheral" and "otg". In case this attribute isn't
1212 passed via DT, USB DRD controllers should default to
1313 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.
1419 - otg-rev: tells usb driver the release number of the OTG and EH supplement
1520 with which the device and its descriptors are compliant,
1621 in binary-coded decimal (i.e. 2.0 is 0200H). This
@@ -34,6 +39,7 @@ dwc3@4a030000 { · 17 unmodified lines
3439 usb-phy = <&usb2_phy>, <&usb3,phy>;
3540 maximum-speed = "super-speed";
3641 dr_mode = "otg";
42+ phy_type = "utmi_wide";
3743 otg-rev = <0x0200>;
3844 adp-disable;
3945 };
Documentation/devicetree/bindings/usb/renesas_usbhs.txt+1−0
@@ -9,6 +9,7 @@ Required properties: · 8 unmodified lines
99 - "renesas,usbhs-r8a7793" for r8a7793 (R-Car M2-N) compatible device
1010 - "renesas,usbhs-r8a7794" for r8a7794 (R-Car E2) compatible device
1111 - "renesas,usbhs-r8a7795" for r8a7795 (R-Car H3) compatible device
12+ - "renesas,usbhs-r8a7796" for r8a7796 (R-Car M3-W) compatible device
1213 - "renesas,rcar-gen2-usbhs" for R-Car Gen2 compatible device
1314 - "renesas,rcar-gen3-usbhs" for R-Car Gen3 compatible device
1415
Documentation/devicetree/bindings/usb/rockchip,dwc3.txt+59−0
@@ -0,0 +1,59 @@
1+Rockchip SuperSpeed DWC3 USB SoC controller
2+
3+Required 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+
14+Required child node:
15+A child node must exist to represent the core DWC3 IP block. The name of
16+the node is not important. The content of the node is defined in dwc3.txt.
17+
18+Phy documentation is provided in the following places:
19+Documentation/devicetree/bindings/phy/rockchip,dwc3-usb-phy.txt
20+
21+Example 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 @@
1+SMSC USB4604 High-Speed Hub Controller
2+
3+Required properties:
4+- compatible: Should be "smsc,usb4604"
5+
6+Optional 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+
13+Examples:
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
66 "fsl,imx6q-usbmisc" for imx6q
77 "fsl,vf610-usbmisc" for Vybrid vf610
88 "fsl,imx6sx-usbmisc" for imx6sx
9+ "fsl,imx7d-usbmisc" for imx7d
910 - reg: Should contain registers location and length
1011
1112 Examples:
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
33 This isn't an exhaustive list, but you should add new prefixes to it before
44 using them to avoid name-space collisions.
55
6−abilis Abilis Systems
76 abcn Abracon Corporation
7+abilis Abilis Systems
88 active-semi Active-Semi International Inc
99 ad Avionic Design GmbH
1010 adapteva Adapteva, Inc.
@@ -36,6 +36,7 @@ aspeed ASPEED Technology Inc. · 25 unmodified lines
3636 atlas Atlas Scientific LLC
3737 atmel Atmel Corporation
3838 auo AU Optronics Corporation
39+auvidea Auvidea GmbH
3940 avago Avago Technologies
4041 avic Shanghai AVIC Optoelectronics Co., Ltd.
4142 axis Axis Communications AB
@@ -75,6 +76,7 @@ digilent Diglent, Inc. · 33 unmodified lines
7576 dlg Dialog Semiconductor
7677 dlink D-Link Corporation
7778 dmo Data Modul AG
79+domintech Domintech Co., Ltd.
7880 dptechnics DPTechnics
7981 dragino Dragino Technology Co., Limited
8082 ea Embedded Artists AB
@@ -85,6 +87,7 @@ elan Elan Microelectronic Corp. · 4 unmodified lines
8587 embest Shenzhen Embest Technology Co., Ltd.
8688 emmicro EM Microelectronic
8789 energymicro Silicon Laboratories (formerly Energy Micro AS)
90+engicam Engicam S.r.l.
8891 epcos EPCOS AG
8992 epfl Ecole Polytechnique Fédérale de Lausanne
9093 epson Seiko Epson Corp.
@@ -98,11 +101,12 @@ ezchip EZchip Semiconductor · 7 unmodified lines
98101 fcs Fairchild Semiconductor
99102 firefly Firefly
100103 focaltech FocalTech Systems Co.,Ltd
104+friendlyarm Guangzhou FriendlyARM Computer Tech Co., Ltd
101105 fsl Freescale Semiconductor
102106 ge General Electric Company
103107 geekbuying GeekBuying
104−GEFanuc GE Fanuc Intelligent Platforms Embedded Systems, Inc.
105108 gef GE Fanuc Intelligent Platforms Embedded Systems, Inc.
109+GEFanuc GE Fanuc Intelligent Platforms Embedded Systems, Inc.
106110 geniatech Geniatech, Inc.
107111 giantplus Giantplus Technology Co., Ltd.
108112 globalscale Globalscale Technologies, Inc.
@@ -126,7 +130,6 @@ i2se I2SE GmbH · 17 unmodified lines
126130 ibm International Business Machines (IBM)
127131 idt Integrated Device Technologies, Inc.
128132 ifi Ingenieurburo Fur Ic-Technologie (I/F/I)
129−iom Iomega Corporation
130133 img Imagination Technologies Ltd.
131134 infineon Infineon Technologies
132135 inforce Inforce Computing
@@ -135,11 +138,15 @@ innolux Innolux Corporation · 2 unmodified lines
135138 intel Intel Corporation
136139 intercontrol Inter Control Group
137140 invensense InvenSense Inc.
141+inversepath Inverse Path
142+iom Iomega Corporation
138143 isee ISEE 2007 S.L.
139144 isil Intersil
140145 issi Integrated Silicon Solutions Inc.
146+jdi Japan Display Inc.
141147 jedec JEDEC Solid State Technology Association
142148 karo Ka-Ro electronics GmbH
149+keithkoep Keith & Koep GmbH
143150 keymile Keymile GmbH
144151 kinetic Kinetic Technologies
145152 kosagi Sutajio Ko-Usagi PTE Ltd.
@@ -149,16 +156,18 @@ lantiq Lantiq Semiconductor · 3 unmodified lines
149156 lenovo Lenovo Group Ltd.
150157 lg LG Corporation
151158 linux Linux-specific binding
152−lsi LSI Corp. (LSI Logic)
153159 lltc Linear Technology Corporation
160+lsi LSI Corp. (LSI Logic)
154161 marvell Marvell Technology Group Ltd.
155162 maxim Maxim Integrated Products
156163 meas Measurement Specialties
157164 mediatek MediaTek Inc.
158165 melexis Melexis N.V.
166+melfas MELFAS Inc.
159167 merrii Merrii Technology Co., Ltd.
160168 micrel Micrel Inc.
161169 microchip Microchip Technology Inc.
170+microcrystal Micro Crystal AG
162171 micron Micron Technology Inc.
163172 minix MINIX Technology Ltd.
164173 mitsubishi Mitsubishi Electric Corporation
@@ -190,20 +199,20 @@ onnn ON Semiconductor Corp. · 25 unmodified lines
190199 ontat On Tat Industrial Company
191200 opencores OpenCores.org
192201 option Option NV
202+ORCL Oracle Corporation
193203 ortustech Ortus Technology Co., Ltd.
194204 ovti OmniVision Technologies
195−ORCL Oracle Corporation
196205 oxsemi Oxford Semiconductor, Ltd.
197206 panasonic Panasonic Corporation
198207 parade Parade Technologies Inc.
199208 pericom Pericom Technology Inc.
200209 phytec PHYTEC Messtechnik GmbH
201210 picochip Picochip Ltd
211+pixcir PIXCIR MICROELECTRONICS Co., Ltd
202212 plathome Plat'Home Co., Ltd.
203213 plda PLDA
204−pixcir PIXCIR MICROELECTRONICS Co., Ltd
205−pulsedlight PulsedLight, Inc
206214 powervr PowerVR (deprecated, use img)
215+pulsedlight PulsedLight, Inc
207216 qca Qualcomm Atheros, Inc.
208217 qcom Qualcomm Technologies, Inc
209218 qemu QEMU, a generic and open source machine emulator and virtualizer
@@ -231,12 +240,13 @@ sgx SGX Sensortech · 21 unmodified lines
231240 sharp Sharp Corporation
232241 si-en Si-En Technology Ltd.
233242 sigma Sigma Designs, Inc.
243+sii Seiko Instruments, Inc.
234244 sil Silicon Image
235245 silabs Silicon Laboratories
246+silead Silead Inc.
247+silergy Silergy Corp.
236248 siliconmitus Silicon Mitus, Inc.
237249 simtek
238−sii Seiko Instruments, Inc.
239−silergy Silergy Corp.
240250 sirf SiRF Technology, Inc.
241251 sis Silicon Integrated Systems Corp.
242252 sitronix Sitronix Technology Corporation
@@ -254,9 +264,12 @@ starry Starry Electronic Technology (ShenZhen) Co., LTD · 11 unmodified lines
254264 startek Startek
255265 ste ST-Ericsson
256266 stericsson ST-Ericsson
267+summit Summit microelectronics
268+sunchip Shenzhen Sunchip Technology Co., Ltd
269+SUNW Sun Microsystems, Inc
270+swir Sierra Wireless
257271 syna Synaptics Inc.
258272 synology Synology, Inc.
259−SUNW Sun Microsystems, Inc
260273 tbs TBS Technologies
261274 tcg Trusted Computing Group
262275 tcl Toby Churchill Ltd.
@@ -265,17 +278,19 @@ technologic Technologic Systems · 2 unmodified lines
265278 thine THine Electronics, Inc.
266279 ti Texas Instruments
267280 tlm Trusted Logic Mobility
281+topeet Topeet
268282 toradex Toradex AG
269283 toshiba Toshiba Corporation
270284 toumaz Toumaz
271−tplink TP-LINK Technologies Co., Ltd.
272285 tpk TPK U.S.A. LLC
286+tplink TP-LINK Technologies Co., Ltd.
287+tpo TPO
273288 tronfy Tronfy
274289 tronsmart Tronsmart
275290 truly Truly Semiconductors Limited
276291 tyan Tyan Computer Corporation
277−upisemi uPI Semiconductor Corp.
278292 uniwest United Western Technologies Corp (UniWest)
293+upisemi uPI Semiconductor Corp.
279294 urt United Radiant Technology Corporation
280295 usi Universal Scientific Industrial Co., Ltd.
281296 v3 V3 Semiconductor
@@ -293,7 +308,7 @@ x-powers X-Powers · 11 unmodified lines
293308 xes Extreme Engineering Solutions (X-ES)
294309 xillybus Xillybus Ltd.
295310 xlnx Xilinx
296−zyxel ZyXEL Communications Corp.
297311 zarlink Zarlink Semiconductor
298312 zii Zodiac Inflight Innovations
299313 zte ZTE Corp.
314+zyxel ZyXEL Communications Corp.
Documentation/devicetree/bindings/watchdog/of-xilinx-wdt.txt+3−0
@@ -7,6 +7,8 @@ Required properties: · 6 unmodified lines
77 - reg : Physical base address and size
88
99 Optional properties:
10+- clocks : Input clock specifier. Refer to common clock
11+ bindings.
1012 - clock-frequency : Frequency of clock in Hz
1113 - xlnx,wdt-enable-once : 0 - Watchdog can be restarted
1214 1 - Watchdog can be enabled just once
@@ -17,6 +19,7 @@ Example: · 4 unmodified lines
1719 axi-timebase-wdt@40100000 {
1820 clock-frequency = <50000000>;
1921 compatible = "xlnx,xps-timebase-wdt-1.00.a";
22+ clocks = <&clkc 15>;
2023 reg = <0x40100000 0x10000>;
2124 xlnx,wdt-enable-once = <0x0>;
2225 xlnx,wdt-interval = <0x1b>;
Documentation/devicetree/bindings/watchdog/st_lpc_wdt.txt+1−2
@@ -9,8 +9,7 @@ functionality. · 8 unmodified lines
99
1010 Required properties
1111
12−- compatible : Must be one of: "st,stih407-lpc" "st,stih416-lpc"
13− "st,stih415-lpc" "st,stid127-lpc"
12+- compatible : Should be: "st,stih407-lpc"
1413 - reg : LPC registers base address + size
1514 - interrupts : LPC interrupt line number and associated flags
1615 - 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
2121 All the change operations are recorded in the of_changeset 'entries'
2222 list.
2323
24−3. mutex_lock(of_mutex) - starts a changeset; The global of_mutex
25−ensures there can only be one editor at a time.
26−
27−4. of_changeset_apply() - Apply the changes to the tree. Either the
24+3. of_changeset_apply() - Apply the changes to the tree. Either the
2825 entire changeset will get applied, or if there is an error the tree will
29−be restored to the previous state
30−
31−5. mutex_unlock(of_mutex) - All operations complete, release the mutex
26+be restored to the previous state. The core ensures proper serialization
27+through locking. An unlocked version __of_changeset_apply is available,
28+if needed.
3229
3330 If a successfully applied changeset needs to be removed, it can be done
34−with the following sequence.
35−
36−1. mutex_lock(of_mutex)
37−
38−2. of_changeset_revert()
39−
40−3. mutex_unlock(of_mutex)
31+with of_changeset_revert().
Documentation/dmaengine/provider.txt+11−0
@@ -282,6 +282,17 @@ supported. · 281 unmodified lines
282282 that is supposed to push the current
283283 transaction descriptor to a pending queue, waiting
284284 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.
285296
286297 * device_issue_pending
287298 - 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]
7+halt_level: severe
Documentation/driver-api/basics.rst+120−0
@@ -0,0 +1,120 @@
1+Driver Basics
2+=============
3+
4+Driver Entry and Exit points
5+----------------------------
6+
7+.. kernel-doc:: include/linux/init.h
8+ :internal:
9+
10+Atomic and pointer manipulation
11+-------------------------------
12+
13+.. kernel-doc:: arch/x86/include/asm/atomic.h
14+ :internal:
15+
16+Delaying, 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+
37+Wait 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+
46+High-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+
58+Workqueues and Kevents
59+----------------------
60+
61+.. kernel-doc:: include/linux/workqueue.h
62+ :internal:
63+
64+.. kernel-doc:: kernel/workqueue.c
65+ :export:
66+
67+Internal 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+
82+Kernel objects manipulation
83+---------------------------
84+
85+.. kernel-doc:: lib/kobject.c
86+ :export:
87+
88+Kernel 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+
115+Device 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 @@
1+Frame Buffer Library
2+====================
3+
4+The frame buffer drivers depend heavily on four data structures. These
5+structures are declared in include/linux/fb.h. They are fb_info,
6+fb_var_screeninfo, fb_fix_screeninfo and fb_monospecs. The last
7+three can be made available to and from userland.
8+
9+fb_info defines the current state of a particular video card. Inside
10+fb_info, there exists a fb_ops structure which is a collection of
11+needed functions to make fbdev and fbcon work. fb_info is only visible
12+to the kernel.
13+
14+fb_var_screeninfo is used to describe the features of a video card
15+that are user defined. With fb_var_screeninfo, things such as depth
16+and the resolution may be defined.
17+
18+The next structure is fb_fix_screeninfo. This defines the properties
19+of a card that are created when a mode is set and can't be changed
20+otherwise. A good example of this is the start of the frame buffer
21+memory. This "locks" the address of the frame buffer memory, so that it
22+cannot be changed or moved.
23+
24+The last structure is fb_monospecs. In the old API, there was little
25+importance for fb_monospecs. This allowed for forbidden things such as
26+setting a mode of 800x600 on a fix frequency monitor. With the new API,
27+fb_monospecs prevents such things, and if used correctly, can prevent a
28+monitor from being cooked. fb_monospecs will not be useful until
29+kernels 2.5.x.
30+
31+Frame Buffer Memory
32+-------------------
33+
34+.. kernel-doc:: drivers/video/fbdev/core/fbmem.c
35+ :export:
36+
37+Frame Buffer Colormap
38+---------------------
39+
40+.. kernel-doc:: drivers/video/fbdev/core/fbcmap.c
41+ :export:
42+
43+Frame 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+
52+Frame Buffer Macintosh Video Mode Database
53+------------------------------------------
54+
55+.. kernel-doc:: drivers/video/fbdev/macmodes.c
56+ :export:
57+
58+Frame Buffer Fonts
59+------------------
60+
61+Refer to the file lib/fonts/fonts.c for more information.
62+
Documentation/driver-api/hsi.rst+88−0
@@ -0,0 +1,88 @@
1+High Speed Synchronous Serial Interface (HSI)
2+=============================================
3+
4+Introduction
5+---------------
6+
7+High Speed Syncronous Interface (HSI) is a fullduplex, low latency protocol,
8+that is optimized for die-level interconnect between an Application Processor
9+and a Baseband chipset. It has been specified by the MIPI alliance in 2003 and
10+implemented by multiple vendors since then.
11+
12+The HSI interface supports full duplex communication over multiple channels
13+(typically 8) and is capable of reaching speeds up to 200 Mbit/s.
14+
15+The serial protocol uses two signals, DATA and FLAG as combined data and clock
16+signals and an additional READY signal for flow control. An additional WAKE
17+signal can be used to wakeup the chips from standby modes. The signals are
18+commonly prefixed by AC for signals going from the application die to the
19+cellular 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+
40+HSI Subsystem in Linux
41+-------------------------
42+
43+In the Linux kernel the hsi subsystem is supposed to be used for HSI devices.
44+The hsi subsystem contains drivers for hsi controllers including support for
45+multi-port controllers and provides a generic API for using the HSI ports.
46+
47+It also contains HSI client drivers, which make use of the generic API to
48+implement a protocol used on the HSI interface. These client drivers can
49+use an arbitrary number of channels.
50+
51+hsi-char Device
52+------------------
53+
54+Each port automatically registers a generic client driver called hsi_char,
55+which provides a charecter device for userspace representing the HSI port.
56+It can be used to communicate via HSI from userspace. Userspace may
57+configure the hsi_char device using the following ioctl commands:
58+
59+HSC_RESET
60+ flush the HSI port
61+
62+HSC_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