History

Merge drm/drm-next into drm-intel-next-queued

Pull in v4.20-rc3 via drm-next.

Jani Nikula committed 7 years ago

Commit 2ac5e382 parents f48cc64 9235dd410556 files · +521421 −238659Browse files

Unified · Split

3201 files
  1. .clang-format +0 −1
  2. .mailmap +13 −0
  3. CREDITS +4 −0
  4. Documentation/00-INDEX +0 −428
  5. Documentation/ABI/stable/sysfs-driver-usb-usbtmc +0 −35
  6. Documentation/ABI/testing/configfs-stp-policy-p_sys-t +41 −0
  7. Documentation/ABI/testing/configfs-usb-gadget-uvc +24 −0
  8. Documentation/ABI/testing/sysfs-bus-iio +1 −1
  9. Documentation/ABI/testing/sysfs-bus-pci +24 −0
  10. Documentation/ABI/testing/sysfs-bus-usb +18 −1
  11. Documentation/ABI/testing/sysfs-bus-vmbus +21 −0
  12. Documentation/ABI/testing/sysfs-class-lcd-s6e63m0 +0 −27
  13. Documentation/ABI/testing/sysfs-class-led-driver-sc27xx +22 −0
  14. Documentation/ABI/testing/sysfs-class-led-trigger-pattern +82 −0
  15. Documentation/ABI/testing/sysfs-class-net +20 −2
  16. Documentation/ABI/testing/sysfs-class-net-dsa +7 −0
  17. Documentation/ABI/testing/sysfs-fs-f2fs +16 −1
  18. Documentation/ABI/testing/sysfs-platform-lg-laptop +35 −0
  19. Documentation/ABI/testing/sysfs-power +1 −1
  20. Documentation/PCI/00-INDEX +0 −26
  21. Documentation/PCI/endpoint/pci-test-howto.txt +11 −8
  22. Documentation/PCI/pci-error-recovery.txt +10 −25
  23. Documentation/RCU/00-INDEX +0 −34
  24. Documentation/RCU/Design/Data-Structures/Data-Structures.html +12 −19
  25. Documentation/RCU/Design/Expedited-Grace-Periods/Expedited-Grace-Periods.html +4 −5
  26. Documentation/RCU/Design/Requirements/Requirements.html +72 −142
  27. Documentation/RCU/rcu.txt +0 −4
  28. Documentation/RCU/stallwarn.txt +5 −8
  29. Documentation/RCU/whatisRCU.txt +2 −1
  30. Documentation/accounting/psi.txt +73 −0
  31. Documentation/admin-guide/LSM/Yama.rst +2 −2
  32. Documentation/admin-guide/README.rst +1 −2
  33. Documentation/admin-guide/cgroup-v2.rst +22 −0
  34. Documentation/admin-guide/ext4.rst +574 −0
  35. Documentation/admin-guide/index.rst +1 −0
  36. Documentation/admin-guide/kernel-parameters.txt +61 −19
  37. Documentation/admin-guide/l1tf.rst +1 −1
  38. Documentation/admin-guide/mm/index.rst +1 −0
  39. Documentation/admin-guide/mm/memory-hotplug.rst +63 −126
  40. Documentation/admin-guide/pm/cpufreq.rst +1 −1
  41. Documentation/admin-guide/pm/intel_pstate.rst +7 −0
  42. Documentation/admin-guide/security-bugs.rst +29 −18
  43. Documentation/arm/00-INDEX +0 −50
  44. Documentation/arm/Samsung/Bootloader-interface.txt +1 −0
  45. Documentation/arm64/elf_hwcaps.txt +8 −4
  46. Documentation/arm64/hugetlbpage.txt +38 −0
  47. Documentation/arm64/silicon-errata.txt +1 −0
  48. Documentation/block/00-INDEX +0 −34
  49. Documentation/blockdev/00-INDEX +0 −18
  50. Documentation/blockdev/README.DAC960 +0 −756
  51. Documentation/blockdev/zram.txt +1 −1
  52. Documentation/cdrom/00-INDEX +0 −11
  53. Documentation/cgroup-v1/00-INDEX +0 −26
  54. Documentation/cgroup-v1/rdma.txt +1 −1
  55. Documentation/conf.py +7 −3
  56. Documentation/core-api/boot-time-mm.rst +10 −61
  57. Documentation/core-api/gfp_mask-from-fs-io.rst +2 −0
  58. Documentation/core-api/idr.rst +1 −1
  59. Documentation/core-api/index.rst +4 −0
  60. Documentation/core-api/memory-allocation.rst +122 −0
  61. Documentation/core-api/memory-hotplug.rst +125 −0
  62. Documentation/core-api/mm-api.rst +2 −0
  63. Documentation/core-api/printk-formats.rst +5 −6
  64. Documentation/core-api/xarray.rst +435 −0
  65. Documentation/cpu-freq/cpufreq-stats.txt +5 −3
  66. Documentation/crypto/asymmetric-keys.txt +21 −5
  67. Documentation/dev-tools/coccinelle.rst +19 −4
  68. Documentation/dev-tools/kselftest.rst +1 −1
  69. Documentation/device-mapper/dm-flakey.txt +4 −0
  70. Documentation/device-mapper/log-writes.txt +1 −1
  71. Documentation/devicetree/00-INDEX +0 −12
  72. Documentation/devicetree/bindings/arm/al,alpine.txt +0 −72
  73. Documentation/devicetree/bindings/arm/amlogic.txt +7 −0
  74. Documentation/devicetree/bindings/arm/atmel-at91.txt +0 −170
  75. Documentation/devicetree/bindings/arm/atmel-sysregs.txt +171 −0
  76. Documentation/devicetree/bindings/arm/bcm/brcm,bcm2835.txt +8 −0
  77. Documentation/devicetree/bindings/arm/coresight.txt +65 −55
  78. Documentation/devicetree/bindings/arm/cpu-capacity.txt +5 −3
  79. Documentation/devicetree/bindings/arm/cpu-enable-method/al,alpine-smp +31 −3
  80. Documentation/devicetree/bindings/arm/cpus.txt +2 −2
  81. Documentation/devicetree/bindings/arm/freescale/fsl,layerscape-dcfg.txt +19 −0
  82. Documentation/devicetree/bindings/arm/freescale/fsl,layerscape-scfg.txt +19 −0
  83. Documentation/devicetree/bindings/arm/freescale/fsl,scu.txt +183 −0
  84. Documentation/devicetree/bindings/arm/fsl.txt +44 −39
  85. Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt +8 −0
  86. Documentation/devicetree/bindings/arm/keystone/ti,sci.txt +4 −0
  87. Documentation/devicetree/bindings/arm/mediatek/mediatek,apmixedsys.txt +1 −0
  88. Documentation/devicetree/bindings/arm/mediatek/mediatek,audsys.txt +1 −0
  89. Documentation/devicetree/bindings/arm/mediatek/mediatek,bdpsys.txt +1 −0
  90. Documentation/devicetree/bindings/arm/mediatek/mediatek,ethsys.txt +1 −0
  91. Documentation/devicetree/bindings/arm/mediatek/mediatek,hifsys.txt +1 −0
  92. Documentation/devicetree/bindings/arm/mediatek/mediatek,imgsys.txt +1 −0
  93. Documentation/devicetree/bindings/arm/mediatek/mediatek,infracfg.txt +1 −0
  94. Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.txt +1 −0
  95. Documentation/devicetree/bindings/arm/mediatek/mediatek,pericfg.txt +1 −0
  96. Documentation/devicetree/bindings/arm/mediatek/mediatek,topckgen.txt +1 −0
  97. Documentation/devicetree/bindings/arm/mediatek/mediatek,vdecsys.txt +1 −0
  98. Documentation/devicetree/bindings/arm/msm/qcom,kpss-acc.txt +19 −0
  99. Documentation/devicetree/bindings/arm/msm/qcom,kpss-gcc.txt +44 −0
  100. Documentation/devicetree/bindings/arm/msm/qcom,llcc.txt +17 −2
  101. Documentation/devicetree/bindings/arm/rockchip.txt +20 −0
  102. Documentation/devicetree/bindings/arm/scu.txt +1 −1
  103. Documentation/devicetree/bindings/arm/secure.txt +18 −1
  104. Documentation/devicetree/bindings/arm/shmobile.txt +12 −4
  105. Documentation/devicetree/bindings/arm/syna.txt +10 −1
  106. Documentation/devicetree/bindings/arm/tegra.txt +7 −2
  107. Documentation/devicetree/bindings/arm/tegra/nvidia,tegra186-pmc.txt +93 −0
  108. Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.txt +103 −0
  109. Documentation/devicetree/bindings/arm/ux500/boards.txt +1 −1
  110. Documentation/devicetree/bindings/arm/zte,sysctrl.txt +30 −0
  111. Documentation/devicetree/bindings/arm/zte.txt +1 −26
  112. Documentation/devicetree/bindings/ata/ahci-platform.txt +5 −1
  113. Documentation/devicetree/bindings/ata/brcm,sata-brcm.txt +1 −0
  114. Documentation/devicetree/bindings/bus/sun50i-de2-bus.txt +6 −3
  115. Documentation/devicetree/bindings/clock/actions,owl-cmu.txt +2 −0
  116. Documentation/devicetree/bindings/clock/at91-clock.txt +21 −495
  117. Documentation/devicetree/bindings/clock/hi3670-clock.txt +43 −0
  118. Documentation/devicetree/bindings/clock/imx6q-clock.txt +8 −0
  119. Documentation/devicetree/bindings/clock/ingenic,cgu.txt +5 −2
  120. Documentation/devicetree/bindings/clock/qcom,camcc.txt +18 −0
  121. Documentation/devicetree/bindings/clock/qcom,gcc.txt +3 −0
  122. Documentation/devicetree/bindings/clock/qcom,hfpll.txt +60 −0
  123. Documentation/devicetree/bindings/clock/qcom,krait-cc.txt +34 −0
  124. Documentation/devicetree/bindings/clock/renesas,cpg-mssr.txt +11 −6
  125. Documentation/devicetree/bindings/connector/usb-connector.txt +4 −4
  126. Documentation/devicetree/bindings/cpufreq/arm_big_little_dt.txt +0 −65
  127. Documentation/devicetree/bindings/crypto/hisilicon,hip07-sec.txt +1 −1
  128. Documentation/devicetree/bindings/csky/cpus.txt +73 −0
  129. Documentation/devicetree/bindings/display/himax,hx8357d.txt +26 −0
  130. Documentation/devicetree/bindings/display/panel/bananapi,s070wv20-ct16.txt +12 −0
  131. Documentation/devicetree/bindings/display/panel/cdtech,s043wq26h-ct7.txt +12 −0
  132. Documentation/devicetree/bindings/display/panel/cdtech,s070wv95-ct16.txt +12 −0
  133. Documentation/devicetree/bindings/display/panel/dlc,dlc1010gig.txt +12 −0
  134. Documentation/devicetree/bindings/display/panel/olimex,lcd-olinuxino.txt +42 −0
  135. Documentation/devicetree/bindings/display/panel/samsung,s6d16d0.txt +30 −0
  136. Documentation/devicetree/bindings/display/rockchip/dw_hdmi-rockchip.txt +3 −0
  137. Documentation/devicetree/bindings/display/sunxi/sun4i-drm.txt +21 −9
  138. Documentation/devicetree/bindings/display/truly,nt35597.txt +59 −0
  139. Documentation/devicetree/bindings/dma/jz4780-dma.txt +10 −4
  140. Documentation/devicetree/bindings/dma/renesas,rcar-dmac.txt +1 −0
  141. Documentation/devicetree/bindings/dma/renesas,usb-dmac.txt +1 −0
  142. Documentation/devicetree/bindings/firmware/qcom,scm.txt +21 −12
  143. Documentation/devicetree/bindings/firmware/xilinx/xlnx,zynqmp-firmware.txt +82 −0
  144. Documentation/devicetree/bindings/fpga/fpga-region.txt +2 −2
  145. Documentation/devicetree/bindings/gpio/gpio.txt +75 −67
  146. Documentation/devicetree/bindings/gpio/ingenic,gpio.txt +0 −46
  147. Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt +38 −27
  148. Documentation/devicetree/bindings/gpio/snps,creg-gpio.txt +21 −0
  149. Documentation/devicetree/bindings/hwmon/ina3221.txt +44 −0
  150. Documentation/devicetree/bindings/hwmon/ltc2978.txt +2 −0
  151. Documentation/devicetree/bindings/i2c/i2c-designware.txt +6 −1
  152. Documentation/devicetree/bindings/i2c/i2c-imx-lpi2c.txt +1 −0
  153. Documentation/devicetree/bindings/i2c/i2c-omap.txt +6 −2
  154. Documentation/devicetree/bindings/i2c/i2c-rcar.txt +2 −0
  155. Documentation/devicetree/bindings/i2c/i2c-sh_mobile.txt +1 −0
  156. Documentation/devicetree/bindings/i2c/i2c.txt +1 −1
  157. Documentation/devicetree/bindings/iio/accel/adxl372.txt +33 −0
  158. Documentation/devicetree/bindings/iio/adc/mcp3911.txt +30 −0
  159. Documentation/devicetree/bindings/iio/adc/qcom,spmi-vadc.txt +60 −21
  160. Documentation/devicetree/bindings/iio/adc/sprd,sc27xx-adc.txt +4 −0
  161. Documentation/devicetree/bindings/iio/dac/ad5758.txt +5 −0
  162. Documentation/devicetree/bindings/iio/dac/ltc1660.txt +21 −0
  163. Documentation/devicetree/bindings/iio/imu/inv_mpu6050.txt +1 −0
  164. Documentation/devicetree/bindings/iio/imu/st_lsm6dsx.txt +1 −0
  165. Documentation/devicetree/bindings/iio/light/bh1750.txt +18 −0
  166. Documentation/devicetree/bindings/iio/light/tsl2772.txt +42 −0
  167. Documentation/devicetree/bindings/iio/proximity/vl53l0x.txt +12 −0
  168. Documentation/devicetree/bindings/input/pwm-vibrator.txt +2 −2
  169. Documentation/devicetree/bindings/input/touchscreen/touchscreen.txt +4 −2
  170. Documentation/devicetree/bindings/interrupt-controller/csky,apb-intc.txt +62 −0
  171. Documentation/devicetree/bindings/interrupt-controller/csky,mpintc.txt +40 −0
  172. Documentation/devicetree/bindings/interrupt-controller/marvell,icu.txt +73 −12
  173. Documentation/devicetree/bindings/interrupt-controller/marvell,sei.txt +36 −0
  174. Documentation/devicetree/bindings/interrupt-controller/renesas,irqc.txt +4 −1
  175. Documentation/devicetree/bindings/iommu/mediatek,iommu.txt +3 −1
  176. Documentation/devicetree/bindings/iommu/renesas,ipmmu-vmsa.txt +1 −0
  177. Documentation/devicetree/bindings/leds/leds-an30259a.txt +43 −0
  178. Documentation/devicetree/bindings/mailbox/qcom,apcs-kpss-global.txt +1 −0
  179. Documentation/devicetree/bindings/media/cedrus.txt +54 −0
  180. Documentation/devicetree/bindings/media/fsl-pxp.txt +26 −0
  181. Documentation/devicetree/bindings/media/i2c/adv748x.txt +16 −4
  182. Documentation/devicetree/bindings/media/i2c/adv7604.txt +1 −1
  183. Documentation/devicetree/bindings/media/i2c/dongwoon,dw9807-vcm.txt +0 −0
  184. Documentation/devicetree/bindings/media/mediatek-jpeg-decoder.txt +1 −0
  185. Documentation/devicetree/bindings/media/rcar_vin.txt +1 −0
  186. Documentation/devicetree/bindings/media/renesas,ceu.txt +9 −5
  187. Documentation/devicetree/bindings/media/rockchip-vpu.txt +29 −0
  188. Documentation/devicetree/bindings/media/video-interfaces.txt +3 −1
  189. Documentation/devicetree/bindings/memory-controllers/mediatek,smi-common.txt +1 −0
  190. Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.txt +2 −1
  191. Documentation/devicetree/bindings/mfd/arizona.txt +1 −1
  192. Documentation/devicetree/bindings/mfd/atmel-usart.txt +23 −2
  193. Documentation/devicetree/bindings/mfd/rohm,bd71837-pmic.txt +9 −8
  194. Documentation/devicetree/bindings/mips/mscc.txt +16 −0
  195. Documentation/devicetree/bindings/misc/fsl,qoriq-mc.txt +39 −0
  196. Documentation/devicetree/bindings/misc/lwn-bk4.txt +26 −0
  197. Documentation/devicetree/bindings/mmc/arasan,sdhci.txt +1 −0
  198. Documentation/devicetree/bindings/mmc/jz4740.txt +1 −0
  199. Documentation/devicetree/bindings/mmc/mmci.txt +11 −0
  200. Documentation/devicetree/bindings/mmc/mtk-sd.txt +2 −0
  201. Documentation/devicetree/bindings/mmc/nvidia,tegra20-sdhci.txt +72 −0
  202. Documentation/devicetree/bindings/mmc/renesas,mmcif.txt +3 −1
  203. Documentation/devicetree/bindings/mmc/sdhci-sprd.txt +41 −0
  204. Documentation/devicetree/bindings/mmc/tmio_mmc.txt +8 −2
  205. Documentation/devicetree/bindings/mmc/uniphier-sd.txt +55 −0
  206. Documentation/devicetree/bindings/net/brcm,unimac-mdio.txt +3 −0
  207. Documentation/devicetree/bindings/net/can/rcar_can.txt +1 −0
  208. Documentation/devicetree/bindings/net/dsa/b53.txt +36 −0
  209. Documentation/devicetree/bindings/net/dsa/lantiq-gswip.txt +143 −0
  210. Documentation/devicetree/bindings/net/lantiq,xrx200-net.txt +21 −0
  211. Documentation/devicetree/bindings/net/marvell,prestera.txt +2 −2
  212. Documentation/devicetree/bindings/net/marvell-pp2.txt +31 −14
  213. Documentation/devicetree/bindings/net/micrel-ksz90x1.txt +27 −1
  214. Documentation/devicetree/bindings/net/mscc-ocelot.txt +3 −6
  215. Documentation/devicetree/bindings/net/mscc-phy-vsc8531.txt +9 −12
  216. Documentation/devicetree/bindings/net/renesas,ravb.txt +1 −0
  217. Documentation/devicetree/bindings/net/wireless/qcom,ath10k.txt +6 −0
  218. Documentation/devicetree/bindings/nvmem/allwinner,sunxi-sid.txt +1 −0
  219. Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.txt +1 −0
  220. Documentation/devicetree/bindings/pci/pci-keystone.txt +3 −0
  221. Documentation/devicetree/bindings/pci/pci-rcar-gen2.txt +1 −0
  222. Documentation/devicetree/bindings/pci/rcar-pci.txt +2 −0
  223. Documentation/devicetree/bindings/pci/ti-pci.txt +5 −0
  224. Documentation/devicetree/bindings/phy/brcm-sata-phy.txt +1 −0
  225. Documentation/devicetree/bindings/phy/phy-cadence-dp.txt +30 −0
  226. Documentation/devicetree/bindings/phy/phy-ocelot-serdes.txt +43 −0
  227. Documentation/devicetree/bindings/phy/phy-rockchip-inno-hdmi.txt +43 −0
  228. Documentation/devicetree/bindings/phy/qcom-qmp-phy.txt +14 −9
  229. Documentation/devicetree/bindings/phy/rcar-gen2-phy.txt +1 −0
  230. Documentation/devicetree/bindings/phy/rcar-gen3-phy-usb2.txt +8 −3
  231. Documentation/devicetree/bindings/phy/rcar-gen3-phy-usb3.txt +6 −4
  232. Documentation/devicetree/bindings/phy/uniphier-pcie-phy.txt +31 −0
  233. Documentation/devicetree/bindings/phy/uniphier-usb2-phy.txt +45 −0
  234. Documentation/devicetree/bindings/phy/uniphier-usb3-hsphy.txt +69 −0
  235. Documentation/devicetree/bindings/phy/uniphier-usb3-ssphy.txt +57 −0
  236. Documentation/devicetree/bindings/pinctrl/brcm,bcm4708-pinmux.txt +57 −0
  237. Documentation/devicetree/bindings/pinctrl/ingenic,pinctrl.txt +35 −4
  238. Documentation/devicetree/bindings/pinctrl/meson,pinctrl.txt +2 −0
  239. Documentation/devicetree/bindings/pinctrl/nuvoton,npcm7xx-pinctrl.txt +216 −0
  240. Documentation/devicetree/bindings/pinctrl/qcom,pmic-gpio.txt +2 −0
  241. Documentation/devicetree/bindings/pinctrl/qcom,qcs404-pinctrl.txt +199 −0
  242. Documentation/devicetree/bindings/pinctrl/qcom,sdm660-pinctrl.txt +191 −0
  243. Documentation/devicetree/bindings/pinctrl/renesas,pfc-pinctrl.txt +3 −0
  244. Documentation/devicetree/bindings/pinctrl/renesas,rzn1-pinctrl.txt +153 −0
  245. Documentation/devicetree/bindings/power/actions,owl-sps.txt +2 −0
  246. Documentation/devicetree/bindings/power/renesas,apmu.txt +2 −0
  247. Documentation/devicetree/bindings/power/renesas,rcar-sysc.txt +3 −0
  248. Documentation/devicetree/bindings/power/reset/qcom,pon.txt +4 −1
  249. Documentation/devicetree/bindings/power/supply/bq25890.txt +3 −0
  250. Documentation/devicetree/bindings/power/supply/bq27xxx.txt +1 −0
  251. Documentation/devicetree/bindings/power/supply/sc2731_charger.txt +40 −0
  252. Documentation/devicetree/bindings/pwm/pwm-tiecap.txt +1 −0
  253. Documentation/devicetree/bindings/pwm/renesas,pwm-rcar.txt +4 −0
  254. Documentation/devicetree/bindings/pwm/renesas,tpu-pwm.txt +8 −2
  255. Documentation/devicetree/bindings/regulator/pfuze100.txt +5 −0
  256. Documentation/devicetree/bindings/regulator/qcom,smd-rpm-regulator.txt +23 −0
  257. Documentation/devicetree/bindings/regulator/rohm,bd71837-regulator.txt +9 −3
  258. Documentation/devicetree/bindings/regulator/st,stpmic1-regulator.txt +68 −0
  259. Documentation/devicetree/bindings/remoteproc/qcom,adsp-pil.txt +126 −0
  260. Documentation/devicetree/bindings/remoteproc/qcom,adsp.txt +5 −0
  261. Documentation/devicetree/bindings/remoteproc/qcom,q6v5.txt +6 −2
  262. Documentation/devicetree/bindings/reset/fsl,imx7-src.txt +1 −1
  263. Documentation/devicetree/bindings/reset/qcom,pdc-global.txt +52 −0
  264. Documentation/devicetree/bindings/reset/renesas,rst.txt +3 −0
  265. Documentation/devicetree/bindings/serial/renesas,sci-serial.txt +6 −0
  266. Documentation/devicetree/bindings/serial/uniphier-uart.txt +1 −2
  267. Documentation/devicetree/bindings/soc/amlogic/amlogic,canvas.txt +29 −0
  268. Documentation/devicetree/bindings/soc/fsl/cpm_qe/network.txt +6 −0
  269. Documentation/devicetree/bindings/soc/mediatek/pwrap.txt +2 −0
  270. Documentation/devicetree/bindings/soc/qcom/qcom,geni-se.txt +2 −27
  271. Documentation/devicetree/bindings/soc/rockchip/grf.txt +2 −0
  272. Documentation/devicetree/bindings/sound/adi,adau1977.txt +54 −0
  273. Documentation/devicetree/bindings/sound/amlogic,axg-pdm.txt +24 −0
  274. Documentation/devicetree/bindings/sound/cs42l51.txt +17 −0
  275. Documentation/devicetree/bindings/sound/maxim,max98088.txt +23 −0
  276. Documentation/devicetree/bindings/sound/mikroe,mikroe-proto.txt +23 −0
  277. Documentation/devicetree/bindings/sound/nau8822.txt +16 −0
  278. Documentation/devicetree/bindings/sound/pcm3060.txt +17 −0
  279. Documentation/devicetree/bindings/sound/qcom,q6afe.txt +9 −9
  280. Documentation/devicetree/bindings/sound/renesas,rsnd.txt +4 −1
  281. Documentation/devicetree/bindings/sound/st,sta32x.txt +9 −0
  282. Documentation/devicetree/bindings/sound/st,stm32-sai.txt +7 −0
  283. Documentation/devicetree/bindings/sound/sun4i-i2s.txt +2 −0
  284. Documentation/devicetree/bindings/sound/sun50i-codec-analog.txt +12 −0
  285. Documentation/devicetree/bindings/sound/ts3a227e.txt +1 −1
  286. Documentation/devicetree/bindings/sound/wm8782.txt +17 −0
  287. Documentation/devicetree/bindings/spi/qcom,spi-geni-qcom.txt +39 −0
  288. Documentation/devicetree/bindings/spi/qcom,spi-qcom-qspi.txt +36 −0
  289. Documentation/devicetree/bindings/spi/sh-msiof.txt +7 −1
  290. Documentation/devicetree/bindings/spi/snps,dw-apb-ssi.txt +1 −1
  291. Documentation/devicetree/bindings/spi/spi-fsl-lpspi.txt +1 −0
  292. Documentation/devicetree/bindings/spi/spi-pxa2xx.txt +24 −0
  293. Documentation/devicetree/bindings/spi/spi-rspi.txt +3 −1
  294. Documentation/devicetree/bindings/spi/spi-slave-mt27xx.txt +32 −0
  295. Documentation/devicetree/bindings/spi/spi-sprd.txt +26 −0
  296. Documentation/devicetree/bindings/spi/spi-stm32-qspi.txt +44 −0
  297. Documentation/devicetree/bindings/sram/sunxi-sram.txt +4 −0
  298. Documentation/devicetree/bindings/thermal/qcom-spmi-temp-alarm.txt +5 −11
  299. Documentation/devicetree/bindings/thermal/qoriq-thermal.txt +3 −3
  300. Documentation/devicetree/bindings/thermal/rcar-gen3-thermal.txt +4 −1
  301. Documentation/devicetree/bindings/thermal/rcar-thermal.txt +4 −2
  302. Documentation/devicetree/bindings/thermal/stm32-thermal.txt +61 −0
  303. Documentation/devicetree/bindings/thermal/thermal.txt +1 −1
  304. Documentation/devicetree/bindings/timer/csky,gx6605s-timer.txt +42 −0
  305. Documentation/devicetree/bindings/timer/csky,mptimer.txt +42 −0
  306. Documentation/devicetree/bindings/timer/renesas,cmt.txt +9 −0
  307. Documentation/devicetree/bindings/timer/renesas,ostm.txt +2 −1
  308. Documentation/devicetree/bindings/timer/renesas,tmu.txt +2 −0
  309. Documentation/devicetree/bindings/trivial-devices.txt +0 −11
  310. Documentation/devicetree/bindings/usb/ci-hdrc-usb2.txt +2 −0
  311. Documentation/devicetree/bindings/usb/dwc2.txt +1 −0
  312. Documentation/devicetree/bindings/usb/dwc3.txt +1 −0
  313. Documentation/devicetree/bindings/usb/ehci-mv.txt +23 −0
  314. Documentation/devicetree/bindings/usb/exynos-usb.txt +2 −0
  315. Documentation/devicetree/bindings/usb/faraday,fotg210.txt +35 −0
  316. Documentation/devicetree/bindings/usb/fcs,fusb302.txt +25 −7
  317. Documentation/devicetree/bindings/usb/renesas_usb3.txt +4 −2
  318. Documentation/devicetree/bindings/usb/renesas_usbhs.txt +9 −2
  319. Documentation/devicetree/bindings/usb/usb-ehci.txt +5 −1
  320. Documentation/devicetree/bindings/usb/usb-ohci.txt +5 −1
  321. Documentation/devicetree/bindings/usb/usb-xhci.txt +4 −1
  322. Documentation/devicetree/bindings/vendor-prefixes.txt +7 −0
  323. Documentation/devicetree/bindings/watchdog/armada-37xx-wdt.txt +23 −0
  324. Documentation/devicetree/bindings/watchdog/mpc8xxx-wdt.txt +25 −0
  325. Documentation/devicetree/bindings/watchdog/renesas-wdt.txt +2 −0
  326. Documentation/driver-api/basics.rst +3 −0
  327. Documentation/driver-api/firewire.rst +48 −0
  328. Documentation/driver-api/fpga/fpga-bridge.rst +7 −30
  329. Documentation/driver-api/fpga/fpga-mgr.rst +14 −107
  330. Documentation/driver-api/fpga/fpga-programming.rst +107 −0
  331. Documentation/driver-api/fpga/fpga-region.rst +46 −45
  332. Documentation/driver-api/fpga/index.rst +2 −0
  333. Documentation/driver-api/fpga/intro.rst +1 −1
  334. Documentation/driver-api/gpio/board.rst +24 −0
  335. Documentation/driver-api/gpio/consumer.rst +42 −22
  336. Documentation/driver-api/gpio/driver.rst +22 −1
  337. Documentation/driver-api/gpio/index.rst +1 −1
  338. Documentation/driver-api/index.rst +2 −1
  339. Documentation/driver-api/mtdnand.rst +17 −17
  340. Documentation/driver-api/pci/index.rst +22 −0
  341. Documentation/driver-api/pci/p2pdma.rst +145 −0
  342. Documentation/driver-api/pci/pci.rst +0 −0
  343. Documentation/driver-api/soundwire/stream.rst +36 −0
  344. Documentation/driver-api/uio-howto.rst +2 −2
  345. Documentation/efi-stub.txt +14 −3
  346. Documentation/fb/00-INDEX +0 −75
  347. Documentation/fb/uvesafb.txt +3 −2
  348. Documentation/fb/vesafb.txt +2 −2
  349. Documentation/filesystems/00-INDEX +0 −153
  350. Documentation/filesystems/ceph.txt +5 −0
  351. Documentation/filesystems/dax.txt +1 −1
  352. Documentation/filesystems/ext2.txt +1 −1
  353. Documentation/filesystems/ext4/about.rst +0 −0
  354. Documentation/filesystems/ext4/allocators.rst +0 −0
  355. Documentation/filesystems/ext4/attributes.rst +4 −4
  356. Documentation/filesystems/ext4/bigalloc.rst +0 −0
  357. Documentation/filesystems/ext4/bitmaps.rst +0 −0
  358. Documentation/filesystems/ext4/blockgroup.rst +0 −0
  359. Documentation/filesystems/ext4/blockmap.rst +0 −0
  360. Documentation/filesystems/ext4/blocks.rst +0 −0
  361. Documentation/filesystems/ext4/checksums.rst +1 −1
  362. Documentation/filesystems/ext4/directory.rst +9 −9
  363. Documentation/filesystems/ext4/dynamic.rst +0 −0
  364. Documentation/filesystems/ext4/eainode.rst +0 −0
  365. Documentation/filesystems/ext4/ext4.rst +0 −613
  366. Documentation/filesystems/ext4/globals.rst +0 −0
  367. Documentation/filesystems/ext4/group_descr.rst +2 −2
  368. Documentation/filesystems/ext4/ifork.rst +4 −4
  369. Documentation/filesystems/ext4/index.rst +8 −11
  370. Documentation/filesystems/ext4/inlinedata.rst +0 −0
  371. Documentation/filesystems/ext4/inodes.rst +10 −9
  372. Documentation/filesystems/ext4/journal.rst +16 −16
  373. Documentation/filesystems/ext4/mmp.rst +1 −1
  374. Documentation/filesystems/ext4/ondisk/index.rst +0 −9
  375. Documentation/filesystems/ext4/overview.rst +0 −0
  376. Documentation/filesystems/ext4/special_inodes.rst +1 −1
  377. Documentation/filesystems/ext4/super.rst +12 −12
  378. Documentation/filesystems/f2fs.txt +7 −1
  379. Documentation/filesystems/fscrypt.rst +0 −10
  380. Documentation/filesystems/nfs/00-INDEX +0 −26
  381. Documentation/filesystems/nfs/rpc-cache.txt +3 −3
  382. Documentation/filesystems/overlayfs.txt +6 −0
  383. Documentation/filesystems/pohmelfs/design_notes.txt +0 −72
  384. Documentation/filesystems/pohmelfs/info.txt +0 −99
  385. Documentation/filesystems/pohmelfs/network_protocol.txt +0 −227
  386. Documentation/filesystems/porting +16 −0
  387. Documentation/filesystems/proc.txt +4 −0
  388. Documentation/filesystems/ubifs-authentication.md +426 −0
  389. Documentation/filesystems/ubifs.txt +7 −0
  390. Documentation/filesystems/vfs.txt +15 −7
  391. Documentation/fmc/00-INDEX +0 −38
  392. Documentation/gpio/00-INDEX +0 −4
  393. Documentation/gpu/amdgpu-dc.rst +68 −0
  394. Documentation/gpu/drivers.rst +1 −0
  395. Documentation/gpu/drm-kms-helpers.rst +14 −5
  396. Documentation/gpu/drm-mm.rst +2 −2
  397. Documentation/gpu/drm-uapi.rst +3 −0
  398. Documentation/gpu/todo.rst +10 −0
  399. Documentation/gpu/vkms.rst +99 −2
  400. Documentation/hwmon/ina3221 +2 −0
  401. Documentation/hwmon/lm75 +3 −3
  402. Documentation/hwmon/ltc2978 +5 −0
  403. Documentation/hwmon/mc13783-adc +4 −4
  404. Documentation/i2c/busses/i2c-nvidia-gpu +18 −0
  405. Documentation/ide/00-INDEX +0 −14
  406. Documentation/index.rst +1 −4
  407. Documentation/input/event-codes.rst +10 −1
  408. Documentation/ioctl/00-INDEX +0 −12
  409. Documentation/ioctl/ioctl-number.txt +1 −1
  410. Documentation/isdn/00-INDEX +0 −42
  411. Documentation/kbuild/00-INDEX +0 −14
  412. Documentation/kbuild/makefiles.txt +0 −15
  413. Documentation/kernel-per-CPU-kthreads.txt +1 −1
  414. Documentation/laptops/00-INDEX +0 −16
  415. Documentation/laptops/lg-laptop.rst +81 −0
  416. Documentation/leds/00-INDEX +0 −32
  417. Documentation/locking/00-INDEX +0 −16
  418. Documentation/locking/lockstat.txt +1 −1
  419. Documentation/m68k/00-INDEX +0 −7
  420. Documentation/media/kapi/cec-core.rst +4 −0
  421. Documentation/media/kapi/mc-core.rst +2 −0
  422. Documentation/media/kapi/v4l2-subdev.rst +19 −11
  423. Documentation/media/uapi/cec/cec-func-poll.rst +2 −1
  424. Documentation/media/uapi/cec/cec-ioc-receive.rst +23 −2
  425. Documentation/media/uapi/mediactl/media-controller.rst +1 −0
  426. Documentation/media/uapi/mediactl/media-funcs.rst +6 −0
  427. Documentation/media/uapi/mediactl/media-ioc-device-info.rst +1 −0
  428. Documentation/media/uapi/mediactl/media-ioc-enum-entities.rst +1 −0
  429. Documentation/media/uapi/mediactl/media-ioc-enum-links.rst +1 −0
  430. Documentation/media/uapi/mediactl/media-ioc-g-topology.rst +1 −0
  431. Documentation/media/uapi/mediactl/media-ioc-request-alloc.rst +66 −0
  432. Documentation/media/uapi/mediactl/media-ioc-setup-link.rst +1 −0
  433. Documentation/media/uapi/mediactl/media-request-ioc-queue.rst +78 −0
  434. Documentation/media/uapi/mediactl/media-request-ioc-reinit.rst +51 −0
  435. Documentation/media/uapi/mediactl/request-api.rst +252 −0
  436. Documentation/media/uapi/mediactl/request-func-close.rst +49 −0
  437. Documentation/media/uapi/mediactl/request-func-ioctl.rst +67 −0
  438. Documentation/media/uapi/mediactl/request-func-poll.rst +77 −0
  439. Documentation/media/uapi/v4l/biblio.rst +0 −10
  440. Documentation/media/uapi/v4l/buffer.rst +26 −3
  441. Documentation/media/uapi/v4l/colorspaces-defs.rst +4 −4
  442. Documentation/media/uapi/v4l/colorspaces-details.rst +6 −7
  443. Documentation/media/uapi/v4l/extended-controls.rst +176 −0
  444. Documentation/media/uapi/v4l/func-poll.rst +2 −1
  445. Documentation/media/uapi/v4l/meta-formats.rst +1 −0
  446. Documentation/media/uapi/v4l/pixfmt-compressed.rst +17 −1
  447. Documentation/media/uapi/v4l/pixfmt-meta-d4xx.rst +210 −0
  448. Documentation/media/uapi/v4l/pixfmt-reserved.rst +14 −1
  449. Documentation/media/uapi/v4l/vidioc-create-bufs.rst +13 −1
  450. Documentation/media/uapi/v4l/vidioc-cropcap.rst +1 −1
  451. Documentation/media/uapi/v4l/vidioc-dqevent.rst +11 −1
  452. Documentation/media/uapi/v4l/vidioc-g-crop.rst +1 −1
  453. Documentation/media/uapi/v4l/vidioc-g-dv-timings.rst +19 −8
  454. Documentation/media/uapi/v4l/vidioc-g-ext-ctrls.rst +49 −10
  455. Documentation/media/uapi/v4l/vidioc-qbuf.rst +35 −2
  456. Documentation/media/uapi/v4l/vidioc-queryctrl.rst +12 −2
  457. Documentation/media/uapi/v4l/vidioc-reqbufs.rst +41 −1
  458. Documentation/media/videodev2.h.rst.exceptions +8 −2
  459. Documentation/memory-barriers.txt +1 −2
  460. Documentation/mips/00-INDEX +0 −4
  461. Documentation/mmc/00-INDEX +0 −10
  462. Documentation/mtd/nand/pxa3xx-nand.txt +0 −113
  463. Documentation/netlabel/00-INDEX +0 −10
  464. Documentation/netlabel/cipso_ipv4.txt +6 −5
  465. Documentation/netlabel/introduction.txt +1 −1
  466. Documentation/networking/00-INDEX +0 −234
  467. Documentation/networking/af_xdp.rst +2 −2
  468. Documentation/networking/defza.txt +57 −0
  469. Documentation/networking/devlink-params-bnxt.txt +18 −0
  470. Documentation/networking/devlink-params.txt +42 −0
  471. Documentation/networking/dpaa2/ethernet-driver.rst +0 −0
  472. Documentation/networking/dpaa2/index.rst +1 −0
  473. Documentation/networking/e100.rst +2 −1
  474. Documentation/networking/e1000.rst +2 −1
  475. Documentation/networking/e1000e.rst +382 −0
  476. Documentation/networking/e1000e.txt +0 −312
  477. Documentation/networking/filter.txt +80 −14
  478. Documentation/networking/fm10k.rst +141 −0
  479. Documentation/networking/i40e.rst +770 −0
  480. Documentation/networking/i40e.txt +0 −190
  481. Documentation/networking/i40evf.txt +0 −54
  482. Documentation/networking/iavf.rst +281 −0
  483. Documentation/networking/ice.rst +45 −0
  484. Documentation/networking/ice.txt +0 −39
  485. Documentation/networking/igb.rst +193 −0
  486. Documentation/networking/igb.txt +0 −129
  487. Documentation/networking/igbvf.rst +64 −0
  488. Documentation/networking/igbvf.txt +0 −80
  489. Documentation/networking/index.rst +10 −0
  490. Documentation/networking/ip-sysctl.txt +20 −1
  491. Documentation/networking/ixgb.rst +467 −0
  492. Documentation/networking/ixgb.txt +0 −433
  493. Documentation/networking/ixgbe.rst +527 −0
  494. Documentation/networking/ixgbe.txt +0 −349
  495. Documentation/networking/ixgbevf.rst +66 −0
  496. Documentation/networking/ixgbevf.txt +0 −52
  497. Documentation/networking/netvsc.txt +9 −0
  498. Documentation/networking/rxrpc.txt +25 −0
  499. Documentation/networking/tcp.txt +0 −101
  500. Documentation/networking/xfrm_device.txt +4 −0
  501. Documentation/nvmem/nvmem.txt +31 −0
  502. Documentation/parisc/00-INDEX +0 −6
  503. Documentation/power/00-INDEX +0 −44
  504. Documentation/power/swsusp.txt +1 −1
  505. Documentation/powerpc/00-INDEX +0 −34
  506. Documentation/preempt-locking.txt +6 −6
  507. Documentation/process/2.Process.rst +1 −1
  508. Documentation/process/adding-syscalls.rst +1 −1
  509. Documentation/process/code-of-conduct-interpretation.rst +156 −0
  510. Documentation/process/code-of-conduct.rst +15 −10
  511. Documentation/process/deprecated.rst +119 −0
  512. Documentation/process/howto.rst +7 −6
  513. Documentation/process/index.rst +4 −0
  514. Documentation/process/license-rules.rst +2 −0
  515. Documentation/process/programming-language.rst +45 −0
  516. Documentation/s390/00-INDEX +0 −28
  517. Documentation/s390/vfio-ap.txt +837 −0
  518. Documentation/scheduler/00-INDEX +0 −18
  519. Documentation/scheduler/completion.txt +153 −109
  520. Documentation/scsi/00-INDEX +0 −108
  521. Documentation/scsi/ufs.txt +20 −0
  522. Documentation/security/LSM.rst +1 −1
  523. Documentation/security/keys/core.rst +217 −0
  524. Documentation/security/keys/ecryptfs.rst +4 −4
  525. Documentation/security/self-protection.rst +5 −5
  526. Documentation/serial/00-INDEX +0 −16
  527. Documentation/serial/driver +1 −1
  528. Documentation/serial/serial-iso7816.txt +83 −0
  529. Documentation/sound/hd-audio/models.rst +2 −0
  530. Documentation/sound/kernel-api/writing-an-alsa-driver.rst +149 −158
  531. Documentation/sphinx-static/theme_overrides.css +38 −0
  532. Documentation/spi/00-INDEX +0 −16
  533. Documentation/switchtec.txt +20 −10
  534. Documentation/sysctl/00-INDEX +0 −16
  535. Documentation/sysctl/kernel.txt +18 −0
  536. Documentation/sysctl/net.txt +8 −0
  537. Documentation/timers/00-INDEX +0 −16
  538. Documentation/trace/ftrace.rst +3 −0
  539. Documentation/trace/histogram.rst +3 −3
  540. Documentation/trace/kprobetrace.rst +19 −4
  541. Documentation/trace/stm.rst +29 −9
  542. Documentation/trace/sys-t.rst +62 −0
  543. Documentation/virtual/00-INDEX +0 −11
  544. Documentation/virtual/kvm/00-INDEX +0 −35
  545. Documentation/virtual/kvm/api.txt +129 −6
  546. Documentation/vm/00-INDEX +0 −50
  547. Documentation/vm/hmm.rst +7 −7
  548. Documentation/vm/slub.rst +9 −3
  549. Documentation/w1/00-INDEX +0 −10
  550. Documentation/w1/masters/00-INDEX +0 −12
  551. Documentation/w1/slaves/00-INDEX +0 −14
  552. Documentation/watchdog/hpwdt.txt +31 −62
  553. Documentation/watchdog/watchdog-parameters.txt +5 −0
  554. Documentation/x86/00-INDEX +0 −20
  555. Documentation/x86/boot.txt +31 −1
  556. Documentation/x86/intel_rdt_ui.txt +14 −8
  557. Documentation/x86/pat.txt +2 −2
  558. Documentation/x86/x86_64/00-INDEX +0 −16
  559. Documentation/x86/x86_64/mm.txt +125 −51
  560. Documentation/x86/zero-page.txt +1 −1
  561. Documentation/xilinx/eemi.txt +67 −0
  562. LICENSES/other/CC-BY-SA-4.0 +0 −397
  563. LICENSES/other/CDDL-1.0 +5 −1
  564. LICENSES/other/ISC +24 −0
  565. MAINTAINERS +577 −220
  566. Makefile +73 −25
  567. README +0 −1
  568. arch/Kconfig +17 −0
  569. arch/alpha/include/asm/processor.h +0 −6
  570. arch/alpha/include/asm/termios.h +7 −1
  571. arch/alpha/include/asm/unistd.h +2 −0
  572. arch/alpha/include/uapi/asm/ioctls.h +7 −0
  573. arch/alpha/include/uapi/asm/siginfo.h +0 −1
  574. arch/alpha/include/uapi/asm/termbits.h +17 −0
  575. arch/alpha/kernel/core_apecs.c +2 −1
  576. arch/alpha/kernel/core_cia.c +2 −2
  577. arch/alpha/kernel/core_irongate.c +3 −5
  578. arch/alpha/kernel/core_lca.c +2 −1
  579. arch/alpha/kernel/core_marvel.c +3 −3
  580. arch/alpha/kernel/core_mcpcia.c +4 −2
  581. arch/alpha/kernel/core_t2.c +1 −1
  582. arch/alpha/kernel/core_titan.c +5 −3
  583. arch/alpha/kernel/core_tsunami.c +5 −3
  584. arch/alpha/kernel/core_wildfire.c +4 −2
  585. arch/alpha/kernel/entry.S +24 −29
  586. arch/alpha/kernel/pci-noop.c +3 −3
  587. arch/alpha/kernel/pci.c +3 −3
  588. arch/alpha/kernel/pci_iommu.c +7 −7
  589. arch/alpha/kernel/setup.c +13 −88
  590. arch/alpha/kernel/sys_nautilus.c +1 −1
  591. arch/alpha/kernel/systbls.S +159 −159
  592. arch/alpha/mm/init.c +2 −2
  593. arch/alpha/mm/numa.c +13 −101
  594. arch/arc/Kconfig +3 −5
  595. arch/arc/Makefile +2 −30
  596. arch/arc/include/asm/processor.h +0 −8
  597. arch/arc/include/uapi/asm/unistd.h +1 −0
  598. arch/arc/kernel/process.c +20 −0
  599. arch/arc/kernel/traps.c +8 −14
  600. arch/arc/kernel/unwind.c +3 −3
  601. arch/arc/kernel/vmlinux.lds.S +0 −1
  602. arch/arc/mm/dma.c +10 −31
  603. arch/arc/mm/fault.c +5 −15
  604. arch/arc/mm/highmem.c +2 −2
  605. arch/arc/mm/init.c +1 −2
  606. arch/arm/Kconfig +1 −2
  607. arch/arm/Kconfig.debug +31 −23
  608. arch/arm/Makefile +2 −24
  609. arch/arm/boot/compressed/head.S +43 −0
  610. arch/arm/boot/compressed/libfdt_env.h +2 −0
  611. arch/arm/boot/dts/Makefile +16 −2
  612. arch/arm/boot/dts/am335x-bone-common.dtsi +5 −1
  613. arch/arm/boot/dts/am335x-boneblack-common.dtsi +4 −1
  614. arch/arm/boot/dts/am335x-chiliboard.dts +5 −1
  615. arch/arm/boot/dts/am335x-cm-t335.dts +5 −1
  616. arch/arm/boot/dts/am335x-evm.dts +6 −6
  617. arch/arm/boot/dts/am335x-evmsk.dts +10 −2
  618. arch/arm/boot/dts/am335x-igep0033.dtsi +11 −2
  619. arch/arm/boot/dts/am335x-lxm.dts +10 −2
  620. arch/arm/boot/dts/am335x-moxa-uc-2100-common.dtsi +249 −0
  621. arch/arm/boot/dts/am335x-moxa-uc-2101.dts +69 −0
  622. arch/arm/boot/dts/am335x-moxa-uc-8100-me-t.dts +10 −2
  623. arch/arm/boot/dts/am335x-nano.dts +10 −2
  624. arch/arm/boot/dts/am335x-osd3358-sm-red.dts +6 −2
  625. arch/arm/boot/dts/am335x-pdu001.dts +11 −3
  626. arch/arm/boot/dts/am335x-pepper.dts +10 −2
  627. arch/arm/boot/dts/am335x-sancloud-bbe.dts +5 −1
  628. arch/arm/boot/dts/am335x-shc.dts +0 −1
  629. arch/arm/boot/dts/am3517-evm-ui.dtsi +220 −0
  630. arch/arm/boot/dts/am3517-evm.dts +1 −0
  631. arch/arm/boot/dts/am4372.dtsi +1 −1
  632. arch/arm/boot/dts/am437x-cm-t43.dts +10 −2
  633. arch/arm/boot/dts/am437x-gp-evm.dts +5 −1
  634. arch/arm/boot/dts/am437x-idk-evm.dts +5 −1
  635. arch/arm/boot/dts/am437x-sk-evm.dts +10 −2
  636. arch/arm/boot/dts/am43x-epos-evm.dts +5 −1
  637. arch/arm/boot/dts/am571x-idk.dts +80 −4
  638. arch/arm/boot/dts/am572x-idk-common.dtsi +76 −0
  639. arch/arm/boot/dts/am572x-idk.dts +0 −4
  640. arch/arm/boot/dts/am57xx-cl-som-am57x.dts +11 −3
  641. arch/arm/boot/dts/am57xx-idk-common.dtsi +16 −2
  642. arch/arm/boot/dts/arm-realview-eb.dtsi +1 −1
  643. arch/arm/boot/dts/arm-realview-pb1176.dts +1 −1
  644. arch/arm/boot/dts/arm-realview-pb11mp.dts +1 −1
  645. arch/arm/boot/dts/arm-realview-pbx.dtsi +1 −1
  646. arch/arm/boot/dts/armada-385-db-88f6820-amc.dts +155 −0
  647. arch/arm/boot/dts/armada-388-clearfog.dtsi +1 −1
  648. arch/arm/boot/dts/armada-xp-98dx3236.dtsi +2 −2
  649. arch/arm/boot/dts/armada-xp-98dx3336.dtsi +1 −1
  650. arch/arm/boot/dts/armada-xp-98dx4251.dtsi +1 −1
  651. arch/arm/boot/dts/armada-xp-db-dxbc2.dts +11 −7
  652. arch/arm/boot/dts/armada-xp-db-xc3-24g4xg.dts +11 −7
  653. arch/arm/boot/dts/aspeed-bmc-arm-stardragon4800-rep2.dts +207 −0
  654. arch/arm/boot/dts/aspeed-bmc-facebook-tiogapass.dts +146 −0
  655. arch/arm/boot/dts/aspeed-bmc-quanta-q71l.dts +47 −0
  656. arch/arm/boot/dts/aspeed-g4.dtsi +1 −1
  657. arch/arm/boot/dts/aspeed-g5.dtsi +1 −1
  658. arch/arm/boot/dts/at91-dvk_su60_somc.dtsi +2 −2
  659. arch/arm/boot/dts/at91-dvk_su60_somc_lcm.dtsi +2 −2
  660. arch/arm/boot/dts/at91-nattis-2-natte-2.dts +57 −46
  661. arch/arm/boot/dts/at91-sama5d27_som1_ek.dts +42 −0
  662. arch/arm/boot/dts/at91-sama5d2_ptc_ek.dts +6 −4
  663. arch/arm/boot/dts/at91-sama5d2_xplained.dts +30 −0
  664. arch/arm/boot/dts/at91-sama5d3_xplained.dts +8 −3
  665. arch/arm/boot/dts/at91-sama5d4_xplained.dts +9 −4
  666. arch/arm/boot/dts/at91-tse850-3.dts +13 −19
  667. arch/arm/boot/dts/at91-vinco.dts +1 −1
  668. arch/arm/boot/dts/at91sam9260ek.dts +1 −1
  669. arch/arm/boot/dts/at91sam9261ek.dts +1 −1
  670. arch/arm/boot/dts/at91sam9g20ek_common.dtsi +1 −1
  671. arch/arm/boot/dts/at91sam9g45.dtsi +1 −1
  672. arch/arm/boot/dts/at91sam9x5cm.dtsi +14 −4
  673. arch/arm/boot/dts/bcm-hr2.dtsi +1 −1
  674. arch/arm/boot/dts/bcm-nsp.dtsi +31 −2
  675. arch/arm/boot/dts/bcm2837-rpi-cm3-io3.dts +87 −0
  676. arch/arm/boot/dts/bcm2837-rpi-cm3.dtsi +52 −0
  677. arch/arm/boot/dts/bcm283x-rpi-lan7515.dtsi +14 −0
  678. arch/arm/boot/dts/bcm47081-tplink-archer-c5-v2.dts +28 −0
  679. arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts +31 −0
  680. arch/arm/boot/dts/bcm4709-tplink-archer-c9-v1.dts +28 −0
  681. arch/arm/boot/dts/bcm5301x-nand-cs0.dtsi +4 −0
  682. arch/arm/boot/dts/bcm5301x.dtsi +4 −1
  683. arch/arm/boot/dts/bcm63138.dtsi +8 −6
  684. arch/arm/boot/dts/bcm958625hr.dts +26 −0
  685. arch/arm/boot/dts/da850-evm.dts +6 −0
  686. arch/arm/boot/dts/da850-lego-ev3.dts +2 −1
  687. arch/arm/boot/dts/dm8148-evm.dts +12 −2
  688. arch/arm/boot/dts/dm8148-t410.dts +12 −2
  689. arch/arm/boot/dts/dove-cubox.dts +1 −1
  690. arch/arm/boot/dts/dove.dtsi +3 −3
  691. arch/arm/boot/dts/dra62x-j5eco-evm.dts +12 −2
  692. arch/arm/boot/dts/dra7-evm.dts +12 −2
  693. arch/arm/boot/dts/dra7.dtsi +4 −2
  694. arch/arm/boot/dts/dra71-evm.dts +2 −2
  695. arch/arm/boot/dts/dra72-evm-revc.dts +2 −2
  696. arch/arm/boot/dts/dra72-evm.dts +7 −1
  697. arch/arm/boot/dts/dra76-evm.dts +2 −2
  698. arch/arm/boot/dts/exynos3250-artik5.dtsi +7 −0
  699. arch/arm/boot/dts/exynos4210-origen.dts +9 −0
  700. arch/arm/boot/dts/exynos4210-trats.dts +15 −0
  701. arch/arm/boot/dts/exynos4210-universal_c210.dts +9 −2
  702. arch/arm/boot/dts/exynos4412-midas.dtsi +1 −2
  703. arch/arm/boot/dts/exynos4412-odroid-common.dtsi +1 −2
  704. arch/arm/boot/dts/exynos5250-arndale.dts +93 −9
  705. arch/arm/boot/dts/exynos5250-pinctrl.dtsi +11 −0
  706. arch/arm/boot/dts/exynos5250-snow-rev5.dts +11 −0
  707. arch/arm/boot/dts/exynos5250.dtsi +110 −42
  708. arch/arm/boot/dts/exynos5410-odroidxu.dts +9 −1
  709. arch/arm/boot/dts/exynos5420-peach-pit.dts +4 −1
  710. arch/arm/boot/dts/exynos5422-odroid-core.dtsi +145 −12
  711. arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi +6 −0
  712. arch/arm/boot/dts/exynos5422-odroidxu3.dts +6 −0
  713. arch/arm/boot/dts/exynos5800-peach-pi.dts +4 −1
  714. arch/arm/boot/dts/gr-peach-audiocamerashield.dtsi +0 −4
  715. arch/arm/boot/dts/hip04.dtsi +176 −170
  716. arch/arm/boot/dts/imx1.dtsi +2 −2
  717. arch/arm/boot/dts/imx23-evk.dts +1 −1
  718. arch/arm/boot/dts/imx23-olinuxino.dts +2 −2
  719. arch/arm/boot/dts/imx23-sansa.dts +2 −2
  720. arch/arm/boot/dts/imx23-stmp378x_devb.dts +1 −1
  721. arch/arm/boot/dts/imx23-xfi3.dts +2 −2
  722. arch/arm/boot/dts/imx23.dtsi +2 −2
  723. arch/arm/boot/dts/imx25.dtsi +3 −3
  724. arch/arm/boot/dts/imx27.dtsi +3 −3
  725. arch/arm/boot/dts/imx28-apf28dev.dts +2 −2
  726. arch/arm/boot/dts/imx28-apx4devkit.dts +2 −2
  727. arch/arm/boot/dts/imx28-cfa10036.dts +1 −1
  728. arch/arm/boot/dts/imx28-duckbill-2-485.dts +2 −2
  729. arch/arm/boot/dts/imx28-duckbill-2-enocean.dts +2 −2
  730. arch/arm/boot/dts/imx28-duckbill-2-spi.dts +2 −2
  731. arch/arm/boot/dts/imx28-duckbill-2.dts +2 −2
  732. arch/arm/boot/dts/imx28-duckbill.dts +2 −2
  733. arch/arm/boot/dts/imx28-evk.dts +3 −3
  734. arch/arm/boot/dts/imx28-m28cu3.dts +2 −2
  735. arch/arm/boot/dts/imx28-m28evk.dts +2 −2
  736. arch/arm/boot/dts/imx28-sps1.dts +2 −2
  737. arch/arm/boot/dts/imx28-ts4600.dts +1 −1
  738. arch/arm/boot/dts/imx28.dtsi +4 −4
  739. arch/arm/boot/dts/imx31.dtsi +2 −2
  740. arch/arm/boot/dts/imx35.dtsi +2 −2
  741. arch/arm/boot/dts/imx50.dtsi +3 −3
  742. arch/arm/boot/dts/imx51-babbage.dts +1 −0
  743. arch/arm/boot/dts/imx51-zii-rdu1.dts +1 −1
  744. arch/arm/boot/dts/imx51-zii-scu2-mezz.dts +8 −0
  745. arch/arm/boot/dts/imx51-zii-scu3-esb.dts +4 −0
  746. arch/arm/boot/dts/imx51.dtsi +4 −4
  747. arch/arm/boot/dts/imx53-ppd.dts +1 −2
  748. arch/arm/boot/dts/imx53-qsb-common.dtsi +11 −0
  749. arch/arm/boot/dts/imx53.dtsi +3 −3
  750. arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts +1 −1
  751. arch/arm/boot/dts/imx6dl-icore-mipi.dts +1 −1
  752. arch/arm/boot/dts/imx6dl-icore-rqs.dts +1 −37
  753. arch/arm/boot/dts/imx6dl-icore.dts +1 −37
  754. arch/arm/boot/dts/imx6dl-riotboard.dts +5 −0
  755. arch/arm/boot/dts/imx6q-apalis-eval.dts +2 −0
  756. arch/arm/boot/dts/imx6q-apalis-ixora-v1.1.dts +2 −0
  757. arch/arm/boot/dts/imx6q-apalis-ixora.dts +2 −0
  758. arch/arm/boot/dts/imx6q-icore-mipi.dts +3 −3
  759. arch/arm/boot/dts/imx6q-icore-ofcap10.dts +1 −37
  760. arch/arm/boot/dts/imx6q-icore-ofcap12.dts +1 −37
  761. arch/arm/boot/dts/imx6q-icore-rqs.dts +2 −37
  762. arch/arm/boot/dts/imx6q-icore.dts +1 −37
  763. arch/arm/boot/dts/imx6q.dtsi +1 −1
  764. arch/arm/boot/dts/imx6qdl-apalis.dtsi +0 −4
  765. arch/arm/boot/dts/imx6qdl-icore-1.5.dtsi +34 −0
  766. arch/arm/boot/dts/imx6qdl-icore-rqs.dtsi +3 −38
  767. arch/arm/boot/dts/imx6qdl-icore.dtsi +3 −39
  768. arch/arm/boot/dts/imx6qdl-sabreauto.dtsi +67 −0
  769. arch/arm/boot/dts/imx6qdl-wandboard.dtsi +4 −0
  770. arch/arm/boot/dts/imx6qdl-zii-rdu2.dtsi +4 −0
  771. arch/arm/boot/dts/imx6qdl.dtsi +4 −4
  772. arch/arm/boot/dts/imx6sl.dtsi +4 −4
  773. arch/arm/boot/dts/imx6sll.dtsi +32 −1
  774. arch/arm/boot/dts/imx6sx-sdb.dtsi +8 −1
  775. arch/arm/boot/dts/imx6sx.dtsi +7 −7
  776. arch/arm/boot/dts/imx6ul-ccimx6ulsbcpro.dts +390 −0
  777. arch/arm/boot/dts/imx6ul-geam.dts +2 −38
  778. arch/arm/boot/dts/imx6ul-isiot-emmc.dts +1 −60
  779. arch/arm/boot/dts/imx6ul-isiot-nand.dts +1 −62
  780. arch/arm/boot/dts/imx6ul-isiot.dtsi +53 −37
  781. arch/arm/boot/dts/imx6ul.dtsi +22 −6
  782. arch/arm/boot/dts/imx6ull-14x14-evk.dts +1 −1
  783. arch/arm/boot/dts/imx6ull-pinfunc.h +32 −7
  784. arch/arm/boot/dts/imx6ull.dtsi +1 −1
  785. arch/arm/boot/dts/imx6ulz-14x14-evk.dts +20 −0
  786. arch/arm/boot/dts/imx6ulz.dtsi +38 −0
  787. arch/arm/boot/dts/imx7d-sdb.dts +2 −0
  788. arch/arm/boot/dts/imx7d.dtsi +13 −7
  789. arch/arm/boot/dts/imx7s-warp.dts +15 −38
  790. arch/arm/boot/dts/imx7s.dtsi +74 −57
  791. arch/arm/boot/dts/imx7ulp-pinfunc.h +15 −1
  792. arch/arm/boot/dts/iwg20d-q7-common.dtsi +0 −4
  793. arch/arm/boot/dts/keystone-k2g.dtsi +1 −1
  794. arch/arm/boot/dts/lpc32xx.dtsi +2 −2
  795. arch/arm/boot/dts/ls1021a-qds.dts +2 −0
  796. arch/arm/boot/dts/ls1021a-twr.dts +2 −0
  797. arch/arm/boot/dts/ls1021a.dtsi +9 −3
  798. arch/arm/boot/dts/meson8.dtsi +1 −1
  799. arch/arm/boot/dts/meson8b-ec100.dts +248 −0
  800. arch/arm/boot/dts/meson8b-odroidc1.dts +109 −0
  801. arch/arm/boot/dts/meson8b.dtsi +46 −1
  802. arch/arm/boot/dts/mt7623.dtsi +124 −0
  803. arch/arm/boot/dts/omap2.dtsi +2 −2
  804. arch/arm/boot/dts/omap2430.dtsi +1 −1
  805. arch/arm/boot/dts/omap3-beagle-xm.dts +10 −7
  806. arch/arm/boot/dts/omap3-beagle.dts +10 −7
  807. arch/arm/boot/dts/omap3-gta04.dtsi +234 −28
  808. arch/arm/boot/dts/omap3-gta04a3.dts +1 −1
  809. arch/arm/boot/dts/omap3-gta04a4.dts +1 −1
  810. arch/arm/boot/dts/omap3-gta04a5.dts +126 −3
  811. arch/arm/boot/dts/omap3-gta04a5one.dts +114 −0
  812. arch/arm/boot/dts/omap3-n9.dts +1 −1
  813. arch/arm/boot/dts/omap5-board-common.dtsi +4 −0
  814. arch/arm/boot/dts/orion5x-linkstation.dtsi +1 −1
  815. arch/arm/boot/dts/owl-s500-cubieboard6.dts +1 −2
  816. arch/arm/boot/dts/owl-s500-guitar-bb-rev-b.dts +1 −2
  817. arch/arm/boot/dts/owl-s500-guitar.dtsi +1 −2
  818. arch/arm/boot/dts/owl-s500.dtsi +1 −2
  819. arch/arm/boot/dts/pxa25x.dtsi +4 −0
  820. arch/arm/boot/dts/pxa27x.dtsi +5 −1
  821. arch/arm/boot/dts/pxa2xx.dtsi +23 −4
  822. arch/arm/boot/dts/qcom-apq8064.dtsi +40 −31
  823. arch/arm/boot/dts/qcom-ipq4019.dtsi +75 −68
  824. arch/arm/boot/dts/qcom-ipq8064-ap148.dts +7 −76
  825. arch/arm/boot/dts/qcom-ipq8064-v1.0.dtsi +125 −0
  826. arch/arm/boot/dts/qcom-ipq8064.dtsi +286 −0
  827. arch/arm/boot/dts/qcom-msm8974-lge-nexus5-hammerhead.dts +83 −0
  828. arch/arm/boot/dts/qcom-msm8974.dtsi +115 −83
  829. arch/arm/boot/dts/r8a7743-iwg20d-q7-dbcm-ca.dts +4 −0
  830. arch/arm/boot/dts/r8a7743-iwg20d-q7.dts +4 −0
  831. arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts +12 −0
  832. arch/arm/boot/dts/r8a77470.dtsi +155 −13
  833. arch/arm/boot/dts/r8a7778-bockw.dts +1 −1
  834. arch/arm/boot/dts/r8a7778.dtsi +1 −1
  835. arch/arm/boot/dts/r8a7779-marzen.dts +1 −1
  836. arch/arm/boot/dts/r8a7779.dtsi +2 −2
  837. arch/arm/boot/dts/r8a7790-stout.dts +4 −0
  838. arch/arm/boot/dts/r8a7790.dtsi +3 −3
  839. arch/arm/boot/dts/r8a7791.dtsi +3 −3
  840. arch/arm/boot/dts/r8a7792.dtsi +1 −2
  841. arch/arm/boot/dts/r8a7793-gose.dts +16 −0
  842. arch/arm/boot/dts/r8a7793.dtsi +1 −1
  843. arch/arm/boot/dts/r8a7794-silk.dts +25 −0
  844. arch/arm/boot/dts/r8a7794.dtsi +1 −2
  845. arch/arm/boot/dts/r9a06g032.dtsi +83 −5
  846. arch/arm/boot/dts/rk3036.dtsi +1 −1
  847. arch/arm/boot/dts/rk3188-radxarock.dts +8 −0
  848. arch/arm/boot/dts/rk3188.dtsi +82 −0
  849. arch/arm/boot/dts/rk3288-tinker-s.dts +26 −0
  850. arch/arm/boot/dts/rk3288-tinker.dts +2 −496
  851. arch/arm/boot/dts/rk3288-tinker.dtsi +502 −0
  852. arch/arm/boot/dts/s5pv210.dtsi +1 −1
  853. arch/arm/boot/dts/sama5d2.dtsi +78 −45
  854. arch/arm/boot/dts/sama5d4.dtsi +4 −4
  855. arch/arm/boot/dts/socfpga.dtsi +18 −4
  856. arch/arm/boot/dts/socfpga_arria10.dtsi +28 −4
  857. arch/arm/boot/dts/socfpga_cyclone5_de0_nano_soc.dts +1 −1
  858. arch/arm/boot/dts/socfpga_cyclone5_socrates.dts +6 −1
  859. arch/arm/boot/dts/socfpga_cyclone5_vining_fpga.dts +2 −1
  860. arch/arm/boot/dts/ste-dbx5x0.dtsi +43 −37
  861. arch/arm/boot/dts/ste-href-family-pinctrl.dtsi +6 −2
  862. arch/arm/boot/dts/ste-href.dtsi +1 −0
  863. arch/arm/boot/dts/ste-hrefprev60.dtsi +1 −1
  864. arch/arm/boot/dts/ste-snowball.dts +2 −1
  865. arch/arm/boot/dts/ste-u300.dts +1 −1
  866. arch/arm/boot/dts/stih410-b2260.dts +4 −1
  867. arch/arm/boot/dts/stihxxx-b2120.dtsi +8 −3
  868. arch/arm/boot/dts/stm32429i-eval.dts +1 −2
  869. arch/arm/boot/dts/stm32f429.dtsi +1 −1
  870. arch/arm/boot/dts/stm32f469-disco.dts +1 −2
  871. arch/arm/boot/dts/stm32f746-disco.dts +1 −2
  872. arch/arm/boot/dts/stm32f769-disco.dts +1 −2
  873. arch/arm/boot/dts/stm32h743.dtsi +1 −1
  874. arch/arm/boot/dts/stm32mp157c-ev1.dts +67 −6
  875. arch/arm/boot/dts/stm32mp157c.dtsi +4 −4
  876. arch/arm/boot/dts/sun5i-reference-design-tablet.dtsi +2 −1
  877. arch/arm/boot/dts/sun5i.dtsi +26 −0
  878. arch/arm/boot/dts/sun7i-a20.dtsi +26 −0
  879. arch/arm/boot/dts/sun8i-a33.dtsi +26 −0
  880. arch/arm/boot/dts/sun8i-a83t-bananapi-m3.dts +5 −0
  881. arch/arm/boot/dts/sun8i-a83t.dtsi +18 −0
  882. arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus-v1.2.dts +13 −0
  883. arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts +2 −188
  884. arch/arm/boot/dts/sun8i-h3-orangepi-zero-plus2.dts +140 −0
  885. arch/arm/boot/dts/sun8i-h3.dtsi +25 −0
  886. arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts +19 −2
  887. arch/arm/boot/dts/sun8i-r40.dtsi +14 −2
  888. arch/arm/boot/dts/sun8i-reference-design-tablet.dtsi +2 −1
  889. arch/arm/boot/dts/sun8i-v40-bananapi-m2-berry.dts +1 −1
  890. arch/arm/boot/dts/sun9i-a80.dtsi +1 −1
  891. arch/arm/boot/dts/sunxi-bananapi-m2-plus-v1.2.dtsi +31 −0
  892. arch/arm/boot/dts/sunxi-bananapi-m2-plus.dtsi +231 −0
  893. arch/arm/boot/dts/sunxi-h3-h5.dtsi +1 −1
  894. arch/arm/boot/dts/tegra124-apalis-eval.dts +23 −17
  895. arch/arm/boot/dts/tegra124-apalis-v1.2-eval.dts +25 −18
  896. arch/arm/boot/dts/tegra124-apalis-v1.2.dtsi +229 −223
  897. arch/arm/boot/dts/tegra124-apalis.dtsi +229 −222
  898. arch/arm/boot/dts/tegra20-colibri-eval-v3.dts +262 −0
  899. arch/arm/boot/dts/tegra20-colibri-iris.dts +169 −31
  900. arch/arm/boot/dts/tegra20-colibri.dtsi +432 −225
  901. arch/arm/boot/dts/tegra20-paz00.dts +6 −6
  902. arch/arm/boot/dts/tegra20.dtsi +15 −13
  903. arch/arm/boot/dts/tegra30-apalis-eval.dts +61 −87
  904. arch/arm/boot/dts/tegra30-apalis-v1.1-eval.dts +266 −0
  905. arch/arm/boot/dts/tegra30-apalis-v1.1.dtsi +1189 −0
  906. arch/arm/boot/dts/tegra30-apalis.dtsi +544 −161
  907. arch/arm/boot/dts/tegra30-colibri-eval-v3.dts +57 −73
  908. arch/arm/boot/dts/tegra30-colibri.dtsi +649 −131
  909. arch/arm/boot/dts/tegra30.dtsi +7 −3
  910. arch/arm/boot/dts/uniphier-ld4-ref.dts +4 −0
  911. arch/arm/boot/dts/uniphier-ld4.dtsi +47 −1
  912. arch/arm/boot/dts/uniphier-ld6b-ref.dts +12 −0
  913. arch/arm/boot/dts/uniphier-pinctrl.dtsi +25 −0
  914. arch/arm/boot/dts/uniphier-pro4-ace.dts +12 −0
  915. arch/arm/boot/dts/uniphier-pro4-ref.dts +12 −0
  916. arch/arm/boot/dts/uniphier-pro4-sanji.dts +12 −0
  917. arch/arm/boot/dts/uniphier-pro4.dtsi +188 −1
  918. arch/arm/boot/dts/uniphier-pro5.dtsi +58 −1
  919. arch/arm/boot/dts/uniphier-pxs2-gentil.dts +12 −0
  920. arch/arm/boot/dts/uniphier-pxs2-vodka.dts +8 −0
  921. arch/arm/boot/dts/uniphier-pxs2.dtsi +238 −1
  922. arch/arm/boot/dts/uniphier-sld8-ref.dts +4 −0
  923. arch/arm/boot/dts/uniphier-sld8.dtsi +47 −1
  924. arch/arm/boot/dts/versatile-ab.dts +1 −1
  925. arch/arm/boot/dts/vf500.dtsi +3 −40
  926. arch/arm/boot/dts/vf610-twr.dts +3 −40
  927. arch/arm/boot/dts/vf610-zii-cfu1.dts +30 −0
  928. arch/arm/boot/dts/vf610-zii-dev-rev-c.dts +25 −19
  929. arch/arm/boot/dts/vf610.dtsi +4 −40
  930. arch/arm/boot/dts/vf610m4-colibri.dts +2 −2
  931. arch/arm/boot/dts/vfxxx.dtsi +9 −46
  932. arch/arm/boot/dts/zynq-zc702.dts +6 −6
  933. arch/arm/boot/dts/zynq-zc770-xm010.dts +1 −1
  934. arch/arm/boot/dts/zynq-zc770-xm013.dts +1 −1
  935. arch/arm/common/Kconfig +3 −0
  936. arch/arm/common/Makefile +1 −0
  937. arch/arm/common/krait-l2-accessors.c +48 −0
  938. arch/arm/configs/bcm2835_defconfig +1 −1
  939. arch/arm/configs/imx_v4_v5_defconfig +8 −10
  940. arch/arm/configs/imx_v6_v7_defconfig +23 −18
  941. arch/arm/configs/multi_v7_defconfig +13 −0
  942. arch/arm/configs/mxs_defconfig +8 −11
  943. arch/arm/configs/qcom_defconfig +1 −0
  944. arch/arm/configs/sama5_defconfig +2 −0
  945. arch/arm/configs/shmobile_defconfig +3 −5
  946. arch/arm/crypto/Kconfig +1 −6
  947. arch/arm/crypto/Makefile +0 −2
  948. arch/arm/crypto/chacha20-neon-core.S +143 −134
  949. arch/arm/crypto/crc32-ce-glue.c +1 −1
  950. arch/arm/crypto/ghash-ce-core.S +103 −5
  951. arch/arm/crypto/ghash-ce-glue.c +27 −11
  952. arch/arm/crypto/speck-neon-core.S +0 −434
  953. arch/arm/crypto/speck-neon-glue.c +0 −288
  954. arch/arm/include/asm/assembler.h +11 −0
  955. arch/arm/include/asm/bug.h +2 −2
  956. arch/arm/include/asm/cputype.h +1 −0
  957. arch/arm/include/asm/dma-mapping.h +2 −0
  958. arch/arm/include/asm/ftrace.h +0 −3
  959. arch/arm/include/asm/hugetlb-3level.h +1 −31
  960. arch/arm/include/asm/hugetlb.h +1 −32
  961. arch/arm/include/asm/io.h +0 −15
  962. arch/arm/include/asm/krait-l2-accessors.h +9 −0
  963. arch/arm/include/asm/kvm_arm.h +2 −2
  964. arch/arm/include/asm/kvm_host.h +12 −1
  965. arch/arm/include/asm/kvm_mmu.h +15 −5
  966. arch/arm/include/asm/paravirt.h +7 −2
  967. arch/arm/include/asm/pgtable-2level.h +1 −1
  968. arch/arm/include/asm/proc-fns.h +49 −12
  969. arch/arm/include/asm/processor.h +0 −6
  970. arch/arm/include/asm/stage2_pgtable.h +32 −22
  971. arch/arm/include/asm/thread_info.h +2 −2
  972. arch/arm/include/asm/topology.h +3 −0
  973. arch/arm/include/asm/uaccess.h +43 −6
  974. arch/arm/include/asm/unistd.h +2 −2
  975. arch/arm/kernel/armksyms.c +0 −3
  976. arch/arm/kernel/bugs.c +2 −2
  977. arch/arm/kernel/devtree.c +1 −5
  978. arch/arm/kernel/entry-common.S +4 −5
  979. arch/arm/kernel/entry-ftrace.S +4 −71
  980. arch/arm/kernel/ftrace.c +0 −51
  981. arch/arm/kernel/head-common.S +3 −3
  982. arch/arm/kernel/paravirt.c +2 −2
  983. arch/arm/kernel/ptrace.c +2 −9
  984. arch/arm/kernel/setup.c +27 −18
  985. arch/arm/kernel/signal.c +44 −36
  986. arch/arm/kernel/smp.c +31 −0
  987. arch/arm/kernel/swp_emulate.c +7 −9
  988. arch/arm/kernel/sys_oabi-compat.c +6 −2
  989. arch/arm/kernel/topology.c +0 −6
  990. arch/arm/kernel/traps.c +17 −46
  991. arch/arm/kernel/vmlinux-xip.lds.S +0 −1
  992. arch/arm/kernel/vmlinux.lds.h +2 −0
  993. arch/arm/kvm/coproc.c +4 −4
  994. arch/arm/lib/copy_from_user.S +1 −5
  995. arch/arm/lib/copy_to_user.S +5 −1
  996. arch/arm/lib/uaccess_with_memcpy.c +2 −1
  997. arch/arm/mach-at91/pm.c +3 −6
  998. arch/arm/mach-at91/pm_suspend.S +8 −0
  999. arch/arm/mach-davinci/board-neuros-osd2.c +4 −4
  1000. arch/arm/mach-davinci/include/mach/clock.h +0 −21
  1001. arch/arm/mach-ep93xx/core.c +9 −0
  1002. arch/arm/mach-ep93xx/snappercl15.c +6 −9
  1003. arch/arm/mach-ep93xx/ts72xx.c +6 −10
  1004. arch/arm/mach-exynos/common.h +1 −0
  1005. arch/arm/mach-exynos/firmware.c +11 −3
  1006. arch/arm/mach-exynos/suspend.c +24 −10
  1007. arch/arm/mach-imx/anatop.c +20 −0
  1008. arch/arm/mach-imx/cpu.c +3 −0
  1009. arch/arm/mach-imx/mach-mx21ads.c +11 −1
  1010. arch/arm/mach-imx/mach-mx27ads.c +11 −1
  1011. arch/arm/mach-imx/mach-qong.c +8 −9
  1012. arch/arm/mach-imx/mmdc.c +14 −0
  1013. arch/arm/mach-imx/mxc.h +7 −0
  1014. arch/arm/mach-imx/pm-imx6.c +27 −2
  1015. arch/arm/mach-integrator/integrator_cp.c +0 −2
  1016. arch/arm/mach-ixp4xx/ixdp425-setup.c +3 −3
  1017. arch/arm/mach-mmp/brownstone.c +11 −1
  1018. arch/arm/mach-mmp/devices.c +1 −10
  1019. arch/arm/mach-mvebu/board-v7.c +8 −6
  1020. arch/arm/mach-omap1/ams-delta-fiq-handler.S +3 −9
  1021. arch/arm/mach-omap1/board-ams-delta.c +96 −75
  1022. arch/arm/mach-omap1/board-fsample.c +2 −3
  1023. arch/arm/mach-omap1/board-h2.c +2 −3
  1024. arch/arm/mach-omap1/board-h3.c +2 −2
  1025. arch/arm/mach-omap1/board-nand.c +2 −3
  1026. arch/arm/mach-omap1/board-perseus2.c +2 −3
  1027. arch/arm/mach-omap1/common.h +2 −2
  1028. arch/arm/mach-omap1/include/mach/board-ams-delta.h +0 −7
  1029. arch/arm/mach-omap2/display.c +53 −58
  1030. arch/arm/mach-omap2/hsmmc.h +0 −2
  1031. arch/arm/mach-omap2/omap_hwmod.c +55 −39
  1032. arch/arm/mach-omap2/pdata-quirks.c +15 −3
  1033. arch/arm/mach-omap2/pm24xx.c +3 −4
  1034. arch/arm/mach-omap2/pm34xx.c +5 −9
  1035. arch/arm/mach-orion5x/ts78xx-setup.c +11 −16
  1036. arch/arm/mach-pxa/balloon3.c +6 −7
  1037. arch/arm/mach-pxa/em-x270.c +6 −9
  1038. arch/arm/mach-pxa/ezx.c +22 −11
  1039. arch/arm/mach-pxa/magician.c +1 −1
  1040. arch/arm/mach-pxa/palmtreo.c +0 −31
  1041. arch/arm/mach-pxa/palmtx.c +4 −6
  1042. arch/arm/mach-pxa/raumfeld.c +10 −2
  1043. arch/arm/mach-pxa/zeus.c +21 −2
  1044. arch/arm/mach-s3c24xx/mach-gta02.c +0 −42
  1045. arch/arm/mach-s3c24xx/mach-mini2440.c +60 −53
  1046. arch/arm/mach-s3c64xx/mach-crag6410.c +0 −1
  1047. arch/arm/mach-s3c64xx/mach-smdk6410.c +0 −1
  1048. arch/arm/mach-sa1100/assabet.c +14 −7
  1049. arch/arm/mach-sa1100/generic.c +3 −2
  1050. arch/arm/mach-sa1100/generic.h +2 −1
  1051. arch/arm/mach-sa1100/shannon.c +2 −2
  1052. arch/arm/mach-shmobile/Kconfig +12 −4
  1053. arch/arm/mach-shmobile/Makefile +1 −0
  1054. arch/arm/mach-shmobile/headsmp-scu.S +2 −11
  1055. arch/arm/mach-shmobile/headsmp.S +2 −5
  1056. arch/arm/mach-shmobile/platsmp-scu.c +1 −4
  1057. arch/arm/mach-shmobile/platsmp.c +1 −4
  1058. arch/arm/mach-shmobile/pm-rcar-gen2.c +3 −10
  1059. arch/arm/mach-shmobile/pm-rmobile.c +3 −6
  1060. arch/arm/mach-shmobile/pm-rmobile.h +2 −5
  1061. arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c +110 −29
  1062. arch/arm/mach-shmobile/setup-r7s9210.c +27 −0
  1063. arch/arm/mach-shmobile/setup-r8a7779.c +0 −2
  1064. arch/arm/mach-shmobile/setup-rcar-gen2.c +2 −0
  1065. arch/arm/mach-shmobile/smp-sh73a0.c +1 −9
  1066. arch/arm/mach-shmobile/suspend.c +1 −4
  1067. arch/arm/mach-shmobile/timer.c +3 −17
  1068. arch/arm/mach-u300/Kconfig +0 −13
  1069. arch/arm/mach-u300/Makefile +0 −1
  1070. arch/arm/mach-u300/dummyspichip.c +0 −276
  1071. arch/arm/mach-versatile/versatile_dt.c +0 −4
  1072. arch/arm/mach-zynq/slcr.c +1 −1
  1073. arch/arm/mm/alignment.c +1 −9
  1074. arch/arm/mm/dma-mapping-nommu.c +4 −7
  1075. arch/arm/mm/dma-mapping.c +0 −1
  1076. arch/arm/mm/fault.c +5 −23
  1077. arch/arm/mm/init.c +1 −2
  1078. arch/arm/mm/ioremap.c +1 −1
  1079. arch/arm/mm/mmu.c +1 −1
  1080. arch/arm/mm/proc-v7-bugs.c +2 −15
  1081. arch/arm/mm/proc-v7.S +1 −1
  1082. arch/arm/plat-orion/mpp.c +6 −1
  1083. arch/arm/plat-samsung/Kconfig +1 −1
  1084. arch/arm/tools/syscall.tbl +1 −0
  1085. arch/arm/vfp/vfpmodule.c +11 −20
  1086. arch/arm/xen/enlighten.c +0 −34
  1087. arch/arm/xen/mm.c +0 −1
  1088. arch/arm/xen/p2m.c +1 −1
  1089. arch/arm64/Kconfig +35 −6
  1090. arch/arm64/Kconfig.platforms +38 −24
  1091. arch/arm64/Makefile +3 −16
  1092. arch/arm64/boot/dts/actions/Makefile +2 −0
  1093. arch/arm64/boot/dts/actions/s700-cubieboard7.dts +0 −7
  1094. arch/arm64/boot/dts/actions/s700.dtsi +21 −0
  1095. arch/arm64/boot/dts/actions/s900-bubblegum-96.dts +217 −7
  1096. arch/arm64/boot/dts/actions/s900.dtsi +116 −2
  1097. arch/arm64/boot/dts/allwinner/Makefile +4 −0
  1098. arch/arm64/boot/dts/allwinner/sun50i-a64-amarula-relic.dts +1 −1
  1099. arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts +28 −2
  1100. arch/arm64/boot/dts/allwinner/sun50i-a64-nanopi-a64.dts +81 −4
  1101. arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts +96 −3
  1102. arch/arm64/boot/dts/allwinner/sun50i-a64-orangepi-win.dts +169 −6
  1103. arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-lts.dts +13 −0
  1104. arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts +27 −1
  1105. arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts +4 −5
  1106. arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts +27 −1
  1107. arch/arm64/boot/dts/allwinner/sun50i-a64-teres-i.dts +1 −1
  1108. arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi +190 −3
  1109. arch/arm64/boot/dts/allwinner/sun50i-h5-bananapi-m2-plus-v1.2.dts +11 −0
  1110. arch/arm64/boot/dts/allwinner/sun50i-h5-bananapi-m2-plus.dts +11 −0
  1111. arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi +43 −0
  1112. arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dts +150 −0
  1113. arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi +23 −0
  1114. arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi +46 −2
  1115. arch/arm64/boot/dts/altera/socfpga_stratix10_socdk.dts +6 −1
  1116. arch/arm64/boot/dts/amd/amd-seattle-soc.dtsi +2 −2
  1117. arch/arm64/boot/dts/amlogic/Makefile +1 −0
  1118. arch/arm64/boot/dts/amlogic/meson-axg-s400.dts +294 −76
  1119. arch/arm64/boot/dts/amlogic/meson-axg.dtsi +847 −768
  1120. arch/arm64/boot/dts/amlogic/meson-g12a-u200.dts +29 −0
  1121. arch/arm64/boot/dts/amlogic/meson-g12a.dtsi +172 −0
  1122. arch/arm64/boot/dts/amlogic/meson-gx.dtsi +16 −3
  1123. arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi +1 −1
  1124. arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts +1 −1
  1125. arch/arm64/boot/dts/amlogic/meson-gxl.dtsi +1 −1
  1126. arch/arm64/boot/dts/arm/juno-base.dtsi +83 −79
  1127. arch/arm64/boot/dts/arm/juno-cs-r1r2.dtsi +18 −34
  1128. arch/arm64/boot/dts/arm/juno.dts +5 −8
  1129. arch/arm64/boot/dts/broadcom/Makefile +2 −1
  1130. arch/arm64/boot/dts/broadcom/bcm2837-rpi-cm3-io3.dts +2 −0
  1131. arch/arm64/boot/dts/broadcom/northstar2/ns2.dtsi +2 −2
  1132. arch/arm64/boot/dts/broadcom/stingray/bcm958742-base.dtsi +1 −1
  1133. arch/arm64/boot/dts/broadcom/stingray/stingray.dtsi +2 −2
  1134. arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi +15 −3
  1135. arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi +1 −1
  1136. arch/arm64/boot/dts/freescale/fsl-ls1043a-qds.dts +2 −0
  1137. arch/arm64/boot/dts/freescale/fsl-ls1043a-rdb.dts +2 −0
  1138. arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi +4 −4
  1139. arch/arm64/boot/dts/freescale/fsl-ls1046a-qds.dts +2 −0
  1140. arch/arm64/boot/dts/freescale/fsl-ls1046a-rdb.dts +2 −2
  1141. arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi +3 −3
  1142. arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi +24 −3
  1143. arch/arm64/boot/dts/hisilicon/Makefile +1 −0
  1144. arch/arm64/boot/dts/hisilicon/hi3670-hikey970.dts +35 −0
  1145. arch/arm64/boot/dts/hisilicon/hi3670.dtsi +162 −0
  1146. arch/arm64/boot/dts/hisilicon/hi6220-coresight.dtsi +86 −95
  1147. arch/arm64/boot/dts/hisilicon/hi6220.dtsi +7 −0
  1148. arch/arm64/boot/dts/lg/lg1312.dtsi +2 −2
  1149. arch/arm64/boot/dts/lg/lg1313.dtsi +2 −2
  1150. arch/arm64/boot/dts/marvell/Makefile +1 −0
  1151. arch/arm64/boot/dts/marvell/armada-372x.dtsi +1 −1
  1152. arch/arm64/boot/dts/marvell/armada-37xx.dtsi +14 −1
  1153. arch/arm64/boot/dts/marvell/armada-8040-clearfog-gt-8k.dts +441 −0
  1154. arch/arm64/boot/dts/marvell/armada-ap806-dual.dtsi +2 −2
  1155. arch/arm64/boot/dts/marvell/armada-ap806-quad.dtsi +8 −4
  1156. arch/arm64/boot/dts/marvell/armada-ap806.dtsi +106 −4
  1157. arch/arm64/boot/dts/marvell/armada-ap810-ap0-octa-core.dtsi +8 −8
  1158. arch/arm64/boot/dts/marvell/armada-common.dtsi +1 −0
  1159. arch/arm64/boot/dts/marvell/armada-cp110.dtsi +122 −67
  1160. arch/arm64/boot/dts/mediatek/Makefile +1 −0
  1161. arch/arm64/boot/dts/mediatek/mt2712e.dtsi +11 −0
  1162. arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts +530 −0
  1163. arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts +98 −98
  1164. arch/arm64/boot/dts/mediatek/mt7622.dtsi +62 −0
  1165. arch/arm64/boot/dts/nvidia/tegra186.dtsi +76 −0
  1166. arch/arm64/boot/dts/nvidia/tegra194.dtsi +8 −8
  1167. arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi +2 −10
  1168. arch/arm64/boot/dts/nvidia/tegra210-p2597.dtsi +0 −1
  1169. arch/arm64/boot/dts/nvidia/tegra210.dtsi +57 −0
  1170. arch/arm64/boot/dts/qcom/Makefile +1 −0
  1171. arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi +14 −0
  1172. arch/arm64/boot/dts/qcom/apq8096-db820c.dts +1 −1
  1173. arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi +14 −0
  1174. arch/arm64/boot/dts/qcom/msm8916.dtsi +51 −47
  1175. arch/arm64/boot/dts/qcom/msm8996.dtsi +4 −11
  1176. arch/arm64/boot/dts/qcom/msm8998-mtp.dts +13 −0
  1177. arch/arm64/boot/dts/qcom/msm8998-mtp.dtsi +243 −0
  1178. arch/arm64/boot/dts/qcom/msm8998.dtsi +690 −0
  1179. arch/arm64/boot/dts/qcom/pm8916.dtsi +13 −5
  1180. arch/arm64/boot/dts/qcom/pm8994.dtsi +18 −0
  1181. arch/arm64/boot/dts/qcom/pm8998.dtsi +74 −1
  1182. arch/arm64/boot/dts/qcom/pmi8998.dtsi +40 −0
  1183. arch/arm64/boot/dts/qcom/sdm845-mtp.dts +382 −0
  1184. arch/arm64/boot/dts/qcom/sdm845.dtsi +300 −0
  1185. arch/arm64/boot/dts/renesas/Makefile +2 −0
  1186. arch/arm64/boot/dts/renesas/r8a774a1.dtsi +1663 −0
  1187. arch/arm64/boot/dts/renesas/r8a7795-es1-salvator-x.dts +1 −2
  1188. arch/arm64/boot/dts/renesas/r8a7795-es1.dtsi +9 −9
  1189. arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts +1 −2
  1190. arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts +1 −2
  1191. arch/arm64/boot/dts/renesas/r8a7795-salvator-xs.dts +15 −2
  1192. arch/arm64/boot/dts/renesas/r8a7795.dtsi +81 −58
  1193. arch/arm64/boot/dts/renesas/r8a7796-m3ulcb.dts +1 −2
  1194. arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts +1 −2
  1195. arch/arm64/boot/dts/renesas/r8a7796.dtsi +63 −40
  1196. arch/arm64/boot/dts/renesas/r8a77965-m3nulcb-kf.dts +16 −0
  1197. arch/arm64/boot/dts/renesas/r8a77965-m3nulcb.dts +33 −0
  1198. arch/arm64/boot/dts/renesas/r8a77965-salvator-xs.dts +14 −0
  1199. arch/arm64/boot/dts/renesas/r8a77965.dtsi +369 −48
  1200. arch/arm64/boot/dts/renesas/r8a77970-v3msk.dts +26 −0
  1201. arch/arm64/boot/dts/renesas/r8a77970.dtsi +104 −12
  1202. arch/arm64/boot/dts/renesas/r8a77980-condor.dts +143 −19
  1203. arch/arm64/boot/dts/renesas/r8a77980-v3hsk.dts +134 −0
  1204. arch/arm64/boot/dts/renesas/r8a77980.dtsi +608 −69
  1205. arch/arm64/boot/dts/renesas/r8a77990-ebisu.dts +272 −0
  1206. arch/arm64/boot/dts/renesas/r8a77990.dtsi +654 −27
  1207. arch/arm64/boot/dts/renesas/r8a77995-draak.dts +229 −133
  1208. arch/arm64/boot/dts/renesas/r8a77995.dtsi +75 −7
  1209. arch/arm64/boot/dts/renesas/salvator-common.dtsi +8 −1
  1210. arch/arm64/boot/dts/renesas/ulcb-kf.dtsi +1 −1
  1211. arch/arm64/boot/dts/renesas/ulcb.dtsi +4 −0
  1212. arch/arm64/boot/dts/rockchip/Makefile +4 −0
  1213. arch/arm64/boot/dts/rockchip/px30-evb.dts +235 −0
  1214. arch/arm64/boot/dts/rockchip/px30.dtsi +2047 −0
  1215. arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts +30 −0
  1216. arch/arm64/boot/dts/rockchip/rk3328-rock64.dts +59 −2
  1217. arch/arm64/boot/dts/rockchip/rk3328.dtsi +73 −1
  1218. arch/arm64/boot/dts/rockchip/rk3399-ficus.dts +5 −519
  1219. arch/arm64/boot/dts/rockchip/rk3399-firefly.dts +36 −0
  1220. arch/arm64/boot/dts/rockchip/rk3399-puma-haikou.dts +1 −1
  1221. arch/arm64/boot/dts/rockchip/rk3399-roc-pc.dts +680 −0
  1222. arch/arm64/boot/dts/rockchip/rk3399-rock960.dts +52 −0
  1223. arch/arm64/boot/dts/rockchip/rk3399-rock960.dtsi +542 −0
  1224. arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts +692 −0
  1225. arch/arm64/boot/dts/rockchip/rk3399-sapphire.dtsi +50 −18
  1226. arch/arm64/boot/dts/rockchip/rk3399.dtsi +32 −0
  1227. arch/arm64/boot/dts/socionext/uniphier-ld11.dtsi +51 −1
  1228. arch/arm64/boot/dts/socionext/uniphier-ld20-global.dts +4 −0
  1229. arch/arm64/boot/dts/socionext/uniphier-ld20-ref.dts +4 −0
  1230. arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi +254 −1
  1231. arch/arm64/boot/dts/socionext/uniphier-pxs3-ref.dts +12 −0
  1232. arch/arm64/boot/dts/socionext/uniphier-pxs3.dtsi +282 −1
  1233. arch/arm64/boot/dts/synaptics/as370.dtsi +173 −0
  1234. arch/arm64/boot/dts/ti/k3-am65-main.dtsi +46 −5
  1235. arch/arm64/boot/dts/ti/k3-am65-mcu.dtsi +18 −0
  1236. arch/arm64/boot/dts/ti/k3-am65-wakeup.dtsi +46 −0
  1237. arch/arm64/boot/dts/ti/k3-am65.dtsi +32 −22
  1238. arch/arm64/boot/dts/ti/k3-am654-base-board.dts +5 −0
  1239. arch/arm64/configs/defconfig +24 −1
  1240. arch/arm64/crypto/Kconfig +0 −11
  1241. arch/arm64/crypto/Makefile +0 −6
  1242. arch/arm64/crypto/aes-ce.S +5 −0
  1243. arch/arm64/crypto/aes-glue.c +193 −24
  1244. arch/arm64/crypto/aes-modes.S +216 −200
  1245. arch/arm64/crypto/aes-neon.S +6 −0
  1246. arch/arm64/crypto/crc32-ce-core.S +0 −287
  1247. arch/arm64/crypto/crc32-ce-glue.c +0 −244
  1248. arch/arm64/crypto/crct10dif-ce-core.S +239 −75
  1249. arch/arm64/crypto/crct10dif-ce-glue.c +12 −2
  1250. arch/arm64/crypto/speck-neon-core.S +0 −352
  1251. arch/arm64/crypto/speck-neon-glue.c +0 −282
  1252. arch/arm64/include/asm/assembler.h +3 −4
  1253. arch/arm64/include/asm/cache.h +40 −0
  1254. arch/arm64/include/asm/compat.h +6 −21
  1255. arch/arm64/include/asm/compiler.h +0 −30
  1256. arch/arm64/include/asm/cpucaps.h +5 −2
  1257. arch/arm64/include/asm/cpufeature.h +29 −1
  1258. arch/arm64/include/asm/cputype.h +2 −0
  1259. arch/arm64/include/asm/daifflags.h +5 −10
  1260. arch/arm64/include/asm/device.h +0 −1
  1261. arch/arm64/include/asm/dma-mapping.h +5 −2
  1262. arch/arm64/include/asm/esr.h +77 −0
  1263. arch/arm64/include/asm/hugetlb.h +7 −32
  1264. arch/arm64/include/asm/io.h +0 −9
  1265. arch/arm64/include/asm/jump_label.h +18 −20
  1266. arch/arm64/include/asm/kernel-pgtable.h +1 −1
  1267. arch/arm64/include/asm/kvm_arm.h +126 −30
  1268. arch/arm64/include/asm/kvm_asm.h +1 −2
  1269. arch/arm64/include/asm/kvm_emulate.h +1 −1
  1270. arch/arm64/include/asm/kvm_host.h +20 −9
  1271. arch/arm64/include/asm/kvm_hyp.h +10 −0
  1272. arch/arm64/include/asm/kvm_mmu.h +39 −8
  1273. arch/arm64/include/asm/mmu.h +3 −0
  1274. arch/arm64/include/asm/mmu_context.h +15 −2
  1275. arch/arm64/include/asm/page.h +0 −2
  1276. arch/arm64/include/asm/paravirt.h +7 −2
  1277. arch/arm64/include/asm/percpu.h +3 −0
  1278. arch/arm64/include/asm/pgtable-hwdef.h +2 −0
  1279. arch/arm64/include/asm/pgtable.h +41 −7
  1280. arch/arm64/include/asm/processor.h +13 −9
  1281. arch/arm64/include/asm/ptrace.h +4 −0
  1282. arch/arm64/include/asm/stage2_pgtable-nopmd.h +0 −42
  1283. arch/arm64/include/asm/stage2_pgtable-nopud.h +0 −39
  1284. arch/arm64/include/asm/stage2_pgtable.h +170 −66
  1285. arch/arm64/include/asm/stat.h +1 −1
  1286. arch/arm64/include/asm/string.h +8 −6
  1287. arch/arm64/include/asm/sysreg.h +32 −12
  1288. arch/arm64/include/asm/system_misc.h +2 −1
  1289. arch/arm64/include/asm/tlb.h +13 −21
  1290. arch/arm64/include/asm/tlbflush.h +70 −42
  1291. arch/arm64/include/asm/topology.h +3 −0
  1292. arch/arm64/include/asm/traps.h +3 −2
  1293. arch/arm64/include/asm/uaccess.h +0 −1
  1294. arch/arm64/include/asm/unistd.h +1 −1
  1295. arch/arm64/include/asm/xen/events.h +1 −1
  1296. arch/arm64/include/uapi/asm/Kbuild +1 −0
  1297. arch/arm64/include/uapi/asm/hwcap.h +1 −0
  1298. arch/arm64/include/uapi/asm/ptrace.h +1 −0
  1299. arch/arm64/include/uapi/asm/siginfo.h +0 −24
  1300. arch/arm64/include/uapi/asm/unistd.h +1 −0
  1301. arch/arm64/kernel/acpi.c +0 −1
  1302. arch/arm64/kernel/acpi_numa.c +0 −1
  1303. arch/arm64/kernel/arm64ksyms.c +5 −2
  1304. arch/arm64/kernel/cpu_errata.c +78 −18
  1305. arch/arm64/kernel/cpufeature.c +173 −22
  1306. arch/arm64/kernel/cpuinfo.c +10 −1
  1307. arch/arm64/kernel/crash_dump.c +1 −1
  1308. arch/arm64/kernel/debug-monitors.c +3 −8
  1309. arch/arm64/kernel/entry.S +15 −3
  1310. arch/arm64/kernel/fpsimd.c +3 −7
  1311. arch/arm64/kernel/head.S +22 −18
  1312. arch/arm64/kernel/jump_label.c +3 −3
  1313. arch/arm64/kernel/paravirt.c +2 −2
  1314. arch/arm64/kernel/pci.c +2 −3
  1315. arch/arm64/kernel/perf_event.c +7 −0
  1316. arch/arm64/kernel/probes/kprobes.c +21 −8
  1317. arch/arm64/kernel/process.c +4 −22
  1318. arch/arm64/kernel/psci.c +0 −1
  1319. arch/arm64/kernel/ptrace.c +7 −9
  1320. arch/arm64/kernel/setup.c +29 −34
  1321. arch/arm64/kernel/sleep.S +1 −0
  1322. arch/arm64/kernel/smp.c +1 −1
  1323. arch/arm64/kernel/ssbd.c +21 −3
  1324. arch/arm64/kernel/suspend.c +4 −0
  1325. arch/arm64/kernel/sys_compat.c +5 −8
  1326. arch/arm64/kernel/traps.c +230 −46
  1327. arch/arm64/kernel/vmlinux.lds.S +20 −16
  1328. arch/arm64/kvm/guest.c +57 −4
  1329. arch/arm64/kvm/handle_exit.c +7 −0
  1330. arch/arm64/kvm/hyp-init.S +3 −0
  1331. arch/arm64/kvm/hyp/Makefile +0 −1
  1332. arch/arm64/kvm/hyp/hyp-entry.S +15 −1
  1333. arch/arm64/kvm/hyp/s2-setup.c +0 −90
  1334. arch/arm64/kvm/hyp/switch.c +2 −2
  1335. arch/arm64/kvm/hyp/sysreg-sr.c +29 −1
  1336. arch/arm64/kvm/hyp/tlb.c +2 −2
  1337. arch/arm64/kvm/reset.c +105 −3
  1338. arch/arm64/lib/Makefile +3 −1
  1339. arch/arm64/lib/crc32.S +60 −0
  1340. arch/arm64/lib/memchr.S +1 −1
  1341. arch/arm64/lib/memcmp.S +1 −1
  1342. arch/arm64/lib/strchr.S +1 −1
  1343. arch/arm64/lib/strcmp.S +1 −1
  1344. arch/arm64/lib/strlen.S +1 −1
  1345. arch/arm64/lib/strncmp.S +1 −1
  1346. arch/arm64/lib/strnlen.S +1 −1
  1347. arch/arm64/lib/strrchr.S +1 −1
  1348. arch/arm64/mm/context.c +7 −4
  1349. arch/arm64/mm/dma-mapping.c +56 −215
  1350. arch/arm64/mm/dump.c +3 −3
  1351. arch/arm64/mm/fault.c +48 −84
  1352. arch/arm64/mm/hugetlbpage.c +43 −7
  1353. arch/arm64/mm/init.c +2 −7
  1354. arch/arm64/mm/kasan_init.c +2 −3
  1355. arch/arm64/mm/mmu.c +26 −22
  1356. arch/arm64/mm/numa.c +10 −8
  1357. arch/arm64/mm/proc.S +8 −3
  1358. arch/c6x/Kconfig +1 −2
  1359. arch/c6x/Makefile +0 −2
  1360. arch/c6x/boot/dts/Makefile +7 −10
  1361. arch/c6x/boot/dts/linked_dtb.S +0 −2
  1362. arch/c6x/include/asm/processor.h +0 −11
  1363. arch/c6x/include/asm/sections.h +0 −1
  1364. arch/c6x/include/uapi/asm/unistd.h +1 −0
  1365. arch/c6x/kernel/setup.c +6 −36
  1366. arch/c6x/kernel/vmlinux.lds.S +0 −10
  1367. arch/c6x/mm/dma-coherent.c +2 −2
  1368. arch/c6x/mm/init.c +4 −3
  1369. arch/csky/Kconfig +203 −0
  1370. arch/csky/Kconfig.debug +1 −0
  1371. arch/csky/Makefile +82 −0
  1372. arch/csky/abiv1/Makefile +8 −0
  1373. arch/csky/abiv1/alignment.c +326 −0
  1374. arch/csky/abiv1/bswapdi.c +12 −0
  1375. arch/csky/abiv1/bswapsi.c +12 −0
  1376. arch/csky/abiv1/cacheflush.c +52 −0
  1377. arch/csky/abiv1/inc/abi/cacheflush.h +49 −0
  1378. arch/csky/abiv1/inc/abi/ckmmu.h +75 −0
  1379. arch/csky/abiv1/inc/abi/elf.h +26 −0
  1380. arch/csky/abiv1/inc/abi/entry.h +160 −0
  1381. arch/csky/abiv1/inc/abi/page.h +27 −0
  1382. arch/csky/abiv1/inc/abi/pgtable-bits.h +37 −0
  1383. arch/csky/abiv1/inc/abi/reg_ops.h +27 −0
  1384. arch/csky/abiv1/inc/abi/regdef.h +26 −0
  1385. arch/csky/abiv1/inc/abi/string.h +13 −0
  1386. arch/csky/abiv1/inc/abi/vdso.h +17 −0
  1387. arch/csky/abiv1/memcpy.S +347 −0
  1388. arch/csky/abiv1/memset.c +37 −0
  1389. arch/csky/abiv1/mmap.c +66 −0
  1390. arch/csky/abiv1/strksyms.c +7 −0
  1391. arch/csky/abiv2/Makefile +10 −0
  1392. arch/csky/abiv2/cacheflush.c +60 −0
  1393. arch/csky/abiv2/fpu.c +275 −0
  1394. arch/csky/abiv2/inc/abi/cacheflush.h +46 −0
  1395. arch/csky/abiv2/inc/abi/ckmmu.h +87 −0
  1396. arch/csky/abiv2/inc/abi/elf.h +43 −0
  1397. arch/csky/abiv2/inc/abi/entry.h +156 −0
  1398. arch/csky/abiv2/inc/abi/fpu.h +66 −0
  1399. arch/csky/abiv2/inc/abi/page.h +14 −0
  1400. arch/csky/abiv2/inc/abi/pgtable-bits.h +37 −0
  1401. arch/csky/abiv2/inc/abi/reg_ops.h +17 −0
  1402. arch/csky/abiv2/inc/abi/regdef.h +26 −0
  1403. arch/csky/abiv2/inc/abi/string.h +27 −0
  1404. arch/csky/abiv2/inc/abi/vdso.h +23 −0
  1405. arch/csky/abiv2/memcmp.S +152 −0
  1406. arch/csky/abiv2/memcpy.S +110 −0
  1407. arch/csky/abiv2/memmove.S +108 −0
  1408. arch/csky/abiv2/memset.S +83 −0
  1409. arch/csky/abiv2/strcmp.S +168 −0
  1410. arch/csky/abiv2/strcpy.S +123 −0
  1411. arch/csky/abiv2/strksyms.c +12 −0
  1412. arch/csky/abiv2/strlen.S +97 −0
  1413. arch/csky/abiv2/sysdep.h +30 −0
  1414. arch/csky/boot/Makefile +24 −0
  1415. arch/csky/boot/dts/Makefile +3 −0
  1416. arch/csky/boot/dts/include/dt-bindings +1 −0
  1417. arch/csky/configs/defconfig +61 −0
  1418. arch/csky/include/asm/Kbuild +49 −0
  1419. arch/csky/include/asm/addrspace.h +10 −0
  1420. arch/csky/include/asm/atomic.h +212 −0
  1421. arch/csky/include/asm/barrier.h +49 −0
  1422. arch/csky/include/asm/bitops.h +82 −0
  1423. arch/csky/include/asm/bug.h +26 −0
  1424. arch/csky/include/asm/cache.h +30 −0
  1425. arch/csky/include/asm/cacheflush.h +9 −0
  1426. arch/csky/include/asm/checksum.h +50 −0
  1427. arch/csky/include/asm/cmpxchg.h +73 −0
  1428. arch/csky/include/asm/elf.h +85 −0
  1429. arch/csky/include/asm/fixmap.h +27 −0
  1430. arch/csky/include/asm/highmem.h +51 −0
  1431. arch/csky/include/asm/io.h +24 −0
  1432. arch/csky/include/asm/irqflags.h +49 −0
  1433. arch/csky/include/asm/mmu.h +12 −0
  1434. arch/csky/include/asm/mmu_context.h +150 −0
  1435. arch/csky/include/asm/page.h +104 −0
  1436. arch/csky/include/asm/pgalloc.h +115 −0
  1437. arch/csky/include/asm/pgtable.h +306 −0
  1438. arch/csky/include/asm/processor.h +115 −0
  1439. arch/csky/include/asm/reg_ops.h +26 −0
  1440. arch/csky/include/asm/segment.h +19 −0
  1441. arch/csky/include/asm/shmparam.h +11 −0
  1442. arch/csky/include/asm/smp.h +26 −0
  1443. arch/csky/include/asm/spinlock.h +256 −0
  1444. arch/csky/include/asm/spinlock_types.h +37 −0
  1445. arch/csky/include/asm/string.h +13 −0
  1446. arch/csky/include/asm/switch_to.h +36 −0
  1447. arch/csky/include/asm/syscall.h +71 −0
  1448. arch/csky/include/asm/syscalls.h +15 −0
  1449. arch/csky/include/asm/thread_info.h +75 −0
  1450. arch/csky/include/asm/tlb.h +25 −0
  1451. arch/csky/include/asm/tlbflush.h +25 −0
  1452. arch/csky/include/asm/traps.h +44 −0
  1453. arch/csky/include/asm/uaccess.h +416 −0
  1454. arch/csky/include/asm/unistd.h +4 −0
  1455. arch/csky/include/asm/vdso.h +12 −0
  1456. arch/csky/include/uapi/asm/Kbuild +32 −0
  1457. arch/csky/include/uapi/asm/byteorder.h +9 −0
  1458. arch/csky/include/uapi/asm/cachectl.h +13 −0
  1459. arch/csky/include/uapi/asm/ptrace.h +104 −0
  1460. arch/csky/include/uapi/asm/sigcontext.h +14 −0
  1461. arch/csky/include/uapi/asm/unistd.h +10 −0
  1462. arch/csky/kernel/Makefile +8 −0
  1463. arch/csky/kernel/asm-offsets.c +88 −0
  1464. arch/csky/kernel/atomic.S +87 −0
  1465. arch/csky/kernel/cpu-probe.c +79 −0
  1466. arch/csky/kernel/dumpstack.c +66 −0
  1467. arch/csky/kernel/entry.S +396 −0
  1468. arch/csky/kernel/head.S +77 −0
  1469. arch/csky/kernel/irq.c +22 −0
  1470. arch/csky/kernel/module.c +92 −0
  1471. arch/csky/kernel/power.c +30 −0
  1472. arch/csky/kernel/process.c +136 −0
  1473. arch/csky/kernel/ptrace.c +314 −0
  1474. arch/csky/kernel/setup.c +161 −0
  1475. arch/csky/kernel/signal.c +347 −0
  1476. arch/csky/kernel/smp.c +237 −0
  1477. arch/csky/kernel/syscall.c +43 −0
  1478. arch/csky/kernel/syscall_table.c +14 −0
  1479. arch/csky/kernel/time.c +11 −0
  1480. arch/csky/kernel/traps.c +169 −0
  1481. arch/csky/kernel/vdso.c +86 −0
  1482. arch/csky/kernel/vmlinux.lds.S +66 −0
  1483. arch/csky/lib/Makefile +1 −0
  1484. arch/csky/lib/delay.c +39 −0
  1485. arch/csky/lib/usercopy.c +262 −0
  1486. arch/csky/mm/Makefile +13 −0
  1487. arch/csky/mm/cachev1.c +126 −0
  1488. arch/csky/mm/cachev2.c +79 −0
  1489. arch/csky/mm/dma-mapping.c +254 −0
  1490. arch/csky/mm/fault.c +212 −0
  1491. arch/csky/mm/highmem.c +198 −0
  1492. arch/csky/mm/init.c +121 −0
  1493. arch/csky/mm/ioremap.c +48 −0
  1494. arch/csky/mm/syscache.c +32 −0
  1495. arch/csky/mm/tlb.c +219 −0
  1496. arch/h8300/Kconfig +0 −2
  1497. arch/h8300/Makefile +1 −10
  1498. arch/h8300/include/asm/processor.h +0 −6
  1499. arch/h8300/include/uapi/asm/unistd.h +1 −0
  1500. arch/h8300/kernel/setup.c +0 −1
  1501. arch/h8300/kernel/vmlinux.lds.S +0 −1
  1502. arch/h8300/mm/init.c +3 −3
  1503. arch/hexagon/Kconfig +3 −0
  1504. arch/hexagon/include/asm/Kbuild +1 −0
  1505. arch/hexagon/include/asm/dma-mapping.h +0 −40
  1506. arch/hexagon/include/asm/processor.h +0 −3
  1507. arch/hexagon/include/uapi/asm/unistd.h +1 −0
  1508. arch/hexagon/kernel/dma.c +9 −136
  1509. arch/hexagon/kernel/setup.c +1 −1
  1510. arch/hexagon/mm/init.c +9 −14
  1511. arch/ia64/Kconfig +0 −2
  1512. arch/ia64/hp/common/sba_iommu.c +0 −4
  1513. arch/ia64/hp/sim/simserial.c +13 −11
  1514. arch/ia64/include/asm/dma-mapping.h +0 −7
  1515. arch/ia64/include/asm/hugetlb.h +5 −42
  1516. arch/ia64/include/asm/iommu.h +0 −2
  1517. arch/ia64/include/asm/machvec.h +0 −7
  1518. arch/ia64/include/asm/machvec_init.h +0 −1
  1519. arch/ia64/include/asm/machvec_sn2.h +0 −2
  1520. arch/ia64/include/asm/pgtable.h +0 −1
  1521. arch/ia64/include/asm/processor.h +0 −6
  1522. arch/ia64/include/asm/unistd.h +3 −0
  1523. arch/ia64/include/uapi/asm/siginfo.h +0 −2
  1524. arch/ia64/kernel/brl_emu.c +6 −25
  1525. arch/ia64/kernel/crash.c +1 −1
  1526. arch/ia64/kernel/efi.c +1 −2
  1527. arch/ia64/kernel/ia64_ksyms.c +1 −1
  1528. arch/ia64/kernel/iosapic.c +1 −1
  1529. arch/ia64/kernel/machvec.c +0 −16
  1530. arch/ia64/kernel/mca.c +5 −5
  1531. arch/ia64/kernel/mca_drv.c +1 −1
  1532. arch/ia64/kernel/pci-dma.c +0 −55
  1533. arch/ia64/kernel/setup.c +0 −1
  1534. arch/ia64/kernel/signal.c +15 −49
  1535. arch/ia64/kernel/smpboot.c +1 −1
  1536. arch/ia64/kernel/topology.c +1 −1
  1537. arch/ia64/kernel/traps.c +39 −105
  1538. arch/ia64/kernel/unaligned.c +2 −10
  1539. arch/ia64/kernel/unwind.c +1 −1
  1540. arch/ia64/mm/contig.c +3 −3
  1541. arch/ia64/mm/discontig.c +4 −3
  1542. arch/ia64/mm/fault.c +2 −10
  1543. arch/ia64/mm/init.c +5 −6
  1544. arch/ia64/mm/numa.c +1 −1
  1545. arch/ia64/mm/tlb.c +5 −3
  1546. arch/ia64/pci/pci.c +1 −27
  1547. arch/ia64/sn/kernel/bte.c +1 −1
  1548. arch/ia64/sn/kernel/io_common.c +5 −6
  1549. arch/ia64/sn/kernel/setup.c +4 −3
  1550. arch/ia64/sn/pci/pci_dma.c +2 −31
  1551. arch/m68k/Kconfig +1 −3
  1552. arch/m68k/atari/stram.c +3 −2
  1553. arch/m68k/coldfire/m54xx.c +1 −1
  1554. arch/m68k/configs/amiga_defconfig +0 −2
  1555. arch/m68k/configs/apollo_defconfig +0 −2
  1556. arch/m68k/configs/atari_defconfig +0 −2
  1557. arch/m68k/configs/bvme6000_defconfig +0 −2
  1558. arch/m68k/configs/hp300_defconfig +0 −2
  1559. arch/m68k/configs/mac_defconfig +0 −2
  1560. arch/m68k/configs/multi_defconfig +0 −2
  1561. arch/m68k/configs/mvme147_defconfig +0 −2
  1562. arch/m68k/configs/mvme16x_defconfig +0 −2
  1563. arch/m68k/configs/q40_defconfig +0 −2
  1564. arch/m68k/configs/sun3_defconfig +0 −2
  1565. arch/m68k/configs/sun3x_defconfig +0 −2
  1566. arch/m68k/emu/nfblock.c +1 −1
  1567. arch/m68k/emu/nfeth.c +0 −4
  1568. arch/m68k/include/asm/atafd.h +0 −13
  1569. arch/m68k/include/asm/atafdreg.h +0 −80
  1570. arch/m68k/include/asm/pgtable_mm.h +2 −2
  1571. arch/m68k/include/asm/processor.h +0 −6
  1572. arch/m68k/include/asm/unistd.h +1 −1
  1573. arch/m68k/kernel/setup_mm.c +0 −1
  1574. arch/m68k/kernel/setup_no.c +0 −1
  1575. arch/m68k/kernel/sun3-head.S +0 −6
  1576. arch/m68k/kernel/uboot.c +2 −2
  1577. arch/m68k/mac/misc.c +10 −65
  1578. arch/m68k/mm/init.c +3 −3
  1579. arch/m68k/mm/mcfmmu.c +2 −3
  1580. arch/m68k/mm/motorola.c +4 −4
  1581. arch/m68k/mm/sun3mmu.c +3 −3
  1582. arch/m68k/sun3/config.c +1 −1
  1583. arch/m68k/sun3/dvma.c +1 −1
  1584. arch/m68k/sun3/mmu_emu.c +1 −1
  1585. arch/m68k/sun3/sun3dvma.c +3 −2
  1586. arch/m68k/sun3x/dvma.c +1 −1
  1587. arch/microblaze/Kconfig +2 −4
  1588. arch/microblaze/Makefile +1 −3
  1589. arch/microblaze/boot/dts/Makefile +4 −0
  1590. arch/microblaze/include/asm/pgtable.h +1 −3
  1591. arch/microblaze/include/asm/processor.h +0 −12
  1592. arch/microblaze/include/asm/unistd.h +1 −1
  1593. arch/microblaze/kernel/cpu/cpuinfo.c +4 −2
  1594. arch/microblaze/kernel/dma.c +0 −22
  1595. arch/microblaze/kernel/vmlinux.lds.S +0 −2
  1596. arch/microblaze/mm/consistent.c +3 −2
  1597. arch/microblaze/mm/init.c +3 −4
  1598. arch/microblaze/pci/pci-common.c +1 −1
  1599. arch/mips/Kconfig +43 −8
  1600. arch/mips/Makefile +6 −22
  1601. arch/mips/alchemy/devboards/db1200.c +6 −8
  1602. arch/mips/alchemy/devboards/db1300.c +6 −8
  1603. arch/mips/alchemy/devboards/db1550.c +6 −8
  1604. arch/mips/ar7/memory.c +1 −1
  1605. arch/mips/ath79/setup.c +1 −1
  1606. arch/mips/bcm47xx/workarounds.c +5 −3
  1607. arch/mips/bcm63xx/prom.c +1 −1
  1608. arch/mips/bcm63xx/setup.c +1 −1
  1609. arch/mips/bmips/setup.c +2 −9
  1610. arch/mips/boot/dts/ingenic/jz4740.dtsi +15 −0
  1611. arch/mips/boot/dts/ingenic/jz4770.dtsi +30 −0
  1612. arch/mips/boot/dts/ingenic/jz4780.dtsi +2 −1
  1613. arch/mips/boot/dts/lantiq/danube.dtsi +21 −21
  1614. arch/mips/boot/dts/lantiq/easy50712.dts +7 −7
  1615. arch/mips/boot/dts/mscc/Makefile +1 −1
  1616. arch/mips/boot/dts/mscc/ocelot.dtsi +33 −5
  1617. arch/mips/boot/dts/mscc/ocelot_pcb120.dts +107 −0
  1618. arch/mips/boot/dts/mscc/ocelot_pcb123.dts +6 −0
  1619. arch/mips/cavium-octeon/dma-octeon.c +2 −2
  1620. arch/mips/cavium-octeon/executive/cvmx-helper.c +1 −1
  1621. arch/mips/cavium-octeon/octeon-irq.c +8 −8
  1622. arch/mips/cavium-octeon/setup.c +3 −6
  1623. arch/mips/cavium-octeon/smp.c +7 −0
  1624. arch/mips/configs/generic/board-ocelot.config +9 −1
  1625. arch/mips/dec/prom/memory.c +1 −1
  1626. arch/mips/emma/common/prom.c +1 −1
  1627. arch/mips/fw/arc/memory.c +1 −1
  1628. arch/mips/generic/Kconfig +3 −3
  1629. arch/mips/generic/Makefile +0 −1
  1630. arch/mips/generic/Platform +1 −1
  1631. arch/mips/generic/board-ocelot.its.S +17 −0
  1632. arch/mips/generic/kexec.c +0 −44
  1633. arch/mips/include/asm/Kbuild +1 −0
  1634. arch/mips/include/asm/asm-eva.h +6 −0
  1635. arch/mips/include/asm/asm.h +0 −116
  1636. arch/mips/include/asm/compat.h +5 −23
  1637. arch/mips/include/asm/device.h +0 −19
  1638. arch/mips/include/asm/dma-coherence.h +6 −0
  1639. arch/mips/include/asm/dma-mapping.h +1 −3
  1640. arch/mips/include/asm/hugetlb.h +7 −33
  1641. arch/mips/include/asm/io.h +64 −65
  1642. arch/mips/include/asm/kexec.h +6 −5
  1643. arch/mips/include/asm/mach-loongson64/irq.h +1 −1
  1644. arch/mips/include/asm/mach-loongson64/kernel-entry-init.h +12 −4
  1645. arch/mips/include/asm/mipsregs.h +19 −1
  1646. arch/mips/include/asm/processor.h +5 −10
  1647. arch/mips/include/asm/r4kcache.h +0 −73
  1648. arch/mips/include/asm/smp-ops.h +3 −0
  1649. arch/mips/include/asm/smp.h +16 −0
  1650. arch/mips/include/asm/unistd.h +2 −1
  1651. arch/mips/include/asm/vr41xx/giu.h +0 −8
  1652. arch/mips/include/uapi/asm/ioctls.h +2 −0
  1653. arch/mips/include/uapi/asm/siginfo.h +0 −11
  1654. arch/mips/jazz/jazzdma.c +4 −5
  1655. arch/mips/kernel/Makefile +0 −18
  1656. arch/mips/kernel/binfmt_elfn32.c +7 −7
  1657. arch/mips/kernel/binfmt_elfo32.c +7 −7
  1658. arch/mips/kernel/crash.c +7 −2
  1659. arch/mips/kernel/crash_dump.c +1 −1
  1660. arch/mips/kernel/head.S +10 −8
  1661. arch/mips/kernel/machine_kexec.c +136 −7
  1662. arch/mips/kernel/mips-mt.c +0 −59
  1663. arch/mips/kernel/process.c +25 −0
  1664. arch/mips/kernel/prom.c +1 −1
  1665. arch/mips/kernel/relocate.c +1 −1
  1666. arch/mips/kernel/setup.c +76 −123
  1667. arch/mips/kernel/smp-bmips.c +7 −0
  1668. arch/mips/kernel/smp-cps.c +55 −25
  1669. arch/mips/kernel/traps.c +5 −3
  1670. arch/mips/kernel/unaligned.c +23 −24
  1671. arch/mips/kernel/vdso.c +17 −1
  1672. arch/mips/kernel/vpe.c +1 −1
  1673. arch/mips/kvm/commpage.c +1 −1
  1674. arch/mips/kvm/dyntrans.c +1 −1
  1675. arch/mips/kvm/emulate.c +1 −1
  1676. arch/mips/kvm/interrupt.c +1 −1
  1677. arch/mips/kvm/mips.c +1 −1
  1678. arch/mips/lantiq/prom.c +1 −1
  1679. arch/mips/lantiq/xway/dma.c +0 −1
  1680. arch/mips/lantiq/xway/sysctrl.c +7 −7
  1681. arch/mips/lasat/prom.c +1 −1
  1682. arch/mips/lib/Makefile +1 −1
  1683. arch/mips/lib/iomap-pci.c +0 −7
  1684. arch/mips/lib/iomap.c +0 −227
  1685. arch/mips/lib/memcpy.S +13 −9
  1686. arch/mips/lib/memset.S +31 −29
  1687. arch/mips/loongson64/common/Makefile +0 −1
  1688. arch/mips/loongson64/common/init.c +1 −1
  1689. arch/mips/loongson64/fuloong-2e/Makefile +1 −1
  1690. arch/mips/loongson64/fuloong-2e/dma.c +12 −0
  1691. arch/mips/loongson64/lemote-2f/Makefile +1 −1
  1692. arch/mips/loongson64/lemote-2f/dma.c +0 −4
  1693. arch/mips/loongson64/loongson-3/irq.c +6 −50
  1694. arch/mips/loongson64/loongson-3/numa.c +16 −21
  1695. arch/mips/loongson64/loongson-3/smp.c +9 −5
  1696. arch/mips/mm/c-r4k.c +8 −9
  1697. arch/mips/mm/dma-noncoherent.c +16 −63
  1698. arch/mips/mm/init.c +5 −9
  1699. arch/mips/mm/pgtable-32.c +1 −1
  1700. arch/mips/mti-malta/malta-memory.c +1 −1
  1701. arch/mips/netlogic/common/irq.c +7 −7
  1702. arch/mips/netlogic/xlp/dt.c +1 −1
  1703. arch/mips/netlogic/xlr/platform-flash.c +3 −4
  1704. arch/mips/pci/ops-loongson3.c +24 −10
  1705. arch/mips/pci/pci-legacy.c +5 −1
  1706. arch/mips/pci/pci-rt2880.c +2 −0
  1707. arch/mips/pci/pci.c +1 −1
  1708. arch/mips/pmcs-msp71xx/msp_usb.c +2 −2
  1709. arch/mips/pnx833x/common/platform.c +3 −5
  1710. arch/mips/ralink/cevt-rt3352.c +3 −3
  1711. arch/mips/ralink/ill_acc.c +1 −1
  1712. arch/mips/ralink/of.c +1 −1
  1713. arch/mips/ralink/rt305x.c +5 −0
  1714. arch/mips/rb532/devices.c +4 −6
  1715. arch/mips/rb532/prom.c +1 −1
  1716. arch/mips/sgi-ip22/ip28-berr.c +1 −1
  1717. arch/mips/sgi-ip27/ip27-memory.c +5 −9
  1718. arch/mips/sibyte/common/cfe.c +1 −1
  1719. arch/mips/sibyte/swarm/setup.c +1 −1
  1720. arch/mips/tools/.gitignore +1 −0
  1721. arch/mips/tools/Makefile +5 −0
  1722. arch/mips/tools/elf-entry.c +96 −0
  1723. arch/mips/txx9/generic/setup.c +2 −3
  1724. arch/mips/txx9/rbtx4938/prom.c +1 −1
  1725. arch/mips/vdso/Makefile +1 −1
  1726. arch/nds32/Kconfig +1 −3
  1727. arch/nds32/Makefile +1 −1
  1728. arch/nds32/include/asm/pgtable.h +1 −1
  1729. arch/nds32/include/asm/processor.h +0 −6
  1730. arch/nds32/include/uapi/asm/unistd.h +1 −0
  1731. arch/nds32/kernel/setup.c +1 −2
  1732. arch/nds32/mm/highmem.c +1 −1
  1733. arch/nds32/mm/init.c +6 −7
  1734. arch/nios2/Kconfig +2 −1
  1735. arch/nios2/Makefile +1 −10
  1736. arch/nios2/boot/Makefile +0 −22
  1737. arch/nios2/boot/dts/Makefile +6 −0
  1738. arch/nios2/boot/linked_dtb.S +0 −19
  1739. arch/nios2/include/asm/processor.h +0 −6
  1740. arch/nios2/include/uapi/asm/unistd.h +1 −0
  1741. arch/nios2/kernel/cpuinfo.c +3 −1
  1742. arch/nios2/kernel/prom.c +1 −18
  1743. arch/nios2/kernel/setup.c +7 −33
  1744. arch/nios2/kernel/time.c +2 −2
  1745. arch/nios2/mm/init.c +2 −2
  1746. arch/openrisc/Kconfig +1 −3
  1747. arch/openrisc/include/asm/processor.h +0 −5
  1748. arch/openrisc/include/uapi/asm/unistd.h +1 −0
  1749. arch/openrisc/kernel/setup.c +2 −4
  1750. arch/openrisc/mm/init.c +3 −4
  1751. arch/openrisc/mm/ioremap.c +1 −1
  1752. arch/parisc/Kconfig +1 −3
  1753. arch/parisc/Makefile +0 −9
  1754. arch/parisc/boot/compressed/Makefile +1 −3
  1755. arch/parisc/boot/compressed/misc.c +77 −18
  1756. arch/parisc/boot/compressed/vmlinux.lds.S +6 −4
  1757. arch/parisc/include/asm/alternative.h +47 −0
  1758. arch/parisc/include/asm/assembly.h +1 −8
  1759. arch/parisc/include/asm/cache.h +19 −3
  1760. arch/parisc/include/asm/compat.h +5 −19
  1761. arch/parisc/include/asm/hugetlb.h +8 −25
  1762. arch/parisc/include/asm/page.h +7 −5
  1763. arch/parisc/include/asm/pdc.h +1 −0
  1764. arch/parisc/include/asm/pdcpat.h +49 −13
  1765. arch/parisc/include/asm/pgtable.h +14 −21
  1766. arch/parisc/include/asm/processor.h +0 −11
  1767. arch/parisc/include/asm/sections.h +2 −0
  1768. arch/parisc/include/asm/tlbflush.h +1 −2
  1769. arch/parisc/include/asm/unistd.h +2 −1
  1770. arch/parisc/include/uapi/asm/Kbuild +1 −0
  1771. arch/parisc/include/uapi/asm/ioctls.h +2 −0
  1772. arch/parisc/include/uapi/asm/posix_types.h +0 −3
  1773. arch/parisc/include/uapi/asm/siginfo.h +0 −11
  1774. arch/parisc/kernel/cache.c +37 −26
  1775. arch/parisc/kernel/entry.S +20 −19
  1776. arch/parisc/kernel/firmware.c +57 −0
  1777. arch/parisc/kernel/hpmc.S +1 −2
  1778. arch/parisc/kernel/inventory.c +10 −0
  1779. arch/parisc/kernel/pacache.S +246 −34
  1780. arch/parisc/kernel/setup.c +82 −1
  1781. arch/parisc/kernel/signal.c +0 −1
  1782. arch/parisc/kernel/syscall.S +1 −1
  1783. arch/parisc/kernel/traps.c +4 −3
  1784. arch/parisc/kernel/unwind.c +1 −1
  1785. arch/parisc/kernel/vmlinux.lds.S +6 −0
  1786. arch/parisc/mm/init.c +16 −8
  1787. arch/powerpc/Kbuild +16 −0
  1788. arch/powerpc/Kconfig +4 −30
  1789. arch/powerpc/Kconfig.debug +0 −6
  1790. arch/powerpc/Makefile +37 −59
  1791. arch/powerpc/boot/.gitignore +1 −0
  1792. arch/powerpc/boot/Makefile +34 −32
  1793. arch/powerpc/boot/crt0.S +3 −1
  1794. arch/powerpc/boot/dts/Makefile +6 −0
  1795. arch/powerpc/boot/dts/fsl/Makefile +4 −0
  1796. arch/powerpc/boot/dts/fsl/t2080rdb.dts +2 −2
  1797. arch/powerpc/boot/dts/mpc885ads.dts +12 −1
  1798. arch/powerpc/boot/libfdt_env.h +2 −0
  1799. arch/powerpc/boot/opal.c +0 −8
  1800. arch/powerpc/boot/serial.c +1 −0
  1801. arch/powerpc/configs/g5_defconfig +1 −0
  1802. arch/powerpc/configs/maple_defconfig +1 −0
  1803. arch/powerpc/configs/powernv_defconfig +4 −0
  1804. arch/powerpc/configs/ppc64_defconfig +4 −0
  1805. arch/powerpc/configs/ps3_defconfig +1 −0
  1806. arch/powerpc/configs/pseries_defconfig +1 −0
  1807. arch/powerpc/configs/skiroot_defconfig +108 −46
  1808. arch/powerpc/include/asm/accounting.h +4 −0
  1809. arch/powerpc/include/asm/asm-prototypes.h +23 −1
  1810. arch/powerpc/include/asm/book3s/32/pgtable.h +139 −19
  1811. arch/powerpc/include/asm/book3s/64/hash-4k.h +1 −1
  1812. arch/powerpc/include/asm/book3s/64/hash.h +6 −2
  1813. arch/powerpc/include/asm/book3s/64/hugetlb.h +3 −0
  1814. arch/powerpc/include/asm/book3s/64/mmu-hash.h +80 −27
  1815. arch/powerpc/include/asm/book3s/64/mmu.h +2 −2
  1816. arch/powerpc/include/asm/book3s/64/pgtable-64k.h +3 −0
  1817. arch/powerpc/include/asm/book3s/64/pgtable.h +107 −83
  1818. arch/powerpc/include/asm/book3s/64/tlbflush-radix.h +1 −0
  1819. arch/powerpc/include/asm/bug.h +1 −1
  1820. arch/powerpc/include/asm/code-patching.h +5 −0
  1821. arch/powerpc/include/asm/compat.h +5 −19
  1822. arch/powerpc/include/asm/cputhreads.h +2 −0
  1823. arch/powerpc/include/asm/cputime.h +0 −1
  1824. arch/powerpc/include/asm/drmem.h +5 −0
  1825. arch/powerpc/include/asm/eeh.h +9 −15
  1826. arch/powerpc/include/asm/error-injection.h +13 −0
  1827. arch/powerpc/include/asm/exception-64s.h +4 −13
  1828. arch/powerpc/include/asm/firmware.h +4 −1
  1829. arch/powerpc/include/asm/fixmap.h +1 −1
  1830. arch/powerpc/include/asm/hugetlb.h +6 −37
  1831. arch/powerpc/include/asm/hvcall.h +51 −1
  1832. arch/powerpc/include/asm/io.h +18 −35
  1833. arch/powerpc/include/asm/iommu.h +1 −1
  1834. arch/powerpc/include/asm/kgdb.h +4 −1
  1835. arch/powerpc/include/asm/kvm_asm.h +1 −3
  1836. arch/powerpc/include/asm/kvm_book3s.h +40 −5
  1837. arch/powerpc/include/asm/kvm_book3s_64.h +116 −2
  1838. arch/powerpc/include/asm/kvm_book3s_asm.h +3 −0
  1839. arch/powerpc/include/asm/kvm_booke.h +2 −2
  1840. arch/powerpc/include/asm/kvm_host.h +14 −2
  1841. arch/powerpc/include/asm/kvm_ppc.h +5 −3
  1842. arch/powerpc/include/asm/machdep.h +2 −1
  1843. arch/powerpc/include/asm/mce.h +3 −0
  1844. arch/powerpc/include/asm/mmu-8xx.h +15 −28
  1845. arch/powerpc/include/asm/mmu.h +15 −0
  1846. arch/powerpc/include/asm/mmu_context.h +1 −1
  1847. arch/powerpc/include/asm/mpic.h +7 −0
  1848. arch/powerpc/include/asm/nohash/32/pgtable.h +62 −13
  1849. arch/powerpc/include/asm/nohash/32/pte-40x.h +43 −0
  1850. arch/powerpc/include/asm/nohash/32/pte-44x.h +30 −0
  1851. arch/powerpc/include/asm/nohash/32/pte-8xx.h +82 −5
  1852. arch/powerpc/include/asm/nohash/32/pte-fsl-booke.h +33 −0
  1853. arch/powerpc/include/asm/nohash/64/pgtable.h +40 −6
  1854. arch/powerpc/include/asm/nohash/pgtable.h +75 −25
  1855. arch/powerpc/include/asm/nohash/pte-book3e.h +41 −0
  1856. arch/powerpc/include/asm/opal-api.h +1 −0
  1857. arch/powerpc/include/asm/paca.h +16 −2
  1858. arch/powerpc/include/asm/pgtable.h +29 −0
  1859. arch/powerpc/include/asm/pnv-pci.h +1 −1
  1860. arch/powerpc/include/asm/ppc-opcode.h +3 −0
  1861. arch/powerpc/include/asm/ppc-pci.h +1 −0
  1862. arch/powerpc/include/asm/processor.h +3 −10
  1863. arch/powerpc/include/asm/pte-common.h +0 −219
  1864. arch/powerpc/include/asm/ptrace.h +38 −1
  1865. arch/powerpc/include/asm/reg.h +8 −1
  1866. arch/powerpc/include/asm/rtas.h +16 −0
  1867. arch/powerpc/include/asm/slice.h +1 −0
  1868. arch/powerpc/include/asm/smp.h +11 −0
  1869. arch/powerpc/include/asm/sparsemem.h +0 −11
  1870. arch/powerpc/include/asm/stackprotector.h +38 −0
  1871. arch/powerpc/include/asm/thread_info.h +15 −2
  1872. arch/powerpc/include/asm/trace.h +15 −0
  1873. arch/powerpc/include/asm/uaccess.h +3 −3
  1874. arch/powerpc/include/asm/unistd.h +2 −1
  1875. arch/powerpc/include/asm/user.h +1 −1
  1876. arch/powerpc/include/uapi/asm/Kbuild +1 −0
  1877. arch/powerpc/include/uapi/asm/ioctls.h +2 −0
  1878. arch/powerpc/include/uapi/asm/kvm.h +1 −0
  1879. arch/powerpc/include/uapi/asm/ptrace.h +10 −1
  1880. arch/powerpc/include/uapi/asm/sigcontext.h +5 −1
  1881. arch/powerpc/include/uapi/asm/siginfo.h +0 −18
  1882. arch/powerpc/kernel/Makefile +8 −5
  1883. arch/powerpc/kernel/asm-offsets.c +15 −17
  1884. arch/powerpc/kernel/btext.c +1 −1
  1885. arch/powerpc/kernel/cacheinfo.c +35 −2
  1886. arch/powerpc/kernel/cpu_setup_power.S +2 −2
  1887. arch/powerpc/kernel/crash_dump.c +1 −1
  1888. arch/powerpc/kernel/dma-swiotlb.c +2 −2
  1889. arch/powerpc/kernel/dt_cpu_ftrs.c +1 −3
  1890. arch/powerpc/kernel/eeh.c +21 −21
  1891. arch/powerpc/kernel/eeh_dev.c +0 −2
  1892. arch/powerpc/kernel/eeh_driver.c +115 −122
  1893. arch/powerpc/kernel/eeh_pe.c +91 −69
  1894. arch/powerpc/kernel/entry_32.S +2 −2
  1895. arch/powerpc/kernel/entry_64.S +17 −16
  1896. arch/powerpc/kernel/exceptions-64s.S +78 −166
  1897. arch/powerpc/kernel/fadump.c +2 −2
  1898. arch/powerpc/kernel/head_8xx.S +60 −43
  1899. arch/powerpc/kernel/io-workarounds.c +2 −2
  1900. arch/powerpc/kernel/iommu.c +1 −1
  1901. arch/powerpc/kernel/isa-bridge.c +3 −3
  1902. arch/powerpc/kernel/kgdb.c +35 −8
  1903. arch/powerpc/kernel/mce.c +5 −4
  1904. arch/powerpc/kernel/mce_power.c +8 −1
  1905. arch/powerpc/kernel/module.c +8 −0
  1906. arch/powerpc/kernel/module_64.c +8 −6
  1907. arch/powerpc/kernel/paca.c +1 −1
  1908. arch/powerpc/kernel/pci_32.c +3 −3
  1909. arch/powerpc/kernel/pci_64.c +1 −1
  1910. arch/powerpc/kernel/process.c +63 −47
  1911. arch/powerpc/kernel/prom.c +1 −1
  1912. arch/powerpc/kernel/prom_init.c +66 −157
  1913. arch/powerpc/kernel/prom_init_check.sh +16 −0
  1914. arch/powerpc/kernel/ptrace.c +59 −9
  1915. arch/powerpc/kernel/rtas.c +11 −2
  1916. arch/powerpc/kernel/rtasd.c +9 −16
  1917. arch/powerpc/kernel/setup-common.c +3 −2
  1918. arch/powerpc/kernel/setup_32.c +5 −5
  1919. arch/powerpc/kernel/setup_64.c +20 −11
  1920. arch/powerpc/kernel/smp.c +244 −1
  1921. arch/powerpc/kernel/swsusp_asm64.S +1 −1
  1922. arch/powerpc/kernel/time.c +62 −42
  1923. arch/powerpc/kernel/tm.S +43 −32
  1924. arch/powerpc/kernel/trace/Makefile +1 −3
  1925. arch/powerpc/kernel/trace/ftrace.c +257 −4
  1926. arch/powerpc/kernel/trace/ftrace_64.S +12 −0
  1927. arch/powerpc/kernel/traps.c +77 −80
  1928. arch/powerpc/kernel/vdso32/datapage.S +1 −0
  1929. arch/powerpc/kernel/vdso32/gettimeofday.S +1 −0
  1930. arch/powerpc/kernel/vdso64/datapage.S +1 −0
  1931. arch/powerpc/kernel/vdso64/gettimeofday.S +1 −0
  1932. arch/powerpc/kernel/vmlinux.lds.S +15 −3
  1933. arch/powerpc/kvm/Makefile +2 −3
  1934. arch/powerpc/kvm/book3s.c +36 −10
  1935. arch/powerpc/kvm/book3s_64_mmu_hv.c +3 −4
  1936. arch/powerpc/kvm/book3s_64_mmu_radix.c +546 −182
  1937. arch/powerpc/kvm/book3s_64_vio.c +67 −27
  1938. arch/powerpc/kvm/book3s_64_vio_hv.c +49 −38
  1939. arch/powerpc/kvm/book3s_emulate.c +6 −7
  1940. arch/powerpc/kvm/book3s_hv.c +819 −57
  1941. arch/powerpc/kvm/book3s_hv_builtin.c +84 −8
  1942. arch/powerpc/kvm/book3s_hv_interrupts.S +49 −46
  1943. arch/powerpc/kvm/book3s_hv_nested.c +1291 −0
  1944. arch/powerpc/kvm/book3s_hv_ras.c +10 −0
  1945. arch/powerpc/kvm/book3s_hv_rm_xics.c +10 −3
  1946. arch/powerpc/kvm/book3s_hv_rmhandlers.S +460 −363
  1947. arch/powerpc/kvm/book3s_hv_tm.c +3 −3
  1948. arch/powerpc/kvm/book3s_hv_tm_builtin.c +3 −2
  1949. arch/powerpc/kvm/book3s_pr.c +2 −3
  1950. arch/powerpc/kvm/book3s_xics.c +6 −8
  1951. arch/powerpc/kvm/book3s_xive.c +63 −0
  1952. arch/powerpc/kvm/book3s_xive_template.c +0 −8
  1953. arch/powerpc/kvm/bookehv_interrupts.S +4 −4
  1954. arch/powerpc/kvm/emulate.c +3 −4
  1955. arch/powerpc/kvm/emulate_loadstore.c +0 −1
  1956. arch/powerpc/kvm/powerpc.c +14 −1
  1957. arch/powerpc/kvm/tm.S +136 −114
  1958. arch/powerpc/kvm/trace.h +6 −2
  1959. arch/powerpc/kvm/trace_book3s.h +0 −1
  1960. arch/powerpc/kvm/trace_booke.h +7 −2
  1961. arch/powerpc/kvm/trace_hv.h +7 −2
  1962. arch/powerpc/kvm/trace_pr.h +7 −2
  1963. arch/powerpc/lib/Makefile +2 −2
  1964. arch/powerpc/lib/alloc.c +2 −2
  1965. arch/powerpc/lib/code-patching.c +13 −10
  1966. arch/powerpc/lib/error-inject.c +16 −0
  1967. arch/powerpc/lib/mem_64.S +2 −2
  1968. arch/powerpc/mm/8xx_mmu.c +11 −20
  1969. arch/powerpc/mm/Makefile +10 −3
  1970. arch/powerpc/mm/dma-noncoherent.c +1 −1
  1971. arch/powerpc/mm/dump_linuxpagetables-8xx.c +82 −0
  1972. arch/powerpc/mm/dump_linuxpagetables-book3s64.c +120 −0
  1973. arch/powerpc/mm/dump_linuxpagetables-generic.c +82 −0
  1974. arch/powerpc/mm/dump_linuxpagetables.c +11 −156
  1975. arch/powerpc/mm/dump_linuxpagetables.h +19 −0
  1976. arch/powerpc/mm/fault.c +30 −25
  1977. arch/powerpc/mm/hash_native_64.c +2 −2
  1978. arch/powerpc/mm/hash_utils_64.c +7 −6
  1979. arch/powerpc/mm/hugepage-hash64.c +6 −0
  1980. arch/powerpc/mm/hugetlbpage-hash64.c +4 −0
  1981. arch/powerpc/mm/hugetlbpage.c +10 −4
  1982. arch/powerpc/mm/mem.c +9 −9
  1983. arch/powerpc/mm/mmu_context_book3s64.c +9 −0
  1984. arch/powerpc/mm/mmu_context_nohash.c +5 −4
  1985. arch/powerpc/mm/mmu_decl.h +5 −1
  1986. arch/powerpc/mm/numa.c +12 −6
  1987. arch/powerpc/mm/pgtable-book3e.c +3 −6
  1988. arch/powerpc/mm/pgtable-book3s64.c +8 −3
  1989. arch/powerpc/mm/pgtable-hash64.c +3 −4
  1990. arch/powerpc/mm/pgtable-radix.c +28 −37
  1991. arch/powerpc/mm/pgtable.c +12 −20
  1992. arch/powerpc/mm/pgtable_32.c +41 −31
  1993. arch/powerpc/mm/pgtable_64.c +31 −26
  1994. arch/powerpc/mm/ppc_mmu_32.c +2 −2
  1995. arch/powerpc/mm/slb.c +548 −229
  1996. arch/powerpc/mm/slb_low.S +0 −335
  1997. arch/powerpc/mm/slice.c +30 −8
  1998. arch/powerpc/mm/tlb-radix.c +10 −1
  1999. arch/powerpc/mm/tlb_nohash.c +3 −0
  2000. arch/powerpc/oprofile/Makefile +0 −1
  2001. arch/powerpc/oprofile/backtrace.c +1 −1
  2002. arch/powerpc/perf/8xx-pmu.c +12 −15
  2003. arch/powerpc/perf/Makefile +0 −1
  2004. arch/powerpc/perf/imc-pmu.c +1 −1
  2005. arch/powerpc/perf/power7-pmu.c +1 −0
  2006. arch/powerpc/platforms/40x/Kconfig +1 −9
  2007. arch/powerpc/platforms/44x/Kconfig +2 −22
  2008. arch/powerpc/platforms/44x/fsp2.c +4 −4
  2009. arch/powerpc/platforms/4xx/ocm.c +2 −5
  2010. arch/powerpc/platforms/4xx/soc.c +1 −1
  2011. arch/powerpc/platforms/82xx/Kconfig +0 −1
  2012. arch/powerpc/platforms/85xx/smp.c +2 −2
  2013. arch/powerpc/platforms/8xx/m8xx_setup.c +3 −2
  2014. arch/powerpc/platforms/8xx/machine_check.c +2 −2
  2015. arch/powerpc/platforms/Kconfig +0 −21
  2016. arch/powerpc/platforms/Kconfig.cputype +1 −4
  2017. arch/powerpc/platforms/Makefile +0 −2
  2018. arch/powerpc/platforms/cell/Kconfig +0 −3
  2019. arch/powerpc/platforms/cell/cpufreq_spudemand.c +1 −1
  2020. arch/powerpc/platforms/cell/spu_base.c +2 −2
  2021. arch/powerpc/platforms/cell/spu_manage.c +6 −19
  2022. arch/powerpc/platforms/cell/spufs/fault.c +8 −18
  2023. arch/powerpc/platforms/cell/spufs/sched.c +3 −6
  2024. arch/powerpc/platforms/embedded6xx/wii.c +1 −1
  2025. arch/powerpc/platforms/maple/Kconfig +0 −1
  2026. arch/powerpc/platforms/pasemi/Kconfig +0 −1
  2027. arch/powerpc/platforms/pasemi/dma_lib.c +1 −1
  2028. arch/powerpc/platforms/pasemi/iommu.c +1 −1
  2029. arch/powerpc/platforms/powermac/Makefile +2 −1
  2030. arch/powerpc/platforms/powermac/feature.c +18 −33
  2031. arch/powerpc/platforms/powermac/nvram.c +2 −2
  2032. arch/powerpc/platforms/powermac/setup.c +8 −7
  2033. arch/powerpc/platforms/powermac/time.c +20 −106
  2034. arch/powerpc/platforms/powernv/Kconfig +0 −6
  2035. arch/powerpc/platforms/powernv/eeh-powernv.c +5 −57
  2036. arch/powerpc/platforms/powernv/memtrace.c +20 −5
  2037. arch/powerpc/platforms/powernv/npu-dma.c +98 −164
  2038. arch/powerpc/platforms/powernv/opal-powercap.c +2 −1
  2039. arch/powerpc/platforms/powernv/opal-sensor-groups.c +2 −2
  2040. arch/powerpc/platforms/powernv/opal-sysparam.c +1 −1
  2041. arch/powerpc/platforms/powernv/opal.c +2 −2
  2042. arch/powerpc/platforms/powernv/pci-ioda.c +4 −5
  2043. arch/powerpc/platforms/powernv/setup.c +41 −6
  2044. arch/powerpc/platforms/ps3/Kconfig +0 −2
  2045. arch/powerpc/platforms/ps3/os-area.c +1 −1
  2046. arch/powerpc/platforms/ps3/setup.c +2 −2
  2047. arch/powerpc/platforms/ps3/spu.c +1 −2
  2048. arch/powerpc/platforms/pseries/Kconfig +7 −2
  2049. arch/powerpc/platforms/pseries/Makefile +2 −1
  2050. arch/powerpc/platforms/pseries/dlpar.c +13 −28
  2051. arch/powerpc/platforms/pseries/dtl.c +2 −2
  2052. arch/powerpc/platforms/pseries/eeh_pseries.c +4 −62
  2053. arch/powerpc/platforms/pseries/event_sources.c +13 −27
  2054. arch/powerpc/platforms/pseries/firmware.c +2 −0
  2055. arch/powerpc/platforms/pseries/hotplug-cpu.c +14 −14
  2056. arch/powerpc/platforms/pseries/hotplug-memory.c +48 −76
  2057. arch/powerpc/platforms/pseries/ibmebus.c +1 −1
  2058. arch/powerpc/platforms/pseries/lpar.c +280 −15
  2059. arch/powerpc/platforms/pseries/lparcfg.c +15 −3
  2060. arch/powerpc/platforms/pseries/mobility.c +11 −12
  2061. arch/powerpc/platforms/pseries/msi.c +2 −1
  2062. arch/powerpc/platforms/pseries/papr_scm.c +345 −0
  2063. arch/powerpc/platforms/pseries/pci.c +1 −0
  2064. arch/powerpc/platforms/pseries/pmem.c +164 −0
  2065. arch/powerpc/platforms/pseries/pseries.h +9 −2
  2066. arch/powerpc/platforms/pseries/ras.c +305 −3
  2067. arch/powerpc/platforms/pseries/setup.c +14 −0
  2068. arch/powerpc/platforms/pseries/vio.c +13 −14
  2069. arch/powerpc/sysdev/Kconfig +0 −5
  2070. arch/powerpc/sysdev/Makefile +0 −3
  2071. arch/powerpc/sysdev/dart_iommu.c +1 −1
  2072. arch/powerpc/sysdev/fsl_85xx_cache_sram.c +4 −4
  2073. arch/powerpc/sysdev/ipic.c +1 −1
  2074. arch/powerpc/sysdev/msi_bitmap.c +2 −2
  2075. arch/powerpc/sysdev/xics/Makefile +0 −1
  2076. arch/powerpc/sysdev/xive/Kconfig +0 −3
  2077. arch/powerpc/sysdev/xive/Makefile +0 −1
  2078. arch/powerpc/sysdev/xive/common.c +4 −3
  2079. arch/powerpc/sysdev/xive/native.c +1 −10
  2080. arch/powerpc/xmon/Makefile +9 −2
  2081. arch/powerpc/xmon/xmon.c +36 −20
  2082. arch/riscv/Kconfig +50 −3
  2083. arch/riscv/Kconfig.debug +0 −35
  2084. arch/riscv/Makefile +12 −13
  2085. arch/riscv/configs/defconfig +9 −8
  2086. arch/riscv/include/asm/Kbuild +0 −1
  2087. arch/riscv/include/asm/elf.h +0 −3
  2088. arch/riscv/include/asm/futex.h +128 −0
  2089. arch/riscv/include/asm/processor.h +1 −7
  2090. arch/riscv/include/asm/ptrace.h +2 −2
  2091. arch/riscv/include/asm/smp.h +36 −11
  2092. arch/riscv/include/asm/switch_to.h +11 −1
  2093. arch/riscv/include/asm/tlbflush.h +13 −3
  2094. arch/riscv/include/asm/unistd.h +1 −0
  2095. arch/riscv/include/uapi/asm/Kbuild +1 −0
  2096. arch/riscv/include/uapi/asm/elf.h +3 −0
  2097. arch/riscv/include/uapi/asm/siginfo.h +0 −24
  2098. arch/riscv/kernel/Makefile +1 −0
  2099. arch/riscv/kernel/cacheinfo.c +0 −7
  2100. arch/riscv/kernel/cpu.c +74 −13
  2101. arch/riscv/kernel/cpufeature.c +20 −3
  2102. arch/riscv/kernel/entry.S +0 −88
  2103. arch/riscv/kernel/fpu.S +106 −0
  2104. arch/riscv/kernel/head.S +3 −1
  2105. arch/riscv/kernel/irq.c +10 −2
  2106. arch/riscv/kernel/mcount.S +0 −1
  2107. arch/riscv/kernel/module.c +6 −6
  2108. arch/riscv/kernel/process.c +5 −1
  2109. arch/riscv/kernel/ptrace.c +52 −0
  2110. arch/riscv/kernel/setup.c +14 −1
  2111. arch/riscv/kernel/signal.c +48 −27
  2112. arch/riscv/kernel/smp.c +66 −16
  2113. arch/riscv/kernel/smpboot.c +32 −14
  2114. arch/riscv/lib/Makefile +2 −1
  2115. arch/riscv/mm/init.c +2 −3
  2116. arch/riscv/mm/ioremap.c +1 −1
  2117. arch/s390/Kconfig +21 −2
  2118. arch/s390/Makefile +1 −1
  2119. arch/s390/appldata/appldata_base.c +23 −10
  2120. arch/s390/appldata/appldata_os.c +0 −4
  2121. arch/s390/boot/.gitignore +1 −0
  2122. arch/s390/boot/Makefile +21 −3
  2123. arch/s390/boot/boot.h +11 −0
  2124. arch/s390/boot/cmdline.c +2 −0
  2125. arch/s390/boot/compressed/Makefile +23 −28
  2126. arch/s390/boot/compressed/decompressor.c +85 −0
  2127. arch/s390/boot/compressed/decompressor.h +25 −0
  2128. arch/s390/boot/compressed/head.S +0 −52
  2129. arch/s390/boot/compressed/misc.c +0 −116
  2130. arch/s390/boot/compressed/vmlinux.lds.S +18 −6
  2131. arch/s390/boot/compressed/vmlinux.scr.lds.S +0 −15
  2132. arch/s390/boot/ctype.c +2 −0
  2133. arch/s390/boot/head.S +5 −7
  2134. arch/s390/boot/ipl_parm.c +182 −0
  2135. arch/s390/boot/ipl_vmparm.c +2 −0
  2136. arch/s390/boot/mem_detect.c +182 −0
  2137. arch/s390/boot/startup.c +64 −0
  2138. arch/s390/boot/string.c +138 −0
  2139. arch/s390/configs/debug_defconfig +11 −4
  2140. arch/s390/configs/performance_defconfig +11 −3
  2141. arch/s390/crypto/aes_s390.c +24 −24
  2142. arch/s390/crypto/paes_s390.c +37 −26
  2143. arch/s390/defconfig +41 −38
  2144. arch/s390/hypfs/hypfs_sprp.c +23 −19
  2145. arch/s390/include/asm/appldata.h +10 −9
  2146. arch/s390/include/asm/boot_data.h +11 −0
  2147. arch/s390/include/asm/ccwgroup.h +2 −0
  2148. arch/s390/include/asm/compat.h +2 −16
  2149. arch/s390/include/asm/facility.h +7 −2
  2150. arch/s390/include/asm/ipl.h +2 −2
  2151. arch/s390/include/asm/jump_label.h +16 −24
  2152. arch/s390/include/asm/kasan.h +30 −0
  2153. arch/s390/include/asm/kvm_host.h +14 −1
  2154. arch/s390/include/asm/lowcore.h +2 −2
  2155. arch/s390/include/asm/mem_detect.h +82 −0
  2156. arch/s390/include/asm/mmu.h +2 −0
  2157. arch/s390/include/asm/mmu_context.h +1 −5
  2158. arch/s390/include/asm/page.h +1 −0
  2159. arch/s390/include/asm/pgalloc.h +3 −3
  2160. arch/s390/include/asm/pgtable.h +37 −1
  2161. arch/s390/include/asm/pkey.h +26 −0
  2162. arch/s390/include/asm/processor.h +51 −8
  2163. arch/s390/include/asm/qdio.h +0 −2
  2164. arch/s390/include/asm/sclp.h +7 −1
  2165. arch/s390/include/asm/sections.h +12 −0
  2166. arch/s390/include/asm/setup.h +1 −2
  2167. arch/s390/include/asm/string.h +21 −0
  2168. arch/s390/include/asm/thread_info.h +9 −4
  2169. arch/s390/include/asm/tlb.h +3 −3
  2170. arch/s390/include/asm/unistd.h +2 −1
  2171. arch/s390/include/asm/vmlinux.lds.h +20 −0
  2172. arch/s390/include/uapi/asm/Kbuild +1 −0
  2173. arch/s390/include/uapi/asm/kvm.h +2 −0
  2174. arch/s390/include/uapi/asm/pkey.h +34 −0
  2175. arch/s390/include/uapi/asm/siginfo.h +0 −17
  2176. arch/s390/include/uapi/asm/zcrypt.h +16 −3
  2177. arch/s390/kernel/Makefile +5 −1
  2178. arch/s390/kernel/asm-offsets.c +1 −1
  2179. arch/s390/kernel/base.S +1 −1
  2180. arch/s390/kernel/crash_dump.c +2 −3
  2181. arch/s390/kernel/dumpstack.c +5 −5
  2182. arch/s390/kernel/early.c +3 −44
  2183. arch/s390/kernel/early_nobss.c +2 −22
  2184. arch/s390/kernel/early_printk.c +1 −1
  2185. arch/s390/kernel/entry.S +39 −20
  2186. arch/s390/kernel/entry.h +3 −0
  2187. arch/s390/kernel/head64.S +2 −4
  2188. arch/s390/kernel/ipl.c +13 −106
  2189. arch/s390/kernel/ipl_vmparm.c +36 −0
  2190. arch/s390/kernel/irq.c +1 −9
  2191. arch/s390/kernel/jump_label.c +6 −5
  2192. arch/s390/kernel/machine_kexec.c +13 −4
  2193. arch/s390/kernel/module.c +11 −4
  2194. arch/s390/kernel/perf_cpum_cf.c +1 −1
  2195. arch/s390/kernel/perf_cpum_sf.c +33 −6
  2196. arch/s390/kernel/setup.c +173 −47
  2197. arch/s390/kernel/smp.c +53 −39
  2198. arch/s390/kernel/sthyi.c +5 −3
  2199. arch/s390/kernel/swsusp.S +6 −9
  2200. arch/s390/kernel/topology.c +3 −3
  2201. arch/s390/kernel/vdso.c +6 −4
  2202. arch/s390/kernel/vdso32/Makefile +5 −4
  2203. arch/s390/kernel/vdso32/clock_gettime.S +10 −9
  2204. arch/s390/kernel/vdso32/gettimeofday.S +2 −1
  2205. arch/s390/kernel/vdso64/Makefile +5 −4
  2206. arch/s390/kernel/vdso64/clock_gettime.S +13 −12
  2207. arch/s390/kernel/vdso64/gettimeofday.S +2 −1
  2208. arch/s390/kernel/vmlinux.lds.S +17 −0
  2209. arch/s390/kvm/kvm-s390.c +142 −42
  2210. arch/s390/kvm/kvm-s390.h +1 −0
  2211. arch/s390/kvm/vsie.c +192 −18
  2212. arch/s390/lib/Makefile +4 −0
  2213. arch/s390/lib/mem.S +9 −3
  2214. arch/s390/mm/Makefile +4 −2
  2215. arch/s390/mm/dump_pagetables.c +50 −8
  2216. arch/s390/mm/extmem.c +1 −1
  2217. arch/s390/mm/fault.c +21 −17
  2218. arch/s390/mm/gmap.c +8 −2
  2219. arch/s390/mm/init.c +6 −4
  2220. arch/s390/mm/kasan_init.c +387 −0
  2221. arch/s390/mm/maccess.c +20 −5
  2222. arch/s390/mm/mem_detect.c +0 −62
  2223. arch/s390/mm/pgalloc.c +1 −0
  2224. arch/s390/mm/vmem.c +3 −4
  2225. arch/s390/numa/mode_emu.c +1 −2
  2226. arch/s390/numa/numa.c +2 −2
  2227. arch/s390/numa/toptree.c +2 −2
  2228. arch/s390/purgatory/head.S +2 −2
  2229. arch/s390/tools/gen_facilities.c +2 −0
  2230. arch/sh/Kconfig +1 −4
  2231. arch/sh/boards/mach-ecovec24/setup.c +25 −2
  2232. arch/sh/boards/mach-migor/setup.c +6 −8
  2233. arch/sh/boards/of-generic.c +1 −1
  2234. arch/sh/include/asm/hugetlb.h +4 −50
  2235. arch/sh/include/asm/processor_32.h +0 −6
  2236. arch/sh/include/asm/processor_64.h +0 −15
  2237. arch/sh/include/asm/unistd.h +1 −1
  2238. arch/sh/include/uapi/asm/ioctls.h +2 −0
  2239. arch/sh/mm/init.c +4 −5
  2240. arch/sh/mm/ioremap_fixed.c +1 −1
  2241. arch/sparc/Kconfig +1 −3
  2242. arch/sparc/include/asm/cmpxchg_64.h +6 −1
  2243. arch/sparc/include/asm/compat.h +5 −20
  2244. arch/sparc/include/asm/cpudata_64.h +1 −1
  2245. arch/sparc/include/asm/dma-mapping.h +2 −2
  2246. arch/sparc/include/asm/hugetlb.h +8 −32
  2247. arch/sparc/include/asm/parport.h +2 −0
  2248. arch/sparc/include/asm/processor_32.h +0 −6
  2249. arch/sparc/include/asm/processor_64.h +0 −6
  2250. arch/sparc/include/asm/prom.h +0 −3
  2251. arch/sparc/include/asm/switch_to_64.h +2 −1
  2252. arch/sparc/include/asm/thread_info_64.h +4 −0
  2253. arch/sparc/include/asm/unistd.h +2 −1
  2254. arch/sparc/include/asm/vdso.h +1 −3
  2255. arch/sparc/include/uapi/asm/ioctls.h +2 −0
  2256. arch/sparc/include/uapi/asm/siginfo.h +0 −7
  2257. arch/sparc/include/uapi/asm/unistd.h +2 −1
  2258. arch/sparc/kernel/kgdb_32.c +1 −1
  2259. arch/sparc/kernel/kgdb_64.c +1 −1
  2260. arch/sparc/kernel/mdesc.c +3 −4
  2261. arch/sparc/kernel/perf_event.c +22 −9
  2262. arch/sparc/kernel/process_64.c +19 −6
  2263. arch/sparc/kernel/prom_32.c +2 −2
  2264. arch/sparc/kernel/prom_64.c +1 −1
  2265. arch/sparc/kernel/rtrap_64.S +3 −1
  2266. arch/sparc/kernel/setup_64.c +5 −7
  2267. arch/sparc/kernel/signal32.c +10 −2
  2268. arch/sparc/kernel/signal_64.c +5 −1
  2269. arch/sparc/kernel/smp_64.c +9 −9
  2270. arch/sparc/kernel/systbls_32.S +1 −1
  2271. arch/sparc/kernel/systbls_64.S +4 −4
  2272. arch/sparc/kernel/time_64.c +0 −3
  2273. arch/sparc/kernel/viohs.c +9 −3
  2274. arch/sparc/mm/init_32.c +2 −3
  2275. arch/sparc/mm/init_64.c +16 −12
  2276. arch/sparc/mm/srmmu.c +6 −6
  2277. arch/sparc/vdso/Makefile +20 −21
  2278. arch/sparc/vdso/checkundef.sh +10 −0
  2279. arch/sparc/vdso/vclock_gettime.c +165 −56
  2280. arch/sparc/vdso/vdso-layout.lds.S +0 −6
  2281. arch/sparc/vdso/vdso.lds.S +2 −0
  2282. arch/sparc/vdso/vdso2c.c +0 −6
  2283. arch/sparc/vdso/vdso2c.h +0 −1
  2284. arch/sparc/vdso/vdso32/vdso32.lds.S +2 −0
  2285. arch/sparc/vdso/vma.c +213 −24
  2286. arch/um/drivers/line.c +2 −2
  2287. arch/um/drivers/net_kern.c +2 −2
  2288. arch/um/drivers/port_user.c +1 −1
  2289. arch/um/drivers/ubd_kern.c +99 −137
  2290. arch/um/drivers/vector_kern.c +7 −12
  2291. arch/um/drivers/vector_user.c +2 −4
  2292. arch/um/include/asm/common.lds.S +0 −2
  2293. arch/um/include/shared/aio.h +0 −28
  2294. arch/um/kernel/initrd.c +2 −2
  2295. arch/um/kernel/irq.c +1 −2
  2296. arch/um/kernel/mem.c +9 −7
  2297. arch/um/kernel/physmem.c +10 −13
  2298. arch/um/kernel/trap.c +1 −1
  2299. arch/um/os-Linux/Makefile +2 −6
  2300. arch/um/os-Linux/aio.c +0 −390
  2301. arch/um/os-Linux/skas/process.c +5 −0
  2302. arch/unicore32/Kconfig +1 −2
  2303. arch/unicore32/include/asm/Kbuild +1 −0
  2304. arch/unicore32/include/asm/bug.h +2 −1
  2305. arch/unicore32/include/asm/dma-mapping.h +0 −22
  2306. arch/unicore32/include/asm/processor.h +0 −6
  2307. arch/unicore32/include/uapi/asm/unistd.h +1 −0
  2308. arch/unicore32/kernel/fpu-ucf64.c +3 −9
  2309. arch/unicore32/kernel/hibernate.c +1 −1
  2310. arch/unicore32/kernel/setup.c +2 −3
  2311. arch/unicore32/kernel/traps.c +3 −2
  2312. arch/unicore32/mm/fault.c +5 −22
  2313. arch/unicore32/mm/init.c +4 −60
  2314. arch/unicore32/mm/mmu.c +1 −2
  2315. arch/x86/Kconfig +17 −14
  2316. arch/x86/Kconfig.cpu +14 −0
  2317. arch/x86/Kconfig.debug +0 −1
  2318. arch/x86/Makefile +7 −3
  2319. arch/x86/boot/compressed/Makefile +1 −0
  2320. arch/x86/boot/compressed/eboot.c +10 −0
  2321. arch/x86/boot/compressed/kaslr.c +8 −10
  2322. arch/x86/boot/compressed/misc.h +1 −0
  2323. arch/x86/boot/cpucheck.c +1 −1
  2324. arch/x86/boot/early_serial_console.c +2 −2
  2325. arch/x86/boot/edd.c +3 −3
  2326. arch/x86/boot/header.S +5 −1
  2327. arch/x86/boot/main.c +2 −2
  2328. arch/x86/boot/memory.c +1 −1
  2329. arch/x86/boot/regs.c +1 −1
  2330. arch/x86/boot/tools/build.c +7 −0
  2331. arch/x86/boot/video-vesa.c +3 −3
  2332. arch/x86/boot/video.c +1 −1
  2333. arch/x86/configs/i386_defconfig +1 −0
  2334. arch/x86/configs/x86_64_defconfig +1 −0
  2335. arch/x86/crypto/Makefile +1 −4
  2336. arch/x86/crypto/aesni-intel_glue.c +2 −45
  2337. arch/x86/crypto/fpu.c +0 −207
  2338. arch/x86/crypto/sha1-mb/Makefile +0 −14
  2339. arch/x86/crypto/sha1-mb/sha1_mb.c +0 −1011
  2340. arch/x86/crypto/sha1-mb/sha1_mb_ctx.h +0 −134
  2341. arch/x86/crypto/sha1-mb/sha1_mb_mgr.h +0 −110
  2342. arch/x86/crypto/sha1-mb/sha1_mb_mgr_datastruct.S +0 −287
  2343. arch/x86/crypto/sha1-mb/sha1_mb_mgr_flush_avx2.S +0 −304
  2344. arch/x86/crypto/sha1-mb/sha1_mb_mgr_init_avx2.c +0 −64
  2345. arch/x86/crypto/sha1-mb/sha1_mb_mgr_submit_avx2.S +0 −209
  2346. arch/x86/crypto/sha1-mb/sha1_x8_avx2.S +0 −492
  2347. arch/x86/crypto/sha256-mb/Makefile +0 −14
  2348. arch/x86/crypto/sha256-mb/sha256_mb.c +0 −1013
  2349. arch/x86/crypto/sha256-mb/sha256_mb_ctx.h +0 −134
  2350. arch/x86/crypto/sha256-mb/sha256_mb_mgr.h +0 −108
  2351. arch/x86/crypto/sha256-mb/sha256_mb_mgr_datastruct.S +0 −304
  2352. arch/x86/crypto/sha256-mb/sha256_mb_mgr_flush_avx2.S +0 −307
  2353. arch/x86/crypto/sha256-mb/sha256_mb_mgr_init_avx2.c +0 −65
  2354. arch/x86/crypto/sha256-mb/sha256_mb_mgr_submit_avx2.S +0 −214
  2355. arch/x86/crypto/sha256-mb/sha256_x8_avx2.S +0 −598
  2356. arch/x86/crypto/sha512-mb/Makefile +0 −12
  2357. arch/x86/crypto/sha512-mb/sha512_mb.c +0 −1047
  2358. arch/x86/crypto/sha512-mb/sha512_mb_ctx.h +0 −128
  2359. arch/x86/crypto/sha512-mb/sha512_mb_mgr.h +0 −104
  2360. arch/x86/crypto/sha512-mb/sha512_mb_mgr_datastruct.S +0 −281
  2361. arch/x86/crypto/sha512-mb/sha512_mb_mgr_flush_avx2.S +0 −297
  2362. arch/x86/crypto/sha512-mb/sha512_mb_mgr_submit_avx2.S +0 −224
  2363. arch/x86/crypto/sha512-mb/sha512_x4_avx2.S +0 −531
  2364. arch/x86/entry/calling.h +15 −1
  2365. arch/x86/entry/entry_32.S +19 −9
  2366. arch/x86/entry/entry_64.S +66 −75
  2367. arch/x86/entry/entry_64_compat.S +5 −0
  2368. arch/x86/entry/vdso/Makefile +14 −2
  2369. arch/x86/entry/vdso/vclock_gettime.c +66 −154
  2370. arch/x86/entry/vdso/vgetcpu.c +1 −7
  2371. arch/x86/entry/vdso/vma.c +10 −52
  2372. arch/x86/entry/vsyscall/vsyscall_64.c +1 −8
  2373. arch/x86/entry/vsyscall/vsyscall_gtod.c +28 −23
  2374. arch/x86/events/amd/core.c +4 −0
  2375. arch/x86/events/amd/uncore.c +23 −7
  2376. arch/x86/events/core.c +33 −8
  2377. arch/x86/events/intel/core.c +272 −76
  2378. arch/x86/events/intel/cstate.c +4 −4
  2379. arch/x86/events/intel/pt.c +1 −1
  2380. arch/x86/events/intel/rapl.c +2 −2
  2381. arch/x86/events/intel/uncore.h +25 −8
  2382. arch/x86/events/intel/uncore_snb.c +119 −2
  2383. arch/x86/events/intel/uncore_snbep.c +7 −7
  2384. arch/x86/events/msr.c +4 −4
  2385. arch/x86/events/perf_event.h +3 −1
  2386. arch/x86/hyperv/Makefile +4 −0
  2387. arch/x86/hyperv/hv_apic.c +0 −1
  2388. arch/x86/hyperv/hv_init.c +19 −0
  2389. arch/x86/hyperv/hv_spinlock.c +88 −0
  2390. arch/x86/hyperv/mmu.c +2 −2
  2391. arch/x86/include/asm/acpi.h +7 −0
  2392. arch/x86/include/asm/alternative-asm.h +14 −6
  2393. arch/x86/include/asm/alternative.h +2 −9
  2394. arch/x86/include/asm/amd_nb.h +3 −0
  2395. arch/x86/include/asm/asm.h +25 −32
  2396. arch/x86/include/asm/atomic.h +4 −4
  2397. arch/x86/include/asm/atomic64_64.h +4 −4
  2398. arch/x86/include/asm/bitops.h +3 −6
  2399. arch/x86/include/asm/bug.h +56 −42
  2400. arch/x86/include/asm/cacheinfo.h +1 −0
  2401. arch/x86/include/asm/cmpxchg.h +6 −4
  2402. arch/x86/include/asm/compat.h +11 −19
  2403. arch/x86/include/asm/cpu_entry_area.h +0 −2
  2404. arch/x86/include/asm/cpufeature.h +47 −35
  2405. arch/x86/include/asm/cpufeatures.h +2 −0
  2406. arch/x86/include/asm/debugreg.h +1 −1
  2407. arch/x86/include/asm/desc.h +2 −2
  2408. arch/x86/include/asm/efi.h +1 −0
  2409. arch/x86/include/asm/elf.h +4 −5
  2410. arch/x86/include/asm/extable.h +2 −1
  2411. arch/x86/include/asm/fixmap.h +1 −1
  2412. arch/x86/include/asm/fpu/internal.h +2 −2
  2413. arch/x86/include/asm/fsgsbase.h +49 −0
  2414. arch/x86/include/asm/ftrace.h +1 −3
  2415. arch/x86/include/asm/futex.h +3 −3
  2416. arch/x86/include/asm/hugetlb.h +0 −69
  2417. arch/x86/include/asm/hyperv-tlfs.h +5 −0
  2418. arch/x86/include/asm/intel-family.h +17 −16
  2419. arch/x86/include/asm/io.h +2 −13
  2420. arch/x86/include/asm/iosf_mbi.h +29 −10
  2421. arch/x86/include/asm/irq_remapping.h +2 −0
  2422. arch/x86/include/asm/irqflags.h +6 −10
  2423. arch/x86/include/asm/jump_label.h +18 −62
  2424. arch/x86/include/asm/kexec.h +3 −2
  2425. arch/x86/include/asm/kvm_emulate.h +4 −0
  2426. arch/x86/include/asm/kvm_host.h +61 −9
  2427. arch/x86/include/asm/local.h +4 −4
  2428. arch/x86/include/asm/mce.h +32 −25
  2429. arch/x86/include/asm/mmu_context.h +2 −2
  2430. arch/x86/include/asm/mpx.h +9 −3
  2431. arch/x86/include/asm/mshyperv.h +3 −1
  2432. arch/x86/include/asm/msr-index.h +1 −0
  2433. arch/x86/include/asm/msr.h +2 −2
  2434. arch/x86/include/asm/nospec-branch.h +13 −4
  2435. arch/x86/include/asm/page_64_types.h +16 −11
  2436. arch/x86/include/asm/paravirt.h +195 −220
  2437. arch/x86/include/asm/paravirt_types.h +65 −75
  2438. arch/x86/include/asm/percpu.h +4 −4
  2439. arch/x86/include/asm/perf_event.h +9 −0
  2440. arch/x86/include/asm/pgalloc.h +1 −1
  2441. arch/x86/include/asm/pgtable-3level_types.h +1 −1
  2442. arch/x86/include/asm/pgtable.h +3 −4
  2443. arch/x86/include/asm/pgtable_64_types.h +1 −3
  2444. arch/x86/include/asm/pgtable_types.h +1 −1
  2445. arch/x86/include/asm/preempt.h +1 −1
  2446. arch/x86/include/asm/processor.h +10 −15
  2447. arch/x86/include/asm/ptrace.h +77 −9
  2448. arch/x86/include/asm/qspinlock.h +18 −0
  2449. arch/x86/include/asm/refcount.h +48 −31
  2450. arch/x86/include/asm/rmwcc.h +41 −28
  2451. arch/x86/include/asm/sections.h +0 −1
  2452. arch/x86/include/asm/segment.h +44 −4
  2453. arch/x86/include/asm/special_insns.h +2 −2
  2454. arch/x86/include/asm/string_64.h +19 −1
  2455. arch/x86/include/asm/suspend.h +8 −0
  2456. arch/x86/include/asm/suspend_32.h +4 −0
  2457. arch/x86/include/asm/tlb.h +14 −7
  2458. arch/x86/include/asm/tlbflush.h +18 −21
  2459. arch/x86/include/asm/trace/mpx.h +2 −2
  2460. arch/x86/include/asm/uaccess.h +11 −11
  2461. arch/x86/include/asm/unistd.h +2 −1
  2462. arch/x86/include/asm/uv/uv.h +6 −0
  2463. arch/x86/include/asm/vgtod.h +33 −46
  2464. arch/x86/include/asm/virtext.h +4 −3
  2465. arch/x86/include/asm/vmx.h +0 −13
  2466. arch/x86/include/asm/x86_init.h +2 −0
  2467. arch/x86/include/asm/xen/events.h +2 −0
  2468. arch/x86/include/asm/xen/page.h +31 −4
  2469. arch/x86/include/uapi/asm/bootparam.h +4 −0
  2470. arch/x86/include/uapi/asm/kvm.h +6 −2
  2471. arch/x86/include/uapi/asm/siginfo.h +0 −2
  2472. arch/x86/kernel/acpi/boot.c +9 −2
  2473. arch/x86/kernel/acpi/sleep.c +0 −1
  2474. arch/x86/kernel/alternative.c +5 −1
  2475. arch/x86/kernel/amd_gart_64.c +3 −3
  2476. arch/x86/kernel/amd_nb.c +41 −8
  2477. arch/x86/kernel/apic/apic.c +8 −1
  2478. arch/x86/kernel/apic/io_apic.c +4 −3
  2479. arch/x86/kernel/apic/probe_32.c +1 −0
  2480. arch/x86/kernel/apic/vector.c +4 −5
  2481. arch/x86/kernel/asm-offsets.c +7 −11
  2482. arch/x86/kernel/asm-offsets_64.c +6 −3
  2483. arch/x86/kernel/check.c +23 −5
  2484. arch/x86/kernel/cpu/Makefile +1 −0
  2485. arch/x86/kernel/cpu/amd.c +1 −1
  2486. arch/x86/kernel/cpu/bugs.c +55 −7
  2487. arch/x86/kernel/cpu/cacheinfo.c +29 −2
  2488. arch/x86/kernel/cpu/common.c +50 −33
  2489. arch/x86/kernel/cpu/cpu.h +1 −0
  2490. arch/x86/kernel/cpu/cyrix.c +1 −1
  2491. arch/x86/kernel/cpu/hygon.c +408 −0
  2492. arch/x86/kernel/cpu/intel_rdt.c +11 −6
  2493. arch/x86/kernel/cpu/intel_rdt.h +3 −3
  2494. arch/x86/kernel/cpu/intel_rdt_ctrlmondata.c +10 −2
  2495. arch/x86/kernel/cpu/intel_rdt_pseudo_lock.c +241 −164
  2496. arch/x86/kernel/cpu/intel_rdt_rdtgroup.c +182 −28
  2497. arch/x86/kernel/cpu/mcheck/dev-mcelog.c +0 −3
  2498. arch/x86/kernel/cpu/mcheck/mce-inject.c +6 −0
  2499. arch/x86/kernel/cpu/mcheck/mce-severity.c +2 −1
  2500. arch/x86/kernel/cpu/mcheck/mce.c +21 −9
  2501. arch/x86/kernel/cpu/microcode/core.c +2 −2
  2502. arch/x86/kernel/cpu/mshyperv.c +25 −0
  2503. arch/x86/kernel/cpu/mtrr/cleanup.c +2 −1
  2504. arch/x86/kernel/cpu/mtrr/generic.c +1 −1
  2505. arch/x86/kernel/cpu/mtrr/if.c +3 −3
  2506. arch/x86/kernel/cpu/mtrr/mtrr.c +1 −1
  2507. arch/x86/kernel/cpu/perfctr-watchdog.c +2 −0
  2508. arch/x86/kernel/cpu/vmware.c +3 −3
  2509. arch/x86/kernel/crash_dump_64.c +41 −19
  2510. arch/x86/kernel/devicetree.c +1 −1
  2511. arch/x86/kernel/e820.c +6 −15
  2512. arch/x86/kernel/early_printk.c +19 −10
  2513. arch/x86/kernel/fpu/signal.c +0 −1
  2514. arch/x86/kernel/head32.c +1 −0
  2515. arch/x86/kernel/head64.c +3 −1
  2516. arch/x86/kernel/head_64.S +1 −1
  2517. arch/x86/kernel/jump_label.c +25 −37
  2518. arch/x86/kernel/kprobes/core.c +1 −47
  2519. arch/x86/kernel/kprobes/opt.c +1 −1
  2520. arch/x86/kernel/kvm.c +10 −9
  2521. arch/x86/kernel/kvmclock.c +2 −2
  2522. arch/x86/kernel/ldt.c +38 −21
  2523. arch/x86/kernel/macros.S +16 −0
  2524. arch/x86/kernel/module.c +6 −0
  2525. arch/x86/kernel/mpparse.c +0 −1
  2526. arch/x86/kernel/msr.c +4 −4
  2527. arch/x86/kernel/paravirt-spinlocks.c +2 −13
  2528. arch/x86/kernel/paravirt.c +164 −172
  2529. arch/x86/kernel/paravirt_patch_32.c +42 −57
  2530. arch/x86/kernel/paravirt_patch_64.c +47 −64
  2531. arch/x86/kernel/pci-dma.c +1 −1
  2532. arch/x86/kernel/pci-swiotlb.c +1 −3
  2533. arch/x86/kernel/process_64.c +144 −45
  2534. arch/x86/kernel/ptrace.c +16 −41
  2535. arch/x86/kernel/pvclock.c +1 −1
  2536. arch/x86/kernel/setup.c +18 −2
  2537. arch/x86/kernel/setup_percpu.c +8 −6
  2538. arch/x86/kernel/smpboot.c +4 −2
  2539. arch/x86/kernel/sys_x86_64.c +6 −5
  2540. arch/x86/kernel/tce_64.c +3 −3
  2541. arch/x86/kernel/time.c +23 −1
  2542. arch/x86/kernel/traps.c +89 −109
  2543. arch/x86/kernel/tsc.c +9 −5
  2544. arch/x86/kernel/tsc_msr.c +5 −5
  2545. arch/x86/kernel/umip.c +1 −7
  2546. arch/x86/kernel/uprobes.c +1 −1
  2547. arch/x86/kernel/vm86_32.c +1 −1
  2548. arch/x86/kernel/vmlinux.lds.S +0 −10
  2549. arch/x86/kernel/vsmp_64.c +7 −77
  2550. arch/x86/kernel/x86_init.c +1 −2
  2551. arch/x86/kvm/emulate.c +21 −12
  2552. arch/x86/kvm/hyperv.c +212 −68
  2553. arch/x86/kvm/hyperv.h +4 −0
  2554. arch/x86/kvm/lapic.c +39 −8
  2555. arch/x86/kvm/lapic.h +1 −1
  2556. arch/x86/kvm/mmu.c +256 −172
  2557. arch/x86/kvm/mmu.h +4 −9
  2558. arch/x86/kvm/mmu_audit.c +6 −6
  2559. arch/x86/kvm/paging_tmpl.h +8 −7
  2560. arch/x86/kvm/svm.c +40 −30
  2561. arch/x86/kvm/trace.h +42 −0
  2562. arch/x86/kvm/vmx.c +1651 −767
  2563. arch/x86/kvm/vmx_shadow_fields.h +1 −4
  2564. arch/x86/kvm/x86.c +216 −72
  2565. arch/x86/kvm/x86.h +2 −0
  2566. arch/x86/lib/checksum_32.S +2 −2
  2567. arch/x86/lib/copy_user_64.S +45 −45
  2568. arch/x86/lib/csum-copy_64.S +6 −2
  2569. arch/x86/lib/getuser.S +6 −6
  2570. arch/x86/lib/putuser.S +5 −5
  2571. arch/x86/lib/usercopy_32.c +63 −63
  2572. arch/x86/lib/usercopy_64.c +4 −4
  2573. arch/x86/mm/amdtopology.c +0 −1
  2574. arch/x86/mm/cpu_entry_area.c +0 −36
  2575. arch/x86/mm/dump_pagetables.c +27 −8
  2576. arch/x86/mm/extable.c +100 −14
  2577. arch/x86/mm/fault.c +265 −215
  2578. arch/x86/mm/highmem_32.c +2 −2
  2579. arch/x86/mm/hugetlbpage.c +2 −2
  2580. arch/x86/mm/init.c +0 −1
  2581. arch/x86/mm/init_32.c +6 −22
  2582. arch/x86/mm/init_64.c +3 −4
  2583. arch/x86/mm/ioremap.c +17 −9
  2584. arch/x86/mm/kasan_init_64.c +5 −6
  2585. arch/x86/mm/kaslr.c +1 −0
  2586. arch/x86/mm/mem_encrypt_identity.c +1 −0
  2587. arch/x86/mm/mmap.c +1 −1
  2588. arch/x86/mm/mpx.c +9 −21
  2589. arch/x86/mm/numa.c +1 −2
  2590. arch/x86/mm/numa_32.c +0 −1
  2591. arch/x86/mm/numa_64.c +1 −1
  2592. arch/x86/mm/numa_emulation.c +10 −3
  2593. arch/x86/mm/pageattr-test.c +1 −1
  2594. arch/x86/mm/pageattr.c +431 −204
  2595. arch/x86/mm/pat.c +1 −1
  2596. arch/x86/mm/pgtable.c +8 −2
  2597. arch/x86/mm/physaddr.c +1 −1
  2598. arch/x86/mm/pti.c +32 −1
  2599. arch/x86/mm/tlb.c +122 −76
  2600. arch/x86/pci/acpi.c +1 −1
  2601. arch/x86/pci/amd_bus.c +4 −2
  2602. arch/x86/pci/fixup.c +3 −9
  2603. arch/x86/pci/i386.c +1 −1
  2604. arch/x86/platform/atom/punit_atom_debug.c +3 −3
  2605. arch/x86/platform/efi/early_printk.c +6 −2
  2606. arch/x86/platform/efi/efi.c +1 −2
  2607. arch/x86/platform/efi/efi_64.c +5 −7
  2608. arch/x86/platform/efi/quirks.c +81 −4
  2609. arch/x86/platform/intel-mid/device_libs/platform_bcm43xx.c +14 −3
  2610. arch/x86/platform/intel-mid/device_libs/platform_bt.c +1 −1
  2611. arch/x86/platform/intel/iosf_mbi.c +199 −18
  2612. arch/x86/platform/olpc/olpc-xo1-rtc.c +3 −0
  2613. arch/x86/platform/olpc/olpc_dt.c +2 −2
  2614. arch/x86/platform/ts5500/ts5500.c +0 −1
  2615. arch/x86/power/Makefile +1 −1
  2616. arch/x86/power/hibernate.c +248 −0
  2617. arch/x86/power/hibernate_32.c +39 −15
  2618. arch/x86/power/hibernate_64.c +1 −223
  2619. arch/x86/power/hibernate_asm_32.S +31 −6
  2620. arch/x86/power/hibernate_asm_64.S +1 −1
  2621. arch/x86/tools/relocs.c +12 −2
  2622. arch/x86/um/asm/elf.h +2 −3
  2623. arch/x86/um/asm/processor_32.h +0 −8
  2624. arch/x86/um/asm/processor_64.h +0 −3
  2625. arch/x86/um/shared/sysdep/ptrace_32.h +0 −12
  2626. arch/x86/xen/Kconfig +1 −1
  2627. arch/x86/xen/Makefile +31 −10
  2628. arch/x86/xen/efi.c +1 −13
  2629. arch/x86/xen/enlighten.c +4 −1
  2630. arch/x86/xen/enlighten_hvm.c +2 −0
  2631. arch/x86/xen/enlighten_pv.c +19 −15
  2632. arch/x86/xen/enlighten_pvh.c +2 −1
  2633. arch/x86/xen/grant-table.c +1 −24
  2634. arch/x86/xen/irq.c +1 −1
  2635. arch/x86/xen/mmu.c +2 −186
  2636. arch/x86/xen/mmu_hvm.c +1 −1
  2637. arch/x86/xen/mmu_pv.c +158 −18
  2638. arch/x86/xen/p2m.c +6 −5
  2639. arch/x86/xen/pci-swiotlb-xen.c +2 −0
  2640. arch/x86/xen/platform-pci-unplug.c +7 −16
  2641. arch/x86/xen/pmu.c +10 −3
  2642. arch/x86/xen/smp_pv.c +2 −0
  2643. arch/x86/xen/spinlock.c +20 −26
  2644. arch/x86/xen/time.c +2 −2
  2645. arch/x86/xen/vdso.h +2 −0
  2646. arch/x86/xen/xen-asm_64.S +5 −3
  2647. arch/x86/xen/xen-pvh.S +3 −14
  2648. arch/xtensa/Kconfig +1 −6
  2649. arch/xtensa/Makefile +1 −11
  2650. arch/xtensa/boot/Makefile +1 −1
  2651. arch/xtensa/include/asm/Kbuild +1 −0
  2652. arch/xtensa/include/asm/processor.h +5 −9
  2653. arch/xtensa/include/asm/unistd.h +1 −1
  2654. arch/xtensa/include/asm/vga.h +0 −19
  2655. arch/xtensa/include/uapi/asm/ioctls.h +2 −0
  2656. arch/xtensa/kernel/Makefile +2 −2
  2657. arch/xtensa/kernel/head.S +5 −2
  2658. arch/xtensa/kernel/pci.c +1 −1
  2659. arch/xtensa/kernel/vmlinux.lds.S +5 −32
  2660. arch/xtensa/mm/cache.c +1 −1
  2661. arch/xtensa/mm/init.c +3 −3
  2662. arch/xtensa/mm/kasan_init.c +2 −3
  2663. arch/xtensa/mm/mmu.c +2 −2
  2664. arch/xtensa/platforms/iss/network.c +2 −2
  2665. arch/xtensa/platforms/iss/setup.c +1 −1
  2666. arch/xtensa/platforms/xtfpga/setup.c +3 −3
  2667. block/Kconfig +3 −7
  2668. block/Kconfig.iosched +0 −3
  2669. block/Makefile +1 −0
  2670. block/bfq-iosched.c +188 −101
  2671. block/bfq-iosched.h +37 −16
  2672. block/bfq-wf2q.c +24 −19
  2673. block/bio-integrity.c +4 −8
  2674. block/bio.c +24 −24
  2675. block/blk-core.c +36 −248
  2676. block/blk-flush.c +3 −3
  2677. block/blk-integrity.c +2 −10
  2678. block/blk-iolatency.c +161 −47
  2679. block/blk-lib.c +13 −48
  2680. block/blk-merge.c +105 −32
  2681. block/blk-mq-debugfs.c +10 −4
  2682. block/blk-mq-sched.h +2 −2
  2683. block/blk-mq-tag.c +64 −5
  2684. block/blk-mq.c +152 −63
  2685. block/blk-pm.c +216 −0
  2686. block/blk-pm.h +69 −0
  2687. block/blk-settings.c +1 −1
  2688. block/blk-softirq.c +2 −3
  2689. block/blk-stat.c +1 −0
  2690. block/blk-sysfs.c +13 −2
  2691. block/blk-throttle.c +15 −26
  2692. block/blk-wbt.c +1 −1
  2693. block/blk-zoned.c +231 −128
  2694. block/blk.h +88 −3
  2695. block/bounce.c +30 −10
  2696. block/cfq-iosched.c +9 −3
  2697. block/elevator.c +1 −21
  2698. block/genhd.c +14 −5
  2699. block/ioctl.c +4 −0
  2700. block/kyber-iosched.c +306 −241
  2701. crypto/Kconfig +24 −77
  2702. crypto/Makefile +2 −2
  2703. crypto/aegis.h +9 −11
  2704. crypto/af_alg.c +1 −1
  2705. crypto/ahash.c +18 −7
  2706. crypto/algapi.c +16 −1
  2707. crypto/algboss.c +2 −0
  2708. crypto/algif_aead.c +6 −6
  2709. crypto/algif_hash.c +1 −1
  2710. crypto/asymmetric_keys/Kconfig +31 −0
  2711. crypto/asymmetric_keys/Makefile +25 −0
  2712. crypto/asymmetric_keys/asym_tpm.c +988 −0
  2713. crypto/asymmetric_keys/asymmetric_keys.h +3 −0
  2714. crypto/asymmetric_keys/asymmetric_type.c +43 −0
  2715. crypto/asymmetric_keys/pkcs7_parser.c +1 −0
  2716. crypto/asymmetric_keys/pkcs8.asn1 +24 −0
  2717. crypto/asymmetric_keys/pkcs8_parser.c +184 −0
  2718. crypto/asymmetric_keys/public_key.c +173 −18
  2719. crypto/asymmetric_keys/signature.c +95 −0
  2720. crypto/asymmetric_keys/tpm.asn1 +5 −0
  2721. crypto/asymmetric_keys/tpm_parser.c +102 −0
  2722. crypto/asymmetric_keys/x509_cert_parser.c +9 −12
  2723. crypto/authenc.c +4 −4
  2724. crypto/authencesn.c +4 −4
  2725. crypto/ccm.c +6 −3
  2726. crypto/chacha20_generic.c +4 −3
  2727. crypto/cryptd.c +17 −15
  2728. crypto/crypto_null.c +5 −6
  2729. crypto/crypto_user_base.c +16 −11
  2730. crypto/crypto_user_stat.c +484 −0
  2731. crypto/echainiv.c +2 −2
  2732. crypto/gcm.c +4 −4
  2733. crypto/internal.h +0 −8
  2734. crypto/lrw.c +89 −250
  2735. crypto/mcryptd.c +0 −675
  2736. crypto/morus1280.c +2 −5
  2737. crypto/morus640.c +4 −12
  2738. crypto/ofb.c +225 −0
  2739. crypto/rng.c +1 −0
  2740. crypto/rsa-pkcs1pad.c +41 −27
  2741. crypto/seqiv.c +2 −2
  2742. crypto/shash.c +19 −14
  2743. crypto/simd.c +3 −2
  2744. crypto/skcipher.c +24 −0
  2745. crypto/speck.c +0 −307
  2746. crypto/tcrypt.c +21 −6
  2747. crypto/tcrypt.h +1 −0
  2748. crypto/testmgr.c +15 −27
  2749. crypto/testmgr.h +126 −737
  2750. crypto/xcbc.c +5 −3
  2751. crypto/xts.c +46 −223
  2752. drivers/acpi/Kconfig +4 −7
  2753. drivers/acpi/Makefile +3 −0
  2754. drivers/acpi/acpi_adxl.c +192 −0
  2755. drivers/acpi/acpi_ipmi.c +2 −2
  2756. drivers/acpi/acpi_lpit.c +6 −0
  2757. drivers/acpi/acpi_lpss.c +104 −16
  2758. drivers/acpi/acpi_memhotplug.c +2 −2
  2759. drivers/acpi/acpi_pad.c +1 −0
  2760. drivers/acpi/acpi_processor.c +4 −3
  2761. drivers/acpi/acpi_tad.c +201 −0
  2762. drivers/acpi/acpica/Makefile +1 −0
  2763. drivers/acpi/acpica/acevents.h +2 −0
  2764. drivers/acpi/acpica/acinterp.h +23 −0
  2765. drivers/acpi/acpica/aclocal.h +1 −1
  2766. drivers/acpi/acpica/amlcode.h +5 −5
  2767. drivers/acpi/acpica/dsopcode.c +4 −0
  2768. drivers/acpi/acpica/evregion.c +15 −2
  2769. drivers/acpi/acpica/evrgnini.c +1 −5
  2770. drivers/acpi/acpica/evxfregn.c +0 −1
  2771. drivers/acpi/acpica/exfield.c +70 −256
  2772. drivers/acpi/acpica/exserial.c +360 −0
  2773. drivers/acpi/acpica/psloop.c +14 −2
  2774. drivers/acpi/acpica/tbxfload.c +1 −2
  2775. drivers/acpi/arm64/iort.c +1 −1
  2776. drivers/acpi/bus.c +16 −28
  2777. drivers/acpi/cppc_acpi.c +6 −2
  2778. drivers/acpi/custom_method.c +1 −2
  2779. drivers/acpi/device_pm.c +1 −0
  2780. drivers/acpi/glue.c +1 −1
  2781. drivers/acpi/nfit/core.c +196 −90
  2782. drivers/acpi/nfit/intel.h +38 −0
  2783. drivers/acpi/nfit/mce.c +6 −2
  2784. drivers/acpi/nfit/nfit.h +14 −7
  2785. drivers/acpi/numa.c +0 −1
  2786. drivers/acpi/osl.c +10 −6
  2787. drivers/acpi/pci_root.c +13 −4
  2788. drivers/acpi/pmic/intel_pmic_bxtwc.c +2 −10
  2789. drivers/acpi/pmic/intel_pmic_chtdc_ti.c +1 −0
  2790. drivers/acpi/pmic/intel_pmic_chtwc.c +1 −9
  2791. drivers/acpi/pmic/intel_pmic_crc.c +4 −12
  2792. drivers/acpi/pmic/intel_pmic_xpower.c +17 −16
  2793. drivers/acpi/pmic/tps68470_pmic.c +1 −1
  2794. drivers/acpi/pptt.c +13 −20
  2795. drivers/acpi/processor_idle.c +1 −0
  2796. drivers/acpi/property.c +71 −26
  2797. drivers/acpi/sbs.c +6 −2
  2798. drivers/acpi/sbshc.c +2 −0
  2799. drivers/acpi/scan.c +1 −10
  2800. drivers/acpi/tables.c +1 −2
  2801. drivers/acpi/x86/apple.c +3 −3
  2802. drivers/acpi/x86/utils.c +1 −1
  2803. drivers/android/Kconfig +1 −1
  2804. drivers/android/binder.c +320 −169
  2805. drivers/android/binder_trace.h +27 −9
  2806. drivers/ata/Kconfig +2 −3
  2807. drivers/ata/ahci.h +2 −0
  2808. drivers/ata/ahci_brcm.c +8 −0
  2809. drivers/ata/ahci_platform.c +14 −1
  2810. drivers/ata/ahci_sunxi.c +2 −1
  2811. drivers/ata/libahci_platform.c +48 −6
  2812. drivers/ata/libata-core.c +1 −0
  2813. drivers/ata/libata-scsi.c +2 −2
  2814. drivers/ata/pata_atiixp.c +1 −1
  2815. drivers/ata/pata_ep93xx.c +4 −4
  2816. drivers/ata/sata_inic162x.c +1 −1
  2817. drivers/ata/sata_rcar.c +1 −5
  2818. drivers/atm/eni.c +2 −1
  2819. drivers/atm/fore200e.c +134 −267
  2820. drivers/atm/fore200e.h +1 −7
  2821. drivers/atm/nicstar.c +1 −2
  2822. drivers/atm/zatm.c +21 −21
  2823. drivers/auxdisplay/hd44780.c +21 −40
  2824. drivers/auxdisplay/panel.c +3 −4
  2825. drivers/base/arch_topology.c +26 −0
  2826. drivers/base/cacheinfo.c +2 −0
  2827. drivers/base/component.c +3 −3
  2828. drivers/base/dd.c +7 −5
  2829. drivers/base/devres.c +34 −2
  2830. drivers/base/devtmpfs.c +1 −1
  2831. drivers/base/firmware_loader/main.c +5 −2
  2832. drivers/base/memory.c +8 −14
  2833. drivers/base/node.c +12 −7
  2834. drivers/base/platform-msi.c +8 −6
  2835. drivers/base/platform.c +11 −2
  2836. drivers/base/power/domain.c +16 −4
  2837. drivers/base/power/main.c +4 −1
  2838. drivers/base/regmap/internal.h +4 −1
  2839. drivers/base/regmap/regmap.c +91 −8
  2840. drivers/block/DAC960.c +0 −7229
  2841. drivers/block/DAC960.h +0 −4414
  2842. drivers/block/Kconfig +0 −13
  2843. drivers/block/Makefile +0 −1
  2844. drivers/block/amiflop.c +194 −124
  2845. drivers/block/aoe/aoe.h +4 −1
  2846. drivers/block/aoe/aoeblk.c +43 −27
  2847. drivers/block/aoe/aoecmd.c +13 −6
  2848. drivers/block/aoe/aoedev.c +8 −7
  2849. drivers/block/ataflop.c +163 −110
  2850. drivers/block/brd.c +11 −5
  2851. drivers/block/cryptoloop.c +11 −11
  2852. drivers/block/drbd/Kconfig +0 −1
  2853. drivers/block/drbd/drbd_int.h +8 −7
  2854. drivers/block/drbd/drbd_main.c +9 −9
  2855. drivers/block/drbd/drbd_nl.c +12 −27
  2856. drivers/block/drbd/drbd_protocol.h +2 −2
  2857. drivers/block/drbd/drbd_receiver.c +19 −18
  2858. drivers/block/drbd/drbd_req.c +1 −1
  2859. drivers/block/drbd/drbd_worker.c +33 −32
  2860. drivers/block/floppy.c +39 −32
  2861. drivers/block/loop.c +4 −5
  2862. drivers/block/mtip32xx/mtip32xx.c +21 −32
  2863. drivers/block/nbd.c +5 −7
  2864. drivers/block/null_blk.h +7 −4
  2865. drivers/block/null_blk_main.c +14 −127
  2866. drivers/block/null_blk_zoned.c +15 −42
  2867. drivers/block/paride/pcd.c +56 −32
  2868. drivers/block/paride/pd.c +66 −28
  2869. drivers/block/paride/pf.c +42 −14
  2870. drivers/block/pktcdvd.c +1 −1
  2871. drivers/block/ps3disk.c +45 −43
  2872. drivers/block/ps3vram.c +1 −1
  2873. drivers/block/rbd.c +16 −12
  2874. drivers/block/rsxx/core.c +2 −2
  2875. drivers/block/rsxx/cregs.c +1 −1
  2876. drivers/block/rsxx/dev.c +1 −1
  2877. drivers/block/rsxx/dma.c +26 −26
  2878. drivers/block/skd_main.c +28 −41
  2879. drivers/block/sunvdc.c +11 −5
  2880. drivers/block/swim.c +52 −54
  2881. drivers/block/swim3.c +100 −111
  2882. drivers/block/sx8.c +85 −81
  2883. drivers/block/umem.c +20 −22
  2884. drivers/block/virtio_blk.c +39 −29
  2885. drivers/block/xen-blkfront.c +5 −1
  2886. drivers/block/xsysace.c +55 −25
  2887. drivers/block/z2ram.c +50 −40
  2888. drivers/block/zram/Kconfig +0 −2
  2889. drivers/block/zram/zram_drv.c +7 −21
  2890. drivers/bluetooth/ath3k.c +6 −5
  2891. drivers/bluetooth/bt3c_cs.c +6 −3
  2892. drivers/bluetooth/btbcm.c +1 −0
  2893. drivers/bluetooth/btrsi.c +12 −1
  2894. drivers/bluetooth/btrtl.c +9 −1
  2895. drivers/bluetooth/btsdio.c +9 −5
  2896. drivers/bluetooth/btusb.c +2 −0
  2897. drivers/bluetooth/hci_ldisc.c +1 −0
  2898. drivers/bluetooth/hci_qca.c +61 −10
  2899. drivers/bluetooth/hci_serdev.c +6 −4
  2900. drivers/bus/fsl-mc/fsl-mc-bus.c +20 −7
  2901. drivers/bus/imx-weim.c +0 −3
  2902. drivers/bus/mvebu-mbus.c +1 −1
  2903. drivers/bus/ti-sysc.c +48 −123
  2904. drivers/bus/ts-nbus.c +7 −13
  2905. drivers/cdrom/cdrom.c +14 −15
  2906. drivers/cdrom/gdrom.c +82 −98
  2907. drivers/char/Kconfig +1 −1
  2908. drivers/char/hw_random/core.c +2 −2
  2909. drivers/char/ipmi/ipmi_bt_sm.c +34 −32
  2910. drivers/char/ipmi/ipmi_devintf.c +5 −6
  2911. drivers/char/ipmi/ipmi_dmi.c +15 −16
  2912. drivers/char/ipmi/ipmi_kcs_sm.c +2 −2
  2913. drivers/char/ipmi/ipmi_msghandler.c +25 −28
  2914. drivers/char/ipmi/ipmi_powernv.c +2 −2
  2915. drivers/char/ipmi/ipmi_poweroff.c +30 −37
  2916. drivers/char/ipmi/ipmi_si_hardcode.c +5 −4
  2917. drivers/char/ipmi/ipmi_si_hotmod.c +9 −8
  2918. drivers/char/ipmi/ipmi_si_intf.c +14 −14
  2919. drivers/char/ipmi/ipmi_si_mem_io.c +1 −1
  2920. drivers/char/ipmi/ipmi_si_pci.c +8 −13
  2921. drivers/char/ipmi/ipmi_si_platform.c +17 −9
  2922. drivers/char/ipmi/ipmi_smic_sm.c +11 −15
  2923. drivers/char/ipmi/ipmi_ssif.c +211 −96
  2924. drivers/char/ipmi/ipmi_watchdog.c +25 −27
  2925. drivers/char/pcmcia/cm4000_cs.c +2 −2
  2926. drivers/char/pcmcia/cm4040_cs.c +1 −1
  2927. drivers/char/pcmcia/synclink_cs.c +1 −2
  2928. drivers/char/random.c +12 −12
  2929. drivers/char/tpm/Kconfig +1 −1
  2930. drivers/char/tpm/tpm-dev-common.c +109 −38
  2931. drivers/char/tpm/tpm-dev.c +3 −8
  2932. drivers/char/tpm/tpm-dev.h +12 −6
  2933. drivers/char/tpm/tpm-interface.c +23 −7
  2934. drivers/char/tpm/tpm.h +2 −0
  2935. drivers/char/tpm/tpm2-cmd.c +3 −1
  2936. drivers/char/tpm/tpmrm-dev.c +3 −12
  2937. drivers/char/tpm/xen-tpmfront.c +1 −1
  2938. drivers/clk/Kconfig +2 −0
  2939. drivers/clk/Makefile +3 −1
  2940. drivers/clk/actions/Kconfig +1 −0
  2941. drivers/clk/actions/Makefile +1 −0
  2942. drivers/clk/actions/owl-common.c +2 −1
  2943. drivers/clk/actions/owl-common.h +4 −1
  2944. drivers/clk/actions/owl-reset.c +66 −0
  2945. drivers/clk/actions/owl-reset.h +31 −0
  2946. drivers/clk/actions/owl-s700.c +53 −2
  2947. drivers/clk/actions/owl-s900.c +84 −2
  2948. drivers/clk/at91/Makefile +4 −1
  2949. drivers/clk/at91/at91sam9260.c +494 −0
  2950. drivers/clk/at91/at91sam9rl.c +171 −0
  2951. drivers/clk/at91/at91sam9x5.c +309 −0
  2952. drivers/clk/at91/clk-audio-pll.c +56 −53
  2953. drivers/clk/at91/clk-generated.c +3 −78
  2954. drivers/clk/at91/clk-h32mx.c +7 −15
  2955. drivers/clk/at91/clk-i2s-mux.c +2 −38
  2956. drivers/clk/at91/clk-main.c +4 −108
  2957. drivers/clk/at91/clk-master.c +3 −96
  2958. drivers/clk/at91/clk-peripheral.c +2 −79
  2959. drivers/clk/at91/clk-pll.c +8 −182
  2960. drivers/clk/at91/clk-plldiv.c +1 −26
  2961. drivers/clk/at91/clk-programmable.c +4 −77
  2962. drivers/clk/at91/clk-slow.c +1 −31
  2963. drivers/clk/at91/clk-smd.c +1 −33
  2964. drivers/clk/at91/clk-system.c +1 −38
  2965. drivers/clk/at91/clk-usb.c +3 −91
  2966. drivers/clk/at91/clk-utmi.c +1 −44
  2967. drivers/clk/at91/dt-compat.c +961 −0
  2968. drivers/clk/at91/pmc.c +78 −0
  2969. drivers/clk/at91/pmc.h +159 −0
  2970. drivers/clk/at91/sama5d2.c +336 −0
  2971. drivers/clk/at91/sama5d4.c +264 −0
  2972. drivers/clk/axs10x/pll_clock.c +2 −2
  2973. drivers/clk/bcm/clk-kona-setup.c +11 −11
  2974. drivers/clk/clk-asm9260.c +2 −2
  2975. drivers/clk/clk-bulk.c +80 −0
  2976. drivers/clk/clk-cdce925.c +6 −5
  2977. drivers/clk/clk-devres.c +24 −0
  2978. drivers/clk/clk-fixed-factor.c +5 −4
  2979. drivers/clk/clk-fixed-rate.c +1 −0
  2980. drivers/clk/clk-gpio.c +4 −4
  2981. drivers/clk/clk-hsdk-pll.c +2 −2
  2982. drivers/clk/clk-max77686.c +6 −21
  2983. drivers/clk/clk-nomadik.c +2 −2
  2984. drivers/clk/clk-npcm7xx.c +1 −1
  2985. drivers/clk/clk-palmas.c +2 −2
  2986. drivers/clk/clk-qoriq.c +7 −7
  2987. drivers/clk/clk-s2mps11.c +36 −22
  2988. drivers/clk/clk-scmi.c +1 −1
  2989. drivers/clk/clk-scpi.c +3 −3
  2990. drivers/clk/clk-si5351.c +2 −2
  2991. drivers/clk/clk-stm32f4.c +1 −1
  2992. drivers/clk/clk-stm32h7.c +1 −1
  2993. drivers/clk/clk-stm32mp1.c +1 −1
  2994. drivers/clk/clk-tango4.c +5 −5
  2995. drivers/clk/clk.c +95 −0
  2996. drivers/clk/davinci/psc.c +0 −18
  2997. drivers/clk/hisilicon/Kconfig +7 −0
  2998. drivers/clk/hisilicon/Makefile +1 −0
  2999. drivers/clk/hisilicon/clk-hi3670.c +1016 −0
  3000. drivers/clk/hisilicon/reset.c +2 −3
  3001. drivers/clk/imx/clk-cpu.c +1 −1
  3002. drivers/clk/imx/clk-imx6q.c +1 −0
  3003. drivers/clk/imx/clk-imx6sl.c +2 −0
  3004. drivers/clk/imx/clk-imx6sll.c +1 −0
  3005. drivers/clk/imx/clk-imx6sx.c +1 −0
  3006. drivers/clk/imx/clk-imx6ul.c +1 −0
  3007. drivers/clk/imx/clk-imx7d.c +8 −20
  3008. drivers/clk/imx/clk.h +7 −0
  3009. drivers/clk/ingenic/Kconfig +47 −0
  3010. drivers/clk/ingenic/Makefile +5 −4
  3011. drivers/clk/ingenic/jz4725b-cgu.c +225 −0
  3012. drivers/clk/keystone/Kconfig +1 −1
  3013. drivers/clk/keystone/gate.c +6 −1
  3014. drivers/clk/keystone/pll.c +6 −1
  3015. drivers/clk/mediatek/clk-mt2701.c +0 −5
  3016. drivers/clk/meson/axg-audio.c +23 −11
  3017. drivers/clk/meson/axg.c +202 −143
  3018. drivers/clk/meson/axg.h +7 −1
  3019. drivers/clk/meson/clk-pll.c +101 −55
  3020. drivers/clk/meson/clkc.h +4 −12
  3021. drivers/clk/meson/gxbb.c +273 −257
  3022. drivers/clk/meson/gxbb.h +8 −2
  3023. drivers/clk/meson/meson8b.c +135 −145
  3024. drivers/clk/meson/meson8b.h +4 −1
  3025. drivers/clk/mmp/clk-of-mmp2.c +2 −2
  3026. drivers/clk/mvebu/ap806-system-controller.c +1 −4
  3027. drivers/clk/mvebu/armada-370.c +1 −3
  3028. drivers/clk/mvebu/armada-375.c +1 −3
  3029. drivers/clk/mvebu/armada-37xx-periph.c +50 −8
  3030. drivers/clk/mvebu/armada-37xx-tbg.c +3 −5
  3031. drivers/clk/mvebu/armada-37xx-xtal.c +1 −3
  3032. drivers/clk/mvebu/armada-38x.c +1 −3
  3033. drivers/clk/mvebu/armada-39x.c +1 −3
  3034. drivers/clk/mvebu/armada-xp.c +1 −3
  3035. drivers/clk/mvebu/clk-corediv.c +1 −3
  3036. drivers/clk/mvebu/clk-cpu.c +3 −5
  3037. drivers/clk/mvebu/common.c +1 −3
  3038. drivers/clk/mvebu/common.h +1 −3
  3039. drivers/clk/mvebu/cp110-system-controller.c +1 −3
  3040. drivers/clk/mvebu/dove.c +1 −3
  3041. drivers/clk/mvebu/kirkwood.c +1 −3
  3042. drivers/clk/mvebu/mv98dx3236.c +1 −3
  3043. drivers/clk/mvebu/orion.c +1 −3
  3044. drivers/clk/qcom/Kconfig +53 −0
  3045. drivers/clk/qcom/Makefile +8 −0
  3046. drivers/clk/qcom/camcc-sdm845.c +1745 −0
  3047. drivers/clk/qcom/clk-alpha-pll.c +1 −0
  3048. drivers/clk/qcom/clk-branch.c +1 −1
  3049. drivers/clk/qcom/clk-hfpll.c +244 −0
  3050. drivers/clk/qcom/clk-hfpll.h +44 −0
  3051. drivers/clk/qcom/clk-krait.c +126 −0
  3052. drivers/clk/qcom/clk-krait.h +40 −0
  3053. drivers/clk/qcom/clk-rcg.h +11 −0
  3054. drivers/clk/qcom/clk-rcg2.c +195 −0
  3055. drivers/clk/qcom/gcc-ipq806x.c +82 −0
  3056. drivers/clk/qcom/gcc-msm8960.c +172 −0
  3057. drivers/clk/qcom/gcc-msm8996.c +152 −0
  3058. drivers/clk/qcom/gcc-qcs404.c +2744 −0
  3059. drivers/clk/qcom/gcc-sdm660.c +2480 −0
  3060. drivers/clk/qcom/gcc-sdm845.c +209 −112
  3061. drivers/clk/qcom/hfpll.c +96 −0
  3062. drivers/clk/qcom/kpss-xcc.c +87 −0
  3063. drivers/clk/qcom/krait-cc.c +397 −0
  3064. drivers/clk/renesas/Kconfig +18 −1
  3065. drivers/clk/renesas/Makefile +3 −0
  3066. drivers/clk/renesas/clk-div6.c +7 −10
  3067. drivers/clk/renesas/clk-emev2.c +5 −17
  3068. drivers/clk/renesas/clk-mstp.c +5 −8
  3069. drivers/clk/renesas/clk-r8a73a4.c +3 −6
  3070. drivers/clk/renesas/clk-r8a7740.c +3 −6
  3071. drivers/clk/renesas/clk-r8a7778.c +3 −6
  3072. drivers/clk/renesas/clk-r8a7779.c +3 −6
  3073. drivers/clk/renesas/clk-rcar-gen2.c +3 −6
  3074. drivers/clk/renesas/clk-rz.c +3 −6
  3075. drivers/clk/renesas/clk-sh73a0.c +3 −6
  3076. drivers/clk/renesas/r7s9210-cpg-mssr.c +217 −0
  3077. drivers/clk/renesas/r8a7743-cpg-mssr.c +13 −5
  3078. drivers/clk/renesas/r8a7745-cpg-mssr.c +1 −4
  3079. drivers/clk/renesas/r8a774a1-cpg-mssr.c +323 −0
  3080. drivers/clk/renesas/r8a774c0-cpg-mssr.c +286 −0
  3081. drivers/clk/renesas/r8a7790-cpg-mssr.c +1 −4
  3082. drivers/clk/renesas/r8a7791-cpg-mssr.c +1 −4
  3083. drivers/clk/renesas/r8a7792-cpg-mssr.c +1 −4
  3084. drivers/clk/renesas/r8a7794-cpg-mssr.c +1 −4
  3085. drivers/clk/renesas/r8a7795-cpg-mssr.c +35 −37
  3086. drivers/clk/renesas/r8a7796-cpg-mssr.c +35 −37
  3087. drivers/clk/renesas/r8a77965-cpg-mssr.c +36 −33
  3088. drivers/clk/renesas/r8a77970-cpg-mssr.c +75 −6
  3089. drivers/clk/renesas/r8a77980-cpg-mssr.c +21 −11
  3090. drivers/clk/renesas/r8a77990-cpg-mssr.c +13 −4
  3091. drivers/clk/renesas/r8a77995-cpg-mssr.c +11 −6
  3092. drivers/clk/renesas/r9a06g032-clocks.c +2 −1
  3093. drivers/clk/renesas/rcar-gen2-cpg.c +1 −4
  3094. drivers/clk/renesas/rcar-gen2-cpg.h +2 −5
  3095. drivers/clk/renesas/rcar-gen3-cpg.c +32 −13
  3096. drivers/clk/renesas/rcar-gen3-cpg.h +24 −9
  3097. drivers/clk/renesas/rcar-usb2-clock-sel.c +1 −4
  3098. drivers/clk/renesas/renesas-cpg-mssr.c +168 −37
  3099. drivers/clk/renesas/renesas-cpg-mssr.h +33 −5
  3100. drivers/clk/rockchip/clk-ddr.c +0 −4
  3101. drivers/clk/rockchip/clk-rk3188.c +1 −1
  3102. drivers/clk/rockchip/clk-rk3288.c +25 −4
  3103. drivers/clk/rockchip/clk-rk3328.c +4 −4
  3104. drivers/clk/samsung/clk-cpu.c +3 −3
  3105. drivers/clk/samsung/clk-cpu.h +1 −1
  3106. drivers/clk/samsung/clk-exynos-audss.c +0 −1
  3107. drivers/clk/samsung/clk-exynos3250.c +0 −1
  3108. drivers/clk/samsung/clk-exynos4.c +14 −212
  3109. drivers/clk/samsung/clk-exynos5250.c +2 −40
  3110. drivers/clk/samsung/clk-exynos5420.c +8 −68
  3111. drivers/clk/samsung/clk-exynos5433.c +32 −1
  3112. drivers/clk/samsung/clk-s3c2410.c +2 −41
  3113. drivers/clk/samsung/clk-s3c2412.c +2 −41
  3114. drivers/clk/samsung/clk-s3c2443.c +2 −41
  3115. drivers/clk/samsung/clk-s3c64xx.c +6 −60
  3116. drivers/clk/samsung/clk-s5pv210.c +2 −39
  3117. drivers/clk/samsung/clk.c +13 −10
  3118. drivers/clk/samsung/clk.h +16 −2
  3119. drivers/clk/st/clkgen-fsyn.c +1 −1
  3120. drivers/clk/sunxi-ng/ccu-sun4i-a10.c +9 −1
  3121. drivers/clk/sunxi-ng/ccu-sun50i-a64.c +26 −22
  3122. drivers/clk/sunxi-ng/ccu-sun50i-a64.h +3 −1
  3123. drivers/clk/sunxi-ng/ccu-sun50i-h6.c +28 −25
  3124. drivers/clk/sunxi-ng/ccu-sun8i-a83t.c +2 −0
  3125. drivers/clk/sunxi-ng/ccu-sun8i-h3.c +13 −12
  3126. drivers/clk/sunxi-ng/ccu-sun8i-r40.c +26 −26
  3127. drivers/clk/sunxi-ng/ccu_nkmp.c +7 −0
  3128. drivers/clk/sunxi-ng/ccu_nkmp.h +1 −0
  3129. drivers/clk/sunxi-ng/ccu_nm.c +7 −0
  3130. drivers/clk/sunxi-ng/ccu_nm.h +30 −0
  3131. drivers/clk/sunxi/clk-mod0.c +3 −3
  3132. drivers/clk/sunxi/clk-sun9i-core.c +10 −10
  3133. drivers/clk/sunxi/clk-sunxi.c +2 −2
  3134. drivers/clk/tegra/clk-dfll.c +6 −2
  3135. drivers/clk/tegra/clk-tegra210.c +4 −3
  3136. drivers/clk/ti/Makefile +6 −3
  3137. drivers/clk/ti/apll.c +9 −9
  3138. drivers/clk/ti/clk-33xx-compat.c +218 −0
  3139. drivers/clk/ti/clk-33xx.c +140 −92
  3140. drivers/clk/ti/clk-43xx-compat.c +225 −0
  3141. drivers/clk/ti/clk-43xx.c +150 −99
  3142. drivers/clk/ti/clk-7xx-compat.c +823 −0
  3143. drivers/clk/ti/clk-7xx.c +328 −262
  3144. drivers/clk/ti/clk-dra7-atl.c +2 −2
  3145. drivers/clk/ti/clk.c +20 −12
  3146. drivers/clk/ti/clkctrl.c +77 −24
  3147. drivers/clk/ti/clock.h +11 −0
  3148. drivers/clk/ti/composite.c +7 −7
  3149. drivers/clk/ti/divider.c +38 −2
  3150. drivers/clk/ti/dpll.c +12 −6
  3151. drivers/clk/ti/dpll3xxx.c +124 −0
  3152. drivers/clk/ti/fapll.c +4 −4
  3153. drivers/clk/ti/fixed-factor.c +2 −2
  3154. drivers/clk/ti/gate.c +4 −1
  3155. drivers/clk/ti/interface.c +1 −1
  3156. drivers/clk/ti/mux.c +31 −2
  3157. drivers/clk/zynq/clkc.c +2 −2
  3158. drivers/clk/zynqmp/Kconfig +10 −0
  3159. drivers/clk/zynqmp/Makefile +4 −0
  3160. drivers/clk/zynqmp/clk-gate-zynqmp.c +144 −0
  3161. drivers/clk/zynqmp/clk-mux-zynqmp.c +141 −0
  3162. drivers/clk/zynqmp/clk-zynqmp.h +68 −0
  3163. drivers/clk/zynqmp/clkc.c +716 −0
  3164. drivers/clk/zynqmp/divider.c +217 −0
  3165. drivers/clk/zynqmp/pll.c +335 −0
  3166. drivers/clocksource/Kconfig +18 −0
  3167. drivers/clocksource/Makefile +15 −13
  3168. drivers/clocksource/arm_arch_timer.c +15 −0
  3169. drivers/clocksource/asm9260_timer.c +1 −1
  3170. drivers/clocksource/dw_apb_timer_of.c +16 −4
  3171. drivers/clocksource/i8253.c +12 −2
  3172. drivers/clocksource/pxa_timer.c +3 −3
  3173. drivers/clocksource/renesas-ostm.c +1 −10
  3174. drivers/clocksource/riscv_timer.c +8 −4
  3175. drivers/clocksource/sh_cmt.c +53 −53
  3176. drivers/clocksource/sh_mtu2.c +1 −9
  3177. drivers/clocksource/sh_tmu.c +1 −9
  3178. drivers/clocksource/timer-armada-370-xp.c +0 −0
  3179. drivers/clocksource/timer-cadence-ttc.c +1 −1
  3180. drivers/clocksource/timer-efm32.c +0 −0
  3181. drivers/clocksource/timer-fsl-ftm.c +0 −0
  3182. drivers/clocksource/timer-gx6605s.c +154 −0
  3183. drivers/clocksource/timer-integrator-ap.c +1 −1
  3184. drivers/clocksource/timer-lpc32xx.c +0 −0
  3185. drivers/clocksource/timer-mp-csky.c +173 −0
  3186. drivers/clocksource/timer-orion.c +4 −4
  3187. drivers/clocksource/timer-owl.c +0 −0
  3188. drivers/clocksource/timer-pistachio.c +0 −0
  3189. drivers/clocksource/timer-qcom.c +0 −0
  3190. drivers/clocksource/timer-sp804.c +1 −1
  3191. drivers/clocksource/timer-versatile.c +0 −0
  3192. drivers/clocksource/timer-vf-pit.c +0 −0
  3193. drivers/clocksource/timer-vt8500.c +0 −0
  3194. drivers/clocksource/timer-zevio.c +4 −4
  3195. drivers/cpufreq/Kconfig.arm +1 −8
  3196. drivers/cpufreq/Makefile +0 −3
  3197. drivers/cpufreq/acpi-cpufreq.c +5 −0
  3198. drivers/cpufreq/amd_freq_sensitivity.c +7 −2
  3199. drivers/cpufreq/arm_big_little_dt.c +0 −100
  3200. drivers/cpufreq/cppc_cpufreq.c +1 −1
  3201. drivers/cpufreq/cpufreq-dt-platdev.c +5 −1
.clang-format+0−1
@@ -323,7 +323,6 @@ ForEachMacros: · 322 unmodified lines
323323 - 'protocol_for_each_card'
324324 - 'protocol_for_each_dev'
325325 - 'queue_for_each_hw_ctx'
326− - 'radix_tree_for_each_contig'
327326 - 'radix_tree_for_each_slot'
328327 - 'radix_tree_for_each_tagged'
329328 - 'rbtree_postorder_for_each_entry_safe'
.mailmap+13−0
@@ -119,6 +119,13 @@ Mark Brown <broonie@sirena.org.uk> · 118 unmodified lines
119119 Mark Yao <markyao0591@gmail.com> <mark.yao@rock-chips.com>
120120 Martin Kepplinger <martink@posteo.de> <martin.kepplinger@theobroma-systems.com>
121121 Martin Kepplinger <martink@posteo.de> <martin.kepplinger@ginzinger.com>
122+Matthew Wilcox <willy@infradead.org> <matthew.r.wilcox@intel.com>
123+Matthew Wilcox <willy@infradead.org> <matthew@wil.cx>
124+Matthew Wilcox <willy@infradead.org> <mawilcox@linuxonhyperv.com>
125+Matthew Wilcox <willy@infradead.org> <mawilcox@microsoft.com>
126+Matthew Wilcox <willy@infradead.org> <willy@debian.org>
127+Matthew Wilcox <willy@infradead.org> <willy@linux.intel.com>
128+Matthew Wilcox <willy@infradead.org> <willy@parisc-linux.org>
122129 Matthieu CASTET <castet.matthieu@free.fr>
123130 Mauro Carvalho Chehab <mchehab@kernel.org> <mchehab@brturbo.com.br>
124131 Mauro Carvalho Chehab <mchehab@kernel.org> <maurochehab@gmail.com>
@@ -152,7 +159,13 @@ Peter Oruba <peter@oruba.de> · 27 unmodified lines
152159 Peter Oruba <peter.oruba@amd.com>
153160 Pratyush Anand <pratyush.anand@gmail.com> <pratyush.anand@st.com>
154161 Praveen BP <praveenbp@ti.com>
162+Punit Agrawal <punitagrawal@gmail.com> <punit.agrawal@arm.com>
155163 Qais Yousef <qsyousef@gmail.com> <qais.yousef@imgtec.com>
164+Oleksij Rempel <linux@rempel-privat.de> <bug-track@fisher-privat.net>
165+Oleksij Rempel <linux@rempel-privat.de> <external.Oleksij.Rempel@de.bosch.com>
166+Oleksij Rempel <linux@rempel-privat.de> <fixed-term.Oleksij.Rempel@de.bosch.com>
167+Oleksij Rempel <linux@rempel-privat.de> <o.rempel@pengutronix.de>
168+Oleksij Rempel <linux@rempel-privat.de> <ore@pengutronix.de>
156169 Rajesh Shah <rajesh.shah@intel.com>
157170 Ralf Baechle <ralf@linux-mips.org>
158171 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
CREDITS+4−0
@@ -2138,6 +2138,10 @@ E: paul@laufernet.com · 2137 unmodified lines
21382138 D: Soundblaster driver fixes, ISAPnP quirk
21392139 S: California, USA
21402140
2141+N: Jarkko Lavinen
2142+E: jarkko.lavinen@nokia.com
2143+D: OMAP MMC support
2144+
21412145 N: Jonathan Layes
21422146 D: ARPD support
21432147
Documentation/00-INDEX+0−428
@@ -1,428 +0,0 @@
1−
2−This is a brief list of all the files in ./linux/Documentation and what
3−they contain. If you add a documentation file, please list it here in
4−alphabetical order as well, or risk being hunted down like a rabid dog.
5−Please keep the descriptions small enough to fit on one line.
6− Thanks -- Paul G.
7−
8−Following translations are available on the WWW:
9−
10− - Japanese, maintained by the JF Project (jf@listserv.linux.or.jp), at
11− http://linuxjf.sourceforge.jp/
12−
13−00-INDEX
14− - this file.
15−ABI/
16− - info on kernel <-> userspace ABI and relative interface stability.
17−CodingStyle
18− - nothing here, just a pointer to process/coding-style.rst.
19−DMA-API.txt
20− - DMA API, pci_ API & extensions for non-consistent memory machines.
21−DMA-API-HOWTO.txt
22− - Dynamic DMA mapping Guide
23−DMA-ISA-LPC.txt
24− - How to do DMA with ISA (and LPC) devices.
25−DMA-attributes.txt
26− - listing of the various possible attributes a DMA region can have
27−EDID/
28− - directory with info on customizing EDID for broken gfx/displays.
29−IPMI.txt
30− - info on Linux Intelligent Platform Management Interface (IPMI) Driver.
31−IRQ-affinity.txt
32− - how to select which CPU(s) handle which interrupt events on SMP.
33−IRQ-domain.txt
34− - info on interrupt numbering and setting up IRQ domains.
35−IRQ.txt
36− - description of what an IRQ is.
37−Intel-IOMMU.txt
38− - basic info on the Intel IOMMU virtualization support.
39−Makefile
40− - It's not of interest for those who aren't touching the build system.
41−PCI/
42− - info related to PCI drivers.
43−RCU/
44− - directory with info on RCU (read-copy update).
45−SAK.txt
46− - info on Secure Attention Keys.
47−SM501.txt
48− - Silicon Motion SM501 multimedia companion chip
49−SubmittingPatches
50− - nothing here, just a pointer to process/coding-style.rst.
51−accounting/
52− - documentation on accounting and taskstats.
53−acpi/
54− - info on ACPI-specific hooks in the kernel.
55−admin-guide/
56− - info related to Linux users and system admins.
57−aoe/
58− - description of AoE (ATA over Ethernet) along with config examples.
59−arm/
60− - directory with info about Linux on the ARM architecture.
61−arm64/
62− - directory with info about Linux on the 64 bit ARM architecture.
63−auxdisplay/
64− - misc. LCD driver documentation (cfag12864b, ks0108).
65−backlight/
66− - directory with info on controlling backlights in flat panel displays
67−block/
68− - info on the Block I/O (BIO) layer.
69−blockdev/
70− - info on block devices & drivers
71−bt8xxgpio.txt
72− - info on how to modify a bt8xx video card for GPIO usage.
73−btmrvl.txt
74− - info on Marvell Bluetooth driver usage.
75−bus-devices/
76− - directory with info on TI GPMC (General Purpose Memory Controller)
77−bus-virt-phys-mapping.txt
78− - how to access I/O mapped memory from within device drivers.
79−cdrom/
80− - directory with information on the CD-ROM drivers that Linux has.
81−cgroup-v1/
82− - cgroups v1 features, including cpusets and memory controller.
83−cma/
84− - Continuous Memory Area (CMA) debugfs interface.
85−conf.py
86− - It's not of interest for those who aren't touching the build system.
87−connector/
88− - docs on the netlink based userspace<->kernel space communication mod.
89−console/
90− - documentation on Linux console drivers.
91−core-api/
92− - documentation on kernel core components.
93−cpu-freq/
94− - info on CPU frequency and voltage scaling.
95−cpu-hotplug.txt
96− - document describing CPU hotplug support in the Linux kernel.
97−cpu-load.txt
98− - document describing how CPU load statistics are collected.
99−cpuidle/
100− - info on CPU_IDLE, CPU idle state management subsystem.
101−cputopology.txt
102− - documentation on how CPU topology info is exported via sysfs.
103−crc32.txt
104− - brief tutorial on CRC computation
105−crypto/
106− - directory with info on the Crypto API.
107−dcdbas.txt
108− - information on the Dell Systems Management Base Driver.
109−debugging-modules.txt
110− - some notes on debugging modules after Linux 2.6.3.
111−debugging-via-ohci1394.txt
112− - how to use firewire like a hardware debugger memory reader.
113−dell_rbu.txt
114− - document demonstrating the use of the Dell Remote BIOS Update driver.
115−dev-tools/
116− - directory with info on development tools for the kernel.
117−device-mapper/
118− - directory with info on Device Mapper.
119−dmaengine/
120− - the DMA engine and controller API guides.
121−devicetree/
122− - directory with info on device tree files used by OF/PowerPC/ARM
123−digsig.txt
124− -info on the Digital Signature Verification API
125−dma-buf-sharing.txt
126− - the DMA Buffer Sharing API Guide
127−docutils.conf
128− - nothing here. Just a configuration file for docutils.
129−dontdiff
130− - file containing a list of files that should never be diff'ed.
131−driver-api/
132− - the Linux driver implementer's API guide.
133−driver-model/
134− - directory with info about Linux driver model.
135−early-userspace/
136− - info about initramfs, klibc, and userspace early during boot.
137−efi-stub.txt
138− - How to use the EFI boot stub to bypass GRUB or elilo on EFI systems.
139−eisa.txt
140− - info on EISA bus support.
141−extcon/
142− - directory with porting guide for Android kernel switch driver.
143−isa.txt
144− - info on EISA bus support.
145−fault-injection/
146− - dir with docs about the fault injection capabilities infrastructure.
147−fb/
148− - directory with info on the frame buffer graphics abstraction layer.
149−features/
150− - status of feature implementation on different architectures.
151−filesystems/
152− - info on the vfs and the various filesystems that Linux supports.
153−firmware_class/
154− - request_firmware() hotplug interface info.
155−flexible-arrays.txt
156− - how to make use of flexible sized arrays in linux
157−fmc/
158− - information about the FMC bus abstraction
159−fpga/
160− - FPGA Manager Core.
161−futex-requeue-pi.txt
162− - info on requeueing of tasks from a non-PI futex to a PI futex
163−gcc-plugins.txt
164− - GCC plugin infrastructure.
165−gpio/
166− - gpio related documentation
167−gpu/
168− - directory with information on GPU driver developer's guide.
169−hid/
170− - directory with information on human interface devices
171−highuid.txt
172− - notes on the change from 16 bit to 32 bit user/group IDs.
173−hwspinlock.txt
174− - hardware spinlock provides hardware assistance for synchronization
175−timers/
176− - info on the timer related topics
177−hw_random.txt
178− - info on Linux support for random number generator in i8xx chipsets.
179−hwmon/
180− - directory with docs on various hardware monitoring drivers.
181−i2c/
182− - directory with info about the I2C bus/protocol (2 wire, kHz speed).
183−x86/i386/
184− - directory with info about Linux on Intel 32 bit architecture.
185−ia64/
186− - directory with info about Linux on Intel 64 bit architecture.
187−ide/
188− - Information regarding the Enhanced IDE drive.
189−iio/
190− - info on industrial IIO configfs support.
191−index.rst
192− - main index for the documentation at ReST format.
193−infiniband/
194− - directory with documents concerning Linux InfiniBand support.
195−input/
196− - info on Linux input device support.
197−intel_txt.txt
198− - info on intel Trusted Execution Technology (intel TXT).
199−io-mapping.txt
200− - description of io_mapping functions in linux/io-mapping.h
201−io_ordering.txt
202− - info on ordering I/O writes to memory-mapped addresses.
203−ioctl/
204− - directory with documents describing various IOCTL calls.
205−iostats.txt
206− - info on I/O statistics Linux kernel provides.
207−irqflags-tracing.txt
208− - how to use the irq-flags tracing feature.
209−isapnp.txt
210− - info on Linux ISA Plug & Play support.
211−isdn/
212− - directory with info on the Linux ISDN support, and supported cards.
213−kbuild/
214− - directory with info about the kernel build process.
215−kdump/
216− - directory with mini HowTo on getting the crash dump code to work.
217−doc-guide/
218− - how to write and format reStructuredText kernel documentation
219−kernel-per-CPU-kthreads.txt
220− - List of all per-CPU kthreads and how they introduce jitter.
221−kobject.txt
222− - info of the kobject infrastructure of the Linux kernel.
223−kprobes.txt
224− - documents the kernel probes debugging feature.
225−kref.txt
226− - docs on adding reference counters (krefs) to kernel objects.
227−laptops/
228− - directory with laptop related info and laptop driver documentation.
229−ldm.txt
230− - a brief description of LDM (Windows Dynamic Disks).
231−leds/
232− - directory with info about LED handling under Linux.
233−livepatch/
234− - info on kernel live patching.
235−locking/
236− - directory with info about kernel locking primitives
237−lockup-watchdogs.txt
238− - info on soft and hard lockup detectors (aka nmi_watchdog).
239−logo.gif
240− - full colour GIF image of Linux logo (penguin - Tux).
241−logo.txt
242− - info on creator of above logo & site to get additional images from.
243−lsm.txt
244− - Linux Security Modules: General Security Hooks for Linux
245−lzo.txt
246− - kernel LZO decompressor input formats
247−m68k/
248− - directory with info about Linux on Motorola 68k architecture.
249−mailbox.txt
250− - How to write drivers for the common mailbox framework (IPC).
251−md/
252− - directory with info about Linux Software RAID
253−media/
254− - info on media drivers: uAPI, kAPI and driver documentation.
255−memory-barriers.txt
256− - info on Linux kernel memory barriers.
257−memory-devices/
258− - directory with info on parts like the Texas Instruments EMIF driver
259−memory-hotplug.txt
260− - Hotpluggable memory support, how to use and current status.
261−men-chameleon-bus.txt
262− - info on MEN chameleon bus.
263−mic/
264− - Intel Many Integrated Core (MIC) architecture device driver.
265−mips/
266− - directory with info about Linux on MIPS architecture.
267−misc-devices/
268− - directory with info about devices using the misc dev subsystem
269−mmc/
270− - directory with info about the MMC subsystem
271−mtd/
272− - directory with info about memory technology devices (flash)
273−namespaces/
274− - directory with various information about namespaces
275−netlabel/
276− - directory with information on the NetLabel subsystem.
277−networking/
278− - directory with info on various aspects of networking with Linux.
279−nfc/
280− - directory relating info about Near Field Communications support.
281−nios2/
282− - Linux on the Nios II architecture.
283−nommu-mmap.txt
284− - documentation about no-mmu memory mapping support.
285−numastat.txt
286− - info on how to read Numa policy hit/miss statistics in sysfs.
287−ntb.txt
288− - info on Non-Transparent Bridge (NTB) drivers.
289−nvdimm/
290− - info on non-volatile devices.
291−nvmem/
292− - info on non volatile memory framework.
293−output/
294− - default directory where html/LaTeX/pdf files will be written.
295−padata.txt
296− - An introduction to the "padata" parallel execution API
297−parisc/
298− - directory with info on using Linux on PA-RISC architecture.
299−parport-lowlevel.txt
300− - description and usage of the low level parallel port functions.
301−pcmcia/
302− - info on the Linux PCMCIA driver.
303−percpu-rw-semaphore.txt
304− - RCU based read-write semaphore optimized for locking for reading
305−perf/
306− - info about the APM X-Gene SoC Performance Monitoring Unit (PMU).
307−phy/
308− - ino on Samsung USB 2.0 PHY adaptation layer.
309−phy.txt
310− - Description of the generic PHY framework.
311−pi-futex.txt
312− - documentation on lightweight priority inheritance futexes.
313−pinctrl.txt
314− - info on pinctrl subsystem and the PINMUX/PINCONF and drivers
315−platform/
316− - List of supported hardware by compal and Dell laptop.
317−pnp.txt
318− - Linux Plug and Play documentation.
319−power/
320− - directory with info on Linux PCI power management.
321−powerpc/
322− - directory with info on using Linux with the PowerPC.
323−prctl/
324− - directory with info on the priveledge control subsystem
325−preempt-locking.txt
326− - info on locking under a preemptive kernel.
327−process/
328− - how to work with the mainline kernel development process.
329−pps/
330− - directory with information on the pulse-per-second support
331−pti/
332− - directory with info on Intel MID PTI.
333−ptp/
334− - directory with info on support for IEEE 1588 PTP clocks in Linux.
335−pwm.txt
336− - info on the pulse width modulation driver subsystem
337−rapidio/
338− - directory with info on RapidIO packet-based fabric interconnect
339−rbtree.txt
340− - info on what red-black trees are and what they are for.
341−remoteproc.txt
342− - info on how to handle remote processor (e.g. AMP) offloads/usage.
343−rfkill.txt
344− - info on the radio frequency kill switch subsystem/support.
345−robust-futex-ABI.txt
346− - documentation of the robust futex ABI.
347−robust-futexes.txt
348− - a description of what robust futexes are.
349−rpmsg.txt
350− - info on the Remote Processor Messaging (rpmsg) Framework
351−rtc.txt
352− - notes on how to use the Real Time Clock (aka CMOS clock) driver.
353−s390/
354− - directory with info on using Linux on the IBM S390.
355−scheduler/
356− - directory with info on the scheduler.
357−scsi/
358− - directory with info on Linux scsi support.
359−security/
360− - directory that contains security-related info
361−serial/
362− - directory with info on the low level serial API.
363−sgi-ioc4.txt
364− - description of the SGI IOC4 PCI (multi function) device.
365−sh/
366− - directory with info on porting Linux to a new architecture.
367−smsc_ece1099.txt
368− -info on the smsc Keyboard Scan Expansion/GPIO Expansion device.
369−sound/
370− - directory with info on sound card support.
371−spi/
372− - overview of Linux kernel Serial Peripheral Interface (SPI) support.
373−sphinx/
374− - no documentation here, just files required by Sphinx toolchain.
375−sphinx-static/
376− - no documentation here, just files required by Sphinx toolchain.
377−static-keys.txt
378− - info on how static keys allow debug code in hotpaths via patching
379−svga.txt
380− - short guide on selecting video modes at boot via VGA BIOS.
381−sync_file.txt
382− - Sync file API guide.
383−sysctl/
384− - directory with info on the /proc/sys/* files.
385−target/
386− - directory with info on generating TCM v4 fabric .ko modules
387−tee.txt
388− - info on the TEE subsystem and drivers
389−this_cpu_ops.txt
390− - List rationale behind and the way to use this_cpu operations.
391−thermal/
392− - directory with information on managing thermal issues (CPU/temp)
393−trace/
394− - directory with info on tracing technologies within linux
395−translations/
396− - translations of this document from English to another language
397−unaligned-memory-access.txt
398− - info on how to avoid arch breaking unaligned memory access in code.
399−unshare.txt
400− - description of the Linux unshare system call.
401−usb/
402− - directory with info regarding the Universal Serial Bus.
403−vfio.txt
404− - info on Virtual Function I/O used in guest/hypervisor instances.
405−video-output.txt
406− - sysfs class driver interface to enable/disable a video output device.
407−virtual/
408− - directory with information on the various linux virtualizations.
409−vm/
410− - directory with info on the Linux vm code.
411−w1/
412− - directory with documents regarding the 1-wire (w1) subsystem.
413−watchdog/
414− - how to auto-reboot Linux if it has "fallen and can't get up". ;-)
415−wimax/
416− - directory with info about Intel Wireless Wimax Connections
417−core-api/workqueue.rst
418− - information on the Concurrency Managed Workqueue implementation
419−x86/x86_64/
420− - directory with info on Linux support for AMD x86-64 (Hammer) machines.
421−xillybus.txt
422− - Overview and basic ui of xillybus driver
423−xtensa/
424− - directory with documents relating to arch/xtensa port/implementation
425−xz.txt
426− - how to make use of the XZ data compression within linux kernel
427−zorro.txt
428− - info on writing drivers for Zorro bus devices found on Amigas.
Documentation/ABI/stable/sysfs-driver-usb-usbtmc+0−35
@@ -25,38 +25,3 @@ Description: · 24 unmodified lines
2525 4.2.2.
2626
2727 The files are read only.
28−
29−
30−What: /sys/bus/usb/drivers/usbtmc/*/TermChar
31−Date: August 2008
32−Contact: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
33−Description:
34− This file is the TermChar value to be sent to the USB TMC
35− device as described by the document, "Universal Serial Bus Test
36− and Measurement Class Specification
37− (USBTMC) Revision 1.0" as published by the USB-IF.
38−
39− Note that the TermCharEnabled file determines if this value is
40− sent to the device or not.
41−
42−
43−What: /sys/bus/usb/drivers/usbtmc/*/TermCharEnabled
44−Date: August 2008
45−Contact: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
46−Description:
47− This file determines if the TermChar is to be sent to the
48− device on every transaction or not. For more details about
49− this, please see the document, "Universal Serial Bus Test and
50− Measurement Class Specification (USBTMC) Revision 1.0" as
51− published by the USB-IF.
52−
53−
54−What: /sys/bus/usb/drivers/usbtmc/*/auto_abort
55−Date: August 2008
56−Contact: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
57−Description:
58− This file determines if the transaction of the USB TMC
59− device is to be automatically aborted if there is any error.
60− For more details about this, please see the document,
61− "Universal Serial Bus Test and Measurement Class Specification
62− (USBTMC) Revision 1.0" as published by the USB-IF.
Documentation/ABI/testing/configfs-stp-policy-p_sys-t+41−0
@@ -0,0 +1,41 @@
1+What: /config/stp-policy/<device>:p_sys-t.<policy>/<node>/uuid
2+Date: June 2018
3+KernelVersion: 4.19
4+Description:
5+ UUID source identifier string, RW.
6+ Default value is randomly generated at the mkdir <node> time.
7+ Data coming from trace sources that use this <node> will be
8+ tagged with this UUID in the MIPI SyS-T packet stream, to
9+ allow the decoder to discern between different sources
10+ within the same master/channel range, and identify the
11+ higher level decoders that may be needed for each source.
12+
13+What: /config/stp-policy/<device>:p_sys-t.<policy>/<node>/do_len
14+Date: June 2018
15+KernelVersion: 4.19
16+Description:
17+ Include payload length in the MIPI SyS-T header, boolean.
18+ If enabled, the SyS-T protocol encoder will include payload
19+ length in each packet's metadata. This is normally redundant
20+ if the underlying transport protocol supports marking message
21+ boundaries (which STP does), so this is off by default.
22+
23+What: /config/stp-policy/<device>:p_sys-t.<policy>/<node>/ts_interval
24+Date: June 2018
25+KernelVersion: 4.19
26+Description:
27+ Time interval in milliseconds. Include a timestamp in the
28+ MIPI SyS-T packet metadata, if this many milliseconds have
29+ passed since the previous packet from this source. Zero is
30+ the default and stands for "never send the timestamp".
31+
32+What: /config/stp-policy/<device>:p_sys-t.<policy>/<node>/clocksync_interval
33+Date: June 2018
34+KernelVersion: 4.19
35+Description:
36+ Time interval in milliseconds. Send a CLOCKSYNC packet if
37+ this many milliseconds have passed since the previous
38+ CLOCKSYNC packet from this source. Zero is the default and
39+ stands for "never send the CLOCKSYNC". It makes sense to
40+ use this option with sources that generate constant and/or
41+ periodic data, like stm_heartbeat.
Documentation/ABI/testing/configfs-usb-gadget-uvc+24−0
@@ -12,6 +12,10 @@ Date: Dec 2014 · 11 unmodified lines
1212 KernelVersion: 4.0
1313 Description: Control descriptors
1414
15+ All attributes read only:
16+ bInterfaceNumber - USB interface number for this
17+ streaming interface
18+
1519 What: /config/usb-gadget/gadget/functions/uvc.name/control/class
1620 Date: Dec 2014
1721 KernelVersion: 4.0
@@ -109,6 +113,10 @@ Date: Dec 2014 · 91 unmodified lines
109113 KernelVersion: 4.0
110114 Description: Streaming descriptors
111115
116+ All attributes read only:
117+ bInterfaceNumber - USB interface number for this
118+ streaming interface
119+
112120 What: /config/usb-gadget/gadget/functions/uvc.name/streaming/class
113121 Date: Dec 2014
114122 KernelVersion: 4.0
@@ -160,6 +168,10 @@ Description: Specific MJPEG format descriptors · 45 unmodified lines
160168
161169 All attributes read only,
162170 except bmaControls and bDefaultFrameIndex:
171+ bFormatIndex - unique id for this format descriptor;
172+ only defined after parent header is
173+ linked into the streaming class;
174+ read-only
163175 bmaControls - this format's data for bmaControls in
164176 the streaming header
165177 bmInterfaceFlags - specifies interlace information,
@@ -177,6 +189,10 @@ Date: Dec 2014 · 11 unmodified lines
177189 KernelVersion: 4.0
178190 Description: Specific MJPEG frame descriptors
179191
192+ bFrameIndex - unique id for this framedescriptor;
193+ only defined after parent format is
194+ linked into the streaming header;
195+ read-only
180196 dwFrameInterval - indicates how frame interval can be
181197 programmed; a number of values
182198 separated by newline can be specified
@@ -204,6 +220,10 @@ Date: Dec 2014 · 21 unmodified lines
204220 KernelVersion: 4.0
205221 Description: Specific uncompressed format descriptors
206222
223+ bFormatIndex - unique id for this format descriptor;
224+ only defined after parent header is
225+ linked into the streaming class;
226+ read-only
207227 bmaControls - this format's data for bmaControls in
208228 the streaming header
209229 bmInterfaceFlags - specifies interlace information,
@@ -224,6 +244,10 @@ Date: Dec 2014 · 14 unmodified lines
224244 KernelVersion: 4.0
225245 Description: Specific uncompressed frame descriptors
226246
247+ bFrameIndex - unique id for this framedescriptor;
248+ only defined after parent format is
249+ linked into the streaming header;
250+ read-only
227251 dwFrameInterval - indicates how frame interval can be
228252 programmed; a number of values
229253 separated by newline can be specified
Documentation/ABI/testing/sysfs-bus-iio+1−1
@@ -199,7 +199,7 @@ Description: · 198 unmodified lines
199199
200200 What: /sys/bus/iio/devices/iio:deviceX/in_positionrelative_x_raw
201201 What: /sys/bus/iio/devices/iio:deviceX/in_positionrelative_y_raw
202−KernelVersion: 4.18
202+KernelVersion: 4.19
203203 Contact: linux-iio@vger.kernel.org
204204 Description:
205205 Relative position in direction x or y on a pad (may be
Documentation/ABI/testing/sysfs-bus-pci+24−0
@@ -323,3 +323,27 @@ Description: · 322 unmodified lines
323323
324324 This is similar to /sys/bus/pci/drivers_autoprobe, but
325325 affects only the VFs associated with a specific PF.
326+
327+What: /sys/bus/pci/devices/.../p2pmem/size
328+Date: November 2017
329+Contact: Logan Gunthorpe <logang@deltatee.com>
330+Description:
331+ If the device has any Peer-to-Peer memory registered, this
332+ file contains the total amount of memory that the device
333+ provides (in decimal).
334+
335+What: /sys/bus/pci/devices/.../p2pmem/available
336+Date: November 2017
337+Contact: Logan Gunthorpe <logang@deltatee.com>
338+Description:
339+ If the device has any Peer-to-Peer memory registered, this
340+ file contains the amount of memory that has not been
341+ allocated (in decimal).
342+
343+What: /sys/bus/pci/devices/.../p2pmem/published
344+Date: November 2017
345+Contact: Logan Gunthorpe <logang@deltatee.com>
346+Description:
347+ If the device has any Peer-to-Peer memory registered, this
348+ file contains a '1' if the memory has been published for
349+ use outside the driver that owns the device.
Documentation/ABI/testing/sysfs-bus-usb+18−1
@@ -189,6 +189,16 @@ Description: · 188 unmodified lines
189189 The file will read "hotplug", "wired" and "not used" if the
190190 information is available, and "unknown" otherwise.
191191
192+What: /sys/bus/usb/devices/.../(hub interface)/portX/location
193+Date: October 2018
194+Contact: Bjørn Mork <bjorn@mork.no>
195+Description:
196+ Some platforms provide usb port physical location through
197+ firmware. This is used by the kernel to pair up logical ports
198+ mapping to the same physical connector. The attribute exposes the
199+ raw location value as a hex integer.
200+
201+
192202 What: /sys/bus/usb/devices/.../(hub interface)/portX/quirks
193203 Date: May 2018
194204 Contact: Nicolas Boichat <drinkcat@chromium.org>
@@ -219,7 +229,14 @@ Description: · 24 unmodified lines
219229 ports and report them to the kernel. This attribute is to expose
220230 the number of over-current situation occurred on a specific port
221231 to user space. This file will contain an unsigned 32 bit value
222− which wraps to 0 after its maximum is reached.
232+ which wraps to 0 after its maximum is reached. This file supports
233+ poll() for monitoring changes to this value in user space.
234+
235+ Any time this value changes the corresponding hub device will send a
236+ udev event with the following attributes:
237+
238+ OVER_CURRENT_PORT=/sys/bus/usb/devices/.../(hub interface)/portX
239+ OVER_CURRENT_COUNT=[current value of this sysfs attribute]
223240
224241 What: /sys/bus/usb/devices/.../(hub interface)/portX/usb3_lpm_permit
225242 Date: November 2015
Documentation/ABI/testing/sysfs-bus-vmbus+21−0
@@ -0,0 +1,21 @@
1+What: /sys/bus/vmbus/devices/.../driver_override
2+Date: August 2019
3+Contact: Stephen Hemminger <sthemmin@microsoft.com>
4+Description:
5+ This file allows the driver for a device to be specified which
6+ will override standard static and dynamic ID matching. When
7+ specified, only a driver with a name matching the value written
8+ to driver_override will have an opportunity to bind to the
9+ device. The override is specified by writing a string to the
10+ driver_override file (echo uio_hv_generic > driver_override) and
11+ may be cleared with an empty string (echo > driver_override).
12+ This returns the device to standard matching rules binding.
13+ Writing to driver_override does not automatically unbind the
14+ device from its current driver or make any attempt to
15+ automatically load the specified driver. If no driver with a
16+ matching name is currently loaded in the kernel, the device
17+ will not bind to any driver. This also allows devices to
18+ opt-out of driver binding using a driver_override name such as
19+ "none". Only a single driver may be specified in the override,
20+ there is no support for parsing delimiters.
21+
Documentation/ABI/testing/sysfs-class-lcd-s6e63m0+0−27
@@ -1,27 +0,0 @@
1−sysfs interface for the S6E63M0 AMOLED LCD panel driver
2−-------------------------------------------------------
3−
4−What: /sys/class/lcd/<lcd>/gamma_mode
5−Date: May, 2010
6−KernelVersion: v2.6.35
7−Contact: dri-devel@lists.freedesktop.org
8−Description:
9− (RW) Read or write the gamma mode. Following three modes are
10− supported:
11− 0 - gamma value 2.2,
12− 1 - gamma value 1.9 and
13− 2 - gamma value 1.7.
14−
15−
16−What: /sys/class/lcd/<lcd>/gamma_table
17−Date: May, 2010
18−KernelVersion: v2.6.35
19−Contact: dri-devel@lists.freedesktop.org
20−Description:
21− (RO) Displays the size of the gamma table i.e. the number of
22− gamma modes available.
23−
24−This is a backlight lcd driver. These interfaces are an extension to the API
25−documented in Documentation/ABI/testing/sysfs-class-lcd and in
26−Documentation/ABI/stable/sysfs-class-backlight (under
27−/sys/class/backlight/<backlight>/).
Documentation/ABI/testing/sysfs-class-led-driver-sc27xx+22−0
@@ -0,0 +1,22 @@
1+What: /sys/class/leds/<led>/hw_pattern
2+Date: September 2018
3+KernelVersion: 4.20
4+Description:
5+ Specify a hardware pattern for the SC27XX LED. For the SC27XX
6+ LED controller, it only supports 4 stages to make a single
7+ hardware pattern, which is used to configure the rise time,
8+ high time, fall time and low time for the breathing mode.
9+
10+ For the breathing mode, the SC27XX LED only expects one brightness
11+ for the high stage. To be compatible with the hardware pattern
12+ format, we should set brightness as 0 for rise stage, fall
13+ stage and low stage.
14+
15+ Min stage duration: 125 ms
16+ Max stage duration: 31875 ms
17+
18+ Since the stage duration step is 125 ms, the duration should be
19+ a multiplier of 125, like 125ms, 250ms, 375ms, 500ms ... 31875ms.
20+
21+ Thus the format of the hardware pattern values should be:
22+ "0 rise_duration brightness high_duration 0 fall_duration 0 low_duration".
Documentation/ABI/testing/sysfs-class-led-trigger-pattern+82−0
@@ -0,0 +1,82 @@
1+What: /sys/class/leds/<led>/pattern
2+Date: September 2018
3+KernelVersion: 4.20
4+Description:
5+ Specify a software pattern for the LED, that supports altering
6+ the brightness for the specified duration with one software
7+ timer. It can do gradual dimming and step change of brightness.
8+
9+ The pattern is given by a series of tuples, of brightness and
10+ duration (ms). The LED is expected to traverse the series and
11+ each brightness value for the specified duration. Duration of
12+ 0 means brightness should immediately change to new value, and
13+ writing malformed pattern deactivates any active one.
14+
15+ 1. For gradual dimming, the dimming interval now is set as 50
16+ milliseconds. So the tuple with duration less than dimming
17+ interval (50ms) is treated as a step change of brightness,
18+ i.e. the subsequent brightness will be applied without adding
19+ intervening dimming intervals.
20+
21+ The gradual dimming format of the software pattern values should be:
22+ "brightness_1 duration_1 brightness_2 duration_2 brightness_3
23+ duration_3 ...". For example:
24+
25+ echo 0 1000 255 2000 > pattern
26+
27+ It will make the LED go gradually from zero-intensity to max (255)
28+ intensity in 1000 milliseconds, then back to zero intensity in 2000
29+ milliseconds:
30+
31+ LED brightness
32+ ^
33+ 255-| / \ / \ /
34+ | / \ / \ /
35+ | / \ / \ /
36+ | / \ / \ /
37+ 0-| / \/ \/
38+ +---0----1----2----3----4----5----6------------> time (s)
39+
40+ 2. To make the LED go instantly from one brightness value to another,
41+ we should use zero-time lengths (the brightness must be same as
42+ the previous tuple's). So the format should be:
43+ "brightness_1 duration_1 brightness_1 0 brightness_2 duration_2
44+ brightness_2 0 ...". For example:
45+
46+ echo 0 1000 0 0 255 2000 255 0 > pattern
47+
48+ It will make the LED stay off for one second, then stay at max brightness
49+ for two seconds:
50+
51+ LED brightness
52+ ^
53+ 255-| +---------+ +---------+
54+ | | | | |
55+ | | | | |
56+ | | | | |
57+ 0-| -----+ +----+ +----
58+ +---0----1----2----3----4----5----6------------> time (s)
59+
60+What: /sys/class/leds/<led>/hw_pattern
61+Date: September 2018
62+KernelVersion: 4.20
63+Description:
64+ Specify a hardware pattern for the LED, for LED hardware that
65+ supports autonomously controlling brightness over time, according
66+ to some preprogrammed hardware patterns. It deactivates any active
67+ software pattern.
68+
69+ Since different LED hardware can have different semantics of
70+ hardware patterns, each driver is expected to provide its own
71+ description for the hardware patterns in their ABI documentation
72+ file.
73+
74+What: /sys/class/leds/<led>/repeat
75+Date: September 2018
76+KernelVersion: 4.20
77+Description:
78+ Specify a pattern repeat number. -1 means repeat indefinitely,
79+ other negative numbers and number 0 are invalid.
80+
81+ This file will always return the originally written repeat
82+ number.
Documentation/ABI/testing/sysfs-class-net+20−2
@@ -91,6 +91,24 @@ Description: · 90 unmodified lines
9191 stacked (e.g: VLAN interfaces) but still have the same MAC
9292 address as their parent device.
9393
94+What: /sys/class/net/<iface>/dev_port
95+Date: February 2014
96+KernelVersion: 3.15
97+Contact: netdev@vger.kernel.org
98+Description:
99+ Indicates the port number of this network device, formatted
100+ as a decimal value. Some NICs have multiple independent ports
101+ on the same PCI bus, device and function. This attribute allows
102+ userspace to distinguish the respective interfaces.
103+
104+ Note: some device drivers started to use 'dev_id' for this
105+ purpose since long before 3.15 and have not adopted the new
106+ attribute ever since. To query the port number, some tools look
107+ exclusively at 'dev_port', while others only consult 'dev_id'.
108+ If a network device has multiple client adapter ports as
109+ described in the previous paragraph and does not set this
110+ attribute to its port number, it's a kernel bug.
111+
94112 What: /sys/class/net/<iface>/dormant
95113 Date: March 2006
96114 KernelVersion: 2.6.17
@@ -117,7 +135,7 @@ Description: · 20 unmodified lines
117135 full: full duplex
118136
119137 Note: This attribute is only valid for interfaces that implement
120− the ethtool get_settings method (mostly Ethernet).
138+ the ethtool get_link_ksettings method (mostly Ethernet).
121139
122140 What: /sys/class/net/<iface>/flags
123141 Date: April 2005
@@ -224,7 +242,7 @@ Description: · 100 unmodified lines
224242 an integer representing the link speed in Mbits/sec.
225243
226244 Note: this attribute is only valid for interfaces that implement
227− the ethtool get_settings method (mostly Ethernet ).
245+ the ethtool get_link_ksettings method (mostly Ethernet).
228246
229247 What: /sys/class/net/<iface>/tx_queue_len
230248 Date: April 2005
Documentation/ABI/testing/sysfs-class-net-dsa+7−0
@@ -0,0 +1,7 @@
1+What: /sys/class/net/<iface>/tagging
2+Date: August 2018
3+KernelVersion: 4.20
4+Contact: netdev@vger.kernel.org
5+Description:
6+ String indicating the type of tagging protocol used by the
7+ DSA slave network device.
Documentation/ABI/testing/sysfs-fs-f2fs+16−1
@@ -121,7 +121,22 @@ What: /sys/fs/f2fs/<disk>/idle_interval · 120 unmodified lines
121121 Date: January 2016
122122 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
123123 Description:
124− Controls the idle timing.
124+ Controls the idle timing for all paths other than
125+ discard and gc path.
126+
127+What: /sys/fs/f2fs/<disk>/discard_idle_interval
128+Date: September 2018
129+Contact: "Chao Yu" <yuchao0@huawei.com>
130+Contact: "Sahitya Tummala" <stummala@codeaurora.org>
131+Description:
132+ Controls the idle timing for discard path.
133+
134+What: /sys/fs/f2fs/<disk>/gc_idle_interval
135+Date: September 2018
136+Contact: "Chao Yu" <yuchao0@huawei.com>
137+Contact: "Sahitya Tummala" <stummala@codeaurora.org>
138+Description:
139+ Controls the idle timing for gc path.
125140
126141 What: /sys/fs/f2fs/<disk>/iostat_enable
127142 Date: August 2017
Documentation/ABI/testing/sysfs-platform-lg-laptop+35−0
@@ -0,0 +1,35 @@
1+What: /sys/devices/platform/lg-laptop/reader_mode
2+Date: October 2018
3+KernelVersion: 4.20
4+Contact: "Matan Ziv-Av <matan@svgalib.org>
5+Description:
6+ Control reader mode. 1 means on, 0 means off.
7+
8+What: /sys/devices/platform/lg-laptop/fn_lock
9+Date: October 2018
10+KernelVersion: 4.20
11+Contact: "Matan Ziv-Av <matan@svgalib.org>
12+Description:
13+ Control FN lock mode. 1 means on, 0 means off.
14+
15+What: /sys/devices/platform/lg-laptop/battery_care_limit
16+Date: October 2018
17+KernelVersion: 4.20
18+Contact: "Matan Ziv-Av <matan@svgalib.org>
19+Description:
20+ Maximal battery charge level. Accepted values are 80 or 100.
21+
22+What: /sys/devices/platform/lg-laptop/fan_mode
23+Date: October 2018
24+KernelVersion: 4.20
25+Contact: "Matan Ziv-Av <matan@svgalib.org>
26+Description:
27+ Control fan mode. 1 for performance mode, 0 for silent mode.
28+
29+What: /sys/devices/platform/lg-laptop/usb_charge
30+Date: October 2018
31+KernelVersion: 4.20
32+Contact: "Matan Ziv-Av <matan@svgalib.org>
33+Description:
34+ Control USB port charging when device is turned off.
35+ 1 means on, 0 means off.
Documentation/ABI/testing/sysfs-power+1−1
@@ -99,7 +99,7 @@ Description: · 98 unmodified lines
9999 this file, the suspend image will be as small as possible.
100100
101101 Reading from this file will display the current image size
102− limit, which is set to 500 MB by default.
102+ limit, which is set to around 2/5 of available RAM by default.
103103
104104 What: /sys/power/pm_trace
105105 Date: August 2006
Documentation/PCI/00-INDEX+0−26
@@ -1,26 +0,0 @@
1−00-INDEX
2− - this file
3−acpi-info.txt
4− - info on how PCI host bridges are represented in ACPI
5−MSI-HOWTO.txt
6− - the Message Signaled Interrupts (MSI) Driver Guide HOWTO and FAQ.
7−PCIEBUS-HOWTO.txt
8− - a guide describing the PCI Express Port Bus driver
9−pci-error-recovery.txt
10− - info on PCI error recovery
11−pci-iov-howto.txt
12− - the PCI Express I/O Virtualization HOWTO
13−pci.txt
14− - info on the PCI subsystem for device driver authors
15−pcieaer-howto.txt
16− - the PCI Express Advanced Error Reporting Driver Guide HOWTO
17−endpoint/pci-endpoint.txt
18− - guide to add endpoint controller driver and endpoint function driver.
19−endpoint/pci-endpoint-cfs.txt
20− - guide to use configfs to configure the PCI endpoint function.
21−endpoint/pci-test-function.txt
22− - specification of *PCI test* function device.
23−endpoint/pci-test-howto.txt
24− - userguide for PCI endpoint test function.
25−endpoint/function/binding/
26− - binding documentation for PCI endpoint function
Documentation/PCI/endpoint/pci-test-howto.txt+11−8
@@ -99,17 +99,20 @@ Note that the devices listed here correspond to the value populated in 1.4 above · 98 unmodified lines
9999 2.2 Using Endpoint Test function Device
100100
101101 pcitest.sh added in tools/pci/ can be used to run all the default PCI endpoint
102−tests. Before pcitest.sh can be used pcitest.c should be compiled using the
103−following commands.
102+tests. To compile this tool the following commands should be used:
104103
105− cd <kernel-dir>
106− make headers_install ARCH=arm
107− arm-linux-gnueabihf-gcc -Iusr/include tools/pci/pcitest.c -o pcitest
108− cp pcitest <rootfs>/usr/sbin/
109− cp tools/pci/pcitest.sh <rootfs>
104+ # cd <kernel-dir>
105+ # make -C tools/pci
106+
107+or if you desire to compile and install in your system:
108+
109+ # cd <kernel-dir>
110+ # make -C tools/pci install
111+
112+The tool and script will be located in <rootfs>/usr/bin/
110113
111114 2.2.1 pcitest.sh Output
112− # ./pcitest.sh
115+ # pcitest.sh
113116 BAR tests
114117
115118 BAR0: OKAY
Documentation/PCI/pci-error-recovery.txt+10−25
@@ -110,7 +110,7 @@ The actual steps taken by a platform to recover from a PCI error · 109 unmodified lines
110110 event will be platform-dependent, but will follow the general
111111 sequence described below.
112112
113−STEP 0: Error Event: ERR_NONFATAL
113+STEP 0: Error Event
114114 -------------------
115115 A PCI bus error is detected by the PCI hardware. On powerpc, the slot
116116 is isolated, in that all I/O is blocked: all reads return 0xffffffff,
@@ -228,7 +228,13 @@ proceeds to either STEP3 (Link Reset) or to STEP 5 (Resume Operations). · 111 unmodified lines
228228 If any driver returned PCI_ERS_RESULT_NEED_RESET, then the platform
229229 proceeds to STEP 4 (Slot Reset)
230230
231−STEP 3: Slot Reset
231+STEP 3: Link Reset
232+------------------
233+The platform resets the link. This is a PCI-Express specific step
234+and is done whenever a fatal error has been detected that can be
235+"solved" by resetting the link.
236+
237+STEP 4: Slot Reset
232238 ------------------
233239
234240 In response to a return value of PCI_ERS_RESULT_NEED_RESET, the
@@ -314,7 +320,7 @@ Failure). · 79 unmodified lines
314320 >>> However, it probably should.
315321
316322
317−STEP 4: Resume Operations
323+STEP 5: Resume Operations
318324 -------------------------
319325 The platform will call the resume() callback on all affected device
320326 drivers if all drivers on the segment have returned
@@ -326,7 +332,7 @@ a result code. · 5 unmodified lines
326332 At this point, if a new error happens, the platform will restart
327333 a new error recovery sequence.
328334
329−STEP 5: Permanent Failure
335+STEP 6: Permanent Failure
330336 -------------------------
331337 A "permanent failure" has occurred, and the platform cannot recover
332338 the device. The platform will call error_detected() with a
@@ -349,27 +355,6 @@ errors. See the discussion in powerpc/eeh-pci-error-recovery.txt · 16 unmodified lines
349355 for additional detail on real-life experience of the causes of
350356 software errors.
351357
352−STEP 0: Error Event: ERR_FATAL
353−-------------------
354−PCI bus error is detected by the PCI hardware. On powerpc, the slot is
355−isolated, in that all I/O is blocked: all reads return 0xffffffff, all
356−writes are ignored.
357−
358−STEP 1: Remove devices
359−--------------------
360−Platform removes the devices depending on the error agent, it could be
361−this port for all subordinates or upstream component (likely downstream
362−port)
363−
364−STEP 2: Reset link
365−--------------------
366−The platform resets the link. This is a PCI-Express specific step and is
367−done whenever a fatal error has been detected that can be "solved" by
368−resetting the link.
369−
370−STEP 3: Re-enumerate the devices
371−--------------------
372−Initiates the re-enumeration.
373358
374359 Conclusion; General Remarks
375360 ---------------------------
Documentation/RCU/00-INDEX+0−34
@@ -1,34 +0,0 @@
1−00-INDEX
2− - This file
3−arrayRCU.txt
4− - Using RCU to Protect Read-Mostly Arrays
5−checklist.txt
6− - Review Checklist for RCU Patches
7−listRCU.txt
8− - Using RCU to Protect Read-Mostly Linked Lists
9−lockdep.txt
10− - RCU and lockdep checking
11−lockdep-splat.txt
12− - RCU Lockdep splats explained.
13−NMI-RCU.txt
14− - Using RCU to Protect Dynamic NMI Handlers
15−rcu_dereference.txt
16− - Proper care and feeding of return values from rcu_dereference()
17−rcubarrier.txt
18− - RCU and Unloadable Modules
19−rculist_nulls.txt
20− - RCU list primitives for use with SLAB_TYPESAFE_BY_RCU
21−rcuref.txt
22− - Reference-count design for elements of lists/arrays protected by RCU
23−rcu.txt
24− - RCU Concepts
25−RTFP.txt
26− - List of RCU papers (bibliography) going back to 1980.
27−stallwarn.txt
28− - RCU CPU stall warnings (module parameter rcu_cpu_stall_suppress)
29−torture.txt
30− - RCU Torture Test Operation (CONFIG_RCU_TORTURE_TEST)
31−UP.txt
32− - RCU on Uniprocessor Systems
33−whatisRCU.txt
34− - What is RCU?
Documentation/RCU/Design/Data-Structures/Data-Structures.html+12−19
@@ -1227,9 +1227,11 @@ to overflow the counter, this approach corrects the · 1226 unmodified lines
12271227 CPU enters the idle loop from process context.
12281228
12291229 </p><p>The <tt>-&gt;dynticks</tt> field counts the corresponding
1230−CPU's transitions to and from dyntick-idle mode, so that this counter
1231−has an even value when the CPU is in dyntick-idle mode and an odd
1232−value otherwise.
1230+CPU's transitions to and from either dyntick-idle or user mode, so
1231+that this counter has an even value when the CPU is in dyntick-idle
1232+mode or user mode and an odd value otherwise. The transitions to/from
1233+user mode need to be counted for user mode adaptive-ticks support
1234+(see timers/NO_HZ.txt).
12331235
12341236 </p><p>The <tt>-&gt;rcu_need_heavy_qs</tt> field is used
12351237 to record the fact that the RCU core code would really like to
@@ -1372,8 +1374,7 @@ that is, if the CPU is currently idle. · 136 unmodified lines
13721374 Accessor Functions</a></h3>
13731375
13741376 <p>The following listing shows the
1375−<tt>rcu_get_root()</tt>, <tt>rcu_for_each_node_breadth_first</tt>,
1376−<tt>rcu_for_each_nonleaf_node_breadth_first()</tt>, and
1377+<tt>rcu_get_root()</tt>, <tt>rcu_for_each_node_breadth_first</tt> and
13771378 <tt>rcu_for_each_leaf_node()</tt> function and macros:
13781379
13791380 <pre>
@@ -1386,13 +1387,9 @@ Accessor Functions</a></h3> · 6 unmodified lines
13861387 7 for ((rnp) = &amp;(rsp)-&gt;node[0]; \
13871388 8 (rnp) &lt; &amp;(rsp)-&gt;node[NUM_RCU_NODES]; (rnp)++)
13881389 9
1389− 10 #define rcu_for_each_nonleaf_node_breadth_first(rsp, rnp) \
1390− 11 for ((rnp) = &amp;(rsp)-&gt;node[0]; \
1391− 12 (rnp) &lt; (rsp)-&gt;level[NUM_RCU_LVLS - 1]; (rnp)++)
1392− 13
1393− 14 #define rcu_for_each_leaf_node(rsp, rnp) \
1394− 15 for ((rnp) = (rsp)-&gt;level[NUM_RCU_LVLS - 1]; \
1395− 16 (rnp) &lt; &amp;(rsp)-&gt;node[NUM_RCU_NODES]; (rnp)++)
1390+ 10 #define rcu_for_each_leaf_node(rsp, rnp) \
1391+ 11 for ((rnp) = (rsp)-&gt;level[NUM_RCU_LVLS - 1]; \
1392+ 12 (rnp) &lt; &amp;(rsp)-&gt;node[NUM_RCU_NODES]; (rnp)++)
13961393 </pre>
13971394
13981395 <p>The <tt>rcu_get_root()</tt> simply returns a pointer to the
@@ -1405,10 +1402,7 @@ macro takes advantage of the layout of the <tt>rcu_node</tt> · 6 unmodified lines
14051402 structures in the <tt>rcu_state</tt> structure's
14061403 <tt>-&gt;node[]</tt> array, performing a breadth-first traversal by
14071404 simply traversing the array in order.
1408−The <tt>rcu_for_each_nonleaf_node_breadth_first()</tt> macro operates
1409−similarly, but traverses only the first part of the array, thus excluding
1410−the leaf <tt>rcu_node</tt> structures.
1411−Finally, the <tt>rcu_for_each_leaf_node()</tt> macro traverses only
1405+Similarly, the <tt>rcu_for_each_leaf_node()</tt> macro traverses only
14121406 the last part of the array, thus traversing only the leaf
14131407 <tt>rcu_node</tt> structures.
14141408
@@ -1416,15 +1410,14 @@ the last part of the array, thus traversing only the leaf · 1 unmodified line
14161410 <tr><th>&nbsp;</th></tr>
14171411 <tr><th align="left">Quick Quiz:</th></tr>
14181412 <tr><td>
1419− What do <tt>rcu_for_each_nonleaf_node_breadth_first()</tt> and
1413+ What does
14201414 <tt>rcu_for_each_leaf_node()</tt> do if the <tt>rcu_node</tt> tree
14211415 contains only a single node?
14221416 </td></tr>
14231417 <tr><th align="left">Answer:</th></tr>
14241418 <tr><td bgcolor="#ffffff"><font color="ffffff">
14251419 In the single-node case,
1426− <tt>rcu_for_each_nonleaf_node_breadth_first()</tt> is a no-op
1427− and <tt>rcu_for_each_leaf_node()</tt> traverses the single node.
1420+ <tt>rcu_for_each_leaf_node()</tt> traverses the single node.
14281421 </font></td></tr>
14291422 <tr><td>&nbsp;</td></tr>
14301423 </table>
Documentation/RCU/Design/Expedited-Grace-Periods/Expedited-Grace-Periods.html+4−5
@@ -12,10 +12,9 @@ high efficiency and minimal disturbance, expedited grace periods accept · 11 unmodified lines
1212 lower efficiency and significant disturbance to attain shorter latencies.
1313
1414 <p>
15−There are three flavors of RCU (RCU-bh, RCU-preempt, and RCU-sched),
16−but only two flavors of expedited grace periods because the RCU-bh
17−expedited grace period maps onto the RCU-sched expedited grace period.
18−Each of the remaining two implementations is covered in its own section.
15+There are two flavors of RCU (RCU-preempt and RCU-sched), with an earlier
16+third RCU-bh flavor having been implemented in terms of the other two.
17+Each of the two implementations is covered in its own section.
1918
2019 <ol>
2120 <li> <a href="#Expedited Grace Period Design">
@@ -158,7 +157,7 @@ whether or not the current CPU is in an RCU read-side critical section. · 136 unmodified lines
158157 The best that <tt>sync_sched_exp_handler()</tt> can do is to check
159158 for idle, on the off-chance that the CPU went idle while the IPI
160159 was in flight.
161−If the CPU is idle, then tt>sync_sched_exp_handler()</tt> reports
160+If the CPU is idle, then <tt>sync_sched_exp_handler()</tt> reports
162161 the quiescent state.
163162
164163 <p>
Documentation/RCU/Design/Requirements/Requirements.html+72−142
@@ -1306,8 +1306,6 @@ doing so would degrade real-time response. · 1305 unmodified lines
13061306
13071307 <p>
13081308 This non-requirement appeared with preemptible RCU.
1309−If you need a grace period that waits on non-preemptible code regions, use
1310−<a href="#Sched Flavor">RCU-sched</a>.
13111309
13121310 <h2><a name="Parallelism Facts of Life">Parallelism Facts of Life</a></h2>
13131311
@@ -2165,14 +2163,9 @@ however, this is not a panacea because there would be severe restrictions · 851 unmodified lines
21652163 on what operations those callbacks could invoke.
21662164
21672165 <p>
2168−Perhaps surprisingly, <tt>synchronize_rcu()</tt>,
2169−<a href="#Bottom-Half Flavor"><tt>synchronize_rcu_bh()</tt></a>
2170−(<a href="#Bottom-Half Flavor">discussed below</a>),
2171−<a href="#Sched Flavor"><tt>synchronize_sched()</tt></a>,
2166+Perhaps surprisingly, <tt>synchronize_rcu()</tt> and
21722167 <tt>synchronize_rcu_expedited()</tt>,
2173−<tt>synchronize_rcu_bh_expedited()</tt>, and
2174−<tt>synchronize_sched_expedited()</tt>
2175−will all operate normally
2168+will operate normally
21762169 during very early boot, the reason being that there is only one CPU
21772170 and preemption is disabled.
21782171 This means that the call <tt>synchronize_rcu()</tt> (or friends)
@@ -2269,12 +2262,23 @@ Thankfully, RCU update-side primitives, including · 90 unmodified lines
22692262 The name notwithstanding, some Linux-kernel architectures
22702263 can have nested NMIs, which RCU must handle correctly.
22712264 Andy Lutomirski
2272−<a href="https://lkml.kernel.org/g/CALCETrXLq1y7e_dKFPgou-FKHB6Pu-r8+t-6Ds+8=va7anBWDA@mail.gmail.com">surprised me</a>
2265+<a href="https://lkml.kernel.org/r/CALCETrXLq1y7e_dKFPgou-FKHB6Pu-r8+t-6Ds+8=va7anBWDA@mail.gmail.com">surprised me</a>
22732266 with this requirement;
22742267 he also kindly surprised me with
2275−<a href="https://lkml.kernel.org/g/CALCETrXSY9JpW3uE6H8WYk81sg56qasA2aqmjMPsq5dOtzso=g@mail.gmail.com">an algorithm</a>
2268+<a href="https://lkml.kernel.org/r/CALCETrXSY9JpW3uE6H8WYk81sg56qasA2aqmjMPsq5dOtzso=g@mail.gmail.com">an algorithm</a>
22762269 that meets this requirement.
22772270
2271+<p>
2272+Furthermore, NMI handlers can be interrupted by what appear to RCU
2273+to be normal interrupts.
2274+One way that this can happen is for code that directly invokes
2275+<tt>rcu_irq_enter()</tt> and </tt>rcu_irq_exit()</tt> to be called
2276+from an NMI handler.
2277+This astonishing fact of life prompted the current code structure,
2278+which has <tt>rcu_irq_enter()</tt> invoking <tt>rcu_nmi_enter()</tt>
2279+and <tt>rcu_irq_exit()</tt> invoking <tt>rcu_nmi_exit()</tt>.
2280+And yes, I also learned of this requirement the hard way.
2281+
22782282 <h3><a name="Loadable Modules">Loadable Modules</a></h3>
22792283
22802284 <p>
@@ -2394,30 +2398,9 @@ when invoked from a CPU-hotplug notifier. · 113 unmodified lines
23942398 <p>
23952399 RCU depends on the scheduler, and the scheduler uses RCU to
23962400 protect some of its data structures.
2397−This means the scheduler is forbidden from acquiring
2398−the runqueue locks and the priority-inheritance locks
2399−in the middle of an outermost RCU read-side critical section unless either
2400−(1)&nbsp;it releases them before exiting that same
2401−RCU read-side critical section, or
2402−(2)&nbsp;interrupts are disabled across
2403−that entire RCU read-side critical section.
2404−This same prohibition also applies (recursively!) to any lock that is acquired
2405−while holding any lock to which this prohibition applies.
2406−Adhering to this rule prevents preemptible RCU from invoking
2407−<tt>rcu_read_unlock_special()</tt> while either runqueue or
2408−priority-inheritance locks are held, thus avoiding deadlock.
2409−
2410−<p>
2411−Prior to v4.4, it was only necessary to disable preemption across
2412−RCU read-side critical sections that acquired scheduler locks.
2413−In v4.4, expedited grace periods started using IPIs, and these
2414−IPIs could force a <tt>rcu_read_unlock()</tt> to take the slowpath.
2415−Therefore, this expedited-grace-period change required disabling of
2416−interrupts, not just preemption.
2417−
2418−<p>
2419−For RCU's part, the preemptible-RCU <tt>rcu_read_unlock()</tt>
2420−implementation must be written carefully to avoid similar deadlocks.
2401+The preemptible-RCU <tt>rcu_read_unlock()</tt>
2402+implementation must therefore be written carefully to avoid deadlocks
2403+involving the scheduler's runqueue and priority-inheritance locks.
24212404 In particular, <tt>rcu_read_unlock()</tt> must tolerate an
24222405 interrupt where the interrupt handler invokes both
24232406 <tt>rcu_read_lock()</tt> and <tt>rcu_read_unlock()</tt>.
@@ -2426,7 +2409,7 @@ negative nesting levels to avoid destructive recursion via · 2 unmodified lines
24262409 interrupt handler's use of RCU.
24272410
24282411 <p>
2429−This pair of mutual scheduler-RCU requirements came as a
2412+This scheduler-RCU requirement came as a
24302413 <a href="https://lwn.net/Articles/453002/">complete surprise</a>.
24312414
24322415 <p>
@@ -2437,9 +2420,28 @@ when running context-switch-heavy workloads when built with · 4 unmodified lines
24372420 <tt>CONFIG_NO_HZ_FULL=y</tt>
24382421 <a href="http://www.rdrop.com/users/paulmck/scalability/paper/BareMetal.2015.01.15b.pdf">did come as a surprise [PDF]</a>.
24392422 RCU has made good progress towards meeting this requirement, even
2440−for context-switch-have <tt>CONFIG_NO_HZ_FULL=y</tt> workloads,
2423+for context-switch-heavy <tt>CONFIG_NO_HZ_FULL=y</tt> workloads,
24412424 but there is room for further improvement.
24422425
2426+<p>
2427+In the past, it was forbidden to disable interrupts across an
2428+<tt>rcu_read_unlock()</tt> unless that interrupt-disabled region
2429+of code also included the matching <tt>rcu_read_lock()</tt>.
2430+Violating this restriction could result in deadlocks involving the
2431+scheduler's runqueue and priority-inheritance spinlocks.
2432+This restriction was lifted when interrupt-disabled calls to
2433+<tt>rcu_read_unlock()</tt> started deferring the reporting of
2434+the resulting RCU-preempt quiescent state until the end of that
2435+interrupts-disabled region.
2436+This deferred reporting means that the scheduler's runqueue and
2437+priority-inheritance locks cannot be held while reporting an RCU-preempt
2438+quiescent state, which lifts the earlier restriction, at least from
2439+a deadlock perspective.
2440+Unfortunately, real-time systems using RCU priority boosting may
2441+need this restriction to remain in effect because deferred
2442+quiescent-state reporting also defers deboosting, which in turn
2443+degrades real-time latencies.
2444+
24432445 <h3><a name="Tracing and RCU">Tracing and RCU</a></h3>
24442446
24452447 <p>
@@ -2850,15 +2852,22 @@ The other four flavors are listed below, with requirements for each · 404 unmodified lines
28502852 described in a separate section.
28512853
28522854 <ol>
2853−<li> <a href="#Bottom-Half Flavor">Bottom-Half Flavor</a>
2854−<li> <a href="#Sched Flavor">Sched Flavor</a>
2855+<li> <a href="#Bottom-Half Flavor">Bottom-Half Flavor (Historical)</a>
2856+<li> <a href="#Sched Flavor">Sched Flavor (Historical)</a>
28552857 <li> <a href="#Sleepable RCU">Sleepable RCU</a>
28562858 <li> <a href="#Tasks RCU">Tasks RCU</a>
2857−<li> <a href="#Waiting for Multiple Grace Periods">
2858− Waiting for Multiple Grace Periods</a>
28592859 </ol>
28602860
2861−<h3><a name="Bottom-Half Flavor">Bottom-Half Flavor</a></h3>
2861+<h3><a name="Bottom-Half Flavor">Bottom-Half Flavor (Historical)</a></h3>
2862+
2863+<p>
2864+The RCU-bh flavor of RCU has since been expressed in terms of
2865+the other RCU flavors as part of a consolidation of the three
2866+flavors into a single flavor.
2867+The read-side API remains, and continues to disable softirq and to
2868+be accounted for by lockdep.
2869+Much of the material in this section is therefore strictly historical
2870+in nature.
28622871
28632872 <p>
28642873 The softirq-disable (AKA &ldquo;bottom-half&rdquo;,
@@ -2918,8 +2927,20 @@ includes · 53 unmodified lines
29182927 <tt>call_rcu_bh()</tt>,
29192928 <tt>rcu_barrier_bh()</tt>, and
29202929 <tt>rcu_read_lock_bh_held()</tt>.
2930+However, the update-side APIs are now simple wrappers for other RCU
2931+flavors, namely RCU-sched in CONFIG_PREEMPT=n kernels and RCU-preempt
2932+otherwise.
2933+
2934+<h3><a name="Sched Flavor">Sched Flavor (Historical)</a></h3>
29212935
2922−<h3><a name="Sched Flavor">Sched Flavor</a></h3>
2936+<p>
2937+The RCU-sched flavor of RCU has since been expressed in terms of
2938+the other RCU flavors as part of a consolidation of the three
2939+flavors into a single flavor.
2940+The read-side API remains, and continues to disable preemption and to
2941+be accounted for by lockdep.
2942+Much of the material in this section is therefore strictly historical
2943+in nature.
29232944
29242945 <p>
29252946 Before preemptible RCU, waiting for an RCU grace period had the
@@ -3139,94 +3160,14 @@ The tasks-RCU API is quite compact, consisting only of · 213 unmodified lines
31393160 <tt>call_rcu_tasks()</tt>,
31403161 <tt>synchronize_rcu_tasks()</tt>, and
31413162 <tt>rcu_barrier_tasks()</tt>.
3142−
3143−<h3><a name="Waiting for Multiple Grace Periods">
3144−Waiting for Multiple Grace Periods</a></h3>
3145−
3146−<p>
3147−Perhaps you have an RCU protected data structure that is accessed from
3148−RCU read-side critical sections, from softirq handlers, and from
3149−hardware interrupt handlers.
3150−That is three flavors of RCU, the normal flavor, the bottom-half flavor,
3151−and the sched flavor.
3152−How to wait for a compound grace period?
3153−
3154−<p>
3155−The best approach is usually to &ldquo;just say no!&rdquo; and
3156−insert <tt>rcu_read_lock()</tt> and <tt>rcu_read_unlock()</tt>
3157−around each RCU read-side critical section, regardless of what
3158−environment it happens to be in.
3159−But suppose that some of the RCU read-side critical sections are
3160−on extremely hot code paths, and that use of <tt>CONFIG_PREEMPT=n</tt>
3161−is not a viable option, so that <tt>rcu_read_lock()</tt> and
3162−<tt>rcu_read_unlock()</tt> are not free.
3163−What then?
3164−
3165−<p>
3166−You <i>could</i> wait on all three grace periods in succession, as follows:
3167−
3168−<blockquote>
3169−<pre>
3170− 1 synchronize_rcu();
3171− 2 synchronize_rcu_bh();
3172− 3 synchronize_sched();
3173−</pre>
3174−</blockquote>
3175−
3176−<p>
3177−This works, but triples the update-side latency penalty.
3178−In cases where this is not acceptable, <tt>synchronize_rcu_mult()</tt>
3179−may be used to wait on all three flavors of grace period concurrently:
3180−
3181−<blockquote>
3182−<pre>
3183− 1 synchronize_rcu_mult(call_rcu, call_rcu_bh, call_rcu_sched);
3184−</pre>
3185−</blockquote>
3186−
3187−<p>
3188−But what if it is necessary to also wait on SRCU?
3189−This can be done as follows:
3190−
3191−<blockquote>
3192−<pre>
3193− 1 static void call_my_srcu(struct rcu_head *head,
3194− 2 void (*func)(struct rcu_head *head))
3195− 3 {
3196− 4 call_srcu(&amp;my_srcu, head, func);
3197− 5 }
3198− 6
3199− 7 synchronize_rcu_mult(call_rcu, call_rcu_bh, call_rcu_sched, call_my_srcu);
3200−</pre>
3201−</blockquote>
3202−
3203−<p>
3204−If you needed to wait on multiple different flavors of SRCU
3205−(but why???), you would need to create a wrapper function resembling
3206−<tt>call_my_srcu()</tt> for each SRCU flavor.
3207−
3208−<table>
3209−<tr><th>&nbsp;</th></tr>
3210−<tr><th align="left">Quick Quiz:</th></tr>
3211−<tr><td>
3212− But what if I need to wait for multiple RCU flavors, but I also need
3213− the grace periods to be expedited?
3214−</td></tr>
3215−<tr><th align="left">Answer:</th></tr>
3216−<tr><td bgcolor="#ffffff"><font color="ffffff">
3217− If you are using expedited grace periods, there should be less penalty
3218− for waiting on them in succession.
3219− But if that is nevertheless a problem, you can use workqueues
3220− or multiple kthreads to wait on the various expedited grace
3221− periods concurrently.
3222−</font></td></tr>
3223−<tr><td>&nbsp;</td></tr>
3224−</table>
3225−
3226−<p>
3227−Again, it is usually better to adjust the RCU read-side critical sections
3228−to use a single flavor of RCU, but when this is not feasible, you can use
3229−<tt>synchronize_rcu_mult()</tt>.
3163+In <tt>CONFIG_PREEMPT=n</tt> kernels, trampolines cannot be preempted,
3164+so these APIs map to
3165+<tt>call_rcu()</tt>,
3166+<tt>synchronize_rcu()</tt>, and
3167+<tt>rcu_barrier()</tt>, respectively.
3168+In <tt>CONFIG_PREEMPT=y</tt> kernels, trampolines can be preempted,
3169+and these three APIs are therefore implemented by separate functions
3170+that check for voluntary context switches.
32303171
32313172 <h2><a name="Possible Future Changes">Possible Future Changes</a></h2>
32323173
@@ -3237,12 +3178,6 @@ If this becomes a serious problem, it will be necessary to rework the · 4 unmodified lines
32373178 grace-period state machine so as to avoid the need for the additional
32383179 latency.
32393180
3240−<p>
3241−Expedited grace periods scan the CPUs, so their latency and overhead
3242−increases with increasing numbers of CPUs.
3243−If this becomes a serious problem on large systems, it will be necessary
3244−to do some redesign to avoid this scalability problem.
3245−
32463181 <p>
32473182 RCU disables CPU hotplug in a few places, perhaps most notably in the
32483183 <tt>rcu_barrier()</tt> operations.
@@ -3287,11 +3222,6 @@ Please note that arrangements that require RCU to remap CPU numbers will · 38 unmodified lines
32873222 require extremely good demonstration of need and full exploration of
32883223 alternatives.
32893224
3290−<p>
3291−There is an embarrassingly large number of flavors of RCU, and this
3292−number has been increasing over time.
3293−Perhaps it will be possible to combine some at some future date.
3294−
32953225 <p>
32963226 RCU's various kthreads are reasonably recent additions.
32973227 It is quite likely that adjustments will be required to more gracefully
Documentation/RCU/rcu.txt+0−4
@@ -87,7 +87,3 @@ o Where can I find more information on RCU? · 86 unmodified lines
8787
8888 See the RTFP.txt file in this directory.
8989 Or point your browser at http://www.rdrop.com/users/paulmck/RCU/.
90−
91−o What are all these files in this directory?
92−
93− See 00-INDEX for the list.
Documentation/RCU/stallwarn.txt+5−8
@@ -16,12 +16,9 @@ o A CPU looping in an RCU read-side critical section. · 15 unmodified lines
1616
1717 o A CPU looping with interrupts disabled.
1818
19−o A CPU looping with preemption disabled. This condition can
20− result in RCU-sched stalls and, if ksoftirqd is in use, RCU-bh
21− stalls.
19+o A CPU looping with preemption disabled.
2220
23−o A CPU looping with bottom halves disabled. This condition can
24− result in RCU-sched and RCU-bh stalls.
21+o A CPU looping with bottom halves disabled.
2522
2623 o For !CONFIG_PREEMPT kernels, a CPU looping anywhere in the kernel
2724 without invoking schedule(). If the looping in the kernel is
@@ -87,9 +84,9 @@ o A hardware failure. This is quite unlikely, but has occurred · 59 unmodified lines
8784 This resulted in a series of RCU CPU stall warnings, eventually
8885 leading the realization that the CPU had failed.
8986
90−The RCU, RCU-sched, RCU-bh, and RCU-tasks implementations have CPU stall
91−warning. Note that SRCU does -not- have CPU stall warnings. Please note
92−that RCU only detects CPU stalls when there is a grace period in progress.
87+The RCU, RCU-sched, and RCU-tasks implementations have CPU stall warning.
88+Note that SRCU does -not- have CPU stall warnings. Please note that
89+RCU only detects CPU stalls when there is a grace period in progress.
9390 No grace period, no CPU stall warnings.
9491
9592 To diagnose the cause of the stall, inspect the stack traces.
Documentation/RCU/whatisRCU.txt+2−1
@@ -934,7 +934,8 @@ c. Do you need to treat NMI handlers, hardirq handlers, · 933 unmodified lines
934934 d. Do you need RCU grace periods to complete even in the face
935935 of softirq monopolization of one or more of the CPUs? For
936936 example, is your code subject to network-based denial-of-service
937− attacks? If so, you need RCU-bh.
937+ attacks? If so, you should disable softirq across your readers,
938+ for example, by using rcu_read_lock_bh().
938939
939940 e. Is your workload too update-intensive for normal use of
940941 RCU, but inappropriate for other synchronization mechanisms?
Documentation/accounting/psi.txt+73−0
@@ -0,0 +1,73 @@
1+================================
2+PSI - Pressure Stall Information
3+================================
4+
5+:Date: April, 2018
6+:Author: Johannes Weiner <hannes@cmpxchg.org>
7+
8+When CPU, memory or IO devices are contended, workloads experience
9+latency spikes, throughput losses, and run the risk of OOM kills.
10+
11+Without an accurate measure of such contention, users are forced to
12+either play it safe and under-utilize their hardware resources, or
13+roll the dice and frequently suffer the disruptions resulting from
14+excessive overcommit.
15+
16+The psi feature identifies and quantifies the disruptions caused by
17+such resource crunches and the time impact it has on complex workloads
18+or even entire systems.
19+
20+Having an accurate measure of productivity losses caused by resource
21+scarcity aids users in sizing workloads to hardware--or provisioning
22+hardware according to workload demand.
23+
24+As psi aggregates this information in realtime, systems can be managed
25+dynamically using techniques such as load shedding, migrating jobs to
26+other systems or data centers, or strategically pausing or killing low
27+priority or restartable batch jobs.
28+
29+This allows maximizing hardware utilization without sacrificing
30+workload health or risking major disruptions such as OOM kills.
31+
32+Pressure interface
33+==================
34+
35+Pressure information for each resource is exported through the
36+respective file in /proc/pressure/ -- cpu, memory, and io.
37+
38+The format for CPU is as such:
39+
40+some avg10=0.00 avg60=0.00 avg300=0.00 total=0
41+
42+and for memory and IO:
43+
44+some avg10=0.00 avg60=0.00 avg300=0.00 total=0
45+full avg10=0.00 avg60=0.00 avg300=0.00 total=0
46+
47+The "some" line indicates the share of time in which at least some
48+tasks are stalled on a given resource.
49+
50+The "full" line indicates the share of time in which all non-idle
51+tasks are stalled on a given resource simultaneously. In this state
52+actual CPU cycles are going to waste, and a workload that spends
53+extended time in this state is considered to be thrashing. This has
54+severe impact on performance, and it's useful to distinguish this
55+situation from a state where some tasks are stalled but the CPU is
56+still doing productive work. As such, time spent in this subset of the
57+stall state is tracked separately and exported in the "full" averages.
58+
59+The ratios are tracked as recent trends over ten, sixty, and three
60+hundred second windows, which gives insight into short term events as
61+well as medium and long term trends. The total absolute stall time is
62+tracked and exported as well, to allow detection of latency spikes
63+which wouldn't necessarily make a dent in the time averages, or to
64+average trends over custom time frames.
65+
66+Cgroup2 interface
67+=================
68+
69+In a system with a CONFIG_CGROUP=y kernel and the cgroup2 filesystem
70+mounted, pressure stall information is also tracked for tasks grouped
71+into cgroups. Each subdirectory in the cgroupfs mountpoint contains
72+cpu.pressure, memory.pressure, and io.pressure files; the format is
73+the same as the /proc/pressure/ files.
Documentation/admin-guide/LSM/Yama.rst+2−2
@@ -64,8 +64,8 @@ The sysctl settings (writable only with ``CAP_SYS_PTRACE``) are: · 63 unmodified lines
6464 Using ``PTRACE_TRACEME`` is unchanged.
6565
6666 2 - admin-only attach:
67− only processes with ``CAP_SYS_PTRACE`` may use ptrace
68− with ``PTRACE_ATTACH``, or through children calling ``PTRACE_TRACEME``.
67+ only processes with ``CAP_SYS_PTRACE`` may use ptrace, either with
68+ ``PTRACE_ATTACH`` or through children calling ``PTRACE_TRACEME``.
6969
7070 3 - no attach:
7171 no processes may use ptrace with ``PTRACE_ATTACH`` nor via
Documentation/admin-guide/README.rst+1−2
@@ -51,8 +51,7 @@ Documentation · 50 unmodified lines
5151
5252 - There are various README files in the Documentation/ subdirectory:
5353 these typically contain kernel-specific installation notes for some
54− drivers for example. See Documentation/00-INDEX for a list of what
55− is contained in each file. Please read the
54+ drivers for example. Please read the
5655 :ref:`Documentation/process/changes.rst <changes>` file, as it
5756 contains information about the problems, which may result by upgrading
5857 your kernel.
Documentation/admin-guide/cgroup-v2.rst+22−0
@@ -966,6 +966,12 @@ All time durations are in microseconds. · 965 unmodified lines
966966 $PERIOD duration. "max" for $MAX indicates no limit. If only
967967 one number is written, $MAX is updated.
968968
969+ cpu.pressure
970+ A read-only nested-key file which exists on non-root cgroups.
971+
972+ Shows pressure stall information for CPU. See
973+ Documentation/accounting/psi.txt for details.
974+
969975
970976 Memory
971977 ------
@@ -1127,6 +1133,10 @@ PAGE_SIZE multiple when read back. · 155 unmodified lines
11271133 disk readahead. For now OOM in memory cgroup kills
11281134 tasks iff shortage has happened inside page fault.
11291135
1136+ This event is not raised if the OOM killer is not
1137+ considered as an option, e.g. for failed high-order
1138+ allocations.
1139+
11301140 oom_kill
11311141 The number of processes belonging to this cgroup
11321142 killed by any kind of OOM killer.
@@ -1271,6 +1281,12 @@ PAGE_SIZE multiple when read back. · 138 unmodified lines
12711281 higher than the limit for an extended period of time. This
12721282 reduces the impact on the workload and memory management.
12731283
1284+ memory.pressure
1285+ A read-only nested-key file which exists on non-root cgroups.
1286+
1287+ Shows pressure stall information for memory. See
1288+ Documentation/accounting/psi.txt for details.
1289+
12741290
12751291 Usage Guidelines
12761292 ~~~~~~~~~~~~~~~~
@@ -1408,6 +1424,12 @@ IO Interface Files · 131 unmodified lines
14081424
14091425 8:16 rbps=2097152 wbps=max riops=max wiops=max
14101426
1427+ io.pressure
1428+ A read-only nested-key file which exists on non-root cgroups.
1429+
1430+ Shows pressure stall information for IO. See
1431+ Documentation/accounting/psi.txt for details.
1432+
14111433
14121434 Writeback
14131435 ~~~~~~~~~
Documentation/admin-guide/ext4.rst+574−0
@@ -0,0 +1,574 @@
1+.. SPDX-License-Identifier: GPL-2.0
2+
3+========================
4+ext4 General Information
5+========================
6+
7+Ext4 is an advanced level of the ext3 filesystem which incorporates
8+scalability and reliability enhancements for supporting large filesystems
9+(64 bit) in keeping with increasing disk capacities and state-of-the-art
10+feature requirements.
11+
12+Mailing list: linux-ext4@vger.kernel.org
13+Web site: http://ext4.wiki.kernel.org
14+
15+
16+Quick usage instructions
17+========================
18+
19+Note: More extensive information for getting started with ext4 can be
20+found at the ext4 wiki site at the URL:
21+http://ext4.wiki.kernel.org/index.php/Ext4_Howto
22+
23+ - The latest version of e2fsprogs can be found at:
24+
25+ https://www.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/
26+
27+ or
28+
29+ http://sourceforge.net/project/showfiles.php?group_id=2406
30+
31+ or grab the latest git repository from:
32+
33+ https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git
34+
35+ - Create a new filesystem using the ext4 filesystem type:
36+
37+ # mke2fs -t ext4 /dev/hda1
38+
39+ Or to configure an existing ext3 filesystem to support extents:
40+
41+ # tune2fs -O extents /dev/hda1
42+
43+ If the filesystem was created with 128 byte inodes, it can be
44+ converted to use 256 byte for greater efficiency via:
45+
46+ # tune2fs -I 256 /dev/hda1
47+
48+ - Mounting:
49+
50+ # mount -t ext4 /dev/hda1 /wherever
51+
52+ - When comparing performance with other filesystems, it's always
53+ important to try multiple workloads; very often a subtle change in a
54+ workload parameter can completely change the ranking of which
55+ filesystems do well compared to others. When comparing versus ext3,
56+ note that ext4 enables write barriers by default, while ext3 does
57+ not enable write barriers by default. So it is useful to use
58+ explicitly specify whether barriers are enabled or not when via the
59+ '-o barriers=[0|1]' mount option for both ext3 and ext4 filesystems
60+ for a fair comparison. When tuning ext3 for best benchmark numbers,
61+ it is often worthwhile to try changing the data journaling mode; '-o
62+ data=writeback' can be faster for some workloads. (Note however that
63+ running mounted with data=writeback can potentially leave stale data
64+ exposed in recently written files in case of an unclean shutdown,
65+ which could be a security exposure in some situations.) Configuring
66+ the filesystem with a large journal can also be helpful for
67+ metadata-intensive workloads.
68+
69+Features
70+========
71+
72+Currently Available
73+-------------------
74+
75+* ability to use filesystems > 16TB (e2fsprogs support not available yet)
76+* extent format reduces metadata overhead (RAM, IO for access, transactions)
77+* extent format more robust in face of on-disk corruption due to magics,
78+* internal redundancy in tree
79+* improved file allocation (multi-block alloc)
80+* lift 32000 subdirectory limit imposed by i_links_count[1]
81+* nsec timestamps for mtime, atime, ctime, create time
82+* inode version field on disk (NFSv4, Lustre)
83+* reduced e2fsck time via uninit_bg feature
84+* journal checksumming for robustness, performance
85+* persistent file preallocation (e.g for streaming media, databases)
86+* ability to pack bitmaps and inode tables into larger virtual groups via the
87+ flex_bg feature
88+* large file support
89+* inode allocation using large virtual block groups via flex_bg
90+* delayed allocation
91+* large block (up to pagesize) support
92+* efficient new ordered mode in JBD2 and ext4 (avoid using buffer head to force
93+ the ordering)
94+
95+[1] Filesystems with a block size of 1k may see a limit imposed by the
96+directory hash tree having a maximum depth of two.
97+
98+Options
99+=======
100+
101+When mounting an ext4 filesystem, the following option are accepted:
102+(*) == default
103+
104+ ro
105+ Mount filesystem read only. Note that ext4 will replay the journal (and
106+ thus write to the partition) even when mounted "read only". The mount
107+ options "ro,noload" can be used to prevent writes to the filesystem.
108+
109+ journal_checksum
110+ Enable checksumming of the journal transactions. This will allow the
111+ recovery code in e2fsck and the kernel to detect corruption in the
112+ kernel. It is a compatible change and will be ignored by older
113+ kernels.
114+
115+ journal_async_commit
116+ Commit block can be written to disk without waiting for descriptor
117+ blocks. If enabled older kernels cannot mount the device. This will
118+ enable 'journal_checksum' internally.
119+
120+ journal_path=path, journal_dev=devnum
121+ When the external journal device's major/minor numbers have changed,
122+ these options allow the user to specify the new journal location. The
123+ journal device is identified through either its new major/minor numbers
124+ encoded in devnum, or via a path to the device.
125+
126+ norecovery, noload
127+ Don't load the journal on mounting. Note that if the filesystem was
128+ not unmounted cleanly, skipping the journal replay will lead to the
129+ filesystem containing inconsistencies that can lead to any number of
130+ problems.
131+
132+ data=journal
133+ All data are committed into the journal prior to being written into the
134+ main file system. Enabling this mode will disable delayed allocation
135+ and O_DIRECT support.
136+
137+ data=ordered (*)
138+ All data are forced directly out to the main file system prior to its
139+ metadata being committed to the journal.
140+
141+ data=writeback
142+ Data ordering is not preserved, data may be written into the main file
143+ system after its metadata has been committed to the journal.
144+
145+ commit=nrsec (*)
146+ Ext4 can be told to sync all its data and metadata every 'nrsec'
147+ seconds. The default value is 5 seconds. This means that if you lose
148+ your power, you will lose as much as the latest 5 seconds of work (your
149+ filesystem will not be damaged though, thanks to the journaling). This
150+ default value (or any low value) will hurt performance, but it's good
151+ for data-safety. Setting it to 0 will have the same effect as leaving
152+ it at the default (5 seconds). Setting it to very large values will
153+ improve performance.
154+
155+ barrier=<0|1(*)>, barrier(*), nobarrier
156+ This enables/disables the use of write barriers in the jbd code.
157+ barrier=0 disables, barrier=1 enables. This also requires an IO stack
158+ which can support barriers, and if jbd gets an error on a barrier
159+ write, it will disable again with a warning. Write barriers enforce
160+ proper on-disk ordering of journal commits, making volatile disk write
161+ caches safe to use, at some performance penalty. If your disks are
162+ battery-backed in one way or another, disabling barriers may safely
163+ improve performance. The mount options "barrier" and "nobarrier" can
164+ also be used to enable or disable barriers, for consistency with other
165+ ext4 mount options.
166+
167+ inode_readahead_blks=n
168+ This tuning parameter controls the maximum number of inode table blocks
169+ that ext4's inode table readahead algorithm will pre-read into the
170+ buffer cache. The default value is 32 blocks.
171+
172+ nouser_xattr
173+ Disables Extended User Attributes. See the attr(5) manual page for
174+ more information about extended attributes.
175+
176+ noacl
177+ This option disables POSIX Access Control List support. If ACL support
178+ is enabled in the kernel configuration (CONFIG_EXT4_FS_POSIX_ACL), ACL
179+ is enabled by default on mount. See the acl(5) manual page for more
180+ information about acl.
181+
182+ bsddf (*)
183+ Make 'df' act like BSD.
184+
185+ minixdf
186+ Make 'df' act like Minix.
187+
188+ debug
189+ Extra debugging information is sent to syslog.
190+
191+ abort
192+ Simulate the effects of calling ext4_abort() for debugging purposes.
193+ This is normally used while remounting a filesystem which is already
194+ mounted.
195+
196+ errors=remount-ro
197+ Remount the filesystem read-only on an error.
198+
199+ errors=continue
200+ Keep going on a filesystem error.
201+
202+ errors=panic
203+ Panic and halt the machine if an error occurs. (These mount options
204+ override the errors behavior specified in the superblock, which can be
205+ configured using tune2fs)
206+
207+ data_err=ignore(*)
208+ Just print an error message if an error occurs in a file data buffer in
209+ ordered mode.
210+ data_err=abort
211+ Abort the journal if an error occurs in a file data buffer in ordered
212+ mode.
213+
214+ grpid | bsdgroups
215+ New objects have the group ID of their parent.
216+
217+ nogrpid (*) | sysvgroups
218+ New objects have the group ID of their creator.
219+
220+ resgid=n
221+ The group ID which may use the reserved blocks.
222+
223+ resuid=n
224+ The user ID which may use the reserved blocks.
225+
226+ sb=
227+ Use alternate superblock at this location.
228+
229+ quota, noquota, grpquota, usrquota
230+ These options are ignored by the filesystem. They are used only by
231+ quota tools to recognize volumes where quota should be turned on. See
232+ documentation in the quota-tools package for more details
233+ (http://sourceforge.net/projects/linuxquota).
234+
235+ jqfmt=<quota type>, usrjquota=<file>, grpjquota=<file>
236+ These options tell filesystem details about quota so that quota
237+ information can be properly updated during journal replay. They replace
238+ the above quota options. See documentation in the quota-tools package
239+ for more details (http://sourceforge.net/projects/linuxquota).
240+
241+ stripe=n
242+ Number of filesystem blocks that mballoc will try to use for allocation
243+ size and alignment. For RAID5/6 systems this should be the number of
244+ data disks * RAID chunk size in file system blocks.
245+
246+ delalloc (*)
247+ Defer block allocation until just before ext4 writes out the block(s)
248+ in question. This allows ext4 to better allocation decisions more
249+ efficiently.
250+
251+ nodelalloc
252+ Disable delayed allocation. Blocks are allocated when the data is
253+ copied from userspace to the page cache, either via the write(2) system
254+ call or when an mmap'ed page which was previously unallocated is
255+ written for the first time.
256+
257+ max_batch_time=usec
258+ Maximum amount of time ext4 should wait for additional filesystem
259+ operations to be batch together with a synchronous write operation.
260+ Since a synchronous write operation is going to force a commit and then
261+ a wait for the I/O complete, it doesn't cost much, and can be a huge
262+ throughput win, we wait for a small amount of time to see if any other
263+ transactions can piggyback on the synchronous write. The algorithm
264+ used is designed to automatically tune for the speed of the disk, by
265+ measuring the amount of time (on average) that it takes to finish
266+ committing a transaction. Call this time the "commit time". If the
267+ time that the transaction has been running is less than the commit
268+ time, ext4 will try sleeping for the commit time to see if other
269+ operations will join the transaction. The commit time is capped by
270+ the max_batch_time, which defaults to 15000us (15ms). This
271+ optimization can be turned off entirely by setting max_batch_time to 0.
272+
273+ min_batch_time=usec
274+ This parameter sets the commit time (as described above) to be at least
275+ min_batch_time. It defaults to zero microseconds. Increasing this
276+ parameter may improve the throughput of multi-threaded, synchronous
277+ workloads on very fast disks, at the cost of increasing latency.
278+
279+ journal_ioprio=prio
280+ The I/O priority (from 0 to 7, where 0 is the highest priority) which
281+ should be used for I/O operations submitted by kjournald2 during a
282+ commit operation. This defaults to 3, which is a slightly higher
283+ priority than the default I/O priority.
284+
285+ auto_da_alloc(*), noauto_da_alloc
286+ Many broken applications don't use fsync() when replacing existing
287+ files via patterns such as fd = open("foo.new")/write(fd,..)/close(fd)/
288+ rename("foo.new", "foo"), or worse yet, fd = open("foo",
289+ O_TRUNC)/write(fd,..)/close(fd). If auto_da_alloc is enabled, ext4
290+ will detect the replace-via-rename and replace-via-truncate patterns
291+ and force that any delayed allocation blocks are allocated such that at
292+ the next journal commit, in the default data=ordered mode, the data
293+ blocks of the new file are forced to disk before the rename() operation
294+ is committed. This provides roughly the same level of guarantees as
295+ ext3, and avoids the "zero-length" problem that can happen when a
296+ system crashes before the delayed allocation blocks are forced to disk.
297+
298+ noinit_itable
299+ Do not initialize any uninitialized inode table blocks in the
300+ background. This feature may be used by installation CD's so that the
301+ install process can complete as quickly as possible; the inode table
302+ initialization process would then be deferred until the next time the
303+ file system is unmounted.
304+
305+ init_itable=n
306+ The lazy itable init code will wait n times the number of milliseconds
307+ it took to zero out the previous block group's inode table. This
308+ minimizes the impact on the system performance while file system's
309+ inode table is being initialized.
310+
311+ discard, nodiscard(*)
312+ Controls whether ext4 should issue discard/TRIM commands to the
313+ underlying block device when blocks are freed. This is useful for SSD
314+ devices and sparse/thinly-provisioned LUNs, but it is off by default
315+ until sufficient testing has been done.
316+
317+ nouid32
318+ Disables 32-bit UIDs and GIDs. This is for interoperability with
319+ older kernels which only store and expect 16-bit values.
320+
321+ block_validity(*), noblock_validity
322+ These options enable or disable the in-kernel facility for tracking
323+ filesystem metadata blocks within internal data structures. This
324+ allows multi- block allocator and other routines to notice bugs or
325+ corrupted allocation bitmaps which cause blocks to be allocated which
326+ overlap with filesystem metadata blocks.
327+
328+ dioread_lock, dioread_nolock
329+ Controls whether or not ext4 should use the DIO read locking. If the
330+ dioread_nolock option is specified ext4 will allocate uninitialized
331+ extent before buffer write and convert the extent to initialized after
332+ IO completes. This approach allows ext4 code to avoid using inode
333+ mutex, which improves scalability on high speed storages. However this
334+ does not work with data journaling and dioread_nolock option will be
335+ ignored with kernel warning. Note that dioread_nolock code path is only
336+ used for extent-based files. Because of the restrictions this options
337+ comprises it is off by default (e.g. dioread_lock).
338+
339+ max_dir_size_kb=n
340+ This limits the size of directories so that any attempt to expand them
341+ beyond the specified limit in kilobytes will cause an ENOSPC error.
342+ This is useful in memory constrained environments, where a very large
343+ directory can cause severe performance problems or even provoke the Out
344+ Of Memory killer. (For example, if there is only 512mb memory
345+ available, a 176mb directory may seriously cramp the system's style.)
346+
347+ i_version
348+ Enable 64-bit inode version support. This option is off by default.
349+
350+ dax
351+ Use direct access (no page cache). See
352+ Documentation/filesystems/dax.txt. Note that this option is
353+ incompatible with data=journal.
354+
355+Data Mode
356+=========
357+There are 3 different data modes:
358+
359+* writeback mode
360+
361+ In data=writeback mode, ext4 does not journal data at all. This mode provides
362+ a similar level of journaling as that of XFS, JFS, and ReiserFS in its default
363+ mode - metadata journaling. A crash+recovery can cause incorrect data to
364+ appear in files which were written shortly before the crash. This mode will
365+ typically provide the best ext4 performance.
366+
367+* ordered mode
368+
369+ In data=ordered mode, ext4 only officially journals metadata, but it logically
370+ groups metadata information related to data changes with the data blocks into
371+ a single unit called a transaction. When it's time to write the new metadata
372+ out to disk, the associated data blocks are written first. In general, this
373+ mode performs slightly slower than writeback but significantly faster than
374+ journal mode.
375+
376+* journal mode
377+
378+ data=journal mode provides full data and metadata journaling. All new data is
379+ written to the journal first, and then to its final location. In the event of
380+ a crash, the journal can be replayed, bringing both data and metadata into a
381+ consistent state. This mode is the slowest except when data needs to be read
382+ from and written to disk at the same time where it outperforms all others
383+ modes. Enabling this mode will disable delayed allocation and O_DIRECT
384+ support.
385+
386+/proc entries
387+=============
388+
389+Information about mounted ext4 file systems can be found in
390+/proc/fs/ext4. Each mounted filesystem will have a directory in
391+/proc/fs/ext4 based on its device name (i.e., /proc/fs/ext4/hdc or
392+/proc/fs/ext4/dm-0). The files in each per-device directory are shown
393+in table below.
394+
395+Files in /proc/fs/ext4/<devname>
396+
397+ mb_groups
398+ details of multiblock allocator buddy cache of free blocks
399+
400+/sys entries
401+============
402+
403+Information about mounted ext4 file systems can be found in
404+/sys/fs/ext4. Each mounted filesystem will have a directory in
405+/sys/fs/ext4 based on its device name (i.e., /sys/fs/ext4/hdc or
406+/sys/fs/ext4/dm-0). The files in each per-device directory are shown
407+in table below.
408+
409+Files in /sys/fs/ext4/<devname>:
410+
411+(see also Documentation/ABI/testing/sysfs-fs-ext4)
412+
413+ delayed_allocation_blocks
414+ This file is read-only and shows the number of blocks that are dirty in
415+ the page cache, but which do not have their location in the filesystem
416+ allocated yet.
417+
418+ inode_goal
419+ Tuning parameter which (if non-zero) controls the goal inode used by
420+ the inode allocator in preference to all other allocation heuristics.
421+ This is intended for debugging use only, and should be 0 on production
422+ systems.
423+
424+ inode_readahead_blks
425+ Tuning parameter which controls the maximum number of inode table
426+ blocks that ext4's inode table readahead algorithm will pre-read into
427+ the buffer cache.
428+
429+ lifetime_write_kbytes
430+ This file is read-only and shows the number of kilobytes of data that
431+ have been written to this filesystem since it was created.
432+
433+ max_writeback_mb_bump
434+ The maximum number of megabytes the writeback code will try to write
435+ out before move on to another inode.
436+
437+ mb_group_prealloc
438+ The multiblock allocator will round up allocation requests to a
439+ multiple of this tuning parameter if the stripe size is not set in the
440+ ext4 superblock
441+
442+ mb_max_to_scan
443+ The maximum number of extents the multiblock allocator will search to
444+ find the best extent.
445+
446+ mb_min_to_scan
447+ The minimum number of extents the multiblock allocator will search to
448+ find the best extent.
449+
450+ mb_order2_req
451+ Tuning parameter which controls the minimum size for requests (as a
452+ power of 2) where the buddy cache is used.
453+
454+ mb_stats
455+ Controls whether the multiblock allocator should collect statistics,
456+ which are shown during the unmount. 1 means to collect statistics, 0
457+ means not to collect statistics.
458+
459+ mb_stream_req
460+ Files which have fewer blocks than this tunable parameter will have
461+ their blocks allocated out of a block group specific preallocation
462+ pool, so that small files are packed closely together. Each large file
463+ will have its blocks allocated out of its own unique preallocation
464+ pool.
465+
466+ session_write_kbytes
467+ This file is read-only and shows the number of kilobytes of data that
468+ have been written to this filesystem since it was mounted.
469+
470+ reserved_clusters
471+ This is RW file and contains number of reserved clusters in the file
472+ system which will be used in the specific situations to avoid costly
473+ zeroout, unexpected ENOSPC, or possible data loss. The default is 2% or
474+ 4096 clusters, whichever is smaller and this can be changed however it
475+ can never exceed number of clusters in the file system. If there is not
476+ enough space for the reserved space when mounting the file mount will
477+ _not_ fail.
478+
479+Ioctls
480+======
481+
482+There is some Ext4 specific functionality which can be accessed by applications
483+through the system call interfaces. The list of all Ext4 specific ioctls are
484+shown in the table below.
485+
486+Table of Ext4 specific ioctls
487+
488+ EXT4_IOC_GETFLAGS
489+ Get additional attributes associated with inode. The ioctl argument is
490+ an integer bitfield, with bit values described in ext4.h. This ioctl is
491+ an alias for FS_IOC_GETFLAGS.
492+
493+ EXT4_IOC_SETFLAGS
494+ Set additional attributes associated with inode. The ioctl argument is
495+ an integer bitfield, with bit values described in ext4.h. This ioctl is
496+ an alias for FS_IOC_SETFLAGS.
497+
498+ EXT4_IOC_GETVERSION, EXT4_IOC_GETVERSION_OLD
499+ Get the inode i_generation number stored for each inode. The
500+ i_generation number is normally changed only when new inode is created
501+ and it is particularly useful for network filesystems. The '_OLD'
502+ version of this ioctl is an alias for FS_IOC_GETVERSION.
503+
504+ EXT4_IOC_SETVERSION, EXT4_IOC_SETVERSION_OLD
505+ Set the inode i_generation number stored for each inode. The '_OLD'
506+ version of this ioctl is an alias for FS_IOC_SETVERSION.
507+
508+ EXT4_IOC_GROUP_EXTEND
509+ This ioctl has the same purpose as the resize mount option. It allows
510+ to resize filesystem to the end of the last existing block group,
511+ further resize has to be done with resize2fs, either online, or
512+ offline. The argument points to the unsigned logn number representing
513+ the filesystem new block count.
514+
515+ EXT4_IOC_MOVE_EXT
516+ Move the block extents from orig_fd (the one this ioctl is pointing to)
517+ to the donor_fd (the one specified in move_extent structure passed as
518+ an argument to this ioctl). Then, exchange inode metadata between
519+ orig_fd and donor_fd. This is especially useful for online
520+ defragmentation, because the allocator has the opportunity to allocate
521+ moved blocks better, ideally into one contiguous extent.
522+
523+ EXT4_IOC_GROUP_ADD
524+ Add a new group descriptor to an existing or new group descriptor
525+ block. The new group descriptor is described by ext4_new_group_input
526+ structure, which is passed as an argument to this ioctl. This is
527+ especially useful in conjunction with EXT4_IOC_GROUP_EXTEND, which
528+ allows online resize of the filesystem to the end of the last existing
529+ block group. Those two ioctls combined is used in userspace online
530+ resize tool (e.g. resize2fs).
531+
532+ EXT4_IOC_MIGRATE
533+ This ioctl operates on the filesystem itself. It converts (migrates)
534+ ext3 indirect block mapped inode to ext4 extent mapped inode by walking
535+ through indirect block mapping of the original inode and converting
536+ contiguous block ranges into ext4 extents of the temporary inode. Then,
537+ inodes are swapped. This ioctl might help, when migrating from ext3 to
538+ ext4 filesystem, however suggestion is to create fresh ext4 filesystem
539+ and copy data from the backup. Note, that filesystem has to support
540+ extents for this ioctl to work.
541+
542+ EXT4_IOC_ALLOC_DA_BLKS
543+ Force all of the delay allocated blocks to be allocated to preserve
544+ application-expected ext3 behaviour. Note that this will also start
545+ triggering a write of the data blocks, but this behaviour may change in
546+ the future as it is not necessary and has been done this way only for
547+ sake of simplicity.
548+
549+ EXT4_IOC_RESIZE_FS
550+ Resize the filesystem to a new size. The number of blocks of resized
551+ filesystem is passed in via 64 bit integer argument. The kernel
552+ allocates bitmaps and inode table, the userspace tool thus just passes
553+ the new number of blocks.
554+
555+ EXT4_IOC_SWAP_BOOT
556+ Swap i_blocks and associated attributes (like i_blocks, i_size,
557+ i_flags, ...) from the specified inode with inode EXT4_BOOT_LOADER_INO
558+ (#5). This is typically used to store a boot loader in a secure part of
559+ the filesystem, where it can't be changed by a normal user by accident.
560+ The data blocks of the previous boot loader will be associated with the
561+ given inode.
562+
563+References
564+==========
565+
566+kernel source: <file:fs/ext4/>
567+ <file:fs/jbd2/>
568+
569+programs: http://e2fsprogs.sourceforge.net/
570+
571+useful links: http://fedoraproject.org/wiki/ext3-devel
572+ http://www.bullopensource.org/ext4/
573+ http://ext4.wiki.kernel.org/index.php/Main_Page
574+ http://fedoraproject.org/wiki/Features/Ext4
Documentation/admin-guide/index.rst+1−0
@@ -71,6 +71,7 @@ configure specific aspects of kernel behavior to your liking. · 70 unmodified lines
7171 java
7272 ras
7373 bcache
74+ ext4
7475 pm/index
7576 thunderbolt
7677 LSM/index
Documentation/admin-guide/kernel-parameters.txt+61−19
@@ -856,6 +856,11 @@ · 855 unmodified lines
856856 causing system reset or hang due to sending
857857 INIT from AP to BSP.
858858
859+ disable_counter_freezing [HW]
860+ Disable Intel PMU counter freezing feature.
861+ The feature only exists starting from
862+ Arch Perfmon v4 (Skylake and newer).
863+
859864 disable_ddw [PPC/PSERIES]
860865 Disable Dynamic DMA Window support. Use this if
861866 to workaround buggy firmware.
@@ -1063,7 +1068,7 @@ · 201 unmodified lines
10631068 earlyprintk=serial[,0x...[,baudrate]]
10641069 earlyprintk=ttySn[,baudrate]
10651070 earlyprintk=dbgp[debugController#]
1066− earlyprintk=pciserial,bus:device.function[,baudrate]
1071+ earlyprintk=pciserial[,force],bus:device.function[,baudrate]
10671072 earlyprintk=xdbc[xhciController#]
10681073
10691074 earlyprintk is useful when the kernel crashes before
@@ -1095,6 +1100,10 @@ · 25 unmodified lines
10951100
10961101 The sclp output can only be used on s390.
10971102
1103+ The optional "force" to "pciserial" enables use of a
1104+ PCI device even when its classcode is not of the
1105+ UART class.
1106+
10981107 edac_report= [HW,EDAC] Control how to report EDAC event
10991108 Format: {"on" | "off" | "force"}
11001109 on: enable EDAC to report H/W event. May be overridden
@@ -1385,6 +1394,11 @@ · 284 unmodified lines
13851394 hvc_iucv_allow= [S390] Comma-separated list of z/VM user IDs.
13861395 If specified, z/VM IUCV HVC accepts connections
13871396 from listed z/VM user IDs only.
1397+
1398+ hv_nopvspin [X86,HYPER_V] Disables the paravirt spinlock optimizations
1399+ which allow the hypervisor to 'idle' the
1400+ guest on lock contention.
1401+
13881402 keep_bootcon [KNL]
13891403 Do not unregister boot console at start. This is only
13901404 useful for debugging when something happens in the window
@@ -1749,12 +1763,24 @@ · 358 unmodified lines
17491763 nobypass [PPC/POWERNV]
17501764 Disable IOMMU bypass, using IOMMU for PCI devices.
17511765
1766+ iommu.strict= [ARM64] Configure TLB invalidation behaviour
1767+ Format: { "0" | "1" }
1768+ 0 - Lazy mode.
1769+ Request that DMA unmap operations use deferred
1770+ invalidation of hardware TLBs, for increased
1771+ throughput at the cost of reduced device isolation.
1772+ Will fall back to strict mode if not supported by
1773+ the relevant IOMMU driver.
1774+ 1 - Strict mode (default).
1775+ DMA unmap operations invalidate IOMMU hardware TLBs
1776+ synchronously.
1777+
17521778 iommu.passthrough=
17531779 [ARM64] Configure DMA to bypass the IOMMU by default.
17541780 Format: { "0" | "1" }
17551781 0 - Use IOMMU translation for DMA.
17561782 1 - Bypass the IOMMU for DMA.
1757− unset - Use IOMMU translation for DMA.
1783+ unset - Use value of CONFIG_IOMMU_DEFAULT_PASSTHROUGH.
17581784
17591785 io7= [HW] IO7 for Marvel based alpha systems
17601786 See comment before marvel_specify_io7 in
@@ -2274,6 +2300,8 @@ · 513 unmodified lines
22742300 ltpc= [NET]
22752301 Format: <io>,<irq>,<dma>
22762302
2303+ lsm.debug [SECURITY] Enable LSM initialization debugging output.
2304+
22772305 machvec= [IA-64] Force the use of a particular machine-vector
22782306 (machvec) in a generic kernel.
22792307 Example: machvec=hpzx1_swiotlb
@@ -2404,7 +2432,7 @@ · 124 unmodified lines
24042432 seconds. Use this parameter to check at some
24052433 other rate. 0 disables periodic checking.
24062434
2407− memtest= [KNL,X86,ARM] Enable memtest
2435+ memtest= [KNL,X86,ARM,PPC] Enable memtest
24082436 Format: <integer>
24092437 default : 0 <disable>
24102438 Specifies the number of memtest passes to be
@@ -3540,14 +3568,14 @@ · 1129 unmodified lines
35403568
35413569 In kernels built with CONFIG_RCU_NOCB_CPU=y, set
35423570 the specified list of CPUs to be no-callback CPUs.
3543− Invocation of these CPUs' RCU callbacks will
3544− be offloaded to "rcuox/N" kthreads created for
3545− that purpose, where "x" is "b" for RCU-bh, "p"
3546− for RCU-preempt, and "s" for RCU-sched, and "N"
3547− is the CPU number. This reduces OS jitter on the
3548− offloaded CPUs, which can be useful for HPC and
3549− real-time workloads. It can also improve energy
3550− efficiency for asymmetric multiprocessors.
3571+ Invocation of these CPUs' RCU callbacks will be
3572+ offloaded to "rcuox/N" kthreads created for that
3573+ purpose, where "x" is "p" for RCU-preempt, and
3574+ "s" for RCU-sched, and "N" is the CPU number.
3575+ This reduces OS jitter on the offloaded CPUs,
3576+ which can be useful for HPC and real-time
3577+ workloads. It can also improve energy efficiency
3578+ for asymmetric multiprocessors.
35513579
35523580 rcu_nocb_poll [KNL]
35533581 Rather than requiring that offloaded CPUs
@@ -3601,7 +3629,14 @@ · 47 unmodified lines
36013629 Set required age in jiffies for a
36023630 given grace period before RCU starts
36033631 soliciting quiescent-state help from
3604− rcu_note_context_switch().
3632+ rcu_note_context_switch(). If not specified, the
3633+ kernel will calculate a value based on the most
3634+ recent settings of rcutree.jiffies_till_first_fqs
3635+ and rcutree.jiffies_till_next_fqs.
3636+ This calculated value may be viewed in
3637+ rcutree.jiffies_to_sched_qs. Any attempt to
3638+ set rcutree.jiffies_to_sched_qs will be
3639+ cheerfully overwritten.
36053640
36063641 rcutree.jiffies_till_first_fqs= [KNL]
36073642 Set delay from grace-period initialization to
@@ -3869,12 +3904,6 @@ · 261 unmodified lines
38693904 rcupdate.rcu_self_test= [KNL]
38703905 Run the RCU early boot self tests
38713906
3872− rcupdate.rcu_self_test_bh= [KNL]
3873− Run the RCU bh early boot self tests
3874−
3875− rcupdate.rcu_self_test_sched= [KNL]
3876− Run the RCU sched early boot self tests
3877−
38783907 rdinit= [KNL]
38793908 Format: <full_path>
38803909 Run specified binary instead of /init from the ramdisk,
@@ -4610,7 +4639,8 @@ · 729 unmodified lines
46104639
46114640 usbcore.old_scheme_first=
46124641 [USB] Start with the old device initialization
4613− scheme (default 0 = off).
4642+ scheme, applies only to low and full-speed devices
4643+ (default 0 = off).
46144644
46154645 usbcore.usbfs_memory_mb=
46164646 [USB] Memory limit (in MB) for buffers allocated by
@@ -4825,6 +4855,18 @@ · 208 unmodified lines
48254855 This is actually a boot loader parameter; the value is
48264856 passed to the kernel using a special protocol.
48274857
4858+ vm_debug[=options] [KNL] Available with CONFIG_DEBUG_VM=y.
4859+ May slow down system boot speed, especially when
4860+ enabled on systems with a large amount of memory.
4861+ All options are enabled by default, and this
4862+ interface is meant to allow for selectively
4863+ enabling or disabling specific virtual memory
4864+ debugging features.
4865+
4866+ Available options are:
4867+ P Enable page structure init time poisoning
4868+ - Disable all of the above options
4869+
48284870 vmalloc=nn[KMG] [KNL,BOOT] Forces the vmalloc area to have an exact
48294871 size of <nn>. This can be used to increase the
48304872 minimum size (128MB on x86). It can also be used to
Documentation/admin-guide/l1tf.rst+1−1
@@ -553,7 +553,7 @@ When nested virtualization is in use, three operating systems are involved: · 552 unmodified lines
553553 the bare metal hypervisor, the nested hypervisor and the nested virtual
554554 machine. VMENTER operations from the nested hypervisor into the nested
555555 guest will always be processed by the bare metal hypervisor. If KVM is the
556−bare metal hypervisor it wiil:
556+bare metal hypervisor it will:
557557
558558 - Flush the L1D cache on every switch from the nested hypervisor to the
559559 nested virtual machine, so that the nested hypervisor's secrets are not
Documentation/admin-guide/mm/index.rst+1−0
@@ -29,6 +29,7 @@ the Linux memory management. · 28 unmodified lines
2929 hugetlbpage
3030 idle_page_tracking
3131 ksm
32+ memory-hotplug
3233 numa_memory_policy
3334 pagemap
3435 soft-dirty
Documentation/admin-guide/mm/memory-hotplug.rstrenamed from Documentation/memory-hotplug.txt+63−126
@@ -1,47 +1,29 @@
1+.. _admin_guide_memory_hotplug:
2+
13 ==============
24 Memory Hotplug
35 ==============
46
57 :Created: Jul 28 2007
6−:Updated: Add description of notifier of memory hotplug: Oct 11 2007
8+:Updated: Add some details about locking internals: Aug 20 2018
79
810 This document is about memory hotplug including how-to-use and current status.
911 Because Memory Hotplug is still under development, contents of this text will
1012 be changed often.
1113
12−.. CONTENTS
13−
14− 1. Introduction
15− 1.1 purpose of memory hotplug
16− 1.2. Phases of memory hotplug
17− 1.3. Unit of Memory online/offline operation
18− 2. Kernel Configuration
19− 3. sysfs files for memory hotplug
20− 4. Physical memory hot-add phase
21− 4.1 Hardware(Firmware) Support
22− 4.2 Notify memory hot-add event by hand
23− 5. Logical Memory hot-add phase
24− 5.1. State of memory
25− 5.2. How to online memory
26− 6. Logical memory remove
27− 6.1 Memory offline and ZONE_MOVABLE
28− 6.2. How to offline memory
29− 7. Physical memory remove
30− 8. Memory hotplug event notifier
31− 9. Future Work List
32−
14+.. contents:: :local:
3315
3416 .. note::
3517
3618 (1) x86_64's has special implementation for memory hotplug.
3719 This text does not describe it.
38− (2) This text assumes that sysfs is mounted at /sys.
20+ (2) This text assumes that sysfs is mounted at ``/sys``.
3921
4022
4123 Introduction
4224 ============
4325
44−purpose of memory hotplug
26+Purpose of memory hotplug
4527 -------------------------
4628
4729 Memory Hotplug allows users to increase/decrease the amount of memory.
@@ -57,7 +39,6 @@ hardware which supports memory power management. · 9 unmodified lines
5739
5840 Linux memory hotplug is designed for both purpose.
5941
60−
6142 Phases of memory hotplug
6243 ------------------------
6344
@@ -92,7 +73,6 @@ phase by hand. · 28 unmodified lines
9273 (However, if you writes udev's hotplug scripts for memory hotplug, these
9374 phases can be execute in seamless way.)
9475
95−
9676 Unit of Memory online/offline operation
9777 ---------------------------------------
9878
@@ -107,10 +87,9 @@ unit upon which memory online/offline operations are to be performed. The · 8 unmodified lines
10787 default size of a memory block is the same as memory section size unless an
10888 architecture specifies otherwise. (see :ref:`memory_hotplug_sysfs_files`.)
10989
110−To determine the size (in bytes) of a memory block please read this file:
111−
112−/sys/devices/system/memory/block_size_bytes
90+To determine the size (in bytes) of a memory block please read this file::
11391
92+ /sys/devices/system/memory/block_size_bytes
11493
11594 Kernel Configuration
11695 ====================
@@ -119,22 +98,22 @@ To use memory hotplug feature, kernel must be compiled with following · 2 unmodified lines
11998 config options.
12099
121100 - For all memory hotplug:
122− - Memory model -> Sparse Memory (CONFIG_SPARSEMEM)
123− - Allow for memory hot-add (CONFIG_MEMORY_HOTPLUG)
101+ - Memory model -> Sparse Memory (``CONFIG_SPARSEMEM``)
102+ - Allow for memory hot-add (``CONFIG_MEMORY_HOTPLUG``)
124103
125104 - To enable memory removal, the following are also necessary:
126− - Allow for memory hot remove (CONFIG_MEMORY_HOTREMOVE)
127− - Page Migration (CONFIG_MIGRATION)
105+ - Allow for memory hot remove (``CONFIG_MEMORY_HOTREMOVE``)
106+ - Page Migration (``CONFIG_MIGRATION``)
128107
129108 - For ACPI memory hotplug, the following are also necessary:
130− - Memory hotplug (under ACPI Support menu) (CONFIG_ACPI_HOTPLUG_MEMORY)
109+ - Memory hotplug (under ACPI Support menu) (``CONFIG_ACPI_HOTPLUG_MEMORY``)
131110 - This option can be kernel module.
132111
133112 - As a related configuration, if your box has a feature of NUMA-node hotplug
134113 via ACPI, then this option is necessary too.
135114
136115 - ACPI0004,PNP0A05 and PNP0A06 Container Driver (under ACPI Support menu)
137− (CONFIG_ACPI_CONTAINER).
116+ (``CONFIG_ACPI_CONTAINER``).
138117
139118 This option can be kernel module too.
140119
@@ -145,10 +124,11 @@ sysfs files for memory hotplug · 4 unmodified lines
145124 ==============================
146125
147126 All memory blocks have their device information in sysfs. Each memory block
148−is described under /sys/devices/system/memory as:
127+is described under ``/sys/devices/system/memory`` as::
149128
150129 /sys/devices/system/memory/memoryXXX
151− (XXX is the memory block id.)
130+
131+where XXX is the memory block id.
152132
153133 For the memory block covered by the sysfs directory. It is expected that all
154134 memory sections in this range are present and no memory holes exist in the
@@ -157,7 +137,7 @@ the existence of one should not affect the hotplug capabilities of the memory · 2 unmodified lines
157137 block.
158138
159139 For example, assume 1GiB memory block size. A device for a memory starting at
160−0x100000000 is /sys/device/system/memory/memory4::
140+0x100000000 is ``/sys/device/system/memory/memory4``::
161141
162142 (0x100000000 / 1Gib = 4)
163143
@@ -165,11 +145,11 @@ This device covers address range [0x100000000 ... 0x140000000) · 1 unmodified line
165145
166146 Under each memory block, you can see 5 files:
167147
168−- /sys/devices/system/memory/memoryXXX/phys_index
169−- /sys/devices/system/memory/memoryXXX/phys_device
170−- /sys/devices/system/memory/memoryXXX/state
171−- /sys/devices/system/memory/memoryXXX/removable
172−- /sys/devices/system/memory/memoryXXX/valid_zones
148+- ``/sys/devices/system/memory/memoryXXX/phys_index``
149+- ``/sys/devices/system/memory/memoryXXX/phys_device``
150+- ``/sys/devices/system/memory/memoryXXX/state``
151+- ``/sys/devices/system/memory/memoryXXX/removable``
152+- ``/sys/devices/system/memory/memoryXXX/valid_zones``
173153
174154 =================== ============================================================
175155 ``phys_index`` read-only and contains memory block id, same as XXX.
@@ -207,13 +187,15 @@ Under each memory block, you can see 5 files: · 31 unmodified lines
207187 These directories/files appear after physical memory hotplug phase.
208188
209189 If CONFIG_NUMA is enabled the memoryXXX/ directories can also be accessed
210−via symbolic links located in the /sys/devices/system/node/node* directories.
190+via symbolic links located in the ``/sys/devices/system/node/node*`` directories.
191+
192+For example::
211193
212−For example:
213−/sys/devices/system/node/node0/memory9 -> ../../memory/memory9
194+ /sys/devices/system/node/node0/memory9 -> ../../memory/memory9
214195
215−A backlink will also be created:
216−/sys/devices/system/memory/memory9/node0 -> ../../node/node0
196+A backlink will also be created::
197+
198+ /sys/devices/system/memory/memory9/node0 -> ../../node/node0
217199
218200 .. _memory_hotplug_physical_mem:
219201
@@ -240,7 +222,6 @@ If firmware supports NUMA-node hotplug, and defines an object _HID "ACPI0004", · 20 unmodified lines
240222 calls hotplug code for all of objects which are defined in it.
241223 If memory device is found, memory hotplug code will be called.
242224
243−
244225 Notify memory hot-add event by hand
245226 -----------------------------------
246227
@@ -251,8 +232,9 @@ CONFIG_ARCH_MEMORY_PROBE and can be configured on powerpc, sh, and x86 · 4 unmodified lines
251232 if hotplug is supported, although for x86 this should be handled by ACPI
252233 notification.
253234
254−Probe interface is located at
255−/sys/devices/system/memory/probe
235+Probe interface is located at::
236+
237+ /sys/devices/system/memory/probe
256238
257239 You can tell the physical address of new memory to the kernel by::
258240
@@ -263,7 +245,6 @@ memory_block_size] memory range is hot-added. In this case, hotplug script is · 4 unmodified lines
263245 not called (in current implementation). You'll have to online memory by
264246 yourself. Please see :ref:`memory_hotplug_how_to_online_memory`.
265247
266−
267248 Logical Memory hot-add phase
268249 ============================
269250
@@ -301,7 +282,7 @@ This sets a global policy and impacts all memory blocks that will subsequently · 31 unmodified lines
301282 be hotplugged. Currently offline blocks keep their state. It is possible, under
302283 certain circumstances, that some memory blocks will be added but will fail to
303284 online. User space tools can check their "state" files
304−(/sys/devices/system/memory/memoryXXX/state) and try to online them manually.
285+(``/sys/devices/system/memory/memoryXXX/state``) and try to online them manually.
305286
306287 If the automatic onlining wasn't requested, failed, or some memory block was
307288 offlined it is possible to change the individual block's state by writing to the
@@ -334,8 +315,6 @@ available memory will be increased. · 26 unmodified lines
334315
335316 This may be changed in future.
336317
337−
338−
339318 Logical memory remove
340319 =====================
341320
@@ -413,87 +392,45 @@ Need more implementation yet.... · 71 unmodified lines
413392 - Notification completion of remove works by OS to firmware.
414393 - Guard from remove if not yet.
415394
416−Memory hotplug event notifier
417−=============================
418−
419−Hotplugging events are sent to a notification queue.
420−
421−There are six types of notification defined in include/linux/memory.h:
422−
423−MEM_GOING_ONLINE
424− Generated before new memory becomes available in order to be able to
425− prepare subsystems to handle memory. The page allocator is still unable
426− to allocate from the new memory.
427−
428−MEM_CANCEL_ONLINE
429− Generated if MEMORY_GOING_ONLINE fails.
430−
431−MEM_ONLINE
432− Generated when memory has successfully brought online. The callback may
433− allocate pages from the new memory.
434−
435−MEM_GOING_OFFLINE
436− Generated to begin the process of offlining memory. Allocations are no
437− longer possible from the memory but some of the memory to be offlined
438− is still in use. The callback can be used to free memory known to a
439− subsystem from the indicated memory block.
440−
441−MEM_CANCEL_OFFLINE
442− Generated if MEMORY_GOING_OFFLINE fails. Memory is available again from
443− the memory block that we attempted to offline.
444−
445−MEM_OFFLINE
446− Generated after offlining memory is complete.
447−
448−A callback routine can be registered by calling::
449−
450− hotplug_memory_notifier(callback_func, priority)
451−
452−Callback functions with higher values of priority are called before callback
453−functions with lower values.
454395
455−A callback function must have the following prototype::
396+Locking Internals
397+=================
456398
457− int callback_func(
458− struct notifier_block *self, unsigned long action, void *arg);
399+When adding/removing memory that uses memory block devices (i.e. ordinary RAM),
400+the device_hotplug_lock should be held to:
459401
460−The first argument of the callback function (self) is a pointer to the block
461−of the notifier chain that points to the callback function itself.
462−The second argument (action) is one of the event types described above.
463−The third argument (arg) passes a pointer of struct memory_notify::
402+- synchronize against online/offline requests (e.g. via sysfs). This way, memory
403+ block devices can only be accessed (.online/.state attributes) by user
404+ space once memory has been fully added. And when removing memory, we
405+ know nobody is in critical sections.
406+- synchronize against CPU hotplug and similar (e.g. relevant for ACPI and PPC)
464407
465− struct memory_notify {
466− unsigned long start_pfn;
467− unsigned long nr_pages;
468− int status_change_nid_normal;
469− int status_change_nid_high;
470− int status_change_nid;
471− }
408+Especially, there is a possible lock inversion that is avoided using
409+device_hotplug_lock when adding memory and user space tries to online that
410+memory faster than expected:
472411
473−- start_pfn is start_pfn of online/offline memory.
474−- nr_pages is # of pages of online/offline memory.
475−- status_change_nid_normal is set node id when N_NORMAL_MEMORY of nodemask
476− is (will be) set/clear, if this is -1, then nodemask status is not changed.
477−- status_change_nid_high is set node id when N_HIGH_MEMORY of nodemask
478− is (will be) set/clear, if this is -1, then nodemask status is not changed.
479−- status_change_nid is set node id when N_MEMORY of nodemask is (will be)
480− set/clear. It means a new(memoryless) node gets new memory by online and a
481− node loses all memory. If this is -1, then nodemask status is not changed.
412+- device_online() will first take the device_lock(), followed by
413+ mem_hotplug_lock
414+- add_memory_resource() will first take the mem_hotplug_lock, followed by
415+ the device_lock() (while creating the devices, during bus_add_device()).
482416
483− If status_changed_nid* >= 0, callback should create/discard structures for the
484− node if necessary.
417+As the device is visible to user space before taking the device_lock(), this
418+can result in a lock inversion.
485419
486−The callback routine shall return one of the values
487−NOTIFY_DONE, NOTIFY_OK, NOTIFY_BAD, NOTIFY_STOP
488−defined in include/linux/notifier.h
420+onlining/offlining of memory should be done via device_online()/
421+device_offline() - to make sure it is properly synchronized to actions
422+via sysfs. Holding device_hotplug_lock is advised (to e.g. protect online_type)
489423
490−NOTIFY_DONE and NOTIFY_OK have no effect on the further processing.
424+When adding/removing/onlining/offlining memory or adding/removing
425+heterogeneous/device memory, we should always hold the mem_hotplug_lock in
426+write mode to serialise memory hotplug (e.g. access to global/zone
427+variables).
491428
492−NOTIFY_BAD is used as response to the MEM_GOING_ONLINE, MEM_GOING_OFFLINE,
493−MEM_ONLINE, or MEM_OFFLINE action to cancel hotplugging. It stops
494−further processing of the notification queue.
429+In addition, mem_hotplug_lock (in contrast to device_hotplug_lock) in read
430+mode allows for a quite efficient get_online_mems/put_online_mems
431+implementation, so code accessing memory can protect from that memory
432+vanishing.
495433
496−NOTIFY_STOP stops further processing of the notification queue.
497434
498435 Future Work
499436 ===========
Documentation/admin-guide/pm/cpufreq.rst+1−1
@@ -150,7 +150,7 @@ data structures necessary to handle the given policy and, possibly, to add · 149 unmodified lines
150150 a governor ``sysfs`` interface to it. Next, the governor is started by
151151 invoking its ``->start()`` callback.
152152
153−That callback it expected to register per-CPU utilization update callbacks for
153+That callback is expected to register per-CPU utilization update callbacks for
154154 all of the online CPUs belonging to the given policy with the CPU scheduler.
155155 The utilization update callbacks will be invoked by the CPU scheduler on
156156 important events, like task enqueue and dequeue, on every iteration of the
Documentation/admin-guide/pm/intel_pstate.rst+7−0
@@ -465,6 +465,13 @@ Next, the following policy attributes have special meaning if · 464 unmodified lines
465465 policy for the time interval between the last two invocations of the
466466 driver's utilization update callback by the CPU scheduler for that CPU.
467467
468+One more policy attribute is present if the `HWP feature is enabled in the
469+processor <Active Mode With HWP_>`_:
470+
471+``base_frequency``
472+ Shows the base frequency of the CPU. Any frequency above this will be
473+ in the turbo frequency range.
474+
468475 The meaning of these attributes in the `passive mode <Passive Mode_>`_ is the
469476 same as for other scaling drivers.
470477
Documentation/admin-guide/security-bugs.rst+29−18
@@ -26,23 +26,34 @@ information is helpful. Any exploit code is very helpful and will not · 25 unmodified lines
2626 be released without consent from the reporter unless it has already been
2727 made public.
2828
29−Disclosure
30−----------
31−
32−The goal of the Linux kernel security team is to work with the bug
33−submitter to understand and fix the bug. We prefer to publish the fix as
34−soon as possible, but try to avoid public discussion of the bug itself
35−and leave that to others.
36−
37−Publishing the fix may be delayed when the bug or the fix is not yet
38−fully understood, the solution is not well-tested or for vendor
39−coordination. However, we expect these delays to be short, measurable in
40−days, not weeks or months. A release date is negotiated by the security
41−team working with the bug submitter as well as vendors. However, the
42−kernel security team holds the final say when setting a timeframe. The
43−timeframe varies from immediate (esp. if it's already publicly known bug)
44−to a few weeks. As a basic default policy, we expect report date to
45−release date to be on the order of 7 days.
29+Disclosure and embargoed information
30+------------------------------------
31+
32+The security list is not a disclosure channel. For that, see Coordination
33+below.
34+
35+Once a robust fix has been developed, our preference is to release the
36+fix in a timely fashion, treating it no differently than any of the other
37+thousands of changes and fixes the Linux kernel project releases every
38+month.
39+
40+However, at the request of the reporter, we will postpone releasing the
41+fix for up to 5 business days after the date of the report or after the
42+embargo has lifted; whichever comes first. The only exception to that
43+rule is if the bug is publicly known, in which case the preference is to
44+release the fix as soon as it's available.
45+
46+Whilst embargoed information may be shared with trusted individuals in
47+order to develop a fix, such information will not be published alongside
48+the fix or on any other disclosure channel without the permission of the
49+reporter. This includes but is not limited to the original bug report
50+and followup discussions (if any), exploits, CVE information or the
51+identity of the reporter.
52+
53+In other words our only interest is in getting bugs fixed. All other
54+information submitted to the security list and any followup discussions
55+of the report are treated confidentially even after the embargo has been
56+lifted, in perpetuity.
4657
4758 Coordination
4859 ------------
@@ -68,7 +79,7 @@ may delay the bug handling. If a reporter wishes to have a CVE identifier · 19 unmodified lines
6879 assigned ahead of public disclosure, they will need to contact the private
6980 linux-distros list, described above. When such a CVE identifier is known
7081 before a patch is provided, it is desirable to mention it in the commit
71−message, though.
82+message if the reporter agrees.
7283
7384 Non-disclosure agreements
7485 -------------------------
Documentation/arm/00-INDEX+0−50
@@ -1,50 +0,0 @@
1−00-INDEX
2− - this file
3−Booting
4− - requirements for booting
5−CCN.txt
6− - Cache Coherent Network ring-bus and perf PMU driver.
7−Interrupts
8− - ARM Interrupt subsystem documentation
9−IXP4xx
10− - Intel IXP4xx Network processor.
11−Netwinder
12− - Netwinder specific documentation
13−Porting
14− - Symbol definitions for porting Linux to a new ARM machine.
15−Setup
16− - Kernel initialization parameters on ARM Linux
17−README
18− - General ARM documentation
19−SA1100/
20− - SA1100 documentation
21−Samsung-S3C24XX/
22− - S3C24XX ARM Linux Overview
23−SPEAr/
24− - ST SPEAr platform Linux Overview
25−VFP/
26− - Release notes for Linux Kernel Vector Floating Point support code
27−cluster-pm-race-avoidance.txt
28− - Algorithm for CPU and Cluster setup/teardown
29−empeg/
30− - Ltd's Empeg MP3 Car Audio Player
31−firmware.txt
32− - Secure firmware registration and calling.
33−kernel_mode_neon.txt
34− - How to use NEON instructions in kernel mode
35−kernel_user_helpers.txt
36− - Helper functions in kernel space made available for userspace.
37−mem_alignment
38− - alignment abort handler documentation
39−memory.txt
40− - description of the virtual memory layout
41−nwfpe/
42− - NWFPE floating point emulator documentation
43−swp_emulation
44− - SWP/SWPB emulation handler/logging description
45−tcm.txt
46− - ARM Tightly Coupled Memory
47−uefi.txt
48− - [U]EFI configuration and runtime services documentation
49−vlocks.txt
50− - Voting locks, low-level mechanism relying on memory system atomic writes.
Documentation/arm/Samsung/Bootloader-interface.txt+1−0
@@ -26,6 +26,7 @@ Offset Value Purpose · 25 unmodified lines
2626 0x20 0xfcba0d10 (Magic cookie) AFTR
2727 0x24 exynos_cpu_resume_ns AFTR
2828 0x28 + 4*cpu 0x8 (Magic cookie, Exynos3250) AFTR
29+0x28 0x0 or last value during resume (Exynos542x) System suspend
2930
3031
3132 2. Secure mode
Documentation/arm64/elf_hwcaps.txt+8−4
@@ -78,11 +78,11 @@ HWCAP_EVTSTRM · 77 unmodified lines
7878
7979 HWCAP_AES
8080
81− Functionality implied by ID_AA64ISAR1_EL1.AES == 0b0001.
81+ Functionality implied by ID_AA64ISAR0_EL1.AES == 0b0001.
8282
8383 HWCAP_PMULL
8484
85− Functionality implied by ID_AA64ISAR1_EL1.AES == 0b0010.
85+ Functionality implied by ID_AA64ISAR0_EL1.AES == 0b0010.
8686
8787 HWCAP_SHA1
8888
@@ -153,7 +153,7 @@ HWCAP_ASIMDDP · 64 unmodified lines
153153
154154 HWCAP_SHA512
155155
156− Functionality implied by ID_AA64ISAR0_EL1.SHA2 == 0b0002.
156+ Functionality implied by ID_AA64ISAR0_EL1.SHA2 == 0b0010.
157157
158158 HWCAP_SVE
159159
@@ -173,8 +173,12 @@ HWCAP_USCAT · 13 unmodified lines
173173
174174 HWCAP_ILRCPC
175175
176− Functionality implied by ID_AA64ISR1_EL1.LRCPC == 0b0002.
176+ Functionality implied by ID_AA64ISAR1_EL1.LRCPC == 0b0010.
177177
178178 HWCAP_FLAGM
179179
180180 Functionality implied by ID_AA64ISAR0_EL1.TS == 0b0001.
181+
182+HWCAP_SSBS
183+
184+ Functionality implied by ID_AA64PFR1_EL1.SSBS == 0b0010.
Documentation/arm64/hugetlbpage.txt+38−0
@@ -0,0 +1,38 @@
1+HugeTLBpage on ARM64
2+====================
3+
4+Hugepage relies on making efficient use of TLBs to improve performance of
5+address translations. The benefit depends on both -
6+
7+ - the size of hugepages
8+ - size of entries supported by the TLBs
9+
10+The ARM64 port supports two flavours of hugepages.
11+
12+1) Block mappings at the pud/pmd level
13+--------------------------------------
14+
15+These are regular hugepages where a pmd or a pud page table entry points to a
16+block of memory. Regardless of the supported size of entries in TLB, block
17+mappings reduce the depth of page table walk needed to translate hugepage
18+addresses.
19+
20+2) Using the Contiguous bit
21+---------------------------
22+
23+The architecture provides a contiguous bit in the translation table entries
24+(D4.5.3, ARM DDI 0487C.a) that hints to the MMU to indicate that it is one of a
25+contiguous set of entries that can be cached in a single TLB entry.
26+
27+The contiguous bit is used in Linux to increase the mapping size at the pmd and
28+pte (last) level. The number of supported contiguous entries varies by page size
29+and level of the page table.
30+
31+
32+The following hugepage sizes are supported -
33+
34+ CONT PTE PMD CONT PMD PUD
35+ -------- --- -------- ---
36+ 4K: 64K 2M 32M 1G
37+ 16K: 2M 32M 1G
38+ 64K: 2M 512M 16G
Documentation/arm64/silicon-errata.txt+1−0
@@ -56,6 +56,7 @@ stable kernels. · 55 unmodified lines
5656 | ARM | Cortex-A72 | #853709 | N/A |
5757 | ARM | Cortex-A73 | #858921 | ARM64_ERRATUM_858921 |
5858 | ARM | Cortex-A55 | #1024718 | ARM64_ERRATUM_1024718 |
59+| ARM | Cortex-A76 | #1188873 | ARM64_ERRATUM_1188873 |
5960 | ARM | MMU-500 | #841119,#826419 | N/A |
6061 | | | | |
6162 | Cavium | ThunderX ITS | #22375, #24313 | CAVIUM_ERRATUM_22375 |
Documentation/block/00-INDEX+0−34
@@ -1,34 +0,0 @@
1−00-INDEX
2− - This file
3−bfq-iosched.txt
4− - BFQ IO scheduler and its tunables
5−biodoc.txt
6− - Notes on the Generic Block Layer Rewrite in Linux 2.5
7−biovecs.txt
8− - Immutable biovecs and biovec iterators
9−capability.txt
10− - Generic Block Device Capability (/sys/block/<device>/capability)
11−cfq-iosched.txt
12− - CFQ IO scheduler tunables
13−cmdline-partition.txt
14− - how to specify block device partitions on kernel command line
15−data-integrity.txt
16− - Block data integrity
17−deadline-iosched.txt
18− - Deadline IO scheduler tunables
19−ioprio.txt
20− - Block io priorities (in CFQ scheduler)
21−pr.txt
22− - Block layer support for Persistent Reservations
23−null_blk.txt
24− - Null block for block-layer benchmarking.
25−queue-sysfs.txt
26− - Queue's sysfs entries
27−request.txt
28− - The members of struct request (in include/linux/blkdev.h)
29−stat.txt
30− - Block layer statistics in /sys/block/<device>/stat
31−switching-sched.txt
32− - Switching I/O schedulers at runtime
33−writeback_cache_control.txt
34− - Control of volatile write back caches
Documentation/blockdev/00-INDEX+0−18
@@ -1,18 +0,0 @@
1−00-INDEX
2− - this file
3−README.DAC960
4− - info on Mylex DAC960/DAC1100 PCI RAID Controller Driver for Linux.
5−cciss.txt
6− - info, major/minor #'s for Compaq's SMART Array Controllers.
7−cpqarray.txt
8− - info on using Compaq's SMART2 Intelligent Disk Array Controllers.
9−floppy.txt
10− - notes and driver options for the floppy disk driver.
11−mflash.txt
12− - info on mGine m(g)flash driver for linux.
13−nbd.txt
14− - info on a TCP implementation of a network block device.
15−paride.txt
16− - information about the parallel port IDE subsystem.
17−ramdisk.txt
18− - short guide on how to set up and use the RAM disk.
Documentation/blockdev/README.DAC960+0−756
@@ -1,756 +0,0 @@
1− Linux Driver for Mylex DAC960/AcceleRAID/eXtremeRAID PCI RAID Controllers
2−
3− Version 2.2.11 for Linux 2.2.19
4− Version 2.4.11 for Linux 2.4.12
5−
6− PRODUCTION RELEASE
7−
8− 11 October 2001
9−
10− Leonard N. Zubkoff
11− Dandelion Digital
12− lnz@dandelion.com
13−
14− Copyright 1998-2001 by Leonard N. Zubkoff <lnz@dandelion.com>
15−
16−
17− INTRODUCTION
18−
19−Mylex, Inc. designs and manufactures a variety of high performance PCI RAID
20−controllers. Mylex Corporation is located at 34551 Ardenwood Blvd., Fremont,
21−California 94555, USA and can be reached at 510.796.6100 or on the World Wide
22−Web at http://www.mylex.com. Mylex Technical Support can be reached by
23−electronic mail at mylexsup@us.ibm.com, by voice at 510.608.2400, or by FAX at
24−510.745.7715. Contact information for offices in Europe and Japan is available
25−on their Web site.
26−
27−The latest information on Linux support for DAC960 PCI RAID Controllers, as
28−well as the most recent release of this driver, will always be available from
29−my Linux Home Page at URL "http://www.dandelion.com/Linux/". The Linux DAC960
30−driver supports all current Mylex PCI RAID controllers including the new
31−eXtremeRAID 2000/3000 and AcceleRAID 352/170/160 models which have an entirely
32−new firmware interface from the older eXtremeRAID 1100, AcceleRAID 150/200/250,
33−and DAC960PJ/PG/PU/PD/PL. See below for a complete controller list as well as
34−minimum firmware version requirements. For simplicity, in most places this
35−documentation refers to DAC960 generically rather than explicitly listing all
36−the supported models.
37−
38−Driver bug reports should be sent via electronic mail to "lnz@dandelion.com".
39−Please include with the bug report the complete configuration messages reported
40−by the driver at startup, along with any subsequent system messages relevant to
41−the controller's operation, and a detailed description of your system's
42−hardware configuration. Driver bugs are actually quite rare; if you encounter
43−problems with disks being marked offline, for example, please contact Mylex
44−Technical Support as the problem is related to the hardware configuration
45−rather than the Linux driver.
46−
47−Please consult the RAID controller documentation for detailed information
48−regarding installation and configuration of the controllers. This document
49−primarily provides information specific to the Linux support.
50−
51−
52− DRIVER FEATURES
53−
54−The DAC960 RAID controllers are supported solely as high performance RAID
55−controllers, not as interfaces to arbitrary SCSI devices. The Linux DAC960
56−driver operates at the block device level, the same level as the SCSI and IDE
57−drivers. Unlike other RAID controllers currently supported on Linux, the
58−DAC960 driver is not dependent on the SCSI subsystem, and hence avoids all the
59−complexity and unnecessary code that would be associated with an implementation
60−as a SCSI driver. The DAC960 driver is designed for as high a performance as
61−possible with no compromises or extra code for compatibility with lower
62−performance devices. The DAC960 driver includes extensive error logging and
63−online configuration management capabilities. Except for initial configuration
64−of the controller and adding new disk drives, most everything can be handled
65−from Linux while the system is operational.
66−
67−The DAC960 driver is architected to support up to 8 controllers per system.
68−Each DAC960 parallel SCSI controller can support up to 15 disk drives per
69−channel, for a maximum of 60 drives on a four channel controller; the fibre
70−channel eXtremeRAID 3000 controller supports up to 125 disk drives per loop for
71−a total of 250 drives. The drives installed on a controller are divided into
72−one or more "Drive Groups", and then each Drive Group is subdivided further
73−into 1 to 32 "Logical Drives". Each Logical Drive has a specific RAID Level
74−and caching policy associated with it, and it appears to Linux as a single
75−block device. Logical Drives are further subdivided into up to 7 partitions
76−through the normal Linux and PC disk partitioning schemes. Logical Drives are
77−also known as "System Drives", and Drive Groups are also called "Packs". Both
78−terms are in use in the Mylex documentation; I have chosen to standardize on
79−the more generic "Logical Drive" and "Drive Group".
80−
81−DAC960 RAID disk devices are named in the style of the obsolete Device File
82−System (DEVFS). The device corresponding to Logical Drive D on Controller C
83−is referred to as /dev/rd/cCdD, and the partitions are called /dev/rd/cCdDp1
84−through /dev/rd/cCdDp7. For example, partition 3 of Logical Drive 5 on
85−Controller 2 is referred to as /dev/rd/c2d5p3. Note that unlike with SCSI
86−disks the device names will not change in the event of a disk drive failure.
87−The DAC960 driver is assigned major numbers 48 - 55 with one major number per
88−controller. The 8 bits of minor number are divided into 5 bits for the Logical
89−Drive and 3 bits for the partition.
90−
91−
92− SUPPORTED DAC960/AcceleRAID/eXtremeRAID PCI RAID CONTROLLERS
93−
94−The following list comprises the supported DAC960, AcceleRAID, and eXtremeRAID
95−PCI RAID Controllers as of the date of this document. It is recommended that
96−anyone purchasing a Mylex PCI RAID Controller not in the following table
97−contact the author beforehand to verify that it is or will be supported.
98−
99−eXtremeRAID 3000
100− 1 Wide Ultra-2/LVD SCSI channel
101− 2 External Fibre FC-AL channels
102− 233MHz StrongARM SA 110 Processor
103− 64 Bit 33MHz PCI (backward compatible with 32 Bit PCI slots)
104− 32MB/64MB ECC SDRAM Memory
105−
106−eXtremeRAID 2000
107− 4 Wide Ultra-160 LVD SCSI channels
108− 233MHz StrongARM SA 110 Processor
109− 64 Bit 33MHz PCI (backward compatible with 32 Bit PCI slots)
110− 32MB/64MB ECC SDRAM Memory
111−
112−AcceleRAID 352
113− 2 Wide Ultra-160 LVD SCSI channels
114− 100MHz Intel i960RN RISC Processor
115− 64 Bit 33MHz PCI (backward compatible with 32 Bit PCI slots)
116− 32MB/64MB ECC SDRAM Memory
117−
118−AcceleRAID 170
119− 1 Wide Ultra-160 LVD SCSI channel
120− 100MHz Intel i960RM RISC Processor
121− 16MB/32MB/64MB ECC SDRAM Memory
122−
123−AcceleRAID 160 (AcceleRAID 170LP)
124− 1 Wide Ultra-160 LVD SCSI channel
125− 100MHz Intel i960RS RISC Processor
126− Built in 16M ECC SDRAM Memory
127− PCI Low Profile Form Factor - fit for 2U height
128−
129−eXtremeRAID 1100 (DAC1164P)
130− 3 Wide Ultra-2/LVD SCSI channels
131− 233MHz StrongARM SA 110 Processor
132− 64 Bit 33MHz PCI (backward compatible with 32 Bit PCI slots)
133− 16MB/32MB/64MB Parity SDRAM Memory with Battery Backup
134−
135−AcceleRAID 250 (DAC960PTL1)
136− Uses onboard Symbios SCSI chips on certain motherboards
137− Also includes one onboard Wide Ultra-2/LVD SCSI Channel
138− 66MHz Intel i960RD RISC Processor
139− 4MB/8MB/16MB/32MB/64MB/128MB ECC EDO Memory
140−
141−AcceleRAID 200 (DAC960PTL0)
142− Uses onboard Symbios SCSI chips on certain motherboards
143− Includes no onboard SCSI Channels
144− 66MHz Intel i960RD RISC Processor
145− 4MB/8MB/16MB/32MB/64MB/128MB ECC EDO Memory
146−
147−AcceleRAID 150 (DAC960PRL)
148− Uses onboard Symbios SCSI chips on certain motherboards
149− Also includes one onboard Wide Ultra-2/LVD SCSI Channel
150− 33MHz Intel i960RP RISC Processor
151− 4MB Parity EDO Memory
152−
153−DAC960PJ 1/2/3 Wide Ultra SCSI-3 Channels
154− 66MHz Intel i960RD RISC Processor
155− 4MB/8MB/16MB/32MB/64MB/128MB ECC EDO Memory
156−
157−DAC960PG 1/2/3 Wide Ultra SCSI-3 Channels
158− 33MHz Intel i960RP RISC Processor
159− 4MB/8MB ECC EDO Memory
160−
161−DAC960PU 1/2/3 Wide Ultra SCSI-3 Channels
162− Intel i960CF RISC Processor
163− 4MB/8MB EDRAM or 2MB/4MB/8MB/16MB/32MB DRAM Memory
164−
165−DAC960PD 1/2/3 Wide Fast SCSI-2 Channels
166− Intel i960CF RISC Processor
167− 4MB/8MB EDRAM or 2MB/4MB/8MB/16MB/32MB DRAM Memory
168−
169−DAC960PL 1/2/3 Wide Fast SCSI-2 Channels
170− Intel i960 RISC Processor
171− 2MB/4MB/8MB/16MB/32MB DRAM Memory
172−
173−DAC960P 1/2/3 Wide Fast SCSI-2 Channels
174− Intel i960 RISC Processor
175− 2MB/4MB/8MB/16MB/32MB DRAM Memory
176−
177−For the eXtremeRAID 2000/3000 and AcceleRAID 352/170/160, firmware version
178−6.00-01 or above is required.
179−
180−For the eXtremeRAID 1100, firmware version 5.06-0-52 or above is required.
181−
182−For the AcceleRAID 250, 200, and 150, firmware version 4.06-0-57 or above is
183−required.
184−
185−For the DAC960PJ and DAC960PG, firmware version 4.06-0-00 or above is required.
186−
187−For the DAC960PU, DAC960PD, DAC960PL, and DAC960P, either firmware version
188−3.51-0-04 or above is required (for dual Flash ROM controllers), or firmware
189−version 2.73-0-00 or above is required (for single Flash ROM controllers)
190−
191−Please note that not all SCSI disk drives are suitable for use with DAC960
192−controllers, and only particular firmware versions of any given model may
193−actually function correctly. Similarly, not all motherboards have a BIOS that
194−properly initializes the AcceleRAID 250, AcceleRAID 200, AcceleRAID 150,
195−DAC960PJ, and DAC960PG because the Intel i960RD/RP is a multi-function device.
196−If in doubt, contact Mylex RAID Technical Support (mylexsup@us.ibm.com) to
197−verify compatibility. Mylex makes available a hard disk compatibility list at
198−http://www.mylex.com/support/hdcomp/hd-lists.html.
199−
200−
201− DRIVER INSTALLATION
202−
203−This distribution was prepared for Linux kernel version 2.2.19 or 2.4.12.
204−
205−To install the DAC960 RAID driver, you may use the following commands,
206−replacing "/usr/src" with wherever you keep your Linux kernel source tree:
207−
208− cd /usr/src
209− tar -xvzf DAC960-2.2.11.tar.gz (or DAC960-2.4.11.tar.gz)
210− mv README.DAC960 linux/Documentation
211− mv DAC960.[ch] linux/drivers/block
212− patch -p0 < DAC960.patch (if DAC960.patch is included)
213− cd linux
214− make config
215− make bzImage (or zImage)
216−
217−Then install "arch/x86/boot/bzImage" or "arch/x86/boot/zImage" as your
218−standard kernel, run lilo if appropriate, and reboot.
219−
220−To create the necessary devices in /dev, the "make_rd" script included in
221−"DAC960-Utilities.tar.gz" from http://www.dandelion.com/Linux/ may be used.
222−LILO 21 and FDISK v2.9 include DAC960 support; also included in this archive
223−are patches to LILO 20 and FDISK v2.8 that add DAC960 support, along with
224−statically linked executables of LILO and FDISK. This modified version of LILO
225−will allow booting from a DAC960 controller and/or mounting the root file
226−system from a DAC960.
227−
228−Red Hat Linux 6.0 and SuSE Linux 6.1 include support for Mylex PCI RAID
229−controllers. Installing directly onto a DAC960 may be problematic from other
230−Linux distributions until their installation utilities are updated.
231−
232−
233− INSTALLATION NOTES
234−
235−Before installing Linux or adding DAC960 logical drives to an existing Linux
236−system, the controller must first be configured to provide one or more logical
237−drives using the BIOS Configuration Utility or DACCF. Please note that since
238−there are only at most 6 usable partitions on each logical drive, systems
239−requiring more partitions should subdivide a drive group into multiple logical
240−drives, each of which can have up to 6 usable partitions. Also, note that with
241−large disk arrays it is advisable to enable the 8GB BIOS Geometry (255/63)
242−rather than accepting the default 2GB BIOS Geometry (128/32); failing to so do
243−will cause the logical drive geometry to have more than 65535 cylinders which
244−will make it impossible for FDISK to be used properly. The 8GB BIOS Geometry
245−can be enabled by configuring the DAC960 BIOS, which is accessible via Alt-M
246−during the BIOS initialization sequence.
247−
248−For maximum performance and the most efficient E2FSCK performance, it is
249−recommended that EXT2 file systems be built with a 4KB block size and 16 block
250−stride to match the DAC960 controller's 64KB default stripe size. The command
251−"mke2fs -b 4096 -R stride=16 <device>" is appropriate. Unless there will be a
252−large number of small files on the file systems, it is also beneficial to add
253−the "-i 16384" option to increase the bytes per inode parameter thereby
254−reducing the file system metadata. Finally, on systems that will only be run
255−with Linux 2.2 or later kernels it is beneficial to enable sparse superblocks
256−with the "-s 1" option.
257−
258−
259− DAC960 ANNOUNCEMENTS MAILING LIST
260−
261−The DAC960 Announcements Mailing List provides a forum for informing Linux
262−users of new driver releases and other announcements regarding Linux support
263−for DAC960 PCI RAID Controllers. To join the mailing list, send a message to
264−"dac960-announce-request@dandelion.com" with the line "subscribe" in the
265−message body.
266−
267−
268− CONTROLLER CONFIGURATION AND STATUS MONITORING
269−
270−The DAC960 RAID controllers running firmware 4.06 or above include a Background
271−Initialization facility so that system downtime is minimized both for initial
272−installation and subsequent configuration of additional storage. The BIOS
273−Configuration Utility (accessible via Alt-R during the BIOS initialization
274−sequence) is used to quickly configure the controller, and then the logical
275−drives that have been created are available for immediate use even while they
276−are still being initialized by the controller. The primary need for online
277−configuration and status monitoring is then to avoid system downtime when disk
278−drives fail and must be replaced. Mylex's online monitoring and configuration
279−utilities are being ported to Linux and will become available at some point in
280−the future. Note that with a SAF-TE (SCSI Accessed Fault-Tolerant Enclosure)
281−enclosure, the controller is able to rebuild failed drives automatically as
282−soon as a drive replacement is made available.
283−
284−The primary interfaces for controller configuration and status monitoring are
285−special files created in the /proc/rd/... hierarchy along with the normal
286−system console logging mechanism. Whenever the system is operating, the DAC960
287−driver queries each controller for status information every 10 seconds, and
288−checks for additional conditions every 60 seconds. The initial status of each
289−controller is always available for controller N in /proc/rd/cN/initial_status,
290−and the current status as of the last status monitoring query is available in
291−/proc/rd/cN/current_status. In addition, status changes are also logged by the
292−driver to the system console and will appear in the log files maintained by
293−syslog. The progress of asynchronous rebuild or consistency check operations
294−is also available in /proc/rd/cN/current_status, and progress messages are
295−logged to the system console at most every 60 seconds.
296−
297−Starting with the 2.2.3/2.0.3 versions of the driver, the status information
298−available in /proc/rd/cN/initial_status and /proc/rd/cN/current_status has been
299−augmented to include the vendor, model, revision, and serial number (if
300−available) for each physical device found connected to the controller:
301−
302−***** DAC960 RAID Driver Version 2.2.3 of 19 August 1999 *****
303−Copyright 1998-1999 by Leonard N. Zubkoff <lnz@dandelion.com>
304−Configuring Mylex DAC960PRL PCI RAID Controller
305− Firmware Version: 4.07-0-07, Channels: 1, Memory Size: 16MB
306− PCI Bus: 1, Device: 4, Function: 1, I/O Address: Unassigned
307− PCI Address: 0xFE300000 mapped at 0xA0800000, IRQ Channel: 21
308− Controller Queue Depth: 128, Maximum Blocks per Command: 128
309− Driver Queue Depth: 127, Maximum Scatter/Gather Segments: 33
310− Stripe Size: 64KB, Segment Size: 8KB, BIOS Geometry: 255/63
311− SAF-TE Enclosure Management Enabled
312− Physical Devices:
313− 0:0 Vendor: IBM Model: DRVS09D Revision: 0270
314− Serial Number: 68016775HA
315− Disk Status: Online, 17928192 blocks
316− 0:1 Vendor: IBM Model: DRVS09D Revision: 0270
317− Serial Number: 68004E53HA
318− Disk Status: Online, 17928192 blocks
319− 0:2 Vendor: IBM Model: DRVS09D Revision: 0270
320− Serial Number: 13013935HA
321− Disk Status: Online, 17928192 blocks
322− 0:3 Vendor: IBM Model: DRVS09D Revision: 0270
323− Serial Number: 13016897HA
324− Disk Status: Online, 17928192 blocks
325− 0:4 Vendor: IBM Model: DRVS09D Revision: 0270
326− Serial Number: 68019905HA
327− Disk Status: Online, 17928192 blocks
328− 0:5 Vendor: IBM Model: DRVS09D Revision: 0270
329− Serial Number: 68012753HA
330− Disk Status: Online, 17928192 blocks
331− 0:6 Vendor: ESG-SHV Model: SCA HSBP M6 Revision: 0.61
332− Logical Drives:
333− /dev/rd/c0d0: RAID-5, Online, 89640960 blocks, Write Thru
334− No Rebuild or Consistency Check in Progress
335−
336−To simplify the monitoring process for custom software, the special file
337−/proc/rd/status returns "OK" when all DAC960 controllers in the system are
338−operating normally and no failures have occurred, or "ALERT" if any logical
339−drives are offline or critical or any non-standby physical drives are dead.
340−
341−Configuration commands for controller N are available via the special file
342−/proc/rd/cN/user_command. A human readable command can be written to this
343−special file to initiate a configuration operation, and the results of the
344−operation can then be read back from the special file in addition to being
345−logged to the system console. The shell command sequence
346−
347− echo "<configuration-command>" > /proc/rd/c0/user_command
348− cat /proc/rd/c0/user_command
349−
350−is typically used to execute configuration commands. The configuration
351−commands are:
352−
353− flush-cache
354−
355− The "flush-cache" command flushes the controller's cache. The system
356− automatically flushes the cache at shutdown or if the driver module is
357− unloaded, so this command is only needed to be certain a write back cache
358− is flushed to disk before the system is powered off by a command to a UPS.
359− Note that the flush-cache command also stops an asynchronous rebuild or
360− consistency check, so it should not be used except when the system is being
361− halted.
362−
363− kill <channel>:<target-id>
364−
365− The "kill" command marks the physical drive <channel>:<target-id> as DEAD.
366− This command is provided primarily for testing, and should not be used
367− during normal system operation.
368−
369− make-online <channel>:<target-id>
370−
371− The "make-online" command changes the physical drive <channel>:<target-id>
372− from status DEAD to status ONLINE. In cases where multiple physical drives
373− have been killed simultaneously, this command may be used to bring all but
374− one of them back online, after which a rebuild to the final drive is
375− necessary.
376−
377− Warning: make-online should only be used on a dead physical drive that is
378− an active part of a drive group, never on a standby drive. The command
379− should never be used on a dead drive that is part of a critical logical
380− drive; rebuild should be used if only a single drive is dead.
381−
382− make-standby <channel>:<target-id>
383−
384− The "make-standby" command changes physical drive <channel>:<target-id>
385− from status DEAD to status STANDBY. It should only be used in cases where
386− a dead drive was replaced after an automatic rebuild was performed onto a
387− standby drive. It cannot be used to add a standby drive to the controller
388− configuration if one was not created initially; the BIOS Configuration
389− Utility must be used for that currently.
390−
391− rebuild <channel>:<target-id>
392−
393− The "rebuild" command initiates an asynchronous rebuild onto physical drive
394− <channel>:<target-id>. It should only be used when a dead drive has been
395− replaced.
396−
397− check-consistency <logical-drive-number>
398−
399− The "check-consistency" command initiates an asynchronous consistency check
400− of <logical-drive-number> with automatic restoration. It can be used
401− whenever it is desired to verify the consistency of the redundancy
402− information.
403−
404− cancel-rebuild
405− cancel-consistency-check
406−
407− The "cancel-rebuild" and "cancel-consistency-check" commands cancel any
408− rebuild or consistency check operations previously initiated.
409−
410−
411− EXAMPLE I - DRIVE FAILURE WITHOUT A STANDBY DRIVE
412−
413−The following annotated logs demonstrate the controller configuration and and
414−online status monitoring capabilities of the Linux DAC960 Driver. The test
415−configuration comprises 6 1GB Quantum Atlas I disk drives on two channels of a
416−DAC960PJ controller. The physical drives are configured into a single drive
417−group without a standby drive, and the drive group has been configured into two
418−logical drives, one RAID-5 and one RAID-6. Note that these logs are from an
419−earlier version of the driver and the messages have changed somewhat with newer
420−releases, but the functionality remains similar. First, here is the current
421−status of the RAID configuration:
422−
423−gwynedd:/u/lnz# cat /proc/rd/c0/current_status
424−***** DAC960 RAID Driver Version 2.0.0 of 23 March 1999 *****
425−Copyright 1998-1999 by Leonard N. Zubkoff <lnz@dandelion.com>
426−Configuring Mylex DAC960PJ PCI RAID Controller
427− Firmware Version: 4.06-0-08, Channels: 3, Memory Size: 8MB
428− PCI Bus: 0, Device: 19, Function: 1, I/O Address: Unassigned
429− PCI Address: 0xFD4FC000 mapped at 0x8807000, IRQ Channel: 9
430− Controller Queue Depth: 128, Maximum Blocks per Command: 128
431− Driver Queue Depth: 127, Maximum Scatter/Gather Segments: 33
432− Stripe Size: 64KB, Segment Size: 8KB, BIOS Geometry: 255/63
433− Physical Devices:
434− 0:1 - Disk: Online, 2201600 blocks
435− 0:2 - Disk: Online, 2201600 blocks
436− 0:3 - Disk: Online, 2201600 blocks
437− 1:1 - Disk: Online, 2201600 blocks
438− 1:2 - Disk: Online, 2201600 blocks
439− 1:3 - Disk: Online, 2201600 blocks
440− Logical Drives:
441− /dev/rd/c0d0: RAID-5, Online, 5498880 blocks, Write Thru
442− /dev/rd/c0d1: RAID-6, Online, 3305472 blocks, Write Thru
443− No Rebuild or Consistency Check in Progress
444−
445−gwynedd:/u/lnz# cat /proc/rd/status
446−OK
447−
448−The above messages indicate that everything is healthy, and /proc/rd/status
449−returns "OK" indicating that there are no problems with any DAC960 controller
450−in the system. For demonstration purposes, while I/O is active Physical Drive
451−1:1 is now disconnected, simulating a drive failure. The failure is noted by
452−the driver within 10 seconds of the controller's having detected it, and the
453−driver logs the following console status messages indicating that Logical
454−Drives 0 and 1 are now CRITICAL as a result of Physical Drive 1:1 being DEAD:
455−
456−DAC960#0: Physical Drive 1:2 Error Log: Sense Key = 6, ASC = 29, ASCQ = 02
457−DAC960#0: Physical Drive 1:3 Error Log: Sense Key = 6, ASC = 29, ASCQ = 02
458−DAC960#0: Physical Drive 1:1 killed because of timeout on SCSI command
459−DAC960#0: Physical Drive 1:1 is now DEAD
460−DAC960#0: Logical Drive 0 (/dev/rd/c0d0) is now CRITICAL
461−DAC960#0: Logical Drive 1 (/dev/rd/c0d1) is now CRITICAL
462−
463−The Sense Keys logged here are just Check Condition / Unit Attention conditions
464−arising from a SCSI bus reset that is forced by the controller during its error
465−recovery procedures. Concurrently with the above, the driver status available
466−from /proc/rd also reflects the drive failure. The status message in
467−/proc/rd/status has changed from "OK" to "ALERT":
468−
469−gwynedd:/u/lnz# cat /proc/rd/status
470−ALERT
471−
472−and /proc/rd/c0/current_status has been updated:
473−
474−gwynedd:/u/lnz# cat /proc/rd/c0/current_status
475− ...
476− Physical Devices:
477− 0:1 - Disk: Online, 2201600 blocks
478− 0:2 - Disk: Online, 2201600 blocks
479− 0:3 - Disk: Online, 2201600 blocks
480− 1:1 - Disk: Dead, 2201600 blocks
481− 1:2 - Disk: Online, 2201600 blocks
482− 1:3 - Disk: Online, 2201600 blocks
483− Logical Drives:
484− /dev/rd/c0d0: RAID-5, Critical, 5498880 blocks, Write Thru
485− /dev/rd/c0d1: RAID-6, Critical, 3305472 blocks, Write Thru
486− No Rebuild or Consistency Check in Progress
487−
488−Since there are no standby drives configured, the system can continue to access
489−the logical drives in a performance degraded mode until the failed drive is
490−replaced and a rebuild operation completed to restore the redundancy of the
491−logical drives. Once Physical Drive 1:1 is replaced with a properly
492−functioning drive, or if the physical drive was killed without having failed
493−(e.g., due to electrical problems on the SCSI bus), the user can instruct the
494−controller to initiate a rebuild operation onto the newly replaced drive:
495−
496−gwynedd:/u/lnz# echo "rebuild 1:1" > /proc/rd/c0/user_command
497−gwynedd:/u/lnz# cat /proc/rd/c0/user_command
498−Rebuild of Physical Drive 1:1 Initiated
499−
500−The echo command instructs the controller to initiate an asynchronous rebuild
501−operation onto Physical Drive 1:1, and the status message that results from the
502−operation is then available for reading from /proc/rd/c0/user_command, as well
503−as being logged to the console by the driver.
504−
505−Within 10 seconds of this command the driver logs the initiation of the
506−asynchronous rebuild operation:
507−
508−DAC960#0: Rebuild of Physical Drive 1:1 Initiated
509−DAC960#0: Physical Drive 1:1 Error Log: Sense Key = 6, ASC = 29, ASCQ = 01
510−DAC960#0: Physical Drive 1:1 is now WRITE-ONLY
511−DAC960#0: Rebuild in Progress: Logical Drive 0 (/dev/rd/c0d0) 1% completed
512−
513−and /proc/rd/c0/current_status is updated:
514−
515−gwynedd:/u/lnz# cat /proc/rd/c0/current_status
516− ...
517− Physical Devices:
518− 0:1 - Disk: Online, 2201600 blocks
519− 0:2 - Disk: Online, 2201600 blocks
520− 0:3 - Disk: Online, 2201600 blocks
521− 1:1 - Disk: Write-Only, 2201600 blocks
522− 1:2 - Disk: Online, 2201600 blocks
523− 1:3 - Disk: Online, 2201600 blocks
524− Logical Drives:
525− /dev/rd/c0d0: RAID-5, Critical, 5498880 blocks, Write Thru
526− /dev/rd/c0d1: RAID-6, Critical, 3305472 blocks, Write Thru
527− Rebuild in Progress: Logical Drive 0 (/dev/rd/c0d0) 6% completed
528−
529−As the rebuild progresses, the current status in /proc/rd/c0/current_status is
530−updated every 10 seconds:
531−
532−gwynedd:/u/lnz# cat /proc/rd/c0/current_status
533− ...
534− Physical Devices:
535− 0:1 - Disk: Online, 2201600 blocks
536− 0:2 - Disk: Online, 2201600 blocks
537− 0:3 - Disk: Online, 2201600 blocks
538− 1:1 - Disk: Write-Only, 2201600 blocks
539− 1:2 - Disk: Online, 2201600 blocks
540− 1:3 - Disk: Online, 2201600 blocks
541− Logical Drives:
542− /dev/rd/c0d0: RAID-5, Critical, 5498880 blocks, Write Thru
543− /dev/rd/c0d1: RAID-6, Critical, 3305472 blocks, Write Thru
544− Rebuild in Progress: Logical Drive 0 (/dev/rd/c0d0) 15% completed
545−
546−and every minute a progress message is logged to the console by the driver:
547−
548−DAC960#0: Rebuild in Progress: Logical Drive 0 (/dev/rd/c0d0) 32% completed
549−DAC960#0: Rebuild in Progress: Logical Drive 0 (/dev/rd/c0d0) 63% completed
550−DAC960#0: Rebuild in Progress: Logical Drive 0 (/dev/rd/c0d0) 94% completed
551−DAC960#0: Rebuild in Progress: Logical Drive 1 (/dev/rd/c0d1) 94% completed
552−
553−Finally, the rebuild completes successfully. The driver logs the status of the
554−logical and physical drives and the rebuild completion:
555−
556−DAC960#0: Rebuild Completed Successfully
557−DAC960#0: Physical Drive 1:1 is now ONLINE
558−DAC960#0: Logical Drive 0 (/dev/rd/c0d0) is now ONLINE
559−DAC960#0: Logical Drive 1 (/dev/rd/c0d1) is now ONLINE
560−
561−/proc/rd/c0/current_status is updated:
562−
563−gwynedd:/u/lnz# cat /proc/rd/c0/current_status
564− ...
565− Physical Devices:
566− 0:1 - Disk: Online, 2201600 blocks
567− 0:2 - Disk: Online, 2201600 blocks
568− 0:3 - Disk: Online, 2201600 blocks
569− 1:1 - Disk: Online, 2201600 blocks
570− 1:2 - Disk: Online, 2201600 blocks
571− 1:3 - Disk: Online, 2201600 blocks
572− Logical Drives:
573− /dev/rd/c0d0: RAID-5, Online, 5498880 blocks, Write Thru
574− /dev/rd/c0d1: RAID-6, Online, 3305472 blocks, Write Thru
575− Rebuild Completed Successfully
576−
577−and /proc/rd/status indicates that everything is healthy once again:
578−
579−gwynedd:/u/lnz# cat /proc/rd/status
580−OK
581−
582−
583− EXAMPLE II - DRIVE FAILURE WITH A STANDBY DRIVE
584−
585−The following annotated logs demonstrate the controller configuration and and
586−online status monitoring capabilities of the Linux DAC960 Driver. The test
587−configuration comprises 6 1GB Quantum Atlas I disk drives on two channels of a
588−DAC960PJ controller. The physical drives are configured into a single drive
589−group with a standby drive, and the drive group has been configured into two
590−logical drives, one RAID-5 and one RAID-6. Note that these logs are from an
591−earlier version of the driver and the messages have changed somewhat with newer
592−releases, but the functionality remains similar. First, here is the current
593−status of the RAID configuration:
594−
595−gwynedd:/u/lnz# cat /proc/rd/c0/current_status
596−***** DAC960 RAID Driver Version 2.0.0 of 23 March 1999 *****
597−Copyright 1998-1999 by Leonard N. Zubkoff <lnz@dandelion.com>
598−Configuring Mylex DAC960PJ PCI RAID Controller
599− Firmware Version: 4.06-0-08, Channels: 3, Memory Size: 8MB
600− PCI Bus: 0, Device: 19, Function: 1, I/O Address: Unassigned
601− PCI Address: 0xFD4FC000 mapped at 0x8807000, IRQ Channel: 9
602− Controller Queue Depth: 128, Maximum Blocks per Command: 128
603− Driver Queue Depth: 127, Maximum Scatter/Gather Segments: 33
604− Stripe Size: 64KB, Segment Size: 8KB, BIOS Geometry: 255/63
605− Physical Devices:
606− 0:1 - Disk: Online, 2201600 blocks
607− 0:2 - Disk: Online, 2201600 blocks
608− 0:3 - Disk: Online, 2201600 blocks
609− 1:1 - Disk: Online, 2201600 blocks
610− 1:2 - Disk: Online, 2201600 blocks
611− 1:3 - Disk: Standby, 2201600 blocks
612− Logical Drives:
613− /dev/rd/c0d0: RAID-5, Online, 4399104 blocks, Write Thru
614− /dev/rd/c0d1: RAID-6, Online, 2754560 blocks, Write Thru
615− No Rebuild or Consistency Check in Progress
616−
617−gwynedd:/u/lnz# cat /proc/rd/status
618−OK
619−
620−The above messages indicate that everything is healthy, and /proc/rd/status
621−returns "OK" indicating that there are no problems with any DAC960 controller
622−in the system. For demonstration purposes, while I/O is active Physical Drive
623−1:2 is now disconnected, simulating a drive failure. The failure is noted by
624−the driver within 10 seconds of the controller's having detected it, and the
625−driver logs the following console status messages:
626−
627−DAC960#0: Physical Drive 1:1 Error Log: Sense Key = 6, ASC = 29, ASCQ = 02
628−DAC960#0: Physical Drive 1:3 Error Log: Sense Key = 6, ASC = 29, ASCQ = 02
629−DAC960#0: Physical Drive 1:2 killed because of timeout on SCSI command
630−DAC960#0: Physical Drive 1:2 is now DEAD
631−DAC960#0: Physical Drive 1:2 killed because it was removed
632−DAC960#0: Logical Drive 0 (/dev/rd/c0d0) is now CRITICAL
633−DAC960#0: Logical Drive 1 (/dev/rd/c0d1) is now CRITICAL
634−
635−Since a standby drive is configured, the controller automatically begins
636−rebuilding onto the standby drive:
637−
638−DAC960#0: Physical Drive 1:3 is now WRITE-ONLY
639−DAC960#0: Rebuild in Progress: Logical Drive 0 (/dev/rd/c0d0) 4% completed
640−
641−Concurrently with the above, the driver status available from /proc/rd also
642−reflects the drive failure and automatic rebuild. The status message in
643−/proc/rd/status has changed from "OK" to "ALERT":
644−
645−gwynedd:/u/lnz# cat /proc/rd/status
646−ALERT
647−
648−and /proc/rd/c0/current_status has been updated:
649−
650−gwynedd:/u/lnz# cat /proc/rd/c0/current_status
651− ...
652− Physical Devices:
653− 0:1 - Disk: Online, 2201600 blocks
654− 0:2 - Disk: Online, 2201600 blocks
655− 0:3 - Disk: Online, 2201600 blocks
656− 1:1 - Disk: Online, 2201600 blocks
657− 1:2 - Disk: Dead, 2201600 blocks
658− 1:3 - Disk: Write-Only, 2201600 blocks
659− Logical Drives:
660− /dev/rd/c0d0: RAID-5, Critical, 4399104 blocks, Write Thru
661− /dev/rd/c0d1: RAID-6, Critical, 2754560 blocks, Write Thru
662− Rebuild in Progress: Logical Drive 0 (/dev/rd/c0d0) 4% completed
663−
664−As the rebuild progresses, the current status in /proc/rd/c0/current_status is
665−updated every 10 seconds:
666−
667−gwynedd:/u/lnz# cat /proc/rd/c0/current_status
668− ...
669− Physical Devices:
670− 0:1 - Disk: Online, 2201600 blocks
671− 0:2 - Disk: Online, 2201600 blocks
672− 0:3 - Disk: Online, 2201600 blocks
673− 1:1 - Disk: Online, 2201600 blocks
674− 1:2 - Disk: Dead, 2201600 blocks
675− 1:3 - Disk: Write-Only, 2201600 blocks
676− Logical Drives:
677− /dev/rd/c0d0: RAID-5, Critical, 4399104 blocks, Write Thru
678− /dev/rd/c0d1: RAID-6, Critical, 2754560 blocks, Write Thru
679− Rebuild in Progress: Logical Drive 0 (/dev/rd/c0d0) 40% completed
680−
681−and every minute a progress message is logged on the console by the driver:
682−
683−DAC960#0: Rebuild in Progress: Logical Drive 0 (/dev/rd/c0d0) 40% completed
684−DAC960#0: Rebuild in Progress: Logical Drive 0 (/dev/rd/c0d0) 76% completed
685−DAC960#0: Rebuild in Progress: Logical Drive 1 (/dev/rd/c0d1) 66% completed
686−DAC960#0: Rebuild in Progress: Logical Drive 1 (/dev/rd/c0d1) 84% completed
687−
688−Finally, the rebuild completes successfully. The driver logs the status of the
689−logical and physical drives and the rebuild completion:
690−
691−DAC960#0: Rebuild Completed Successfully
692−DAC960#0: Physical Drive 1:3 is now ONLINE
693−DAC960#0: Logical Drive 0 (/dev/rd/c0d0) is now ONLINE
694−DAC960#0: Logical Drive 1 (/dev/rd/c0d1) is now ONLINE
695−
696−/proc/rd/c0/current_status is updated:
697−
698−***** DAC960 RAID Driver Version 2.0.0 of 23 March 1999 *****
699−Copyright 1998-1999 by Leonard N. Zubkoff <lnz@dandelion.com>
700−Configuring Mylex DAC960PJ PCI RAID Controller
701− Firmware Version: 4.06-0-08, Channels: 3, Memory Size: 8MB
702− PCI Bus: 0, Device: 19, Function: 1, I/O Address: Unassigned
703− PCI Address: 0xFD4FC000 mapped at 0x8807000, IRQ Channel: 9
704− Controller Queue Depth: 128, Maximum Blocks per Command: 128
705− Driver Queue Depth: 127, Maximum Scatter/Gather Segments: 33
706− Stripe Size: 64KB, Segment Size: 8KB, BIOS Geometry: 255/63
707− Physical Devices:
708− 0:1 - Disk: Online, 2201600 blocks
709− 0:2 - Disk: Online, 2201600 blocks
710− 0:3 - Disk: Online, 2201600 blocks
711− 1:1 - Disk: Online, 2201600 blocks
712− 1:2 - Disk: Dead, 2201600 blocks
713− 1:3 - Disk: Online, 2201600 blocks
714− Logical Drives:
715− /dev/rd/c0d0: RAID-5, Online, 4399104 blocks, Write Thru
716− /dev/rd/c0d1: RAID-6, Online, 2754560 blocks, Write Thru
717− Rebuild Completed Successfully
718−
719−and /proc/rd/status indicates that everything is healthy once again:
720−
721−gwynedd:/u/lnz# cat /proc/rd/status
722−OK
723−
724−Note that the absence of a viable standby drive does not create an "ALERT"
725−status. Once dead Physical Drive 1:2 has been replaced, the controller must be
726−told that this has occurred and that the newly replaced drive should become the
727−new standby drive:
728−
729−gwynedd:/u/lnz# echo "make-standby 1:2" > /proc/rd/c0/user_command
730−gwynedd:/u/lnz# cat /proc/rd/c0/user_command
731−Make Standby of Physical Drive 1:2 Succeeded
732−
733−The echo command instructs the controller to make Physical Drive 1:2 into a
734−standby drive, and the status message that results from the operation is then
735−available for reading from /proc/rd/c0/user_command, as well as being logged to
736−the console by the driver. Within 60 seconds of this command the driver logs:
737−
738−DAC960#0: Physical Drive 1:2 Error Log: Sense Key = 6, ASC = 29, ASCQ = 01
739−DAC960#0: Physical Drive 1:2 is now STANDBY
740−DAC960#0: Make Standby of Physical Drive 1:2 Succeeded
741−
742−and /proc/rd/c0/current_status is updated:
743−
744−gwynedd:/u/lnz# cat /proc/rd/c0/current_status
745− ...
746− Physical Devices:
747− 0:1 - Disk: Online, 2201600 blocks
748− 0:2 - Disk: Online, 2201600 blocks
749− 0:3 - Disk: Online, 2201600 blocks
750− 1:1 - Disk: Online, 2201600 blocks
751− 1:2 - Disk: Standby, 2201600 blocks
752− 1:3 - Disk: Online, 2201600 blocks
753− Logical Drives:
754− /dev/rd/c0d0: RAID-5, Online, 4399104 blocks, Write Thru
755− /dev/rd/c0d1: RAID-6, Online, 2754560 blocks, Write Thru
756− Rebuild Completed Successfully
Documentation/blockdev/zram.txt+1−1
@@ -190,7 +190,7 @@ whitespace: · 189 unmodified lines
190190 notify_free Depending on device usage scenario it may account
191191 a) the number of pages freed because of swap slot free
192192 notifications or b) the number of pages freed because of
193− REQ_DISCARD requests sent by bio. The former ones are
193+ REQ_OP_DISCARD requests sent by bio. The former ones are
194194 sent to a swap block device when a swap slot is freed,
195195 which implies that this disk is being used as a swap disk.
196196 The latter ones are sent by filesystem mounted with
Documentation/cdrom/00-INDEX+0−11
@@ -1,11 +0,0 @@
1−00-INDEX
2− - this file (info on CD-ROMs and Linux)
3−Makefile
4− - only used to generate TeX output from the documentation.
5−cdrom-standard.tex
6− - LaTeX document on standardizing the CD-ROM programming interface.
7−ide-cd
8− - info on setting up and using ATAPI (aka IDE) CD-ROMs.
9−packet-writing.txt
10− - Info on the CDRW packet writing module
11−
Documentation/cgroup-v1/00-INDEX+0−26
@@ -1,26 +0,0 @@
1−00-INDEX
2− - this file
3−blkio-controller.txt
4− - Description for Block IO Controller, implementation and usage details.
5−cgroups.txt
6− - Control Groups definition, implementation details, examples and API.
7−cpuacct.txt
8− - CPU Accounting Controller; account CPU usage for groups of tasks.
9−cpusets.txt
10− - documents the cpusets feature; assign CPUs and Mem to a set of tasks.
11−admin-guide/devices.rst
12− - Device Whitelist Controller; description, interface and security.
13−freezer-subsystem.txt
14− - checkpointing; rationale to not use signals, interface.
15−hugetlb.txt
16− - HugeTLB Controller implementation and usage details.
17−memcg_test.txt
18− - Memory Resource Controller; implementation details.
19−memory.txt
20− - Memory Resource Controller; design, accounting, interface, testing.
21−net_cls.txt
22− - Network classifier cgroups details and usages.
23−net_prio.txt
24− - Network priority cgroups details and usages.
25−pids.txt
26− - Process number cgroups details and usages.
Documentation/cgroup-v1/rdma.txt+1−1
@@ -27,7 +27,7 @@ cgroup. · 26 unmodified lines
2727 Currently user space applications can easily take away all the rdma verb
2828 specific resources such as AH, CQ, QP, MR etc. Due to which other applications
2929 in other cgroup or kernel space ULPs may not even get chance to allocate any
30−rdma resources. This can leads to service unavailability.
30+rdma resources. This can lead to service unavailability.
3131
3232 Therefore RDMA controller is needed through which resource consumption
3333 of processes can be limited. Through this controller different rdma
Documentation/conf.py+7−3
@@ -259,7 +259,7 @@ latex_elements = { · 258 unmodified lines
259259 'papersize': 'a4paper',
260260
261261 # The font size ('10pt', '11pt' or '12pt').
262−'pointsize': '8pt',
262+'pointsize': '11pt',
263263
264264 # Latex figure (float) alignment
265265 #'figure_align': 'htbp',
@@ -272,8 +272,8 @@ latex_elements = { · 6 unmodified lines
272272 'preamble': '''
273273 % Use some font with UTF-8 support with XeLaTeX
274274 \\usepackage{fontspec}
275− \\setsansfont{DejaVu Serif}
276− \\setromanfont{DejaVu Sans}
275+ \\setsansfont{DejaVu Sans}
276+ \\setromanfont{DejaVu Serif}
277277 \\setmonofont{DejaVu Sans Mono}
278278
279279 '''
@@ -383,6 +383,10 @@ latex_documents = [ · 103 unmodified lines
383383 'The kernel development community', 'manual'),
384384 ('filesystems/index', 'filesystems.tex', 'Linux Filesystems API',
385385 'The kernel development community', 'manual'),
386+ ('admin-guide/ext4', 'ext4-admin-guide.tex', 'ext4 Administration Guide',
387+ 'ext4 Community', 'manual'),
388+ ('filesystems/ext4/index', 'ext4-data-structures.tex',
389+ 'ext4 Data Structures and Algorithms', 'ext4 Community', 'manual'),
386390 ('gpu/index', 'gpu.tex', 'Linux GPU Driver Developer\'s Guide',
387391 'The kernel development community', 'manual'),
388392 ('input/index', 'linux-input.tex', 'The Linux input driver subsystem',
Documentation/core-api/boot-time-mm.rst+10−61
@@ -5,54 +5,23 @@ Boot time memory management · 4 unmodified lines
55 Early system initialization cannot use "normal" memory management
66 simply because it is not set up yet. But there is still need to
77 allocate memory for various data structures, for instance for the
8−physical page allocator. To address this, a specialized allocator
9−called the :ref:`Boot Memory Allocator <bootmem>`, or bootmem, was
10−introduced. Several years later PowerPC developers added a "Logical
11−Memory Blocks" allocator, which was later adopted by other
12−architectures and renamed to :ref:`memblock <memblock>`. There is also
13−a compatibility layer called `nobootmem` that translates bootmem
14−allocation interfaces to memblock calls.
8+physical page allocator.
159
16−The selection of the early allocator is done using
17−``CONFIG_NO_BOOTMEM`` and ``CONFIG_HAVE_MEMBLOCK`` kernel
18−configuration options. These options are enabled or disabled
19−statically by the architectures' Kconfig files.
20−
21−* Architectures that rely only on bootmem select
22− ``CONFIG_NO_BOOTMEM=n && CONFIG_HAVE_MEMBLOCK=n``.
23−* The users of memblock with the nobootmem compatibility layer set
24− ``CONFIG_NO_BOOTMEM=y && CONFIG_HAVE_MEMBLOCK=y``.
25−* And for those that use both memblock and bootmem the configuration
26− includes ``CONFIG_NO_BOOTMEM=n && CONFIG_HAVE_MEMBLOCK=y``.
27−
28−Whichever allocator is used, it is the responsibility of the
29−architecture specific initialization to set it up in
30−:c:func:`setup_arch` and tear it down in :c:func:`mem_init` functions.
10+A specialized allocator called ``memblock`` performs the
11+boot time memory management. The architecture specific initialization
12+must set it up in :c:func:`setup_arch` and tear it down in
13+:c:func:`mem_init` functions.
3114
3215 Once the early memory management is available it offers a variety of
3316 functions and macros for memory allocations. The allocation request
3417 may be directed to the first (and probably the only) node or to a
3518 particular node in a NUMA system. There are API variants that panic
36−when an allocation fails and those that don't. And more recent and
37−advanced memblock even allows controlling its own behaviour.
38−
39−.. _bootmem:
40−
41−Bootmem
42−=======
43−
44−(mostly stolen from Mel Gorman's "Understanding the Linux Virtual
45−Memory Manager" `book`_)
46−
47−.. _book: https://www.kernel.org/doc/gorman/
48−
49−.. kernel-doc:: mm/bootmem.c
50− :doc: bootmem overview
19+when an allocation fails and those that don't.
5120
52−.. _memblock:
21+Memblock also offers a variety of APIs that control its own behaviour.
5322
54−Memblock
55−========
23+Memblock Overview
24+=================
5625
5726 .. kernel-doc:: mm/memblock.c
5827 :doc: memblock overview
@@ -61,26 +30,6 @@ Memblock · 2 unmodified lines
6130 Functions and structures
6231 ========================
6332
64−Common API
65−----------
66−
67−The functions that are described in this section are available
68−regardless of what early memory manager is enabled.
69−
70−.. kernel-doc:: mm/nobootmem.c
71−
72−Bootmem specific API
73−--------------------
74−
75−These interfaces available only with bootmem, i.e when ``CONFIG_NO_BOOTMEM=n``
76−
77−.. kernel-doc:: include/linux/bootmem.h
78−.. kernel-doc:: mm/bootmem.c
79− :nodocs:
80−
81−Memblock specific API
82−---------------------
83−
8433 Here is the description of memblock data structures, functions and
8534 macros. Some of them are actually internal, but since they are
8635 documented it would be silly to omit them. Besides, reading the
@@ -89,4 +38,4 @@ really happens under the hood. · 2 unmodified lines
8938
9039 .. kernel-doc:: include/linux/memblock.h
9140 .. kernel-doc:: mm/memblock.c
92− :nodocs:
41+ :functions:
Documentation/core-api/gfp_mask-from-fs-io.rst+2−0
@@ -1,3 +1,5 @@
1+.. _gfp_mask_from_fs_io:
2+
13 =================================
24 GFP masks used from FS/IO context
35 =================================
Documentation/core-api/idr.rst+1−1
@@ -1,4 +1,4 @@
1−.. SPDX-License-Identifier: CC-BY-SA-4.0
1+.. SPDX-License-Identifier: GPL-2.0+
22
33 =============
44 ID Allocation
Documentation/core-api/index.rst+4−0
@@ -21,16 +21,20 @@ Core utilities · 20 unmodified lines
2121 local_ops
2222 workqueue
2323 genericirq
24+ xarray
2425 flexible-arrays
2526 librs
2627 genalloc
2728 errseq
2829 printk-formats
2930 circular-buffers
31+ memory-allocation
3032 mm-api
3133 gfp_mask-from-fs-io
3234 timekeeping
3335 boot-time-mm
36+ memory-hotplug
37+
3438
3539 Interfaces for kernel debugging
3640 ===============================
Documentation/core-api/memory-allocation.rst+122−0
@@ -0,0 +1,122 @@
1+=======================
2+Memory Allocation Guide
3+=======================
4+
5+Linux provides a variety of APIs for memory allocation. You can
6+allocate small chunks using `kmalloc` or `kmem_cache_alloc` families,
7+large virtually contiguous areas using `vmalloc` and its derivatives,
8+or you can directly request pages from the page allocator with
9+`alloc_pages`. It is also possible to use more specialized allocators,
10+for instance `cma_alloc` or `zs_malloc`.
11+
12+Most of the memory allocation APIs use GFP flags to express how that
13+memory should be allocated. The GFP acronym stands for "get free
14+pages", the underlying memory allocation function.
15+
16+Diversity of the allocation APIs combined with the numerous GFP flags
17+makes the question "How should I allocate memory?" not that easy to
18+answer, although very likely you should use
19+
20+::
21+
22+ kzalloc(<size>, GFP_KERNEL);
23+
24+Of course there are cases when other allocation APIs and different GFP
25+flags must be used.
26+
27+Get Free Page flags
28+===================
29+
30+The GFP flags control the allocators behavior. They tell what memory
31+zones can be used, how hard the allocator should try to find free
32+memory, whether the memory can be accessed by the userspace etc. The
33+:ref:`Documentation/core-api/mm-api.rst <mm-api-gfp-flags>` provides
34+reference documentation for the GFP flags and their combinations and
35+here we briefly outline their recommended usage:
36+
37+ * Most of the time ``GFP_KERNEL`` is what you need. Memory for the
38+ kernel data structures, DMAable memory, inode cache, all these and
39+ many other allocations types can use ``GFP_KERNEL``. Note, that
40+ using ``GFP_KERNEL`` implies ``GFP_RECLAIM``, which means that
41+ direct reclaim may be triggered under memory pressure; the calling
42+ context must be allowed to sleep.
43+ * If the allocation is performed from an atomic context, e.g interrupt
44+ handler, use ``GFP_NOWAIT``. This flag prevents direct reclaim and
45+ IO or filesystem operations. Consequently, under memory pressure
46+ ``GFP_NOWAIT`` allocation is likely to fail. Allocations which
47+ have a reasonable fallback should be using ``GFP_NOWARN``.
48+ * If you think that accessing memory reserves is justified and the kernel
49+ will be stressed unless allocation succeeds, you may use ``GFP_ATOMIC``.
50+ * Untrusted allocations triggered from userspace should be a subject
51+ of kmem accounting and must have ``__GFP_ACCOUNT`` bit set. There
52+ is the handy ``GFP_KERNEL_ACCOUNT`` shortcut for ``GFP_KERNEL``
53+ allocations that should be accounted.
54+ * Userspace allocations should use either of the ``GFP_USER``,
55+ ``GFP_HIGHUSER`` or ``GFP_HIGHUSER_MOVABLE`` flags. The longer
56+ the flag name the less restrictive it is.
57+
58+ ``GFP_HIGHUSER_MOVABLE`` does not require that allocated memory
59+ will be directly accessible by the kernel and implies that the
60+ data is movable.
61+
62+ ``GFP_HIGHUSER`` means that the allocated memory is not movable,
63+ but it is not required to be directly accessible by the kernel. An
64+ example may be a hardware allocation that maps data directly into
65+ userspace but has no addressing limitations.
66+
67+ ``GFP_USER`` means that the allocated memory is not movable and it
68+ must be directly accessible by the kernel.
69+
70+You may notice that quite a few allocations in the existing code
71+specify ``GFP_NOIO`` or ``GFP_NOFS``. Historically, they were used to
72+prevent recursion deadlocks caused by direct memory reclaim calling
73+back into the FS or IO paths and blocking on already held
74+resources. Since 4.12 the preferred way to address this issue is to
75+use new scope APIs described in
76+:ref:`Documentation/core-api/gfp_mask-from-fs-io.rst <gfp_mask_from_fs_io>`.
77+
78+Other legacy GFP flags are ``GFP_DMA`` and ``GFP_DMA32``. They are
79+used to ensure that the allocated memory is accessible by hardware
80+with limited addressing capabilities. So unless you are writing a
81+driver for a device with such restrictions, avoid using these flags.
82+And even with hardware with restrictions it is preferable to use
83+`dma_alloc*` APIs.
84+
85+Selecting memory allocator
86+==========================
87+
88+The most straightforward way to allocate memory is to use a function
89+from the :c:func:`kmalloc` family. And, to be on the safe size it's
90+best to use routines that set memory to zero, like
91+:c:func:`kzalloc`. If you need to allocate memory for an array, there
92+are :c:func:`kmalloc_array` and :c:func:`kcalloc` helpers.
93+
94+The maximal size of a chunk that can be allocated with `kmalloc` is
95+limited. The actual limit depends on the hardware and the kernel
96+configuration, but it is a good practice to use `kmalloc` for objects
97+smaller than page size.
98+
99+For large allocations you can use :c:func:`vmalloc` and
100+:c:func:`vzalloc`, or directly request pages from the page
101+allocator. The memory allocated by `vmalloc` and related functions is
102+not physically contiguous.
103+
104+If you are not sure whether the allocation size is too large for
105+`kmalloc`, it is possible to use :c:func:`kvmalloc` and its
106+derivatives. It will try to allocate memory with `kmalloc` and if the
107+allocation fails it will be retried with `vmalloc`. There are
108+restrictions on which GFP flags can be used with `kvmalloc`; please
109+see :c:func:`kvmalloc_node` reference documentation. Note that
110+`kvmalloc` may return memory that is not physically contiguous.
111+
112+If you need to allocate many identical objects you can use the slab
113+cache allocator. The cache should be set up with
114+:c:func:`kmem_cache_create` before it can be used. Afterwards
115+:c:func:`kmem_cache_alloc` and its convenience wrappers can allocate
116+memory from that cache.
117+
118+When the allocated memory is no longer needed it must be freed. You
119+can use :c:func:`kvfree` for the memory allocated with `kmalloc`,
120+`vmalloc` and `kvmalloc`. The slab caches should be freed with
121+:c:func:`kmem_cache_free`. And don't forget to destroy the cache with
122+:c:func:`kmem_cache_destroy`.
Documentation/core-api/memory-hotplug.rst+125−0
@@ -0,0 +1,125 @@
1+.. _memory_hotplug:
2+
3+==============
4+Memory hotplug
5+==============
6+
7+Memory hotplug event notifier
8+=============================
9+
10+Hotplugging events are sent to a notification queue.
11+
12+There are six types of notification defined in ``include/linux/memory.h``:
13+
14+MEM_GOING_ONLINE
15+ Generated before new memory becomes available in order to be able to
16+ prepare subsystems to handle memory. The page allocator is still unable
17+ to allocate from the new memory.
18+
19+MEM_CANCEL_ONLINE
20+ Generated if MEM_GOING_ONLINE fails.
21+
22+MEM_ONLINE
23+ Generated when memory has successfully brought online. The callback may
24+ allocate pages from the new memory.
25+
26+MEM_GOING_OFFLINE
27+ Generated to begin the process of offlining memory. Allocations are no
28+ longer possible from the memory but some of the memory to be offlined
29+ is still in use. The callback can be used to free memory known to a
30+ subsystem from the indicated memory block.
31+
32+MEM_CANCEL_OFFLINE
33+ Generated if MEM_GOING_OFFLINE fails. Memory is available again from
34+ the memory block that we attempted to offline.
35+
36+MEM_OFFLINE
37+ Generated after offlining memory is complete.
38+
39+A callback routine can be registered by calling::
40+
41+ hotplug_memory_notifier(callback_func, priority)
42+
43+Callback functions with higher values of priority are called before callback
44+functions with lower values.
45+
46+A callback function must have the following prototype::
47+
48+ int callback_func(
49+ struct notifier_block *self, unsigned long action, void *arg);
50+
51+The first argument of the callback function (self) is a pointer to the block
52+of the notifier chain that points to the callback function itself.
53+The second argument (action) is one of the event types described above.
54+The third argument (arg) passes a pointer of struct memory_notify::
55+
56+ struct memory_notify {
57+ unsigned long start_pfn;
58+ unsigned long nr_pages;
59+ int status_change_nid_normal;
60+ int status_change_nid_high;
61+ int status_change_nid;
62+ }
63+
64+- start_pfn is start_pfn of online/offline memory.
65+- nr_pages is # of pages of online/offline memory.
66+- status_change_nid_normal is set node id when N_NORMAL_MEMORY of nodemask
67+ is (will be) set/clear, if this is -1, then nodemask status is not changed.
68+- status_change_nid_high is set node id when N_HIGH_MEMORY of nodemask
69+ is (will be) set/clear, if this is -1, then nodemask status is not changed.
70+- status_change_nid is set node id when N_MEMORY of nodemask is (will be)
71+ set/clear. It means a new(memoryless) node gets new memory by online and a
72+ node loses all memory. If this is -1, then nodemask status is not changed.
73+
74+ If status_changed_nid* >= 0, callback should create/discard structures for the
75+ node if necessary.
76+
77+The callback routine shall return one of the values
78+NOTIFY_DONE, NOTIFY_OK, NOTIFY_BAD, NOTIFY_STOP
79+defined in ``include/linux/notifier.h``
80+
81+NOTIFY_DONE and NOTIFY_OK have no effect on the further processing.
82+
83+NOTIFY_BAD is used as response to the MEM_GOING_ONLINE, MEM_GOING_OFFLINE,
84+MEM_ONLINE, or MEM_OFFLINE action to cancel hotplugging. It stops
85+further processing of the notification queue.
86+
87+NOTIFY_STOP stops further processing of the notification queue.
88+
89+Locking Internals
90+=================
91+
92+When adding/removing memory that uses memory block devices (i.e. ordinary RAM),
93+the device_hotplug_lock should be held to:
94+
95+- synchronize against online/offline requests (e.g. via sysfs). This way, memory
96+ block devices can only be accessed (.online/.state attributes) by user
97+ space once memory has been fully added. And when removing memory, we
98+ know nobody is in critical sections.
99+- synchronize against CPU hotplug and similar (e.g. relevant for ACPI and PPC)
100+
101+Especially, there is a possible lock inversion that is avoided using
102+device_hotplug_lock when adding memory and user space tries to online that
103+memory faster than expected:
104+
105+- device_online() will first take the device_lock(), followed by
106+ mem_hotplug_lock
107+- add_memory_resource() will first take the mem_hotplug_lock, followed by
108+ the device_lock() (while creating the devices, during bus_add_device()).
109+
110+As the device is visible to user space before taking the device_lock(), this
111+can result in a lock inversion.
112+
113+onlining/offlining of memory should be done via device_online()/
114+device_offline() - to make sure it is properly synchronized to actions
115+via sysfs. Holding device_hotplug_lock is advised (to e.g. protect online_type)
116+
117+When adding/removing/onlining/offlining memory or adding/removing
118+heterogeneous/device memory, we should always hold the mem_hotplug_lock in
119+write mode to serialise memory hotplug (e.g. access to global/zone
120+variables).
121+
122+In addition, mem_hotplug_lock (in contrast to device_hotplug_lock) in read
123+mode allows for a quite efficient get_online_mems/put_online_mems
124+implementation, so code accessing memory can protect from that memory
125+vanishing.
Documentation/core-api/mm-api.rst+2−0
@@ -14,6 +14,8 @@ User Space Memory Access · 13 unmodified lines
1414 .. kernel-doc:: mm/util.c
1515 :functions: get_user_pages_fast
1616
17+.. _mm-api-gfp-flags:
18+
1719 Memory Allocation Controls
1820 ==========================
1921
Documentation/core-api/printk-formats.rst+5−6
@@ -376,15 +376,15 @@ correctness of the format string and va_list arguments. · 375 unmodified lines
376376
377377 Passed by reference.
378378
379−kobjects
380−--------
379+Device tree nodes
380+-----------------
381381
382382 ::
383383
384384 %pOF[fnpPcCF]
385385
386386
387−For printing kobject based structs (device nodes). Default behaviour is
387+For printing device tree node structures. Default behaviour is
388388 equivalent to %pOFf.
389389
390390 - f - device node full_name
@@ -420,9 +420,8 @@ struct clk · 29 unmodified lines
420420 %pC pll1
421421 %pCn pll1
422422
423−For printing struct clk structures. %pC and %pCn print the name
424−(Common Clock Framework) or address (legacy clock framework) of the
425−structure.
423+For printing struct clk structures. %pC and %pCn print the name of the clock
424+(Common Clock Framework) or a unique 32-bit ID (legacy clock framework).
426425
427426 Passed by reference.
428427
Documentation/core-api/xarray.rst+435−0
@@ -0,0 +1,435 @@
1+.. SPDX-License-Identifier: GPL-2.0+
2+
3+======
4+XArray
5+======
6+
7+:Author: Matthew Wilcox
8+
9+Overview
10+========
11+
12+The XArray is an abstract data type which behaves like a very large array
13+of pointers. It meets many of the same needs as a hash or a conventional
14+resizable array. Unlike a hash, it allows you to sensibly go to the
15+next or previous entry in a cache-efficient manner. In contrast to a
16+resizable array, there is no need to copy data or change MMU mappings in
17+order to grow the array. It is more memory-efficient, parallelisable
18+and cache friendly than a doubly-linked list. It takes advantage of
19+RCU to perform lookups without locking.
20+
21+The XArray implementation is efficient when the indices used are densely
22+clustered; hashing the object and using the hash as the index will not
23+perform well. The XArray is optimised for small indices, but still has
24+good performance with large indices. If your index can be larger than
25+``ULONG_MAX`` then the XArray is not the data type for you. The most
26+important user of the XArray is the page cache.
27+
28+Each non-``NULL`` entry in the array has three bits associated with
29+it called marks. Each mark may be set or cleared independently of
30+the others. You can iterate over entries which are marked.
31+
32+Normal pointers may be stored in the XArray directly. They must be 4-byte
33+aligned, which is true for any pointer returned from :c:func:`kmalloc` and
34+:c:func:`alloc_page`. It isn't true for arbitrary user-space pointers,
35+nor for function pointers. You can store pointers to statically allocated
36+objects, as long as those objects have an alignment of at least 4.
37+
38+You can also store integers between 0 and ``LONG_MAX`` in the XArray.
39+You must first convert it into an entry using :c:func:`xa_mk_value`.
40+When you retrieve an entry from the XArray, you can check whether it is
41+a value entry by calling :c:func:`xa_is_value`, and convert it back to
42+an integer by calling :c:func:`xa_to_value`.
43+
44+Some users want to store tagged pointers instead of using the marks
45+described above. They can call :c:func:`xa_tag_pointer` to create an
46+entry with a tag, :c:func:`xa_untag_pointer` to turn a tagged entry
47+back into an untagged pointer and :c:func:`xa_pointer_tag` to retrieve
48+the tag of an entry. Tagged pointers use the same bits that are used
49+to distinguish value entries from normal pointers, so each user must
50+decide whether they want to store value entries or tagged pointers in
51+any particular XArray.
52+
53+The XArray does not support storing :c:func:`IS_ERR` pointers as some
54+conflict with value entries or internal entries.
55+
56+An unusual feature of the XArray is the ability to create entries which
57+occupy a range of indices. Once stored to, looking up any index in
58+the range will return the same entry as looking up any other index in
59+the range. Setting a mark on one index will set it on all of them.
60+Storing to any index will store to all of them. Multi-index entries can
61+be explicitly split into smaller entries, or storing ``NULL`` into any
62+entry will cause the XArray to forget about the range.
63+
64+Normal API
65+==========
66+
67+Start by initialising an XArray, either with :c:func:`DEFINE_XARRAY`
68+for statically allocated XArrays or :c:func:`xa_init` for dynamically
69+allocated ones. A freshly-initialised XArray contains a ``NULL``
70+pointer at every index.
71+
72+You can then set entries using :c:func:`xa_store` and get entries
73+using :c:func:`xa_load`. xa_store will overwrite any entry with the
74+new entry and return the previous entry stored at that index. You can
75+use :c:func:`xa_erase` instead of calling :c:func:`xa_store` with a
76+``NULL`` entry. There is no difference between an entry that has never
77+been stored to and one that has most recently had ``NULL`` stored to it.
78+
79+You can conditionally replace an entry at an index by using
80+:c:func:`xa_cmpxchg`. Like :c:func:`cmpxchg`, it will only succeed if
81+the entry at that index has the 'old' value. It also returns the entry
82+which was at that index; if it returns the same entry which was passed as
83+'old', then :c:func:`xa_cmpxchg` succeeded.
84+
85+If you want to only store a new entry to an index if the current entry
86+at that index is ``NULL``, you can use :c:func:`xa_insert` which
87+returns ``-EEXIST`` if the entry is not empty.
88+
89+You can enquire whether a mark is set on an entry by using
90+:c:func:`xa_get_mark`. If the entry is not ``NULL``, you can set a mark
91+on it by using :c:func:`xa_set_mark` and remove the mark from an entry by
92+calling :c:func:`xa_clear_mark`. You can ask whether any entry in the
93+XArray has a particular mark set by calling :c:func:`xa_marked`.
94+
95+You can copy entries out of the XArray into a plain array by calling
96+:c:func:`xa_extract`. Or you can iterate over the present entries in
97+the XArray by calling :c:func:`xa_for_each`. You may prefer to use
98+:c:func:`xa_find` or :c:func:`xa_find_after` to move to the next present
99+entry in the XArray.
100+
101+Calling :c:func:`xa_store_range` stores the same entry in a range
102+of indices. If you do this, some of the other operations will behave
103+in a slightly odd way. For example, marking the entry at one index
104+may result in the entry being marked at some, but not all of the other
105+indices. Storing into one index may result in the entry retrieved by
106+some, but not all of the other indices changing.
107+
108+Finally, you can remove all entries from an XArray by calling
109+:c:func:`xa_destroy`. If the XArray entries are pointers, you may wish
110+to free the entries first. You can do this by iterating over all present
111+entries in the XArray using the :c:func:`xa_for_each` iterator.
112+
113+ID assignment
114+-------------
115+
116+You can call :c:func:`xa_alloc` to store the entry at any unused index
117+in the XArray. If you need to modify the array from interrupt context,
118+you can use :c:func:`xa_alloc_bh` or :c:func:`xa_alloc_irq` to disable
119+interrupts while allocating the ID. Unlike :c:func:`xa_store`, allocating
120+a ``NULL`` pointer does not delete an entry. Instead it reserves an
121+entry like :c:func:`xa_reserve` and you can release it using either
122+:c:func:`xa_erase` or :c:func:`xa_release`. To use ID assignment, the
123+XArray must be defined with :c:func:`DEFINE_XARRAY_ALLOC`, or initialised
124+by passing ``XA_FLAGS_ALLOC`` to :c:func:`xa_init_flags`,
125+
126+Memory allocation
127+-----------------
128+
129+The :c:func:`xa_store`, :c:func:`xa_cmpxchg`, :c:func:`xa_alloc`,
130+:c:func:`xa_reserve` and :c:func:`xa_insert` functions take a gfp_t
131+parameter in case the XArray needs to allocate memory to store this entry.
132+If the entry is being deleted, no memory allocation needs to be performed,
133+and the GFP flags specified will be ignored.
134+
135+It is possible for no memory to be allocatable, particularly if you pass
136+a restrictive set of GFP flags. In that case, the functions return a
137+special value which can be turned into an errno using :c:func:`xa_err`.
138+If you don't need to know exactly which error occurred, using
139+:c:func:`xa_is_err` is slightly more efficient.
140+
141+Locking
142+-------
143+
144+When using the Normal API, you do not have to worry about locking.
145+The XArray uses RCU and an internal spinlock to synchronise access:
146+
147+No lock needed:
148+ * :c:func:`xa_empty`
149+ * :c:func:`xa_marked`
150+
151+Takes RCU read lock:
152+ * :c:func:`xa_load`
153+ * :c:func:`xa_for_each`
154+ * :c:func:`xa_find`
155+ * :c:func:`xa_find_after`
156+ * :c:func:`xa_extract`
157+ * :c:func:`xa_get_mark`
158+
159+Takes xa_lock internally:
160+ * :c:func:`xa_store`
161+ * :c:func:`xa_insert`
162+ * :c:func:`xa_erase`
163+ * :c:func:`xa_erase_bh`
164+ * :c:func:`xa_erase_irq`
165+ * :c:func:`xa_cmpxchg`
166+ * :c:func:`xa_store_range`
167+ * :c:func:`xa_alloc`
168+ * :c:func:`xa_alloc_bh`
169+ * :c:func:`xa_alloc_irq`
170+ * :c:func:`xa_destroy`
171+ * :c:func:`xa_set_mark`
172+ * :c:func:`xa_clear_mark`
173+
174+Assumes xa_lock held on entry:
175+ * :c:func:`__xa_store`
176+ * :c:func:`__xa_insert`
177+ * :c:func:`__xa_erase`
178+ * :c:func:`__xa_cmpxchg`
179+ * :c:func:`__xa_alloc`
180+ * :c:func:`__xa_set_mark`
181+ * :c:func:`__xa_clear_mark`
182+
183+If you want to take advantage of the lock to protect the data structures
184+that you are storing in the XArray, you can call :c:func:`xa_lock`
185+before calling :c:func:`xa_load`, then take a reference count on the
186+object you have found before calling :c:func:`xa_unlock`. This will
187+prevent stores from removing the object from the array between looking
188+up the object and incrementing the refcount. You can also use RCU to
189+avoid dereferencing freed memory, but an explanation of that is beyond
190+the scope of this document.
191+
192+The XArray does not disable interrupts or softirqs while modifying
193+the array. It is safe to read the XArray from interrupt or softirq
194+context as the RCU lock provides enough protection.
195+
196+If, for example, you want to store entries in the XArray in process
197+context and then erase them in softirq context, you can do that this way::
198+
199+ void foo_init(struct foo *foo)
200+ {
201+ xa_init_flags(&foo->array, XA_FLAGS_LOCK_BH);
202+ }
203+
204+ int foo_store(struct foo *foo, unsigned long index, void *entry)
205+ {
206+ int err;
207+
208+ xa_lock_bh(&foo->array);
209+ err = xa_err(__xa_store(&foo->array, index, entry, GFP_KERNEL));
210+ if (!err)
211+ foo->count++;
212+ xa_unlock_bh(&foo->array);
213+ return err;
214+ }
215+
216+ /* foo_erase() is only called from softirq context */
217+ void foo_erase(struct foo *foo, unsigned long index)
218+ {
219+ xa_lock(&foo->array);
220+ __xa_erase(&foo->array, index);
221+ foo->count--;
222+ xa_unlock(&foo->array);
223+ }
224+
225+If you are going to modify the XArray from interrupt or softirq context,
226+you need to initialise the array using :c:func:`xa_init_flags`, passing
227+``XA_FLAGS_LOCK_IRQ`` or ``XA_FLAGS_LOCK_BH``.
228+
229+The above example also shows a common pattern of wanting to extend the
230+coverage of the xa_lock on the store side to protect some statistics
231+associated with the array.
232+
233+Sharing the XArray with interrupt context is also possible, either
234+using :c:func:`xa_lock_irqsave` in both the interrupt handler and process
235+context, or :c:func:`xa_lock_irq` in process context and :c:func:`xa_lock`
236+in the interrupt handler. Some of the more common patterns have helper
237+functions such as :c:func:`xa_erase_bh` and :c:func:`xa_erase_irq`.
238+
239+Sometimes you need to protect access to the XArray with a mutex because
240+that lock sits above another mutex in the locking hierarchy. That does
241+not entitle you to use functions like :c:func:`__xa_erase` without taking
242+the xa_lock; the xa_lock is used for lockdep validation and will be used
243+for other purposes in the future.
244+
245+The :c:func:`__xa_set_mark` and :c:func:`__xa_clear_mark` functions are also
246+available for situations where you look up an entry and want to atomically
247+set or clear a mark. It may be more efficient to use the advanced API
248+in this case, as it will save you from walking the tree twice.
249+
250+Advanced API
251+============
252+
253+The advanced API offers more flexibility and better performance at the
254+cost of an interface which can be harder to use and has fewer safeguards.
255+No locking is done for you by the advanced API, and you are required
256+to use the xa_lock while modifying the array. You can choose whether
257+to use the xa_lock or the RCU lock while doing read-only operations on
258+the array. You can mix advanced and normal operations on the same array;
259+indeed the normal API is implemented in terms of the advanced API. The
260+advanced API is only available to modules with a GPL-compatible license.
261+
262+The advanced API is based around the xa_state. This is an opaque data
263+structure which you declare on the stack using the :c:func:`XA_STATE`
264+macro. This macro initialises the xa_state ready to start walking
265+around the XArray. It is used as a cursor to maintain the position
266+in the XArray and let you compose various operations together without
267+having to restart from the top every time.
268+
269+The xa_state is also used to store errors. You can call
270+:c:func:`xas_error` to retrieve the error. All operations check whether
271+the xa_state is in an error state before proceeding, so there's no need
272+for you to check for an error after each call; you can make multiple
273+calls in succession and only check at a convenient point. The only
274+errors currently generated by the XArray code itself are ``ENOMEM`` and
275+``EINVAL``, but it supports arbitrary errors in case you want to call
276+:c:func:`xas_set_err` yourself.
277+
278+If the xa_state is holding an ``ENOMEM`` error, calling :c:func:`xas_nomem`
279+will attempt to allocate more memory using the specified gfp flags and
280+cache it in the xa_state for the next attempt. The idea is that you take
281+the xa_lock, attempt the operation and drop the lock. The operation
282+attempts to allocate memory while holding the lock, but it is more
283+likely to fail. Once you have dropped the lock, :c:func:`xas_nomem`
284+can try harder to allocate more memory. It will return ``true`` if it
285+is worth retrying the operation (i.e. that there was a memory error *and*
286+more memory was allocated). If it has previously allocated memory, and
287+that memory wasn't used, and there is no error (or some error that isn't
288+``ENOMEM``), then it will free the memory previously allocated.
289+
290+Internal Entries
291+----------------
292+
293+The XArray reserves some entries for its own purposes. These are never
294+exposed through the normal API, but when using the advanced API, it's
295+possible to see them. Usually the best way to handle them is to pass them
296+to :c:func:`xas_retry`, and retry the operation if it returns ``true``.
297+
298+.. flat-table::
299+ :widths: 1 1 6
300+
301+ * - Name
302+ - Test
303+ - Usage
304+
305+ * - Node
306+ - :c:func:`xa_is_node`
307+ - An XArray node. May be visible when using a multi-index xa_state.
308+
309+ * - Sibling
310+ - :c:func:`xa_is_sibling`
311+ - A non-canonical entry for a multi-index entry. The value indicates
312+ which slot in this node has the canonical entry.
313+
314+ * - Retry
315+ - :c:func:`xa_is_retry`
316+ - This entry is currently being modified by a thread which has the
317+ xa_lock. The node containing this entry may be freed at the end
318+ of this RCU period. You should restart the lookup from the head
319+ of the array.
320+
321+ * - Zero
322+ - :c:func:`xa_is_zero`
323+ - Zero entries appear as ``NULL`` through the Normal API, but occupy
324+ an entry in the XArray which can be used to reserve the index for
325+ future use.
326+
327+Other internal entries may be added in the future. As far as possible, they
328+will be handled by :c:func:`xas_retry`.
329+
330+Additional functionality
331+------------------------
332+
333+The :c:func:`xas_create_range` function allocates all the necessary memory
334+to store every entry in a range. It will set ENOMEM in the xa_state if
335+it cannot allocate memory.
336+
337+You can use :c:func:`xas_init_marks` to reset the marks on an entry
338+to their default state. This is usually all marks clear, unless the
339+XArray is marked with ``XA_FLAGS_TRACK_FREE``, in which case mark 0 is set
340+and all other marks are clear. Replacing one entry with another using
341+:c:func:`xas_store` will not reset the marks on that entry; if you want
342+the marks reset, you should do that explicitly.
343+
344+The :c:func:`xas_load` will walk the xa_state as close to the entry
345+as it can. If you know the xa_state has already been walked to the
346+entry and need to check that the entry hasn't changed, you can use
347+:c:func:`xas_reload` to save a function call.
348+
349+If you need to move to a different index in the XArray, call
350+:c:func:`xas_set`. This resets the cursor to the top of the tree, which
351+will generally make the next operation walk the cursor to the desired
352+spot in the tree. If you want to move to the next or previous index,
353+call :c:func:`xas_next` or :c:func:`xas_prev`. Setting the index does
354+not walk the cursor around the array so does not require a lock to be
355+held, while moving to the next or previous index does.
356+
357+You can search for the next present entry using :c:func:`xas_find`. This
358+is the equivalent of both :c:func:`xa_find` and :c:func:`xa_find_after`;
359+if the cursor has been walked to an entry, then it will find the next
360+entry after the one currently referenced. If not, it will return the
361+entry at the index of the xa_state. Using :c:func:`xas_next_entry` to
362+move to the next present entry instead of :c:func:`xas_find` will save
363+a function call in the majority of cases at the expense of emitting more
364+inline code.
365+
366+The :c:func:`xas_find_marked` function is similar. If the xa_state has
367+not been walked, it will return the entry at the index of the xa_state,
368+if it is marked. Otherwise, it will return the first marked entry after
369+the entry referenced by the xa_state. The :c:func:`xas_next_marked`
370+function is the equivalent of :c:func:`xas_next_entry`.
371+
372+When iterating over a range of the XArray using :c:func:`xas_for_each`
373+or :c:func:`xas_for_each_marked`, it may be necessary to temporarily stop
374+the iteration. The :c:func:`xas_pause` function exists for this purpose.
375+After you have done the necessary work and wish to resume, the xa_state
376+is in an appropriate state to continue the iteration after the entry
377+you last processed. If you have interrupts disabled while iterating,
378+then it is good manners to pause the iteration and reenable interrupts
379+every ``XA_CHECK_SCHED`` entries.
380+
381+The :c:func:`xas_get_mark`, :c:func:`xas_set_mark` and
382+:c:func:`xas_clear_mark` functions require the xa_state cursor to have
383+been moved to the appropriate location in the xarray; they will do
384+nothing if you have called :c:func:`xas_pause` or :c:func:`xas_set`
385+immediately before.
386+
387+You can call :c:func:`xas_set_update` to have a callback function
388+called each time the XArray updates a node. This is used by the page
389+cache workingset code to maintain its list of nodes which contain only
390+shadow entries.
391+
392+Multi-Index Entries
393+-------------------
394+
395+The XArray has the ability to tie multiple indices together so that
396+operations on one index affect all indices. For example, storing into
397+any index will change the value of the entry retrieved from any index.
398+Setting or clearing a mark on any index will set or clear the mark
399+on every index that is tied together. The current implementation
400+only allows tying ranges which are aligned powers of two together;
401+eg indices 64-127 may be tied together, but 2-6 may not be. This may
402+save substantial quantities of memory; for example tying 512 entries
403+together will save over 4kB.
404+
405+You can create a multi-index entry by using :c:func:`XA_STATE_ORDER`
406+or :c:func:`xas_set_order` followed by a call to :c:func:`xas_store`.
407+Calling :c:func:`xas_load` with a multi-index xa_state will walk the
408+xa_state to the right location in the tree, but the return value is not
409+meaningful, potentially being an internal entry or ``NULL`` even when there
410+is an entry stored within the range. Calling :c:func:`xas_find_conflict`
411+will return the first entry within the range or ``NULL`` if there are no
412+entries in the range. The :c:func:`xas_for_each_conflict` iterator will
413+iterate over every entry which overlaps the specified range.
414+
415+If :c:func:`xas_load` encounters a multi-index entry, the xa_index
416+in the xa_state will not be changed. When iterating over an XArray
417+or calling :c:func:`xas_find`, if the initial index is in the middle
418+of a multi-index entry, it will not be altered. Subsequent calls
419+or iterations will move the index to the first index in the range.
420+Each entry will only be returned once, no matter how many indices it
421+occupies.
422+
423+Using :c:func:`xas_next` or :c:func:`xas_prev` with a multi-index xa_state
424+is not supported. Using either of these functions on a multi-index entry
425+will reveal sibling entries; these should be skipped over by the caller.
426+
427+Storing ``NULL`` into any index of a multi-index entry will set the entry
428+at every index to ``NULL`` and dissolve the tie. Splitting a multi-index
429+entry into entries occupying smaller ranges is not yet supported.
430+
431+Functions and structures
432+========================
433+
434+.. kernel-doc:: include/linux/xarray.h
435+.. kernel-doc:: lib/xarray.c
Documentation/cpu-freq/cpufreq-stats.txt+5−3
@@ -86,9 +86,11 @@ transitions. · 85 unmodified lines
8686 This will give a fine grained information about all the CPU frequency
8787 transitions. The cat output here is a two dimensional matrix, where an entry
8888 <i,j> (row i, column j) represents the count of number of transitions from
89−Freq_i to Freq_j. Freq_i is in descending order with increasing rows and
90−Freq_j is in descending order with increasing columns. The output here also
91−contains the actual freq values for each row and column for better readability.
89+Freq_i to Freq_j. Freq_i rows and Freq_j columns follow the sorting order in
90+which the driver has provided the frequency table initially to the cpufreq core
91+and so can be sorted (ascending or descending) or unsorted. The output here
92+also contains the actual freq values for each row and column for better
93+readability.
9294
9395 If the transition table is bigger than PAGE_SIZE, reading this will
9496 return an -EFBIG error.
Documentation/crypto/asymmetric-keys.txt+21−5
@@ -183,6 +183,10 @@ and looks like the following: · 182 unmodified lines
183183
184184 void (*describe)(const struct key *key, struct seq_file *m);
185185 void (*destroy)(void *payload);
186+ int (*query)(const struct kernel_pkey_params *params,
187+ struct kernel_pkey_query *info);
188+ int (*eds_op)(struct kernel_pkey_params *params,
189+ const void *in, void *out);
186190 int (*verify_signature)(const struct key *key,
187191 const struct public_key_signature *sig);
188192 };
@@ -207,12 +211,22 @@ There are a number of operations defined by the subtype: · 18 unmodified lines
207211 asymmetric key will look after freeing the fingerprint and releasing the
208212 reference on the subtype module.
209213
210− (3) verify_signature().
214+ (3) query().
211215
212− Optional. These are the entry points for the key usage operations.
213− Currently there is only the one defined. If not set, the caller will be
214− given -ENOTSUPP. The subtype may do anything it likes to implement an
215− operation, including offloading to hardware.
216+ Mandatory. This is a function for querying the capabilities of a key.
217+
218+ (4) eds_op().
219+
220+ Optional. This is the entry point for the encryption, decryption and
221+ signature creation operations (which are distinguished by the operation ID
222+ in the parameter struct). The subtype may do anything it likes to
223+ implement an operation, including offloading to hardware.
224+
225+ (5) verify_signature().
226+
227+ Optional. This is the entry point for signature verification. The
228+ subtype may do anything it likes to implement an operation, including
229+ offloading to hardware.
216230
217231
218232 ==========================
@@ -234,6 +248,8 @@ Examples of blob formats for which parsers could be implemented include: · 15 unmodified lines
234248 - X.509 ASN.1 stream.
235249 - Pointer to TPM key.
236250 - Pointer to UEFI key.
251+ - PKCS#8 private key [RFC 5208].
252+ - PKCS#5 encrypted private key [RFC 2898].
237253
238254 During key instantiation each parser in the list is tried until one doesn't
239255 return -EBADMSG.
Documentation/dev-tools/coccinelle.rst+19−4
@@ -30,18 +30,29 @@ of many distributions, e.g. : · 29 unmodified lines
3030 - NetBSD
3131 - FreeBSD
3232
33−You can get the latest version released from the Coccinelle homepage at
33+Some distribution packages are obsolete and it is recommended
34+to use the latest version released from the Coccinelle homepage at
3435 http://coccinelle.lip6.fr/
3536
36−Once you have it, run the following command::
37+Or from Github at:
3738
38− ./configure
39+https://github.com/coccinelle/coccinelle
40+
41+Once you have it, run the following commands::
42+
43+ ./autogen
44+ ./configure
3945 make
4046
4147 as a regular user, and install it with::
4248
4349 sudo make install
4450
51+More detailed installation instructions to build from source can be
52+found at:
53+
54+https://github.com/coccinelle/coccinelle/blob/master/install.txt
55+
4556 Supplemental documentation
4657 ---------------------------
4758
@@ -51,6 +62,10 @@ https://bottest.wiki.kernel.org/coccicheck · 3 unmodified lines
5162
5263 The wiki documentation always refers to the linux-next version of the script.
5364
65+For Semantic Patch Language(SmPL) grammar documentation refer to:
66+
67+http://coccinelle.lip6.fr/documentation.php
68+
5469 Using Coccinelle on the Linux kernel
5570 ------------------------------------
5671
@@ -223,7 +238,7 @@ Since coccicheck runs through make, it naturally runs from the kernel · 166 unmodified lines
223238 proper dir, as such the second rule above would be implied for picking up a
224239 .cocciconfig when using ``make coccicheck``.
225240
226−``make coccicheck`` also supports using M= targets.If you do not supply
241+``make coccicheck`` also supports using M= targets. If you do not supply
227242 any M= target, it is assumed you want to target the entire kernel.
228243 The kernel coccicheck script has::
229244
Documentation/dev-tools/kselftest.rst+1−1
@@ -159,7 +159,7 @@ Contributing new tests (details) · 158 unmodified lines
159159 * If a test needs specific kernel config options enabled, add a config file in
160160 the test directory to enable them.
161161
162− e.g: tools/testing/selftests/android/ion/config
162+ e.g: tools/testing/selftests/android/config
163163
164164 Test Harness
165165 ============
Documentation/device-mapper/dm-flakey.txt+4−0
@@ -33,6 +33,10 @@ Optional feature parameters: · 32 unmodified lines
3333 All write I/O is silently ignored.
3434 Read I/O is handled correctly.
3535
36+ error_writes:
37+ All write I/O is failed with an error signalled.
38+ Read I/O is handled correctly.
39+
3640 corrupt_bio_byte <Nth_byte> <direction> <value> <flags>:
3741 During <down interval>, replace <Nth_byte> of the data of
3842 each matching bio with <value>.
Documentation/device-mapper/log-writes.txt+1−1
@@ -38,7 +38,7 @@ inconsistent file system. · 37 unmodified lines
3838 Any REQ_FUA requests bypass this flushing mechanism and are logged as soon as
3939 they complete as those requests will obviously bypass the device cache.
4040
41−Any REQ_DISCARD requests are treated like WRITE requests. Otherwise we would
41+Any REQ_OP_DISCARD requests are treated like WRITE requests. Otherwise we would
4242 have all the DISCARD requests, and then the WRITE requests and then the FLUSH
4343 request. Consider the following example:
4444
Documentation/devicetree/00-INDEX+0−12
@@ -1,12 +0,0 @@
1−Documentation for device trees, a data structure by which bootloaders pass
2−hardware layout to Linux in a device-independent manner, simplifying hardware
3−probing. This subsystem is maintained by Grant Likely
4−<grant.likely@secretlab.ca> and has a mailing list at
5−https://lists.ozlabs.org/listinfo/devicetree-discuss
6−
7−00-INDEX
8− - this file
9−booting-without-of.txt
10− - Booting Linux without Open Firmware, describes history and format of device trees.
11−usage-model.txt
12− - How Linux uses DT and what DT aims to solve.
Documentation/devicetree/bindings/arm/al,alpine.txt+0−72
@@ -14,75 +14,3 @@ compatible: must contain "al,alpine" · 13 unmodified lines
1414
1515 ...
1616 }
17−
18−* CPU node:
19−
20−The Alpine platform includes cortex-a15 cores.
21−enable-method: must be "al,alpine-smp" to allow smp [1]
22−
23−Example:
24−
25−cpus {
26− #address-cells = <1>;
27− #size-cells = <0>;
28− enable-method = "al,alpine-smp";
29−
30− cpu@0 {
31− compatible = "arm,cortex-a15";
32− device_type = "cpu";
33− reg = <0>;
34− };
35−
36− cpu@1 {
37− compatible = "arm,cortex-a15";
38− device_type = "cpu";
39− reg = <1>;
40− };
41−
42− cpu@2 {
43− compatible = "arm,cortex-a15";
44− device_type = "cpu";
45− reg = <2>;
46− };
47−
48− cpu@3 {
49− compatible = "arm,cortex-a15";
50− device_type = "cpu";
51− reg = <3>;
52− };
53−};
54−
55−
56−* Alpine CPU resume registers
57−
58−The CPU resume register are used to define required resume address after
59−reset.
60−
61−Properties:
62−- compatible : Should contain "al,alpine-cpu-resume".
63−- reg : Offset and length of the register set for the device
64−
65−Example:
66−
67−cpu_resume {
68− compatible = "al,alpine-cpu-resume";
69− reg = <0xfbff5ed0 0x30>;
70−};
71−
72−* Alpine System-Fabric Service Registers
73−
74−The System-Fabric Service Registers allow various operation on CPU and
75−system fabric, like powering CPUs off.
76−
77−Properties:
78−- compatible : Should contain "al,alpine-sysfabric-service" and "syscon".
79−- reg : Offset and length of the register set for the device
80−
81−Example:
82−
83−nb_service {
84− compatible = "al,alpine-sysfabric-service", "syscon";
85− reg = <0xfb070000 0x10000>;
86−};
87−
88−[1] arm/cpu-enable-method/al,alpine-smp
Documentation/devicetree/bindings/arm/amlogic.txt+7−0
@@ -57,12 +57,17 @@ Boards with the Amlogic Meson AXG A113D SoC shall have the following properties: · 56 unmodified lines
5757 Required root node property:
5858 compatible: "amlogic,a113d", "amlogic,meson-axg";
5959
60+Boards with the Amlogic Meson G12A S905D2 SoC shall have the following properties:
61+ Required root node property:
62+ compatible: "amlogic,g12a";
63+
6064 Board compatible values (alphabetically, grouped by SoC):
6165
6266 - "geniatech,atv1200" (Meson6)
6367
6468 - "minix,neo-x8" (Meson8)
6569
70+ - "endless,ec100" (Meson8b)
6671 - "hardkernel,odroid-c1" (Meson8b)
6772 - "tronfy,mxq" (Meson8b)
6873
@@ -101,6 +106,8 @@ Board compatible values (alphabetically, grouped by SoC): · 32 unmodified lines
101106
102107 - "amlogic,s400" (Meson axg a113d)
103108
109+ - "amlogic,u200" (Meson g12a s905d2)
110+
104111 Amlogic Meson Firmware registers Interface
105112 ------------------------------------------
106113
Documentation/devicetree/bindings/arm/atmel-at91.txt+0−170
@@ -70,173 +70,3 @@ compatible: must be one of: · 69 unmodified lines
7070 - "atmel,samv71q19"
7171 - "atmel,samv71q20"
7272 - "atmel,samv71q21"
73−
74−Chipid required properties:
75−- compatible: Should be "atmel,sama5d2-chipid"
76−- reg : Should contain registers location and length
77−
78−PIT Timer required properties:
79−- compatible: Should be "atmel,at91sam9260-pit"
80−- reg: Should contain registers location and length
81−- interrupts: Should contain interrupt for the PIT which is the IRQ line
82− shared across all System Controller members.
83−
84−System Timer (ST) required properties:
85−- compatible: Should be "atmel,at91rm9200-st", "syscon", "simple-mfd"
86−- reg: Should contain registers location and length
87−- interrupts: Should contain interrupt for the ST which is the IRQ line
88− shared across all System Controller members.
89−- clocks: phandle to input clock.
90−Its subnodes can be:
91−- watchdog: compatible should be "atmel,at91rm9200-wdt"
92−
93−RSTC Reset Controller required properties:
94−- compatible: Should be "atmel,<chip>-rstc".
95− <chip> can be "at91sam9260" or "at91sam9g45" or "sama5d3"
96−- reg: Should contain registers location and length
97−- clocks: phandle to input clock.
98−
99−Example:
100−
101− rstc@fffffd00 {
102− compatible = "atmel,at91sam9260-rstc";
103− reg = <0xfffffd00 0x10>;
104− clocks = <&clk32k>;
105− };
106−
107−RAMC SDRAM/DDR Controller required properties:
108−- compatible: Should be "atmel,at91rm9200-sdramc", "syscon"
109− "atmel,at91sam9260-sdramc",
110− "atmel,at91sam9g45-ddramc",
111− "atmel,sama5d3-ddramc",
112−- reg: Should contain registers location and length
113−
114−Examples:
115−
116− ramc0: ramc@ffffe800 {
117− compatible = "atmel,at91sam9g45-ddramc";
118− reg = <0xffffe800 0x200>;
119− };
120−
121−SHDWC Shutdown Controller
122−
123−required properties:
124−- compatible: Should be "atmel,<chip>-shdwc".
125− <chip> can be "at91sam9260", "at91sam9rl" or "at91sam9x5".
126−- reg: Should contain registers location and length
127−- clocks: phandle to input clock.
128−
129−optional properties:
130−- atmel,wakeup-mode: String, operation mode of the wakeup mode.
131− Supported values are: "none", "high", "low", "any".
132−- atmel,wakeup-counter: Counter on Wake-up 0 (between 0x0 and 0xf).
133−
134−optional at91sam9260 properties:
135−- atmel,wakeup-rtt-timer: boolean to enable Real-time Timer Wake-up.
136−
137−optional at91sam9rl properties:
138−- atmel,wakeup-rtc-timer: boolean to enable Real-time Clock Wake-up.
139−- atmel,wakeup-rtt-timer: boolean to enable Real-time Timer Wake-up.
140−
141−optional at91sam9x5 properties:
142−- atmel,wakeup-rtc-timer: boolean to enable Real-time Clock Wake-up.
143−
144−Example:
145−
146− shdwc@fffffd10 {
147− compatible = "atmel,at91sam9260-shdwc";
148− reg = <0xfffffd10 0x10>;
149− clocks = <&clk32k>;
150− };
151−
152−SHDWC SAMA5D2-Compatible Shutdown Controller
153−
154−1) shdwc node
155−
156−required properties:
157−- compatible: should be "atmel,sama5d2-shdwc".
158−- reg: should contain registers location and length
159−- clocks: phandle to input clock.
160−- #address-cells: should be one. The cell is the wake-up input index.
161−- #size-cells: should be zero.
162−
163−optional properties:
164−
165−- debounce-delay-us: minimum wake-up inputs debouncer period in
166− microseconds. It's usually a board-related property.
167−- atmel,wakeup-rtc-timer: boolean to enable Real-Time Clock wake-up.
168−
169−The node contains child nodes for each wake-up input that the platform uses.
170−
171−2) input nodes
172−
173−Wake-up input nodes are usually described in the "board" part of the Device
174−Tree. Note also that input 0 is linked to the wake-up pin and is frequently
175−used.
176−
177−Required properties:
178−- reg: should contain the wake-up input index [0 - 15].
179−
180−Optional properties:
181−- atmel,wakeup-active-high: boolean, the corresponding wake-up input described
182− by the child, forces the wake-up of the core power supply on a high level.
183− The default is to be active low.
184−
185−Example:
186−
187−On the SoC side:
188− shdwc@f8048010 {
189− compatible = "atmel,sama5d2-shdwc";
190− reg = <0xf8048010 0x10>;
191− clocks = <&clk32k>;
192− #address-cells = <1>;
193− #size-cells = <0>;
194− atmel,wakeup-rtc-timer;
195− };
196−
197−On the board side:
198− shdwc@f8048010 {
199− debounce-delay-us = <976>;
200−
201− input@0 {
202− reg = <0>;
203− };
204−
205− input@1 {
206− reg = <1>;
207− atmel,wakeup-active-high;
208− };
209− };
210−
211−Special Function Registers (SFR)
212−
213−Special Function Registers (SFR) manage specific aspects of the integrated
214−memory, bridge implementations, processor and other functionality not controlled
215−elsewhere.
216−
217−required properties:
218−- compatible: Should be "atmel,<chip>-sfr", "syscon" or
219− "atmel,<chip>-sfrbu", "syscon"
220− <chip> can be "sama5d3", "sama5d4" or "sama5d2".
221−- reg: Should contain registers location and length
222−
223− sfr@f0038000 {
224− compatible = "atmel,sama5d3-sfr", "syscon";
225− reg = <0xf0038000 0x60>;
226− };
227−
228−Security Module (SECUMOD)
229−
230−The Security Module macrocell provides all necessary secure functions to avoid
231−voltage, temperature, frequency and mechanical attacks on the chip. It also
232−embeds secure memories that can be scrambled
233−
234−required properties:
235−- compatible: Should be "atmel,<chip>-secumod", "syscon".
236− <chip> can be "sama5d2".
237−- reg: Should contain registers location and length
238−
239− secumod@fc040000 {
240− compatible = "atmel,sama5d2-secumod", "syscon";
241− reg = <0xfc040000 0x100>;
242− };
Documentation/devicetree/bindings/arm/atmel-sysregs.txt+171−0
@@ -0,0 +1,171 @@
1+Atmel system registers
2+
3+Chipid required properties:
4+- compatible: Should be "atmel,sama5d2-chipid"
5+- reg : Should contain registers location and length
6+
7+PIT Timer required properties:
8+- compatible: Should be "atmel,at91sam9260-pit"
9+- reg: Should contain registers location and length
10+- interrupts: Should contain interrupt for the PIT which is the IRQ line
11+ shared across all System Controller members.
12+
13+System Timer (ST) required properties:
14+- compatible: Should be "atmel,at91rm9200-st", "syscon", "simple-mfd"
15+- reg: Should contain registers location and length
16+- interrupts: Should contain interrupt for the ST which is the IRQ line
17+ shared across all System Controller members.
18+- clocks: phandle to input clock.
19+Its subnodes can be:
20+- watchdog: compatible should be "atmel,at91rm9200-wdt"
21+
22+RSTC Reset Controller required properties:
23+- compatible: Should be "atmel,<chip>-rstc".
24+ <chip> can be "at91sam9260" or "at91sam9g45" or "sama5d3"
25+- reg: Should contain registers location and length
26+- clocks: phandle to input clock.
27+
28+Example:
29+
30+ rstc@fffffd00 {
31+ compatible = "atmel,at91sam9260-rstc";
32+ reg = <0xfffffd00 0x10>;
33+ clocks = <&clk32k>;
34+ };
35+
36+RAMC SDRAM/DDR Controller required properties:
37+- compatible: Should be "atmel,at91rm9200-sdramc", "syscon"
38+ "atmel,at91sam9260-sdramc",
39+ "atmel,at91sam9g45-ddramc",
40+ "atmel,sama5d3-ddramc",
41+- reg: Should contain registers location and length
42+
43+Examples:
44+
45+ ramc0: ramc@ffffe800 {
46+ compatible = "atmel,at91sam9g45-ddramc";
47+ reg = <0xffffe800 0x200>;
48+ };
49+
50+SHDWC Shutdown Controller
51+
52+required properties:
53+- compatible: Should be "atmel,<chip>-shdwc".
54+ <chip> can be "at91sam9260", "at91sam9rl" or "at91sam9x5".
55+- reg: Should contain registers location and length
56+- clocks: phandle to input clock.
57+
58+optional properties:
59+- atmel,wakeup-mode: String, operation mode of the wakeup mode.
60+ Supported values are: "none", "high", "low", "any".
61+- atmel,wakeup-counter: Counter on Wake-up 0 (between 0x0 and 0xf).
62+
63+optional at91sam9260 properties:
64+- atmel,wakeup-rtt-timer: boolean to enable Real-time Timer Wake-up.
65+
66+optional at91sam9rl properties:
67+- atmel,wakeup-rtc-timer: boolean to enable Real-time Clock Wake-up.
68+- atmel,wakeup-rtt-timer: boolean to enable Real-time Timer Wake-up.
69+
70+optional at91sam9x5 properties:
71+- atmel,wakeup-rtc-timer: boolean to enable Real-time Clock Wake-up.
72+
73+Example:
74+
75+ shdwc@fffffd10 {
76+ compatible = "atmel,at91sam9260-shdwc";
77+ reg = <0xfffffd10 0x10>;
78+ clocks = <&clk32k>;
79+ };
80+
81+SHDWC SAMA5D2-Compatible Shutdown Controller
82+
83+1) shdwc node
84+
85+required properties:
86+- compatible: should be "atmel,sama5d2-shdwc".
87+- reg: should contain registers location and length
88+- clocks: phandle to input clock.
89+- #address-cells: should be one. The cell is the wake-up input index.
90+- #size-cells: should be zero.
91+
92+optional properties:
93+
94+- debounce-delay-us: minimum wake-up inputs debouncer period in
95+ microseconds. It's usually a board-related property.
96+- atmel,wakeup-rtc-timer: boolean to enable Real-Time Clock wake-up.
97+
98+The node contains child nodes for each wake-up input that the platform uses.
99+
100+2) input nodes
101+
102+Wake-up input nodes are usually described in the "board" part of the Device
103+Tree. Note also that input 0 is linked to the wake-up pin and is frequently
104+used.
105+
106+Required properties:
107+- reg: should contain the wake-up input index [0 - 15].
108+
109+Optional properties:
110+- atmel,wakeup-active-high: boolean, the corresponding wake-up input described
111+ by the child, forces the wake-up of the core power supply on a high level.
112+ The default is to be active low.
113+
114+Example:
115+
116+On the SoC side:
117+ shdwc@f8048010 {
118+ compatible = "atmel,sama5d2-shdwc";
119+ reg = <0xf8048010 0x10>;
120+ clocks = <&clk32k>;
121+ #address-cells = <1>;
122+ #size-cells = <0>;
123+ atmel,wakeup-rtc-timer;
124+ };
125+
126+On the board side:
127+ shdwc@f8048010 {
128+ debounce-delay-us = <976>;
129+
130+ input@0 {
131+ reg = <0>;
132+ };
133+
134+ input@1 {
135+ reg = <1>;
136+ atmel,wakeup-active-high;
137+ };
138+ };
139+
140+Special Function Registers (SFR)
141+
142+Special Function Registers (SFR) manage specific aspects of the integrated
143+memory, bridge implementations, processor and other functionality not controlled
144+elsewhere.
145+
146+required properties:
147+- compatible: Should be "atmel,<chip>-sfr", "syscon" or
148+ "atmel,<chip>-sfrbu", "syscon"
149+ <chip> can be "sama5d3", "sama5d4" or "sama5d2".
150+- reg: Should contain registers location and length
151+
152+ sfr@f0038000 {
153+ compatible = "atmel,sama5d3-sfr", "syscon";
154+ reg = <0xf0038000 0x60>;
155+ };
156+
157+Security Module (SECUMOD)
158+
159+The Security Module macrocell provides all necessary secure functions to avoid
160+voltage, temperature, frequency and mechanical attacks on the chip. It also
161+embeds secure memories that can be scrambled
162+
163+required properties:
164+- compatible: Should be "atmel,<chip>-secumod", "syscon".
165+ <chip> can be "sama5d2".
166+- reg: Should contain registers location and length
167+
168+ secumod@fc040000 {
169+ compatible = "atmel,sama5d2-secumod", "syscon";
170+ reg = <0xfc040000 0x100>;
171+ };
Documentation/devicetree/bindings/arm/bcm/brcm,bcm2835.txt+8−0
@@ -42,6 +42,14 @@ Raspberry Pi Compute Module · 41 unmodified lines
4242 Required root node properties:
4343 compatible = "raspberrypi,compute-module", "brcm,bcm2835";
4444
45+Raspberry Pi Compute Module 3
46+Required root node properties:
47+compatible = "raspberrypi,3-compute-module", "brcm,bcm2837";
48+
49+Raspberry Pi Compute Module 3 Lite
50+Required root node properties:
51+compatible = "raspberrypi,3-compute-module-lite", "brcm,bcm2837";
52+
4553 Raspberry Pi Zero
4654 Required root node properties:
4755 compatible = "raspberrypi,model-zero", "brcm,bcm2835";
Documentation/devicetree/bindings/arm/coresight.txt+65−55
@@ -54,9 +54,7 @@ its hardware characteristcs. · 53 unmodified lines
5454 clocks the core of that coresight component. The latter clock
5555 is optional.
5656
57− * port or ports: The representation of the component's port
58− layout using the generic DT graph presentation found in
59− "bindings/graph.txt".
57+ * port or ports: see "Graph bindings for Coresight" below.
6058
6159 * Additional required properties for System Trace Macrocells (STM):
6260 * reg: along with the physical base address and length of the register
@@ -73,7 +71,7 @@ its hardware characteristcs. · 10 unmodified lines
7371 AMBA markee):
7472 - "arm,coresight-replicator"
7573
76− * port or ports: same as above.
74+ * port or ports: see "Graph bindings for Coresight" below.
7775
7876 * Optional properties for ETM/PTMs:
7977
@@ -96,6 +94,20 @@ its hardware characteristcs. · 16 unmodified lines
9694 * interrupts : Exactly one SPI may be listed for reporting the address
9795 error
9896
97+Graph bindings for Coresight
98+-------------------------------
99+
100+Coresight components are interconnected to create a data path for the flow of
101+trace data generated from the "sources" to their collection points "sink".
102+Each coresight component must describe the "input" and "output" connections.
103+The connections must be described via generic DT graph bindings as described
104+by the "bindings/graph.txt", where each "port" along with an "endpoint"
105+component represents a hardware port and the connection.
106+
107+ * All output ports must be listed inside a child node named "out-ports"
108+ * All input ports must be listed inside a child node named "in-ports".
109+ * Port address must match the hardware port number.
110+
99111 Example:
100112
101113 1. Sinks
@@ -105,10 +117,11 @@ Example: · 3 unmodified lines
105117
106118 clocks = <&oscclk6a>;
107119 clock-names = "apb_pclk";
108− port {
109− etb_in_port: endpoint@0 {
110− slave-mode;
111− remote-endpoint = <&replicator_out_port0>;
120+ in-ports {
121+ port {
122+ etb_in_port: endpoint@0 {
123+ remote-endpoint = <&replicator_out_port0>;
124+ };
112125 };
113126 };
114127 };
@@ -119,10 +132,11 @@ Example: · 4 unmodified lines
119132
120133 clocks = <&oscclk6a>;
121134 clock-names = "apb_pclk";
122− port {
123− tpiu_in_port: endpoint@0 {
124− slave-mode;
125− remote-endpoint = <&replicator_out_port1>;
135+ in-ports {
136+ port {
137+ tpiu_in_port: endpoint@0 {
138+ remote-endpoint = <&replicator_out_port1>;
139+ };
126140 };
127141 };
128142 };
@@ -133,22 +147,16 @@ Example: · 4 unmodified lines
133147
134148 clocks = <&oscclk6a>;
135149 clock-names = "apb_pclk";
136− ports {
137− #address-cells = <1>;
138− #size-cells = <0>;
139−
140− /* input port */
141− port@0 {
142− reg = <0>;
150+ in-ports {
151+ port {
143152 etr_in_port: endpoint {
144− slave-mode;
145153 remote-endpoint = <&replicator2_out_port0>;
146154 };
147155 };
156+ };
148157
149− /* CATU link represented by output port */
150− port@1 {
151− reg = <1>;
158+ out-ports {
159+ port {
152160 etr_out_port: endpoint {
153161 remote-endpoint = <&catu_in_port>;
154162 };
@@ -163,7 +171,7 @@ Example: · 8 unmodified lines
163171 */
164172 compatible = "arm,coresight-replicator";
165173
166− ports {
174+ out-ports {
167175 #address-cells = <1>;
168176 #size-cells = <0>;
169177
@@ -181,12 +189,11 @@ Example: · 11 unmodified lines
181189 remote-endpoint = <&tpiu_in_port>;
182190 };
183191 };
192+ };
184193
185− /* replicator input port */
186− port@2 {
187− reg = <0>;
194+ in-ports {
195+ port {
188196 replicator_in_port0: endpoint {
189− slave-mode;
190197 remote-endpoint = <&funnel_out_port0>;
191198 };
192199 };
@@ -199,40 +206,36 @@ Example: · 6 unmodified lines
199206
200207 clocks = <&oscclk6a>;
201208 clock-names = "apb_pclk";
202− ports {
203− #address-cells = <1>;
204− #size-cells = <0>;
205−
206− /* funnel output port */
207− port@0 {
208− reg = <0>;
209+ out-ports {
210+ port {
209211 funnel_out_port0: endpoint {
210212 remote-endpoint =
211213 <&replicator_in_port0>;
212214 };
213215 };
216+ };
214217
215− /* funnel input ports */
216− port@1 {
218+ in-ports {
219+ #address-cells = <1>;
220+ #size-cells = <0>;
221+
222+ port@0 {
217223 reg = <0>;
218224 funnel_in_port0: endpoint {
219− slave-mode;
220225 remote-endpoint = <&ptm0_out_port>;
221226 };
222227 };
223228
224− port@2 {
229+ port@1 {
225230 reg = <1>;
226231 funnel_in_port1: endpoint {
227− slave-mode;
228232 remote-endpoint = <&ptm1_out_port>;
229233 };
230234 };
231235
232− port@3 {
236+ port@2 {
233237 reg = <2>;
234238 funnel_in_port2: endpoint {
235− slave-mode;
236239 remote-endpoint = <&etm0_out_port>;
237240 };
238241 };
@@ -248,9 +251,11 @@ Example: · 9 unmodified lines
248251 cpu = <&cpu0>;
249252 clocks = <&oscclk6a>;
250253 clock-names = "apb_pclk";
251− port {
252− ptm0_out_port: endpoint {
253− remote-endpoint = <&funnel_in_port0>;
254+ out-ports {
255+ port {
256+ ptm0_out_port: endpoint {
257+ remote-endpoint = <&funnel_in_port0>;
258+ };
254259 };
255260 };
256261 };
@@ -262,9 +267,11 @@ Example: · 5 unmodified lines
262267 cpu = <&cpu1>;
263268 clocks = <&oscclk6a>;
264269 clock-names = "apb_pclk";
265− port {
266− ptm1_out_port: endpoint {
267− remote-endpoint = <&funnel_in_port1>;
270+ out-ports {
271+ port {
272+ ptm1_out_port: endpoint {
273+ remote-endpoint = <&funnel_in_port1>;
274+ };
268275 };
269276 };
270277 };
@@ -278,9 +285,11 @@ Example: · 7 unmodified lines
278285
279286 clocks = <&soc_smc50mhz>;
280287 clock-names = "apb_pclk";
281− port {
282− stm_out_port: endpoint {
283− remote-endpoint = <&main_funnel_in_port2>;
288+ out-ports {
289+ port {
290+ stm_out_port: endpoint {
291+ remote-endpoint = <&main_funnel_in_port2>;
292+ };
284293 };
285294 };
286295 };
@@ -295,10 +304,11 @@ Example: · 8 unmodified lines
295304 clock-names = "apb_pclk";
296305
297306 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
298− port {
299− catu_in_port: endpoint {
300− slave-mode;
301− remote-endpoint = <&etr_out_port>;
307+ in-ports {
308+ port {
309+ catu_in_port: endpoint {
310+ remote-endpoint = <&etr_out_port>;
311+ };
302312 };
303313 };
304314 };
Documentation/devicetree/bindings/arm/cpu-capacity.txt+5−3
@@ -59,9 +59,11 @@ mhz values (normalized w.r.t. the highest value found while parsing the DT). · 58 unmodified lines
5959 ===========================================
6060
6161 Example 1 (ARM 64-bit, 6-cpu system, two clusters):
62−capacities-dmips-mhz are scaled w.r.t. 1024 (cpu@0 and cpu@1)
63−supposing cluster0@max-freq=1100 and custer1@max-freq=850,
64−final capacities are 1024 for cluster0 and 446 for cluster1
62+The capacities-dmips-mhz or DMIPS/MHz values (scaled to 1024)
63+are 1024 and 578 for cluster0 and cluster1. Further normalization
64+is done by the operating system based on cluster0@max-freq=1100 and
65+custer1@max-freq=850, final capacities are 1024 for cluster0 and
66+446 for cluster1 (576*850/1100).
6567
6668 cpus {
6769 #address-cells = <2>;
Documentation/devicetree/bindings/arm/cpu-enable-method/al,alpine-smp+31−3
@@ -14,7 +14,28 @@ Related properties: (none) · 13 unmodified lines
1414
1515 Note:
1616 This enable method requires valid nodes compatible with
17−"al,alpine-cpu-resume" and "al,alpine-nb-service"[1].
17+"al,alpine-cpu-resume" and "al,alpine-nb-service".
18+
19+
20+* Alpine CPU resume registers
21+
22+The CPU resume register are used to define required resume address after
23+reset.
24+
25+Properties:
26+- compatible : Should contain "al,alpine-cpu-resume".
27+- reg : Offset and length of the register set for the device
28+
29+
30+* Alpine System-Fabric Service Registers
31+
32+The System-Fabric Service Registers allow various operation on CPU and
33+system fabric, like powering CPUs off.
34+
35+Properties:
36+- compatible : Should contain "al,alpine-sysfabric-service" and "syscon".
37+- reg : Offset and length of the register set for the device
38+
1839
1940 Example:
2041
@@ -48,5 +69,12 @@ cpus { · 27 unmodified lines
4869 };
4970 };
5071
51−--
52−[1] arm/al,alpine.txt
72+cpu_resume {
73+ compatible = "al,alpine-cpu-resume";
74+ reg = <0xfbff5ed0 0x30>;
75+};
76+
77+nb_service {
78+ compatible = "al,alpine-sysfabric-service", "syscon";
79+ reg = <0xfb070000 0x10000>;
80+};
Documentation/devicetree/bindings/arm/cpus.txt+2−2
@@ -276,7 +276,7 @@ described below. · 275 unmodified lines
276276 Usage: optional
277277 Value type: <prop-encoded-array>
278278 Definition: A u32 value that represents the running time dynamic
279− power coefficient in units of mW/MHz/uV^2. The
279+ power coefficient in units of uW/MHz/V^2. The
280280 coefficient can either be calculated from power
281281 measurements or derived by analysis.
282282
@@ -287,7 +287,7 @@ described below. · 4 unmodified lines
287287
288288 Pdyn = dynamic-power-coefficient * V^2 * f
289289
290− where voltage is in uV, frequency is in MHz.
290+ where voltage is in V, frequency is in MHz.
291291
292292 Example 1 (dual-cluster big.LITTLE system 32-bit):
293293
Documentation/devicetree/bindings/arm/freescale/fsl,layerscape-dcfg.txt+19−0
@@ -0,0 +1,19 @@
1+Freescale DCFG
2+
3+DCFG is the device configuration unit, that provides general purpose
4+configuration and status for the device. Such as setting the secondary
5+core start address and release the secondary core from holdoff and startup.
6+
7+Required properties:
8+ - compatible: Should contain a chip-specific compatible string,
9+ Chip-specific strings are of the form "fsl,<chip>-dcfg",
10+ The following <chip>s are known to be supported:
11+ ls1012a, ls1021a, ls1043a, ls1046a, ls2080a.
12+
13+ - reg : should contain base address and length of DCFG memory-mapped registers
14+
15+Example:
16+ dcfg: dcfg@1ee0000 {
17+ compatible = "fsl,ls1021a-dcfg";
18+ reg = <0x0 0x1ee0000 0x0 0x10000>;
19+ };
Documentation/devicetree/bindings/arm/freescale/fsl,layerscape-scfg.txt+19−0
@@ -0,0 +1,19 @@
1+Freescale SCFG
2+
3+SCFG is the supplemental configuration unit, that provides SoC specific
4+configuration and status registers for the chip. Such as getting PEX port
5+status.
6+
7+Required properties:
8+ - compatible: Should contain a chip-specific compatible string,
9+ Chip-specific strings are of the form "fsl,<chip>-scfg",
10+ The following <chip>s are known to be supported:
11+ ls1012a, ls1021a, ls1043a, ls1046a, ls2080a.
12+
13+ - reg: should contain base address and length of SCFG memory-mapped registers
14+
15+Example:
16+ scfg: scfg@1570000 {
17+ compatible = "fsl,ls1021a-scfg";
18+ reg = <0x0 0x1570000 0x0 0x10000>;
19+ };
Documentation/devicetree/bindings/arm/freescale/fsl,scu.txt+183−0
@@ -0,0 +1,183 @@
1+NXP i.MX System Controller Firmware (SCFW)
2+--------------------------------------------------------------------
3+
4+The System Controller Firmware (SCFW) is a low-level system function
5+which runs on a dedicated Cortex-M core to provide power, clock, and
6+resource management. It exists on some i.MX8 processors. e.g. i.MX8QM
7+(QM, QP), and i.MX8QX (QXP, DX).
8+
9+The AP communicates with the SC using a multi-ported MU module found
10+in the LSIO subsystem. The current definition of this MU module provides
11+5 remote AP connections to the SC to support up to 5 execution environments
12+(TZ, HV, standard Linux, etc.). The SC side of this MU module interfaces
13+with the LSIO DSC IP bus. The SC firmware will communicate with this MU
14+using the MSI bus.
15+
16+System Controller Device Node:
17+============================================================
18+
19+The scu node with the following properties shall be under the /firmware/ node.
20+
21+Required properties:
22+-------------------
23+- compatible: should be "fsl,imx-scu".
24+- mbox-names: should include "tx0", "tx1", "tx2", "tx3",
25+ "rx0", "rx1", "rx2", "rx3".
26+- mboxes: List of phandle of 4 MU channels for tx and 4 MU channels
27+ for rx. All 8 MU channels must be in the same MU instance.
28+ Cross instances are not allowed. The MU instance can only
29+ be one of LSIO MU0~M4 for imx8qxp and imx8qm. Users need
30+ to make sure use the one which is not conflict with other
31+ execution environments. e.g. ATF.
32+ Note:
33+ Channel 0 must be "tx0" or "rx0".
34+ Channel 1 must be "tx1" or "rx1".
35+ Channel 2 must be "tx2" or "rx2".
36+ Channel 3 must be "tx3" or "rx3".
37+ e.g.
38+ mboxes = <&lsio_mu1 0 0
39+ &lsio_mu1 0 1
40+ &lsio_mu1 0 2
41+ &lsio_mu1 0 3
42+ &lsio_mu1 1 0
43+ &lsio_mu1 1 1
44+ &lsio_mu1 1 2
45+ &lsio_mu1 1 3>;
46+ See Documentation/devicetree/bindings/mailbox/fsl,mu.txt
47+ for detailed mailbox binding.
48+
49+i.MX SCU Client Device Node:
50+============================================================
51+
52+Client nodes are maintained as children of the relevant IMX-SCU device node.
53+
54+Power domain bindings based on SCU Message Protocol
55+------------------------------------------------------------
56+
57+This binding for the SCU power domain providers uses the generic power
58+domain binding[2].
59+
60+Required properties:
61+- compatible: Should be "fsl,scu-pd".
62+- #address-cells: Should be 1.
63+- #size-cells: Should be 0.
64+
65+Required properties for power domain sub nodes:
66+- #power-domain-cells: Must be 0.
67+
68+Optional Properties:
69+- reg: Resource ID of this power domain.
70+ No exist means uncontrollable by user.
71+ See detailed Resource ID list from:
72+ include/dt-bindings/power/imx-rsrc.h
73+- power-domains: phandle pointing to the parent power domain.
74+
75+Clock bindings based on SCU Message Protocol
76+------------------------------------------------------------
77+
78+This binding uses the common clock binding[1].
79+
80+Required properties:
81+- compatible: Should be "fsl,imx8qxp-clock".
82+- #clock-cells: Should be 1. Contains the Clock ID value.
83+- clocks: List of clock specifiers, must contain an entry for
84+ each required entry in clock-names
85+- clock-names: Should include entries "xtal_32KHz", "xtal_24MHz"
86+
87+The clock consumer should specify the desired clock by having the clock
88+ID in its "clocks" phandle cell.
89+
90+See the full list of clock IDs from:
91+include/dt-bindings/clock/imx8qxp-clock.h
92+
93+Pinctrl bindings based on SCU Message Protocol
94+------------------------------------------------------------
95+
96+This binding uses the i.MX common pinctrl binding[3].
97+
98+Required properties:
99+- compatible: Should be "fsl,imx8qxp-iomuxc".
100+
101+Required properties for Pinctrl sub nodes:
102+- fsl,pins: Each entry consists of 3 integers which represents
103+ the mux and config setting for one pin. The first 2
104+ integers <pin_id mux_mode> are specified using a
105+ PIN_FUNC_ID macro, which can be found in
106+ <dt-bindings/pinctrl/pads-imx8qxp.h>.
107+ The last integer CONFIG is the pad setting value like
108+ pull-up on this pin.
109+
110+ Please refer to i.MX8QXP Reference Manual for detailed
111+ CONFIG settings.
112+
113+[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
114+[2] Documentation/devicetree/bindings/power/power_domain.txt
115+[3] Documentation/devicetree/bindings/pinctrl/fsl,imx-pinctrl.txt
116+
117+Example (imx8qxp):
118+-------------
119+lsio_mu1: mailbox@5d1c0000 {
120+ ...
121+ #mbox-cells = <2>;
122+};
123+
124+firmware {
125+ scu {
126+ compatible = "fsl,imx-scu";
127+ mbox-names = "tx0", "tx1", "tx2", "tx3",
128+ "rx0", "rx1", "rx2", "rx3";
129+ mboxes = <&lsio_mu1 0 0
130+ &lsio_mu1 0 1
131+ &lsio_mu1 0 2
132+ &lsio_mu1 0 3
133+ &lsio_mu1 1 0
134+ &lsio_mu1 1 1
135+ &lsio_mu1 1 2
136+ &lsio_mu1 1 3>;
137+
138+ clk: clk {
139+ compatible = "fsl,imx8qxp-clk";
140+ #clock-cells = <1>;
141+ };
142+
143+ iomuxc {
144+ compatible = "fsl,imx8qxp-iomuxc";
145+
146+ pinctrl_lpuart0: lpuart0grp {
147+ fsl,pins = <
148+ SC_P_UART0_RX_ADMA_UART0_RX 0x06000020
149+ SC_P_UART0_TX_ADMA_UART0_TX 0x06000020
150+ >;
151+ };
152+ ...
153+ };
154+
155+ imx8qx-pm {
156+ compatible = "fsl,scu-pd";
157+ #address-cells = <1>;
158+ #size-cells = <0>;
159+
160+ pd_dma: dma-power-domain {
161+ #power-domain-cells = <0>;
162+
163+ pd_dma_lpuart0: dma-lpuart0@57 {
164+ reg = <SC_R_UART_0>;
165+ #power-domain-cells = <0>;
166+ power-domains = <&pd_dma>;
167+ };
168+ ...
169+ };
170+ ...
171+ };
172+ };
173+};
174+
175+serial@5a060000 {
176+ ...
177+ pinctrl-names = "default";
178+ pinctrl-0 = <&pinctrl_lpuart0>;
179+ clocks = <&clk IMX8QXP_UART0_CLK>,
180+ <&clk IMX8QXP_UART0_IPG_CLK>;
181+ clock-names = "per", "ipg";
182+ power-domains = <&pd_dma_lpuart0>;
183+};
Documentation/devicetree/bindings/arm/fsl.txt+44−39
@@ -57,6 +57,50 @@ i.MX6SLL EVK board · 56 unmodified lines
5757 Required root node properties:
5858 - compatible = "fsl,imx6sll-evk", "fsl,imx6sll";
5959
60+i.MX6 Quad Plus SABRE Smart Device Board
61+Required root node properties:
62+ - compatible = "fsl,imx6qp-sabresd", "fsl,imx6qp";
63+
64+i.MX6 Quad Plus SABRE Automotive Board
65+Required root node properties:
66+ - compatible = "fsl,imx6qp-sabreauto", "fsl,imx6qp";
67+
68+i.MX6 DualLite SABRE Smart Device Board
69+Required root node properties:
70+ - compatible = "fsl,imx6dl-sabresd", "fsl,imx6dl";
71+
72+i.MX6 DualLite/Solo SABRE Automotive Board
73+Required root node properties:
74+ - compatible = "fsl,imx6dl-sabreauto", "fsl,imx6dl";
75+
76+i.MX6 SoloLite EVK Board
77+Required root node properties:
78+ - compatible = "fsl,imx6sl-evk", "fsl,imx6sl";
79+
80+i.MX6 UltraLite 14x14 EVK Board
81+Required root node properties:
82+ - compatible = "fsl,imx6ul-14x14-evk", "fsl,imx6ul";
83+
84+i.MX6 UltraLiteLite 14x14 EVK Board
85+Required root node properties:
86+ - compatible = "fsl,imx6ull-14x14-evk", "fsl,imx6ull";
87+
88+i.MX6 ULZ 14x14 EVK Board
89+Required root node properties:
90+ - compatible = "fsl,imx6ulz-14x14-evk", "fsl,imx6ull", "fsl,imx6ulz";
91+
92+i.MX6 SoloX SDB Board
93+Required root node properties:
94+ - compatible = "fsl,imx6sx-sdb", "fsl,imx6sx";
95+
96+i.MX6 SoloX Sabre Auto Board
97+Required root node properties:
98+ - compatible = "fsl,imx6sx-sabreauto", "fsl,imx6sx";
99+
100+i.MX7 SabreSD Board
101+Required root node properties:
102+ - compatible = "fsl,imx7d-sdb", "fsl,imx7d";
103+
60104 Generic i.MX boards
61105 -------------------
62106
@@ -101,45 +145,6 @@ Freescale LS1021A Platform Device Tree Bindings · 38 unmodified lines
101145 Required root node compatible properties:
102146 - compatible = "fsl,ls1021a";
103147
104−Freescale SoC-specific Device Tree Bindings
105−-------------------------------------------
106−
107−Freescale SCFG
108− SCFG is the supplemental configuration unit, that provides SoC specific
109−configuration and status registers for the chip. Such as getting PEX port
110−status.
111− Required properties:
112− - compatible: Should contain a chip-specific compatible string,
113− Chip-specific strings are of the form "fsl,<chip>-scfg",
114− The following <chip>s are known to be supported:
115− ls1012a, ls1021a, ls1043a, ls1046a, ls2080a.
116−
117− - reg: should contain base address and length of SCFG memory-mapped registers
118−
119−Example:
120− scfg: scfg@1570000 {
121− compatible = "fsl,ls1021a-scfg";
122− reg = <0x0 0x1570000 0x0 0x10000>;
123− };
124−
125−Freescale DCFG
126− DCFG is the device configuration unit, that provides general purpose
127−configuration and status for the device. Such as setting the secondary
128−core start address and release the secondary core from holdoff and startup.
129− Required properties:
130− - compatible: Should contain a chip-specific compatible string,
131− Chip-specific strings are of the form "fsl,<chip>-dcfg",
132− The following <chip>s are known to be supported:
133− ls1012a, ls1021a, ls1043a, ls1046a, ls2080a.
134−
135− - reg : should contain base address and length of DCFG memory-mapped registers
136−
137−Example:
138− dcfg: dcfg@1ee0000 {
139− compatible = "fsl,ls1021a-dcfg";
140− reg = <0x0 0x1ee0000 0x0 0x10000>;
141− };
142−
143148 Freescale ARMv8 based Layerscape SoC family Device Tree Bindings
144149 ----------------------------------------------------------------
145150
Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt+8−0
@@ -8,6 +8,14 @@ HiKey960 Board · 7 unmodified lines
88 Required root node properties:
99 - compatible = "hisilicon,hi3660-hikey960", "hisilicon,hi3660";
1010
11+Hi3670 SoC
12+Required root node properties:
13+ - compatible = "hisilicon,hi3670";
14+
15+HiKey970 Board
16+Required root node properties:
17+ - compatible = "hisilicon,hi3670-hikey970", "hisilicon,hi3670";
18+
1119 Hi3798cv200 SoC
1220 Required root node properties:
1321 - compatible = "hisilicon,hi3798cv200";
Documentation/devicetree/bindings/arm/keystone/ti,sci.txt+4−0
@@ -45,11 +45,15 @@ Optional Properties: · 44 unmodified lines
4545 debug_messages - Map the Debug message region
4646 - reg: register space corresponding to the debug_messages
4747 - ti,system-reboot-controller: If system reboot can be triggered by SoC reboot
48+- ti,host-id: Integer value corresponding to the host ID assigned by Firmware
49+ for identification of host processing entities such as virtual
50+ machines
4851
4952 Example (K2G):
5053 -------------
5154 pmmc: pmmc {
5255 compatible = "ti,k2g-sci";
56+ ti,host-id = <2>;
5357 mbox-names = "rx", "tx";
5458 mboxes= <&msgmgr &msgmgr_proxy_pmmc_rx>,
5559 <&msgmgr &msgmgr_proxy_pmmc_tx>;
Documentation/devicetree/bindings/arm/mediatek/mediatek,apmixedsys.txt+1−0
@@ -10,6 +10,7 @@ Required Properties: · 9 unmodified lines
1010 - "mediatek,mt2712-apmixedsys", "syscon"
1111 - "mediatek,mt6797-apmixedsys"
1212 - "mediatek,mt7622-apmixedsys"
13+ - "mediatek,mt7623-apmixedsys", "mediatek,mt2701-apmixedsys"
1314 - "mediatek,mt8135-apmixedsys"
1415 - "mediatek,mt8173-apmixedsys"
1516 - #clock-cells: Must be 1
Documentation/devicetree/bindings/arm/mediatek/mediatek,audsys.txt+1−0
@@ -8,6 +8,7 @@ Required Properties: · 7 unmodified lines
88 - compatible: Should be one of:
99 - "mediatek,mt2701-audsys", "syscon"
1010 - "mediatek,mt7622-audsys", "syscon"
11+ - "mediatek,mt7623-audsys", "mediatek,mt2701-audsys", "syscon"
1112 - #clock-cells: Must be 1
1213
1314 The AUDSYS controller uses the common clk binding from
Documentation/devicetree/bindings/arm/mediatek/mediatek,bdpsys.txt+1−0
@@ -8,6 +8,7 @@ Required Properties: · 7 unmodified lines
88 - compatible: Should be:
99 - "mediatek,mt2701-bdpsys", "syscon"
1010 - "mediatek,mt2712-bdpsys", "syscon"
11+ - "mediatek,mt7623-bdpsys", "mediatek,mt2701-bdpsys", "syscon"
1112 - #clock-cells: Must be 1
1213
1314 The bdpsys controller uses the common clk binding from
Documentation/devicetree/bindings/arm/mediatek/mediatek,ethsys.txt+1−0
@@ -8,6 +8,7 @@ Required Properties: · 7 unmodified lines
88 - compatible: Should be:
99 - "mediatek,mt2701-ethsys", "syscon"
1010 - "mediatek,mt7622-ethsys", "syscon"
11+ - "mediatek,mt7623-ethsys", "mediatek,mt2701-ethsys", "syscon"
1112 - #clock-cells: Must be 1
1213 - #reset-cells: Must be 1
1314
Documentation/devicetree/bindings/arm/mediatek/mediatek,hifsys.txt+1−0
@@ -9,6 +9,7 @@ Required Properties: · 8 unmodified lines
99 - compatible: Should be:
1010 - "mediatek,mt2701-hifsys", "syscon"
1111 - "mediatek,mt7622-hifsys", "syscon"
12+ - "mediatek,mt7623-hifsys", "mediatek,mt2701-hifsys", "syscon"
1213 - #clock-cells: Must be 1
1314
1415 The hifsys controller uses the common clk binding from
Documentation/devicetree/bindings/arm/mediatek/mediatek,imgsys.txt+1−0
@@ -9,6 +9,7 @@ Required Properties: · 8 unmodified lines
99 - "mediatek,mt2701-imgsys", "syscon"
1010 - "mediatek,mt2712-imgsys", "syscon"
1111 - "mediatek,mt6797-imgsys", "syscon"
12+ - "mediatek,mt7623-imgsys", "mediatek,mt2701-imgsys", "syscon"
1213 - "mediatek,mt8173-imgsys", "syscon"
1314 - #clock-cells: Must be 1
1415
Documentation/devicetree/bindings/arm/mediatek/mediatek,infracfg.txt+1−0
@@ -11,6 +11,7 @@ Required Properties: · 10 unmodified lines
1111 - "mediatek,mt2712-infracfg", "syscon"
1212 - "mediatek,mt6797-infracfg", "syscon"
1313 - "mediatek,mt7622-infracfg", "syscon"
14+ - "mediatek,mt7623-infracfg", "mediatek,mt2701-infracfg", "syscon"
1415 - "mediatek,mt8135-infracfg", "syscon"
1516 - "mediatek,mt8173-infracfg", "syscon"
1617 - #clock-cells: Must be 1
Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.txt+1−0
@@ -9,6 +9,7 @@ Required Properties: · 8 unmodified lines
99 - "mediatek,mt2701-mmsys", "syscon"
1010 - "mediatek,mt2712-mmsys", "syscon"
1111 - "mediatek,mt6797-mmsys", "syscon"
12+ - "mediatek,mt7623-mmsys", "mediatek,mt2701-mmsys", "syscon"
1213 - "mediatek,mt8173-mmsys", "syscon"
1314 - #clock-cells: Must be 1
1415
Documentation/devicetree/bindings/arm/mediatek/mediatek,pericfg.txt+1−0
@@ -10,6 +10,7 @@ Required Properties: · 9 unmodified lines
1010 - "mediatek,mt2701-pericfg", "syscon"
1111 - "mediatek,mt2712-pericfg", "syscon"
1212 - "mediatek,mt7622-pericfg", "syscon"
13+ - "mediatek,mt7623-pericfg", "mediatek,mt2701-pericfg", "syscon"
1314 - "mediatek,mt8135-pericfg", "syscon"
1415 - "mediatek,mt8173-pericfg", "syscon"
1516 - #clock-cells: Must be 1
Documentation/devicetree/bindings/arm/mediatek/mediatek,topckgen.txt+1−0
@@ -10,6 +10,7 @@ Required Properties: · 9 unmodified lines
1010 - "mediatek,mt2712-topckgen", "syscon"
1111 - "mediatek,mt6797-topckgen"
1212 - "mediatek,mt7622-topckgen"
13+ - "mediatek,mt7623-topckgen", "mediatek,mt2701-topckgen"
1314 - "mediatek,mt8135-topckgen"
1415 - "mediatek,mt8173-topckgen"
1516 - #clock-cells: Must be 1
Documentation/devicetree/bindings/arm/mediatek/mediatek,vdecsys.txt+1−0
@@ -9,6 +9,7 @@ Required Properties: · 8 unmodified lines
99 - "mediatek,mt2701-vdecsys", "syscon"
1010 - "mediatek,mt2712-vdecsys", "syscon"
1111 - "mediatek,mt6797-vdecsys", "syscon"
12+ - "mediatek,mt7623-vdecsys", "mediatek,mt2701-vdecsys", "syscon"
1213 - "mediatek,mt8173-vdecsys", "syscon"
1314 - #clock-cells: Must be 1
1415
Documentation/devicetree/bindings/arm/msm/qcom,kpss-acc.txt+19−0
@@ -21,10 +21,29 @@ PROPERTIES · 20 unmodified lines
2121 the register region. An optional second element specifies
2222 the base address and size of the alias register region.
2323
24+- clocks:
25+ Usage: required
26+ Value type: <prop-encoded-array>
27+ Definition: reference to the pll parents.
28+
29+- clock-names:
30+ Usage: required
31+ Value type: <stringlist>
32+ Definition: must be "pll8_vote", "pxo".
33+
34+- clock-output-names:
35+ Usage: optional
36+ Value type: <string>
37+ Definition: Name of the output clock. Typically acpuX_aux where X is a
38+ CPU number starting at 0.
39+
2440 Example:
2541
2642 clock-controller@2088000 {
2743 compatible = "qcom,kpss-acc-v2";
2844 reg = <0x02088000 0x1000>,
2945 <0x02008000 0x1000>;
46+ clocks = <&gcc PLL8_VOTE>, <&gcc PXO_SRC>;
47+ clock-names = "pll8_vote", "pxo";
48+ clock-output-names = "acpu0_aux";
3049 };
Documentation/devicetree/bindings/arm/msm/qcom,kpss-gcc.txt+44−0
@@ -0,0 +1,44 @@
1+Krait Processor Sub-system (KPSS) Global Clock Controller (GCC)
2+
3+PROPERTIES
4+
5+- compatible:
6+ Usage: required
7+ Value type: <string>
8+ Definition: should be one of the following. The generic compatible
9+ "qcom,kpss-gcc" should also be included.
10+ "qcom,kpss-gcc-ipq8064", "qcom,kpss-gcc"
11+ "qcom,kpss-gcc-apq8064", "qcom,kpss-gcc"
12+ "qcom,kpss-gcc-msm8974", "qcom,kpss-gcc"
13+ "qcom,kpss-gcc-msm8960", "qcom,kpss-gcc"
14+
15+- reg:
16+ Usage: required
17+ Value type: <prop-encoded-array>
18+ Definition: base address and size of the register region
19+
20+- clocks:
21+ Usage: required
22+ Value type: <prop-encoded-array>
23+ Definition: reference to the pll parents.
24+
25+- clock-names:
26+ Usage: required
27+ Value type: <stringlist>
28+ Definition: must be "pll8_vote", "pxo".
29+
30+- clock-output-names:
31+ Usage: required
32+ Value type: <string>
33+ Definition: Name of the output clock. Typically acpu_l2_aux indicating
34+ an L2 cache auxiliary clock.
35+
36+Example:
37+
38+ l2cc: clock-controller@2011000 {
39+ compatible = "qcom,kpss-gcc-ipq8064", "qcom,kpss-gcc";
40+ reg = <0x2011000 0x1000>;
41+ clocks = <&gcc PLL8_VOTE>, <&gcc PXO_SRC>;
42+ clock-names = "pll8_vote", "pxo";
43+ clock-output-names = "acpu_l2_aux";
44+ };
Documentation/devicetree/bindings/arm/msm/qcom,llcc.txt+17−2
@@ -16,11 +16,26 @@ Properties: · 15 unmodified lines
1616 - reg:
1717 Usage: required
1818 Value Type: <prop-encoded-array>
19− Definition: Start address and the the size of the register region.
19+ Definition: The first element specifies the llcc base start address and
20+ the size of the register region. The second element specifies
21+ the llcc broadcast base address and size of the register region.
22+
23+- reg-names:
24+ Usage: required
25+ Value Type: <stringlist>
26+ Definition: Register region names. Must be "llcc_base", "llcc_broadcast_base".
27+
28+- interrupts:
29+ Usage: required
30+ Definition: The interrupt is associated with the llcc edac device.
31+ It's used for llcc cache single and double bit error detection
32+ and reporting.
2033
2134 Example:
2235
2336 cache-controller@1100000 {
2437 compatible = "qcom,sdm845-llcc";
25− reg = <0x1100000 0x250000>;
38+ reg = <0x1100000 0x200000>, <0x1300000 0x50000> ;
39+ reg-names = "llcc_base", "llcc_broadcast_base";
40+ interrupts = <GIC_SPI 582 IRQ_TYPE_LEVEL_HIGH>;
2641 };
Documentation/devicetree/bindings/arm/rockchip.txt+20−0
@@ -5,6 +5,10 @@ Rockchip platforms device tree bindings · 4 unmodified lines
55 Required root node properties:
66 - compatible = "vamrs,ficus", "rockchip,rk3399";
77
8+- 96boards RK3399 Rock960 (ROCK960 Consumer Edition)
9+ Required root node properties:
10+ - compatible = "vamrs,rock960", "rockchip,rk3399";
11+
812 - Amarula Vyasa RK3288 board
913 Required root node properties:
1014 - compatible = "amarula,vyasa-rk3288", "rockchip,rk3288";
@@ -13,6 +17,10 @@ Rockchip platforms device tree bindings · 2 unmodified lines
1317 Required root node properties:
1418 - compatible = "asus,rk3288-tinker", "rockchip,rk3288";
1519
20+- Asus Tinker board S
21+ Required root node properties:
22+ - compatible = "asus,rk3288-tinker-s", "rockchip,rk3288";
23+
1624 - Kylin RK3036 board:
1725 Required root node properties:
1826 - compatible = "rockchip,kylin-rk3036", "rockchip,rk3036";
@@ -59,6 +67,10 @@ Rockchip platforms device tree bindings · 40 unmodified lines
5967 Required root node properties:
6068 - compatible = "firefly,roc-rk3328-cc", "rockchip,rk3328";
6169
70+- Firefly ROC-RK3399-PC board:
71+ Required root node properties:
72+ - compatible = "firefly,roc-rk3399-pc", "rockchip,rk3399";
73+
6274 - ChipSPARK PopMetal-RK3288 board:
6375 Required root node properties:
6476 - compatible = "chipspark,popmetal-rk3288", "rockchip,rk3288";
@@ -160,6 +172,10 @@ Rockchip platforms device tree bindings · 95 unmodified lines
160172 Required root node properties:
161173 - compatible = "pine64,rock64", "rockchip,rk3328";
162174
175+- Pine64 RockPro64 board:
176+ Required root node properties:
177+ - compatible = "pine64,rockpro64", "rockchip,rk3399";
178+
163179 - Rockchip PX3 Evaluation board:
164180 Required root node properties:
165181 - compatible = "rockchip,px3-evb", "rockchip,px3", "rockchip,rk3188";
@@ -168,6 +184,10 @@ Rockchip platforms device tree bindings · 2 unmodified lines
168184 Required root node properties:
169185 - compatible = "rockchip,px5-evb", "rockchip,px5", "rockchip,rk3368";
170186
187+- Rockchip PX30 Evaluation board:
188+ Required root node properties:
189+ - compatible = "rockchip,px30-evb", "rockchip,px30";
190+
171191 - Rockchip RV1108 Evaluation board
172192 Required root node properties:
173193 - compatible = "rockchip,rv1108-evb", "rockchip,rv1108";
Documentation/devicetree/bindings/arm/scu.txt+1−1
@@ -22,7 +22,7 @@ References: · 21 unmodified lines
2222
2323 Example:
2424
25−scu@a04100000 {
25+scu@a0410000 {
2626 compatible = "arm,cortex-a9-scu";
2727 reg = <0xa0410000 0x100>;
2828 };
Documentation/devicetree/bindings/arm/secure.txt+18−1
@@ -32,7 +32,8 @@ describe the view of Secure world using the standard bindings. These · 31 unmodified lines
3232 secure- bindings only need to be used where both the Secure and Normal
3333 world views need to be described in a single device tree.
3434
35−Valid Secure world properties:
35+Valid Secure world properties
36+-----------------------------
3637
3738 - secure-status : specifies whether the device is present and usable
3839 in the secure world. The combination of this with "status" allows
@@ -51,3 +52,19 @@ Valid Secure world properties: · 12 unmodified lines
5152 status = "disabled"; secure-status = "okay"; /* S-only */
5253 status = "disabled"; /* disabled in both */
5354 status = "disabled"; secure-status = "disabled"; /* disabled in both */
55+
56+The secure-chosen node
57+----------------------
58+
59+Similar to the /chosen node which serves as a place for passing data
60+between firmware and the operating system, the /secure-chosen node may
61+be used to pass data to the Secure OS. Only the properties defined
62+below may appear in the /secure-chosen node.
63+
64+- stdout-path : specifies the device to be used by the Secure OS for
65+ its console output. The syntax is the same as for /chosen/stdout-path.
66+ If the /secure-chosen node exists but the stdout-path property is not
67+ present, the Secure OS should not perform any console output. If
68+ /secure-chosen does not exist, the Secure OS should use the value of
69+ /chosen/stdout-path instead (that is, use the same device as the
70+ Normal world OS).
Documentation/devicetree/bindings/arm/shmobile.txt+12−4
@@ -7,6 +7,8 @@ SoCs: · 6 unmodified lines
77 compatible = "renesas,emev2"
88 - RZ/A1H (R7S72100)
99 compatible = "renesas,r7s72100"
10+ - RZ/A2 (R7S9210)
11+ compatible = "renesas,r7s9210"
1012 - SH-Mobile AG5 (R8A73A00/SH73A0)
1113 compatible = "renesas,sh73a0"
1214 - R-Mobile APE6 (R8A73A40)
@@ -23,6 +25,10 @@ SoCs: · 10 unmodified lines
2325 compatible = "renesas,r8a7745"
2426 - RZ/G1C (R8A77470)
2527 compatible = "renesas,r8a77470"
28+ - RZ/G2M (R8A774A1)
29+ compatible = "renesas,r8a774a1"
30+ - RZ/G2E (R8A774C0)
31+ compatible = "renesas,r8a774c0"
2632 - R-Car M1A (R8A77781)
2733 compatible = "renesas,r8a7778"
2834 - R-Car H1 (R8A77790)
@@ -107,6 +113,8 @@ Boards: · 78 unmodified lines
107113 compatible = "renesas,lager", "renesas,r8a7790"
108114 - M3ULCB (R-Car Starter Kit Pro, RTP0RC7796SKBX0010SA09 (M3 ES1.0))
109115 compatible = "renesas,m3ulcb", "renesas,r8a7796"
116+ - M3NULCB (R-Car Starter Kit Pro, RTP0RC77965SKBX010SA00 (M3-N ES1.1))
117+ compatible = "renesas,m3nulcb", "renesas,r8a77965"
110118 - Marzen (R0P7779A00010S)
111119 compatible = "renesas,marzen", "renesas,r8a7779"
112120 - Porter (M2-LCDP)
@@ -143,12 +151,12 @@ Boards: · 30 unmodified lines
143151 compatible = "renesas,wheat", "renesas,r8a7792"
144152
145153
146−Most Renesas ARM SoCs have a Product Register that allows to retrieve SoC
147−product and revision information. If present, a device node for this register
148−should be added.
154+Most Renesas ARM SoCs have a Product Register or Boundary Scan ID Register that
155+allows to retrieve SoC product and revision information. If present, a device
156+node for this register should be added.
149157
150158 Required properties:
151− - compatible: Must be "renesas,prr".
159+ - compatible: Must be "renesas,prr" or "renesas,bsid"
152160 - reg: Base address and length of the register block.
153161
154162
Documentation/devicetree/bindings/arm/syna.txtrenamed from Documentation/devicetree/bindings/arm/marvell/marvell,berlin.txt+10−1
@@ -1,4 +1,9 @@
1−Marvell Berlin SoC Family Device Tree Bindings
1+Synaptics SoC Device Tree Bindings
2+
3+According to https://www.synaptics.com/company/news/conexant-marvell
4+Synaptics has acquired the Multimedia Solutions Business of Marvell, so
5+berlin SoCs are now Synaptics' SoCs now.
6+
27 ---------------------------------------------------------------
38
49 Work in progress statement:
@@ -13,6 +18,10 @@ stable binding/ABI. · 8 unmodified lines
1318
1419 ---------------------------------------------------------------
1520
21+Boards with the Synaptics AS370 SoC shall have the following properties:
22+ Required root node property:
23+ compatible: "syna,as370"
24+
1625 Boards with a SoC of the Marvell Berlin family, e.g. Armada 1500
1726 shall have the following properties:
1827
Documentation/devicetree/bindings/arm/tegra.txt+7−2
@@ -47,12 +47,17 @@ board-specific compatible values: · 46 unmodified lines
4747 nvidia,ventana
4848 toradex,apalis_t30
4949 toradex,apalis_t30-eval
50+ toradex,apalis_t30-v1.1
51+ toradex,apalis_t30-v1.1-eval
5052 toradex,apalis-tk1
5153 toradex,apalis-tk1-eval
52− toradex,colibri_t20-512
54+ toradex,apalis-tk1-v1.2
55+ toradex,apalis-tk1-v1.2-eval
56+ toradex,colibri_t20
57+ toradex,colibri_t20-eval-v3
58+ toradex,colibri_t20-iris
5359 toradex,colibri_t30
5460 toradex,colibri_t30-eval-v3
55− toradex,iris
5661
5762 Trusted Foundations
5863 -------------------------------------------
Documentation/devicetree/bindings/arm/tegra/nvidia,tegra186-pmc.txt+93−0
@@ -34,3 +34,96 @@ Board DTS: · 33 unmodified lines
3434 pmc@c360000 {
3535 nvidia,invert-interrupt;
3636 };
37+
38+== Pad Control ==
39+
40+On Tegra SoCs a pad is a set of pins which are configured as a group.
41+The pin grouping is a fixed attribute of the hardware. The PMC can be
42+used to set pad power state and signaling voltage. A pad can be either
43+in active or power down mode. The support for power state and signaling
44+voltage configuration varies depending on the pad in question. 3.3 V and
45+1.8 V signaling voltages are supported on pins where software
46+controllable signaling voltage switching is available.
47+
48+Pad configurations are described with pin configuration nodes which
49+are placed under the pmc node and they are referred to by the pinctrl
50+client properties. For more information see
51+Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt.
52+
53+The following pads are present on Tegra186:
54+csia csib dsi mipi-bias
55+pex-clk-bias pex-clk3 pex-clk2 pex-clk1
56+usb0 usb1 usb2 usb-bias
57+uart audio hsic dbg
58+hdmi-dp0 hdmi-dp1 pex-cntrl sdmmc2-hv
59+sdmmc4 cam dsib dsic
60+dsid csic csid csie
61+dsif spi ufs dmic-hv
62+edp sdmmc1-hv sdmmc3-hv conn
63+audio-hv ao-hv
64+
65+Required pin configuration properties:
66+ - pins: A list of strings, each of which contains the name of a pad
67+ to be configured.
68+
69+Optional pin configuration properties:
70+ - low-power-enable: Configure the pad into power down mode
71+ - low-power-disable: Configure the pad into active mode
72+ - power-source: Must contain either TEGRA_IO_PAD_VOLTAGE_1V8 or
73+ TEGRA_IO_PAD_VOLTAGE_3V3 to select between signaling voltages.
74+ The values are defined in
75+ include/dt-bindings/pinctrl/pinctrl-tegra-io-pad.h.
76+
77+Note: The power state can be configured on all of the above pads except
78+ for ao-hv. Following pads have software configurable signaling
79+ voltages: sdmmc2-hv, dmic-hv, sdmmc1-hv, sdmmc3-hv, audio-hv,
80+ ao-hv.
81+
82+Pad configuration state example:
83+ pmc: pmc@7000e400 {
84+ compatible = "nvidia,tegra186-pmc";
85+ reg = <0 0x0c360000 0 0x10000>,
86+ <0 0x0c370000 0 0x10000>,
87+ <0 0x0c380000 0 0x10000>,
88+ <0 0x0c390000 0 0x10000>;
89+ reg-names = "pmc", "wake", "aotag", "scratch";
90+
91+ ...
92+
93+ sdmmc1_3v3: sdmmc1-3v3 {
94+ pins = "sdmmc1-hv";
95+ power-source = <TEGRA_IO_PAD_VOLTAGE_3V3>;
96+ };
97+
98+ sdmmc1_1v8: sdmmc1-1v8 {
99+ pins = "sdmmc1-hv";
100+ power-source = <TEGRA_IO_PAD_VOLTAGE_1V8>;
101+ };
102+
103+ hdmi_off: hdmi-off {
104+ pins = "hdmi";
105+ low-power-enable;
106+ }
107+
108+ hdmi_on: hdmi-on {
109+ pins = "hdmi";
110+ low-power-disable;
111+ }
112+ };
113+
114+Pinctrl client example:
115+ sdmmc1: sdhci@3400000 {
116+ ...
117+ pinctrl-names = "sdmmc-3v3", "sdmmc-1v8";
118+ pinctrl-0 = <&sdmmc1_3v3>;
119+ pinctrl-1 = <&sdmmc1_1v8>;
120+ };
121+
122+ ...
123+
124+ sor0: sor@15540000 {
125+ ...
126+ pinctrl-0 = <&hdmi_off>;
127+ pinctrl-1 = <&hdmi_on>;
128+ pinctrl-names = "hdmi-on", "hdmi-off";
129+ };
Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.txt+103−0
@@ -195,3 +195,106 @@ Example: · 194 unmodified lines
195195 power-domains = <&pd_audio>;
196196 ...
197197 };
198+
199+== Pad Control ==
200+
201+On Tegra SoCs a pad is a set of pins which are configured as a group.
202+The pin grouping is a fixed attribute of the hardware. The PMC can be
203+used to set pad power state and signaling voltage. A pad can be either
204+in active or power down mode. The support for power state and signaling
205+voltage configuration varies depending on the pad in question. 3.3 V and
206+1.8 V signaling voltages are supported on pins where software
207+controllable signaling voltage switching is available.
208+
209+The pad configuration state nodes are placed under the pmc node and they
210+are referred to by the pinctrl client properties. For more information
211+see Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt.
212+The pad name should be used as the value of the pins property in pin
213+configuration nodes.
214+
215+The following pads are present on Tegra124 and Tegra132:
216+audio bb cam comp
217+csia csb cse dsi
218+dsib dsic dsid hdmi
219+hsic hv lvds mipi-bias
220+nand pex-bias pex-clk1 pex-clk2
221+pex-cntrl sdmmc1 sdmmc3 sdmmc4
222+sys_ddc uart usb0 usb1
223+usb2 usb_bias
224+
225+The following pads are present on Tegra210:
226+audio audio-hv cam csia
227+csib csic csid csie
228+csif dbg debug-nonao dmic
229+dp dsi dsib dsic
230+dsid emmc emmc2 gpio
231+hdmi hsic lvds mipi-bias
232+pex-bias pex-clk1 pex-clk2 pex-cntrl
233+sdmmc1 sdmmc3 spi spi-hv
234+uart usb0 usb1 usb2
235+usb3 usb-bias
236+
237+Required pin configuration properties:
238+ - pins: Must contain name of the pad(s) to be configured.
239+
240+Optional pin configuration properties:
241+ - low-power-enable: Configure the pad into power down mode
242+ - low-power-disable: Configure the pad into active mode
243+ - power-source: Must contain either TEGRA_IO_PAD_VOLTAGE_1V8
244+ or TEGRA_IO_PAD_VOLTAGE_3V3 to select between signaling voltages.
245+ The values are defined in
246+ include/dt-bindings/pinctrl/pinctrl-tegra-io-pad.h.
247+
248+Note: The power state can be configured on all of the Tegra124 and
249+ Tegra132 pads. None of the Tegra124 or Tegra132 pads support
250+ signaling voltage switching.
251+
252+Note: All of the listed Tegra210 pads except pex-cntrl support power
253+ state configuration. Signaling voltage switching is supported on
254+ following Tegra210 pads: audio, audio-hv, cam, dbg, dmic, gpio,
255+ pex-cntrl, sdmmc1, sdmmc3, spi, spi-hv, and uart.
256+
257+Pad configuration state example:
258+ pmc: pmc@7000e400 {
259+ compatible = "nvidia,tegra210-pmc";
260+ reg = <0x0 0x7000e400 0x0 0x400>;
261+ clocks = <&tegra_car TEGRA210_CLK_PCLK>, <&clk32k_in>;
262+ clock-names = "pclk", "clk32k_in";
263+
264+ ...
265+
266+ sdmmc1_3v3: sdmmc1-3v3 {
267+ pins = "sdmmc1";
268+ power-source = <TEGRA_IO_PAD_VOLTAGE_3V3>;
269+ };
270+
271+ sdmmc1_1v8: sdmmc1-1v8 {
272+ pins = "sdmmc1";
273+ power-source = <TEGRA_IO_PAD_VOLTAGE_1V8>;
274+ };
275+
276+ hdmi_off: hdmi-off {
277+ pins = "hdmi";
278+ low-power-enable;
279+ }
280+
281+ hdmi_on: hdmi-on {
282+ pins = "hdmi";
283+ low-power-disable;
284+ }
285+ };
286+
287+Pinctrl client example:
288+ sdmmc1: sdhci@700b0000 {
289+ ...
290+ pinctrl-names = "sdmmc-3v3", "sdmmc-1v8";
291+ pinctrl-0 = <&sdmmc1_3v3>;
292+ pinctrl-1 = <&sdmmc1_1v8>;
293+ };
294+ ...
295+ sor@54540000 {
296+ ...
297+ pinctrl-0 = <&hdmi_off>;
298+ pinctrl-1 = <&hdmi_on>;
299+ pinctrl-names = "hdmi-on", "hdmi-off";
300+ };
Documentation/devicetree/bindings/arm/ux500/boards.txt+1−1
@@ -60,7 +60,7 @@ Example: · 59 unmodified lines
6060 <0xa0410100 0x100>;
6161 };
6262
63− scu@a04100000 {
63+ scu@a0410000 {
6464 compatible = "arm,cortex-a9-scu";
6565 reg = <0xa0410000 0x100>;
6666 };
Documentation/devicetree/bindings/arm/zte,sysctrl.txt+30−0
@@ -0,0 +1,30 @@
1+ZTE sysctrl Registers
2+
3+Registers for 'zte,zx296702' SoC:
4+
5+System management required properties:
6+ - compatible = "zte,sysctrl"
7+
8+Low power management required properties:
9+ - compatible = "zte,zx296702-pcu"
10+
11+Bus matrix required properties:
12+ - compatible = "zte,zx-bus-matrix"
13+
14+
15+Registers for 'zte,zx296718' SoC:
16+
17+System management required properties:
18+ - compatible = "zte,zx296718-aon-sysctrl"
19+ - compatible = "zte,zx296718-sysctrl"
20+
21+Example:
22+aon_sysctrl: aon-sysctrl@116000 {
23+ compatible = "zte,zx296718-aon-sysctrl", "syscon";
24+ reg = <0x116000 0x1000>;
25+};
26+
27+sysctrl: sysctrl@1463000 {
28+ compatible = "zte,zx296718-sysctrl", "syscon";
29+ reg = <0x1463000 0x1000>;
30+};
Documentation/devicetree/bindings/arm/zte.txt+1−26
@@ -1,20 +1,10 @@
11 ZTE platforms device tree bindings
2−---------------------------------------
32
3+---------------------------------------
44 - ZX296702 board:
55 Required root node properties:
66 - compatible = "zte,zx296702-ad1", "zte,zx296702"
77
8−System management required properties:
9− - compatible = "zte,sysctrl"
10−
11−Low power management required properties:
12− - compatible = "zte,zx296702-pcu"
13−
14−Bus matrix required properties:
15− - compatible = "zte,zx-bus-matrix"
16−
17−
188 ---------------------------------------
199 - ZX296718 SoC:
2010 Required root node properties:
@@ -22,18 +12,3 @@ Bus matrix required properties: · 1 unmodified line
2212
2313 ZX296718 EVB board:
2414 - "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/ata/ahci-platform.txt+5−1
@@ -10,6 +10,7 @@ PHYs. · 9 unmodified lines
1010 Required properties:
1111 - compatible : compatible string, one of:
1212 - "allwinner,sun4i-a10-ahci"
13+ - "allwinner,sun8i-r40-ahci"
1314 - "brcm,iproc-ahci"
1415 - "hisilicon,hisi-ahci"
1516 - "cavium,octeon-7130-ahci"
@@ -31,8 +32,10 @@ Optional properties: · 15 unmodified lines
3132 - clocks : a list of phandle + clock specifier pairs
3233 - resets : a list of phandle + reset specifier pairs
3334 - target-supply : regulator for SATA target power
35+- phy-supply : regulator for PHY power
3436 - phys : reference to the SATA PHY node
3537 - phy-names : must be "sata-phy"
38+- ahci-supply : regulator for AHCI controller
3639 - ports-implemented : Mask that indicates which ports that the HBA supports
3740 are available for software to use. Useful if PORTS_IMPL
3841 is not programmed by the BIOS, which is true with
@@ -42,12 +45,13 @@ Required properties when using sub-nodes: · 3 unmodified lines
4245 - #address-cells : number of cells to encode an address
4346 - #size-cells : number of cells representing the size of an address
4447
48+For allwinner,sun8i-r40-ahci, the reset propertie must be present.
4549
4650 Sub-nodes required properties:
4751 - reg : the port number
4852 And at least one of the following properties:
4953 - phys : reference to the SATA PHY node
50−- target-supply : regulator for SATA target power
54+- target-supply : regulator for SATA target power
5155
5256 Examples:
5357 sata@ffe08000 {
Documentation/devicetree/bindings/ata/brcm,sata-brcm.txt+1−0
@@ -9,6 +9,7 @@ Required properties: · 8 unmodified lines
99 "brcm,bcm7445-ahci"
1010 "brcm,bcm-nsp-ahci"
1111 "brcm,sata3-ahci"
12+ "brcm,bcm63138-ahci"
1213 - reg : register mappings for AHCI and SATA_TOP_CTRL
1314 - reg-names : "ahci" and "top-ctrl"
1415 - interrupts : interrupt mapping for SATA IRQ
Documentation/devicetree/bindings/bus/sun50i-de2-bus.txt+6−3
@@ -1,11 +1,14 @@
1−Device tree bindings for Allwinner A64 DE2 bus
1+Device tree bindings for Allwinner DE2/3 bus
22
33 The Allwinner A64 DE2 is on a special bus, which needs a SRAM region (SRAM C)
4−to be claimed for enabling the access.
4+to be claimed for enabling the access. The DE3 on Allwinner H6 is at the same
5+situation, and the binding also applies.
56
67 Required properties:
78
8− - compatible: Should contain "allwinner,sun50i-a64-de2"
9+ - compatible: Should be one of:
10+ - "allwinner,sun50i-a64-de2"
11+ - "allwinner,sun50i-h6-de3", "allwinner,sun50i-a64-de2"
912 - reg: A resource specifier for the register space
1013 - #address-cells: Must be set to 1
1114 - #size-cells: Must be set to 1
Documentation/devicetree/bindings/clock/actions,owl-cmu.txt+2−0
@@ -13,6 +13,7 @@ Required Properties: · 12 unmodified lines
1313 region.
1414 - clocks: Reference to the parent clocks ("hosc", "losc")
1515 - #clock-cells: should be 1.
16+- #reset-cells: should be 1.
1617
1718 Each clock is assigned an identifier, and client nodes can use this identifier
1819 to specify the clock which they consume.
@@ -36,6 +37,7 @@ Example: Clock Management Unit node: · 17 unmodified lines
3637 reg = <0x0 0xe0160000 0x0 0x1000>;
3738 clocks = <&hosc>, <&losc>;
3839 #clock-cells = <1>;
40+ #reset-cells = <1>;
3941 };
4042
4143 Example: UART controller node that consumes clock generated by the clock
Documentation/devicetree/bindings/clock/at91-clock.txt+21−495
@@ -4,6 +4,8 @@ This binding uses the common clock binding[1]. · 3 unmodified lines
44
55 [1] Documentation/devicetree/bindings/clock/clock-bindings.txt
66
7+Slow Clock controller:
8+
79 Required properties:
810 - compatible : shall be one of the following:
911 "atmel,at91sam9x5-sckc" or
@@ -16,84 +18,6 @@ Required properties: · 6 unmodified lines
1618
1719 "atmel,at91sam9x5-clk-slow-rc-osc":
1820 at91 internal slow RC oscillator
19−
20− "atmel,<chip>-pmc":
21− at91 PMC (Power Management Controller)
22− All at91 specific clocks (clocks defined below) must be child
23− node of the PMC node.
24− <chip> can be: at91rm9200, at91sam9260, at91sam9261,
25− at91sam9263, at91sam9g45, at91sam9n12, at91sam9rl, at91sam9x5,
26− sama5d2, sama5d3 or sama5d4.
27−
28− "atmel,at91sam9x5-clk-slow" (under sckc node)
29− or
30− "atmel,at91sam9260-clk-slow" (under pmc node):
31− at91 slow clk
32−
33− "atmel,at91rm9200-clk-main-osc"
34− "atmel,at91sam9x5-clk-main-rc-osc"
35− at91 main clk sources
36−
37− "atmel,at91sam9x5-clk-main"
38− "atmel,at91rm9200-clk-main":
39− at91 main clock
40−
41− "atmel,at91rm9200-clk-master" or
42− "atmel,at91sam9x5-clk-master":
43− at91 master clock
44−
45− "atmel,at91sam9x5-clk-peripheral" or
46− "atmel,at91rm9200-clk-peripheral":
47− at91 peripheral clocks
48−
49− "atmel,at91rm9200-clk-pll" or
50− "atmel,at91sam9g45-clk-pll" or
51− "atmel,at91sam9g20-clk-pllb" or
52− "atmel,sama5d3-clk-pll":
53− at91 pll clocks
54−
55− "atmel,at91sam9x5-clk-plldiv":
56− at91 plla divisor
57−
58− "atmel,at91rm9200-clk-programmable" or
59− "atmel,at91sam9g45-clk-programmable" or
60− "atmel,at91sam9x5-clk-programmable":
61− at91 programmable clocks
62−
63− "atmel,at91sam9x5-clk-smd":
64− at91 SMD (Soft Modem) clock
65−
66− "atmel,at91rm9200-clk-system":
67− at91 system clocks
68−
69− "atmel,at91rm9200-clk-usb" or
70− "atmel,at91sam9x5-clk-usb" or
71− "atmel,at91sam9n12-clk-usb":
72− at91 usb clock
73−
74− "atmel,at91sam9x5-clk-utmi":
75− at91 utmi clock
76−
77− "atmel,sama5d4-clk-h32mx":
78− at91 h32mx clock
79−
80− "atmel,sama5d2-clk-generated":
81− at91 generated clock
82−
83− "atmel,sama5d2-clk-audio-pll-frac":
84− at91 audio fractional pll
85−
86− "atmel,sama5d2-clk-audio-pll-pad":
87− at91 audio pll CLK_AUDIO output pin
88−
89− "atmel,sama5d2-clk-audio-pll-pmc"
90− at91 audio pll output on AUDIOPLLCLK that feeds the PMC
91− and can be used by peripheral clock or generic clock
92−
93− "atmel,sama5d2-clk-i2s-mux" (under pmc node):
94− at91 I2S clock source selection
95−
96−Required properties for SCKC node:
9721 - reg : defines the IO memory reserved for the SCKC.
9822 - #size-cells : shall be 0 (reg is used to encode clk id).
9923 - #address-cells : shall be 1 (reg is used to encode clk id).
@@ -109,428 +33,30 @@ For example: · 9 unmodified lines
10933 /* put at91 slow clocks here */
11034 };
11135
36+Power Management Controller (PMC):
11237
113−Required properties for internal slow RC oscillator:
114−- #clock-cells : from common clock binding; shall be set to 0.
115−- clock-frequency : define the internal RC oscillator frequency.
116−
117−Optional properties:
118−- clock-accuracy : define the internal RC oscillator accuracy.
119−
120−For example:
121− slow_rc_osc: slow_rc_osc {
122− compatible = "atmel,at91sam9x5-clk-slow-rc-osc";
123− clock-frequency = <32768>;
124− clock-accuracy = <50000000>;
125− };
126−
127−Required properties for slow oscillator:
128−- #clock-cells : from common clock binding; shall be set to 0.
129−- clocks : shall encode the main osc source clk sources (see atmel datasheet).
38+Required properties:
39+- compatible : shall be "atmel,<chip>-pmc", "syscon":
40+ <chip> can be: at91rm9200, at91sam9260, at91sam9261,
41+ at91sam9263, at91sam9g45, at91sam9n12, at91sam9rl, at91sam9g15,
42+ at91sam9g25, at91sam9g35, at91sam9x25, at91sam9x35, at91sam9x5,
43+ sama5d2, sama5d3 or sama5d4.
44+- #clock-cells : from common clock binding; shall be set to 2. The first entry
45+ is the type of the clock (core, system, peripheral or generated) and the
46+ second entry its index as provided by the datasheet
47+- clocks : Must contain an entry for each entry in clock-names.
48+- clock-names: Must include the following entries: "slow_clk", "main_xtal"
13049
13150 Optional properties:
13251 - atmel,osc-bypass : boolean property. Set this when a clock signal is directly
13352 provided on XIN.
13453
13554 For example:
136− slow_osc: slow_osc {
137− compatible = "atmel,at91rm9200-clk-slow-osc";
138− #clock-cells = <0>;
139− clocks = <&slow_xtal>;
140− };
141−
142−Required properties for slow clock:
143−- #clock-cells : from common clock binding; shall be set to 0.
144−- clocks : shall encode the slow clk sources (see atmel datasheet).
145−
146−For example:
147− clk32k: slck {
148− compatible = "atmel,at91sam9x5-clk-slow";
149− #clock-cells = <0>;
150− clocks = <&slow_rc_osc &slow_osc>;
151− };
152−
153−Required properties for PMC node:
154−- reg : defines the IO memory reserved for the PMC.
155−- #size-cells : shall be 0 (reg is used to encode clk id).
156−- #address-cells : shall be 1 (reg is used to encode clk id).
157−- interrupts : shall be set to PMC interrupt line.
158−- interrupt-controller : tell that the PMC is an interrupt controller.
159−- #interrupt-cells : must be set to 1. The first cell encodes the interrupt id,
160− and reflect the bit position in the PMC_ER/DR/SR registers.
161− You can use the dt macros defined in dt-bindings/clock/at91.h.
162− 0 (AT91_PMC_MOSCS) -> main oscillator ready
163− 1 (AT91_PMC_LOCKA) -> PLL A ready
164− 2 (AT91_PMC_LOCKB) -> PLL B ready
165− 3 (AT91_PMC_MCKRDY) -> master clock ready
166− 6 (AT91_PMC_LOCKU) -> UTMI PLL clock ready
167− 8 .. 15 (AT91_PMC_PCKRDY(id)) -> programmable clock ready
168− 16 (AT91_PMC_MOSCSELS) -> main oscillator selected
169− 17 (AT91_PMC_MOSCRCS) -> RC main oscillator stabilized
170− 18 (AT91_PMC_CFDEV) -> clock failure detected
171−
172−For example:
173− pmc: pmc@fffffc00 {
174− compatible = "atmel,sama5d3-pmc";
175− interrupts = <1 4 7>;
176− interrupt-controller;
177− #interrupt-cells = <2>;
178− #size-cells = <0>;
179− #address-cells = <1>;
180−
181− /* put at91 clocks here */
182− };
183−
184−Required properties for main clock internal RC oscillator:
185−- interrupts : shall be set to "<0>".
186−- clock-frequency : define the internal RC oscillator frequency.
187−
188−Optional properties:
189−- clock-accuracy : define the internal RC oscillator accuracy.
190−
191−For example:
192− main_rc_osc: main_rc_osc {
193− compatible = "atmel,at91sam9x5-clk-main-rc-osc";
194− interrupt-parent = <&pmc>;
195− interrupts = <0>;
196− clock-frequency = <12000000>;
197− clock-accuracy = <50000000>;
198− };
199−
200−Required properties for main clock oscillator:
201−- interrupts : shall be set to "<0>".
202−- #clock-cells : from common clock binding; shall be set to 0.
203−- clocks : shall encode the main osc source clk sources (see atmel datasheet).
204−
205−Optional properties:
206−- atmel,osc-bypass : boolean property. Specified if a clock signal is provided
207− on XIN.
208−
209− clock signal is directly provided on XIN pin.
210−
211−For example:
212− main_osc: main_osc {
213− compatible = "atmel,at91rm9200-clk-main-osc";
214− interrupt-parent = <&pmc>;
215− interrupts = <0>;
216− #clock-cells = <0>;
217− clocks = <&main_xtal>;
218− };
219−
220−Required properties for main clock:
221−- interrupts : shall be set to "<0>".
222−- #clock-cells : from common clock binding; shall be set to 0.
223−- clocks : shall encode the main clk sources (see atmel datasheet).
224−
225−For example:
226− main: mainck {
227− compatible = "atmel,at91sam9x5-clk-main";
228− interrupt-parent = <&pmc>;
229− interrupts = <0>;
230− #clock-cells = <0>;
231− clocks = <&main_rc_osc &main_osc>;
232− };
233−
234−Required properties for master clock:
235−- interrupts : shall be set to "<3>".
236−- #clock-cells : from common clock binding; shall be set to 0.
237−- clocks : shall be the master clock sources (see atmel datasheet) phandles.
238− e.g. "<&ck32k>, <&main>, <&plla>, <&pllb>".
239−- atmel,clk-output-range : minimum and maximum clock frequency (two u32
240− fields).
241− e.g. output = <0 133000000>; <=> 0 to 133MHz.
242−- atmel,clk-divisors : master clock divisors table (four u32 fields).
243− 0 <=> reserved value.
244− e.g. divisors = <1 2 4 6>;
245−- atmel,master-clk-have-div3-pres : some SoC use the reserved value 7 in the
246− PRES field as CLOCK_DIV3 (e.g sam9x5).
247−
248−For example:
249− mck: mck {
250− compatible = "atmel,at91rm9200-clk-master";
251− interrupt-parent = <&pmc>;
252− interrupts = <3>;
253− #clock-cells = <0>;
254− atmel,clk-output-range = <0 133000000>;
255− atmel,clk-divisors = <1 2 4 0>;
256− };
257−
258−Required properties for peripheral clocks:
259−- #size-cells : shall be 0 (reg is used to encode clk id).
260−- #address-cells : shall be 1 (reg is used to encode clk id).
261−- clocks : shall be the master clock phandle.
262− e.g. clocks = <&mck>;
263−- name: device tree node describing a specific peripheral clock.
264− * #clock-cells : from common clock binding; shall be set to 0.
265− * reg: peripheral id. See Atmel's datasheets to get a full
266− list of peripheral ids.
267− * atmel,clk-output-range : minimum and maximum clock frequency
268− (two u32 fields). Only valid on at91sam9x5-clk-peripheral
269− compatible IPs.
270−
271−For example:
272− periph: periphck {
273− compatible = "atmel,at91sam9x5-clk-peripheral";
274− #size-cells = <0>;
275− #address-cells = <1>;
276− clocks = <&mck>;
277−
278− ssc0_clk {
279− #clock-cells = <0>;
280− reg = <2>;
281− atmel,clk-output-range = <0 133000000>;
282− };
283−
284− usart0_clk {
285− #clock-cells = <0>;
286− reg = <3>;
287− atmel,clk-output-range = <0 66000000>;
288− };
289− };
290−
291−
292−Required properties for pll clocks:
293−- interrupts : shall be set to "<1>".
294−- #clock-cells : from common clock binding; shall be set to 0.
295−- clocks : shall be the main clock phandle.
296−- reg : pll id.
297− 0 -> PLL A
298− 1 -> PLL B
299−- atmel,clk-input-range : minimum and maximum source clock frequency (two u32
300− fields).
301− e.g. input = <1 32000000>; <=> 1 to 32MHz.
302−- #atmel,pll-clk-output-range-cells : number of cells reserved for pll output
303− range description. Sould be set to 2, 3
304− or 4.
305− * 1st and 2nd cells represent the frequency range (min-max).
306− * 3rd cell is optional and represents the OUT field value for the given
307− range.
308− * 4th cell is optional and represents the ICPLL field (PLLICPR
309− register)
310−- atmel,pll-clk-output-ranges : pll output frequency ranges + optional parameter
311− depending on #atmel,pll-output-range-cells
312− property value.
313−
314−For example:
315− plla: pllack {
316− compatible = "atmel,at91sam9g45-clk-pll";
317− interrupt-parent = <&pmc>;
318− interrupts = <1>;
319− #clock-cells = <0>;
320− clocks = <&main>;
321− reg = <0>;
322− atmel,clk-input-range = <2000000 32000000>;
323− #atmel,pll-clk-output-range-cells = <4>;
324− atmel,pll-clk-output-ranges = <74500000 800000000 0 0
325− 69500000 750000000 1 0
326− 64500000 700000000 2 0
327− 59500000 650000000 3 0
328− 54500000 600000000 0 1
329− 49500000 550000000 1 1
330− 44500000 500000000 2 1
331− 40000000 450000000 3 1>;
332− };
333−
334−Required properties for plldiv clocks (plldiv = pll / 2):
335−- #clock-cells : from common clock binding; shall be set to 0.
336−- clocks : shall be the plla clock phandle.
337−
338−The pll divisor is equal to 2 and cannot be changed.
339−
340−For example:
341− plladiv: plladivck {
342− compatible = "atmel,at91sam9x5-clk-plldiv";
343− #clock-cells = <0>;
344− clocks = <&plla>;
345− };
346−
347−Required properties for programmable clocks:
348−- #size-cells : shall be 0 (reg is used to encode clk id).
349−- #address-cells : shall be 1 (reg is used to encode clk id).
350−- clocks : shall be the programmable clock source phandles.
351− e.g. clocks = <&clk32k>, <&main>, <&plla>, <&pllb>;
352−- name: device tree node describing a specific prog clock.
353− * #clock-cells : from common clock binding; shall be set to 0.
354− * reg : programmable clock id (register offset from PCKx
355− register).
356− * interrupts : shall be set to "<(8 + id)>".
357−
358−For example:
359− prog: progck {
360− compatible = "atmel,at91sam9g45-clk-programmable";
361− #size-cells = <0>;
362− #address-cells = <1>;
363− interrupt-parent = <&pmc>;
364− clocks = <&clk32k>, <&main>, <&plladiv>, <&utmi>, <&mck>;
365−
366− prog0 {
367− #clock-cells = <0>;
368− reg = <0>;
369− interrupts = <8>;
370− };
371−
372− prog1 {
373− #clock-cells = <0>;
374− reg = <1>;
375− interrupts = <9>;
376− };
377− };
378−
379−
380−Required properties for smd clock:
381−- #clock-cells : from common clock binding; shall be set to 0.
382−- clocks : shall be the smd clock source phandles.
383− e.g. clocks = <&plladiv>, <&utmi>;
384−
385−For example:
386− smd: smdck {
387− compatible = "atmel,at91sam9x5-clk-smd";
388− #clock-cells = <0>;
389− clocks = <&plladiv>, <&utmi>;
390− };
391−
392−Required properties for system clocks:
393−- #size-cells : shall be 0 (reg is used to encode clk id).
394−- #address-cells : shall be 1 (reg is used to encode clk id).
395−- name: device tree node describing a specific system clock.
396− * #clock-cells : from common clock binding; shall be set to 0.
397− * reg: system clock id (bit position in SCER/SCDR/SCSR registers).
398− See Atmel's datasheet to get a full list of system clock ids.
399−
400−For example:
401− system: systemck {
402− compatible = "atmel,at91rm9200-clk-system";
403− #address-cells = <1>;
404− #size-cells = <0>;
405−
406− ddrck {
407− #clock-cells = <0>;
408− reg = <2>;
409− clocks = <&mck>;
410− };
411−
412− uhpck {
413− #clock-cells = <0>;
414− reg = <6>;
415− clocks = <&usb>;
416− };
417−
418− udpck {
419− #clock-cells = <0>;
420− reg = <7>;
421− clocks = <&usb>;
422− };
423− };
424−
425−
426−Required properties for usb clock:
427−- #clock-cells : from common clock binding; shall be set to 0.
428−- clocks : shall be the smd clock source phandles.
429− e.g. clocks = <&pllb>;
430−- atmel,clk-divisors (only available for "atmel,at91rm9200-clk-usb"):
431− usb clock divisor table.
432− e.g. divisors = <1 2 4 0>;
433−
434−For example:
435− usb: usbck {
436− compatible = "atmel,at91sam9x5-clk-usb";
437− #clock-cells = <0>;
438− clocks = <&plladiv>, <&utmi>;
439− };
440−
441− usb: usbck {
442− compatible = "atmel,at91rm9200-clk-usb";
443− #clock-cells = <0>;
444− clocks = <&pllb>;
445− atmel,clk-divisors = <1 2 4 0>;
446− };
447−
448−
449−Required properties for utmi clock:
450−- interrupts : shall be set to "<AT91_PMC_LOCKU IRQ_TYPE_LEVEL_HIGH>".
451−- #clock-cells : from common clock binding; shall be set to 0.
452−- clocks : shall be the main clock source phandle.
453−
454−For example:
455− utmi: utmick {
456− compatible = "atmel,at91sam9x5-clk-utmi";
457− interrupt-parent = <&pmc>;
458− interrupts = <AT91_PMC_LOCKU IRQ_TYPE_LEVEL_HIGH>;
459− #clock-cells = <0>;
460− clocks = <&main>;
461− };
462−
463−Required properties for 32 bits bus Matrix clock (h32mx clock):
464−- #clock-cells : from common clock binding; shall be set to 0.
465−- clocks : shall be the master clock source phandle.
466−
467−For example:
468− h32ck: h32mxck {
469− #clock-cells = <0>;
470− compatible = "atmel,sama5d4-clk-h32mx";
471− clocks = <&mck>;
472− };
473−
474−Required properties for generated clocks:
475−- #size-cells : shall be 0 (reg is used to encode clk id).
476−- #address-cells : shall be 1 (reg is used to encode clk id).
477−- clocks : shall be the generated clock source phandles.
478− e.g. clocks = <&clk32k>, <&main>, <&plladiv>, <&utmi>, <&mck>, <&audio_pll_pmc>;
479−- name: device tree node describing a specific generated clock.
480− * #clock-cells : from common clock binding; shall be set to 0.
481− * reg: peripheral id. See Atmel's datasheets to get a full
482− list of peripheral ids.
483− * atmel,clk-output-range : minimum and maximum clock frequency
484− (two u32 fields).
485−
486−For example:
487− gck {
488− compatible = "atmel,sama5d2-clk-generated";
489− #address-cells = <1>;
490− #size-cells = <0>;
491− clocks = <&clk32k>, <&main>, <&plladiv>, <&utmi>, <&mck>, <&audio_pll_pmc>;
492−
493− tcb0_gclk: tcb0_gclk {
494− #clock-cells = <0>;
495− reg = <35>;
496− atmel,clk-output-range = <0 83000000>;
497− };
498−
499− pwm_gclk: pwm_gclk {
500− #clock-cells = <0>;
501− reg = <38>;
502− atmel,clk-output-range = <0 83000000>;
503− };
504− };
505−
506−Required properties for I2S mux clocks:
507−- #size-cells : shall be 0 (reg is used to encode I2S bus id).
508−- #address-cells : shall be 1 (reg is used to encode I2S bus id).
509−- name: device tree node describing a specific mux clock.
510− * #clock-cells : from common clock binding; shall be set to 0.
511− * clocks : shall be the mux clock parent phandles; shall be 2 phandles:
512− peripheral and generated clock; the first phandle shall belong to the
513− peripheral clock and the second one shall belong to the generated
514− clock; "clock-indices" property can be user to specify
515− the correct order.
516− * reg: I2S bus id of the corresponding mux clock.
517− e.g. reg = <0>; for i2s0, reg = <1>; for i2s1
518−
519−For example:
520− i2s_clkmux {
521− compatible = "atmel,sama5d2-clk-i2s-mux";
522− #address-cells = <1>;
523− #size-cells = <0>;
524−
525− i2s0muxck: i2s0_muxclk {
526− clocks = <&i2s0_clk>, <&i2s0_gclk>;
527− #clock-cells = <0>;
528− reg = <0>;
529− };
530−
531− i2s1muxck: i2s1_muxclk {
532− clocks = <&i2s1_clk>, <&i2s1_gclk>;
533− #clock-cells = <0>;
534− reg = <1>;
535− };
55+ pmc: pmc@f0018000 {
56+ compatible = "atmel,sama5d4-pmc", "syscon";
57+ reg = <0xf0018000 0x120>;
58+ interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
59+ #clock-cells = <2>;
60+ clocks = <&clk32k>, <&main_xtal>;
61+ clock-names = "slow_clk", "main_xtal";
53662 };
Documentation/devicetree/bindings/clock/hi3670-clock.txt+43−0
@@ -0,0 +1,43 @@
1+* Hisilicon Hi3670 Clock Controller
2+
3+The Hi3670 clock controller generates and supplies clock to various
4+controllers within the Hi3670 SoC.
5+
6+Required Properties:
7+
8+- compatible: the compatible should be one of the following strings to
9+ indicate the clock controller functionality.
10+
11+ - "hisilicon,hi3670-crgctrl"
12+ - "hisilicon,hi3670-pctrl"
13+ - "hisilicon,hi3670-pmuctrl"
14+ - "hisilicon,hi3670-sctrl"
15+ - "hisilicon,hi3670-iomcu"
16+ - "hisilicon,hi3670-media1-crg"
17+ - "hisilicon,hi3670-media2-crg"
18+
19+- reg: physical base address of the controller and length of memory mapped
20+ region.
21+
22+- #clock-cells: should be 1.
23+
24+Each clock is assigned an identifier and client nodes use this identifier
25+to specify the clock which they consume.
26+
27+All these identifier could be found in <dt-bindings/clock/hi3670-clock.h>.
28+
29+Examples:
30+ crg_ctrl: clock-controller@fff35000 {
31+ compatible = "hisilicon,hi3670-crgctrl", "syscon";
32+ reg = <0x0 0xfff35000 0x0 0x1000>;
33+ #clock-cells = <1>;
34+ };
35+
36+ uart0: serial@fdf02000 {
37+ compatible = "arm,pl011", "arm,primecell";
38+ reg = <0x0 0xfdf02000 0x0 0x1000>;
39+ interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
40+ clocks = <&crg_ctrl HI3670_CLK_GATE_UART0>,
41+ <&crg_ctrl HI3670_PCLK>;
42+ clock-names = "uartclk", "apb_pclk";
43+ };
Documentation/devicetree/bindings/clock/imx6q-clock.txt+8−0
@@ -6,6 +6,14 @@ Required properties: · 5 unmodified lines
66 - interrupts: Should contain CCM interrupt
77 - #clock-cells: Should be <1>
88
9+Optional properties:
10+- fsl,pmic-stby-poweroff: Configure CCM to assert PMIC_STBY_REQ signal
11+ on power off.
12+ Use this property if the SoC should be powered off by external power
13+ management IC (PMIC) triggered via PMIC_STBY_REQ signal.
14+ Boards that are designed to initiate poweroff on PMIC_ON_REQ signal should
15+ be using "syscon-poweroff" driver instead.
16+
917 The clock consumer should specify the desired clock by having the clock
1018 ID in its "clocks" phandle cell. See include/dt-bindings/clock/imx6qdl-clock.h
1119 for the full list of i.MX6 Quad and DualLite clock IDs.
Documentation/devicetree/bindings/clock/ingenic,cgu.txt+5−2
@@ -6,8 +6,11 @@ to provide many different clock signals derived from only 2 external source · 5 unmodified lines
66 clocks.
77
88 Required properties:
9−- compatible : Should be "ingenic,<soctype>-cgu".
10− For example "ingenic,jz4740-cgu" or "ingenic,jz4780-cgu".
9+- compatible : Should be one of:
10+ * ingenic,jz4740-cgu
11+ * ingenic,jz4725b-cgu
12+ * ingenic,jz4770-cgu
13+ * ingenic,jz4780-cgu
1114 - reg : The address & length of the CGU registers.
1215 - clocks : List of phandle & clock specifiers for clocks external to the CGU.
1316 Two such external clocks should be specified - first the external crystal
Documentation/devicetree/bindings/clock/qcom,camcc.txt+18−0
@@ -0,0 +1,18 @@
1+Qualcomm Camera Clock & Reset Controller Binding
2+------------------------------------------------
3+
4+Required properties :
5+- compatible : shall contain "qcom,sdm845-camcc".
6+- reg : shall contain base register location and length.
7+- #clock-cells : from common clock binding, shall contain 1.
8+- #reset-cells : from common reset binding, shall contain 1.
9+- #power-domain-cells : from generic power domain binding, shall contain 1.
10+
11+Example:
12+ camcc: clock-controller@ad00000 {
13+ compatible = "qcom,sdm845-camcc";
14+ reg = <0xad00000 0x10000>;
15+ #clock-cells = <1>;
16+ #reset-cells = <1>;
17+ #power-domain-cells = <1>;
18+ };
Documentation/devicetree/bindings/clock/qcom,gcc.txt+3−0
@@ -19,6 +19,9 @@ Required properties : · 18 unmodified lines
1919 "qcom,gcc-msm8996"
2020 "qcom,gcc-msm8998"
2121 "qcom,gcc-mdm9615"
22+ "qcom,gcc-qcs404"
23+ "qcom,gcc-sdm630"
24+ "qcom,gcc-sdm660"
2225 "qcom,gcc-sdm845"
2326
2427 - reg : shall contain base register location and length
Documentation/devicetree/bindings/clock/qcom,hfpll.txt+60−0
@@ -0,0 +1,60 @@
1+High-Frequency PLL (HFPLL)
2+
3+PROPERTIES
4+
5+- compatible:
6+ Usage: required
7+ Value type: <string>:
8+ shall contain only one of the following. The generic
9+ compatible "qcom,hfpll" should be also included.
10+
11+ "qcom,hfpll-ipq8064", "qcom,hfpll"
12+ "qcom,hfpll-apq8064", "qcom,hfpll"
13+ "qcom,hfpll-msm8974", "qcom,hfpll"
14+ "qcom,hfpll-msm8960", "qcom,hfpll"
15+
16+- reg:
17+ Usage: required
18+ Value type: <prop-encoded-array>
19+ Definition: address and size of HPLL registers. An optional second
20+ element specifies the address and size of the alias
21+ register region.
22+
23+- clocks:
24+ Usage: required
25+ Value type: <prop-encoded-array>
26+ Definition: reference to the xo clock.
27+
28+- clock-names:
29+ Usage: required
30+ Value type: <stringlist>
31+ Definition: must be "xo".
32+
33+- clock-output-names:
34+ Usage: required
35+ Value type: <string>
36+ Definition: Name of the PLL. Typically hfpllX where X is a CPU number
37+ starting at 0. Otherwise hfpll_Y where Y is more specific
38+ such as "l2".
39+
40+Example:
41+
42+1) An HFPLL for the L2 cache.
43+
44+ clock-controller@f9016000 {
45+ compatible = "qcom,hfpll-ipq8064", "qcom,hfpll";
46+ reg = <0xf9016000 0x30>;
47+ clocks = <&xo_board>;
48+ clock-names = "xo";
49+ clock-output-names = "hfpll_l2";
50+ };
51+
52+2) An HFPLL for CPU0. This HFPLL has the alias register region.
53+
54+ clock-controller@f908a000 {
55+ compatible = "qcom,hfpll-ipq8064", "qcom,hfpll";
56+ reg = <0xf908a000 0x30>, <0xf900a000 0x30>;
57+ clocks = <&xo_board>;
58+ clock-names = "xo";
59+ clock-output-names = "hfpll0";
60+ };
Documentation/devicetree/bindings/clock/qcom,krait-cc.txt+34−0
@@ -0,0 +1,34 @@
1+Krait Clock Controller
2+
3+PROPERTIES
4+
5+- compatible:
6+ Usage: required
7+ Value type: <string>
8+ Definition: must be one of:
9+ "qcom,krait-cc-v1"
10+ "qcom,krait-cc-v2"
11+
12+- #clock-cells:
13+ Usage: required
14+ Value type: <u32>
15+ Definition: must be 1
16+
17+- clocks:
18+ Usage: required
19+ Value type: <prop-encoded-array>
20+ Definition: reference to the clock parents of hfpll, secondary muxes.
21+
22+- clock-names:
23+ Usage: required
24+ Value type: <stringlist>
25+ Definition: must be "hfpll0", "hfpll1", "acpu0_aux", "acpu1_aux", "qsb".
26+
27+Example:
28+
29+ kraitcc: clock-controller {
30+ compatible = "qcom,krait-cc-v1";
31+ clocks = <&hfpll0>, <&hfpll1>, <&acpu0_aux>, <&acpu1_aux>, <qsb>;
32+ clock-names = "hfpll0", "hfpll1", "acpu0_aux", "acpu1_aux", "qsb";
33+ #clock-cells = <1>;
34+ };
Documentation/devicetree/bindings/clock/renesas,cpg-mssr.txt+11−6
@@ -13,9 +13,13 @@ They provide the following functionalities: · 12 unmodified lines
1313
1414 Required Properties:
1515 - compatible: Must be one of:
16+ - "renesas,r7s9210-cpg-mssr" for the r7s9210 SoC (RZ/A2)
1617 - "renesas,r8a7743-cpg-mssr" for the r8a7743 SoC (RZ/G1M)
18+ - "renesas,r8a7744-cpg-mssr" for the r8a7744 SoC (RZ/G1N)
1719 - "renesas,r8a7745-cpg-mssr" for the r8a7745 SoC (RZ/G1E)
1820 - "renesas,r8a77470-cpg-mssr" for the r8a77470 SoC (RZ/G1C)
21+ - "renesas,r8a774a1-cpg-mssr" for the r8a774a1 SoC (RZ/G2M)
22+ - "renesas,r8a774c0-cpg-mssr" for the r8a774c0 SoC (RZ/G2E)
1923 - "renesas,r8a7790-cpg-mssr" for the r8a7790 SoC (R-Car H2)
2024 - "renesas,r8a7791-cpg-mssr" for the r8a7791 SoC (R-Car M2-W)
2125 - "renesas,r8a7792-cpg-mssr" for the r8a7792 SoC (R-Car V2H)
@@ -35,12 +39,13 @@ Required Properties: · 13 unmodified lines
3539 - clocks: References to external parent clocks, one entry for each entry in
3640 clock-names
3741 - clock-names: List of external parent clock names. Valid names are:
38− - "extal" (r8a7743, r8a7745, r8a77470, r8a7790, r8a7791, r8a7792,
39− r8a7793, r8a7794, r8a7795, r8a7796, r8a77965, r8a77970,
40− r8a77980, r8a77990, r8a77995)
41− - "extalr" (r8a7795, r8a7796, r8a77965, r8a77970, r8a77980)
42− - "usb_extal" (r8a7743, r8a7745, r8a77470, r8a7790, r8a7791, r8a7793,
43− r8a7794)
42+ - "extal" (r7s9210, r8a7743, r8a7744, r8a7745, r8a77470, r8a774a1,
43+ r8a774c0, r8a7790, r8a7791, r8a7792, r8a7793, r8a7794,
44+ r8a7795, r8a7796, r8a77965, r8a77970, r8a77980, r8a77990,
45+ r8a77995)
46+ - "extalr" (r8a774a1, r8a7795, r8a7796, r8a77965, r8a77970, r8a77980)
47+ - "usb_extal" (r8a7743, r8a7744, r8a7745, r8a77470, r8a7790, r8a7791,
48+ r8a7793, r8a7794)
4449
4550 - #clock-cells: Must be 2
4651 - For CPG core clocks, the two clock specifier cells must be "CPG_CORE"
Documentation/devicetree/bindings/connector/usb-connector.txt+4−4
@@ -29,15 +29,15 @@ Required properties for usb-c-connector with power delivery support: · 28 unmodified lines
2929 in "Universal Serial Bus Power Delivery Specification" chapter 6.4.1.2
3030 Source_Capabilities Message, the order of each entry(PDO) should follow
3131 the PD spec chapter 6.4.1. Required for power source and power dual role.
32− User can specify the source PDO array via PDO_FIXED/BATT/VAR() defined in
33− dt-bindings/usb/pd.h.
32+ User can specify the source PDO array via PDO_FIXED/BATT/VAR/PPS_APDO()
33+ defined in dt-bindings/usb/pd.h.
3434 - sink-pdos: An array of u32 with each entry providing supported power
3535 sink data object(PDO), the detailed bit definitions of PDO can be found
3636 in "Universal Serial Bus Power Delivery Specification" chapter 6.4.1.3
3737 Sink Capabilities Message, the order of each entry(PDO) should follow
3838 the PD spec chapter 6.4.1. Required for power sink and power dual role.
39− User can specify the sink PDO array via PDO_FIXED/BATT/VAR() defined in
40− dt-bindings/usb/pd.h.
39+ User can specify the sink PDO array via PDO_FIXED/BATT/VAR/PPS_APDO() defined
40+ in dt-bindings/usb/pd.h.
4141 - op-sink-microwatt: Sink required operating power in microwatt, if source
4242 can't offer the power, Capability Mismatch is set. Required for power
4343 sink and power dual role.
Documentation/devicetree/bindings/cpufreq/arm_big_little_dt.txt+0−65
@@ -1,65 +0,0 @@
1−Generic ARM big LITTLE cpufreq driver's DT glue
2−-----------------------------------------------
3−
4−This is DT specific glue layer for generic cpufreq driver for big LITTLE
5−systems.
6−
7−Both required and optional properties listed below must be defined
8−under node /cpus/cpu@x. Where x is the first cpu inside a cluster.
9−
10−FIXME: Cpus should boot in the order specified in DT and all cpus for a cluster
11−must be present contiguously. Generic DT driver will check only node 'x' for
12−cpu:x.
13−
14−Required properties:
15−- operating-points: Refer to Documentation/devicetree/bindings/opp/opp.txt
16− for details
17−
18−Optional properties:
19−- clock-latency: Specify the possible maximum transition latency for clock,
20− in unit of nanoseconds.
21−
22−Examples:
23−
24−cpus {
25− #address-cells = <1>;
26− #size-cells = <0>;
27−
28− cpu@0 {
29− compatible = "arm,cortex-a15";
30− reg = <0>;
31− next-level-cache = <&L2>;
32− operating-points = <
33− /* kHz uV */
34− 792000 1100000
35− 396000 950000
36− 198000 850000
37− >;
38− clock-latency = <61036>; /* two CLK32 periods */
39− };
40−
41− cpu@1 {
42− compatible = "arm,cortex-a15";
43− reg = <1>;
44− next-level-cache = <&L2>;
45− };
46−
47− cpu@100 {
48− compatible = "arm,cortex-a7";
49− reg = <100>;
50− next-level-cache = <&L2>;
51− operating-points = <
52− /* kHz uV */
53− 792000 950000
54− 396000 750000
55− 198000 450000
56− >;
57− clock-latency = <61036>; /* two CLK32 periods */
58− };
59−
60− cpu@101 {
61− compatible = "arm,cortex-a7";
62− reg = <101>;
63− next-level-cache = <&L2>;
64− };
65−};
Documentation/devicetree/bindings/crypto/hisilicon,hip07-sec.txt+1−1
@@ -24,7 +24,7 @@ Optional properties: · 23 unmodified lines
2424
2525 Example:
2626
27−p1_sec_a: crypto@400,d2000000 {
27+p1_sec_a: crypto@400d2000000 {
2828 compatible = "hisilicon,hip07-sec";
2929 reg = <0x400 0xd0000000 0x0 0x10000
3030 0x400 0xd2000000 0x0 0x10000
Documentation/devicetree/bindings/csky/cpus.txt+73−0
@@ -0,0 +1,73 @@
1+==================
2+C-SKY CPU Bindings
3+==================
4+
5+The device tree allows to describe the layout of CPUs in a system through
6+the "cpus" node, which in turn contains a number of subnodes (ie "cpu")
7+defining properties for every cpu.
8+
9+Only SMP system need to care about the cpus node and single processor
10+needn't define cpus node at all.
11+
12+=====================================
13+cpus and cpu node bindings definition
14+=====================================
15+
16+- cpus node
17+
18+ Description: Container of cpu nodes
19+
20+ The node name must be "cpus".
21+
22+ A cpus node must define the following properties:
23+
24+ - #address-cells
25+ Usage: required
26+ Value type: <u32>
27+ Definition: must be set to 1
28+ - #size-cells
29+ Usage: required
30+ Value type: <u32>
31+ Definition: must be set to 0
32+
33+- cpu node
34+
35+ Description: Describes one of SMP cores
36+
37+ PROPERTIES
38+
39+ - device_type
40+ Usage: required
41+ Value type: <string>
42+ Definition: must be "cpu"
43+ - reg
44+ Usage: required
45+ Value type: <u32>
46+ Definition: CPU index
47+ - compatible:
48+ Usage: required
49+ Value type: <string>
50+ Definition: must contain "csky", eg:
51+ "csky,610"
52+ "csky,807"
53+ "csky,810"
54+ "csky,860"
55+
56+Example:
57+--------
58+
59+ cpus {
60+ #address-cells = <1>;
61+ #size-cells = <0>;
62+ cpu@0 {
63+ device_type = "cpu";
64+ reg = <0>;
65+ status = "ok";
66+ };
67+
68+ cpu@1 {
69+ device_type = "cpu";
70+ reg = <1>;
71+ status = "ok";
72+ };
73+ };
Documentation/devicetree/bindings/display/himax,hx8357d.txt+26−0
@@ -0,0 +1,26 @@
1+Himax HX8357D display panels
2+
3+This binding is for display panels using a Himax HX8357D controller in SPI
4+mode, such as the Adafruit 3.5" TFT for Raspberry Pi.
5+
6+Required properties:
7+- compatible: "adafruit,yx350hv15", "himax,hx8357d"
8+- dc-gpios: D/C pin
9+- reg: address of the panel on the SPI bus
10+
11+The node for this driver must be a child node of a SPI controller, hence
12+all mandatory properties described in ../spi/spi-bus.txt must be specified.
13+
14+Optional properties:
15+- rotation: panel rotation in degrees counter clockwise (0,90,180,270)
16+- backlight: phandle of the backlight device attached to the panel
17+
18+Example:
19+ display@0{
20+ compatible = "adafruit,yx350hv15", "himax,hx8357d";
21+ reg = <0>;
22+ spi-max-frequency = <32000000>;
23+ dc-gpios = <&gpio0 25 GPIO_ACTIVE_HIGH>;
24+ rotation = <90>;
25+ backlight = <&backlight>;
26+ };
Documentation/devicetree/bindings/display/panel/bananapi,s070wv20-ct16.txt+12−0
@@ -0,0 +1,12 @@
1+Banana Pi 7" (S070WV20-CT16) TFT LCD Panel
2+
3+Required properties:
4+- compatible: should be "bananapi,s070wv20-ct16"
5+- power-supply: see ./panel-common.txt
6+
7+Optional properties:
8+- enable-gpios: see ./simple-panel.txt
9+- backlight: see ./simple-panel.txt
10+
11+This binding is compatible with the simple-panel binding, which is specified
12+in ./simple-panel.txt.
Documentation/devicetree/bindings/display/panel/cdtech,s043wq26h-ct7.txt+12−0
@@ -0,0 +1,12 @@
1+CDTech(H.K.) Electronics Limited 4.3" 480x272 color TFT-LCD panel
2+
3+Required properties:
4+- compatible: should be "cdtech,s043wq26h-ct7"
5+- power-supply: as specified in the base binding
6+
7+Optional properties:
8+- backlight: as specified in the base binding
9+- enable-gpios: as specified in the base binding
10+
11+This binding is compatible with the simple-panel binding, which is specified
12+in simple-panel.txt in this directory.
Documentation/devicetree/bindings/display/panel/cdtech,s070wv95-ct16.txt+12−0
@@ -0,0 +1,12 @@
1+CDTech(H.K.) Electronics Limited 7" 800x480 color TFT-LCD panel
2+
3+Required properties:
4+- compatible: should be "cdtech,s070wv95-ct16"
5+- power-supply: as specified in the base binding
6+
7+Optional properties:
8+- backlight: as specified in the base binding
9+- enable-gpios: as specified in the base binding
10+
11+This binding is compatible with the simple-panel binding, which is specified
12+in simple-panel.txt in this directory.
Documentation/devicetree/bindings/display/panel/dlc,dlc1010gig.txt+12−0
@@ -0,0 +1,12 @@
1+DLC Display Co. DLC1010GIG 10.1" WXGA TFT LCD Panel
2+
3+Required properties:
4+- compatible: should be "dlc,dlc1010gig"
5+- power-supply: See simple-panel.txt
6+
7+Optional properties:
8+- enable-gpios: See simple-panel.txt
9+- backlight: See simple-panel.txt
10+
11+This binding is compatible with the simple-panel binding, which is specified
12+in simple-panel.txt in this directory.
Documentation/devicetree/bindings/display/panel/olimex,lcd-olinuxino.txt+42−0
@@ -0,0 +1,42 @@
1+Binding for Olimex Ltd. LCD-OLinuXino bridge panel.
2+
3+This device can be used as bridge between a host controller and LCD panels.
4+Currently supported LCDs are:
5+ - LCD-OLinuXino-4.3TS
6+ - LCD-OLinuXino-5
7+ - LCD-OLinuXino-7
8+ - LCD-OLinuXino-10
9+
10+The panel itself contains:
11+ - AT24C16C EEPROM holding panel identification and timing requirements
12+ - AR1021 resistive touch screen controller (optional)
13+ - FT5x6 capacitive touch screnn controller (optional)
14+ - GT911/GT928 capacitive touch screen controller (optional)
15+
16+The above chips share same I2C bus. The EEPROM is factory preprogrammed with
17+device information (id, serial, etc.) and timing requirements.
18+
19+Touchscreen bingings can be found in these files:
20+ - input/touchscreen/goodix.txt
21+ - input/touchscreen/edt-ft5x06.txt
22+ - input/touchscreen/ar1021.txt
23+
24+Required properties:
25+ - compatible: should be "olimex,lcd-olinuxino"
26+ - reg: address of the configuration EEPROM, should be <0x50>
27+ - power-supply: phandle of the regulator that provides the supply voltage
28+
29+Optional properties:
30+ - enable-gpios: GPIO pin to enable or disable the panel
31+ - backlight: phandle of the backlight device attacked to the panel
32+
33+Example:
34+&i2c2 {
35+ panel@50 {
36+ compatible = "olimex,lcd-olinuxino";
37+ reg = <0x50>;
38+ power-supply = <&reg_vcc5v0>;
39+ enable-gpios = <&pio 7 8 GPIO_ACTIVE_HIGH>;
40+ backlight = <&backlight>;
41+ };
42+};
Documentation/devicetree/bindings/display/panel/samsung,s6d16d0.txt+30−0
@@ -0,0 +1,30 @@
1+Samsung S6D16D0 4" 864x480 AMOLED panel
2+
3+Required properties:
4+ - compatible: should be:
5+ "samsung,s6d16d0",
6+ - reg: the virtual channel number of a DSI peripheral
7+ - vdd1-supply: I/O voltage supply
8+ - reset-gpios: a GPIO spec for the reset pin (active low)
9+
10+The device node can contain one 'port' child node with one child
11+'endpoint' node, according to the bindings defined in
12+media/video-interfaces.txt. This node should describe panel's video bus.
13+
14+Example:
15+&dsi {
16+ ...
17+
18+ panel@0 {
19+ compatible = "samsung,s6d16d0";
20+ reg = <0>;
21+ vdd1-supply = <&foo>;
22+ reset-gpios = <&foo_gpio 0 GPIO_ACTIVE_LOW>;
23+
24+ port {
25+ panel_in: endpoint {
26+ remote-endpoint = <&dsi_out>;
27+ };
28+ };
29+ };
30+};
Documentation/devicetree/bindings/display/rockchip/dw_hdmi-rockchip.txt+3−0
@@ -13,6 +13,7 @@ Required properties: · 12 unmodified lines
1313
1414 - compatible: should be one of the following:
1515 "rockchip,rk3288-dw-hdmi"
16+ "rockchip,rk3328-dw-hdmi"
1617 "rockchip,rk3399-dw-hdmi"
1718 - reg: See dw_hdmi.txt.
1819 - reg-io-width: See dw_hdmi.txt. Shall be 4.
@@ -34,6 +35,8 @@ Optional properties · 15 unmodified lines
3435 - clock-names: May contain "cec" as defined in dw_hdmi.txt.
3536 - clock-names: May contain "grf", power for grf io.
3637 - clock-names: May contain "vpll", external clock for some hdmi phy.
38+- phys: from general PHY binding: the phandle for the PHY device.
39+- phy-names: Should be "hdmi" if phys references an external phy.
3740
3841 Example:
3942
Documentation/devicetree/bindings/display/sunxi/sun4i-drm.txt+21−9
@@ -79,6 +79,7 @@ Required properties: · 78 unmodified lines
7979 - compatible: value must be one of:
8080 * "allwinner,sun8i-a83t-dw-hdmi"
8181 * "allwinner,sun50i-a64-dw-hdmi", "allwinner,sun8i-a83t-dw-hdmi"
82+ * "allwinner,sun50i-h6-dw-hdmi"
8283 - reg: base address and size of memory-mapped region
8384 - reg-io-width: See dw_hdmi.txt. Shall be 1.
8485 - interrupts: HDMI interrupt number
@@ -86,9 +87,14 @@ Required properties: · 1 unmodified line
8687 * iahb: the HDMI bus clock
8788 * isfr: the HDMI register clock
8889 * tmds: TMDS clock
90+ * cec: HDMI CEC clock (H6 only)
91+ * hdcp: HDCP clock (H6 only)
92+ * hdcp-bus: HDCP bus clock (H6 only)
8993 - clock-names: the clock names mentioned above
90− - resets: phandle to the reset controller
91− - reset-names: must be "ctrl"
94+ - resets:
95+ * ctrl: HDMI controller reset
96+ * hdcp: HDCP reset (H6 only)
97+ - reset-names: reset names mentioned above
9298 - phys: phandle to the DWC HDMI PHY
9399 - phy-names: must be "phy"
94100
@@ -109,6 +115,7 @@ Required properties: · 14 unmodified lines
109115 * allwinner,sun8i-h3-hdmi-phy
110116 * allwinner,sun8i-r40-hdmi-phy
111117 * allwinner,sun50i-a64-hdmi-phy
118+ * allwinner,sun50i-h6-hdmi-phy
112119 - reg: base address and size of memory-mapped region
113120 - clocks: phandles to the clocks feeding the HDMI PHY
114121 * bus: the HDMI PHY interface clock
@@ -158,6 +165,7 @@ Required properties: · 43 unmodified lines
158165 * allwinner,sun9i-a80-tcon-tv
159166 * "allwinner,sun50i-a64-tcon-lcd", "allwinner,sun8i-a83t-tcon-lcd"
160167 * "allwinner,sun50i-a64-tcon-tv", "allwinner,sun8i-a83t-tcon-tv"
168+ * allwinner,sun50i-h6-tcon-tv, allwinner,sun8i-r40-tcon-tv
161169 - reg: base address and size of memory-mapped region
162170 - interrupts: interrupt associated to this IP
163171 - clocks: phandles to the clocks feeding the TCON.
@@ -220,24 +228,26 @@ It allows display pipeline to be configured in very different ways: · 56 unmodified lines
220228 \ [3] TCON-TV1 [1] - TVE1/RGB
221229
222230 Note that both TCON TOP references same physical unit. Both mixers can be
223−connected to any TCON.
231+connected to any TCON. Not all TCON TOP variants support all features.
224232
225233 Required properties:
226234 - compatible: value must be one of:
227235 * allwinner,sun8i-r40-tcon-top
236+ * allwinner,sun50i-h6-tcon-top
228237 - reg: base address and size of the memory-mapped region.
229238 - clocks: phandle to the clocks feeding the TCON TOP
230239 * bus: TCON TOP interface clock
231240 * tcon-tv0: TCON TV0 clock
232− * tve0: TVE0 clock
233− * tcon-tv1: TCON TV1 clock
234− * tve1: TVE0 clock
235− * dsi: MIPI DSI clock
241+ * tve0: TVE0 clock (R40 only)
242+ * tcon-tv1: TCON TV1 clock (R40 only)
243+ * tve1: TVE0 clock (R40 only)
244+ * dsi: MIPI DSI clock (R40 only)
236245 - clock-names: clock name mentioned above
237246 - resets: phandle to the reset line driving the TCON TOP
238247 - #clock-cells : must contain 1
239248 - clock-output-names: Names of clocks created for TCON TV0 channel clock,
240− TCON TV1 channel clock and DSI channel clock, in that order.
249+ TCON TV1 channel clock (R40 only) and DSI channel clock (R40 only), in
250+ that order.
241251
242252 - ports: A ports node with endpoint definitions as defined in
243253 Documentation/devicetree/bindings/media/video-interfaces.txt. 6 ports should
@@ -381,6 +391,7 @@ Required properties: · 137 unmodified lines
381391 * allwinner,sun8i-v3s-de2-mixer
382392 * allwinner,sun50i-a64-de2-mixer-0
383393 * allwinner,sun50i-a64-de2-mixer-1
394+ * allwinner,sun50i-h6-de3-mixer-0
384395 - reg: base address and size of the memory-mapped region.
385396 - clocks: phandles to the clocks feeding the mixer
386397 * bus: the mixer interface clock
@@ -415,9 +426,10 @@ Required properties: · 28 unmodified lines
415426 * allwinner,sun8i-v3s-display-engine
416427 * allwinner,sun9i-a80-display-engine
417428 * allwinner,sun50i-a64-display-engine
429+ * allwinner,sun50i-h6-display-engine
418430
419431 - allwinner,pipelines: list of phandle to the display engine
420− frontends (DE 1.0) or mixers (DE 2.0) available.
432+ frontends (DE 1.0) or mixers (DE 2.0/3.0) available.
421433
422434 Example:
423435
Documentation/devicetree/bindings/display/truly,nt35597.txt+59−0
@@ -0,0 +1,59 @@
1+Truly model NT35597 DSI display driver
2+
3+The Truly NT35597 is a generic display driver, currently only configured
4+for use in the 2K display on the Qualcomm SDM845 MTP board.
5+
6+Required properties:
7+- compatible: should be "truly,nt35597-2K-display"
8+- vdda-supply: phandle of the regulator that provides the supply voltage
9+ Power IC supply
10+- vdispp-supply: phandle of the regulator that provides the supply voltage
11+ for positive LCD bias
12+- vdispn-supply: phandle of the regulator that provides the supply voltage
13+ for negative LCD bias
14+- reset-gpios: phandle of gpio for reset line
15+ This should be 8mA, gpio can be configured using mux, pinctrl, pinctrl-names
16+ (active low)
17+- mode-gpios: phandle of the gpio for choosing the mode of the display
18+ for single DSI or Dual DSI
19+ This should be low for dual DSI and high for single DSI mode
20+- ports: This device has two video ports driven by two DSIs. Their connections
21+ are modeled using the OF graph bindings specified in
22+ Documentation/devicetree/bindings/graph.txt.
23+ - port@0: DSI input port driven by master DSI
24+ - port@1: DSI input port driven by secondary DSI
25+
26+Example:
27+
28+ dsi@ae94000 {
29+ panel@0 {
30+ compatible = "truly,nt35597-2K-display";
31+ reg = <0>;
32+ vdda-supply = <&pm8998_l14>;
33+ vdispp-supply = <&lab_regulator>;
34+ vdispn-supply = <&ibb_regulator>;
35+ pinctrl-names = "default", "suspend";
36+ pinctrl-0 = <&dpu_dsi_active>;
37+ pinctrl-1 = <&dpu_dsi_suspend>;
38+
39+ reset-gpios = <&tlmm 6 GPIO_ACTIVE_LOW>;
40+ mode-gpios = <&tlmm 52 GPIO_ACTIVE_HIGH>;
41+ ports {
42+ #address-cells = <1>;
43+ #size-cells = <0>;
44+ port@0 {
45+ reg = <0>;
46+ panel0_in: endpoint {
47+ remote-endpoint = <&dsi0_out>;
48+ };
49+ };
50+
51+ port@1 {
52+ reg = <1>;
53+ panel1_in: endpoint {
54+ remote-endpoint = <&dsi1_out>;
55+ };
56+ };
57+ };
58+ };
59+ };
Documentation/devicetree/bindings/dma/jz4780-dma.txt+10−4
@@ -2,8 +2,13 @@ · 1 unmodified line
22
33 Required properties:
44
5−- compatible: Should be "ingenic,jz4780-dma"
6−- reg: Should contain the DMA controller registers location and length.
5+- compatible: Should be one of:
6+ * ingenic,jz4740-dma
7+ * ingenic,jz4725b-dma
8+ * ingenic,jz4770-dma
9+ * ingenic,jz4780-dma
10+- reg: Should contain the DMA channel registers location and length, followed
11+ by the DMA controller registers location and length.
712 - interrupts: Should contain the interrupt specifier of the DMA controller.
813 - clocks: Should contain a clock specifier for the JZ4780 PDMA clock.
914 - #dma-cells: Must be <2>. Number of integer cells in the dmas property of
@@ -19,9 +24,10 @@ Optional properties: · 9 unmodified lines
1924
2025 Example:
2126
22−dma: dma@13420000 {
27+dma: dma-controller@13420000 {
2328 compatible = "ingenic,jz4780-dma";
24− reg = <0x13420000 0x10000>;
29+ reg = <0x13420000 0x400
30+ 0x13421000 0x40>;
2531
2632 interrupt-parent = <&intc>;
2733 interrupts = <10>;
Documentation/devicetree/bindings/dma/renesas,rcar-dmac.txt+1−0
@@ -17,6 +17,7 @@ Required Properties: · 16 unmodified lines
1717 - compatible: "renesas,dmac-<soctype>", "renesas,rcar-dmac" as fallback.
1818 Examples with soctypes are:
1919 - "renesas,dmac-r8a7743" (RZ/G1M)
20+ - "renesas,dmac-r8a7744" (RZ/G1N)
2021 - "renesas,dmac-r8a7745" (RZ/G1E)
2122 - "renesas,dmac-r8a77470" (RZ/G1C)
2223 - "renesas,dmac-r8a7790" (R-Car H2)
Documentation/devicetree/bindings/dma/renesas,usb-dmac.txt+1−0
@@ -4,6 +4,7 @@ Required Properties: · 3 unmodified lines
44 -compatible: "renesas,<soctype>-usb-dmac", "renesas,usb-dmac" as fallback.
55 Examples with soctypes are:
66 - "renesas,r8a7743-usb-dmac" (RZ/G1M)
7+ - "renesas,r8a7744-usb-dmac" (RZ/G1N)
78 - "renesas,r8a7745-usb-dmac" (RZ/G1E)
89 - "renesas,r8a7790-usb-dmac" (R-Car H2)
910 - "renesas,r8a7791-usb-dmac" (R-Car M2-W)
Documentation/devicetree/bindings/firmware/qcom,scm.txt+21−12
@@ -7,16 +7,23 @@ assorted actions. · 6 unmodified lines
77
88 Required properties:
99 - compatible: must contain one of the following:
10− * "qcom,scm-apq8064" for APQ8064 platforms
11− * "qcom,scm-msm8660" for MSM8660 platforms
12− * "qcom,scm-msm8690" for MSM8690 platforms
13− * "qcom,scm-msm8996" for MSM8996 platforms
14− * "qcom,scm-ipq4019" for IPQ4019 platforms
15− * "qcom,scm" for later processors (MSM8916, APQ8084, MSM8974, etc)
16−- clocks: One to three clocks may be required based on compatible.
17− * No clock required for "qcom,scm-msm8996", "qcom,scm-ipq4019"
18− * Only core clock required for "qcom,scm-apq8064", "qcom,scm-msm8660", and "qcom,scm-msm8960"
19− * Core, iface, and bus clocks required for "qcom,scm"
10+ * "qcom,scm-apq8064"
11+ * "qcom,scm-apq8084"
12+ * "qcom,scm-msm8660"
13+ * "qcom,scm-msm8916"
14+ * "qcom,scm-msm8960"
15+ * "qcom,scm-msm8974"
16+ * "qcom,scm-msm8996"
17+ * "qcom,scm-msm8998"
18+ * "qcom,scm-ipq4019"
19+ * "qcom,scm-sdm845"
20+ and:
21+ * "qcom,scm"
22+- clocks: Specifies clocks needed by the SCM interface, if any:
23+ * core clock required for "qcom,scm-apq8064", "qcom,scm-msm8660" and
24+ "qcom,scm-msm8960"
25+ * core, iface and bus clocks required for "qcom,scm-apq8084",
26+ "qcom,scm-msm8916" and "qcom,scm-msm8974"
2027 - clock-names: Must contain "core" for the core clock, "iface" for the interface
2128 clock and "bus" for the bus clock per the requirements of the compatible.
2229 - qcom,dload-mode: phandle to the TCSR hardware block and offset of the
@@ -26,8 +33,10 @@ Example for MSM8916: · 3 unmodified lines
2633
2734 firmware {
2835 scm {
29− compatible = "qcom,scm";
30− clocks = <&gcc GCC_CRYPTO_CLK> , <&gcc GCC_CRYPTO_AXI_CLK>, <&gcc GCC_CRYPTO_AHB_CLK>;
36+ compatible = "qcom,msm8916", "qcom,scm";
37+ clocks = <&gcc GCC_CRYPTO_CLK> ,
38+ <&gcc GCC_CRYPTO_AXI_CLK>,
39+ <&gcc GCC_CRYPTO_AHB_CLK>;
3140 clock-names = "core", "bus", "iface";
3241 };
3342 };
Documentation/devicetree/bindings/firmware/xilinx/xlnx,zynqmp-firmware.txt+82−0
@@ -0,0 +1,82 @@
1+-----------------------------------------------------------------
2+Device Tree Bindings for the Xilinx Zynq MPSoC Firmware Interface
3+-----------------------------------------------------------------
4+
5+The zynqmp-firmware node describes the interface to platform firmware.
6+ZynqMP has an interface to communicate with secure firmware. Firmware
7+driver provides an interface to firmware APIs. Interface APIs can be
8+used by any driver to communicate to PMUFW(Platform Management Unit).
9+These requests include clock management, pin control, device control,
10+power management service, FPGA service and other platform management
11+services.
12+
13+Required properties:
14+ - compatible: Must contain: "xlnx,zynqmp-firmware"
15+ - method: The method of calling the PM-API firmware layer.
16+ Permitted values are:
17+ - "smc" : SMC #0, following the SMCCC
18+ - "hvc" : HVC #0, following the SMCCC
19+
20+--------------------------------------------------------------------------
21+Device Tree Clock bindings for the Zynq Ultrascale+ MPSoC controlled using
22+Zynq MPSoC firmware interface
23+--------------------------------------------------------------------------
24+The clock controller is a h/w block of Zynq Ultrascale+ MPSoC clock
25+tree. It reads required input clock frequencies from the devicetree and acts
26+as clock provider for all clock consumers of PS clocks.
27+
28+See clock_bindings.txt for more information on the generic clock bindings.
29+
30+Required properties:
31+ - #clock-cells: Must be 1
32+ - compatible: Must contain: "xlnx,zynqmp-clk"
33+ - clocks: List of clock specifiers which are external input
34+ clocks to the given clock controller. Please refer
35+ the next section to find the input clocks for a
36+ given controller.
37+ - clock-names: List of clock names which are exteral input clocks
38+ to the given clock controller. Please refer to the
39+ clock bindings for more details.
40+
41+Input clocks for zynqmp Ultrascale+ clock controller:
42+
43+The Zynq UltraScale+ MPSoC has one primary and four alternative reference clock
44+inputs. These required clock inputs are:
45+ - pss_ref_clk (PS reference clock)
46+ - video_clk (reference clock for video system )
47+ - pss_alt_ref_clk (alternative PS reference clock)
48+ - aux_ref_clk
49+ - gt_crx_ref_clk (transceiver reference clock)
50+
51+The following strings are optional parameters to the 'clock-names' property in
52+order to provide an optional (E)MIO clock source:
53+ - swdt0_ext_clk
54+ - swdt1_ext_clk
55+ - gem0_emio_clk
56+ - gem1_emio_clk
57+ - gem2_emio_clk
58+ - gem3_emio_clk
59+ - mio_clk_XX # with XX = 00..77
60+ - mio_clk_50_or_51 #for the mux clock to gem tsu from 50 or 51
61+
62+
63+Output clocks are registered based on clock information received
64+from firmware. Output clocks indexes are mentioned in
65+include/dt-bindings/clock/xlnx,zynqmp-clk.h.
66+
67+-------
68+Example
69+-------
70+
71+firmware {
72+ zynqmp_firmware: zynqmp-firmware {
73+ compatible = "xlnx,zynqmp-firmware";
74+ method = "smc";
75+ zynqmp_clk: clock-controller {
76+ #clock-cells = <1>;
77+ compatible = "xlnx,zynqmp-clk";
78+ clocks = <&pss_ref_clk>, <&video_clk>, <&pss_alt_ref_clk>, <&aux_ref_clk>, <&gt_crx_ref_clk>;
79+ clock-names = "pss_ref_clk", "video_clk", "pss_alt_ref_clk","aux_ref_clk", "gt_crx_ref_clk";
80+ };
81+ };
82+};
Documentation/devicetree/bindings/fpga/fpga-region.txt+2−2
@@ -415,7 +415,7 @@ DT Overlay contains: · 414 unmodified lines
415415 firmware-name = "base.rbf";
416416
417417 fpga-bridge@4400 {
418− compatible = "altr,freeze-bridge";
418+ compatible = "altr,freeze-bridge-controller";
419419 reg = <0x4400 0x10>;
420420
421421 fpga_region1: fpga-region1 {
@@ -427,7 +427,7 @@ DT Overlay contains: · 5 unmodified lines
427427 };
428428
429429 fpga-bridge@4420 {
430− compatible = "altr,freeze-bridge";
430+ compatible = "altr,freeze-bridge-controller";
431431 reg = <0x4420 0x10>;
432432
433433 fpga_region2: fpga-region2 {
Documentation/devicetree/bindings/gpio/gpio.txt+75−67
@@ -1,18 +1,9 @@
11 Specifying GPIO information for devices
2−============================================
2+=======================================
33
44 1) gpios property
55 -----------------
66
7−Nodes that makes use of GPIOs should specify them using one or more
8−properties, each containing a 'gpio-list':
9−
10− gpio-list ::= <single-gpio> [gpio-list]
11− single-gpio ::= <gpio-phandle> <gpio-specifier>
12− gpio-phandle : phandle to gpio controller node
13− gpio-specifier : Array of #gpio-cells specifying specific gpio
14− (controller specific)
15−
167 GPIO properties should be named "[<name>-]gpios", with <name> being the purpose
178 of this GPIO for the device. While a non-existent <name> is considered valid
189 for compatibility reasons (resolving to the "gpios" property), it is not allowed
@@ -33,33 +24,27 @@ The following example could be used to describe GPIO pins used as device enable · 14 unmodified lines
3324 and bit-banged data signals:
3425
3526 gpio1: gpio1 {
36− gpio-controller
37− #gpio-cells = <2>;
38− };
39− gpio2: gpio2 {
40− gpio-controller
41− #gpio-cells = <1>;
27+ gpio-controller;
28+ #gpio-cells = <2>;
4229 };
4330 [...]
4431
45− enable-gpios = <&gpio2 2>;
4632 data-gpios = <&gpio1 12 0>,
4733 <&gpio1 13 0>,
4834 <&gpio1 14 0>,
4935 <&gpio1 15 0>;
5036
51−Note that gpio-specifier length is controller dependent. In the
52−above example, &gpio1 uses 2 cells to specify a gpio, while &gpio2
53−only uses one.
37+In the above example, &gpio1 uses 2 cells to specify a gpio. The first cell is
38+a local offset to the GPIO line and the second cell represent consumer flags,
39+such as if the consumer desire the line to be active low (inverted) or open
40+drain. This is the recommended practice.
5441
55−gpio-specifier may encode: bank, pin position inside the bank,
56−whether pin is open-drain and whether pin is logically inverted.
42+The exact meaning of each specifier cell is controller specific, and must be
43+documented in the device tree binding for the device, but it is strongly
44+recommended to use the two-cell approach.
5745
58−Exact meaning of each specifier cell is controller specific, and must
59−be documented in the device tree binding for the device.
60−
61−Most controllers are however specifying a generic flag bitfield
62−in the last cell, so for these, use the macros defined in
46+Most controllers are specifying a generic flag bitfield in the last cell, so
47+for these, use the macros defined in
6348 include/dt-bindings/gpio/gpio.h whenever possible:
6449
6550 Example of a node using GPIOs:
@@ -236,46 +221,40 @@ Example of two SOC GPIO banks defined as gpio-controller nodes: · 170 unmodified lines
236221
237222 Some or all of the GPIOs provided by a GPIO controller may be routed to pins
238223 on the package via a pin controller. This allows muxing those pins between
239−GPIO and other functions.
224+GPIO and other functions. It is a fairly common practice among silicon
225+engineers.
226+
227+2.2) Ordinary (numerical) GPIO ranges
228+-------------------------------------
240229
241230 It is useful to represent which GPIOs correspond to which pins on which pin
242−controllers. The gpio-ranges property described below represents this, and
243−contains information structures as follows:
244−
245− gpio-range-list ::= <single-gpio-range> [gpio-range-list]
246− single-gpio-range ::= <numeric-gpio-range> | <named-gpio-range>
247− numeric-gpio-range ::=
248− <pinctrl-phandle> <gpio-base> <pinctrl-base> <count>
249− named-gpio-range ::= <pinctrl-phandle> <gpio-base> '<0 0>'
250− pinctrl-phandle : phandle to pin controller node
251− gpio-base : Base GPIO ID in the GPIO controller
252− pinctrl-base : Base pinctrl pin ID in the pin controller
253− count : The number of GPIOs/pins in this range
254−
255−The "pin controller node" mentioned above must conform to the bindings
256−described in ../pinctrl/pinctrl-bindings.txt.
257−
258−In case named gpio ranges are used (ranges with both <pinctrl-base> and
259−<count> set to 0), the property gpio-ranges-group-names contains one string
260−for every single-gpio-range in gpio-ranges:
261− gpiorange-names-list ::= <gpiorange-name> [gpiorange-names-list]
262− gpiorange-name : Name of the pingroup associated to the GPIO range in
263− the respective pin controller.
264−
265−Elements of gpiorange-names-list corresponding to numeric ranges contain
266−the empty string. Elements of gpiorange-names-list corresponding to named
267−ranges contain the name of a pin group defined in the respective pin
268−controller. The number of pins/GPIOs in the range is the number of pins in
269−that pin group.
231+controllers. The gpio-ranges property described below represents this with
232+a discrete set of ranges mapping pins from the pin controller local number space
233+to pins in the GPIO controller local number space.
270234
271−Previous versions of this binding required all pin controller nodes that
272−were referenced by any gpio-ranges property to contain a property named
273−#gpio-range-cells with value <3>. This requirement is now deprecated.
274−However, that property may still exist in older device trees for
275−compatibility reasons, and would still be required even in new device
276−trees that need to be compatible with older software.
235+The format is: <[pin controller phandle], [GPIO controller offset],
236+ [pin controller offset], [number of pins]>;
237+
238+The GPIO controller offset pertains to the GPIO controller node containing the
239+range definition.
240+
241+The pin controller node referenced by the phandle must conform to the bindings
242+described in pinctrl/pinctrl-bindings.txt.
243+
244+Each offset runs from 0 to N. It is perfectly fine to pile any number of
245+ranges with just one pin-to-GPIO line mapping if the ranges are concocted, but
246+in practice these ranges are often lumped in discrete sets.
247+
248+Example:
249+
250+ gpio-ranges = <&foo 0 20 10>, <&bar 10 50 20>;
277251
278−Example 1:
252+This means:
253+- pins 20..29 on pin controller "foo" is mapped to GPIO line 0..9 and
254+- pins 50..69 on pin controller "bar" is mapped to GPIO line 10..29
255+
256+
257+Verbose example:
279258
280259 qe_pio_e: gpio-controller@1460 {
281260 #gpio-cells = <2>;
@@ -289,7 +268,28 @@ Here, a single GPIO controller has GPIOs 0..9 routed to pin controller · 7 unmodified lines
289268 pinctrl1's pins 20..29, and GPIOs 10..29 routed to pin controller pinctrl2's
290269 pins 50..69.
291270
292−Example 2:
271+
272+2.3) GPIO ranges from named pin groups
273+--------------------------------------
274+
275+It is also possible to use pin groups for gpio ranges when pin groups are the
276+easiest and most convenient mapping.
277+
278+Both both <pinctrl-base> and <count> must set to 0 when using named pin groups
279+names.
280+
281+The property gpio-ranges-group-names must contain exactly one string for each
282+range.
283+
284+Elements of gpio-ranges-group-names must contain the name of a pin group
285+defined in the respective pin controller. The number of pins/GPIO lines in the
286+range is the number of pins in that pin group. The number of pins of that
287+group is defined int the implementation and not in the device tree.
288+
289+If numerical and named pin groups are mixed, the string corresponding to a
290+numerical pin range in gpio-ranges-group-names must be empty.
291+
292+Example:
293293
294294 gpio_pio_i: gpio-controller@14b0 {
295295 #gpio-cells = <2>;
@@ -306,6 +306,14 @@ Example 2: · 10 unmodified lines
306306 "bar";
307307 };
308308
309−Here, three GPIO ranges are defined wrt. two pin controllers. pinctrl1 GPIO
310−ranges are defined using pin numbers whereas the GPIO ranges wrt. pinctrl2
311−are named "foo" and "bar".
309+Here, three GPIO ranges are defined referring to two pin controllers.
310+
311+pinctrl1 GPIO ranges are defined using pin numbers whereas the GPIO ranges
312+in pinctrl2 are defined using the pin groups named "foo" and "bar".
313+
314+Previous versions of this binding required all pin controller nodes that
315+were referenced by any gpio-ranges property to contain a property named
316+#gpio-range-cells with value <3>. This requirement is now deprecated.
317+However, that property may still exist in older device trees for
318+compatibility reasons, and would still be required even in new device
319+trees that need to be compatible with older software.
Documentation/devicetree/bindings/gpio/ingenic,gpio.txt+0−46
@@ -1,46 +0,0 @@
1−Ingenic jz47xx GPIO controller
2−
3−That the Ingenic GPIO driver node must be a sub-node of the Ingenic pinctrl
4−driver node.
5−
6−Required properties:
7−--------------------
8−
9− - compatible: Must contain one of:
10− - "ingenic,jz4740-gpio"
11− - "ingenic,jz4770-gpio"
12− - "ingenic,jz4780-gpio"
13− - reg: The GPIO bank number.
14− - interrupt-controller: Marks the device node as an interrupt controller.
15− - interrupts: Interrupt specifier for the controllers interrupt.
16− - #interrupt-cells: Should be 2. Refer to
17− ../interrupt-controller/interrupts.txt for more details.
18− - gpio-controller: Marks the device node as a GPIO controller.
19− - #gpio-cells: Should be 2. The first cell is the GPIO number and the second
20− cell specifies GPIO flags, as defined in <dt-bindings/gpio/gpio.h>. Only the
21− GPIO_ACTIVE_HIGH and GPIO_ACTIVE_LOW flags are supported.
22− - gpio-ranges: Range of pins managed by the GPIO controller. Refer to
23− 'gpio.txt' in this directory for more details.
24−
25−Example:
26−--------
27−
28−&pinctrl {
29− #address-cells = <1>;
30− #size-cells = <0>;
31−
32− gpa: gpio@0 {
33− compatible = "ingenic,jz4740-gpio";
34− reg = <0>;
35−
36− gpio-controller;
37− gpio-ranges = <&pinctrl 0 0 32>;
38− #gpio-cells = <2>;
39−
40− interrupt-controller;
41− #interrupt-cells = <2>;
42−
43− interrupt-parent = <&intc>;
44− interrupts = <28>;
45− };
46−};
Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt+38−27
@@ -4,8 +4,10 @@ Required Properties: · 3 unmodified lines
44
55 - compatible: should contain one or more of the following:
66 - "renesas,gpio-r8a7743": for R8A7743 (RZ/G1M) compatible GPIO controller.
7+ - "renesas,gpio-r8a7744": for R8A7744 (RZ/G1N) compatible GPIO controller.
78 - "renesas,gpio-r8a7745": for R8A7745 (RZ/G1E) compatible GPIO controller.
89 - "renesas,gpio-r8a77470": for R8A77470 (RZ/G1C) compatible GPIO controller.
10+ - "renesas,gpio-r8a774a1": for R8A774A1 (RZ/G2M) compatible GPIO controller.
911 - "renesas,gpio-r8a7778": for R8A7778 (R-Car M1) compatible GPIO controller.
1012 - "renesas,gpio-r8a7779": for R8A7779 (R-Car H1) compatible GPIO controller.
1113 - "renesas,gpio-r8a7790": for R8A7790 (R-Car H2) compatible GPIO controller.
@@ -22,7 +24,7 @@ Required Properties: · 10 unmodified lines
2224 - "renesas,gpio-r8a77995": for R8A77995 (R-Car D3) compatible GPIO controller.
2325 - "renesas,rcar-gen1-gpio": for a generic R-Car Gen1 GPIO controller.
2426 - "renesas,rcar-gen2-gpio": for a generic R-Car Gen2 or RZ/G1 GPIO controller.
25− - "renesas,rcar-gen3-gpio": for a generic R-Car Gen3 GPIO controller.
27+ - "renesas,rcar-gen3-gpio": for a generic R-Car Gen3 or RZ/G2 GPIO controller.
2628 - "renesas,gpio-rcar": deprecated.
2729
2830 When compatible with the generic version nodes must list the
@@ -38,7 +40,7 @@ Required Properties: · 9 unmodified lines
3840 - #gpio-cells: Should be 2. The first cell is the GPIO number and the second
3941 cell specifies GPIO flags, as defined in <dt-bindings/gpio/gpio.h>. Only the
4042 GPIO_ACTIVE_HIGH and GPIO_ACTIVE_LOW flags are supported.
41− - gpio-ranges: Range of pins managed by the GPIO controller.
43+ - gpio-ranges: See gpio.txt.
4244
4345 Optional properties:
4446
@@ -46,35 +48,44 @@ Optional properties: · 1 unmodified line
4648 mandatory if the hardware implements a controllable functional clock for
4749 the GPIO instance.
4850
49−Please refer to gpio.txt in this directory for details of gpio-ranges property
50−and the common GPIO bindings used by client devices.
51+ - gpio-reserved-ranges: See gpio.txt.
52+
53+Please refer to gpio.txt in this directory for the common GPIO bindings used by
54+client devices.
5155
5256 The GPIO controller also acts as an interrupt controller. It uses the default
5357 two cells specifier as described in Documentation/devicetree/bindings/
5458 interrupt-controller/interrupts.txt.
5559
56−Example: R8A7779 (R-Car H1) GPIO controller nodes
60+Example: R8A77470 (RZ/G1C) GPIO controller nodes
5761
58− gpio0: gpio@ffc40000 {
59− compatible = "renesas,gpio-r8a7779", "renesas,rcar-gen1-gpio";
60− reg = <0xffc40000 0x2c>;
61− interrupt-parent = <&gic>;
62− interrupts = <0 141 0x4>;
63− #gpio-cells = <2>;
64− gpio-controller;
65− gpio-ranges = <&pfc 0 0 32>;
66− interrupt-controller;
67− #interrupt-cells = <2>;
68− };
62+ gpio0: gpio@e6050000 {
63+ compatible = "renesas,gpio-r8a77470",
64+ "renesas,rcar-gen2-gpio";
65+ reg = <0 0xe6050000 0 0x50>;
66+ interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
67+ #gpio-cells = <2>;
68+ gpio-controller;
69+ gpio-ranges = <&pfc 0 0 23>;
70+ #interrupt-cells = <2>;
71+ interrupt-controller;
72+ clocks = <&cpg CPG_MOD 912>;
73+ power-domains = <&sysc R8A77470_PD_ALWAYS_ON>;
74+ resets = <&cpg 912>;
75+ };
6976 ...
70− gpio6: gpio@ffc46000 {
71− compatible = "renesas,gpio-r8a7779", "renesas,rcar-gen1-gpio";
72− reg = <0xffc46000 0x2c>;
73− interrupt-parent = <&gic>;
74− interrupts = <0 147 0x4>;
75− #gpio-cells = <2>;
76− gpio-controller;
77− gpio-ranges = <&pfc 0 192 9>;
78− interrupt-controller;
79− #interrupt-cells = <2>;
80− };
77+ gpio3: gpio@e6053000 {
78+ compatible = "renesas,gpio-r8a77470",
79+ "renesas,rcar-gen2-gpio";
80+ reg = <0 0xe6053000 0 0x50>;
81+ interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
82+ #gpio-cells = <2>;
83+ gpio-controller;
84+ gpio-ranges = <&pfc 0 96 30>;
85+ gpio-reserved-ranges = <17 10>;
86+ #interrupt-cells = <2>;
87+ interrupt-controller;
88+ clocks = <&cpg CPG_MOD 909>;
89+ power-domains = <&sysc R8A77470_PD_ALWAYS_ON>;
90+ resets = <&cpg 909>;
91+ };
Documentation/devicetree/bindings/gpio/snps,creg-gpio.txt+21−0
@@ -0,0 +1,21 @@
1+Synopsys GPIO via CREG (Control REGisters) driver
2+
3+Required properties:
4+- compatible : "snps,creg-gpio-hsdk" or "snps,creg-gpio-axs10x".
5+- reg : Exactly one register range with length 0x4.
6+- #gpio-cells : Since the generic GPIO binding is used, the
7+ amount of cells must be specified as 2. The first cell is the
8+ pin number, the second cell is used to specify optional parameters:
9+ See "gpio-specifier" in .../devicetree/bindings/gpio/gpio.txt.
10+- gpio-controller : Marks the device node as a GPIO controller.
11+- ngpios: Number of GPIO pins.
12+
13+Example:
14+
15+gpio: gpio@f00014b0 {
16+ compatible = "snps,creg-gpio-hsdk";
17+ reg = <0xf00014b0 0x4>;
18+ gpio-controller;
19+ #gpio-cells = <2>;
20+ ngpios = <2>;
21+};
Documentation/devicetree/bindings/hwmon/ina3221.txt+44−0
@@ -0,0 +1,44 @@
1+Texas Instruments INA3221 Device Tree Bindings
2+
3+1) ina3221 node
4+ Required properties:
5+ - compatible: Must be "ti,ina3221"
6+ - reg: I2C address
7+
8+ Optional properties:
9+ = The node contains optional child nodes for three channels =
10+ = Each child node describes the information of input source =
11+
12+ - #address-cells: Required only if a child node is present. Must be 1.
13+ - #size-cells: Required only if a child node is present. Must be 0.
14+
15+2) child nodes
16+ Required properties:
17+ - reg: Must be 0, 1 or 2, corresponding to IN1, IN2 or IN3 port of INA3221
18+
19+ Optional properties:
20+ - label: Name of the input source
21+ - shunt-resistor-micro-ohms: Shunt resistor value in micro-Ohm
22+
23+Example:
24+
25+ina3221@40 {
26+ compatible = "ti,ina3221";
27+ reg = <0x40>;
28+ #address-cells = <1>;
29+ #size-cells = <0>;
30+
31+ input@0 {
32+ reg = <0x0>;
33+ status = "disabled";
34+ };
35+ input@1 {
36+ reg = <0x1>;
37+ shunt-resistor-micro-ohms = <5000>;
38+ };
39+ input@2 {
40+ reg = <0x2>;
41+ label = "VDD_5V";
42+ shunt-resistor-micro-ohms = <5000>;
43+ };
44+};
Documentation/devicetree/bindings/hwmon/ltc2978.txt+2−0
@@ -15,6 +15,7 @@ Required properties: · 14 unmodified lines
1515 * "lltc,ltm2987"
1616 * "lltc,ltm4675"
1717 * "lltc,ltm4676"
18+ * "lltc,ltm4686"
1819 - reg: I2C slave address
1920
2021 Optional properties:
@@ -30,6 +31,7 @@ Valid names of regulators depend on number of supplies supported per device: · 9 unmodified lines
3031 * ltc3880, ltc3882, ltc3886 : vout0 - vout1
3132 * ltc3883 : vout0
3233 * ltm4676 : vout0 - vout1
34+ * ltm4686 : vout0 - vout1
3335
3436 Example:
3537 ltc2978@5e {
Documentation/devicetree/bindings/i2c/i2c-designware.txt+6−1
@@ -3,6 +3,7 @@ · 2 unmodified lines
33 Required properties :
44
55 - compatible : should be "snps,designware-i2c"
6+ or "mscc,ocelot-i2c" with "snps,designware-i2c" for fallback
67 - reg : Offset and length of the register set for the device
78 - interrupts : <IRQ> where IRQ is the interrupt number.
89
@@ -11,8 +12,12 @@ Recommended properties : · 2 unmodified lines
1112 - clock-frequency : desired I2C bus clock frequency in Hz.
1213
1314 Optional properties :
15+ - reg : for "mscc,ocelot-i2c", a second register set to configure the SDA hold
16+ time, named ICPU_CFG:TWI_DELAY in the datasheet.
17+
1418 - i2c-sda-hold-time-ns : should contain the SDA hold time in nanoseconds.
15− This option is only supported in hardware blocks version 1.11a or newer.
19+ This option is only supported in hardware blocks version 1.11a or newer and
20+ on Microsemi SoCs ("mscc,ocelot-i2c" compatible).
1621
1722 - i2c-scl-falling-time-ns : should contain the SCL falling time in nanoseconds.
1823 This value which is by default 300ns is used to compute the tLOW period.
Documentation/devicetree/bindings/i2c/i2c-imx-lpi2c.txt+1−0
@@ -3,6 +3,7 @@ · 2 unmodified lines
33 Required properties:
44 - compatible :
55 - "fsl,imx7ulp-lpi2c" for LPI2C compatible with the one integrated on i.MX7ULP soc
6+ - "fsl,imx8qxp-lpi2c" for LPI2C compatible with the one integrated on i.MX8QXP soc
67 - reg : address and length of the lpi2c master registers
78 - interrupts : lpi2c interrupt
89 - clocks : lpi2c clock specifier
Documentation/devicetree/bindings/i2c/i2c-omap.txt+6−2
@@ -1,8 +1,12 @@
11 I2C for OMAP platforms
22
33 Required properties :
4−- compatible : Must be "ti,omap2420-i2c", "ti,omap2430-i2c", "ti,omap3-i2c"
5− or "ti,omap4-i2c"
4+- compatible : Must be
5+ "ti,omap2420-i2c" for OMAP2420 SoCs
6+ "ti,omap2430-i2c" for OMAP2430 SoCs
7+ "ti,omap3-i2c" for OMAP3 SoCs
8+ "ti,omap4-i2c" for OMAP4+ SoCs
9+ "ti,am654-i2c", "ti,omap4-i2c" for AM654 SoCs
610 - ti,hwmods : Must be "i2c<n>", n being the instance number (1-based)
711 - #address-cells = <1>;
812 - #size-cells = <0>;
Documentation/devicetree/bindings/i2c/i2c-rcar.txt+2−0
@@ -3,7 +3,9 @@ I2C for R-Car platforms · 2 unmodified lines
33 Required properties:
44 - compatible:
55 "renesas,i2c-r8a7743" if the device is a part of a R8A7743 SoC.
6+ "renesas,i2c-r8a7744" if the device is a part of a R8A7744 SoC.
67 "renesas,i2c-r8a7745" if the device is a part of a R8A7745 SoC.
8+ "renesas,i2c-r8a77470" if the device is a part of a R8A77470 SoC.
79 "renesas,i2c-r8a774a1" if the device is a part of a R8A774A1 SoC.
810 "renesas,i2c-r8a7778" if the device is a part of a R8A7778 SoC.
911 "renesas,i2c-r8a7779" if the device is a part of a R8A7779 SoC.
Documentation/devicetree/bindings/i2c/i2c-sh_mobile.txt+1−0
@@ -5,6 +5,7 @@ Required properties: · 4 unmodified lines
55 - "renesas,iic-r8a73a4" (R-Mobile APE6)
66 - "renesas,iic-r8a7740" (R-Mobile A1)
77 - "renesas,iic-r8a7743" (RZ/G1M)
8+ - "renesas,iic-r8a7744" (RZ/G1N)
89 - "renesas,iic-r8a7745" (RZ/G1E)
910 - "renesas,iic-r8a774a1" (RZ/G2M)
1011 - "renesas,iic-r8a7790" (R-Car H2)
Documentation/devicetree/bindings/i2c/i2c.txt+1−1
@@ -84,7 +84,7 @@ Binding may contain optional "interrupts" property, describing interrupts · 83 unmodified lines
8484 used by the device. I2C core will assign "irq" interrupt (or the very first
8585 interrupt if not using interrupt names) as primary interrupt for the slave.
8686
87−Alternatively, devices supporting SMbus Host Notify, and connected to
87+Alternatively, devices supporting SMBus Host Notify, and connected to
8888 adapters that support this feature, may use "host-notify" property. I2C
8989 core will create a virtual interrupt for Host Notify and assign it as
9090 primary interrupt for the slave.
Documentation/devicetree/bindings/iio/accel/adxl372.txt+33−0
@@ -0,0 +1,33 @@
1+Analog Devices ADXL372 3-Axis, +/-(200g) Digital Accelerometer
2+
3+http://www.analog.com/media/en/technical-documentation/data-sheets/adxl372.pdf
4+
5+Required properties:
6+ - compatible : should be "adi,adxl372"
7+ - reg: the I2C address or SPI chip select number for the device
8+
9+Required properties for SPI bus usage:
10+ - spi-max-frequency: Max SPI frequency to use
11+
12+Optional properties:
13+ - interrupts: interrupt mapping for IRQ as documented in
14+ Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
15+
16+Example for a I2C device node:
17+
18+ accelerometer@53 {
19+ compatible = "adi,adxl372";
20+ reg = <0x53>;
21+ interrupt-parent = <&gpio>;
22+ interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
23+ };
24+
25+Example for a SPI device node:
26+
27+ accelerometer@0 {
28+ compatible = "adi,adxl372";
29+ reg = <0>;
30+ spi-max-frequency = <1000000>;
31+ interrupt-parent = <&gpio>;
32+ interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
33+ };
Documentation/devicetree/bindings/iio/adc/mcp3911.txt+30−0
@@ -0,0 +1,30 @@
1+* Microchip MCP3911 Dual channel analog front end (ADC)
2+
3+Required properties:
4+ - compatible: Should be "microchip,mcp3911"
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+ Max frequency for this chip is 20MHz.
11+
12+Optional properties:
13+ - clocks: Phandle and clock identifier for sampling clock
14+ - interrupt-parent: Phandle to the parent interrupt controller
15+ - interrupts: IRQ line for the ADC
16+ - microchip,device-addr: Device address when multiple MCP3911 chips are present on the
17+ same SPI bus. Valid values are 0-3. Defaults to 0.
18+ - vref-supply: Phandle to the external reference voltage supply.
19+
20+Example:
21+adc@0 {
22+ compatible = "microchip,mcp3911";
23+ reg = <0>;
24+ interrupt-parent = <&gpio5>;
25+ interrupts = <15 IRQ_TYPE_EDGE_RISING>;
26+ spi-max-frequency = <20000000>;
27+ microchip,device-addr = <0>;
28+ vref-supply = <&vref_reg>;
29+ clocks = <&xtal>;
30+};
Documentation/devicetree/bindings/iio/adc/qcom,spmi-vadc.txt+60−21
@@ -1,7 +1,9 @@
1−Qualcomm's SPMI PMIC voltage ADC
1+Qualcomm's SPMI PMIC ADC
22
3−SPMI PMIC voltage ADC (VADC) provides interface to clients to read
4−voltage. The VADC is a 15-bit sigma-delta ADC.
3+- SPMI PMIC voltage ADC (VADC) provides interface to clients to read
4+ voltage. The VADC is a 15-bit sigma-delta ADC.
5+- SPMI PMIC5 voltage ADC (ADC) provides interface to clients to read
6+ voltage. The VADC is a 16-bit sigma-delta ADC.
57
68 VADC node:
79
@@ -9,11 +11,13 @@ VADC node: · 1 unmodified line
911 Usage: required
1012 Value type: <string>
1113 Definition: Should contain "qcom,spmi-vadc".
14+ Should contain "qcom,spmi-adc5" for PMIC5 ADC driver.
15+ Should contain "qcom,spmi-adc-rev2" for PMIC rev2 ADC driver.
1216
1317 - reg:
1418 Usage: required
1519 Value type: <prop-encoded-array>
16− Definition: VADC base address and length in the SPMI PMIC register map.
20+ Definition: VADC base address in the SPMI PMIC register map.
1721
1822 - #address-cells:
1923 Usage: required
@@ -45,13 +49,26 @@ Channel node properties: · 25 unmodified lines
4549 Definition: ADC channel number.
4650 See include/dt-bindings/iio/qcom,spmi-vadc.h
4751
52+- label:
53+ Usage: required for "qcom,spmi-adc5" and "qcom,spmi-adc-rev2"
54+ Value type: <empty>
55+ Definition: ADC input of the platform as seen in the schematics.
56+ For thermistor inputs connected to generic AMUX or GPIO inputs
57+ these can vary across platform for the same pins. Hence select
58+ the platform schematics name for this channel.
59+
4860 - qcom,decimation:
4961 Usage: optional
5062 Value type: <u32>
5163 Definition: This parameter is used to decrease ADC sampling rate.
5264 Quicker measurements can be made by reducing decimation ratio.
53− Valid values are 512, 1024, 2048, 4096.
54− If property is not found, default value of 512 will be used.
65+ - For compatible property "qcom,spmi-vadc", valid values are
66+ 512, 1024, 2048, 4096. If property is not found, default value
67+ of 512 will be used.
68+ - For compatible property "qcom,spmi-adc5", valid values are 250, 420
69+ and 840. If property is not found, default value of 840 is used.
70+ - For compatible property "qcom,spmi-adc-rev2", valid values are 256,
71+ 512 and 1024. If property is not present, default value is 1024.
5572
5673 - qcom,pre-scaling:
5774 Usage: optional
@@ -66,21 +83,38 @@ Channel node properties: · 8 unmodified lines
6683 - qcom,ratiometric:
6784 Usage: optional
6885 Value type: <empty>
69− Definition: Channel calibration type. If this property is specified
70− VADC will use the VDD reference (1.8V) and GND for channel
71− calibration. If property is not found, channel will be
72− calibrated with 0.625V and 1.25V reference channels, also
73− known as absolute calibration.
86+ Definition: Channel calibration type.
87+ - For compatible property "qcom,spmi-vadc", if this property is
88+ specified VADC will use the VDD reference (1.8V) and GND for
89+ channel calibration. If property is not found, channel will be
90+ calibrated with 0.625V and 1.25V reference channels, also
91+ known as absolute calibration.
92+ - For compatible property "qcom,spmi-adc5" and "qcom,spmi-adc-rev2",
93+ if this property is specified VADC will use the VDD reference
94+ (1.875V) and GND for channel calibration. If property is not found,
95+ channel will be calibrated with 0V and 1.25V reference channels,
96+ also known as absolute calibration.
7497
7598 - qcom,hw-settle-time:
7699 Usage: optional
77100 Value type: <u32>
78101 Definition: Time between AMUX getting configured and the ADC starting
79− conversion. Delay = 100us * (value) for value < 11, and
80− 2ms * (value - 10) otherwise.
81− Valid values are: 0, 100, 200, 300, 400, 500, 600, 700, 800,
82− 900 us and 1, 2, 4, 6, 8, 10 ms
83− If property is not found, channel will use 0us.
102+ conversion. The 'hw_settle_time' is an index used from valid values
103+ and programmed in hardware to achieve the hardware settling delay.
104+ - For compatible property "qcom,spmi-vadc" and "qcom,spmi-adc-rev2",
105+ Delay = 100us * (hw_settle_time) for hw_settle_time < 11,
106+ and 2ms * (hw_settle_time - 10) otherwise.
107+ Valid values are: 0, 100, 200, 300, 400, 500, 600, 700, 800,
108+ 900 us and 1, 2, 4, 6, 8, 10 ms.
109+ If property is not found, channel will use 0us.
110+ - For compatible property "qcom,spmi-adc5", delay = 15us for
111+ value 0, 100us * (value) for values < 11,
112+ and 2ms * (value - 10) otherwise.
113+ Valid values are: 15, 100, 200, 300, 400, 500, 600, 700, 800,
114+ 900 us and 1, 2, 4, 6, 8, 10 ms
115+ Certain controller digital versions have valid values of
116+ 15, 100, 200, 300, 400, 500, 600, 700, 1, 2, 4, 8, 16, 32, 64, 128 ms
117+ If property is not found, channel will use 15us.
84118
85119 - qcom,avg-samples:
86120 Usage: optional
@@ -89,13 +123,18 @@ Channel node properties: · 2 unmodified lines
89123 Averaging provides the option to obtain a single measurement
90124 from the ADC that is an average of multiple samples. The value
91125 selected is 2^(value).
92− Valid values are: 1, 2, 4, 8, 16, 32, 64, 128, 256, 512
93− If property is not found, 1 sample will be used.
126+ - For compatible property "qcom,spmi-vadc", valid values
127+ are: 1, 2, 4, 8, 16, 32, 64, 128, 256, 512
128+ If property is not found, 1 sample will be used.
129+ - For compatible property "qcom,spmi-adc5" and "qcom,spmi-adc-rev2",
130+ valid values are: 1, 2, 4, 8, 16
131+ If property is not found, 1 sample will be used.
94132
95133 NOTE:
96134
97−Following channels, also known as reference point channels, are used for
98−result calibration and their channel configuration nodes should be defined:
135+For compatible property "qcom,spmi-vadc" following channels, also known as
136+reference point channels, are used for result calibration and their channel
137+configuration nodes should be defined:
99138 VADC_REF_625MV and/or VADC_SPARE1(based on PMIC version) VADC_REF_1250MV,
100139 VADC_GND_REF and VADC_VDD_VADC.
101140
@@ -104,7 +143,7 @@ Example: · 2 unmodified lines
104143 /* VADC node */
105144 pmic_vadc: vadc@3100 {
106145 compatible = "qcom,spmi-vadc";
107− reg = <0x3100 0x100>;
146+ reg = <0x3100>;
108147 interrupts = <0x0 0x31 0x0 IRQ_TYPE_EDGE_RISING>;
109148 #address-cells = <1>;
110149 #size-cells = <0>;
Documentation/devicetree/bindings/iio/adc/sprd,sc27xx-adc.txt+4−0
@@ -12,6 +12,8 @@ Required properties: · 11 unmodified lines
1212 - interrupts: The interrupt number for the ADC device.
1313 - #io-channel-cells: Number of cells in an IIO specifier.
1414 - hwlocks: Reference to a phandle of a hwlock provider node.
15+- nvmem-cells: A phandle to the calibration cells provided by eFuse device.
16+- nvmem-cell-names: Should be "big_scale_calib", "small_scale_calib".
1517
1618 Example:
1719
@@ -32,5 +34,7 @@ Example: · 14 unmodified lines
3234 interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
3335 #io-channel-cells = <1>;
3436 hwlocks = <&hwlock 4>;
37+ nvmem-cells = <&adc_big_scale>, <&adc_small_scale>;
38+ nvmem-cell-names = "big_scale_calib", "small_scale_calib";
3539 };
3640 };
Documentation/devicetree/bindings/iio/dac/ad5758.txt+5−0
@@ -50,6 +50,9 @@ Required properties: · 49 unmodified lines
5050
5151 Optional properties:
5252
53+ - reset-gpios : GPIO spec for the RESET pin. If specified, it will be
54+ asserted during driver probe.
55+
5356 - adi,dc-dc-ilim-microamp: The dc-to-dc converter current limit
5457 The following values are currently supported [uA]:
5558 * 150000
@@ -71,6 +74,8 @@ AD5758 Example: · 15 unmodified lines
7174 spi-max-frequency = <1000000>;
7275 spi-cpha;
7376
77+ reset-gpios = <&gpio 22 0>;
78+
7479 adi,dc-dc-mode = <2>;
7580 adi,range-microvolt = <0 10000000>;
7681 adi,dc-dc-ilim-microamp = <200000>;
Documentation/devicetree/bindings/iio/dac/ltc1660.txt+21−0
@@ -0,0 +1,21 @@
1+* Linear Technology Micropower octal 8-Bit and 10-Bit DACs
2+
3+Required properties:
4+ - compatible: Must be one of the following:
5+ "lltc,ltc1660"
6+ "lltc,ltc1665"
7+ - reg: SPI chip select number for the device
8+ - vref-supply: Phandle to the voltage reference supply
9+
10+Recommended properties:
11+ - spi-max-frequency: Definition as per
12+ Documentation/devicetree/bindings/spi/spi-bus.txt.
13+ Max frequency for this chip is 5 MHz.
14+
15+Example:
16+dac@0 {
17+ compatible = "lltc,ltc1660";
18+ reg = <0>;
19+ spi-max-frequency = <5000000>;
20+ vref-supply = <&vref_reg>;
21+};
Documentation/devicetree/bindings/iio/imu/inv_mpu6050.txt+1−0
@@ -20,6 +20,7 @@ Required properties: · 19 unmodified lines
2020 bindings.
2121
2222 Optional properties:
23+ - vddio-supply: regulator phandle for VDDIO supply
2324 - mount-matrix: an optional 3x3 mounting rotation matrix
2425 - i2c-gate node. These devices also support an auxiliary i2c bus. This is
2526 simple enough to be described using the i2c-gate binding. See
Documentation/devicetree/bindings/iio/imu/st_lsm6dsx.txt+1−0
@@ -7,6 +7,7 @@ Required properties: · 6 unmodified lines
77 "st,lsm6dsl"
88 "st,lsm6dsm"
99 "st,ism330dlc"
10+ "st,lsm6dso"
1011 - reg: i2c address of the sensor / spi cs line
1112
1213 Optional properties:
Documentation/devicetree/bindings/iio/light/bh1750.txt+18−0
@@ -0,0 +1,18 @@
1+ROHM BH1750 - ALS, Ambient light sensor
2+
3+Required properties:
4+
5+- compatible: Must be one of:
6+ "rohm,bh1710"
7+ "rohm,bh1715"
8+ "rohm,bh1721"
9+ "rohm,bh1750"
10+ "rohm,bh1751"
11+- reg: the I2C address of the sensor
12+
13+Example:
14+
15+light-sensor@23 {
16+ compatible = "rohm,bh1750";
17+ reg = <0x23>;
18+};
Documentation/devicetree/bindings/iio/light/tsl2772.txt+42−0
@@ -0,0 +1,42 @@
1+* AMS/TAOS ALS and proximity sensor
2+
3+Required properties:
4+
5+ - compatible: Should be one of
6+ "amstaos,tsl2571"
7+ "amstaos,tsl2671"
8+ "amstaos,tmd2671"
9+ "amstaos,tsl2771"
10+ "amstaos,tmd2771"
11+ "amstaos,tsl2572"
12+ "amstaos,tsl2672"
13+ "amstaos,tmd2672"
14+ "amstaos,tsl2772"
15+ "amstaos,tmd2772"
16+ "avago,apds9930"
17+ - reg: the I2C address of the device
18+
19+Optional properties:
20+
21+ - amstaos,proximity-diodes - proximity diodes to enable. <0>, <1>, or <0 1>
22+ are the only valid values.
23+ - led-max-microamp - current for the proximity LED. Must be 100000, 50000,
24+ 25000, or 13000.
25+ - vdd-supply: phandle to the regulator that provides power to the sensor.
26+ - vddio-supply: phandle to the regulator that provides power to the bus.
27+ - interrupts: the sole interrupt generated by the device
28+
29+ Refer to interrupt-controller/interrupts.txt for generic interrupt client
30+ node bindings.
31+
32+Example:
33+
34+tsl2772@39 {
35+ compatible = "amstaos,tsl2772";
36+ reg = <0x39>;
37+ interrupts-extended = <&msmgpio 61 IRQ_TYPE_EDGE_FALLING>;
38+ vdd-supply = <&pm8941_l17>;
39+ vddio-supply = <&pm8941_lvs1>;
40+ amstaos,proximity-diodes = <0>;
41+ led-max-microamp = <100000>;
42+};
Documentation/devicetree/bindings/iio/proximity/vl53l0x.txt+12−0
@@ -0,0 +1,12 @@
1+ST VL53L0X ToF ranging sensor
2+
3+Required properties:
4+ - compatible: must be "st,vl53l0x"
5+ - reg: i2c address where to find the device
6+
7+Example:
8+
9+vl53l0x@29 {
10+ compatible = "st,vl53l0x";
11+ reg = <0x29>;
12+};
Documentation/devicetree/bindings/input/pwm-vibrator.txt+2−2
@@ -58,8 +58,8 @@ Example from Motorola Droid 4: · 57 unmodified lines
5858
5959 vibrator {
6060 compatible = "pwm-vibrator";
61− pwms = <&pwm8 0 1000000000 0>,
62− <&pwm9 0 1000000000 0>;
61+ pwms = <&pwm9 0 1000000000 0>,
62+ <&pwm8 0 1000000000 0>;
6363 pwm-names = "enable", "direction";
6464 direction-duty-cycle-ns = <1000000000>;
6565 };
Documentation/devicetree/bindings/input/touchscreen/touchscreen.txt+4−2
@@ -1,10 +1,12 @@
11 General Touchscreen Properties:
22
33 Optional properties for Touchscreens:
4+ - touchscreen-min-x : minimum x coordinate reported (0 if not set)
5+ - touchscreen-min-y : minimum y coordinate reported (0 if not set)
46 - touchscreen-size-x : horizontal resolution of touchscreen
5− (in pixels)
7+ (maximum x coordinate reported + 1)
68 - touchscreen-size-y : vertical resolution of touchscreen
7− (in pixels)
9+ (maximum y coordinate reported + 1)
810 - touchscreen-max-pressure : maximum reported pressure (arbitrary range
911 dependent on the controller)
1012 - touchscreen-min-pressure : minimum pressure on the touchscreen to be
Documentation/devicetree/bindings/interrupt-controller/csky,apb-intc.txt+62−0
@@ -0,0 +1,62 @@
1+==============================
2+C-SKY APB Interrupt Controller
3+==============================
4+
5+C-SKY APB Interrupt Controller is a simple soc interrupt controller
6+on the apb bus and we only use it as root irq controller.
7+
8+ - csky,apb-intc is used in a lot of csky fpgas and socs, it support 64 irq nums.
9+ - csky,dual-apb-intc consists of 2 apb-intc and 128 irq nums supported.
10+ - csky,gx6605s-intc is gx6605s soc internal irq interrupt controller, 64 irq nums.
11+
12+=============================
13+intc node bindings definition
14+=============================
15+
16+ Description: Describes APB interrupt controller
17+
18+ PROPERTIES
19+
20+ - compatible
21+ Usage: required
22+ Value type: <string>
23+ Definition: must be "csky,apb-intc"
24+ "csky,dual-apb-intc"
25+ "csky,gx6605s-intc"
26+ - #interrupt-cells
27+ Usage: required
28+ Value type: <u32>
29+ Definition: must be <1>
30+ - reg
31+ Usage: required
32+ Value type: <u32 u32>
33+ Definition: <phyaddr size> in soc from cpu view
34+ - interrupt-controller:
35+ Usage: required
36+ - csky,support-pulse-signal:
37+ Usage: select
38+ Description: to support pulse signal flag
39+
40+Examples:
41+---------
42+
43+ intc: interrupt-controller@500000 {
44+ compatible = "csky,apb-intc";
45+ #interrupt-cells = <1>;
46+ reg = <0x00500000 0x400>;
47+ interrupt-controller;
48+ };
49+
50+ intc: interrupt-controller@500000 {
51+ compatible = "csky,dual-apb-intc";
52+ #interrupt-cells = <1>;
53+ reg = <0x00500000 0x400>;
54+ interrupt-controller;
55+ };
56+
57+ intc: interrupt-controller@500000 {
58+ compatible = "csky,gx6605s-intc";
59+ #interrupt-cells = <1>;
60+ reg = <0x00500000 0x400>;
61+ interrupt-controller;
62+ };
Documentation/devicetree/bindings/interrupt-controller/csky,mpintc.txt+40−0
@@ -0,0 +1,40 @@
1+===========================================
2+C-SKY Multi-processors Interrupt Controller
3+===========================================
4+
5+C-SKY Multi-processors Interrupt Controller is designed for ck807/ck810/ck860
6+SMP soc, and it also could be used in non-SMP system.
7+
8+Interrupt number definition:
9+
10+ 0-15 : software irq, and we use 15 as our IPI_IRQ.
11+ 16-31 : private irq, and we use 16 as the co-processor timer.
12+ 31-1024: common irq for soc ip.
13+
14+=============================
15+intc node bindings definition
16+=============================
17+
18+ Description: Describes SMP interrupt controller
19+
20+ PROPERTIES
21+
22+ - compatible
23+ Usage: required
24+ Value type: <string>
25+ Definition: must be "csky,mpintc"
26+ - #interrupt-cells
27+ Usage: required
28+ Value type: <u32>
29+ Definition: must be <1>
30+ - interrupt-controller:
31+ Usage: required
32+
33+Examples:
34+---------
35+
36+ intc: interrupt-controller {
37+ compatible = "csky,mpintc";
38+ #interrupt-cells = <1>;
39+ interrupt-controller;
40+ };
Documentation/devicetree/bindings/interrupt-controller/marvell,icu.txt+73−12
@@ -5,6 +5,8 @@ The Marvell ICU (Interrupt Consolidation Unit) controller is · 4 unmodified lines
55 responsible for collecting all wired-interrupt sources in the CP and
66 communicating them to the GIC in the AP, the unit translates interrupt
77 requests on input wires to MSG memory mapped transactions to the GIC.
8+These messages will access a different GIC memory area depending on
9+their type (NSR, SR, SEI, REI, etc).
810
911 Required properties:
1012
@@ -12,20 +14,23 @@ Required properties: · 1 unmodified line
1214
1315 - reg: Should contain ICU registers location and length.
1416
15−- #interrupt-cells: Specifies the number of cells needed to encode an
16− interrupt source. The value shall be 3.
17+Subnodes: Each group of interrupt is declared as a subnode of the ICU,
18+with their own compatible.
19+
20+Required properties for the icu_nsr/icu_sei subnodes:
1721
18− The 1st cell is the group type of the ICU interrupt. Possible group
19− types are:
22+- compatible: Should be one of:
23+ * "marvell,cp110-icu-nsr"
24+ * "marvell,cp110-icu-sr"
25+ * "marvell,cp110-icu-sei"
26+ * "marvell,cp110-icu-rei"
2027
21− ICU_GRP_NSR (0x0) : Shared peripheral interrupt, non-secure
22− ICU_GRP_SR (0x1) : Shared peripheral interrupt, secure
23− ICU_GRP_SEI (0x4) : System error interrupt
24− ICU_GRP_REI (0x5) : RAM error interrupt
28+- #interrupt-cells: Specifies the number of cells needed to encode an
29+ interrupt source. The value shall be 2.
2530
26− The 2nd cell is the index of the interrupt in the ICU unit.
31+ The 1st cell is the index of the interrupt in the ICU unit.
2732
28− The 3rd cell is the type of the interrupt. See arm,gic.txt for
33+ The 2nd cell is the type of the interrupt. See arm,gic.txt for
2934 details.
3035
3136 - interrupt-controller: Identifies the node as an interrupt
@@ -35,17 +40,73 @@ Required properties: · 3 unmodified lines
3540 that allows to trigger interrupts using MSG memory mapped
3641 transactions.
3742
43+Note: each 'interrupts' property referring to any 'icu_xxx' node shall
44+ have a different number within [0:206].
45+
3846 Example:
3947
4048 icu: interrupt-controller@1e0000 {
4149 compatible = "marvell,cp110-icu";
42− reg = <0x1e0000 0x10>;
50+ reg = <0x1e0000 0x440>;
51+
52+ CP110_LABEL(icu_nsr): interrupt-controller@10 {
53+ compatible = "marvell,cp110-icu-nsr";
54+ reg = <0x10 0x20>;
55+ #interrupt-cells = <2>;
56+ interrupt-controller;
57+ msi-parent = <&gicp>;
58+ };
59+
60+ CP110_LABEL(icu_sei): interrupt-controller@50 {
61+ compatible = "marvell,cp110-icu-sei";
62+ reg = <0x50 0x10>;
63+ #interrupt-cells = <2>;
64+ interrupt-controller;
65+ msi-parent = <&sei>;
66+ };
67+};
68+
69+node1 {
70+ interrupt-parent = <&icu_nsr>;
71+ interrupts = <106 IRQ_TYPE_LEVEL_HIGH>;
72+};
73+
74+node2 {
75+ interrupt-parent = <&icu_sei>;
76+ interrupts = <107 IRQ_TYPE_LEVEL_HIGH>;
77+};
78+
79+/* Would not work with the above nodes */
80+node3 {
81+ interrupt-parent = <&icu_nsr>;
82+ interrupts = <107 IRQ_TYPE_LEVEL_HIGH>;
83+};
84+
85+The legacy bindings were different in this way:
86+
87+- #interrupt-cells: The value was 3.
88+ The 1st cell was the group type of the ICU interrupt. Possible
89+ group types were:
90+ ICU_GRP_NSR (0x0) : Shared peripheral interrupt, non-secure
91+ ICU_GRP_SR (0x1) : Shared peripheral interrupt, secure
92+ ICU_GRP_SEI (0x4) : System error interrupt
93+ ICU_GRP_REI (0x5) : RAM error interrupt
94+ The 2nd cell was the index of the interrupt in the ICU unit.
95+ The 3rd cell was the type of the interrupt. See arm,gic.txt for
96+ details.
97+
98+Example:
99+
100+icu: interrupt-controller@1e0000 {
101+ compatible = "marvell,cp110-icu";
102+ reg = <0x1e0000 0x440>;
103+
43104 #interrupt-cells = <3>;
44105 interrupt-controller;
45106 msi-parent = <&gicp>;
46107 };
47108
48−usb3h0: usb3@500000 {
109+node1 {
49110 interrupt-parent = <&icu>;
50111 interrupts = <ICU_GRP_NSR 106 IRQ_TYPE_LEVEL_HIGH>;
51112 };
Documentation/devicetree/bindings/interrupt-controller/marvell,sei.txt+36−0
@@ -0,0 +1,36 @@
1+Marvell SEI (System Error Interrupt) Controller
2+-----------------------------------------------
3+
4+Marvell SEI (System Error Interrupt) controller is an interrupt
5+aggregator. It receives interrupts from several sources and aggregates
6+them to a single interrupt line (an SPI) on the parent interrupt
7+controller.
8+
9+This interrupt controller can handle up to 64 SEIs, a set comes from the
10+AP and is wired while a second set comes from the CPs by the mean of
11+MSIs.
12+
13+Required properties:
14+
15+- compatible: should be one of:
16+ * "marvell,ap806-sei"
17+- reg: SEI registers location and length.
18+- interrupts: identifies the parent IRQ that will be triggered.
19+- #interrupt-cells: number of cells to define an SEI wired interrupt
20+ coming from the AP, should be 1. The cell is the IRQ
21+ number.
22+- interrupt-controller: identifies the node as an interrupt controller
23+ for AP interrupts.
24+- msi-controller: identifies the node as an MSI controller for the CPs
25+ interrupts.
26+
27+Example:
28+
29+ sei: interrupt-controller@3f0200 {
30+ compatible = "marvell,ap806-sei";
31+ reg = <0x3f0200 0x40>;
32+ interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
33+ #interrupt-cells = <1>;
34+ interrupt-controller;
35+ msi-controller;
36+ };
Documentation/devicetree/bindings/interrupt-controller/renesas,irqc.txt+4−1
@@ -2,10 +2,12 @@ DT bindings for the R-Mobile/R-Car/RZ/G interrupt controller · 1 unmodified line
22
33 Required properties:
44
5−- compatible: has to be "renesas,irqc-<soctype>", "renesas,irqc" as fallback.
5+- compatible: must be "renesas,irqc-<soctype>" or "renesas,intc-ex-<soctype>",
6+ and "renesas,irqc" as fallback.
67 Examples with soctypes are:
78 - "renesas,irqc-r8a73a4" (R-Mobile APE6)
89 - "renesas,irqc-r8a7743" (RZ/G1M)
10+ - "renesas,irqc-r8a7744" (RZ/G1N)
911 - "renesas,irqc-r8a7745" (RZ/G1E)
1012 - "renesas,irqc-r8a77470" (RZ/G1C)
1113 - "renesas,irqc-r8a7790" (R-Car H2)
@@ -19,6 +21,7 @@ Required properties: · 7 unmodified lines
1921 - "renesas,intc-ex-r8a77965" (R-Car M3-N)
2022 - "renesas,intc-ex-r8a77970" (R-Car V3M)
2123 - "renesas,intc-ex-r8a77980" (R-Car V3H)
24+ - "renesas,intc-ex-r8a77990" (R-Car E3)
2225 - "renesas,intc-ex-r8a77995" (R-Car D3)
2326 - #interrupt-cells: has to be <2>: an interrupt index and flags, as defined in
2427 interrupts.txt in this directory
Documentation/devicetree/bindings/iommu/mediatek,iommu.txt+3−1
@@ -41,6 +41,8 @@ Required properties: · 40 unmodified lines
4141 - compatible : must be one of the following string:
4242 "mediatek,mt2701-m4u" for mt2701 which uses generation one m4u HW.
4343 "mediatek,mt2712-m4u" for mt2712 which uses generation two m4u HW.
44+ "mediatek,mt7623-m4u", "mediatek,mt2701-m4u" for mt7623 which uses
45+ generation one m4u HW.
4446 "mediatek,mt8173-m4u" for mt8173 which uses generation two m4u HW.
4547 - reg : m4u register base and size.
4648 - interrupts : the interrupt of m4u.
@@ -51,7 +53,7 @@ Required properties: · 4 unmodified lines
5153 according to the local arbiter index, like larb0, larb1, larb2...
5254 - iommu-cells : must be 1. This is the mtk_m4u_id according to the HW.
5355 Specifies the mtk_m4u_id as defined in
54− dt-binding/memory/mt2701-larb-port.h for mt2701,
56+ dt-binding/memory/mt2701-larb-port.h for mt2701, mt7623
5557 dt-binding/memory/mt2712-larb-port.h for mt2712, and
5658 dt-binding/memory/mt8173-larb-port.h for mt8173.
5759
Documentation/devicetree/bindings/iommu/renesas,ipmmu-vmsa.txt+1−0
@@ -12,6 +12,7 @@ Required Properties: · 11 unmodified lines
1212
1313 - "renesas,ipmmu-r8a73a4" for the R8A73A4 (R-Mobile APE6) IPMMU.
1414 - "renesas,ipmmu-r8a7743" for the R8A7743 (RZ/G1M) IPMMU.
15+ - "renesas,ipmmu-r8a7744" for the R8A7744 (RZ/G1N) IPMMU.
1516 - "renesas,ipmmu-r8a7745" for the R8A7745 (RZ/G1E) IPMMU.
1617 - "renesas,ipmmu-r8a7790" for the R8A7790 (R-Car H2) IPMMU.
1718 - "renesas,ipmmu-r8a7791" for the R8A7791 (R-Car M2-W) IPMMU.
Documentation/devicetree/bindings/leds/leds-an30259a.txt+43−0
@@ -0,0 +1,43 @@
1+* Panasonic AN30259A 3-channel LED driver
2+
3+The AN30259A is a LED controller capable of driving three LEDs independently. It supports
4+constant current output and sloping current output modes. The chip is connected over I2C.
5+
6+Required properties:
7+ - compatible: Must be "panasonic,an30259a".
8+ - reg: I2C slave address.
9+ - #address-cells: Must be 1.
10+ - #size-cells: Must be 0.
11+
12+Each LED is represented as a sub-node of the panasonic,an30259a node.
13+
14+Required sub-node properties:
15+ - reg: Pin that the LED is connected to. Must be 1, 2, or 3.
16+
17+Optional sub-node properties:
18+ - label: see Documentation/devicetree/bindings/leds/common.txt
19+ - linux,default-trigger: see Documentation/devicetree/bindings/leds/common.txt
20+
21+Example:
22+led-controller@30 {
23+ compatible = "panasonic,an30259a";
24+ reg = <0x30>;
25+ #address-cells = <1>;
26+ #size-cells = <0>;
27+
28+ led@1 {
29+ reg = <1>;
30+ linux,default-trigger = "heartbeat";
31+ label = "red:indicator";
32+ };
33+
34+ led@2 {
35+ reg = <2>;
36+ label = "green:indicator";
37+ };
38+
39+ led@3 {
40+ reg = <3>;
41+ label = "blue:indicator";
42+ };
43+};
Documentation/devicetree/bindings/mailbox/qcom,apcs-kpss-global.txt+1−0
@@ -11,6 +11,7 @@ platforms. · 10 unmodified lines
1111 "qcom,msm8916-apcs-kpss-global",
1212 "qcom,msm8996-apcs-hmss-global"
1313 "qcom,msm8998-apcs-hmss-global"
14+ "qcom,qcs404-apcs-apps-global"
1415 "qcom,sdm845-apss-shared"
1516
1617 - reg:
Documentation/devicetree/bindings/media/cedrus.txt+54−0
@@ -0,0 +1,54 @@
1+Device-tree bindings for the VPU found in Allwinner SoCs, referred to as the
2+Video Engine (VE) in Allwinner literature.
3+
4+The VPU can only access the first 256 MiB of DRAM, that are DMA-mapped starting
5+from the DRAM base. This requires specific memory allocation and handling.
6+
7+Required properties:
8+- compatible : must be one of the following compatibles:
9+ - "allwinner,sun4i-a10-video-engine"
10+ - "allwinner,sun5i-a13-video-engine"
11+ - "allwinner,sun7i-a20-video-engine"
12+ - "allwinner,sun8i-a33-video-engine"
13+ - "allwinner,sun8i-h3-video-engine"
14+- reg : register base and length of VE;
15+- clocks : list of clock specifiers, corresponding to entries in
16+ the clock-names property;
17+- clock-names : should contain "ahb", "mod" and "ram" entries;
18+- resets : phandle for reset;
19+- interrupts : VE interrupt number;
20+- allwinner,sram : SRAM region to use with the VE.
21+
22+Optional properties:
23+- memory-region : CMA pool to use for buffers allocation instead of the
24+ default CMA pool.
25+
26+Example:
27+
28+reserved-memory {
29+ #address-cells = <1>;
30+ #size-cells = <1>;
31+ ranges;
32+
33+ /* Address must be kept in the lower 256 MiBs of DRAM for VE. */
34+ cma_pool: cma@4a000000 {
35+ compatible = "shared-dma-pool";
36+ size = <0x6000000>;
37+ alloc-ranges = <0x4a000000 0x6000000>;
38+ reusable;
39+ linux,cma-default;
40+ };
41+};
42+
43+video-codec@1c0e000 {
44+ compatible = "allwinner,sun7i-a20-video-engine";
45+ reg = <0x01c0e000 0x1000>;
46+
47+ clocks = <&ccu CLK_AHB_VE>, <&ccu CLK_VE>,
48+ <&ccu CLK_DRAM_VE>;
49+ clock-names = "ahb", "mod", "ram";
50+
51+ resets = <&ccu RST_VE>;
52+ interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
53+ allwinner,sram = <&ve_sram 1>;
54+};
Documentation/devicetree/bindings/media/fsl-pxp.txt+26−0
@@ -0,0 +1,26 @@
1+Freescale Pixel Pipeline
2+========================
3+
4+The Pixel Pipeline (PXP) is a memory-to-memory graphics processing engine
5+that supports scaling, colorspace conversion, alpha blending, rotation, and
6+pixel conversion via lookup table. Different versions are present on various
7+i.MX SoCs from i.MX23 to i.MX7.
8+
9+Required properties:
10+- compatible: should be "fsl,<soc>-pxp", where SoC can be one of imx23, imx28,
11+ imx6dl, imx6sl, imx6ul, imx6sx, imx6ull, or imx7d.
12+- reg: the register base and size for the device registers
13+- interrupts: the PXP interrupt, two interrupts for imx6ull and imx7d.
14+- clock-names: should be "axi"
15+- clocks: the PXP AXI clock
16+
17+Example:
18+
19+pxp@21cc000 {
20+ compatible = "fsl,imx6ull-pxp";
21+ reg = <0x021cc000 0x4000>;
22+ interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
23+ <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
24+ clock-names = "axi";
25+ clocks = <&clks IMX6UL_CLK_PXP>;
26+};
Documentation/devicetree/bindings/media/i2c/adv748x.txt+16−4
@@ -10,7 +10,11 @@ Required Properties: · 9 unmodified lines
1010 - "adi,adv7481" for the ADV7481
1111 - "adi,adv7482" for the ADV7482
1212
13− - reg: I2C slave address
13+ - reg: I2C slave addresses
14+ The ADV748x has up to twelve 256-byte maps that can be accessed via the
15+ main I2C ports. Each map has it own I2C address and acts as a standard
16+ slave device on the I2C bus. The main address is mandatory, others are
17+ optional and remain at default values if not specified.
1418
1519 Optional Properties:
1620
@@ -18,6 +22,11 @@ Optional Properties: · 1 unmodified line
1822 "intrq3". All interrupts are optional. The "intrq3" interrupt
1923 is only available on the adv7481
2024 - interrupts: Specify the interrupt lines for the ADV748x
25+ - reg-names : Names of maps with programmable addresses.
26+ It shall contain all maps needing a non-default address.
27+ Possible map names are:
28+ "main", "dpll", "cp", "hdmi", "edid", "repeater",
29+ "infoframe", "cbus", "cec", "sdp", "txa", "txb"
2130
2231 The device node must contain one 'port' child node per device input and output
2332 port, in accordance with the video interface bindings defined in
@@ -47,7 +56,10 @@ Example: · 23 unmodified lines
4756
4857 video-receiver@70 {
4958 compatible = "adi,adv7482";
50− reg = <0x70>;
59+ reg = <0x70 0x71 0x72 0x73 0x74 0x75
60+ 0x60 0x61 0x62 0x63 0x64 0x65>;
61+ reg-names = "main", "dpll", "cp", "hdmi", "edid", "repeater",
62+ "infoframe", "cbus", "cec", "sdp", "txa", "txb";
5163
5264 #address-cells = <1>;
5365 #size-cells = <0>;
@@ -73,7 +85,7 @@ Example: · 19 unmodified lines
7385 };
7486 };
7587
76− port@10 {
88+ port@a {
7789 reg = <10>;
7890
7991 adv7482_txa: endpoint {
@@ -83,7 +95,7 @@ Example: · 3 unmodified lines
8395 };
8496 };
8597
86− port@11 {
98+ port@b {
8799 reg = <11>;
88100
89101 adv7482_txb: endpoint {
Documentation/devicetree/bindings/media/i2c/adv7604.txt+1−1
@@ -66,7 +66,7 @@ Example: · 65 unmodified lines
6666 * other maps will retain their default addresses.
6767 */
6868 reg = <0x4c>, <0x66>;
69− reg-names "main", "edid";
69+ reg-names = "main", "edid";
7070
7171 reset-gpios = <&ioexp 0 GPIO_ACTIVE_LOW>;
7272 hpd-gpios = <&ioexp 2 GPIO_ACTIVE_HIGH>;
Documentation/devicetree/bindings/media/i2c/dongwoon,dw9807-vcm.txtrenamed from Documentation/devicetree/bindings/media/i2c/dongwoon,dw9807.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/media/mediatek-jpeg-decoder.txt+1−0
@@ -5,6 +5,7 @@ Mediatek JPEG Decoder is the JPEG decode hardware present in Mediatek SoCs · 4 unmodified lines
55 Required properties:
66 - compatible : must be one of the following string:
77 "mediatek,mt8173-jpgdec"
8+ "mediatek,mt7623-jpgdec", "mediatek,mt2701-jpgdec"
89 "mediatek,mt2701-jpgdec"
910 - reg : physical base address of the jpeg decoder registers and length of
1011 memory mapped region.
Documentation/devicetree/bindings/media/rcar_vin.txt+1−0
@@ -11,6 +11,7 @@ on Gen3 platforms to a CSI-2 receiver. · 10 unmodified lines
1111
1212 - compatible: Must be one or more of the following
1313 - "renesas,vin-r8a7743" for the R8A7743 device
14+ - "renesas,vin-r8a7744" for the R8A7744 device
1415 - "renesas,vin-r8a7745" for the R8A7745 device
1516 - "renesas,vin-r8a7778" for the R8A7778 device
1617 - "renesas,vin-r8a7779" for the R8A7779 device
Documentation/devicetree/bindings/media/renesas,ceu.txt+9−5
@@ -17,15 +17,19 @@ Required properties: · 16 unmodified lines
1717 The CEU supports a single parallel input and should contain a single 'port'
1818 subnode with a single 'endpoint'. Connection to input devices are modeled
1919 according to the video interfaces OF bindings specified in:
20−Documentation/devicetree/bindings/media/video-interfaces.txt
20+[1] Documentation/devicetree/bindings/media/video-interfaces.txt
2121
2222 Optional endpoint properties applicable to parallel input bus described in
2323 the above mentioned "video-interfaces.txt" file are supported.
2424
25−- hsync-active: Active state of the HSYNC signal, 0/1 for LOW/HIGH respectively.
26− If property is not present, default is active high.
27−- vsync-active: Active state of the VSYNC signal, 0/1 for LOW/HIGH respectively.
28− If property is not present, default is active high.
25+- hsync-active: See [1] for description. If property is not present,
26+ default is active high.
27+- vsync-active: See [1] for description. If property is not present,
28+ default is active high.
29+- bus-width: See [1] for description. Accepted values are '8' and '16'.
30+ If property is not present, default is '8'.
31+- field-even-active: See [1] for description. If property is not present,
32+ an even field is identified by a logic 0 (active-low signal).
2933
3034 Example:
3135
Documentation/devicetree/bindings/media/rockchip-vpu.txt+29−0
@@ -0,0 +1,29 @@
1+device-tree bindings for rockchip VPU codec
2+
3+Rockchip (Video Processing Unit) present in various Rockchip platforms,
4+such as RK3288 and RK3399.
5+
6+Required properties:
7+- compatible: value should be one of the following
8+ "rockchip,rk3288-vpu";
9+ "rockchip,rk3399-vpu";
10+- interrupts: encoding and decoding interrupt specifiers
11+- interrupt-names: should be "vepu" and "vdpu"
12+- clocks: phandle to VPU aclk, hclk clocks
13+- clock-names: should be "aclk" and "hclk"
14+- power-domains: phandle to power domain node
15+- iommus: phandle to a iommu node
16+
17+Example:
18+SoC-specific DT entry:
19+ vpu: video-codec@ff9a0000 {
20+ compatible = "rockchip,rk3288-vpu";
21+ reg = <0x0 0xff9a0000 0x0 0x800>;
22+ interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
23+ <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
24+ interrupt-names = "vepu", "vdpu";
25+ clocks = <&cru ACLK_VCODEC>, <&cru HCLK_VCODEC>;
26+ clock-names = "aclk", "hclk";
27+ power-domains = <&power RK3288_PD_VIDEO>;
28+ iommus = <&vpu_mmu>;
29+ };
Documentation/devicetree/bindings/media/video-interfaces.txt+3−1
@@ -100,10 +100,12 @@ Optional endpoint properties · 99 unmodified lines
100100 slave device (data source) by the master device (data sink). In the master
101101 mode the data source device is also the source of the synchronization signals.
102102 - bus-type: data bus type. Possible values are:
103− 0 - autodetect based on other properties (MIPI CSI-2 D-PHY, parallel or Bt656)
104103 1 - MIPI CSI-2 C-PHY
105104 2 - MIPI CSI1
106105 3 - CCP2
106+ 4 - MIPI CSI-2 D-PHY
107+ 5 - Parallel
108+ 6 - Bt.656
107109 - bus-width: number of data lines actively used, valid for the parallel busses.
108110 - data-shift: on the parallel data busses, if bus-width is used to specify the
109111 number of data lines, data-shift can be used to specify which data lines are
Documentation/devicetree/bindings/memory-controllers/mediatek,smi-common.txt+1−0
@@ -17,6 +17,7 @@ Required properties: · 16 unmodified lines
1717 - compatible : must be one of :
1818 "mediatek,mt2701-smi-common"
1919 "mediatek,mt2712-smi-common"
20+ "mediatek,mt7623-smi-common", "mediatek,mt2701-smi-common"
2021 "mediatek,mt8173-smi-common"
2122 - reg : the register and size of the SMI block.
2223 - power-domains : a phandle to the power domain of this local arbiter.
Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.txt+2−1
@@ -6,6 +6,7 @@ Required properties: · 5 unmodified lines
66 - compatible : must be one of :
77 "mediatek,mt2701-smi-larb"
88 "mediatek,mt2712-smi-larb"
9+ "mediatek,mt7623-smi-larb", "mediatek,mt2701-smi-larb"
910 "mediatek,mt8173-smi-larb"
1011 - reg : the register and size of this local arbiter.
1112 - mediatek,smi : a phandle to the smi_common node.
@@ -16,7 +17,7 @@ Required properties: · 4 unmodified lines
1617 the register.
1718 - "smi" : It's the clock for transfer data and command.
1819
19−Required property for mt2701 and mt2712:
20+Required property for mt2701, mt2712 and mt7623:
2021 - mediatek,larb-id :the hardware id of this larb.
2122
2223 Example:
Documentation/devicetree/bindings/mfd/arizona.txt+1−1
@@ -76,7 +76,7 @@ Deprecated properties: · 75 unmodified lines
7676 Also see child specific device properties:
7777 Regulator - ../regulator/arizona-regulator.txt
7878 Extcon - ../extcon/extcon-arizona.txt
79− Sound - ../sound/arizona.txt
79+ Sound - ../sound/wlf,arizona.txt
8080
8181 Example:
8282
Documentation/devicetree/bindings/mfd/atmel-usart.txtrenamed from Documentation/devicetree/bindings/serial/atmel-usart.txt+23−2
@@ -1,6 +1,6 @@
11 * Atmel Universal Synchronous Asynchronous Receiver/Transmitter (USART)
22
3−Required properties:
3+Required properties for USART:
44 - compatible: Should be "atmel,<chip>-usart" or "atmel,<chip>-dbgu"
55 The compatible <chip> indicated will be the first SoC to support an
66 additional mode or an USART new feature.
@@ -11,7 +11,13 @@ Required properties: · 4 unmodified lines
1111 Required elements: "usart"
1212 - clocks: phandles to input clocks.
1313
14−Optional properties:
14+Required properties for USART in SPI mode:
15+- #size-cells : Must be <0>
16+- #address-cells : Must be <1>
17+- cs-gpios: chipselects (internal cs not supported)
18+- atmel,usart-mode : Must be <AT91_USART_MODE_SPI> (found in dt-bindings/mfd/at91-usart.h)
19+
20+Optional properties in serial mode:
1521 - atmel,use-dma-rx: use of PDC or DMA for receiving data
1622 - atmel,use-dma-tx: use of PDC or DMA for transmitting data
1723 - {rts,cts,dtr,dsr,rng,dcd}-gpios: specify a GPIO for RTS/CTS/DTR/DSR/RI/DCD line respectively.
@@ -62,3 +68,18 @@ Example: · 44 unmodified lines
6268 dma-names = "tx", "rx";
6369 atmel,fifo-size = <32>;
6470 };
71+
72+- SPI mode:
73+ #include <dt-bindings/mfd/at91-usart.h>
74+
75+ spi0: spi@f001c000 {
76+ #address-cells = <1>;
77+ #size-cells = <0>;
78+ compatible = "atmel,at91rm9200-usart", "atmel,at91sam9260-usart";
79+ atmel,usart-mode = <AT91_USART_MODE_SPI>;
80+ reg = <0xf001c000 0x100>;
81+ interrupts = <12 IRQ_TYPE_LEVEL_HIGH 5>;
82+ clocks = <&usart0_clk>;
83+ clock-names = "usart";
84+ cs-gpios = <&pioB 3 0>;
85+ };
Documentation/devicetree/bindings/mfd/rohm,bd71837-pmic.txt+9−8
@@ -1,16 +1,17 @@
1−* ROHM BD71837 Power Management Integrated Circuit bindings
1+* ROHM BD71837 and BD71847 Power Management Integrated Circuit bindings
22
3−BD71837MWV is a programmable Power Management IC for powering single-core,
4−dual-core, and quad-core SoCs such as NXP-i.MX 8M. It is optimized for
5−low BOM cost and compact solution footprint. It integrates 8 Buck
6−egulators and 7 LDOs to provide all the power rails required by the SoC and
7−the commonly used peripherals.
3+BD71837MWV and BD71847MWV are programmable Power Management ICs for powering
4+single-core, dual-core, and quad-core SoCs such as NXP-i.MX 8M. They are
5+optimized for low BOM cost and compact solution footprint. BD71837MWV
6+integrates 8 Buck regulators and 7 LDOs. BD71847MWV contains 6 Buck regulators
7+and 6 LDOs.
88
9−Datasheet for PMIC is available at:
9+Datasheet for BD71837 is available at:
1010 https://www.rohm.com/datasheet/BD71837MWV/bd71837mwv-e
1111
1212 Required properties:
13− - compatible : Should be "rohm,bd71837".
13+ - compatible : Should be "rohm,bd71837" for bd71837
14+ "rohm,bd71847" for bd71847.
1415 - reg : I2C slave address.
1516 - interrupt-parent : Phandle to the parent interrupt controller.
1617 - interrupts : The interrupt line the device is connected to.
Documentation/devicetree/bindings/mips/mscc.txt+16−0
@@ -41,3 +41,19 @@ Example: · 40 unmodified lines
4141 compatible = "mscc,ocelot-cpu-syscon", "syscon";
4242 reg = <0x70000000 0x2c>;
4343 };
44+
45+o HSIO regs:
46+
47+The SoC has a few registers (HSIO) handling miscellaneous functionalities:
48+configuration and status of PLL5, RCOMP, SyncE, SerDes configurations and
49+status, SerDes muxing and a thermal sensor.
50+
51+Required properties:
52+- compatible: Should be "mscc,ocelot-hsio", "syscon", "simple-mfd"
53+- reg : Should contain registers location and length
54+
55+Example:
56+ syscon@10d0000 {
57+ compatible = "mscc,ocelot-hsio", "syscon", "simple-mfd";
58+ reg = <0x10d0000 0x10000>;
59+ };
Documentation/devicetree/bindings/misc/fsl,qoriq-mc.txt+39−0
@@ -9,6 +9,25 @@ blocks that can be used to create functional hardware objects/devices · 8 unmodified lines
99 such as network interfaces, crypto accelerator instances, L2 switches,
1010 etc.
1111
12+For an overview of the DPAA2 architecture and fsl-mc bus see:
13+Documentation/networking/dpaa2/overview.rst
14+
15+As described in the above overview, all DPAA2 objects in a DPRC share the
16+same hardware "isolation context" and a 10-bit value called an ICID
17+(isolation context id) is expressed by the hardware to identify
18+the requester.
19+
20+The generic 'iommus' property is insufficient to describe the relationship
21+between ICIDs and IOMMUs, so an iommu-map property is used to define
22+the set of possible ICIDs under a root DPRC and how they map to
23+an IOMMU.
24+
25+For generic IOMMU bindings, see
26+Documentation/devicetree/bindings/iommu/iommu.txt.
27+
28+For arm-smmu binding, see:
29+Documentation/devicetree/bindings/iommu/arm,smmu.txt.
30+
1231 Required properties:
1332
1433 - compatible
@@ -88,14 +107,34 @@ Sub-nodes: · 73 unmodified lines
88107 Value type: <phandle>
89108 Definition: Specifies the phandle to the PHY device node associated
90109 with the this dpmac.
110+Optional properties:
111+
112+- iommu-map: Maps an ICID to an IOMMU and associated iommu-specifier
113+ data.
114+
115+ The property is an arbitrary number of tuples of
116+ (icid-base,iommu,iommu-base,length).
117+
118+ Any ICID i in the interval [icid-base, icid-base + length) is
119+ associated with the listed IOMMU, with the iommu-specifier
120+ (i - icid-base + iommu-base).
91121
92122 Example:
93123
124+ smmu: iommu@5000000 {
125+ compatible = "arm,mmu-500";
126+ #iommu-cells = <1>;
127+ stream-match-mask = <0x7C00>;
128+ ...
129+ };
130+
94131 fsl_mc: fsl-mc@80c000000 {
95132 compatible = "fsl,qoriq-mc";
96133 reg = <0x00000008 0x0c000000 0 0x40>, /* MC portal base */
97134 <0x00000000 0x08340000 0 0x40000>; /* MC control reg */
98135 msi-parent = <&its>;
136+ /* define map for ICIDs 23-64 */
137+ iommu-map = <23 &smmu 23 41>;
99138 #address-cells = <3>;
100139 #size-cells = <1>;
101140
Documentation/devicetree/bindings/misc/lwn-bk4.txt+26−0
@@ -0,0 +1,26 @@
1+* Liebherr's BK4 controller external SPI
2+
3+A device which handles data acquisition from compatible industrial
4+peripherals.
5+The SPI is used for data and management purposes in both master and
6+slave modes.
7+
8+Required properties:
9+
10+- compatible : Should be "lwn,bk4"
11+
12+Required SPI properties:
13+
14+- reg : Should be address of the device chip select within
15+ the controller.
16+
17+- spi-max-frequency : Maximum SPI clocking speed of device in Hz, should be
18+ 30MHz at most for the Liebherr's BK4 external bus.
19+
20+Example:
21+
22+spidev0: spi@0 {
23+ compatible = "lwn,bk4";
24+ spi-max-frequency = <30000000>;
25+ reg = <0>;
26+};
Documentation/devicetree/bindings/mmc/arasan,sdhci.txt+1−0
@@ -15,6 +15,7 @@ Required Properties: · 14 unmodified lines
1515 - "arasan,sdhci-5.1": generic Arasan SDHCI 5.1 PHY
1616 - "rockchip,rk3399-sdhci-5.1", "arasan,sdhci-5.1": rk3399 eMMC PHY
1717 For this device it is strongly suggested to include arasan,soc-ctl-syscon.
18+ - "ti,am654-sdhci-5.1", "arasan,sdhci-5.1": TI AM654 MMC PHY
1819 - reg: From mmc bindings: Register location and length.
1920 - clocks: From clock bindings: Handles to clock inputs.
2021 - clock-names: From clock bindings: Tuple including "clk_xin" and "clk_ahb"
Documentation/devicetree/bindings/mmc/jz4740.txt+1−0
@@ -7,6 +7,7 @@ described in mmc.txt. · 6 unmodified lines
77 Required properties:
88 - compatible: Should be one of the following:
99 - "ingenic,jz4740-mmc" for the JZ4740
10+ - "ingenic,jz4725b-mmc" for the JZ4725B
1011 - "ingenic,jz4780-mmc" for the JZ4780
1112 - reg: Should contain the MMC controller registers location and length.
1213 - interrupts: Should contain the interrupt specifier of the MMC controller.
Documentation/devicetree/bindings/mmc/mmci.txt+11−0
@@ -15,8 +15,11 @@ Required properties: · 14 unmodified lines
1515 Optional properties:
1616 - arm,primecell-periphid : contains the PrimeCell Peripheral ID, it overrides
1717 the ID provided by the HW
18+- resets : phandle to internal reset line.
19+ Should be defined for sdmmc variant.
1820 - vqmmc-supply : phandle to the regulator device tree node, mentioned
1921 as the VCCQ/VDD_IO supply in the eMMC/SD specs.
22+specific for ux500 variant:
2023 - st,sig-dir-dat0 : bus signal direction pin used for DAT[0].
2124 - st,sig-dir-dat2 : bus signal direction pin used for DAT[2].
2225 - st,sig-dir-dat31 : bus signal direction pin used for DAT[3] and DAT[1].
@@ -24,6 +27,14 @@ Optional properties: · 1 unmodified line
2427 - st,sig-dir-cmd : cmd signal direction pin used for CMD.
2528 - st,sig-pin-fbclk : feedback clock signal pin used.
2629
30+specific for sdmmc variant:
31+- st,sig-dir : signal direction polarity used for cmd, dat0 dat123.
32+- st,neg-edge : data & command phase relation, generated on
33+ sd clock falling edge.
34+- st,use-ckin : use ckin pin from an external driver to sample
35+ the receive data (example: with voltage
36+ switch transceiver).
37+
2738 Deprecated properties:
2839 - mmc-cap-mmc-highspeed : indicates whether MMC is high speed capable.
2940 - mmc-cap-sd-highspeed : indicates whether SD is high speed capable.
Documentation/devicetree/bindings/mmc/mtk-sd.txt+2−0
@@ -10,6 +10,7 @@ Required properties: · 9 unmodified lines
1010 - compatible: value should be either of the following.
1111 "mediatek,mt8135-mmc": for mmc host ip compatible with mt8135
1212 "mediatek,mt8173-mmc": for mmc host ip compatible with mt8173
13+ "mediatek,mt8183-mmc": for mmc host ip compatible with mt8183
1314 "mediatek,mt2701-mmc": for mmc host ip compatible with mt2701
1415 "mediatek,mt2712-mmc": for mmc host ip compatible with mt2712
1516 "mediatek,mt7622-mmc": for MT7622 SoC
@@ -22,6 +23,7 @@ Required properties: · 6 unmodified lines
2223 "source" - source clock (required)
2324 "hclk" - HCLK which used for host (required)
2425 "source_cg" - independent source clock gate (required for MT2712)
26+ "bus_clk" - bus clock used for internal register access (required for MT2712 MSDC0/3)
2527 - pinctrl-names: should be "default", "state_uhs"
2628 - pinctrl-0: should contain default/high speed pin ctrl
2729 - pinctrl-1: should contain uhs mode pin ctrl
Documentation/devicetree/bindings/mmc/nvidia,tegra20-sdhci.txt+72−0
@@ -38,3 +38,75 @@ sdhci@c8000200 { · 37 unmodified lines
3838 power-gpios = <&gpio 155 0>; /* gpio PT3 */
3939 bus-width = <8>;
4040 };
41+
42+Optional properties for Tegra210 and Tegra186:
43+- pinctrl-names, pinctrl-0, pinctrl-1 : Specify pad voltage
44+ configurations. Valid pinctrl-names are "sdmmc-3v3" and "sdmmc-1v8"
45+ for controllers supporting multiple voltage levels. The order of names
46+ should correspond to the pin configuration states in pinctrl-0 and
47+ pinctrl-1.
48+- nvidia,only-1-8-v : The presence of this property indicates that the
49+ controller operates at a 1.8 V fixed I/O voltage.
50+- nvidia,pad-autocal-pull-up-offset-3v3,
51+ nvidia,pad-autocal-pull-down-offset-3v3 : Specify drive strength
52+ calibration offsets for 3.3 V signaling modes.
53+- nvidia,pad-autocal-pull-up-offset-1v8,
54+ nvidia,pad-autocal-pull-down-offset-1v8 : Specify drive strength
55+ calibration offsets for 1.8 V signaling modes.
56+- nvidia,pad-autocal-pull-up-offset-3v3-timeout,
57+ nvidia,pad-autocal-pull-down-offset-3v3-timeout : Specify drive
58+ strength used as a fallback in case the automatic calibration times
59+ out on a 3.3 V signaling mode.
60+- nvidia,pad-autocal-pull-up-offset-1v8-timeout,
61+ nvidia,pad-autocal-pull-down-offset-1v8-timeout : Specify drive
62+ strength used as a fallback in case the automatic calibration times
63+ out on a 1.8 V signaling mode.
64+- nvidia,pad-autocal-pull-up-offset-sdr104,
65+ nvidia,pad-autocal-pull-down-offset-sdr104 : Specify drive strength
66+ calibration offsets for SDR104 mode.
67+- nvidia,pad-autocal-pull-up-offset-hs400,
68+ nvidia,pad-autocal-pull-down-offset-hs400 : Specify drive strength
69+ calibration offsets for HS400 mode.
70+- nvidia,default-tap : Specify the default inbound sampling clock
71+ trimmer value for non-tunable modes.
72+- nvidia,default-trim : Specify the default outbound clock trimmer
73+ value.
74+- nvidia,dqs-trim : Specify DQS trim value for HS400 timing
75+
76+ Notes on the pad calibration pull up and pulldown offset values:
77+ - The property values are drive codes which are programmed into the
78+ PD_OFFSET and PU_OFFSET sections of the
79+ SDHCI_TEGRA_AUTO_CAL_CONFIG register.
80+ - A higher value corresponds to higher drive strength. Please refer
81+ to the reference manual of the SoC for correct values.
82+ - The SDR104 and HS400 timing specific values are used in
83+ corresponding modes if specified.
84+
85+ Notes on tap and trim values:
86+ - The values are used for compensating trace length differences
87+ by adjusting the sampling point.
88+ - The values are programmed to the Vendor Clock Control Register.
89+ Please refer to the reference manual of the SoC for correct
90+ values.
91+ - The DQS trim values are only used on controllers which support
92+ HS400 timing. Only SDMMC4 on Tegra210 and Tegra 186 supports
93+ HS400.
94+
95+Example:
96+sdhci@700b0000 {
97+ compatible = "nvidia,tegra210-sdhci", "nvidia,tegra124-sdhci";
98+ reg = <0x0 0x700b0000 0x0 0x200>;
99+ interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
100+ clocks = <&tegra_car TEGRA210_CLK_SDMMC1>;
101+ clock-names = "sdhci";
102+ resets = <&tegra_car 14>;
103+ reset-names = "sdhci";
104+ pinctrl-names = "sdmmc-3v3", "sdmmc-1v8";
105+ pinctrl-0 = <&sdmmc1_3v3>;
106+ pinctrl-1 = <&sdmmc1_1v8>;
107+ nvidia,pad-autocal-pull-up-offset-3v3 = <0x00>;
108+ nvidia,pad-autocal-pull-down-offset-3v3 = <0x7d>;
109+ nvidia,pad-autocal-pull-up-offset-1v8 = <0x7b>;
110+ nvidia,pad-autocal-pull-down-offset-1v8 = <0x7b>;
111+ status = "disabled";
112+};
Documentation/devicetree/bindings/mmc/renesas,mmcif.txt+3−1
@@ -12,6 +12,7 @@ Required properties: · 11 unmodified lines
1212 - "renesas,mmcif-r8a73a4" for the MMCIF found in r8a73a4 SoCs
1313 - "renesas,mmcif-r8a7740" for the MMCIF found in r8a7740 SoCs
1414 - "renesas,mmcif-r8a7743" for the MMCIF found in r8a7743 SoCs
15+ - "renesas,mmcif-r8a7744" for the MMCIF found in r8a7744 SoCs
1516 - "renesas,mmcif-r8a7745" for the MMCIF found in r8a7745 SoCs
1617 - "renesas,mmcif-r8a7778" for the MMCIF found in r8a7778 SoCs
1718 - "renesas,mmcif-r8a7790" for the MMCIF found in r8a7790 SoCs
@@ -23,7 +24,8 @@ Required properties: · 5 unmodified lines
2324 - interrupts: Some SoCs have only 1 shared interrupt, while others have either
2425 2 or 3 individual interrupts (error, int, card detect). Below is the number
2526 of interrupts for each SoC:
26− 1: r8a73a4, r8a7743, r8a7745, r8a7778, r8a7790, r8a7791, r8a7793, r8a7794
27+ 1: r8a73a4, r8a7743, r8a7744, r8a7745, r8a7778, r8a7790, r8a7791, r8a7793,
28+ r8a7794
2729 2: r8a7740, sh73a0
2830 3: r7s72100
2931
Documentation/devicetree/bindings/mmc/sdhci-sprd.txt+41−0
@@ -0,0 +1,41 @@
1+* Spreadtrum SDHCI controller (sdhci-sprd)
2+
3+The Secure Digital (SD) Host controller on Spreadtrum SoCs provides an interface
4+for MMC, SD and SDIO types of cards.
5+
6+This file documents differences between the core properties in mmc.txt
7+and the properties used by the sdhci-sprd driver.
8+
9+Required properties:
10+- compatible: Should contain "sprd,sdhci-r11".
11+- reg: physical base address of the controller and length.
12+- interrupts: Interrupts used by the SDHCI controller.
13+- clocks: Should contain phandle for the clock feeding the SDHCI controller
14+- clock-names: Should contain the following:
15+ "sdio" - SDIO source clock (required)
16+ "enable" - gate clock which used for enabling/disabling the device (required)
17+
18+Optional properties:
19+- assigned-clocks: the same with "sdio" clock
20+- assigned-clock-parents: the default parent of "sdio" clock
21+
22+Examples:
23+
24+sdio0: sdio@20600000 {
25+ compatible = "sprd,sdhci-r11";
26+ reg = <0 0x20600000 0 0x1000>;
27+ interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
28+
29+ clock-names = "sdio", "enable";
30+ clocks = <&ap_clk CLK_EMMC_2X>,
31+ <&apahb_gate CLK_EMMC_EB>;
32+ assigned-clocks = <&ap_clk CLK_EMMC_2X>;
33+ assigned-clock-parents = <&rpll CLK_RPLL_390M>;
34+
35+ bus-width = <8>;
36+ non-removable;
37+ no-sdio;
38+ no-sd;
39+ cap-mmc-hw-reset;
40+ status = "okay";
41+};
Documentation/devicetree/bindings/mmc/tmio_mmc.txt+8−2
@@ -16,7 +16,11 @@ Required properties: · 15 unmodified lines
1616 "renesas,sdhi-r8a73a4" - SDHI IP on R8A73A4 SoC
1717 "renesas,sdhi-r8a7740" - SDHI IP on R8A7740 SoC
1818 "renesas,sdhi-r8a7743" - SDHI IP on R8A7743 SoC
19+ "renesas,sdhi-r8a7744" - SDHI IP on R8A7744 SoC
1920 "renesas,sdhi-r8a7745" - SDHI IP on R8A7745 SoC
21+ "renesas,sdhi-r8a774a1" - SDHI IP on R8A774A1 SoC
22+ "renesas,sdhi-r8a77470" - SDHI IP on R8A77470 SoC
23+ "renesas,sdhi-mmc-r8a77470" - SDHI/MMC IP on R8A77470 SoC
2024 "renesas,sdhi-r8a7778" - SDHI IP on R8A7778 SoC
2125 "renesas,sdhi-r8a7779" - SDHI IP on R8A7779 SoC
2226 "renesas,sdhi-r8a7790" - SDHI IP on R8A7790 SoC
@@ -27,14 +31,16 @@ Required properties: · 4 unmodified lines
2731 "renesas,sdhi-r8a7795" - SDHI IP on R8A7795 SoC
2832 "renesas,sdhi-r8a7796" - SDHI IP on R8A7796 SoC
2933 "renesas,sdhi-r8a77965" - SDHI IP on R8A77965 SoC
34+ "renesas,sdhi-r8a77970" - SDHI IP on R8A77970 SoC
3035 "renesas,sdhi-r8a77980" - SDHI IP on R8A77980 SoC
3136 "renesas,sdhi-r8a77990" - SDHI IP on R8A77990 SoC
3237 "renesas,sdhi-r8a77995" - SDHI IP on R8A77995 SoC
3338 "renesas,sdhi-shmobile" - a generic sh-mobile SDHI controller
3439 "renesas,rcar-gen1-sdhi" - a generic R-Car Gen1 SDHI controller
35− "renesas,rcar-gen2-sdhi" - a generic R-Car Gen2 or RZ/G1
40+ "renesas,rcar-gen2-sdhi" - a generic R-Car Gen2 and RZ/G1 SDHI
41+ (not SDHI/MMC) controller
42+ "renesas,rcar-gen3-sdhi" - a generic R-Car Gen3 or RZ/G2
3643 SDHI controller
37− "renesas,rcar-gen3-sdhi" - a generic R-Car Gen3 SDHI controller
3844
3945
4046 When compatible with the generic version, nodes must list
Documentation/devicetree/bindings/mmc/uniphier-sd.txt+55−0
@@ -0,0 +1,55 @@
1+UniPhier SD/eMMC controller
2+
3+Required properties:
4+- compatible: should be one of the following:
5+ "socionext,uniphier-sd-v2.91" - IP version 2.91
6+ "socionext,uniphier-sd-v3.1" - IP version 3.1
7+ "socionext,uniphier-sd-v3.1.1" - IP version 3.1.1
8+- reg: offset and length of the register set for the device.
9+- interrupts: a single interrupt specifier.
10+- clocks: a single clock specifier of the controller clock.
11+- reset-names: should contain the following:
12+ "host" - mandatory for all versions
13+ "bridge" - should exist only for "socionext,uniphier-sd-v2.91"
14+ "hw" - should exist if eMMC hw reset line is available
15+- resets: a list of reset specifiers, corresponding to the reset-names
16+
17+Optional properties:
18+- pinctrl-names: if present, should contain the following:
19+ "default" - should exist for all instances
20+ "uhs" - should exist for SD instance with UHS support
21+- pinctrl-0: pin control state for the default mode
22+- pinctrl-1: pin control state for the UHS mode
23+- dma-names: should be "rx-tx" if present.
24+ This property can exist only for "socionext,uniphier-sd-v2.91".
25+- dmas: a single DMA channel specifier
26+ This property can exist only for "socionext,uniphier-sd-v2.91".
27+- bus-width: see mmc.txt
28+- cap-sd-highspeed: see mmc.txt
29+- cap-mmc-highspeed: see mmc.txt
30+- sd-uhs-sdr12: see mmc.txt
31+- sd-uhs-sdr25: see mmc.txt
32+- sd-uhs-sdr50: see mmc.txt
33+- cap-mmc-hw-reset: should exist if reset-names contains "hw". see mmc.txt
34+- non-removable: see mmc.txt
35+
36+Example:
37+
38+ sd: sdhc@5a400000 {
39+ compatible = "socionext,uniphier-sd-v2.91";
40+ reg = <0x5a400000 0x200>;
41+ interrupts = <0 76 4>;
42+ pinctrl-names = "default", "uhs";
43+ pinctrl-0 = <&pinctrl_sd>;
44+ pinctrl-1 = <&pinctrl_sd_uhs>;
45+ clocks = <&mio_clk 0>;
46+ reset-names = "host", "bridge";
47+ resets = <&mio_rst 0>, <&mio_rst 3>;
48+ dma-names = "rx-tx";
49+ dmas = <&dmac 4>;
50+ bus-width = <4>;
51+ cap-sd-highspeed;
52+ sd-uhs-sdr12;
53+ sd-uhs-sdr25;
54+ sd-uhs-sdr50;
55+ };
Documentation/devicetree/bindings/net/brcm,unimac-mdio.txt+3−0
@@ -19,6 +19,9 @@ Optional properties: · 18 unmodified lines
1919 - interrupt-names: must be "mdio_done_error" when there is a share interrupt fed
2020 to this hardware block, or must be "mdio_done" for the first interrupt and
2121 "mdio_error" for the second when there are separate interrupts
22+- clocks: A reference to the clock supplying the MDIO bus controller
23+- clock-frequency: the MDIO bus clock that must be output by the MDIO bus
24+ hardware, if absent, the default hardware values are used
2225
2326 Child nodes of this MDIO bus controller node are standard Ethernet PHY device
2427 nodes as described in Documentation/devicetree/bindings/net/phy.txt
Documentation/devicetree/bindings/net/can/rcar_can.txt+1−0
@@ -3,6 +3,7 @@ Renesas R-Car CAN controller Device Tree Bindings · 2 unmodified lines
33
44 Required properties:
55 - compatible: "renesas,can-r8a7743" if CAN controller is a part of R8A7743 SoC.
6+ "renesas,can-r8a7744" if CAN controller is a part of R8A7744 SoC.
67 "renesas,can-r8a7745" if CAN controller is a part of R8A7745 SoC.
78 "renesas,can-r8a7778" if CAN controller is a part of R8A7778 SoC.
89 "renesas,can-r8a7779" if CAN controller is a part of R8A7779 SoC.
Documentation/devicetree/bindings/net/dsa/b53.txt+36−0
@@ -46,6 +46,42 @@ Required properties: · 45 unmodified lines
4646 "brcm,bcm6328-switch"
4747 "brcm,bcm6368-switch" and the mandatory "brcm,bcm63xx-switch"
4848
49+Required properties for BCM585xx/586xx/88312 SoCs:
50+
51+ - reg: a total of 3 register base addresses, the first one must be the
52+ Switch Register Access block base, the second is the port 5/4 mux
53+ configuration register and the third one is the SGMII configuration
54+ and status register base address.
55+
56+ - interrupts: a total of 13 interrupts must be specified, in the following
57+ order: port 0-5, 7-8 link status change, then the integrated PHY interrupt,
58+ then the timestamping interrupt and the sleep timer interrupts for ports
59+ 5,7,8.
60+
61+Optional properties for BCM585xx/586xx/88312 SoCs:
62+
63+ - reg-names: a total of 3 names matching the 3 base register address, must
64+ be in the following order:
65+ "srab"
66+ "mux_config"
67+ "sgmii_config"
68+
69+ - interrupt-names: a total of 13 names matching the 13 interrupts specified
70+ must be in the following order:
71+ "link_state_p0"
72+ "link_state_p1"
73+ "link_state_p2"
74+ "link_state_p3"
75+ "link_state_p4"
76+ "link_state_p5"
77+ "link_state_p7"
78+ "link_state_p8"
79+ "phy"
80+ "ts"
81+ "imp_sleep_timer_p5"
82+ "imp_sleep_timer_p7"
83+ "imp_sleep_timer_p8"
84+
4985 See Documentation/devicetree/bindings/net/dsa/dsa.txt for a list of additional
5086 required and optional properties.
5187
Documentation/devicetree/bindings/net/dsa/lantiq-gswip.txt+143−0
@@ -0,0 +1,143 @@
1+Lantiq GSWIP Ethernet switches
2+==================================
3+
4+Required properties for GSWIP core:
5+
6+- compatible : "lantiq,xrx200-gswip" for the embedded GSWIP in the
7+ xRX200 SoC
8+- reg : memory range of the GSWIP core registers
9+ : memory range of the GSWIP MDIO registers
10+ : memory range of the GSWIP MII registers
11+
12+See Documentation/devicetree/bindings/net/dsa/dsa.txt for a list of
13+additional required and optional properties.
14+
15+
16+Required properties for MDIO bus:
17+- compatible : "lantiq,xrx200-mdio" for the MDIO bus inside the GSWIP
18+ core of the xRX200 SoC and the PHYs connected to it.
19+
20+See Documentation/devicetree/bindings/net/mdio.txt for a list of additional
21+required and optional properties.
22+
23+
24+Required properties for GPHY firmware loading:
25+- compatible : "lantiq,xrx200-gphy-fw", "lantiq,gphy-fw"
26+ "lantiq,xrx300-gphy-fw", "lantiq,gphy-fw"
27+ "lantiq,xrx330-gphy-fw", "lantiq,gphy-fw"
28+ for the loading of the firmware into the embedded
29+ GPHY core of the SoC.
30+- lantiq,rcu : reference to the rcu syscon
31+
32+The GPHY firmware loader has a list of GPHY entries, one for each
33+embedded GPHY
34+
35+- reg : Offset of the GPHY firmware register in the RCU
36+ register range
37+- resets : list of resets of the embedded GPHY
38+- reset-names : list of names of the resets
39+
40+Example:
41+
42+Ethernet switch on the VRX200 SoC:
43+
44+switch@e108000 {
45+ #address-cells = <1>;
46+ #size-cells = <0>;
47+ compatible = "lantiq,xrx200-gswip";
48+ reg = < 0xe108000 0x3100 /* switch */
49+ 0xe10b100 0xd8 /* mdio */
50+ 0xe10b1d8 0x130 /* mii */
51+ >;
52+ dsa,member = <0 0>;
53+
54+ ports {
55+ #address-cells = <1>;
56+ #size-cells = <0>;
57+
58+ port@0 {
59+ reg = <0>;
60+ label = "lan3";
61+ phy-mode = "rgmii";
62+ phy-handle = <&phy0>;
63+ };
64+
65+ port@1 {
66+ reg = <1>;
67+ label = "lan4";
68+ phy-mode = "rgmii";
69+ phy-handle = <&phy1>;
70+ };
71+
72+ port@2 {
73+ reg = <2>;
74+ label = "lan2";
75+ phy-mode = "internal";
76+ phy-handle = <&phy11>;
77+ };
78+
79+ port@4 {
80+ reg = <4>;
81+ label = "lan1";
82+ phy-mode = "internal";
83+ phy-handle = <&phy13>;
84+ };
85+
86+ port@5 {
87+ reg = <5>;
88+ label = "wan";
89+ phy-mode = "rgmii";
90+ phy-handle = <&phy5>;
91+ };
92+
93+ port@6 {
94+ reg = <0x6>;
95+ label = "cpu";
96+ ethernet = <&eth0>;
97+ };
98+ };
99+
100+ mdio {
101+ #address-cells = <1>;
102+ #size-cells = <0>;
103+ compatible = "lantiq,xrx200-mdio";
104+ reg = <0>;
105+
106+ phy0: ethernet-phy@0 {
107+ reg = <0x0>;
108+ };
109+ phy1: ethernet-phy@1 {
110+ reg = <0x1>;
111+ };
112+ phy5: ethernet-phy@5 {
113+ reg = <0x5>;
114+ };
115+ phy11: ethernet-phy@11 {
116+ reg = <0x11>;
117+ };
118+ phy13: ethernet-phy@13 {
119+ reg = <0x13>;
120+ };
121+ };
122+
123+ gphy-fw {
124+ compatible = "lantiq,xrx200-gphy-fw", "lantiq,gphy-fw";
125+ lantiq,rcu = <&rcu0>;
126+ #address-cells = <1>;
127+ #size-cells = <0>;
128+
129+ gphy@20 {
130+ reg = <0x20>;
131+
132+ resets = <&reset0 31 30>;
133+ reset-names = "gphy";
134+ };
135+
136+ gphy@68 {
137+ reg = <0x68>;
138+
139+ resets = <&reset0 29 28>;
140+ reset-names = "gphy";
141+ };
142+ };
143+};
Documentation/devicetree/bindings/net/lantiq,xrx200-net.txt+21−0
@@ -0,0 +1,21 @@
1+Lantiq xRX200 GSWIP PMAC Ethernet driver
2+==================================
3+
4+Required properties:
5+
6+- compatible : "lantiq,xrx200-net" for the PMAC of the embedded
7+ : GSWIP in the xXR200
8+- reg : memory range of the PMAC core inside of the GSWIP core
9+- interrupts : TX and RX DMA interrupts. Use interrupt-names "tx" for
10+ : the TX interrupt and "rx" for the RX interrupt.
11+
12+Example:
13+
14+ethernet@e10b308 {
15+ #address-cells = <1>;
16+ #size-cells = <0>;
17+ compatible = "lantiq,xrx200-net";
18+ reg = <0xe10b308 0xcf8>;
19+ interrupts = <73>, <72>;
20+ interrupt-names = "tx", "rx";
21+};
Documentation/devicetree/bindings/net/marvell,prestera.txt+2−2
@@ -2,7 +2,7 @@ Marvell Prestera Switch Chip bindings · 1 unmodified line
22 -------------------------------------
33
44 Required properties:
5−- compatible: one of the following
5+- compatible: must be "marvell,prestera" and one of the following
66 "marvell,prestera-98dx3236",
77 "marvell,prestera-98dx3336",
88 "marvell,prestera-98dx4251",
@@ -21,7 +21,7 @@ switch { · 12 unmodified lines
2121 ranges = <0 MBUS_ID(0x03, 0x00) 0 0x100000>;
2222
2323 packet-processor@0 {
24− compatible = "marvell,prestera-98dx3236";
24+ compatible = "marvell,prestera-98dx3236", "marvell,prestera";
2525 reg = <0 0x4000000>;
2626 interrupts = <33>, <34>, <35>;
2727 dfx = <&dfx>;
Documentation/devicetree/bindings/net/marvell-pp2.txt+31−14
@@ -31,7 +31,7 @@ required. · 30 unmodified lines
3131
3232 Required properties (port):
3333
34−- interrupts: interrupt for the port
34+- interrupts: interrupt(s) for the port
3535 - port-id: ID of the port from the MAC point of view
3636 - gop-port-id: only for marvell,armada-7k-pp2, ID of the port from the
3737 GOP (Group Of Ports) point of view. This ID is used to index the
@@ -43,10 +43,12 @@ Optional properties (port): · 5 unmodified lines
4343 - marvell,loopback: port is loopback mode
4444 - phy: a phandle to a phy node defining the PHY address (as the reg
4545 property, a single integer).
46−- interrupt-names: if more than a single interrupt for rx is given, must
47− be the name associated to the interrupts listed. Valid
48− names are: "tx-cpu0", "tx-cpu1", "tx-cpu2", "tx-cpu3",
49− "rx-shared", "link".
46+- interrupt-names: if more than a single interrupt for is given, must be the
47+ name associated to the interrupts listed. Valid names are:
48+ "hifX", with X in [0..8], and "link". The names "tx-cpu0",
49+ "tx-cpu1", "tx-cpu2", "tx-cpu3" and "rx-shared" are supported
50+ for backward compatibility but shouldn't be used for new
51+ additions.
5052 - marvell,system-controller: a phandle to the system controller.
5153
5254 Example for marvell,armada-375-pp2:
@@ -89,9 +91,14 @@ cpm_ethernet: ethernet@0 { · 36 unmodified lines
8991 <ICU_GRP_NSR 43 IRQ_TYPE_LEVEL_HIGH>,
9092 <ICU_GRP_NSR 47 IRQ_TYPE_LEVEL_HIGH>,
9193 <ICU_GRP_NSR 51 IRQ_TYPE_LEVEL_HIGH>,
92− <ICU_GRP_NSR 55 IRQ_TYPE_LEVEL_HIGH>;
93− interrupt-names = "tx-cpu0", "tx-cpu1", "tx-cpu2",
94− "tx-cpu3", "rx-shared";
94+ <ICU_GRP_NSR 55 IRQ_TYPE_LEVEL_HIGH>,
95+ <ICU_GRP_NSR 59 IRQ_TYPE_LEVEL_HIGH>,
96+ <ICU_GRP_NSR 63 IRQ_TYPE_LEVEL_HIGH>,
97+ <ICU_GRP_NSR 67 IRQ_TYPE_LEVEL_HIGH>,
98+ <ICU_GRP_NSR 71 IRQ_TYPE_LEVEL_HIGH>,
99+ <ICU_GRP_NSR 129 IRQ_TYPE_LEVEL_HIGH>;
100+ interrupt-names = "hif0", "hif1", "hif2", "hif3", "hif4",
101+ "hif5", "hif6", "hif7", "hif8", "link";
95102 port-id = <0>;
96103 gop-port-id = <0>;
97104 };
@@ -101,9 +108,14 @@ cpm_ethernet: ethernet@0 { · 3 unmodified lines
101108 <ICU_GRP_NSR 44 IRQ_TYPE_LEVEL_HIGH>,
102109 <ICU_GRP_NSR 48 IRQ_TYPE_LEVEL_HIGH>,
103110 <ICU_GRP_NSR 52 IRQ_TYPE_LEVEL_HIGH>,
104− <ICU_GRP_NSR 56 IRQ_TYPE_LEVEL_HIGH>;
105− interrupt-names = "tx-cpu0", "tx-cpu1", "tx-cpu2",
106− "tx-cpu3", "rx-shared";
111+ <ICU_GRP_NSR 56 IRQ_TYPE_LEVEL_HIGH>,
112+ <ICU_GRP_NSR 60 IRQ_TYPE_LEVEL_HIGH>,
113+ <ICU_GRP_NSR 64 IRQ_TYPE_LEVEL_HIGH>,
114+ <ICU_GRP_NSR 68 IRQ_TYPE_LEVEL_HIGH>,
115+ <ICU_GRP_NSR 72 IRQ_TYPE_LEVEL_HIGH>,
116+ <ICU_GRP_NSR 128 IRQ_TYPE_LEVEL_HIGH>;
117+ interrupt-names = "hif0", "hif1", "hif2", "hif3", "hif4",
118+ "hif5", "hif6", "hif7", "hif8", "link";
107119 port-id = <1>;
108120 gop-port-id = <2>;
109121 };
@@ -113,9 +125,14 @@ cpm_ethernet: ethernet@0 { · 3 unmodified lines
113125 <ICU_GRP_NSR 45 IRQ_TYPE_LEVEL_HIGH>,
114126 <ICU_GRP_NSR 49 IRQ_TYPE_LEVEL_HIGH>,
115127 <ICU_GRP_NSR 53 IRQ_TYPE_LEVEL_HIGH>,
116− <ICU_GRP_NSR 57 IRQ_TYPE_LEVEL_HIGH>;
117− interrupt-names = "tx-cpu0", "tx-cpu1", "tx-cpu2",
118− "tx-cpu3", "rx-shared";
128+ <ICU_GRP_NSR 57 IRQ_TYPE_LEVEL_HIGH>,
129+ <ICU_GRP_NSR 61 IRQ_TYPE_LEVEL_HIGH>,
130+ <ICU_GRP_NSR 65 IRQ_TYPE_LEVEL_HIGH>,
131+ <ICU_GRP_NSR 69 IRQ_TYPE_LEVEL_HIGH>,
132+ <ICU_GRP_NSR 73 IRQ_TYPE_LEVEL_HIGH>,
133+ <ICU_GRP_NSR 127 IRQ_TYPE_LEVEL_HIGH>;
134+ interrupt-names = "hif0", "hif1", "hif2", "hif3", "hif4",
135+ "hif5", "hif6", "hif7", "hif8", "link";
119136 port-id = <2>;
120137 gop-port-id = <3>;
121138 };
Documentation/devicetree/bindings/net/micrel-ksz90x1.txt+27−1
@@ -1,4 +1,4 @@
1−Micrel KSZ9021/KSZ9031 Gigabit Ethernet PHY
1+Micrel KSZ9021/KSZ9031/KSZ9131 Gigabit Ethernet PHY
22
33 Some boards require special tuning values, particularly when it comes
44 to clock delays. You can specify clock delay values in the PHY OF
@@ -64,6 +64,32 @@ KSZ9031: · 59 unmodified lines
6464 Attention: The link partner must be configurable as slave otherwise
6565 no link will be established.
6666
67+KSZ9131:
68+
69+ All skew control options are specified in picoseconds. The increment
70+ step is 100ps. Unlike KSZ9031, the values represent picoseccond delays.
71+ A negative value can be assigned as rxc-skew-psec = <(-100)>;.
72+
73+ Optional properties:
74+
75+ Range of the value -700 to 2400, default value 0:
76+
77+ - rxc-skew-psec : Skew control of RX clock pad
78+ - txc-skew-psec : Skew control of TX clock pad
79+
80+ Range of the value -700 to 800, default value 0:
81+
82+ - rxdv-skew-psec : Skew control of RX CTL pad
83+ - txen-skew-psec : Skew control of TX CTL pad
84+ - rxd0-skew-psec : Skew control of RX data 0 pad
85+ - rxd1-skew-psec : Skew control of RX data 1 pad
86+ - rxd2-skew-psec : Skew control of RX data 2 pad
87+ - rxd3-skew-psec : Skew control of RX data 3 pad
88+ - txd0-skew-psec : Skew control of TX data 0 pad
89+ - txd1-skew-psec : Skew control of TX data 1 pad
90+ - txd2-skew-psec : Skew control of TX data 2 pad
91+ - txd3-skew-psec : Skew control of TX data 3 pad
92+
6793 Examples:
6894
6995 mdio {
Documentation/devicetree/bindings/net/mscc-ocelot.txt+3−6
@@ -12,7 +12,6 @@ Required properties: · 11 unmodified lines
1212 - "sys"
1313 - "rew"
1414 - "qs"
15− - "hsio"
1615 - "qsys"
1716 - "ana"
1817 - "portX" with X from 0 to the number of last port index available on that
@@ -45,7 +44,6 @@ Example: · 26 unmodified lines
4544 reg = <0x1010000 0x10000>,
4645 <0x1030000 0x10000>,
4746 <0x1080000 0x100>,
48− <0x10d0000 0x10000>,
4947 <0x11e0000 0x100>,
5048 <0x11f0000 0x100>,
5149 <0x1200000 0x100>,
@@ -59,10 +57,9 @@ Example: · 7 unmodified lines
5957 <0x1280000 0x100>,
6058 <0x1800000 0x80000>,
6159 <0x1880000 0x10000>;
62− reg-names = "sys", "rew", "qs", "hsio", "port0",
63− "port1", "port2", "port3", "port4", "port5",
64− "port6", "port7", "port8", "port9", "port10",
65− "qsys", "ana";
60+ reg-names = "sys", "rew", "qs", "port0", "port1", "port2",
61+ "port3", "port4", "port5", "port6", "port7",
62+ "port8", "port9", "port10", "qsys", "ana";
6663 interrupts = <21 22>;
6764 interrupt-names = "xtr", "inj";
6865
Documentation/devicetree/bindings/net/mscc-phy-vsc8531.txt+9−12
@@ -1,10 +1,5 @@
11 * Microsemi - vsc8531 Giga bit ethernet phy
22
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−
83 Optional properties:
94 - vsc8531,vddmac : The vddmac in mV. Allowed values is listed
105 in the first row of Table 1 (below).
@@ -27,14 +22,16 @@ Optional properties: · 16 unmodified lines
2722 'vddmac'.
2823 Default value is 0%.
2924 Ref: Table:1 - Edge rate change (below).
30−- vsc8531,led-0-mode : LED mode. Specify how the LED[0] should behave.
31− Allowed values are define in
32− "include/dt-bindings/net/mscc-phy-vsc8531.h".
33− Default value is VSC8531_LINK_1000_ACTIVITY (1).
34−- vsc8531,led-1-mode : LED mode. Specify how the LED[1] should behave.
35− Allowed values are define in
25+- vsc8531,led-[N]-mode : LED mode. Specify how the LED[N] should behave.
26+ N depends on the number of LEDs supported by a
27+ PHY.
28+ Allowed values are defined in
3629 "include/dt-bindings/net/mscc-phy-vsc8531.h".
37− Default value is VSC8531_LINK_100_ACTIVITY (2).
30+ Default values are VSC8531_LINK_1000_ACTIVITY (1),
31+ VSC8531_LINK_100_ACTIVITY (2),
32+ VSC8531_LINK_ACTIVITY (0) and
33+ VSC8531_DUPLEX_COLLISION (8).
34+
3835
3936 Table: 1 - Edge rate change
4037 ----------------------------------------------------------------|
Documentation/devicetree/bindings/net/renesas,ravb.txt+1−0
@@ -6,6 +6,7 @@ interface contains. · 5 unmodified lines
66 Required properties:
77 - compatible: Must contain one or more of the following:
88 - "renesas,etheravb-r8a7743" for the R8A7743 SoC.
9+ - "renesas,etheravb-r8a7744" for the R8A7744 SoC.
910 - "renesas,etheravb-r8a7745" for the R8A7745 SoC.
1011 - "renesas,etheravb-r8a77470" for the R8A77470 SoC.
1112 - "renesas,etheravb-r8a7790" for the R8A7790 SoC.
Documentation/devicetree/bindings/net/wireless/qcom,ath10k.txt+6−0
@@ -56,6 +56,11 @@ Optional properties: · 55 unmodified lines
5656 the length can vary between hw versions.
5757 - <supply-name>-supply: handle to the regulator device tree node
5858 optional "supply-name" is "vdd-0.8-cx-mx".
59+- memory-region:
60+ Usage: optional
61+ Value type: <phandle>
62+ Definition: reference to the reserved-memory for the msa region
63+ used by the wifi firmware running in Q6.
5964
6065 Example (to supply the calibration data alone):
6166
@@ -149,4 +154,5 @@ wifi@18000000 { · 87 unmodified lines
149154 <0 140 0 /* CE10 */ >,
150155 <0 141 0 /* CE11 */ >;
151156 vdd-0.8-cx-mx-supply = <&pm8998_l5>;
157+ memory-region = <&wifi_msa_mem>;
152158 };
Documentation/devicetree/bindings/nvmem/allwinner,sunxi-sid.txt+1−0
@@ -7,6 +7,7 @@ Required properties: · 6 unmodified lines
77 "allwinner,sun8i-a83t-sid"
88 "allwinner,sun8i-h3-sid"
99 "allwinner,sun50i-a64-sid"
10+ "allwinner,sun50i-h5-sid"
1011
1112 - reg: Should contain registers location and length
1213
Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.txt+1−0
@@ -50,6 +50,7 @@ Additional required properties for imx7d-pcie: · 49 unmodified lines
5050 - reset-names: Must contain the following entires:
5151 - "pciephy"
5252 - "apps"
53+ - "turnoff"
5354
5455 Example:
5556
Documentation/devicetree/bindings/pci/pci-keystone.txt+3−0
@@ -19,6 +19,9 @@ pcie_msi_intc : Interrupt controller device node for MSI IRQ chip · 18 unmodified lines
1919 interrupt-cells: should be set to 1
2020 interrupts: GIC interrupt lines connected to PCI MSI interrupt lines
2121
22+ti,syscon-pcie-id : phandle to the device control module required to set device
23+ id and vendor id.
24+
2225 Example:
2326 pcie_msi_intc: msi-interrupt-controller {
2427 interrupt-controller;
Documentation/devicetree/bindings/pci/pci-rcar-gen2.txt+1−0
@@ -7,6 +7,7 @@ OHCI and EHCI controllers. · 6 unmodified lines
77
88 Required properties:
99 - compatible: "renesas,pci-r8a7743" for the R8A7743 SoC;
10+ "renesas,pci-r8a7744" for the R8A7744 SoC;
1011 "renesas,pci-r8a7745" for the R8A7745 SoC;
1112 "renesas,pci-r8a7790" for the R8A7790 SoC;
1213 "renesas,pci-r8a7791" for the R8A7791 SoC;
Documentation/devicetree/bindings/pci/rcar-pci.txt+2−0
@@ -2,6 +2,7 @@ · 1 unmodified line
22
33 Required properties:
44 compatible: "renesas,pcie-r8a7743" for the R8A7743 SoC;
5+ "renesas,pcie-r8a7744" for the R8A7744 SoC;
56 "renesas,pcie-r8a7779" for the R8A7779 SoC;
67 "renesas,pcie-r8a7790" for the R8A7790 SoC;
78 "renesas,pcie-r8a7791" for the R8A7791 SoC;
@@ -9,6 +10,7 @@ compatible: "renesas,pcie-r8a7743" for the R8A7743 SoC; · 1 unmodified line
910 "renesas,pcie-r8a7795" for the R8A7795 SoC;
1011 "renesas,pcie-r8a7796" for the R8A7796 SoC;
1112 "renesas,pcie-r8a77980" for the R8A77980 SoC;
13+ "renesas,pcie-r8a77990" for the R8A77990 SoC;
1214 "renesas,pcie-rcar-gen2" for a generic R-Car Gen2 or
1315 RZ/G1 compatible device.
1416 "renesas,pcie-rcar-gen3" for a generic R-Car Gen3 compatible device.
Documentation/devicetree/bindings/pci/ti-pci.txt+5−0
@@ -26,6 +26,11 @@ HOST MODE · 25 unmodified lines
2626 ranges,
2727 interrupt-map-mask,
2828 interrupt-map : as specified in ../designware-pcie.txt
29+ - ti,syscon-unaligned-access: phandle to the syscon DT node. The 1st argument
30+ should contain the register offset within syscon
31+ and the 2nd argument should contain the bit field
32+ for setting the bit to enable unaligned
33+ access.
2934
3035 DEVICE MODE
3136 ===========
Documentation/devicetree/bindings/phy/brcm-sata-phy.txt+1−0
@@ -8,6 +8,7 @@ Required properties: · 7 unmodified lines
88 "brcm,iproc-nsp-sata-phy"
99 "brcm,phy-sata3"
1010 "brcm,iproc-sr-sata-phy"
11+ "brcm,bcm63138-sata-phy"
1112 - address-cells: should be 1
1213 - size-cells: should be 0
1314 - reg: register ranges for the PHY PCB interface
Documentation/devicetree/bindings/phy/phy-cadence-dp.txt+30−0
@@ -0,0 +1,30 @@
1+Cadence MHDP DisplayPort SD0801 PHY binding
2+===========================================
3+
4+This binding describes the Cadence SD0801 PHY hardware included with
5+the Cadence MHDP DisplayPort controller.
6+
7+-------------------------------------------------------------------------------
8+Required properties (controller (parent) node):
9+- compatible : Should be "cdns,dp-phy"
10+- reg : Defines the following sets of registers in the parent
11+ mhdp device:
12+ - Offset of the DPTX PHY configuration registers
13+ - Offset of the SD0801 PHY configuration registers
14+- #phy-cells : from the generic PHY bindings, must be 0.
15+
16+Optional properties:
17+- num_lanes : Number of DisplayPort lanes to use (1, 2 or 4)
18+- max_bit_rate : Maximum DisplayPort link bit rate to use, in Mbps (2160,
19+ 2430, 2700, 3240, 4320, 5400 or 8100)
20+-------------------------------------------------------------------------------
21+
22+Example:
23+ dp_phy: phy@f0fb030a00 {
24+ compatible = "cdns,dp-phy";
25+ reg = <0xf0 0xfb030a00 0x0 0x00000040>,
26+ <0xf0 0xfb500000 0x0 0x00100000>;
27+ num_lanes = <4>;
28+ max_bit_rate = <8100>;
29+ #phy-cells = <0>;
30+ };
Documentation/devicetree/bindings/phy/phy-ocelot-serdes.txt+43−0
@@ -0,0 +1,43 @@
1+Microsemi Ocelot SerDes muxing driver
2+-------------------------------------
3+
4+On Microsemi Ocelot, there is a handful of registers in HSIO address
5+space for setting up the SerDes to switch port muxing.
6+
7+A SerDes X can be "muxed" to work with switch port Y or Z for example.
8+One specific SerDes can also be used as a PCIe interface.
9+
10+Hence, a SerDes represents an interface, be it an Ethernet or a PCIe one.
11+
12+There are two kinds of SerDes: SERDES1G supports 10/100Mbps in
13+half/full-duplex and 1000Mbps in full-duplex mode while SERDES6G supports
14+10/100Mbps in half/full-duplex and 1000/2500Mbps in full-duplex mode.
15+
16+Also, SERDES6G number (aka "macro") 0 is the only interface supporting
17+QSGMII.
18+
19+This is a child of the HSIO syscon ("mscc,ocelot-hsio", see
20+Documentation/devicetree/bindings/mips/mscc.txt) on the Microsemi Ocelot.
21+
22+Required properties:
23+
24+- compatible: should be "mscc,vsc7514-serdes"
25+- #phy-cells : from the generic phy bindings, must be 2.
26+ The first number defines the input port to use for a given
27+ SerDes macro. The second defines the macro to use. They are
28+ defined in dt-bindings/phy/phy-ocelot-serdes.h
29+
30+Example:
31+
32+ serdes: serdes {
33+ compatible = "mscc,vsc7514-serdes";
34+ #phy-cells = <2>;
35+ };
36+
37+ ethernet {
38+ port1 {
39+ phy-handle = <&phy_foo>;
40+ /* Link SERDES1G_5 to port1 */
41+ phys = <&serdes 1 SERDES1G_5>;
42+ };
43+ };
Documentation/devicetree/bindings/phy/phy-rockchip-inno-hdmi.txt+43−0
@@ -0,0 +1,43 @@
1+ROCKCHIP HDMI PHY WITH INNO IP BLOCK
2+
3+Required properties:
4+ - compatible : should be one of the listed compatibles:
5+ * "rockchip,rk3228-hdmi-phy",
6+ * "rockchip,rk3328-hdmi-phy";
7+ - reg : Address and length of the hdmi phy control register set
8+ - clocks : phandle + clock specifier for the phy clocks
9+ - clock-names : string, clock name, must contain "sysclk" for system
10+ control and register configuration, "refoclk" for crystal-
11+ oscillator reference PLL clock input and "refpclk" for pclk-
12+ based refeference PLL clock input.
13+ - #clock-cells: should be 0.
14+ - clock-output-names : shall be the name for the output clock.
15+ - interrupts : phandle + interrupt specified for the hdmiphy interrupt
16+ - #phy-cells : must be 0. See ./phy-bindings.txt for details.
17+
18+Optional properties for rk3328-hdmi-phy:
19+ - nvmem-cells = phandle + nvmem specifier for the cpu-version efuse
20+ - nvmem-cell-names : "cpu-version" to read the chip version, required
21+ for adjustment to some frequency settings
22+
23+Example:
24+ hdmi_phy: hdmi-phy@12030000 {
25+ compatible = "rockchip,rk3228-hdmi-phy";
26+ reg = <0x12030000 0x10000>;
27+ #phy-cells = <0>;
28+ clocks = <&cru PCLK_HDMI_PHY>, <&xin24m>, <&cru DCLK_HDMIPHY>;
29+ clock-names = "sysclk", "refoclk", "refpclk";
30+ #clock-cells = <0>;
31+ clock-output-names = "hdmi_phy";
32+ status = "disabled";
33+ };
34+
35+Then the PHY can be used in other nodes such as:
36+
37+ hdmi: hdmi@200a0000 {
38+ compatible = "rockchip,rk3228-dw-hdmi";
39+ ...
40+ phys = <&hdmi_phy>;
41+ phy-names = "hdmi";
42+ ...
43+ };
Documentation/devicetree/bindings/phy/qcom-qmp-phy.txt+14−9
@@ -10,16 +10,20 @@ Required properties: · 9 unmodified lines
1010 "qcom,msm8996-qmp-pcie-phy" for 14nm PCIe phy on msm8996,
1111 "qcom,msm8996-qmp-usb3-phy" for 14nm USB3 phy on msm8996,
1212 "qcom,sdm845-qmp-usb3-phy" for USB3 QMP V3 phy on sdm845,
13− "qcom,sdm845-qmp-usb3-uni-phy" for USB3 QMP V3 UNI phy on sdm845.
13+ "qcom,sdm845-qmp-usb3-uni-phy" for USB3 QMP V3 UNI phy on sdm845,
14+ "qcom,sdm845-qmp-ufs-phy" for UFS QMP phy on sdm845.
1415
15− - reg:
16− - For "qcom,sdm845-qmp-usb3-phy":
17− - index 0: address and length of register set for PHY's common serdes
18− block.
19− - named register "dp_com" (using reg-names): address and length of the
20− DP_COM control block.
21− - For all others:
22− - offset and length of register set for PHY's common serdes block.
16+- reg:
17+ - index 0: address and length of register set for PHY's common
18+ serdes block.
19+ - index 1: address and length of the DP_COM control block (for
20+ "qcom,sdm845-qmp-usb3-phy" only).
21+
22+- reg-names:
23+ - For "qcom,sdm845-qmp-usb3-phy":
24+ - Should be: "reg-base", "dp_com"
25+ - For all others:
26+ - The reg-names property shouldn't be defined.
2327
2428 - #clock-cells: must be 1
2529 - Phy pll outputs a bunch of clocks for Tx, Rx and Pipe
@@ -35,6 +39,7 @@ Required properties: · 9 unmodified lines
3539 "aux" for phy aux clock,
3640 "ref" for 19.2 MHz ref clk,
3741 "com_aux" for phy common block aux clock,
42+ "ref_aux" for phy reference aux clock,
3843 For "qcom,msm8996-qmp-pcie-phy" must contain:
3944 "aux", "cfg_ahb", "ref".
4045 For "qcom,msm8996-qmp-usb3-phy" must contain:
Documentation/devicetree/bindings/phy/rcar-gen2-phy.txt+1−0
@@ -5,6 +5,7 @@ This file provides information on what the device node for the R-Car generation · 4 unmodified lines
55
66 Required properties:
77 - compatible: "renesas,usb-phy-r8a7743" if the device is a part of R8A7743 SoC.
8+ "renesas,usb-phy-r8a7744" if the device is a part of R8A7744 SoC.
89 "renesas,usb-phy-r8a7745" if the device is a part of R8A7745 SoC.
910 "renesas,usb-phy-r8a7790" if the device is a part of R8A7790 SoC.
1011 "renesas,usb-phy-r8a7791" if the device is a part of R8A7791 SoC.
Documentation/devicetree/bindings/phy/rcar-gen3-phy-usb2.txt+8−3
@@ -1,10 +1,12 @@
11 * Renesas R-Car generation 3 USB 2.0 PHY
22
33 This file provides information on what the device node for the R-Car generation
4−3 USB 2.0 PHY contains.
4+3 and RZ/G2 USB 2.0 PHY contain.
55
66 Required properties:
7−- compatible: "renesas,usb2-phy-r8a7795" if the device is a part of an R8A7795
7+- compatible: "renesas,usb2-phy-r8a774a1" if the device is a part of an R8A774A1
8+ SoC.
9+ "renesas,usb2-phy-r8a7795" if the device is a part of an R8A7795
810 SoC.
911 "renesas,usb2-phy-r8a7796" if the device is a part of an R8A7796
1012 SoC.
@@ -14,7 +16,8 @@ Required properties: · 3 unmodified lines
1416 R8A77990 SoC.
1517 "renesas,usb2-phy-r8a77995" if the device is a part of an
1618 R8A77995 SoC.
17− "renesas,rcar-gen3-usb2-phy" for a generic R-Car Gen3 compatible device.
19+ "renesas,rcar-gen3-usb2-phy" for a generic R-Car Gen3 or RZ/G2
20+ compatible device.
1821
1922 When compatible with the generic version, nodes must list the
2023 SoC-specific version corresponding to the platform first
@@ -31,6 +34,8 @@ channel as USB OTG: · 10 unmodified lines
3134 - interrupts: interrupt specifier for the PHY.
3235 - vbus-supply: Phandle to a regulator that provides power to the VBUS. This
3336 regulator will be managed during the PHY power on/off sequence.
37+- renesas,no-otg-pins: boolean, specify when a board does not provide proper
38+ otg pins.
3439
3540 Example (R-Car H3):
3641
Documentation/devicetree/bindings/phy/rcar-gen3-phy-usb3.txt+6−4
@@ -1,20 +1,22 @@
11 * Renesas R-Car generation 3 USB 3.0 PHY
22
33 This file provides information on what the device node for the R-Car generation
4−3 USB 3.0 PHY contains.
4+3 and RZ/G2 USB 3.0 PHY contain.
55 If you want to enable spread spectrum clock (ssc), you should use USB_EXTAL
66 instead of USB3_CLK. However, if you don't want to these features, you don't
77 need this driver.
88
99 Required properties:
10−- compatible: "renesas,r8a7795-usb3-phy" if the device is a part of an R8A7795
10+- compatible: "renesas,r8a774a1-usb3-phy" if the device is a part of an R8A774A1
11+ SoC.
12+ "renesas,r8a7795-usb3-phy" if the device is a part of an R8A7795
1113 SoC.
1214 "renesas,r8a7796-usb3-phy" if the device is a part of an R8A7796
1315 SoC.
1416 "renesas,r8a77965-usb3-phy" if the device is a part of an
1517 R8A77965 SoC.
16− "renesas,rcar-gen3-usb3-phy" for a generic R-Car Gen3 compatible
17− device.
18+ "renesas,rcar-gen3-usb3-phy" for a generic R-Car Gen3 or RZ/G2
19+ compatible device.
1820
1921 When compatible with the generic version, nodes must list the
2022 SoC-specific version corresponding to the platform first
Documentation/devicetree/bindings/phy/uniphier-pcie-phy.txt+31−0
@@ -0,0 +1,31 @@
1+Socionext UniPhier PCIe PHY bindings
2+
3+This describes the devicetree bindings for PHY interface built into
4+PCIe controller implemented on Socionext UniPhier SoCs.
5+
6+Required properties:
7+- compatible: Should contain one of the following:
8+ "socionext,uniphier-ld20-pcie-phy" - for LD20 PHY
9+ "socionext,uniphier-pxs3-pcie-phy" - for PXs3 PHY
10+- reg: Specifies offset and length of the register set for the device.
11+- #phy-cells: Must be zero.
12+- clocks: A phandle to the clock gate for PCIe glue layer including
13+ this phy.
14+- resets: A phandle to the reset line for PCIe glue layer including
15+ this phy.
16+
17+Optional properties:
18+- socionext,syscon: A phandle to system control to set configurations
19+ for phy.
20+
21+Refer to phy/phy-bindings.txt for the generic PHY binding properties.
22+
23+Example:
24+ pcie_phy: phy@66038000 {
25+ compatible = "socionext,uniphier-ld20-pcie-phy";
26+ reg = <0x66038000 0x4000>;
27+ #phy-cells = <0>;
28+ clocks = <&sys_clk 24>;
29+ resets = <&sys_rst 24>;
30+ socionext,syscon = <&soc_glue>;
31+ };
Documentation/devicetree/bindings/phy/uniphier-usb2-phy.txt+45−0
@@ -0,0 +1,45 @@
1+Socionext UniPhier USB2 PHY
2+
3+This describes the devicetree bindings for PHY interface built into
4+USB2 controller implemented on Socionext UniPhier SoCs.
5+
6+Pro4 SoC has both USB2 and USB3 host controllers, however, this USB3
7+controller doesn't include its own High-Speed PHY. This needs to specify
8+USB2 PHY instead of USB3 HS-PHY.
9+
10+Required properties:
11+- compatible: Should contain one of the following:
12+ "socionext,uniphier-pro4-usb2-phy" - for Pro4 SoC
13+ "socionext,uniphier-ld11-usb2-phy" - for LD11 SoC
14+
15+Sub-nodes:
16+Each PHY should be represented as a sub-node.
17+
18+Sub-nodes required properties:
19+- #phy-cells: Should be 0.
20+- reg: The number of the PHY.
21+
22+Sub-nodes optional properties:
23+- vbus-supply: A phandle to the regulator for USB VBUS.
24+
25+Refer to phy/phy-bindings.txt for the generic PHY binding properties.
26+
27+Example:
28+ soc-glue@5f800000 {
29+ ...
30+ usb-phy {
31+ compatible = "socionext,uniphier-ld11-usb2-phy";
32+ usb_phy0: phy@0 {
33+ reg = <0>;
34+ #phy-cells = <0>;
35+ };
36+ ...
37+ };
38+ };
39+
40+ usb@5a800100 {
41+ compatible = "socionext,uniphier-ehci", "generic-ehci";
42+ ...
43+ phy-names = "usb";
44+ phys = <&usb_phy0>;
45+ };
Documentation/devicetree/bindings/phy/uniphier-usb3-hsphy.txt+69−0
@@ -0,0 +1,69 @@
1+Socionext UniPhier USB3 High-Speed (HS) PHY
2+
3+This describes the devicetree bindings for PHY interfaces built into
4+USB3 controller implemented on Socionext UniPhier SoCs.
5+Although the controller includes High-Speed PHY and Super-Speed PHY,
6+this describes about High-Speed PHY.
7+
8+Required properties:
9+- compatible: Should contain one of the following:
10+ "socionext,uniphier-pro4-usb3-hsphy" - for Pro4 SoC
11+ "socionext,uniphier-pxs2-usb3-hsphy" - for PXs2 SoC
12+ "socionext,uniphier-ld20-usb3-hsphy" - for LD20 SoC
13+ "socionext,uniphier-pxs3-usb3-hsphy" - for PXs3 SoC
14+- reg: Specifies offset and length of the register set for the device.
15+- #phy-cells: Should be 0.
16+- clocks: A list of phandles to the clock gate for USB3 glue layer.
17+ According to the clock-names, appropriate clocks are required.
18+- clock-names: Should contain the following:
19+ "gio", "link" - for Pro4 SoC
20+ "phy", "phy-ext", "link" - for PXs3 SoC, "phy-ext" is optional.
21+ "phy", "link" - for others
22+- resets: A list of phandles to the reset control for USB3 glue layer.
23+ According to the reset-names, appropriate resets are required.
24+- reset-names: Should contain the following:
25+ "gio", "link" - for Pro4 SoC
26+ "phy", "link" - for others
27+
28+Optional properties:
29+- vbus-supply: A phandle to the regulator for USB VBUS.
30+- nvmem-cells: Phandles to nvmem cell that contains the trimming data.
31+ Available only for HS-PHY implemented on LD20 and PXs3, and
32+ if unspecified, default value is used.
33+- nvmem-cell-names: Should be the following names, which correspond to
34+ each nvmem-cells.
35+ All of the 3 parameters associated with the following names are
36+ required for each port, if any one is omitted, the trimming data
37+ of the port will not be set at all.
38+ "rterm", "sel_t", "hs_i" - Each cell name for phy parameters
39+
40+Refer to phy/phy-bindings.txt for the generic PHY binding properties.
41+
42+Example:
43+
44+ usb-glue@65b00000 {
45+ compatible = "socionext,uniphier-ld20-dwc3-glue",
46+ "simple-mfd";
47+ #address-cells = <1>;
48+ #size-cells = <1>;
49+ ranges = <0 0x65b00000 0x400>;
50+
51+ usb_vbus0: regulator {
52+ ...
53+ };
54+
55+ usb_hsphy0: hs-phy@200 {
56+ compatible = "socionext,uniphier-ld20-usb3-hsphy";
57+ reg = <0x200 0x10>;
58+ #phy-cells = <0>;
59+ clock-names = "link", "phy";
60+ clocks = <&sys_clk 14>, <&sys_clk 16>;
61+ reset-names = "link", "phy";
62+ resets = <&sys_rst 14>, <&sys_rst 16>;
63+ vbus-supply = <&usb_vbus0>;
64+ nvmem-cell-names = "rterm", "sel_t", "hs_i";
65+ nvmem-cells = <&usb_rterm0>, <&usb_sel_t0>,
66+ <&usb_hs_i0>;
67+ };
68+ ...
69+ };
Documentation/devicetree/bindings/phy/uniphier-usb3-ssphy.txt+57−0
@@ -0,0 +1,57 @@
1+Socionext UniPhier USB3 Super-Speed (SS) PHY
2+
3+This describes the devicetree bindings for PHY interfaces built into
4+USB3 controller implemented on Socionext UniPhier SoCs.
5+Although the controller includes High-Speed PHY and Super-Speed PHY,
6+this describes about Super-Speed PHY.
7+
8+Required properties:
9+- compatible: Should contain one of the following:
10+ "socionext,uniphier-pro4-usb3-ssphy" - for Pro4 SoC
11+ "socionext,uniphier-pxs2-usb3-ssphy" - for PXs2 SoC
12+ "socionext,uniphier-ld20-usb3-ssphy" - for LD20 SoC
13+ "socionext,uniphier-pxs3-usb3-ssphy" - for PXs3 SoC
14+- reg: Specifies offset and length of the register set for the device.
15+- #phy-cells: Should be 0.
16+- clocks: A list of phandles to the clock gate for USB3 glue layer.
17+ According to the clock-names, appropriate clocks are required.
18+- clock-names:
19+ "gio", "link" - for Pro4 SoC
20+ "phy", "phy-ext", "link" - for PXs3 SoC, "phy-ext" is optional.
21+ "phy", "link" - for others
22+- resets: A list of phandles to the reset control for USB3 glue layer.
23+ According to the reset-names, appropriate resets are required.
24+- reset-names:
25+ "gio", "link" - for Pro4 SoC
26+ "phy", "link" - for others
27+
28+Optional properties:
29+- vbus-supply: A phandle to the regulator for USB VBUS.
30+
31+Refer to phy/phy-bindings.txt for the generic PHY binding properties.
32+
33+Example:
34+
35+ usb-glue@65b00000 {
36+ compatible = "socionext,uniphier-ld20-dwc3-glue",
37+ "simple-mfd";
38+ #address-cells = <1>;
39+ #size-cells = <1>;
40+ ranges = <0 0x65b00000 0x400>;
41+
42+ usb_vbus0: regulator {
43+ ...
44+ };
45+
46+ usb_ssphy0: ss-phy@300 {
47+ compatible = "socionext,uniphier-ld20-usb3-ssphy";
48+ reg = <0x300 0x10>;
49+ #phy-cells = <0>;
50+ clock-names = "link", "phy";
51+ clocks = <&sys_clk 14>, <&sys_clk 16>;
52+ reset-names = "link", "phy";
53+ resets = <&sys_rst 14>, <&sys_rst 16>;
54+ vbus-supply = <&usb_vbus0>;
55+ };
56+ ...
57+ };
Documentation/devicetree/bindings/pinctrl/brcm,bcm4708-pinmux.txt+57−0
@@ -0,0 +1,57 @@
1+Broadcom Northstar pins mux controller
2+
3+Some of Northstar SoCs's pins can be used for various purposes thanks to the mux
4+controller. This binding allows describing mux controller and listing available
5+functions. They can be referenced later by other bindings to let system
6+configure controller correctly.
7+
8+A list of pins varies across chipsets so few bindings are available.
9+
10+Required properties:
11+- compatible: must be one of:
12+ "brcm,bcm4708-pinmux"
13+ "brcm,bcm4709-pinmux"
14+ "brcm,bcm53012-pinmux"
15+- reg: iomem address range of CRU (Central Resource Unit) pin registers
16+- reg-names: "cru_gpio_control" - the only needed & supported reg right now
17+
18+Functions and their groups available for all chipsets:
19+- "spi": "spi_grp"
20+- "i2c": "i2c_grp"
21+- "pwm": "pwm0_grp", "pwm1_grp", "pwm2_grp", "pwm3_grp"
22+- "uart1": "uart1_grp"
23+
24+Additionally available on BCM4709 and BCM53012:
25+- "mdio": "mdio_grp"
26+- "uart2": "uart2_grp"
27+- "sdio": "sdio_pwr_grp", "sdio_1p8v_grp"
28+
29+For documentation of subnodes see:
30+Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt
31+
32+Example:
33+ dmu@1800c000 {
34+ compatible = "simple-bus";
35+ ranges = <0 0x1800c000 0x1000>;
36+ #address-cells = <1>;
37+ #size-cells = <1>;
38+
39+ cru@100 {
40+ compatible = "simple-bus";
41+ reg = <0x100 0x1a4>;
42+ ranges;
43+ #address-cells = <1>;
44+ #size-cells = <1>;
45+
46+ pin-controller@1c0 {
47+ compatible = "brcm,bcm4708-pinmux";
48+ reg = <0x1c0 0x24>;
49+ reg-names = "cru_gpio_control";
50+
51+ spi-pins {
52+ function = "spi";
53+ groups = "spi_grp";
54+ };
55+ };
56+ };
57+ };
Documentation/devicetree/bindings/pinctrl/ingenic,pinctrl.txt+35−4
@@ -20,16 +20,30 @@ Required properties: · 19 unmodified lines
2020
2121 - compatible: One of:
2222 - "ingenic,jz4740-pinctrl"
23+ - "ingenic,jz4725b-pinctrl"
2324 - "ingenic,jz4770-pinctrl"
2425 - "ingenic,jz4780-pinctrl"
2526 - reg: Address range of the pinctrl registers.
2627
2728
28−GPIO sub-nodes
29−--------------
29+Required properties for sub-nodes (GPIO chips):
30+-----------------------------------------------
3031
31−The pinctrl node can have optional sub-nodes for the Ingenic GPIO driver;
32−please refer to ../gpio/ingenic,gpio.txt.
32+ - compatible: Must contain one of:
33+ - "ingenic,jz4740-gpio"
34+ - "ingenic,jz4770-gpio"
35+ - "ingenic,jz4780-gpio"
36+ - reg: The GPIO bank number.
37+ - interrupt-controller: Marks the device node as an interrupt controller.
38+ - interrupts: Interrupt specifier for the controllers interrupt.
39+ - #interrupt-cells: Should be 2. Refer to
40+ ../interrupt-controller/interrupts.txt for more details.
41+ - gpio-controller: Marks the device node as a GPIO controller.
42+ - #gpio-cells: Should be 2. The first cell is the GPIO number and the second
43+ cell specifies GPIO flags, as defined in <dt-bindings/gpio/gpio.h>. Only the
44+ GPIO_ACTIVE_HIGH and GPIO_ACTIVE_LOW flags are supported.
45+ - gpio-ranges: Range of pins managed by the GPIO controller. Refer to
46+ ../gpio/gpio.txt for more details.
3347
3448
3549 Example:
@@ -38,4 +52,21 @@ Example: · 2 unmodified lines
3852 pinctrl: pin-controller@10010000 {
3953 compatible = "ingenic,jz4740-pinctrl";
4054 reg = <0x10010000 0x400>;
55+ #address-cells = <1>;
56+ #size-cells = <0>;
57+
58+ gpa: gpio@0 {
59+ compatible = "ingenic,jz4740-gpio";
60+ reg = <0>;
61+
62+ gpio-controller;
63+ gpio-ranges = <&pinctrl 0 0 32>;
64+ #gpio-cells = <2>;
65+
66+ interrupt-controller;
67+ #interrupt-cells = <2>;
68+
69+ interrupt-parent = <&intc>;
70+ interrupts = <28>;
71+ };
4172 };
Documentation/devicetree/bindings/pinctrl/meson,pinctrl.txt+2−0
@@ -13,6 +13,8 @@ Required properties for the root node: · 12 unmodified lines
1313 "amlogic,meson-gxl-aobus-pinctrl"
1414 "amlogic,meson-axg-periphs-pinctrl"
1515 "amlogic,meson-axg-aobus-pinctrl"
16+ "amlogic,meson-g12a-periphs-pinctrl"
17+ "amlogic,meson-g12a-aobus-pinctrl"
1618 - reg: address and size of registers controlling irq functionality
1719
1820 === GPIO sub-nodes ===
Documentation/devicetree/bindings/pinctrl/nuvoton,npcm7xx-pinctrl.txt+216−0
@@ -0,0 +1,216 @@
1+Nuvoton NPCM7XX Pin Controllers
2+
3+The Nuvoton BMC NPCM7XX Pin Controller multi-function routed through
4+the multiplexing block, Each pin supports GPIO functionality (GPIOx)
5+and multiple functions that directly connect the pin to different
6+hardware blocks.
7+
8+Required properties:
9+- #address-cells : should be 1.
10+- #size-cells : should be 1.
11+- compatible : "nuvoton,npcm750-pinctrl" for Poleg NPCM7XX.
12+- ranges : defines mapping ranges between pin controller node (parent)
13+ to GPIO bank node (children).
14+
15+=== GPIO Bank Subnode ===
16+
17+The NPCM7XX has 8 GPIO Banks each GPIO bank supports 32 GPIO.
18+
19+Required GPIO Bank subnode-properties:
20+- reg : specifies physical base address and size of the GPIO
21+ bank registers.
22+- gpio-controller : Marks the device node as a GPIO controller.
23+- #gpio-cells : Must be <2>. The first cell is the gpio pin number
24+ and the second cell is used for optional parameters.
25+- interrupts : contain the GPIO bank interrupt with flags for falling edge.
26+- gpio-ranges : defines the range of pins managed by the GPIO bank controller.
27+
28+For example, GPIO bank subnodes like the following:
29+ gpio0: gpio@f0010000 {
30+ gpio-controller;
31+ #gpio-cells = <2>;
32+ reg = <0x0 0x80>;
33+ interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
34+ gpio-ranges = <&pinctrl 0 0 32>;
35+ };
36+
37+=== Pin Mux Subnode ===
38+
39+- pin: A string containing the name of the pin
40+ An array of strings, each string containing the name of a pin.
41+ These pin are used for selecting pin configuration.
42+
43+The following are the list of pins available:
44+ "GPIO0/IOX1DI", "GPIO1/IOX1LD", "GPIO2/IOX1CK", "GPIO3/IOX1D0",
45+ "GPIO4/IOX2DI/SMB1DSDA", "GPIO5/IOX2LD/SMB1DSCL", "GPIO6/IOX2CK/SMB2DSDA",
46+ "GPIO7/IOX2D0/SMB2DSCL", "GPIO8/LKGPO1", "GPIO9/LKGPO2", "GPIO10/IOXHLD",
47+ "GPIO11/IOXHCK", "GPIO12/GSPICK/SMB5BSCL", "GPIO13/GSPIDO/SMB5BSDA",
48+ "GPIO14/GSPIDI/SMB5CSCL", "GPIO15/GSPICS/SMB5CSDA", "GPIO16/LKGPO0",
49+ "GPIO17/PSPI2DI/SMB4DEN","GPIO18/PSPI2D0/SMB4BSDA", "GPIO19/PSPI2CK/SMB4BSCL",
50+ "GPIO20/SMB4CSDA/SMB15SDA", "GPIO21/SMB4CSCL/SMB15SCL", "GPIO22/SMB4DSDA/SMB14SDA",
51+ "GPIO23/SMB4DSCL/SMB14SCL", "GPIO24/IOXHDO", "GPIO25/IOXHDI", "GPIO26/SMB5SDA",
52+ "GPIO27/SMB5SCL", "GPIO28/SMB4SDA", "GPIO29/SMB4SCL", "GPIO30/SMB3SDA",
53+ "GPIO31/SMB3SCL", "GPIO32/nSPI0CS1","SPI0D2", "SPI0D3", "GPIO37/SMB3CSDA",
54+ "GPIO38/SMB3CSCL", "GPIO39/SMB3BSDA", "GPIO40/SMB3BSCL", "GPIO41/BSPRXD",
55+ "GPO42/BSPTXD/STRAP11", "GPIO43/RXD1/JTMS2/BU1RXD", "GPIO44/nCTS1/JTDI2/BU1CTS",
56+ "GPIO45/nDCD1/JTDO2", "GPIO46/nDSR1/JTCK2", "GPIO47/nRI1/JCP_RDY2",
57+ "GPIO48/TXD2/BSPTXD", "GPIO49/RXD2/BSPRXD", "GPIO50/nCTS2", "GPO51/nRTS2/STRAP2",
58+ "GPIO52/nDCD2", "GPO53/nDTR2_BOUT2/STRAP1", "GPIO54/nDSR2", "GPIO55/nRI2",
59+ "GPIO56/R1RXERR", "GPIO57/R1MDC", "GPIO58/R1MDIO", "GPIO59/SMB3DSDA",
60+ "GPIO60/SMB3DSCL", "GPO61/nDTR1_BOUT1/STRAP6", "GPO62/nRTST1/STRAP5",
61+ "GPO63/TXD1/STRAP4", "GPIO64/FANIN0", "GPIO65/FANIN1", "GPIO66/FANIN2",
62+ "GPIO67/FANIN3", "GPIO68/FANIN4", "GPIO69/FANIN5", "GPIO70/FANIN6", "GPIO71/FANIN7",
63+ "GPIO72/FANIN8", "GPIO73/FANIN9", "GPIO74/FANIN10", "GPIO75/FANIN11",
64+ "GPIO76/FANIN12", "GPIO77/FANIN13","GPIO78/FANIN14", "GPIO79/FANIN15",
65+ "GPIO80/PWM0", "GPIO81/PWM1", "GPIO82/PWM2", "GPIO83/PWM3", "GPIO84/R2TXD0",
66+ "GPIO85/R2TXD1", "GPIO86/R2TXEN", "GPIO87/R2RXD0", "GPIO88/R2RXD1", "GPIO89/R2CRSDV",
67+ "GPIO90/R2RXERR", "GPIO91/R2MDC", "GPIO92/R2MDIO", "GPIO93/GA20/SMB5DSCL",
68+ "GPIO94/nKBRST/SMB5DSDA", "GPIO95/nLRESET/nESPIRST", "GPIO96/RG1TXD0",
69+ "GPIO97/RG1TXD1", "GPIO98/RG1TXD2", "GPIO99/RG1TXD3","GPIO100/RG1TXC",
70+ "GPIO101/RG1TXCTL", "GPIO102/RG1RXD0", "GPIO103/RG1RXD1", "GPIO104/RG1RXD2",
71+ "GPIO105/RG1RXD3", "GPIO106/RG1RXC", "GPIO107/RG1RXCTL", "GPIO108/RG1MDC",
72+ "GPIO109/RG1MDIO", "GPIO110/RG2TXD0/DDRV0", "GPIO111/RG2TXD1/DDRV1",
73+ "GPIO112/RG2TXD2/DDRV2", "GPIO113/RG2TXD3/DDRV3", "GPIO114/SMB0SCL",
74+ "GPIO115/SMB0SDA", "GPIO116/SMB1SCL", "GPIO117/SMB1SDA", "GPIO118/SMB2SCL",
75+ "GPIO119/SMB2SDA", "GPIO120/SMB2CSDA", "GPIO121/SMB2CSCL", "GPIO122/SMB2BSDA",
76+ "GPIO123/SMB2BSCL", "GPIO124/SMB1CSDA", "GPIO125/SMB1CSCL","GPIO126/SMB1BSDA",
77+ "GPIO127/SMB1BSCL", "GPIO128/SMB8SCL", "GPIO129/SMB8SDA", "GPIO130/SMB9SCL",
78+ "GPIO131/SMB9SDA", "GPIO132/SMB10SCL", "GPIO133/SMB10SDA","GPIO134/SMB11SCL",
79+ "GPIO135/SMB11SDA", "GPIO136/SD1DT0", "GPIO137/SD1DT1", "GPIO138/SD1DT2",
80+ "GPIO139/SD1DT3", "GPIO140/SD1CLK", "GPIO141/SD1WP", "GPIO142/SD1CMD",
81+ "GPIO143/SD1CD/SD1PWR", "GPIO144/PWM4", "GPIO145/PWM5", "GPIO146/PWM6",
82+ "GPIO147/PWM7", "GPIO148/MMCDT4", "GPIO149/MMCDT5", "GPIO150/MMCDT6",
83+ "GPIO151/MMCDT7", "GPIO152/MMCCLK", "GPIO153/MMCWP", "GPIO154/MMCCMD",
84+ "GPIO155/nMMCCD/nMMCRST", "GPIO156/MMCDT0", "GPIO157/MMCDT1", "GPIO158/MMCDT2",
85+ "GPIO159/MMCDT3", "GPIO160/CLKOUT/RNGOSCOUT", "GPIO161/nLFRAME/nESPICS",
86+ "GPIO162/SERIRQ", "GPIO163/LCLK/ESPICLK", "GPIO164/LAD0/ESPI_IO0",
87+ "GPIO165/LAD1/ESPI_IO1", "GPIO166/LAD2/ESPI_IO2", "GPIO167/LAD3/ESPI_IO3",
88+ "GPIO168/nCLKRUN/nESPIALERT", "GPIO169/nSCIPME", "GPIO170/nSMI", "GPIO171/SMB6SCL",
89+ "GPIO172/SMB6SDA", "GPIO173/SMB7SCL", "GPIO174/SMB7SDA", "GPIO175/PSPI1CK/FANIN19",
90+ "GPIO176/PSPI1DO/FANIN18", "GPIO177/PSPI1DI/FANIN17", "GPIO178/R1TXD0",
91+ "GPIO179/R1TXD1", "GPIO180/R1TXEN", "GPIO181/R1RXD0", "GPIO182/R1RXD1",
92+ "GPIO183/SPI3CK", "GPO184/SPI3D0/STRAP9", "GPO185/SPI3D1/STRAP10",
93+ "GPIO186/nSPI3CS0", "GPIO187/nSPI3CS1", "GPIO188/SPI3D2/nSPI3CS2",
94+ "GPIO189/SPI3D3/nSPI3CS3", "GPIO190/nPRD_SMI", "GPIO191", "GPIO192", "GPIO193/R1CRSDV",
95+ "GPIO194/SMB0BSCL", "GPIO195/SMB0BSDA", "GPIO196/SMB0CSCL", "GPIO197/SMB0DEN",
96+ "GPIO198/SMB0DSDA", "GPIO199/SMB0DSCL", "GPIO200/R2CK", "GPIO201/R1CK",
97+ "GPIO202/SMB0CSDA", "GPIO203/FANIN16", "GPIO204/DDC2SCL", "GPIO205/DDC2SDA",
98+ "GPIO206/HSYNC2", "GPIO207/VSYNC2", "GPIO208/RG2TXC/DVCK", "GPIO209/RG2TXCTL/DDRV4",
99+ "GPIO210/RG2RXD0/DDRV5", "GPIO211/RG2RXD1/DDRV6", "GPIO212/RG2RXD2/DDRV7",
100+ "GPIO213/RG2RXD3/DDRV8", "GPIO214/RG2RXC/DDRV9", "GPIO215/RG2RXCTL/DDRV10",
101+ "GPIO216/RG2MDC/DDRV11", "GPIO217/RG2MDIO/DVHSYNC", "GPIO218/nWDO1",
102+ "GPIO219/nWDO2", "GPIO220/SMB12SCL", "GPIO221/SMB12SDA", "GPIO222/SMB13SCL",
103+ "GPIO223/SMB13SDA", "GPIO224/SPIXCK", "GPO225/SPIXD0/STRAP12", "GPO226/SPIXD1/STRAP13",
104+ "GPIO227/nSPIXCS0", "GPIO228/nSPIXCS1", "GPO229/SPIXD2/STRAP3", "GPIO230/SPIXD3",
105+ "GPIO231/nCLKREQ", "GPI255/DACOSEL"
106+
107+Optional Properties:
108+ bias-disable, bias-pull-down, bias-pull-up, input-enable,
109+ input-disable, output-high, output-low, drive-push-pull,
110+ drive-open-drain, input-debounce, slew-rate, drive-strength
111+
112+ slew-rate valid arguments are:
113+ <0> - slow
114+ <1> - fast
115+ drive-strength valid arguments are:
116+ <2> - 2mA
117+ <4> - 4mA
118+ <8> - 8mA
119+ <12> - 12mA
120+ <16> - 16mA
121+ <24> - 24mA
122+
123+For example, pinctrl might have pinmux subnodes like the following:
124+
125+ gpio0_iox1d1_pin: gpio0-iox1d1-pin {
126+ pins = "GPIO0/IOX1DI";
127+ output-high;
128+ };
129+ gpio0_iox1ck_pin: gpio0-iox1ck-pin {
130+ pins = "GPIO2/IOX1CK";
131+ output_high;
132+ };
133+
134+=== Pin Group Subnode ===
135+
136+Required pin group subnode-properties:
137+- groups : A string containing the name of the group to mux.
138+- function: A string containing the name of the function to mux to the
139+ group.
140+
141+The following are the list of the available groups and functions :
142+ smb0, smb0b, smb0c, smb0d, smb0den, smb1, smb1b, smb1c, smb1d,
143+ smb2, smb2b, smb2c, smb2d, smb3, smb3b, smb3c, smb3d, smb4, smb4b,
144+ smb4c, smb4d, smb4den, smb5, smb5b, smb5c, smb5d, ga20kbc, smb6,
145+ smb7, smb8, smb9, smb10, smb11, smb12, smb13, smb14, smb15, fanin0,
146+ fanin1, fanin2, fanin3, fanin4, fanin5, fanin6, fanin7, fanin8,
147+ fanin9, fanin10, fanin11 fanin12 fanin13, fanin14, fanin15, faninx,
148+ pwm0, pwm1, pwm2, pwm3, pwm4, pwm5, pwm6, pwm7, rg1, rg1mdio, rg2,
149+ rg2mdio, ddr, uart1, uart2, bmcuart0a, bmcuart0b, bmcuart1, iox1,
150+ iox2, ioxh, gspi, mmc, mmcwp, mmccd, mmcrst, mmc8, r1, r1err, r1md,
151+ r2, r2err, r2md, sd1, sd1pwr, wdog1, wdog2, scipme, sci, serirq,
152+ jtag2, spix, spixcs1, pspi1, pspi2, ddc, clkreq, clkout, spi3, spi3cs1,
153+ spi3quad, spi3cs2, spi3cs3, spi0cs1, lpc, lpcclk, espi, lkgpo0, lkgpo1,
154+ lkgpo2, nprd_smi
155+
156+For example, pinctrl might have group subnodes like the following:
157+ r1err_pins: r1err-pins {
158+ groups = "r1err";
159+ function = "r1err";
160+ };
161+ r1md_pins: r1md-pins {
162+ groups = "r1md";
163+ function = "r1md";
164+ };
165+ r1_pins: r1-pins {
166+ groups = "r1";
167+ function = "r1";
168+ };
169+
170+Examples
171+========
172+pinctrl: pinctrl@f0800000 {
173+ #address-cells = <1>;
174+ #size-cells = <1>;
175+ compatible = "nuvoton,npcm750-pinctrl";
176+ ranges = <0 0xf0010000 0x8000>;
177+
178+ gpio0: gpio@f0010000 {
179+ gpio-controller;
180+ #gpio-cells = <2>;
181+ reg = <0x0 0x80>;
182+ interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
183+ gpio-ranges = <&pinctrl 0 0 32>;
184+ };
185+
186+ ....
187+
188+ gpio7: gpio@f0017000 {
189+ gpio-controller;
190+ #gpio-cells = <2>;
191+ reg = <0x7000 0x80>;
192+ interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
193+ gpio-ranges = <&pinctrl 0 224 32>;
194+ };
195+
196+ gpio0_iox1d1_pin: gpio0-iox1d1-pin {
197+ pins = "GPIO0/IOX1DI";
198+ output-high;
199+ };
200+
201+ iox1_pins: iox1-pins {
202+ groups = "iox1";
203+ function = "iox1";
204+ };
205+ iox2_pins: iox2-pins {
206+ groups = "iox2";
207+ function = "iox2";
208+ };
209+
210+ ....
211+
212+ clkreq_pins: clkreq-pins {
213+ groups = "clkreq";
214+ function = "clkreq";
215+ };
216+};
Documentation/devicetree/bindings/pinctrl/qcom,pmic-gpio.txt+2−0
@@ -19,6 +19,7 @@ PMIC's from Qualcomm. · 18 unmodified lines
1919 "qcom,pm8998-gpio"
2020 "qcom,pma8084-gpio"
2121 "qcom,pmi8994-gpio"
22+ "qcom,pms405-gpio"
2223
2324 And must contain either "qcom,spmi-gpio" or "qcom,ssbi-gpio"
2425 if the device is on an spmi bus or an ssbi bus respectively
@@ -91,6 +92,7 @@ to specify in a pin configuration subnode: · 66 unmodified lines
9192 gpio1-gpio26 for pm8998
9293 gpio1-gpio22 for pma8084
9394 gpio1-gpio10 for pmi8994
95+ gpio1-gpio11 for pms405
9496
9597 - function:
9698 Usage: required
Documentation/devicetree/bindings/pinctrl/qcom,qcs404-pinctrl.txt+199−0
@@ -0,0 +1,199 @@
1+Qualcomm QCS404 TLMM block
2+
3+This binding describes the Top Level Mode Multiplexer block found in the
4+QCS404 platform.
5+
6+- compatible:
7+ Usage: required
8+ Value type: <string>
9+ Definition: must be "qcom,qcs404-pinctrl"
10+
11+- reg:
12+ Usage: required
13+ Value type: <prop-encoded-array>
14+ Definition: the base address and size of the north, south and east TLMM
15+ tiles.
16+
17+- reg-names:
18+ Usage: required
19+ Value type: <stringlist>
20+ Defintiion: names for the cells of reg, must contain "north", "south"
21+ and "east".
22+
23+- interrupts:
24+ Usage: required
25+ Value type: <prop-encoded-array>
26+ Definition: should specify the TLMM summary IRQ.
27+
28+- interrupt-controller:
29+ Usage: required
30+ Value type: <none>
31+ Definition: identifies this node as an interrupt controller
32+
33+- #interrupt-cells:
34+ Usage: required
35+ Value type: <u32>
36+ Definition: must be 2. Specifying the pin number and flags, as defined
37+ in <dt-bindings/interrupt-controller/irq.h>
38+
39+- gpio-controller:
40+ Usage: required
41+ Value type: <none>
42+ Definition: identifies this node as a gpio controller
43+
44+- #gpio-cells:
45+ Usage: required
46+ Value type: <u32>
47+ Definition: must be 2. Specifying the pin number and flags, as defined
48+ in <dt-bindings/gpio/gpio.h>
49+
50+- gpio-ranges:
51+ Usage: required
52+ Definition: see ../gpio/gpio.txt
53+
54+Please refer to ../gpio/gpio.txt and ../interrupt-controller/interrupts.txt for
55+a general description of GPIO and interrupt bindings.
56+
57+Please refer to pinctrl-bindings.txt in this directory for details of the
58+common pinctrl bindings used by client devices, including the meaning of the
59+phrase "pin configuration node".
60+
61+The pin configuration nodes act as a container for an arbitrary number of
62+subnodes. Each of these subnodes represents some desired configuration for a
63+pin, a group, or a list of pins or groups. This configuration can include the
64+mux function to select on those pin(s)/group(s), and various pin configuration
65+parameters, such as pull-up, drive strength, etc.
66+
67+
68+PIN CONFIGURATION NODES:
69+
70+The name of each subnode is not important; all subnodes should be enumerated
71+and processed purely based on their content.
72+
73+Each subnode only affects those parameters that are explicitly listed. In
74+other words, a subnode that lists a mux function but no pin configuration
75+parameters implies no information about any pin configuration parameters.
76+Similarly, a pin subnode that describes a pullup parameter implies no
77+information about e.g. the mux function.
78+
79+
80+The following generic properties as defined in pinctrl-bindings.txt are valid
81+to specify in a pin configuration subnode:
82+
83+- pins:
84+ Usage: required
85+ Value type: <string-array>
86+ Definition: List of gpio pins affected by the properties specified in
87+ this subnode.
88+
89+ Valid pins are:
90+ gpio0-gpio119
91+ Supports mux, bias and drive-strength
92+
93+ sdc1_clk, sdc1_cmd, sdc1_data, sdc2_clk, sdc2_cmd,
94+ sdc2_data
95+ Supports bias and drive-strength
96+
97+ ufs_reset
98+ Supports bias and drive-strength
99+
100+- function:
101+ Usage: required
102+ Value type: <string>
103+ Definition: Specify the alternative function to be configured for the
104+ specified pins. Functions are only valid for gpio pins.
105+ Valid values are:
106+
107+ gpio, hdmi_tx, hdmi_ddc, blsp_uart_tx_a2, blsp_spi2, m_voc,
108+ qdss_cti_trig_in_a0, blsp_uart_rx_a2, qdss_tracectl_a,
109+ blsp_uart2, aud_cdc, blsp_i2c_sda_a2, qdss_tracedata_a,
110+ blsp_i2c_scl_a2, qdss_tracectl_b, qdss_cti_trig_in_b0,
111+ blsp_uart1, blsp_spi_mosi_a1, blsp_spi_miso_a1,
112+ qdss_tracedata_b, blsp_i2c1, blsp_spi_cs_n_a1, gcc_plltest,
113+ blsp_spi_clk_a1, rgb_data0, blsp_uart5, blsp_spi5,
114+ adsp_ext, rgb_data1, prng_rosc, rgb_data2, blsp_i2c5,
115+ gcc_gp1_clk_b, rgb_data3, gcc_gp2_clk_b, blsp_spi0,
116+ blsp_uart0, gcc_gp3_clk_b, blsp_i2c0, qdss_traceclk_b,
117+ pcie_clk, nfc_irq, blsp_spi4, nfc_dwl, audio_ts, rgb_data4,
118+ spi_lcd, blsp_uart_tx_b2, gcc_gp3_clk_a, rgb_data5,
119+ blsp_uart_rx_b2, blsp_i2c_sda_b2, blsp_i2c_scl_b2,
120+ pwm_led11, i2s_3_data0_a, ebi2_lcd, i2s_3_data1_a,
121+ i2s_3_data2_a, atest_char, pwm_led3, i2s_3_data3_a,
122+ pwm_led4, i2s_4, ebi2_a, dsd_clk_b, pwm_led5, pwm_led6,
123+ pwm_led7, pwm_led8, pwm_led24, spkr_dac0, blsp_i2c4,
124+ pwm_led9, pwm_led10, spdifrx_opt, pwm_led12, pwm_led13,
125+ pwm_led14, wlan1_adc1, rgb_data_b0, pwm_led15,
126+ blsp_spi_mosi_b1, wlan1_adc0, rgb_data_b1, pwm_led16,
127+ blsp_spi_miso_b1, qdss_cti_trig_out_b0, wlan2_adc1,
128+ rgb_data_b2, pwm_led17, blsp_spi_cs_n_b1, wlan2_adc0,
129+ rgb_data_b3, pwm_led18, blsp_spi_clk_b1, rgb_data_b4,
130+ pwm_led19, ext_mclk1_b, qdss_traceclk_a, rgb_data_b5,
131+ pwm_led20, atest_char3, i2s_3_sck_b, ldo_update, bimc_dte0,
132+ rgb_hsync, pwm_led21, i2s_3_ws_b, dbg_out, rgb_vsync,
133+ i2s_3_data0_b, ldo_en, hdmi_dtest, rgb_de, i2s_3_data1_b,
134+ hdmi_lbk9, rgb_clk, atest_char1, i2s_3_data2_b, ebi_cdc,
135+ hdmi_lbk8, rgb_mdp, atest_char0, i2s_3_data3_b, hdmi_lbk7,
136+ rgb_data_b6, rgb_data_b7, hdmi_lbk6, rgmii_int, cri_trng1,
137+ rgmii_wol, cri_trng0, gcc_tlmm, rgmii_ck, rgmii_tx,
138+ hdmi_lbk5, hdmi_pixel, hdmi_rcv, hdmi_lbk4, rgmii_ctl,
139+ ext_lpass, rgmii_rx, cri_trng, hdmi_lbk3, hdmi_lbk2,
140+ qdss_cti_trig_out_b1, rgmii_mdio, hdmi_lbk1, rgmii_mdc,
141+ hdmi_lbk0, ir_in, wsa_en, rgb_data6, rgb_data7,
142+ atest_char2, ebi_ch0, blsp_uart3, blsp_spi3, sd_write,
143+ blsp_i2c3, gcc_gp1_clk_a, qdss_cti_trig_in_b1,
144+ gcc_gp2_clk_a, ext_mclk0, mclk_in1, i2s_1, dsd_clk_a,
145+ qdss_cti_trig_in_a1, rgmi_dll1, pwm_led22, pwm_led23,
146+ qdss_cti_trig_out_a0, rgmi_dll2, pwm_led1,
147+ qdss_cti_trig_out_a1, pwm_led2, i2s_2, pll_bist,
148+ ext_mclk1_a, mclk_in2, bimc_dte1, i2s_3_sck_a, i2s_3_ws_a
149+
150+- bias-disable:
151+ Usage: optional
152+ Value type: <none>
153+ Definition: The specified pins should be configued as no pull.
154+
155+- bias-pull-down:
156+ Usage: optional
157+ Value type: <none>
158+ Definition: The specified pins should be configued as pull down.
159+
160+- bias-pull-up:
161+ Usage: optional
162+ Value type: <none>
163+ Definition: The specified pins should be configued as pull up.
164+
165+- output-high:
166+ Usage: optional
167+ Value type: <none>
168+ Definition: The specified pins are configured in output mode, driven
169+ high.
170+ Not valid for sdc pins.
171+
172+- output-low:
173+ Usage: optional
174+ Value type: <none>
175+ Definition: The specified pins are configured in output mode, driven
176+ low.
177+ Not valid for sdc pins.
178+
179+- drive-strength:
180+ Usage: optional
181+ Value type: <u32>
182+ Definition: Selects the drive strength for the specified pins, in mA.
183+ Valid values are: 2, 4, 6, 8, 10, 12, 14 and 16
184+
185+Example:
186+
187+ tlmm: pinctrl@1000000 {
188+ compatible = "qcom,qcs404-pinctrl";
189+ reg = <0x01000000 0x200000>,
190+ <0x01300000 0x200000>,
191+ <0x07b00000 0x200000>;
192+ reg-names = "south", "north", "east";
193+ interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
194+ gpio-controller;
195+ #gpio-cells = <2>;
196+ gpio-ranges = <&tlmm 0 0 120>;
197+ interrupt-controller;
198+ #interrupt-cells = <2>;
199+ };
Documentation/devicetree/bindings/pinctrl/qcom,sdm660-pinctrl.txt+191−0
@@ -0,0 +1,191 @@
1+Qualcomm Technologies, Inc. SDM660 TLMM block
2+
3+This binding describes the Top Level Mode Multiplexer block found in the
4+SDM660 platform.
5+
6+- compatible:
7+ Usage: required
8+ Value type: <string>
9+ Definition: must be "qcom,sdm660-pinctrl" or
10+ "qcom,sdm630-pinctrl".
11+
12+- reg:
13+ Usage: required
14+ Value type: <prop-encoded-array>
15+ Definition: the base address and size of the north, center and south
16+ TLMM tiles.
17+
18+- reg-names:
19+ Usage: required
20+ Value type: <stringlist>
21+ Definition: names for the cells of reg, must contain "north", "center"
22+ and "south".
23+
24+- interrupts:
25+ Usage: required
26+ Value type: <prop-encoded-array>
27+ Definition: should specify the TLMM summary IRQ.
28+
29+- interrupt-controller:
30+ Usage: required
31+ Value type: <none>
32+ Definition: identifies this node as an interrupt controller
33+
34+- #interrupt-cells:
35+ Usage: required
36+ Value type: <u32>
37+ Definition: must be 2. Specifying the pin number and flags, as defined
38+ in <dt-bindings/interrupt-controller/irq.h>
39+
40+- gpio-controller:
41+ Usage: required
42+ Value type: <none>
43+ Definition: identifies this node as a gpio controller
44+
45+- gpio-ranges:
46+ Usage: required
47+ Value type: <prop-encoded-array>
48+ Definition: Specifies the mapping between gpio controller and
49+ pin-controller pins.
50+
51+- #gpio-cells:
52+ Usage: required
53+ Value type: <u32>
54+ Definition: must be 2. Specifying the pin number and flags, as defined
55+ in <dt-bindings/gpio/gpio.h>
56+
57+Please refer to ../gpio/gpio.txt and ../interrupt-controller/interrupts.txt for
58+a general description of GPIO and interrupt bindings.
59+
60+Please refer to pinctrl-bindings.txt in this directory for details of the
61+common pinctrl bindings used by client devices, including the meaning of the
62+phrase "pin configuration node".
63+
64+The pin configuration nodes act as a container for an arbitrary number of
65+subnodes. Each of these subnodes represents some desired configuration for a
66+pin, a group, or a list of pins or groups. This configuration can include the
67+mux function to select on those pin(s)/group(s), and various pin configuration
68+parameters, such as pull-up, drive strength, etc.
69+
70+
71+PIN CONFIGURATION NODES:
72+
73+The name of each subnode is not important; all subnodes should be enumerated
74+and processed purely based on their content.
75+
76+Each subnode only affects those parameters that are explicitly listed. In
77+other words, a subnode that lists a mux function but no pin configuration
78+parameters implies no information about any pin configuration parameters.
79+Similarly, a pin subnode that describes a pullup parameter implies no
80+information about e.g. the mux function.
81+
82+
83+The following generic properties as defined in pinctrl-bindings.txt are valid
84+to specify in a pin configuration subnode:
85+
86+- pins:
87+ Usage: required
88+ Value type: <string-array>
89+ Definition: List of gpio pins affected by the properties specified in
90+ this subnode. Valid pins are:
91+ gpio0-gpio113,
92+ Supports mux, bias and drive-strength
93+ sdc1_clk, sdc1_cmd, sdc1_data sdc2_clk, sdc2_cmd, sdc2_data sdc1_rclk,
94+ Supports bias and drive-strength
95+
96+- function:
97+ Usage: required
98+ Value type: <string>
99+ Definition: Specify the alternative function to be configured for the
100+ specified pins. Functions are only valid for gpio pins.
101+ Valid values are:
102+ adsp_ext, agera_pll, atest_char, atest_char0, atest_char1,
103+ atest_char2, atest_char3, atest_gpsadc0, atest_gpsadc1,
104+ atest_tsens, atest_tsens2, atest_usb1, atest_usb10,
105+ atest_usb11, atest_usb12, atest_usb13, atest_usb2,
106+ atest_usb20, atest_usb21, atest_usb22, atest_usb23,
107+ audio_ref, bimc_dte0, bimc_dte1, blsp_i2c1, blsp_i2c2,
108+ blsp_i2c3, blsp_i2c4, blsp_i2c5, blsp_i2c6, blsp_i2c7,
109+ blsp_i2c8_a, blsp_i2c8_b, blsp_spi1, blsp_spi2, blsp_spi3,
110+ blsp_spi3_cs1, blsp_spi3_cs2, blsp_spi4, blsp_spi5,
111+ blsp_spi6, blsp_spi7, blsp_spi8_a, blsp_spi8_b,
112+ blsp_spi8_cs1, blsp_spi8_cs2, blsp_uart1, blsp_uart2,
113+ blsp_uart5, blsp_uart6_a, blsp_uart6_b, blsp_uim1,
114+ blsp_uim2, blsp_uim5, blsp_uim6, cam_mclk, cci_async,
115+ cci_i2c, cri_trng, cri_trng0, cri_trng1, dbg_out, ddr_bist,
116+ gcc_gp1, gcc_gp2, gcc_gp3, gpio, gps_tx_a, gps_tx_b, gps_tx_c,
117+ isense_dbg, jitter_bist, ldo_en, ldo_update, m_voc, mdp_vsync,
118+ mdss_vsync0, mdss_vsync1, mdss_vsync2, mdss_vsync3, mss_lte,
119+ nav_pps_a, nav_pps_b, nav_pps_c, pa_indicator, phase_flag0,
120+ phase_flag1, phase_flag10, phase_flag11, phase_flag12,
121+ phase_flag13, phase_flag14, phase_flag15, phase_flag16,
122+ phase_flag17, phase_flag18, phase_flag19, phase_flag2,
123+ phase_flag20, phase_flag21, phase_flag22, phase_flag23,
124+ phase_flag24, phase_flag25, phase_flag26, phase_flag27,
125+ phase_flag28, phase_flag29, phase_flag3, phase_flag30,
126+ phase_flag31, phase_flag4, phase_flag5, phase_flag6,
127+ phase_flag7, phase_flag8, phase_flag9, pll_bypassnl,
128+ pll_reset, pri_mi2s, pri_mi2s_ws, prng_rosc, pwr_crypto,
129+ pwr_modem, pwr_nav, qdss_cti0_a, qdss_cti0_b, qdss_cti1_a,
130+ qdss_cti1_b, qdss_gpio, qdss_gpio0, qdss_gpio1, qdss_gpio10,
131+ qdss_gpio11, qdss_gpio12, qdss_gpio13, qdss_gpio14, qdss_gpio15,
132+ qdss_gpio2, qdss_gpio3, qdss_gpio4, qdss_gpio5, qdss_gpio6,
133+ qdss_gpio7, qdss_gpio8, qdss_gpio9, qlink_enable, qlink_request,
134+ qspi_clk, qspi_cs, qspi_data0, qspi_data1, qspi_data2,
135+ qspi_data3, qspi_resetn, sec_mi2s, sndwire_clk, sndwire_data,
136+ sp_cmu, ssc_irq, tgu_ch0, tgu_ch1, tsense_pwm1, tsense_pwm2,
137+ uim1_clk, uim1_data, uim1_present, uim1_reset, uim2_clk,
138+ uim2_data, uim2_present, uim2_reset, uim_batt, vfr_1,
139+ vsense_clkout, vsense_data0, vsense_data1, vsense_mode,
140+ wlan1_adc0, wlan1_adc1, wlan2_adc0, wlan2_adc1
141+
142+- bias-disable:
143+ Usage: optional
144+ Value type: <none>
145+ Definition: The specified pins should be configued as no pull.
146+
147+- bias-pull-down:
148+ Usage: optional
149+ Value type: <none>
150+ Definition: The specified pins should be configued as pull down.
151+
152+- bias-pull-up:
153+ Usage: optional
154+ Value type: <none>
155+ Definition: The specified pins should be configued as pull up.
156+
157+- output-high:
158+ Usage: optional
159+ Value type: <none>
160+ Definition: The specified pins are configured in output mode, driven
161+ high.
162+ Not valid for sdc pins.
163+
164+- output-low:
165+ Usage: optional
166+ Value type: <none>
167+ Definition: The specified pins are configured in output mode, driven
168+ low.
169+ Not valid for sdc pins.
170+
171+- drive-strength:
172+ Usage: optional
173+ Value type: <u32>
174+ Definition: Selects the drive strength for the specified pins, in mA.
175+ Valid values are: 2, 4, 6, 8, 10, 12, 14 and 16
176+
177+Example:
178+
179+ tlmm: pinctrl@3100000 {
180+ compatible = "qcom,sdm660-pinctrl";
181+ reg = <0x3100000 0x200000>,
182+ <0x3500000 0x200000>,
183+ <0x3900000 0x200000>;
184+ reg-names = "south", "center", "north";
185+ interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
186+ gpio-controller;
187+ gpio-ranges = <&tlmm 0 0 114>;
188+ #gpio-cells = <2>;
189+ interrupt-controller;
190+ #interrupt-cells = <2>;
191+ };
Documentation/devicetree/bindings/pinctrl/renesas,pfc-pinctrl.txt+3−0
@@ -14,8 +14,11 @@ Required Properties: · 13 unmodified lines
1414 - "renesas,pfc-r8a73a4": for R8A73A4 (R-Mobile APE6) compatible pin-controller.
1515 - "renesas,pfc-r8a7740": for R8A7740 (R-Mobile A1) compatible pin-controller.
1616 - "renesas,pfc-r8a7743": for R8A7743 (RZ/G1M) compatible pin-controller.
17+ - "renesas,pfc-r8a7744": for R8A7744 (RZ/G1N) compatible pin-controller.
1718 - "renesas,pfc-r8a7745": for R8A7745 (RZ/G1E) compatible pin-controller.
1819 - "renesas,pfc-r8a77470": for R8A77470 (RZ/G1C) compatible pin-controller.
20+ - "renesas,pfc-r8a774a1": for R8A774A1 (RZ/G2M) compatible pin-controller.
21+ - "renesas,pfc-r8a774c0": for R8A774C0 (RZ/G2E) compatible pin-controller.
1922 - "renesas,pfc-r8a7778": for R8A7778 (R-Car M1) compatible pin-controller.
2023 - "renesas,pfc-r8a7779": for R8A7779 (R-Car H1) compatible pin-controller.
2124 - "renesas,pfc-r8a7790": for R8A7790 (R-Car H2) compatible pin-controller.
Documentation/devicetree/bindings/pinctrl/renesas,rzn1-pinctrl.txt+153−0
@@ -0,0 +1,153 @@
1+Renesas RZ/N1 SoC Pinctrl node description.
2+
3+Pin controller node
4+-------------------
5+Required properties:
6+- compatible: SoC-specific compatible string "renesas,<soc-specific>-pinctrl"
7+ followed by "renesas,rzn1-pinctrl" as fallback. The SoC-specific compatible
8+ strings must be one of:
9+ "renesas,r9a06g032-pinctrl" for RZ/N1D
10+ "renesas,r9a06g033-pinctrl" for RZ/N1S
11+- reg: Address base and length of the memory area where the pin controller
12+ hardware is mapped to.
13+- clocks: phandle for the clock, see the description of clock-names below.
14+- clock-names: Contains the name of the clock:
15+ "bus", the bus clock, sometimes described as pclk, for register accesses.
16+
17+Example:
18+ pinctrl: pin-controller@40067000 {
19+ compatible = "renesas,r9a06g032-pinctrl", "renesas,rzn1-pinctrl";
20+ reg = <0x40067000 0x1000>, <0x51000000 0x480>;
21+ clocks = <&sysctrl R9A06G032_HCLK_PINCONFIG>;
22+ clock-names = "bus";
23+ };
24+
25+Sub-nodes
26+---------
27+
28+The child nodes of the pin controller node describe a pin multiplexing
29+function.
30+
31+- Pin multiplexing sub-nodes:
32+ A pin multiplexing sub-node describes how to configure a set of
33+ (or a single) pin in some desired alternate function mode.
34+ A single sub-node may define several pin configurations.
35+ Please refer to pinctrl-bindings.txt to get to know more on generic
36+ pin properties usage.
37+
38+ The allowed generic formats for a pin multiplexing sub-node are the
39+ following ones:
40+
41+ node-1 {
42+ pinmux = <PIN_ID_AND_MUX>, <PIN_ID_AND_MUX>, ... ;
43+ GENERIC_PINCONFIG;
44+ };
45+
46+ node-2 {
47+ sub-node-1 {
48+ pinmux = <PIN_ID_AND_MUX>, <PIN_ID_AND_MUX>, ... ;
49+ GENERIC_PINCONFIG;
50+ };
51+
52+ sub-node-2 {
53+ pinmux = <PIN_ID_AND_MUX>, <PIN_ID_AND_MUX>, ... ;
54+ GENERIC_PINCONFIG;
55+ };
56+
57+ ...
58+
59+ sub-node-n {
60+ pinmux = <PIN_ID_AND_MUX>, <PIN_ID_AND_MUX>, ... ;
61+ GENERIC_PINCONFIG;
62+ };
63+ };
64+
65+ node-3 {
66+ pinmux = <PIN_ID_AND_MUX>, <PIN_ID_AND_MUX>, ... ;
67+ GENERIC_PINCONFIG;
68+
69+ sub-node-1 {
70+ pinmux = <PIN_ID_AND_MUX>, <PIN_ID_AND_MUX>, ... ;
71+ GENERIC_PINCONFIG;
72+ };
73+
74+ ...
75+
76+ sub-node-n {
77+ pinmux = <PIN_ID_AND_MUX>, <PIN_ID_AND_MUX>, ... ;
78+ GENERIC_PINCONFIG;
79+ };
80+ };
81+
82+ Use the latter two formats when pins part of the same logical group need to
83+ have different generic pin configuration flags applied. Note that the generic
84+ pinconfig in node-3 does not apply to the sub-nodes.
85+
86+ Client sub-nodes shall refer to pin multiplexing sub-nodes using the phandle
87+ of the most external one.
88+
89+ Eg.
90+
91+ client-1 {
92+ ...
93+ pinctrl-0 = <&node-1>;
94+ ...
95+ };
96+
97+ client-2 {
98+ ...
99+ pinctrl-0 = <&node-2>;
100+ ...
101+ };
102+
103+ Required properties:
104+ - pinmux:
105+ integer array representing pin number and pin multiplexing configuration.
106+ When a pin has to be configured in alternate function mode, use this
107+ property to identify the pin by its global index, and provide its
108+ alternate function configuration number along with it.
109+ When multiple pins are required to be configured as part of the same
110+ alternate function they shall be specified as members of the same
111+ argument list of a single "pinmux" property.
112+ Integers values in the "pinmux" argument list are assembled as:
113+ (PIN | MUX_FUNC << 8)
114+ where PIN directly corresponds to the pl_gpio pin number and MUX_FUNC is
115+ one of the alternate function identifiers defined in:
116+ <include/dt-bindings/pinctrl/rzn1-pinctrl.h>
117+ These identifiers collapse the IO Multiplex Configuration Level 1 and
118+ Level 2 numbers that are detailed in the hardware reference manual into a
119+ single number. The identifiers for Level 2 are simply offset by 10.
120+ Additional identifiers are provided to specify the MDIO source peripheral.
121+
122+ Optional generic pinconf properties:
123+ - bias-disable - disable any pin bias
124+ - bias-pull-up - pull up the pin with 50 KOhm
125+ - bias-pull-down - pull down the pin with 50 KOhm
126+ - bias-high-impedance - high impedance mode
127+ - drive-strength - sink or source at most 4, 6, 8 or 12 mA
128+
129+ Example:
130+ A serial communication interface with a TX output pin and an RX input pin.
131+
132+ &pinctrl {
133+ pins_uart0: pins_uart0 {
134+ pinmux = <
135+ RZN1_PINMUX(103, RZN1_FUNC_UART0_I) /* UART0_TXD */
136+ RZN1_PINMUX(104, RZN1_FUNC_UART0_I) /* UART0_RXD */
137+ >;
138+ };
139+ };
140+
141+ Example 2:
142+ Here we set the pull up on the RXD pin of the UART.
143+
144+ &pinctrl {
145+ pins_uart0: pins_uart0 {
146+ pinmux = <RZN1_PINMUX(103, RZN1_FUNC_UART0_I)>; /* TXD */
147+
148+ pins_uart6_rx {
149+ pinmux = <RZN1_PINMUX(104, RZN1_FUNC_UART0_I)>; /* RXD */
150+ bias-pull-up;
151+ };
152+ };
153+ };
Documentation/devicetree/bindings/power/actions,owl-sps.txt+2−0
@@ -3,11 +3,13 @@ Actions Semi Owl Smart Power System (SPS) · 2 unmodified lines
33 Required properties:
44 - compatible : "actions,s500-sps" for S500
55 "actions,s700-sps" for S700
6+ "actions,s900-sps" for S900
67 - reg : Offset and length of the register set for the device.
78 - #power-domain-cells : Must be 1.
89 See macros in:
910 include/dt-bindings/power/owl-s500-powergate.h for S500
1011 include/dt-bindings/power/owl-s700-powergate.h for S700
12+ include/dt-bindings/power/owl-s900-powergate.h for S900
1113
1214
1315 Example:
Documentation/devicetree/bindings/power/renesas,apmu.txt+2−0
@@ -8,7 +8,9 @@ Required properties: · 7 unmodified lines
88 - compatible: Should be "renesas,<soctype>-apmu", "renesas,apmu" as fallback.
99 Examples with soctypes are:
1010 - "renesas,r8a7743-apmu" (RZ/G1M)
11+ - "renesas,r8a7744-apmu" (RZ/G1N)
1112 - "renesas,r8a7745-apmu" (RZ/G1E)
13+ - "renesas,r8a77470-apmu" (RZ/G1C)
1214 - "renesas,r8a7790-apmu" (R-Car H2)
1315 - "renesas,r8a7791-apmu" (R-Car M2-W)
1416 - "renesas,r8a7792-apmu" (R-Car V2H)
Documentation/devicetree/bindings/power/renesas,rcar-sysc.txt+3−0
@@ -8,8 +8,11 @@ and various coprocessors. · 7 unmodified lines
88 Required properties:
99 - compatible: Must contain exactly one of the following:
1010 - "renesas,r8a7743-sysc" (RZ/G1M)
11+ - "renesas,r8a7744-sysc" (RZ/G1N)
1112 - "renesas,r8a7745-sysc" (RZ/G1E)
1213 - "renesas,r8a77470-sysc" (RZ/G1C)
14+ - "renesas,r8a774a1-sysc" (RZ/G2M)
15+ - "renesas,r8a774c0-sysc" (RZ/G2E)
1316 - "renesas,r8a7779-sysc" (R-Car H1)
1417 - "renesas,r8a7790-sysc" (R-Car H2)
1518 - "renesas,r8a7791-sysc" (R-Car M2-W)
Documentation/devicetree/bindings/power/reset/qcom,pon.txt+4−1
@@ -6,7 +6,10 @@ and resin along with the Android reboot-mode. · 5 unmodified lines
66 This DT node has pwrkey and resin as sub nodes.
77
88 Required Properties:
9−-compatible: "qcom,pm8916-pon"
9+-compatible: Must be one of:
10+ "qcom,pm8916-pon"
11+ "qcom,pms405-pon"
12+
1013 -reg: Specifies the physical address of the pon register
1114
1215 Optional subnode:
Documentation/devicetree/bindings/power/supply/bq25890.txt+3−0
@@ -1,5 +1,8 @@
11 Binding for TI bq25890 Li-Ion Charger
22
3+This driver will support the bq25896 and the bq25890. There are other ICs
4+in the same family but those have not been tested.
5+
36 Required properties:
47 - compatible: Should contain one of the following:
58 * "ti,bq25890"
Documentation/devicetree/bindings/power/supply/bq27xxx.txt+1−0
@@ -23,6 +23,7 @@ Required properties: · 22 unmodified lines
2323 * "ti,bq27546" - BQ27546
2424 * "ti,bq27742" - BQ27742
2525 * "ti,bq27545" - BQ27545
26+ * "ti,bq27411" - BQ27411
2627 * "ti,bq27421" - BQ27421
2728 * "ti,bq27425" - BQ27425
2829 * "ti,bq27426" - BQ27426
Documentation/devicetree/bindings/power/supply/sc2731_charger.txt+40−0
@@ -0,0 +1,40 @@
1+Spreadtrum SC2731 PMIC battery charger binding
2+
3+Required properties:
4+ - compatible: Should be "sprd,sc2731-charger".
5+ - reg: Address offset of charger register.
6+ - phys: Contains a phandle to the USB phy.
7+
8+Optional Properties:
9+- monitored-battery: phandle of battery characteristics devicetree node.
10+ The charger uses the following battery properties:
11+- charge-term-current-microamp: current for charge termination phase.
12+- constant-charge-voltage-max-microvolt: maximum constant input voltage.
13+ See Documentation/devicetree/bindings/power/supply/battery.txt
14+
15+Example:
16+
17+ bat: battery {
18+ compatible = "simple-battery";
19+ charge-term-current-microamp = <120000>;
20+ constant-charge-voltage-max-microvolt = <4350000>;
21+ ......
22+ };
23+
24+ sc2731_pmic: pmic@0 {
25+ compatible = "sprd,sc2731";
26+ reg = <0>;
27+ spi-max-frequency = <26000000>;
28+ interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
29+ interrupt-controller;
30+ #interrupt-cells = <2>;
31+ #address-cells = <1>;
32+ #size-cells = <0>;
33+
34+ charger@0 {
35+ compatible = "sprd,sc2731-charger";
36+ reg = <0x0>;
37+ phys = <&ssphy>;
38+ monitored-battery = <&bat>;
39+ };
40+ };
Documentation/devicetree/bindings/pwm/pwm-tiecap.txt+1−0
@@ -7,6 +7,7 @@ Required properties: · 6 unmodified lines
77 for da850 - compatible = "ti,da850-ecap", "ti,am3352-ecap", "ti,am33xx-ecap";
88 for dra746 - compatible = "ti,dra746-ecap", "ti,am3352-ecap";
99 for 66ak2g - compatible = "ti,k2g-ecap", "ti,am3352-ecap";
10+ for am654 - compatible = "ti,am654-ecap", "ti,am3352-ecap";
1011 - #pwm-cells: should be 3. See pwm.txt in this directory for a description of
1112 the cells format. The PWM channel index ranges from 0 to 4. The only third
1213 cell flag supported by this binding is PWM_POLARITY_INVERTED.
Documentation/devicetree/bindings/pwm/renesas,pwm-rcar.txt+4−0
@@ -3,7 +3,9 @@ · 2 unmodified lines
33 Required Properties:
44 - compatible: should be "renesas,pwm-rcar" and one of the following.
55 - "renesas,pwm-r8a7743": for RZ/G1M
6+ - "renesas,pwm-r8a7744": for RZ/G1N
67 - "renesas,pwm-r8a7745": for RZ/G1E
8+ - "renesas,pwm-r8a774a1": for RZ/G2M
79 - "renesas,pwm-r8a7778": for R-Car M1A
810 - "renesas,pwm-r8a7779": for R-Car H1
911 - "renesas,pwm-r8a7790": for R-Car H2
@@ -12,6 +14,8 @@ Required Properties: · 2 unmodified lines
1214 - "renesas,pwm-r8a7795": for R-Car H3
1315 - "renesas,pwm-r8a7796": for R-Car M3-W
1416 - "renesas,pwm-r8a77965": for R-Car M3-N
17+ - "renesas,pwm-r8a77970": for R-Car V3M
18+ - "renesas,pwm-r8a77980": for R-Car V3H
1519 - "renesas,pwm-r8a77990": for R-Car E3
1620 - "renesas,pwm-r8a77995": for R-Car D3
1721 - reg: base address and length of the registers block for the PWM.
Documentation/devicetree/bindings/pwm/renesas,tpu-pwm.txt+8−2
@@ -2,13 +2,19 @@ · 1 unmodified line
22
33 Required Properties:
44
5− - compatible: should be one of the following.
5+ - compatible: must contain one or more of the following:
66 - "renesas,tpu-r8a73a4": for R8A73A4 (R-Mobile APE6) compatible PWM controller.
77 - "renesas,tpu-r8a7740": for R8A7740 (R-Mobile A1) compatible PWM controller.
88 - "renesas,tpu-r8a7743": for R8A7743 (RZ/G1M) compatible PWM controller.
9+ - "renesas,tpu-r8a7744": for R8A7744 (RZ/G1N) compatible PWM controller.
910 - "renesas,tpu-r8a7745": for R8A7745 (RZ/G1E) compatible PWM controller.
1011 - "renesas,tpu-r8a7790": for R8A7790 (R-Car H2) compatible PWM controller.
11− - "renesas,tpu": for generic R-Car and RZ/G1 TPU PWM controller.
12+ - "renesas,tpu-r8a77970": for R8A77970 (R-Car V3M) compatible PWM
13+ controller.
14+ - "renesas,tpu-r8a77980": for R8A77980 (R-Car V3H) compatible PWM
15+ controller.
16+ - "renesas,tpu": for the generic TPU PWM controller; this is a fallback for
17+ the entries listed above.
1218
1319 - reg: Base address and length of each memory resource used by the PWM
1420 controller hardware module.
Documentation/devicetree/bindings/regulator/pfuze100.txt+5−0
@@ -12,6 +12,11 @@ Optional properties: · 11 unmodified lines
1212 disabled. This binding is a workaround to keep backward compatibility with
1313 old dtb's which rely on the fact that the switched regulators are always on
1414 and don't mark them explicit as "regulator-always-on".
15+- fsl,pmic-stby-poweroff: if present, configure the PMIC to shutdown all
16+ power rails when PMIC_STBY_REQ line is asserted during the power off sequence.
17+ Use this option if the SoC should be powered off by external power
18+ management IC (PMIC) on PMIC_STBY_REQ signal.
19+ As opposite to PMIC_STBY_REQ boards can implement PMIC_ON_REQ signal.
1520
1621 Required child node:
1722 - regulators: This is the list of child nodes that specify the regulator
Documentation/devicetree/bindings/regulator/qcom,smd-rpm-regulator.txt+23−0
@@ -26,6 +26,7 @@ Regulator nodes are identified by their compatible: · 25 unmodified lines
2626 "qcom,rpm-pm8998-regulators"
2727 "qcom,rpm-pma8084-regulators"
2828 "qcom,rpm-pmi8998-regulators"
29+ "qcom,rpm-pms405-regulators"
2930
3031 - vdd_s1-supply:
3132 - vdd_s2-supply:
@@ -188,6 +189,24 @@ Regulator nodes are identified by their compatible: · 156 unmodified lines
188189 Definition: reference to regulator supplying the input pin, as
189190 described in the data sheet
190191
192+- vdd_s1-supply:
193+- vdd_s2-supply:
194+- vdd_s3-supply:
195+- vdd_s4-supply:
196+- vdd_s5-supply:
197+- vdd_l1_l2-supply:
198+- vdd_l3_l8-supply:
199+- vdd_l4-supply:
200+- vdd_l5_l6-supply:
201+- vdd_l7-supply:
202+- vdd_l3_l8-supply:
203+- vdd_l9-supply:
204+- vdd_l10_l11_l12_l13-supply:
205+ Usage: optional (pms405 only)
206+ Value type: <phandle>
207+ Definition: reference to regulator supplying the input pin, as
208+ described in the data sheet
209+
191210 The regulator node houses sub-nodes for each regulator within the device. Each
192211 sub-node is identified using the node's name, with valid values listed for each
193212 of the pmics below.
@@ -222,6 +241,10 @@ pma8084: · 28 unmodified lines
222241 pmi8998:
223242 bob
224243
244+pms405:
245+ s1, s2, s3, s4, s5, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12,
246+ l13
247+
225248 The content of each sub-node is defined by the standard binding for regulators -
226249 see regulator.txt.
227250
Documentation/devicetree/bindings/regulator/rohm,bd71837-regulator.txt+9−3
@@ -1,7 +1,9 @@
1−ROHM BD71837 Power Management Integrated Circuit (PMIC) regulator bindings
1+ROHM BD71837 and BD71847 Power Management Integrated Circuit regulator bindings
22
33 Required properties:
4− - regulator-name: should be "buck1", ..., "buck8" and "ldo1", ..., "ldo7"
4+ - regulator-name: should be "buck1", ..., "buck8" and "ldo1", ..., "ldo7" for
5+ BD71837. For BD71847 names should be "buck1", ..., "buck6"
6+ and "ldo1", ..., "ldo6"
57
68 List of regulators provided by this controller. BD71837 regulators node
79 should be sub node of the BD71837 MFD node. See BD71837 MFD bindings at
@@ -16,10 +18,14 @@ disabled by driver at startup. LDO5 and LDO6 are supplied by those and · 8 unmodified lines
1618 if they are disabled at startup the voltage monitoring for LDO5/LDO6 will
1719 cause PMIC to reset.
1820
19−The valid names for regulator nodes are:
21+The valid names for BD71837 regulator nodes are:
2022 BUCK1, BUCK2, BUCK3, BUCK4, BUCK5, BUCK6, BUCK7, BUCK8
2123 LDO1, LDO2, LDO3, LDO4, LDO5, LDO6, LDO7
2224
25+The valid names for BD71847 regulator nodes are:
26+BUCK1, BUCK2, BUCK3, BUCK4, BUCK5, BUCK6
27+LDO1, LDO2, LDO3, LDO4, LDO5, LDO6
28+
2329 Optional properties:
2430 - Any optional property defined in bindings/regulator/regulator.txt
2531
Documentation/devicetree/bindings/regulator/st,stpmic1-regulator.txt+68−0
@@ -0,0 +1,68 @@
1+STMicroelectronics STPMIC1 Voltage regulators
2+
3+Regulator Nodes are optional depending on needs.
4+
5+Available Regulators in STPMIC1 device are:
6+ - buck1 for Buck BUCK1
7+ - buck2 for Buck BUCK2
8+ - buck3 for Buck BUCK3
9+ - buck4 for Buck BUCK4
10+ - ldo1 for LDO LDO1
11+ - ldo2 for LDO LDO2
12+ - ldo3 for LDO LDO3
13+ - ldo4 for LDO LDO4
14+ - ldo5 for LDO LDO5
15+ - ldo6 for LDO LDO6
16+ - vref_ddr for LDO Vref DDR
17+ - boost for Buck BOOST
18+ - pwr_sw1 for VBUS_OTG switch
19+ - pwr_sw2 for SW_OUT switch
20+
21+Switches are fixed voltage regulators with only enable/disable capability.
22+
23+Optional properties:
24+- st,mask-reset: mask reset for this regulator: the regulator configuration
25+ is maintained during pmic reset.
26+- regulator-pull-down: enable high pull down
27+ if not specified light pull down is used
28+- regulator-over-current-protection:
29+ if set, all regulators are switched off in case of over-current detection
30+ on this regulator,
31+ if not set, the driver only sends an over-current event.
32+- interrupt-parent: phandle to the parent interrupt controller
33+- interrupts: index of current limit detection interrupt
34+- <regulator>-supply: phandle to the parent supply/regulator node
35+ each regulator supply can be described except vref_ddr.
36+
37+Example:
38+regulators {
39+ compatible = "st,stpmic1-regulators";
40+
41+ ldo6-supply = <&v3v3>;
42+
43+ vdd_core: buck1 {
44+ regulator-name = "vdd_core";
45+ interrupts = <IT_CURLIM_BUCK1 0>;
46+ interrupt-parent = <&pmic>;
47+ st,mask-reset;
48+ regulator-pull-down;
49+ regulator-min-microvolt = <700000>;
50+ regulator-max-microvolt = <1200000>;
51+ };
52+
53+ v3v3: buck4 {
54+ regulator-name = "v3v3";
55+ interrupts = <IT_CURLIM_BUCK4 0>;
56+ interrupt-parent = <&mypmic>;
57+
58+ regulator-min-microvolt = <3300000>;
59+ regulator-max-microvolt = <3300000>;
60+ };
61+
62+ v1v8: ldo6 {
63+ regulator-name = "v1v8";
64+ regulator-min-microvolt = <1800000>;
65+ regulator-max-microvolt = <1800000>;
66+ regulator-over-current-protection;
67+ };
68+};
Documentation/devicetree/bindings/remoteproc/qcom,adsp-pil.txt+126−0
@@ -0,0 +1,126 @@
1+Qualcomm Technology Inc. ADSP Peripheral Image Loader
2+
3+This document defines the binding for a component that loads and boots firmware
4+on the Qualcomm Technology Inc. ADSP Hexagon core.
5+
6+- compatible:
7+ Usage: required
8+ Value type: <string>
9+ Definition: must be one of:
10+ "qcom,sdm845-adsp-pil"
11+
12+- reg:
13+ Usage: required
14+ Value type: <prop-encoded-array>
15+ Definition: must specify the base address and size of the qdsp6ss register
16+
17+- interrupts-extended:
18+ Usage: required
19+ Value type: <prop-encoded-array>
20+ Definition: must list the watchdog, fatal IRQs ready, handover and
21+ stop-ack IRQs
22+
23+- interrupt-names:
24+ Usage: required
25+ Value type: <stringlist>
26+ Definition: must be "wdog", "fatal", "ready", "handover", "stop-ack"
27+
28+- clocks:
29+ Usage: required
30+ Value type: <prop-encoded-array>
31+ Definition: List of 8 phandle and clock specifier pairs for the adsp.
32+
33+- clock-names:
34+ Usage: required
35+ Value type: <stringlist>
36+ Definition: List of clock input name strings sorted in the same
37+ order as the clocks property. Definition must have
38+ "xo", "sway_cbcr", "lpass_aon", "lpass_ahbs_aon_cbcr",
39+ "lpass_ahbm_aon_cbcr", "qdsp6ss_xo", "qdsp6ss_sleep"
40+ and "qdsp6ss_core".
41+
42+- power-domains:
43+ Usage: required
44+ Value type: <phandle>
45+ Definition: reference to cx power domain node.
46+
47+- resets:
48+ Usage: required
49+ Value type: <phandle>
50+ Definition: reference to the list of 2 reset-controller for the adsp.
51+
52+- reset-names:
53+ Usage: required
54+ Value type: <stringlist>
55+ Definition: must be "pdc_sync" and "cc_lpass"
56+
57+- qcom,halt-regs:
58+ Usage: required
59+ Value type: <prop-encoded-array>
60+ Definition: a phandle reference to a syscon representing TCSR followed
61+ by the offset within syscon for lpass halt register.
62+
63+- memory-region:
64+ Usage: required
65+ Value type: <phandle>
66+ Definition: reference to the reserved-memory for the ADSP
67+
68+- qcom,smem-states:
69+ Usage: required
70+ Value type: <phandle>
71+ Definition: reference to the smem state for requesting the ADSP to
72+ shut down
73+
74+- qcom,smem-state-names:
75+ Usage: required
76+ Value type: <stringlist>
77+ Definition: must be "stop"
78+
79+
80+= SUBNODES
81+The adsp node may have an subnode named "glink-edge" that describes the
82+communication edge, channels and devices related to the ADSP.
83+See ../soc/qcom/qcom,glink.txt for details on how to describe these.
84+
85+= EXAMPLE
86+The following example describes the resources needed to boot control the
87+ADSP, as it is found on SDM845 boards.
88+
89+ remoteproc@17300000 {
90+ compatible = "qcom,sdm845-adsp-pil";
91+ reg = <0x17300000 0x40c>;
92+
93+ interrupts-extended = <&intc GIC_SPI 162 IRQ_TYPE_EDGE_RISING>,
94+ <&adsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
95+ <&adsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
96+ <&adsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
97+ <&adsp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
98+ interrupt-names = "wdog", "fatal", "ready",
99+ "handover", "stop-ack";
100+
101+ clocks = <&rpmhcc RPMH_CXO_CLK>,
102+ <&gcc GCC_LPASS_SWAY_CLK>,
103+ <&lpasscc LPASS_AUDIO_WRAPPER_AON_CLK>,
104+ <&lpasscc LPASS_Q6SS_AHBS_AON_CLK>,
105+ <&lpasscc LPASS_Q6SS_AHBM_AON_CLK>,
106+ <&lpasscc LPASS_QDSP6SS_XO_CLK>,
107+ <&lpasscc LPASS_QDSP6SS_SLEEP_CLK>,
108+ <&lpasscc LPASS_QDSP6SS_CORE_CLK>;
109+ clock-names = "xo", "sway_cbcr", "lpass_aon",
110+ "lpass_ahbs_aon_cbcr",
111+ "lpass_ahbm_aon_cbcr", "qdsp6ss_xo",
112+ "qdsp6ss_sleep", "qdsp6ss_core";
113+
114+ power-domains = <&rpmhpd SDM845_CX>;
115+
116+ resets = <&pdc_reset PDC_AUDIO_SYNC_RESET>,
117+ <&aoss_reset AOSS_CC_LPASS_RESTART>;
118+ reset-names = "pdc_sync", "cc_lpass";
119+
120+ qcom,halt-regs = <&tcsr_mutex_regs 0x22000>;
121+
122+ memory-region = <&pil_adsp_mem>;
123+
124+ qcom,smem-states = <&adsp_smp2p_out 0>;
125+ qcom,smem-state-names = "stop";
126+ };
Documentation/devicetree/bindings/remoteproc/qcom,adsp.txt+5−0
@@ -10,6 +10,11 @@ on the Qualcomm ADSP Hexagon core. · 9 unmodified lines
1010 "qcom,msm8974-adsp-pil"
1111 "qcom,msm8996-adsp-pil"
1212 "qcom,msm8996-slpi-pil"
13+ "qcom,qcs404-adsp-pas"
14+ "qcom,qcs404-cdsp-pas"
15+ "qcom,qcs404-wcss-pas"
16+ "qcom,sdm845-adsp-pas"
17+ "qcom,sdm845-cdsp-pas"
1318
1419 - interrupts-extended:
1520 Usage: required
Documentation/devicetree/bindings/remoteproc/qcom,q6v5.txt+6−2
@@ -53,13 +53,17 @@ on the Qualcomm Hexagon core. · 52 unmodified lines
5353 Definition: reference to the reset-controller for the modem sub-system
5454 reference to the list of 3 reset-controllers for the
5555 wcss sub-system
56+ reference to the list of 2 reset-controllers for the modem
57+ sub-system on SDM845 SoCs
5658
5759 - reset-names:
5860 Usage: required
5961 Value type: <stringlist>
6062 Definition: must be "mss_restart" for the modem sub-system
61− Definition: must be "wcss_aon_reset", "wcss_reset", "wcss_q6_reset"
62− for the wcss syb-system
63+ must be "wcss_aon_reset", "wcss_reset", "wcss_q6_reset"
64+ for the wcss sub-system
65+ must be "mss_restart", "pdc_reset" for the modem
66+ sub-system on SDM845 SoCs
6367
6468 - cx-supply:
6569 - mss-supply:
Documentation/devicetree/bindings/reset/fsl,imx7-src.txt+1−1
@@ -5,7 +5,7 @@ Please also refer to reset.txt in this directory for common reset · 4 unmodified lines
55 controller binding usage.
66
77 Required properties:
8−- compatible: Should be "fsl,imx7-src", "syscon"
8+- compatible: Should be "fsl,imx7d-src", "syscon"
99 - reg: should be register base and length as documented in the
1010 datasheet
1111 - interrupts: Should contain SRC interrupt
Documentation/devicetree/bindings/reset/qcom,pdc-global.txt+52−0
@@ -0,0 +1,52 @@
1+PDC Global
2+======================================
3+
4+This binding describes a reset-controller found on PDC-Global (Power Domain
5+Controller) block for Qualcomm Technologies Inc SDM845 SoCs.
6+
7+Required properties:
8+- compatible:
9+ Usage: required
10+ Value type: <string>
11+ Definition: must be:
12+ "qcom,sdm845-pdc-global"
13+
14+- reg:
15+ Usage: required
16+ Value type: <prop-encoded-array>
17+ Definition: must specify the base address and size of the register
18+ space.
19+
20+- #reset-cells:
21+ Usage: required
22+ Value type: <uint>
23+ Definition: must be 1; cell entry represents the reset index.
24+
25+Example:
26+
27+pdc_reset: reset-controller@b2e0000 {
28+ compatible = "qcom,sdm845-pdc-global";
29+ reg = <0xb2e0000 0x20000>;
30+ #reset-cells = <1>;
31+};
32+
33+PDC reset clients
34+======================================
35+
36+Device nodes that need access to reset lines should
37+specify them as a reset phandle in their corresponding node as
38+specified in reset.txt.
39+
40+For a list of all valid reset indices see
41+<dt-bindings/reset/qcom,sdm845-pdc.h>
42+
43+Example:
44+
45+modem-pil@4080000 {
46+ ...
47+
48+ resets = <&pdc_reset PDC_MODEM_SYNC_RESET>;
49+ reset-names = "pdc_reset";
50+
51+ ...
52+};
Documentation/devicetree/bindings/reset/renesas,rst.txt+3−0
@@ -16,8 +16,11 @@ Required properties: · 15 unmodified lines
1616 - "renesas,<soctype>-rst" for R-Car Gen2 and Gen3, and RZ/G
1717 Examples with soctypes are:
1818 - "renesas,r8a7743-rst" (RZ/G1M)
19+ - "renesas,r8a7744-rst" (RZ/G1N)
1920 - "renesas,r8a7745-rst" (RZ/G1E)
2021 - "renesas,r8a77470-rst" (RZ/G1C)
22+ - "renesas,r8a774a1-rst" (RZ/G2M)
23+ - "renesas,r8a774c0-rst" (RZ/G2E)
2124 - "renesas,r8a7778-reset-wdt" (R-Car M1A)
2225 - "renesas,r8a7779-reset-wdt" (R-Car H1)
2326 - "renesas,r8a7790-rst" (R-Car H2)
Documentation/devicetree/bindings/serial/renesas,sci-serial.txt+6−0
@@ -14,6 +14,10 @@ Required properties: · 13 unmodified lines
1414 - "renesas,scifa-r8a7743" for R8A7743 (RZ/G1M) SCIFA compatible UART.
1515 - "renesas,scifb-r8a7743" for R8A7743 (RZ/G1M) SCIFB compatible UART.
1616 - "renesas,hscif-r8a7743" for R8A7743 (RZ/G1M) HSCIF compatible UART.
17+ - "renesas,scif-r8a7744" for R8A7744 (RZ/G1N) SCIF compatible UART.
18+ - "renesas,scifa-r8a7744" for R8A7744 (RZ/G1N) SCIFA compatible UART.
19+ - "renesas,scifb-r8a7744" for R8A7744 (RZ/G1N) SCIFB compatible UART.
20+ - "renesas,hscif-r8a7744" for R8A7744 (RZ/G1N) HSCIF compatible UART.
1721 - "renesas,scif-r8a7745" for R8A7745 (RZ/G1E) SCIF compatible UART.
1822 - "renesas,scifa-r8a7745" for R8A7745 (RZ/G1E) SCIFA compatible UART.
1923 - "renesas,scifb-r8a7745" for R8A7745 (RZ/G1E) SCIFB compatible UART.
@@ -50,6 +54,8 @@ Required properties: · 30 unmodified lines
5054 - "renesas,hscif-r8a77970" for R8A77970 (R-Car V3M) HSCIF compatible UART.
5155 - "renesas,scif-r8a77980" for R8A77980 (R-Car V3H) SCIF compatible UART.
5256 - "renesas,hscif-r8a77980" for R8A77980 (R-Car V3H) HSCIF compatible UART.
57+ - "renesas,scif-r8a77990" for R8A77990 (R-Car E3) SCIF compatible UART.
58+ - "renesas,hscif-r8a77990" for R8A77990 (R-Car E3) HSCIF compatible UART.
5359 - "renesas,scif-r8a77995" for R8A77995 (R-Car D3) SCIF compatible UART.
5460 - "renesas,hscif-r8a77995" for R8A77995 (R-Car D3) HSCIF compatible UART.
5561 - "renesas,scifa-sh73a0" for SH73A0 (SH-Mobile AG5) SCIFA compatible UART.
Documentation/devicetree/bindings/serial/uniphier-uart.txt+1−2
@@ -7,7 +7,7 @@ Required properties: · 6 unmodified lines
77 - clocks: phandle to the input clock.
88
99 Optional properties:
10−- fifo-size: the RX/TX FIFO size. Defaults to 64 if not specified.
10+-auto-flow-control: enable automatic flow control support.
1111
1212 Example:
1313 aliases {
@@ -19,5 +19,4 @@ Example: · 5 unmodified lines
1919 reg = <0x54006800 0x40>;
2020 interrupts = <0 33 4>;
2121 clocks = <&uart_clk>;
22− fifo-size = <64>;
2322 };
Documentation/devicetree/bindings/soc/amlogic/amlogic,canvas.txt+29−0
@@ -0,0 +1,29 @@
1+Amlogic Canvas
2+================================
3+
4+A canvas is a collection of metadata that describes a pixel buffer.
5+Those metadata include: width, height, phyaddr, wrapping, block mode
6+and endianness.
7+
8+Many IPs within Amlogic SoCs rely on canvas indexes to read/write pixel data
9+rather than use the phy addresses directly. For instance, this is the case for
10+the video decoders and the display.
11+
12+Amlogic SoCs have 256 canvas.
13+
14+Device Tree Bindings:
15+---------------------
16+
17+Video Lookup Table
18+--------------------------
19+
20+Required properties:
21+- compatible: "amlogic,canvas"
22+- reg: Base physical address and size of the canvas registers.
23+
24+Example:
25+
26+canvas: video-lut@48 {
27+ compatible = "amlogic,canvas";
28+ reg = <0x0 0x48 0x0 0x14>;
29+};
Documentation/devicetree/bindings/soc/fsl/cpm_qe/network.txt+6−0
@@ -98,6 +98,12 @@ The property below is dependent on fsl,tdm-interface: · 97 unmodified lines
9898 usage: optional for tdm interface
9999 value type: <empty>
100100 Definition : Internal loopback connecting on TDM layer.
101+- fsl,hmask
102+ usage: optional
103+ Value type: <u16>
104+ Definition: HDLC address recognition. Set to zero to disable
105+ address filtering of packets:
106+ fsl,hmask = /bits/ 16 <0x0000>;
101107
102108 Example for tdm interface:
103109
Documentation/devicetree/bindings/soc/mediatek/pwrap.txt+2−0
@@ -19,10 +19,12 @@ IP Pairing · 18 unmodified lines
1919 Required properties in pwrap device node.
2020 - compatible:
2121 "mediatek,mt2701-pwrap" for MT2701/7623 SoCs
22+ "mediatek,mt6765-pwrap" for MT6765 SoCs
2223 "mediatek,mt6797-pwrap" for MT6797 SoCs
2324 "mediatek,mt7622-pwrap" for MT7622 SoCs
2425 "mediatek,mt8135-pwrap" for MT8135 SoCs
2526 "mediatek,mt8173-pwrap" for MT8173 SoCs
27+ "mediatek,mt8183-pwrap" for MT8183 SoCs
2628 - interrupts: IRQ for pwrap in SOC
2729 - reg-names: Must include the following entries:
2830 "pwrap": Main registers base
Documentation/devicetree/bindings/soc/qcom/qcom,geni-se.txt+2−27
@@ -53,20 +53,8 @@ Required properties: · 52 unmodified lines
5353 - clocks: Serial engine core clock needed by the device.
5454
5555 Qualcomm Technologies Inc. GENI Serial Engine based SPI Controller
56−
57−Required properties:
58−- compatible: Must contain "qcom,geni-spi".
59−- reg: Must contain SPI register location and length.
60−- interrupts: Must contain SPI controller interrupts.
61−- clock-names: Must contain "se".
62−- clocks: Serial engine core clock needed by the device.
63−- spi-max-frequency: Specifies maximum SPI clock frequency, units - Hz.
64−- #address-cells: Must be <1> to define a chip select address on
65− the SPI bus.
66−- #size-cells: Must be <0>.
67−
68−SPI slave nodes must be children of the SPI master node and conform to SPI bus
69−binding as described in Documentation/devicetree/bindings/spi/spi-bus.txt.
56+node binding is described in
57+Documentation/devicetree/bindings/spi/qcom,spi-geni-qcom.txt.
7058
7159 Example:
7260 geniqup@8c0000 {
@@ -103,17 +91,4 @@ Example: · 30 unmodified lines
10391 pinctrl-1 = <&qup_1_uart_3_sleep>;
10492 };
10593
106− spi0: spi@a84000 {
107− compatible = "qcom,geni-spi";
108− reg = <0xa84000 0x4000>;
109− interrupts = <GIC_SPI 354 IRQ_TYPE_LEVEL_HIGH>;
110− clock-names = "se";
111− clocks = <&clock_gcc GCC_QUPV3_WRAP0_S0_CLK>;
112− pinctrl-names = "default", "sleep";
113− pinctrl-0 = <&qup_1_spi_2_active>;
114− pinctrl-1 = <&qup_1_spi_2_sleep>;
115− spi-max-frequency = <19200000>;
116− #address-cells = <1>;
117− #size-cells = <0>;
118− };
11994 }
Documentation/devicetree/bindings/soc/rockchip/grf.txt+2−0
@@ -13,6 +13,7 @@ On RK3328 SoCs, the GRF adds a section for USB2PHYGRF, · 12 unmodified lines
1313 Required Properties:
1414
1515 - compatible: GRF should be one of the following:
16+ - "rockchip,px30-grf", "syscon": for px30
1617 - "rockchip,rk3036-grf", "syscon": for rk3036
1718 - "rockchip,rk3066-grf", "syscon": for rk3066
1819 - "rockchip,rk3188-grf", "syscon": for rk3188
@@ -23,6 +24,7 @@ Required Properties: · 4 unmodified lines
2324 - "rockchip,rk3399-grf", "syscon": for rk3399
2425 - "rockchip,rv1108-grf", "syscon": for rv1108
2526 - compatible: PMUGRF should be one of the following:
27+ - "rockchip,px30-pmugrf", "syscon": for px30
2628 - "rockchip,rk3368-pmugrf", "syscon": for rk3368
2729 - "rockchip,rk3399-pmugrf", "syscon": for rk3399
2830 - compatible: SGRF should be one of the following
Documentation/devicetree/bindings/sound/adi,adau1977.txt+54−0
@@ -0,0 +1,54 @@
1+Analog Devices ADAU1977/ADAU1978/ADAU1979
2+
3+Datasheets:
4+http://www.analog.com/media/en/technical-documentation/data-sheets/ADAU1977.pdf
5+http://www.analog.com/media/en/technical-documentation/data-sheets/ADAU1978.pdf
6+http://www.analog.com/media/en/technical-documentation/data-sheets/ADAU1979.pdf
7+
8+This driver supports both the I2C and SPI bus.
9+
10+Required properties:
11+ - compatible: Should contain one of the following:
12+ "adi,adau1977"
13+ "adi,adau1978"
14+ "adi,adau1979"
15+
16+ - AVDD-supply: analog power supply for the device, please consult
17+ Documentation/devicetree/bindings/regulator/regulator.txt
18+
19+Optional properties:
20+ - reset-gpio: the reset pin for the chip, for more details consult
21+ Documentation/devicetree/bindings/gpio/gpio.txt
22+
23+ - DVDD-supply: supply voltage for the digital core, please consult
24+ Documentation/devicetree/bindings/regulator/regulator.txt
25+
26+For required properties on SPI, please consult
27+Documentation/devicetree/bindings/spi/spi-bus.txt
28+
29+Required properties on I2C:
30+
31+ - reg: The i2c address. Value depends on the state of ADDR0
32+ and ADDR1, as wired in hardware.
33+
34+Examples:
35+
36+ adau1977_spi: adau1977@0 {
37+ compatible = "adi,adau1977";
38+ spi-max-frequency = <600000>;
39+
40+ AVDD-supply = <&regulator>;
41+ DVDD-supply = <&regulator_digital>;
42+
43+ reset_gpio = <&gpio 10 GPIO_ACTIVE_LOW>;
44+ };
45+
46+ adau1977_i2c: adau1977@11 {
47+ compatible = "adi,adau1977";
48+ reg = <0x11>;
49+
50+ AVDD-supply = <&regulator>;
51+ DVDD-supply = <&regulator_digital>;
52+
53+ reset_gpio = <&gpio 10 GPIO_ACTIVE_LOW>;
54+ };
Documentation/devicetree/bindings/sound/amlogic,axg-pdm.txt+24−0
@@ -0,0 +1,24 @@
1+* Amlogic Audio PDM input
2+
3+Required properties:
4+- compatible: 'amlogic,axg-pdm'
5+- reg: physical base address of the controller and length of memory
6+ mapped region.
7+- clocks: list of clock phandle, one for each entry clock-names.
8+- clock-names: should contain the following:
9+ * "pclk" : peripheral clock.
10+ * "dclk" : pdm digital clock
11+ * "sysclk" : dsp system clock
12+- #sound-dai-cells: must be 0.
13+
14+Example of PDM on the A113 SoC:
15+
16+pdm: audio-controller@ff632000 {
17+ compatible = "amlogic,axg-pdm";
18+ reg = <0x0 0xff632000 0x0 0x34>;
19+ #sound-dai-cells = <0>;
20+ clocks = <&clkc_audio AUD_CLKID_PDM>,
21+ <&clkc_audio AUD_CLKID_PDM_DCLK>,
22+ <&clkc_audio AUD_CLKID_PDM_SYSCLK>;
23+ clock-names = "pclk", "dclk", "sysclk";
24+};
Documentation/devicetree/bindings/sound/cs42l51.txt+17−0
@@ -0,0 +1,17 @@
1+CS42L51 audio CODEC
2+
3+Optional properties:
4+
5+ - clocks : a list of phandles + clock-specifiers, one for each entry in
6+ clock-names
7+
8+ - clock-names : must contain "MCLK"
9+
10+Example:
11+
12+cs42l51: cs42l51@4a {
13+ compatible = "cirrus,cs42l51";
14+ reg = <0x4a>;
15+ clocks = <&mclk_prov>;
16+ clock-names = "MCLK";
17+};
Documentation/devicetree/bindings/sound/maxim,max98088.txt+23−0
@@ -0,0 +1,23 @@
1+MAX98088 audio CODEC
2+
3+This device supports I2C only.
4+
5+Required properties:
6+
7+- compatible: "maxim,max98088" or "maxim,max98089".
8+- reg: The I2C address of the device.
9+
10+Optional properties:
11+
12+- clocks: the clock provider of MCLK, see ../clock/clock-bindings.txt section
13+ "consumer" for more information.
14+- clock-names: must be set to "mclk"
15+
16+Example:
17+
18+max98089: codec@10 {
19+ compatible = "maxim,max98089";
20+ reg = <0x10>;
21+ clocks = <&clks IMX6QDL_CLK_CKO2>;
22+ clock-names = "mclk";
23+};
Documentation/devicetree/bindings/sound/mikroe,mikroe-proto.txt+23−0
@@ -0,0 +1,23 @@
1+Mikroe-PROTO audio board
2+
3+Required properties:
4+ - compatible: "mikroe,mikroe-proto"
5+ - dai-format: Must be "i2s".
6+ - i2s-controller: The phandle of the I2S controller.
7+ - audio-codec: The phandle of the WM8731 audio codec.
8+Optional properties:
9+ - model: The user-visible name of this sound complex.
10+ - bitclock-master: Indicates dai-link bit clock master; for details see simple-card.txt (1).
11+ - frame-master: Indicates dai-link frame master; for details see simple-card.txt (1).
12+
13+(1) : There must be the same master for both bit and frame clocks.
14+
15+Example:
16+ sound {
17+ compatible = "mikroe,mikroe-proto";
18+ model = "wm8731 @ sama5d2_xplained";
19+ i2s-controller = <&i2s0>;
20+ audio-codec = <&wm8731>;
21+ dai-format = "i2s";
22+ };
23+};
Documentation/devicetree/bindings/sound/nau8822.txt+16−0
@@ -0,0 +1,16 @@
1+NAU8822 audio CODEC
2+
3+This device supports I2C only.
4+
5+Required properties:
6+
7+ - compatible : "nuvoton,nau8822"
8+
9+ - reg : the I2C address of the device.
10+
11+Example:
12+
13+codec: nau8822@1a {
14+ compatible = "nuvoton,nau8822";
15+ reg = <0x1a>;
16+};
Documentation/devicetree/bindings/sound/pcm3060.txt+17−0
@@ -0,0 +1,17 @@
1+PCM3060 audio CODEC
2+
3+This driver supports both I2C and SPI.
4+
5+Required properties:
6+
7+- compatible: "ti,pcm3060"
8+
9+- reg : the I2C address of the device for I2C, the chip select
10+ number for SPI.
11+
12+Examples:
13+
14+ pcm3060: pcm3060@46 {
15+ compatible = "ti,pcm3060";
16+ reg = <0x46>;
17+ };
Documentation/devicetree/bindings/sound/qcom,q6afe.txt+9−9
@@ -49,7 +49,7 @@ configuration of each dai. Must contain the following properties. · 48 unmodified lines
4949 Usage: required for mi2s interface
5050 Value type: <prop-encoded-array>
5151 Definition: Must be list of serial data lines used by this dai.
52− should be one or more of the 1-4 sd lines.
52+ should be one or more of the 0-3 sd lines.
5353
5454 - qcom,tdm-sync-mode:
5555 Usage: required for tdm interface
@@ -137,42 +137,42 @@ q6afe@4 { · 81 unmodified lines
137137
138138 prim-mi2s-rx@16 {
139139 reg = <16>;
140− qcom,sd-lines = <1 3>;
140+ qcom,sd-lines = <0 2>;
141141 };
142142
143143 prim-mi2s-tx@17 {
144144 reg = <17>;
145− qcom,sd-lines = <2>;
145+ qcom,sd-lines = <1>;
146146 };
147147
148148 sec-mi2s-rx@18 {
149149 reg = <18>;
150− qcom,sd-lines = <1 4>;
150+ qcom,sd-lines = <0 3>;
151151 };
152152
153153 sec-mi2s-tx@19 {
154154 reg = <19>;
155− qcom,sd-lines = <2>;
155+ qcom,sd-lines = <1>;
156156 };
157157
158158 tert-mi2s-rx@20 {
159159 reg = <20>;
160− qcom,sd-lines = <2 4>;
160+ qcom,sd-lines = <1 3>;
161161 };
162162
163163 tert-mi2s-tx@21 {
164164 reg = <21>;
165− qcom,sd-lines = <1>;
165+ qcom,sd-lines = <0>;
166166 };
167167
168168 quat-mi2s-rx@22 {
169169 reg = <22>;
170− qcom,sd-lines = <1>;
170+ qcom,sd-lines = <0>;
171171 };
172172
173173 quat-mi2s-tx@23 {
174174 reg = <23>;
175− qcom,sd-lines = <2>;
175+ qcom,sd-lines = <1>;
176176 };
177177 };
178178 };
Documentation/devicetree/bindings/sound/renesas,rsnd.txt+4−1
@@ -340,10 +340,12 @@ Required properties: · 339 unmodified lines
340340 - compatible : "renesas,rcar_sound-<soctype>", fallbacks
341341 "renesas,rcar_sound-gen1" if generation1, and
342342 "renesas,rcar_sound-gen2" if generation2 (or RZ/G1)
343− "renesas,rcar_sound-gen3" if generation3
343+ "renesas,rcar_sound-gen3" if generation3 (or RZ/G2)
344344 Examples with soctypes are:
345345 - "renesas,rcar_sound-r8a7743" (RZ/G1M)
346+ - "renesas,rcar_sound-r8a7744" (RZ/G1N)
346347 - "renesas,rcar_sound-r8a7745" (RZ/G1E)
348+ - "renesas,rcar_sound-r8a774a1" (RZ/G2M)
347349 - "renesas,rcar_sound-r8a7778" (R-Car M1A)
348350 - "renesas,rcar_sound-r8a7779" (R-Car H1)
349351 - "renesas,rcar_sound-r8a7790" (R-Car H2)
@@ -353,6 +355,7 @@ Required properties: · 3 unmodified lines
353355 - "renesas,rcar_sound-r8a7795" (R-Car H3)
354356 - "renesas,rcar_sound-r8a7796" (R-Car M3-W)
355357 - "renesas,rcar_sound-r8a77965" (R-Car M3-N)
358+ - "renesas,rcar_sound-r8a77990" (R-Car E3)
356359 - reg : Should contain the register physical address.
357360 required register is
358361 SRU/ADG/SSI if generation1
Documentation/devicetree/bindings/sound/st,sta32x.txt+9−0
@@ -19,6 +19,10 @@ Required properties: · 18 unmodified lines
1919
2020 Optional properties:
2121
22+ - clocks, clock-names: Clock specifier for XTI input clock.
23+ If specified, the clock will be enabled when the codec is probed,
24+ and disabled when it is removed. The 'clock-names' must be set to 'xti'.
25+
2226 - st,output-conf: number, Selects the output configuration:
2327 0: 2-channel (full-bridge) power, 2-channel data-out
2428 1: 2 (half-bridge). 1 (full-bridge) on-board power
@@ -39,6 +43,9 @@ Optional properties: · 14 unmodified lines
3943 - st,thermal-warning-recover:
4044 If present, thermal warning recovery is enabled.
4145
46+ - st,fault-detect-recovery:
47+ If present, fault detect recovery is enabled.
48+
4249 - st,thermal-warning-adjustment:
4350 If present, thermal warning adjustment is enabled.
4451
@@ -76,6 +83,8 @@ Example: · 31 unmodified lines
7683 codec: sta32x@38 {
7784 compatible = "st,sta32x";
7885 reg = <0x1c>;
86+ clocks = <&clock>;
87+ clock-names = "xti";
7988 reset-gpios = <&gpio1 19 0>;
8089 power-down-gpios = <&gpio1 16 0>;
8190 st,output-conf = /bits/ 8 <0x3>; // set output to 2-channel
Documentation/devicetree/bindings/sound/st,stm32-sai.txt+7−0
@@ -31,7 +31,11 @@ SAI subnodes required properties: · 30 unmodified lines
3131 - reg: Base address and size of SAI sub-block register set.
3232 - clocks: Must contain one phandle and clock specifier pair
3333 for sai_ck which feeds the internal clock generator.
34+ If the SAI shares a master clock, with another SAI set as MCLK
35+ clock provider, SAI provider phandle must be specified here.
3436 - clock-names: Must contain "sai_ck".
37+ Must also contain "MCLK", if SAI shares a master clock,
38+ with a SAI set as MCLK clock provider.
3539 - dmas: see Documentation/devicetree/bindings/dma/stm32-dma.txt
3640 - dma-names: identifier string for each DMA request line
3741 "tx": if sai sub-block is configured as playback DAI
@@ -51,6 +55,9 @@ SAI subnodes Optional properties: · 13 unmodified lines
5155 configured according to protocol defined in related DAI link node,
5256 such as i2s, left justified, right justified, dsp and pdm protocols.
5357 Note: ac97 protocol is not supported by SAI driver
58+ - #clock-cells: should be 0. This property must be present if the SAI device
59+ is a master clock provider, according to clocks bindings, described in
60+ Documentation/devicetree/bindings/clock/clock-bindings.txt.
5461
5562 The device node should contain one 'port' child node with one child 'endpoint'
5663 node, according to the bindings defined in Documentation/devicetree/bindings/
Documentation/devicetree/bindings/sound/sun4i-i2s.txt+2−0
@@ -10,6 +10,7 @@ Required properties: · 9 unmodified lines
1010 - "allwinner,sun6i-a31-i2s"
1111 - "allwinner,sun8i-a83t-i2s"
1212 - "allwinner,sun8i-h3-i2s"
13+ - "allwinner,sun50i-a64-codec-i2s"
1314 - reg: physical base address of the controller and length of memory mapped
1415 region.
1516 - interrupts: should contain the I2S interrupt.
@@ -26,6 +27,7 @@ Required properties for the following compatibles: · 10 unmodified lines
2627 - "allwinner,sun6i-a31-i2s"
2728 - "allwinner,sun8i-a83t-i2s"
2829 - "allwinner,sun8i-h3-i2s"
30+ - "allwinner,sun50i-a64-codec-i2s"
2931 - resets: phandle to the reset line for this codec
3032
3133 Example:
Documentation/devicetree/bindings/sound/sun50i-codec-analog.txt+12−0
@@ -0,0 +1,12 @@
1+* Allwinner A64 Codec Analog Controls
2+
3+Required properties:
4+- compatible: must be one of the following compatibles:
5+ - "allwinner,sun50i-a64-codec-analog"
6+- reg: must contain the registers location and length
7+
8+Example:
9+ codec_analog: codec-analog@1f015c0 {
10+ compatible = "allwinner,sun50i-a64-codec-analog";
11+ reg = <0x01f015c0 0x4>;
12+ };
Documentation/devicetree/bindings/sound/ts3a227e.txt+1−1
@@ -14,7 +14,7 @@ Required properties: · 13 unmodified lines
1414
1515 Optional properies:
1616 - ti,micbias: Intended MICBIAS voltage (datasheet section 9.6.7).
17− Select 0/1/2/3/4/5/6/7 to specify MACBIAS voltage
17+ Select 0/1/2/3/4/5/6/7 to specify MICBIAS voltage
1818 2.1V/2.2V/2.3V/2.4V/2.5V/2.6V/2.7V/2.8V
1919 Default value is "1" (2.2V).
2020
Documentation/devicetree/bindings/sound/wm8782.txt+17−0
@@ -0,0 +1,17 @@
1+WM8782 stereo ADC
2+
3+This device does not have any control interface or reset pins.
4+
5+Required properties:
6+
7+ - compatible : "wlf,wm8782"
8+ - Vdda-supply : phandle to a regulator for the analog power supply (2.7V - 5.5V)
9+ - Vdd-supply : phandle to a regulator for the digital power supply (2.7V - 3.6V)
10+
11+Example:
12+
13+wm8782: stereo-adc {
14+ compatible = "wlf,wm8782";
15+ Vdda-supply = <&vdda_supply>;
16+ Vdd-supply = <&vdd_supply>;
17+};
Documentation/devicetree/bindings/spi/qcom,spi-geni-qcom.txt+39−0
@@ -0,0 +1,39 @@
1+GENI based Qualcomm Universal Peripheral (QUP) Serial Peripheral Interface (SPI)
2+
3+The QUP v3 core is a GENI based AHB slave that provides a common data path
4+(an output FIFO and an input FIFO) for serial peripheral interface (SPI)
5+mini-core.
6+
7+SPI in master mode supports up to 50MHz, up to four chip selects, programmable
8+data path from 4 bits to 32 bits and numerous protocol variants.
9+
10+Required properties:
11+- compatible: Must contain "qcom,geni-spi".
12+- reg: Must contain SPI register location and length.
13+- interrupts: Must contain SPI controller interrupts.
14+- clock-names: Must contain "se".
15+- clocks: Serial engine core clock needed by the device.
16+- #address-cells: Must be <1> to define a chip select address on
17+ the SPI bus.
18+- #size-cells: Must be <0>.
19+
20+SPI Controller nodes must be child of GENI based Qualcomm Universal
21+Peripharal. Please refer GENI based QUP wrapper controller node bindings
22+described in Documentation/devicetree/bindings/soc/qcom/qcom,geni-se.txt.
23+
24+SPI slave nodes must be children of the SPI master node and conform to SPI bus
25+binding as described in Documentation/devicetree/bindings/spi/spi-bus.txt.
26+
27+Example:
28+ spi0: spi@a84000 {
29+ compatible = "qcom,geni-spi";
30+ reg = <0xa84000 0x4000>;
31+ interrupts = <GIC_SPI 354 IRQ_TYPE_LEVEL_HIGH>;
32+ clock-names = "se";
33+ clocks = <&clock_gcc GCC_QUPV3_WRAP0_S0_CLK>;
34+ pinctrl-names = "default", "sleep";
35+ pinctrl-0 = <&qup_1_spi_2_active>;
36+ pinctrl-1 = <&qup_1_spi_2_sleep>;
37+ #address-cells = <1>;
38+ #size-cells = <0>;
39+ };
Documentation/devicetree/bindings/spi/qcom,spi-qcom-qspi.txt+36−0
@@ -0,0 +1,36 @@
1+Qualcomm Quad Serial Peripheral Interface (QSPI)
2+
3+The QSPI controller allows SPI protocol communication in single, dual, or quad
4+wire transmission modes for read/write access to slaves such as NOR flash.
5+
6+Required properties:
7+- compatible: An SoC specific identifier followed by "qcom,qspi-v1", such as
8+ "qcom,sdm845-qspi", "qcom,qspi-v1"
9+- reg: Should contain the base register location and length.
10+- interrupts: Interrupt number used by the controller.
11+- clocks: Should contain the core and AHB clock.
12+- clock-names: Should be "core" for core clock and "iface" for AHB clock.
13+
14+SPI slave nodes must be children of the SPI master node and can contain
15+properties described in Documentation/devicetree/bindings/spi/spi-bus.txt
16+
17+Example:
18+
19+ qspi: spi@88df000 {
20+ compatible = "qcom,sdm845-qspi", "qcom,qspi-v1";
21+ reg = <0x88df000 0x600>;
22+ #address-cells = <1>;
23+ #size-cells = <0>;
24+ interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
25+ clock-names = "iface", "core";
26+ clocks = <&gcc GCC_QSPI_CNOC_PERIPH_AHB_CLK>,
27+ <&gcc GCC_QSPI_CORE_CLK>;
28+
29+ flash@0 {
30+ compatible = "jedec,spi-nor";
31+ reg = <0>;
32+ spi-max-frequency = <25000000>;
33+ spi-tx-bus-width = <2>;
34+ spi-rx-bus-width = <2>;
35+ };
36+ };
Documentation/devicetree/bindings/spi/sh-msiof.txt+7−1
@@ -2,7 +2,9 @@ Renesas MSIOF spi controller · 1 unmodified line
22
33 Required properties:
44 - compatible : "renesas,msiof-r8a7743" (RZ/G1M)
5+ "renesas,msiof-r8a7744" (RZ/G1N)
56 "renesas,msiof-r8a7745" (RZ/G1E)
7+ "renesas,msiof-r8a774a1" (RZ/G2M)
68 "renesas,msiof-r8a7790" (R-Car H2)
79 "renesas,msiof-r8a7791" (R-Car M2-W)
810 "renesas,msiof-r8a7792" (R-Car V2H)
@@ -11,10 +13,14 @@ Required properties: · 2 unmodified lines
1113 "renesas,msiof-r8a7795" (R-Car H3)
1214 "renesas,msiof-r8a7796" (R-Car M3-W)
1315 "renesas,msiof-r8a77965" (R-Car M3-N)
16+ "renesas,msiof-r8a77970" (R-Car V3M)
17+ "renesas,msiof-r8a77980" (R-Car V3H)
18+ "renesas,msiof-r8a77990" (R-Car E3)
19+ "renesas,msiof-r8a77995" (R-Car D3)
1420 "renesas,msiof-sh73a0" (SH-Mobile AG5)
1521 "renesas,sh-mobile-msiof" (generic SH-Mobile compatibile device)
1622 "renesas,rcar-gen2-msiof" (generic R-Car Gen2 and RZ/G1 compatible device)
17− "renesas,rcar-gen3-msiof" (generic R-Car Gen3 compatible device)
23+ "renesas,rcar-gen3-msiof" (generic R-Car Gen3 and RZ/G2 compatible device)
1824 "renesas,sh-msiof" (deprecated)
1925
2026 When compatible with the generic version, nodes
Documentation/devicetree/bindings/spi/snps,dw-apb-ssi.txt+1−1
@@ -2,7 +2,7 @@ Synopsys DesignWare AMBA 2.0 Synchronous Serial Interface. · 1 unmodified line
22
33 Required properties:
44 - compatible : "snps,dw-apb-ssi" or "mscc,<soc>-spi", where soc is "ocelot" or
5− "jaguar2"
5+ "jaguar2", or "amazon,alpine-dw-apb-ssi"
66 - reg : The register base for the controller. For "mscc,<soc>-spi", a second
77 register set is required (named ICPU_CFG:SPI_MST)
88 - interrupts : One interrupt, used by the controller.
Documentation/devicetree/bindings/spi/spi-fsl-lpspi.txt+1−0
@@ -3,6 +3,7 @@ · 2 unmodified lines
33 Required properties:
44 - compatible :
55 - "fsl,imx7ulp-spi" for LPSPI compatible with the one integrated on i.MX7ULP soc
6+ - "fsl,imx8qxp-spi" for LPSPI compatible with the one integrated on i.MX8QXP soc
67 - reg : address and length of the lpspi master registers
78 - interrupts : lpspi interrupt
89 - clocks : lpspi clock specifier
Documentation/devicetree/bindings/spi/spi-pxa2xx.txt+24−0
@@ -0,0 +1,24 @@
1+PXA2xx SSP SPI Controller
2+
3+Required properties:
4+- compatible: Must be "marvell,mmp2-ssp".
5+- reg: Offset and length of the device's register set.
6+- interrupts: Should be the interrupt number.
7+- clocks: Should contain a single entry describing the clock input.
8+- #address-cells: Number of cells required to define a chip select address.
9+- #size-cells: Should be zero.
10+
11+Optional properties:
12+- cs-gpios: list of GPIO chip selects. See the SPI bus bindings,
13+ Documentation/devicetree/bindings/spi/spi-bus.txt
14+
15+Child nodes represent devices on the SPI bus
16+ See ../spi/spi-bus.txt
17+
18+Example:
19+ ssp1: spi@d4035000 {
20+ compatible = "marvell,mmp2-ssp";
21+ reg = <0xd4035000 0x1000>;
22+ clocks = <&soc_clocks MMP2_CLK_SSP0>;
23+ interrupts = <0>;
24+ };
Documentation/devicetree/bindings/spi/spi-rspi.txt+3−1
@@ -3,7 +3,7 @@ Device tree configuration for Renesas RSPI/QSPI driver · 2 unmodified lines
33 Required properties:
44 - compatible : For Renesas Serial Peripheral Interface on legacy SH:
55 "renesas,rspi-<soctype>", "renesas,rspi" as fallback.
6− For Renesas Serial Peripheral Interface on RZ/A1H:
6+ For Renesas Serial Peripheral Interface on RZ/A:
77 "renesas,rspi-<soctype>", "renesas,rspi-rz" as fallback.
88 For Quad Serial Peripheral Interface on R-Car Gen2 and
99 RZ/G1 devices:
@@ -11,7 +11,9 @@ Required properties: · 1 unmodified line
1111 Examples with soctypes are:
1212 - "renesas,rspi-sh7757" (SH)
1313 - "renesas,rspi-r7s72100" (RZ/A1H)
14+ - "renesas,rspi-r7s9210" (RZ/A2)
1415 - "renesas,qspi-r8a7743" (RZ/G1M)
16+ - "renesas,qspi-r8a7744" (RZ/G1N)
1517 - "renesas,qspi-r8a7745" (RZ/G1E)
1618 - "renesas,qspi-r8a7790" (R-Car H2)
1719 - "renesas,qspi-r8a7791" (R-Car M2-W)
Documentation/devicetree/bindings/spi/spi-slave-mt27xx.txt+32−0
@@ -0,0 +1,32 @@
1+Binding for MTK SPI Slave controller
2+
3+Required properties:
4+- compatible: should be one of the following.
5+ - mediatek,mt2712-spi-slave: for mt2712 platforms
6+- reg: Address and length of the register set for the device.
7+- interrupts: Should contain spi interrupt.
8+- clocks: phandles to input clocks.
9+ It's clock gate, and should be <&infracfg CLK_INFRA_AO_SPI1>.
10+- clock-names: should be "spi" for the clock gate.
11+
12+Optional properties:
13+- assigned-clocks: it's mux clock, should be <&topckgen CLK_TOP_SPISLV_SEL>.
14+- assigned-clock-parents: parent of mux clock.
15+ It's PLL, and should be one of the following.
16+ - <&topckgen CLK_TOP_UNIVPLL1_D2>: specify parent clock 312MHZ.
17+ It's the default one.
18+ - <&topckgen CLK_TOP_UNIVPLL1_D4>: specify parent clock 156MHZ.
19+ - <&topckgen CLK_TOP_UNIVPLL2_D4>: specify parent clock 104MHZ.
20+ - <&topckgen CLK_TOP_UNIVPLL1_D8>: specify parent clock 78MHZ.
21+
22+Example:
23+- SoC Specific Portion:
24+spis1: spi@10013000 {
25+ compatible = "mediatek,mt2712-spi-slave";
26+ reg = <0 0x10013000 0 0x100>;
27+ interrupts = <GIC_SPI 283 IRQ_TYPE_LEVEL_LOW>;
28+ clocks = <&infracfg CLK_INFRA_AO_SPI1>;
29+ clock-names = "spi";
30+ assigned-clocks = <&topckgen CLK_TOP_SPISLV_SEL>;
31+ assigned-clock-parents = <&topckgen CLK_TOP_UNIVPLL1_D2>;
32+};
Documentation/devicetree/bindings/spi/spi-sprd.txt+26−0
@@ -0,0 +1,26 @@
1+Spreadtrum SPI Controller
2+
3+Required properties:
4+- compatible: Should be "sprd,sc9860-spi".
5+- reg: Offset and length of SPI controller register space.
6+- interrupts: Should contain SPI interrupt.
7+- clock-names: Should contain following entries:
8+ "spi" for SPI clock,
9+ "source" for SPI source (parent) clock,
10+ "enable" for SPI module enable clock.
11+- clocks: List of clock input name strings sorted in the same order
12+ as the clock-names property.
13+- #address-cells: The number of cells required to define a chip select
14+ address on the SPI bus. Should be set to 1.
15+- #size-cells: Should be set to 0.
16+
17+Example:
18+spi0: spi@70a00000{
19+ compatible = "sprd,sc9860-spi";
20+ reg = <0 0x70a00000 0 0x1000>;
21+ interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
22+ clock-names = "spi", "source","enable";
23+ clocks = <&clk_spi0>, <&ext_26m>, <&clk_ap_apb_gates 5>;
24+ #address-cells = <1>;
25+ #size-cells = <0>;
26+};
Documentation/devicetree/bindings/spi/spi-stm32-qspi.txt+44−0
@@ -0,0 +1,44 @@
1+* STMicroelectronics Quad Serial Peripheral Interface(QSPI)
2+
3+Required properties:
4+- compatible: should be "st,stm32f469-qspi"
5+- reg: the first contains the register location and length.
6+ the second contains the memory mapping address and length
7+- reg-names: should contain the reg names "qspi" "qspi_mm"
8+- interrupts: should contain the interrupt for the device
9+- clocks: the phandle of the clock needed by the QSPI controller
10+- A pinctrl must be defined to set pins in mode of operation for QSPI transfer
11+
12+Optional properties:
13+- resets: must contain the phandle to the reset controller.
14+
15+A spi flash (NOR/NAND) must be a child of spi node and could have some
16+properties. Also see jedec,spi-nor.txt.
17+
18+Required properties:
19+- reg: chip-Select number (QSPI controller may connect 2 flashes)
20+- spi-max-frequency: max frequency of spi bus
21+
22+Optional property:
23+- spi-rx-bus-width: see ./spi-bus.txt for the description
24+
25+Example:
26+
27+qspi: spi@a0001000 {
28+ compatible = "st,stm32f469-qspi";
29+ reg = <0xa0001000 0x1000>, <0x90000000 0x10000000>;
30+ reg-names = "qspi", "qspi_mm";
31+ interrupts = <91>;
32+ resets = <&rcc STM32F4_AHB3_RESET(QSPI)>;
33+ clocks = <&rcc 0 STM32F4_AHB3_CLOCK(QSPI)>;
34+ pinctrl-names = "default";
35+ pinctrl-0 = <&pinctrl_qspi0>;
36+
37+ flash@0 {
38+ compatible = "jedec,spi-nor";
39+ reg = <0>;
40+ spi-rx-bus-width = <4>;
41+ spi-max-frequency = <108000000>;
42+ ...
43+ };
44+};
Documentation/devicetree/bindings/sram/sunxi-sram.txt+4−0
@@ -18,6 +18,7 @@ Required properties: · 17 unmodified lines
1818 - "allwinner,sun8i-h3-system-control"
1919 - "allwinner,sun50i-a64-sram-controller" (deprecated)
2020 - "allwinner,sun50i-a64-system-control"
21+ - "allwinner,sun50i-h6-system-control", "allwinner,sun50i-a64-system-control"
2122 - reg : sram controller register offset + length
2223
2324 SRAM nodes
@@ -54,6 +55,9 @@ The valid sections compatible for H3 are: · 30 unmodified lines
5455 The valid sections compatible for A64 are:
5556 - allwinner,sun50i-a64-sram-c
5657
58+The valid sections compatible for H6 are:
59+ - allwinner,sun50i-h6-sram-c, allwinner,sun50i-a64-sram-c
60+
5761 Devices using SRAM sections
5862 ---------------------------
5963
Documentation/devicetree/bindings/thermal/qcom-spmi-temp-alarm.txt+5−11
@@ -6,8 +6,7 @@ interrupt signal and status register to identify high PMIC die temperature. · 5 unmodified lines
66
77 Required properties:
88 - compatible: Should contain "qcom,spmi-temp-alarm".
9−- reg: Specifies the SPMI address and length of the controller's
10− registers.
9+- reg: Specifies the SPMI address.
1110 - interrupts: PMIC temperature alarm interrupt.
1211 - #thermal-sensor-cells: Should be 0. See thermal.txt for a description.
1312
@@ -20,7 +19,7 @@ Example: · 6 unmodified lines
2019
2120 pm8941_temp: thermal-alarm@2400 {
2221 compatible = "qcom,spmi-temp-alarm";
23− reg = <0x2400 0x100>;
22+ reg = <0x2400>;
2423 interrupts = <0 0x24 0 IRQ_TYPE_EDGE_RISING>;
2524 #thermal-sensor-cells = <0>;
2625
@@ -36,19 +35,14 @@ Example: · 9 unmodified lines
3635 thermal-sensors = <&pm8941_temp>;
3736
3837 trips {
39− passive {
40− temperature = <1050000>;
38+ stage1 {
39+ temperature = <105000>;
4140 hysteresis = <2000>;
4241 type = "passive";
4342 };
44− alert {
43+ stage2 {
4544 temperature = <125000>;
4645 hysteresis = <2000>;
47− type = "hot";
48− };
49− crit {
50− temperature = <145000>;
51− hysteresis = <2000>;
5246 type = "critical";
5347 };
5448 };
Documentation/devicetree/bindings/thermal/qoriq-thermal.txt+3−3
@@ -1,9 +1,9 @@
11 * Thermal Monitoring Unit (TMU) on Freescale QorIQ SoCs
22
33 Required properties:
4−- compatible : Must include "fsl,qoriq-tmu". The version of the device is
5− determined by the TMU IP Block Revision Register (IPBRR0) at
6− offset 0x0BF8.
4+- compatible : Must include "fsl,qoriq-tmu" or "fsl,imx8mq-tmu". The
5+ version of the device is determined by the TMU IP Block Revision
6+ Register (IPBRR0) at offset 0x0BF8.
77 Table of correspondences between IPBRR0 values and example chips:
88 Value Device
99 ---------- -----
Documentation/devicetree/bindings/thermal/rcar-gen3-thermal.txt+4−1
@@ -7,9 +7,11 @@ inside the LSI. · 6 unmodified lines
77 Required properties:
88 - compatible : "renesas,<soctype>-thermal",
99 Examples with soctypes are:
10+ - "renesas,r8a774a1-thermal" (RZ/G2M)
1011 - "renesas,r8a7795-thermal" (R-Car H3)
1112 - "renesas,r8a7796-thermal" (R-Car M3-W)
1213 - "renesas,r8a77965-thermal" (R-Car M3-N)
14+ - "renesas,r8a77980-thermal" (R-Car V3H)
1315 - reg : Address ranges of the thermal registers. Each sensor
1416 needs one address range. Sorting must be done in
1517 increasing order according to datasheet, i.e.
@@ -19,7 +21,8 @@ Required properties: · 3 unmodified lines
1921
2022 Optional properties:
2123
22−- interrupts : interrupts routed to the TSC (3 for H3, M3-W and M3-N)
24+- interrupts : interrupts routed to the TSC (3 for H3, M3-W, M3-N,
25+ and V3H)
2326 - power-domain : Must contain a reference to the power domain. This
2427 property is mandatory if the thermal sensor instance
2528 is part of a controllable power domain.
Documentation/devicetree/bindings/thermal/rcar-thermal.txt+4−2
@@ -4,15 +4,17 @@ Required properties: · 3 unmodified lines
44 - compatible : "renesas,thermal-<soctype>",
55 "renesas,rcar-gen2-thermal" (with thermal-zone) or
66 "renesas,rcar-thermal" (without thermal-zone) as
7− fallback except R-Car D3.
7+ fallback except R-Car V3M/D3.
88 Examples with soctypes are:
99 - "renesas,thermal-r8a73a4" (R-Mobile APE6)
1010 - "renesas,thermal-r8a7743" (RZ/G1M)
11+ - "renesas,thermal-r8a7744" (RZ/G1N)
1112 - "renesas,thermal-r8a7779" (R-Car H1)
1213 - "renesas,thermal-r8a7790" (R-Car H2)
1314 - "renesas,thermal-r8a7791" (R-Car M2-W)
1415 - "renesas,thermal-r8a7792" (R-Car V2H)
1516 - "renesas,thermal-r8a7793" (R-Car M2-N)
17+ - "renesas,thermal-r8a77970" (R-Car V3M)
1618 - "renesas,thermal-r8a77995" (R-Car D3)
1719 - reg : Address range of the thermal registers.
1820 The 1st reg will be recognized as common register
@@ -21,7 +23,7 @@ Required properties: · 2 unmodified lines
2123 Option properties:
2224
2325 - interrupts : If present should contain 3 interrupts for
24− R-Car D3 or 1 interrupt otherwise.
26+ R-Car V3M/D3 or 1 interrupt otherwise.
2527
2628 Example (non interrupt support):
2729
Documentation/devicetree/bindings/thermal/stm32-thermal.txt+61−0
@@ -0,0 +1,61 @@
1+Binding for Thermal Sensor for STMicroelectronics STM32 series of SoCs.
2+
3+On STM32 SoCs, the Digital Temperature Sensor (DTS) is in charge of managing an
4+analog block which delivers a frequency depending on the internal SoC's
5+temperature. By using a reference frequency, DTS is able to provide a sample
6+number which can be translated into a temperature by the user.
7+
8+DTS provides interrupt notification mechanism by threshold. This mechanism
9+offers two temperature trip points: passive and critical. The first is intended
10+for passive cooling notification while the second is used for over-temperature
11+reset.
12+
13+Required parameters:
14+-------------------
15+
16+compatible: Should be "st,stm32-thermal"
17+reg: This should be the physical base address and length of the
18+ sensor's registers.
19+clocks: Phandle of the clock used by the thermal sensor.
20+ See: Documentation/devicetree/bindings/clock/clock-bindings.txt
21+clock-names: Should be "pclk" for register access clock and reference clock.
22+ See: Documentation/devicetree/bindings/resource-names.txt
23+#thermal-sensor-cells: Should be 0. See ./thermal.txt for a description.
24+interrupts: Standard way to define interrupt number.
25+
26+Example:
27+
28+ thermal-zones {
29+ cpu_thermal: cpu-thermal {
30+ polling-delay-passive = <0>;
31+ polling-delay = <0>;
32+
33+ thermal-sensors = <&thermal>;
34+
35+ trips {
36+ cpu_alert1: cpu-alert1 {
37+ temperature = <85000>;
38+ hysteresis = <0>;
39+ type = "passive";
40+ };
41+
42+ cpu-crit: cpu-crit {
43+ temperature = <120000>;
44+ hysteresis = <0>;
45+ type = "critical";
46+ };
47+ };
48+
49+ cooling-maps {
50+ };
51+ };
52+ };
53+
54+ thermal: thermal@50028000 {
55+ compatible = "st,stm32-thermal";
56+ reg = <0x50028000 0x100>;
57+ clocks = <&rcc TMPSENS>;
58+ clock-names = "pclk";
59+ #thermal-sensor-cells = <0>;
60+ interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
61+ };
Documentation/devicetree/bindings/thermal/thermal.txt+1−1
@@ -152,7 +152,7 @@ Optional property: · 151 unmodified lines
152152 Elem size: one cell the sensors listed in the thermal-sensors property.
153153 Elem type: signed Coefficients defaults to 1, in case this property
154154 is not specified. A simple linear polynomial is used:
155− Z = c0 * x0 + c1 + x1 + ... + c(n-1) * x(n-1) + cn.
155+ Z = c0 * x0 + c1 * x1 + ... + c(n-1) * x(n-1) + cn.
156156
157157 The coefficients are ordered and they match with sensors
158158 by means of sensor ID. Additional coefficients are
Documentation/devicetree/bindings/timer/csky,gx6605s-timer.txt+42−0
@@ -0,0 +1,42 @@
1+=================
2+gx6605s SOC Timer
3+=================
4+
5+The timer is used in gx6605s soc as system timer and the driver
6+contain clk event and clk source.
7+
8+==============================
9+timer node bindings definition
10+==============================
11+
12+ Description: Describes gx6605s SOC timer
13+
14+ PROPERTIES
15+
16+ - compatible
17+ Usage: required
18+ Value type: <string>
19+ Definition: must be "csky,gx6605s-timer"
20+ - reg
21+ Usage: required
22+ Value type: <u32 u32>
23+ Definition: <phyaddr size> in soc from cpu view
24+ - clocks
25+ Usage: required
26+ Value type: phandle + clock specifier cells
27+ Definition: must be input clk node
28+ - interrupt
29+ Usage: required
30+ Value type: <u32>
31+ Definition: must be timer irq num defined by soc
32+
33+Examples:
34+---------
35+
36+ timer0: timer@20a000 {
37+ compatible = "csky,gx6605s-timer";
38+ reg = <0x0020a000 0x400>;
39+ clocks = <&dummy_apb_clk>;
40+ interrupts = <10>;
41+ interrupt-parent = <&intc>;
42+ };
Documentation/devicetree/bindings/timer/csky,mptimer.txt+42−0
@@ -0,0 +1,42 @@
1+============================
2+C-SKY Multi-processors Timer
3+============================
4+
5+C-SKY multi-processors timer is designed for C-SKY SMP system and the
6+regs is accessed by cpu co-processor 4 registers with mtcr/mfcr.
7+
8+ - PTIM_CTLR "cr<0, 14>" Control reg to start reset timer.
9+ - PTIM_TSR "cr<1, 14>" Interrupt cleanup status reg.
10+ - PTIM_CCVR "cr<3, 14>" Current counter value reg.
11+ - PTIM_LVR "cr<6, 14>" Window value reg to triger next event.
12+
13+==============================
14+timer node bindings definition
15+==============================
16+
17+ Description: Describes SMP timer
18+
19+ PROPERTIES
20+
21+ - compatible
22+ Usage: required
23+ Value type: <string>
24+ Definition: must be "csky,mptimer"
25+ - clocks
26+ Usage: required
27+ Value type: <node>
28+ Definition: must be input clk node
29+ - interrupts
30+ Usage: required
31+ Value type: <u32>
32+ Definition: must be timer irq num defined by soc
33+
34+Examples:
35+---------
36+
37+ timer: timer {
38+ compatible = "csky,mptimer";
39+ clocks = <&dummy_apb_clk>;
40+ interrupts = <16>;
41+ interrupt-parent = <&intc>;
42+ };
Documentation/devicetree/bindings/timer/renesas,cmt.txt+9−0
@@ -24,6 +24,8 @@ Required Properties: · 23 unmodified lines
2424 - "renesas,r8a73a4-cmt1" for the 48-bit CMT1 device included in r8a73a4.
2525 - "renesas,r8a7743-cmt0" for the 32-bit CMT0 device included in r8a7743.
2626 - "renesas,r8a7743-cmt1" for the 48-bit CMT1 device included in r8a7743.
27+ - "renesas,r8a7744-cmt0" for the 32-bit CMT0 device included in r8a7744.
28+ - "renesas,r8a7744-cmt1" for the 48-bit CMT1 device included in r8a7744.
2729 - "renesas,r8a7745-cmt0" for the 32-bit CMT0 device included in r8a7745.
2830 - "renesas,r8a7745-cmt1" for the 48-bit CMT1 device included in r8a7745.
2931 - "renesas,r8a7790-cmt0" for the 32-bit CMT0 device included in r8a7790.
@@ -34,6 +36,10 @@ Required Properties: · 4 unmodified lines
3436 - "renesas,r8a7793-cmt1" for the 48-bit CMT1 device included in r8a7793.
3537 - "renesas,r8a7794-cmt0" for the 32-bit CMT0 device included in r8a7794.
3638 - "renesas,r8a7794-cmt1" for the 48-bit CMT1 device included in r8a7794.
39+ - "renesas,r8a77970-cmt0" for the 32-bit CMT0 device included in r8a77970.
40+ - "renesas,r8a77970-cmt1" for the 48-bit CMT1 device included in r8a77970.
41+ - "renesas,r8a77980-cmt0" for the 32-bit CMT0 device included in r8a77980.
42+ - "renesas,r8a77980-cmt1" for the 48-bit CMT1 device included in r8a77980.
3743
3844 - "renesas,rcar-gen2-cmt0" for 32-bit CMT0 devices included in R-Car Gen2
3945 and RZ/G1.
@@ -41,6 +47,9 @@ Required Properties: · 1 unmodified line
4147 and RZ/G1.
4248 These are fallbacks for r8a73a4, R-Car Gen2 and RZ/G1 entries
4349 listed above.
50+ - "renesas,rcar-gen3-cmt0" for 32-bit CMT0 devices included in R-Car Gen3.
51+ - "renesas,rcar-gen3-cmt1" for 48-bit CMT1 devices included in R-Car Gen3.
52+ These are fallbacks for R-Car Gen3 entries listed above.
4453
4554 - reg: base address and length of the registers block for the timer module.
4655 - interrupts: interrupt-specifier for the timer, one per channel.
Documentation/devicetree/bindings/timer/renesas,ostm.txt+2−1
@@ -9,7 +9,8 @@ Channels are independent from each other. · 8 unmodified lines
99 Required Properties:
1010
1111 - compatible: must be one or more of the following:
12− - "renesas,r7s72100-ostm" for the r7s72100 OSTM
12+ - "renesas,r7s72100-ostm" for the R7S72100 (RZ/A1) OSTM
13+ - "renesas,r7s9210-ostm" for the R7S9210 (RZ/A2) OSTM
1314 - "renesas,ostm" for any OSTM
1415 This is a fallback for the above renesas,*-ostm entries
1516
Documentation/devicetree/bindings/timer/renesas,tmu.txt+2−0
@@ -12,6 +12,8 @@ Required Properties: · 11 unmodified lines
1212 - "renesas,tmu-r8a7740" for the r8a7740 TMU
1313 - "renesas,tmu-r8a7778" for the r8a7778 TMU
1414 - "renesas,tmu-r8a7779" for the r8a7779 TMU
15+ - "renesas,tmu-r8a77970" for the r8a77970 TMU
16+ - "renesas,tmu-r8a77980" for the r8a77980 TMU
1517 - "renesas,tmu" for any TMU.
1618 This is a fallback for the above renesas,tmu-* entries
1719
Documentation/devicetree/bindings/trivial-devices.txt+0−11
@@ -21,21 +21,10 @@ adi,adt7490 +/-1C TDM Extended Temp Range I.C · 20 unmodified lines
2121 adi,adxl345 Three-Axis Digital Accelerometer
2222 adi,adxl346 Three-Axis Digital Accelerometer (backward-compatibility value "adi,adxl345" must be listed too)
2323 ams,iaq-core AMS iAQ-Core VOC Sensor
24−amstaos,tsl2571 AMS/TAOS ALS and proximity sensor
25−amstaos,tsl2671 AMS/TAOS ALS and proximity sensor
26−amstaos,tmd2671 AMS/TAOS ALS and proximity sensor
27−amstaos,tsl2771 AMS/TAOS ALS and proximity sensor
28−amstaos,tmd2771 AMS/TAOS ALS and proximity sensor
29−amstaos,tsl2572 AMS/TAOS ALS and proximity sensor
30−amstaos,tsl2672 AMS/TAOS ALS and proximity sensor
31−amstaos,tmd2672 AMS/TAOS ALS and proximity sensor
32−amstaos,tsl2772 AMS/TAOS ALS and proximity sensor
33−amstaos,tmd2772 AMS/TAOS ALS and proximity sensor
3424 at,24c08 i2c serial eeprom (24cxx)
3525 atmel,at97sc3204t i2c trusted platform module (TPM)
3626 capella,cm32181 CM32181: Ambient Light Sensor
3727 capella,cm3232 CM3232: Ambient Light Sensor
38−cirrus,cs42l51 Cirrus Logic CS42L51 audio codec
3928 dallas,ds1374 I2C, 32-Bit Binary Counter Watchdog RTC with Trickle Charger and Reset Input/Output
4029 dallas,ds1631 High-Precision Digital Thermometer
4130 dallas,ds1672 Dallas DS1672 Real-time Clock
Documentation/devicetree/bindings/usb/ci-hdrc-usb2.txt+2−0
@@ -80,6 +80,8 @@ Optional properties: · 79 unmodified lines
8080 controller. It's expected that a mux state of 0 indicates device mode and a
8181 mux state of 1 indicates host mode.
8282 - mux-control-names: Shall be "usb_switch" if mux-controls is specified.
83+- pinctrl-names: Names for optional pin modes in "default", "host", "device"
84+- pinctrl-n: alternate pin modes
8385
8486 i.mx specific properties
8587 - fsl,usbmisc: phandler of non-core register device, with one
Documentation/devicetree/bindings/usb/dwc2.txt+1−0
@@ -6,6 +6,7 @@ Required properties: · 5 unmodified lines
66 - brcm,bcm2835-usb: The DWC2 USB controller instance in the BCM2835 SoC.
77 - hisilicon,hi6220-usb: The DWC2 USB controller instance in the hi6220 SoC.
88 - rockchip,rk3066-usb: The DWC2 USB controller instance in the rk3066 Soc;
9+ - "rockchip,px30-usb", "rockchip,rk3066-usb", "snps,dwc2": for px30 Soc;
910 - "rockchip,rk3188-usb", "rockchip,rk3066-usb", "snps,dwc2": for rk3188 Soc;
1011 - "rockchip,rk3288-usb", "rockchip,rk3066-usb", "snps,dwc2": for rk3288 Soc;
1112 - "lantiq,arx100-usb": The DWC2 USB controller instance in Lantiq ARX SoCs;
Documentation/devicetree/bindings/usb/dwc3.txt+1−0
@@ -19,6 +19,7 @@ Exception for clocks: · 18 unmodified lines
1919 "cavium,octeon-7130-usb-uctl"
2020 "qcom,dwc3"
2121 "samsung,exynos5250-dwusb3"
22+ "samsung,exynos5433-dwusb3"
2223 "samsung,exynos7-dwusb3"
2324 "sprd,sc9860-dwc3"
2425 "st,stih407-dwc3"
Documentation/devicetree/bindings/usb/ehci-mv.txt+23−0
@@ -0,0 +1,23 @@
1+* Marvell PXA/MMP EHCI controller.
2+
3+Required properties:
4+
5+- compatible: must be "marvell,pxau2o-ehci"
6+- reg: physical base addresses of the controller and length of memory mapped region
7+- interrupts: one EHCI controller interrupt should be described here
8+- clocks: phandle list of usb clocks
9+- clock-names: should be "USBCLK"
10+- phys: phandle for the PHY device
11+- phy-names: should be "usb"
12+
13+Example:
14+
15+ ehci0: usb-ehci@d4208000 {
16+ compatible = "marvell,pxau2o-ehci";
17+ reg = <0xd4208000 0x200>;
18+ interrupts = <44>;
19+ clocks = <&soc_clocks MMP2_CLK_USB>;
20+ clock-names = "USBCLK";
21+ phys = <&usb_otg_phy>;
22+ phy-names = "usb";
23+ };
Documentation/devicetree/bindings/usb/exynos-usb.txt+2−0
@@ -83,6 +83,8 @@ Required properties: · 82 unmodified lines
8383 - compatible: should be one of the following -
8484 "samsung,exynos5250-dwusb3": for USB 3.0 DWC3 controller on
8585 Exynos5250/5420.
86+ "samsung,exynos5433-dwusb3": for USB 3.0 DWC3 controller on
87+ Exynos5433.
8688 "samsung,exynos7-dwusb3": for USB 3.0 DWC3 controller on Exynos7.
8789 - #address-cells, #size-cells : should be '1' if the device has sub-nodes
8890 with 'reg' property.
Documentation/devicetree/bindings/usb/faraday,fotg210.txt+35−0
@@ -0,0 +1,35 @@
1+Faraday FOTG Host controller
2+
3+This OTG-capable USB host controller is found in Cortina Systems
4+Gemini and other SoC products.
5+
6+Required properties:
7+- compatible: should be one of:
8+ "faraday,fotg210"
9+ "cortina,gemini-usb", "faraday,fotg210"
10+- reg: should contain one register range i.e. start and length
11+- interrupts: description of the interrupt line
12+
13+Optional properties:
14+- clocks: should contain the IP block clock
15+- clock-names: should be "PCLK" for the IP block clock
16+
17+Required properties for "cortina,gemini-usb" compatible:
18+- syscon: a phandle to the system controller to access PHY registers
19+
20+Optional properties for "cortina,gemini-usb" compatible:
21+- cortina,gemini-mini-b: boolean property that indicates that a Mini-B
22+ OTG connector is in use
23+- wakeup-source: see power/wakeup-source.txt
24+
25+Example for Gemini:
26+
27+usb@68000000 {
28+ compatible = "cortina,gemini-usb", "faraday,fotg210";
29+ reg = <0x68000000 0x1000>;
30+ interrupts = <10 IRQ_TYPE_LEVEL_HIGH>;
31+ clocks = <&cc 12>;
32+ clock-names = "PCLK";
33+ syscon = <&syscon>;
34+ wakeup-source;
35+};
Documentation/devicetree/bindings/usb/fcs,fusb302.txt+25−7
@@ -5,10 +5,19 @@ Required properties : · 4 unmodified lines
55 - reg : I2C slave address
66 - interrupts : Interrupt specifier
77
8−Optional properties :
9−- fcs,operating-sink-microwatt :
10− Minimum amount of power accepted from a sink
11− when negotiating
8+Required sub-node:
9+- connector : The "usb-c-connector" attached to the FUSB302 IC. The bindings
10+ of the connector node are specified in:
11+
12+ Documentation/devicetree/bindings/connector/usb-connector.txt
13+
14+Deprecated properties :
15+- fcs,max-sink-microvolt : Maximum sink voltage accepted by port controller
16+- fcs,max-sink-microamp : Maximum sink current accepted by port controller
17+- fcs,max-sink-microwatt : Maximum sink power accepted by port controller
18+- fcs,operating-sink-microwatt : Minimum amount of power accepted from a sink
19+ when negotiating
20+
1221
1322 Example:
1423
@@ -17,7 +26,16 @@ fusb302: typec-portc@54 { · 2 unmodified lines
1726 reg = <0x54>;
1827 interrupt-parent = <&nmi_intc>;
1928 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
20− fcs,max-sink-microvolt = <12000000>;
21− fcs,max-sink-microamp = <3000000>;
22− fcs,max-sink-microwatt = <36000000>;
29+
30+ usb_con: connector {
31+ compatible = "usb-c-connector";
32+ label = "USB-C";
33+ power-role = "dual";
34+ try-power-role = "sink";
35+ source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
36+ sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)
37+ PDO_VAR(3000, 12000, 3000)
38+ PDO_PPS_APDO(3000, 11000, 3000)>;
39+ op-sink-microwatt = <10000000>;
40+ };
2341 };
Documentation/devicetree/bindings/usb/renesas_usb3.txt+4−2
@@ -2,11 +2,13 @@ Renesas Electronics USB3.0 Peripheral driver · 1 unmodified line
22
33 Required properties:
44 - compatible: Must contain one of the following:
5+ - "renesas,r8a774a1-usb3-peri"
56 - "renesas,r8a7795-usb3-peri"
67 - "renesas,r8a7796-usb3-peri"
78 - "renesas,r8a77965-usb3-peri"
8− - "renesas,rcar-gen3-usb3-peri" for a generic R-Car Gen3 compatible
9− device
9+ - "renesas,r8a77990-usb3-peri"
10+ - "renesas,rcar-gen3-usb3-peri" for a generic R-Car Gen3 or RZ/G2
11+ compatible device
1012
1113 When compatible with the generic version, nodes must list the
1214 SoC-specific version corresponding to the platform first
Documentation/devicetree/bindings/usb/renesas_usbhs.txt+9−2
@@ -4,7 +4,9 @@ Required properties: · 3 unmodified lines
44 - compatible: Must contain one or more of the following:
55
66 - "renesas,usbhs-r8a7743" for r8a7743 (RZ/G1M) compatible device
7+ - "renesas,usbhs-r8a7744" for r8a7744 (RZ/G1N) compatible device
78 - "renesas,usbhs-r8a7745" for r8a7745 (RZ/G1E) compatible device
9+ - "renesas,usbhs-r8a774a1" for r8a774a1 (RZ/G2M) compatible device
810 - "renesas,usbhs-r8a7790" for r8a7790 (R-Car H2) compatible device
911 - "renesas,usbhs-r8a7791" for r8a7791 (R-Car M2-W) compatible device
1012 - "renesas,usbhs-r8a7792" for r8a7792 (R-Car V2H) compatible device
@@ -13,10 +15,11 @@ Required properties: · 2 unmodified lines
1315 - "renesas,usbhs-r8a7795" for r8a7795 (R-Car H3) compatible device
1416 - "renesas,usbhs-r8a7796" for r8a7796 (R-Car M3-W) compatible device
1517 - "renesas,usbhs-r8a77965" for r8a77965 (R-Car M3-N) compatible device
18+ - "renesas,usbhs-r8a77990" for r8a77990 (R-Car E3) compatible device
1619 - "renesas,usbhs-r8a77995" for r8a77995 (R-Car D3) compatible device
1720 - "renesas,usbhs-r7s72100" for r7s72100 (RZ/A1) compatible device
1821 - "renesas,rcar-gen2-usbhs" for R-Car Gen2 or RZ/G1 compatible devices
19− - "renesas,rcar-gen3-usbhs" for R-Car Gen3 compatible device
22+ - "renesas,rcar-gen3-usbhs" for R-Car Gen3 or RZ/G2 compatible devices
2023 - "renesas,rza1-usbhs" for RZ/A1 compatible device
2124
2225 When compatible with the generic version, nodes must list the
@@ -25,7 +28,11 @@ Required properties: · 2 unmodified lines
2528
2629 - reg: Base address and length of the register for the USBHS
2730 - interrupts: Interrupt specifier for the USBHS
28− - clocks: A list of phandle + clock specifier pairs
31+ - clocks: A list of phandle + clock specifier pairs.
32+ - In case of "renesas,rcar-gen3-usbhs", two clocks are required.
33+ First clock should be peripheral and second one should be host.
34+ - In case of except above, one clock is required. First clock
35+ should be peripheral.
2936
3037 Optional properties:
3138 - renesas,buswait: Integer to use BUSWAIT register
Documentation/devicetree/bindings/usb/usb-ehci.txt+5−1
@@ -15,7 +15,11 @@ Optional properties: · 14 unmodified lines
1515 - needs-reset-on-resume : boolean, set this to force EHCI reset after resume
1616 - has-transaction-translator : boolean, set this if EHCI have a Transaction
1717 Translator built into the root hub.
18− - clocks : a list of phandle + clock specifier pairs
18+ - clocks : a list of phandle + clock specifier pairs. In case of Renesas
19+ R-Car Gen3 SoCs:
20+ - if a host only channel: first clock should be host.
21+ - if a USB DRD channel: first clock should be host and second one
22+ should be peripheral.
1923 - phys : see usb-hcd.txt in the current directory
2024 - resets : phandle + reset specifier pair
2125
Documentation/devicetree/bindings/usb/usb-ohci.txt+5−1
@@ -12,7 +12,11 @@ Optional properties: · 11 unmodified lines
1212 - no-big-frame-no : boolean, set if frame_no lives in bits [15:0] of HCCA
1313 - remote-wakeup-connected: remote wakeup is wired on the platform
1414 - num-ports : u32, to override the detected port count
15−- clocks : a list of phandle + clock specifier pairs
15+- clocks : a list of phandle + clock specifier pairs. In case of Renesas
16+ R-Car Gen3 SoCs:
17+ - if a host only channel: first clock should be host.
18+ - if a USB DRD channel: first clock should be host and second one
19+ should be peripheral.
1620 - phys : see usb-hcd.txt in the current directory
1721 - resets : a list of phandle + reset specifier pairs
1822
Documentation/devicetree/bindings/usb/usb-xhci.txt+4−1
@@ -8,6 +8,8 @@ Required properties: · 7 unmodified lines
88 - "marvell,armada-375-xhci" for Armada 375 SoCs
99 - "marvell,armada-380-xhci" for Armada 38x SoCs
1010 - "renesas,xhci-r8a7743" for r8a7743 SoC
11+ - "renesas,xhci-r8a7744" for r8a7744 SoC
12+ - "renesas,xhci-r8a774a1" for r8a774a1 SoC
1113 - "renesas,xhci-r8a7790" for r8a7790 SoC
1214 - "renesas,xhci-r8a7791" for r8a7791 SoC
1315 - "renesas,xhci-r8a7793" for r8a7793 SoC
@@ -17,7 +19,8 @@ Required properties: · 3 unmodified lines
1719 - "renesas,xhci-r8a77990" for r8a77990 SoC
1820 - "renesas,rcar-gen2-xhci" for a generic R-Car Gen2 or RZ/G1 compatible
1921 device
20− - "renesas,rcar-gen3-xhci" for a generic R-Car Gen3 compatible device
22+ - "renesas,rcar-gen3-xhci" for a generic R-Car Gen3 or RZ/G2 compatible
23+ device
2124 - "xhci-platform" (deprecated)
2225
2326 When compatible with the generic version, nodes must list the
Documentation/devicetree/bindings/vendor-prefixes.txt+7−0
@@ -67,6 +67,7 @@ capella Capella Microsystems, Inc · 66 unmodified lines
6767 cascoda Cascoda, Ltd.
6868 cavium Cavium, Inc.
6969 cdns Cadence Design Systems Inc.
70+cdtech CDTech(H.K.) Electronics Limited
7071 ceva Ceva, Inc.
7172 chipidea Chipidea, Inc
7273 chipone ChipOne
@@ -84,6 +85,7 @@ cosmic Cosmic Circuits · 11 unmodified lines
8485 crane Crane Connectivity Solutions
8586 creative Creative Technology Ltd
8687 crystalfontz Crystalfontz America, Inc.
88+csky Hangzhou C-SKY Microsystems Co., Ltd
8789 cubietech Cubietech, Ltd.
8890 cypress Cypress Semiconductor Corporation
8991 cznic CZ.NIC, z.s.p.o.
@@ -114,6 +116,7 @@ elan Elan Microelectronic Corp. · 24 unmodified lines
114116 embest Shenzhen Embest Technology Co., Ltd.
115117 emmicro EM Microelectronic
116118 emtrion emtrion GmbH
119+endless Endless Mobile, Inc.
117120 energymicro Silicon Laboratories (formerly Energy Micro AS)
118121 engicam Engicam S.r.l.
119122 epcos EPCOS AG
@@ -127,6 +130,7 @@ everspin Everspin Technologies, Inc. · 7 unmodified lines
127130 exar Exar Corporation
128131 excito Excito
129132 ezchip EZchip Semiconductor
133+facebook Facebook
130134 fairphone Fairphone B.V.
131135 faraday Faraday Technology Corporation
132136 fastrax Fastrax Oy
@@ -235,6 +239,7 @@ micrel Micrel Inc. · 102 unmodified lines
235239 microchip Microchip Technology Inc.
236240 microcrystal Micro Crystal AG
237241 micron Micron Technology Inc.
242+mikroe MikroElektronika d.o.o.
238243 minix MINIX Technology Ltd.
239244 miramems MiraMEMS Sensing Technology Co., Ltd.
240245 mitsubishi Mitsubishi Electric Corporation
@@ -274,6 +279,7 @@ nxp NXP Semiconductors · 33 unmodified lines
274279 okaya Okaya Electric America, Inc.
275280 oki Oki Electric Industry Co., Ltd.
276281 olimex OLIMEX Ltd.
282+olpc One Laptop Per Child
277283 onion Onion Corporation
278284 onnn ON Semiconductor Corp.
279285 ontat On Tat Industrial Company
@@ -297,6 +303,7 @@ pine64 Pine64 · 17 unmodified lines
297303 pixcir PIXCIR MICROELECTRONICS Co., Ltd
298304 plathome Plat'Home Co., Ltd.
299305 plda PLDA
306+plx Broadcom Corporation (formerly PLX Technology)
300307 portwell Portwell Inc.
301308 poslab Poslab Technology Co., Ltd.
302309 powervr PowerVR (deprecated, use img)
Documentation/devicetree/bindings/watchdog/armada-37xx-wdt.txt+23−0
@@ -0,0 +1,23 @@
1+* Armada 37xx CPU Watchdog Timer Controller
2+
3+Required properties:
4+- compatible : must be "marvell,armada-3700-wdt"
5+- reg : base physical address of the controller and length of memory mapped
6+ region.
7+- clocks : the clock feeding the watchdog timer. See clock-bindings.txt
8+- marvell,system-controller : reference to syscon node for the CPU Miscellaneous
9+ Registers
10+
11+Example:
12+
13+ cpu_misc: system-controller@d000 {
14+ compatible = "marvell,armada-3700-cpu-misc", "syscon";
15+ reg = <0xd000 0x1000>;
16+ };
17+
18+ wdt: watchdog@8300 {
19+ compatible = "marvell,armada-3700-wdt";
20+ reg = <0x8300 0x40>;
21+ marvell,system-controller = <&cpu_misc>;
22+ clocks = <&xtalclk>;
23+ };
Documentation/devicetree/bindings/watchdog/mpc8xxx-wdt.txt+25−0
@@ -0,0 +1,25 @@
1+* Freescale mpc8xxx watchdog driver (For 83xx, 86xx and 8xx)
2+
3+Required properties:
4+- compatible: Shall contain one of the following:
5+ "mpc83xx_wdt" for an mpc83xx
6+ "fsl,mpc8610-wdt" for an mpc86xx
7+ "fsl,mpc823-wdt" for an mpc8xx
8+- reg: base physical address and length of the area hosting the
9+ watchdog registers.
10+ On the 83xx, "Watchdog Timer Registers" area: <0x200 0x100>
11+ On the 86xx, "Watchdog Timer Registers" area: <0xe4000 0x100>
12+ On the 8xx, "General System Interface Unit" area: <0x0 0x10>
13+
14+Optional properties:
15+- reg: additional physical address and length (4) of location of the
16+ Reset Status Register (called RSTRSCR on the mpc86xx)
17+ On the 83xx, it is located at offset 0x910
18+ On the 86xx, it is located at offset 0xe0094
19+ On the 8xx, it is located at offset 0x288
20+
21+Example:
22+ WDT: watchdog@0 {
23+ compatible = "fsl,mpc823-wdt";
24+ reg = <0x0 0x10 0x288 0x4>;
25+ };
Documentation/devicetree/bindings/watchdog/renesas-wdt.txt+2−0
@@ -6,6 +6,7 @@ Required properties: · 5 unmodified lines
66 version.
77 Examples with soctypes are:
88 - "renesas,r8a7743-wdt" (RZ/G1M)
9+ - "renesas,r8a7744-wdt" (RZ/G1N)
910 - "renesas,r8a7745-wdt" (RZ/G1E)
1011 - "renesas,r8a774a1-wdt" (RZ/G2M)
1112 - "renesas,r8a7790-wdt" (R-Car H2)
@@ -20,6 +21,7 @@ Required properties: · 8 unmodified lines
2021 - "renesas,r8a77990-wdt" (R-Car E3)
2122 - "renesas,r8a77995-wdt" (R-Car D3)
2223 - "renesas,r7s72100-wdt" (RZ/A1)
24+ - "renesas,r7s9210-wdt" (RZ/A2)
2325 The generic compatible string must be:
2426 - "renesas,rza-wdt" for RZ/A
2527 - "renesas,rcar-gen2-wdt" for R-Car Gen2 and RZ/G1
Documentation/driver-api/basics.rst+3−0
@@ -121,6 +121,9 @@ Kernel utility functions · 120 unmodified lines
121121 .. kernel-doc:: kernel/rcu/update.c
122122 :export:
123123
124+.. kernel-doc:: include/linux/overflow.h
125+ :internal:
126+
124127 Device Resource Management
125128 --------------------------
126129
Documentation/driver-api/firewire.rst+48−0
@@ -0,0 +1,48 @@
1+===========================================
2+Firewire (IEEE 1394) driver Interface Guide
3+===========================================
4+
5+Introduction and Overview
6+=========================
7+
8+The Linux FireWire subsystem adds some interfaces into the Linux system to
9+ use/maintain+any resource on IEEE 1394 bus.
10+
11+The main purpose of these interfaces is to access address space on each node
12+on IEEE 1394 bus by ISO/IEC 13213 (IEEE 1212) procedure, and to control
13+isochronous resources on the bus by IEEE 1394 procedure.
14+
15+Two types of interfaces are added, according to consumers of the interface. A
16+set of userspace interfaces is available via `firewire character devices`. A set
17+of kernel interfaces is available via exported symbols in `firewire-core` module.
18+
19+Firewire char device data structures
20+====================================
21+
22+.. include:: /ABI/stable/firewire-cdev
23+ :literal:
24+
25+.. kernel-doc:: include/uapi/linux/firewire-cdev.h
26+ :internal:
27+
28+Firewire device probing and sysfs interfaces
29+============================================
30+
31+.. include:: /ABI/stable/sysfs-bus-firewire
32+ :literal:
33+
34+.. kernel-doc:: drivers/firewire/core-device.c
35+ :export:
36+
37+Firewire core transaction interfaces
38+====================================
39+
40+.. kernel-doc:: drivers/firewire/core-transaction.c
41+ :export:
42+
43+Firewire Isochronous I/O interfaces
44+===================================
45+
46+.. kernel-doc:: drivers/firewire/core-iso.c
47+ :export:
48+
Documentation/driver-api/fpga/fpga-bridge.rst+7−30
@@ -4,6 +4,12 @@ FPGA Bridge · 3 unmodified lines
44 API to implement a new FPGA bridge
55 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
66
7+* struct :c:type:`fpga_bridge` — The FPGA Bridge structure
8+* struct :c:type:`fpga_bridge_ops` — Low level Bridge driver ops
9+* :c:func:`devm_fpga_bridge_create()` — Allocate and init a bridge struct
10+* :c:func:`fpga_bridge_register()` — Register a bridge
11+* :c:func:`fpga_bridge_unregister()` — Unregister a bridge
12+
713 .. kernel-doc:: include/linux/fpga/fpga-bridge.h
814 :functions: fpga_bridge
915
@@ -11,39 +17,10 @@ API to implement a new FPGA bridge · 1 unmodified line
1117 :functions: fpga_bridge_ops
1218
1319 .. kernel-doc:: drivers/fpga/fpga-bridge.c
14− :functions: fpga_bridge_create
15−
16−.. kernel-doc:: drivers/fpga/fpga-bridge.c
17− :functions: fpga_bridge_free
20+ :functions: devm_fpga_bridge_create
1821
1922 .. kernel-doc:: drivers/fpga/fpga-bridge.c
2023 :functions: fpga_bridge_register
2124
2225 .. kernel-doc:: drivers/fpga/fpga-bridge.c
2326 :functions: fpga_bridge_unregister
24−
25−API to control an FPGA bridge
26−~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
27−
28−You probably won't need these directly. FPGA regions should handle this.
29−
30−.. kernel-doc:: drivers/fpga/fpga-bridge.c
31− :functions: of_fpga_bridge_get
32−
33−.. kernel-doc:: drivers/fpga/fpga-bridge.c
34− :functions: fpga_bridge_get
35−
36−.. kernel-doc:: drivers/fpga/fpga-bridge.c
37− :functions: fpga_bridge_put
38−
39−.. kernel-doc:: drivers/fpga/fpga-bridge.c
40− :functions: fpga_bridge_get_to_list
41−
42−.. kernel-doc:: drivers/fpga/fpga-bridge.c
43− :functions: of_fpga_bridge_get_to_list
44−
45−.. kernel-doc:: drivers/fpga/fpga-bridge.c
46− :functions: fpga_bridge_enable
47−
48−.. kernel-doc:: drivers/fpga/fpga-bridge.c
49− :functions: fpga_bridge_disable
Documentation/driver-api/fpga/fpga-mgr.rst+14−107
@@ -49,18 +49,14 @@ probe function calls fpga_mgr_register(), such as:: · 48 unmodified lines
4949 * them in priv
5050 */
5151
52− mgr = fpga_mgr_create(dev, "Altera SOCFPGA FPGA Manager",
53− &socfpga_fpga_ops, priv);
52+ mgr = devm_fpga_mgr_create(dev, "Altera SOCFPGA FPGA Manager",
53+ &socfpga_fpga_ops, priv);
5454 if (!mgr)
5555 return -ENOMEM;
5656
5757 platform_set_drvdata(pdev, mgr);
5858
59− ret = fpga_mgr_register(mgr);
60− if (ret)
61− fpga_mgr_free(mgr);
62−
63− return ret;
59+ return fpga_mgr_register(mgr);
6460 }
6561
6662 static int socfpga_fpga_remove(struct platform_device *pdev)
@@ -102,67 +98,19 @@ The ops include a .state function which will determine the state the FPGA is in · 35 unmodified lines
10298 and return a code of type enum fpga_mgr_states. It doesn't result in a change
10399 in state.
104100
105−How to write an image buffer to a supported FPGA
106−------------------------------------------------
107−
108−Some sample code::
109−
110− #include <linux/fpga/fpga-mgr.h>
111−
112− struct fpga_manager *mgr;
113− struct fpga_image_info *info;
114− int ret;
115−
116− /*
117− * Get a reference to FPGA manager. The manager is not locked, so you can
118− * hold onto this reference without it preventing programming.
119− *
120− * This example uses the device node of the manager. Alternatively, use
121− * fpga_mgr_get(dev) instead if you have the device.
122− */
123− mgr = of_fpga_mgr_get(mgr_node);
124−
125− /* struct with information about the FPGA image to program. */
126− info = fpga_image_info_alloc(dev);
127−
128− /* flags indicates whether to do full or partial reconfiguration */
129− info->flags = FPGA_MGR_PARTIAL_RECONFIG;
130−
131− /*
132− * At this point, indicate where the image is. This is pseudo-code; you're
133− * going to use one of these three.
134− */
135− if (image is in a scatter gather table) {
136−
137− info->sgt = [your scatter gather table]
138−
139− } else if (image is in a buffer) {
140−
141− info->buf = [your image buffer]
142− info->count = [image buffer size]
143−
144− } else if (image is in a firmware file) {
145−
146− info->firmware_name = devm_kstrdup(dev, firmware_name, GFP_KERNEL);
147−
148− }
149−
150− /* Get exclusive control of FPGA manager */
151− ret = fpga_mgr_lock(mgr);
152−
153− /* Load the buffer to the FPGA */
154− ret = fpga_mgr_buf_load(mgr, &info, buf, count);
155−
156− /* Release the FPGA manager */
157− fpga_mgr_unlock(mgr);
158− fpga_mgr_put(mgr);
159−
160− /* Deallocate the image info if you're done with it */
161− fpga_image_info_free(info);
162−
163101 API for implementing a new FPGA Manager driver
164102 ----------------------------------------------
165103
104+* ``fpga_mgr_states`` — Values for :c:member:`fpga_manager->state`.
105+* struct :c:type:`fpga_manager` — the FPGA manager struct
106+* struct :c:type:`fpga_manager_ops` — Low level FPGA manager driver ops
107+* :c:func:`devm_fpga_mgr_create` — Allocate and init a manager struct
108+* :c:func:`fpga_mgr_register` — Register an FPGA manager
109+* :c:func:`fpga_mgr_unregister` — Unregister an FPGA manager
110+
111+.. kernel-doc:: include/linux/fpga/fpga-mgr.h
112+ :functions: fpga_mgr_states
113+
166114 .. kernel-doc:: include/linux/fpga/fpga-mgr.h
167115 :functions: fpga_manager
168116
@@ -170,51 +118,10 @@ API for implementing a new FPGA Manager driver · 1 unmodified line
170118 :functions: fpga_manager_ops
171119
172120 .. kernel-doc:: drivers/fpga/fpga-mgr.c
173− :functions: fpga_mgr_create
174−
175−.. kernel-doc:: drivers/fpga/fpga-mgr.c
176− :functions: fpga_mgr_free
121+ :functions: devm_fpga_mgr_create
177122
178123 .. kernel-doc:: drivers/fpga/fpga-mgr.c
179124 :functions: fpga_mgr_register
180125
181126 .. kernel-doc:: drivers/fpga/fpga-mgr.c
182127 :functions: fpga_mgr_unregister
183−
184−API for programming an FPGA
185−---------------------------
186−
187−.. kernel-doc:: include/linux/fpga/fpga-mgr.h
188− :functions: fpga_image_info
189−
190−.. kernel-doc:: include/linux/fpga/fpga-mgr.h
191− :functions: fpga_mgr_states
192−
193−.. kernel-doc:: drivers/fpga/fpga-mgr.c
194− :functions: fpga_image_info_alloc
195−
196−.. kernel-doc:: drivers/fpga/fpga-mgr.c
197− :functions: fpga_image_info_free
198−
199−.. kernel-doc:: drivers/fpga/fpga-mgr.c
200− :functions: of_fpga_mgr_get
201−
202−.. kernel-doc:: drivers/fpga/fpga-mgr.c
203− :functions: fpga_mgr_get
204−
205−.. kernel-doc:: drivers/fpga/fpga-mgr.c
206− :functions: fpga_mgr_put
207−
208−.. kernel-doc:: drivers/fpga/fpga-mgr.c
209− :functions: fpga_mgr_lock
210−
211−.. kernel-doc:: drivers/fpga/fpga-mgr.c
212− :functions: fpga_mgr_unlock
213−
214−.. kernel-doc:: include/linux/fpga/fpga-mgr.h
215− :functions: fpga_mgr_states
216−
217−Note - use :c:func:`fpga_region_program_fpga()` instead of :c:func:`fpga_mgr_load()`
218−
219−.. kernel-doc:: drivers/fpga/fpga-mgr.c
220− :functions: fpga_mgr_load
Documentation/driver-api/fpga/fpga-programming.rst+107−0
@@ -0,0 +1,107 @@
1+In-kernel API for FPGA Programming
2+==================================
3+
4+Overview
5+--------
6+
7+The in-kernel API for FPGA programming is a combination of APIs from
8+FPGA manager, bridge, and regions. The actual function used to
9+trigger FPGA programming is :c:func:`fpga_region_program_fpga()`.
10+
11+:c:func:`fpga_region_program_fpga()` uses functionality supplied by
12+the FPGA manager and bridges. It will:
13+
14+ * lock the region's mutex
15+ * lock the mutex of the region's FPGA manager
16+ * build a list of FPGA bridges if a method has been specified to do so
17+ * disable the bridges
18+ * program the FPGA using info passed in :c:member:`fpga_region->info`.
19+ * re-enable the bridges
20+ * release the locks
21+
22+The struct fpga_image_info specifies what FPGA image to program. It is
23+allocated/freed by :c:func:`fpga_image_info_alloc()` and freed with
24+:c:func:`fpga_image_info_free()`
25+
26+How to program an FPGA using a region
27+-------------------------------------
28+
29+When the FPGA region driver probed, it was given a pointer to an FPGA manager
30+driver so it knows which manager to use. The region also either has a list of
31+bridges to control during programming or it has a pointer to a function that
32+will generate that list. Here's some sample code of what to do next::
33+
34+ #include <linux/fpga/fpga-mgr.h>
35+ #include <linux/fpga/fpga-region.h>
36+
37+ struct fpga_image_info *info;
38+ int ret;
39+
40+ /*
41+ * First, alloc the struct with information about the FPGA image to
42+ * program.
43+ */
44+ info = fpga_image_info_alloc(dev);
45+ if (!info)
46+ return -ENOMEM;
47+
48+ /* Set flags as needed, such as: */
49+ info->flags = FPGA_MGR_PARTIAL_RECONFIG;
50+
51+ /*
52+ * Indicate where the FPGA image is. This is pseudo-code; you're
53+ * going to use one of these three.
54+ */
55+ if (image is in a scatter gather table) {
56+
57+ info->sgt = [your scatter gather table]
58+
59+ } else if (image is in a buffer) {
60+
61+ info->buf = [your image buffer]
62+ info->count = [image buffer size]
63+
64+ } else if (image is in a firmware file) {
65+
66+ info->firmware_name = devm_kstrdup(dev, firmware_name,
67+ GFP_KERNEL);
68+
69+ }
70+
71+ /* Add info to region and do the programming */
72+ region->info = info;
73+ ret = fpga_region_program_fpga(region);
74+
75+ /* Deallocate the image info if you're done with it */
76+ region->info = NULL;
77+ fpga_image_info_free(info);
78+
79+ if (ret)
80+ return ret;
81+
82+ /* Now enumerate whatever hardware has appeared in the FPGA. */
83+
84+API for programming an FPGA
85+---------------------------
86+
87+* :c:func:`fpga_region_program_fpga` — Program an FPGA
88+* :c:type:`fpga_image_info` — Specifies what FPGA image to program
89+* :c:func:`fpga_image_info_alloc()` — Allocate an FPGA image info struct
90+* :c:func:`fpga_image_info_free()` — Free an FPGA image info struct
91+
92+.. kernel-doc:: drivers/fpga/fpga-region.c
93+ :functions: fpga_region_program_fpga
94+
95+FPGA Manager flags
96+
97+.. kernel-doc:: include/linux/fpga/fpga-mgr.h
98+ :doc: FPGA Manager flags
99+
100+.. kernel-doc:: include/linux/fpga/fpga-mgr.h
101+ :functions: fpga_image_info
102+
103+.. kernel-doc:: drivers/fpga/fpga-mgr.c
104+ :functions: fpga_image_info_alloc
105+
106+.. kernel-doc:: drivers/fpga/fpga-mgr.c
107+ :functions: fpga_image_info_free
Documentation/driver-api/fpga/fpga-region.rst+46−45
@@ -34,41 +34,6 @@ fpga_image_info including: · 33 unmodified lines
3434 * flags indicating specifics such as whether the image is for partial
3535 reconfiguration.
3636
37−How to program an FPGA using a region
38−-------------------------------------
39−
40−First, allocate the info struct::
41−
42− info = fpga_image_info_alloc(dev);
43− if (!info)
44− return -ENOMEM;
45−
46−Set flags as needed, i.e.::
47−
48− info->flags |= FPGA_MGR_PARTIAL_RECONFIG;
49−
50−Point to your FPGA image, such as::
51−
52− info->sgt = &sgt;
53−
54−Add info to region and do the programming::
55−
56− region->info = info;
57− ret = fpga_region_program_fpga(region);
58−
59−:c:func:`fpga_region_program_fpga()` operates on info passed in the
60−fpga_image_info (region->info). This function will attempt to:
61−
62− * lock the region's mutex
63− * lock the region's FPGA manager
64− * build a list of FPGA bridges if a method has been specified to do so
65− * disable the bridges
66− * program the FPGA
67− * re-enable the bridges
68− * release the locks
69−
70−Then you will want to enumerate whatever hardware has appeared in the FPGA.
71−
7237 How to add a new FPGA region
7338 ----------------------------
7439
@@ -77,26 +42,62 @@ An example of usage can be seen in the probe function of [#f2]_. · 2 unmodified lines
7742 .. [#f1] ../devicetree/bindings/fpga/fpga-region.txt
7843 .. [#f2] ../../drivers/fpga/of-fpga-region.c
7944
80−API to program an FPGA
81−----------------------
82−
83−.. kernel-doc:: drivers/fpga/fpga-region.c
84− :functions: fpga_region_program_fpga
85−
8645 API to add a new FPGA region
8746 ----------------------------
8847
48+* struct :c:type:`fpga_region` — The FPGA region struct
49+* :c:func:`devm_fpga_region_create` — Allocate and init a region struct
50+* :c:func:`fpga_region_register` — Register an FPGA region
51+* :c:func:`fpga_region_unregister` — Unregister an FPGA region
52+
53+The FPGA region's probe function will need to get a reference to the FPGA
54+Manager it will be using to do the programming. This usually would happen
55+during the region's probe function.
56+
57+* :c:func:`fpga_mgr_get` — Get a reference to an FPGA manager, raise ref count
58+* :c:func:`of_fpga_mgr_get` — Get a reference to an FPGA manager, raise ref count,
59+ given a device node.
60+* :c:func:`fpga_mgr_put` — Put an FPGA manager
61+
62+The FPGA region will need to specify which bridges to control while programming
63+the FPGA. The region driver can build a list of bridges during probe time
64+(:c:member:`fpga_region->bridge_list`) or it can have a function that creates
65+the list of bridges to program just before programming
66+(:c:member:`fpga_region->get_bridges`). The FPGA bridge framework supplies the
67+following APIs to handle building or tearing down that list.
68+
69+* :c:func:`fpga_bridge_get_to_list` — Get a ref of an FPGA bridge, add it to a
70+ list
71+* :c:func:`of_fpga_bridge_get_to_list` — Get a ref of an FPGA bridge, add it to a
72+ list, given a device node
73+* :c:func:`fpga_bridges_put` — Given a list of bridges, put them
74+
8975 .. kernel-doc:: include/linux/fpga/fpga-region.h
9076 :functions: fpga_region
9177
9278 .. kernel-doc:: drivers/fpga/fpga-region.c
93− :functions: fpga_region_create
94−
95−.. kernel-doc:: drivers/fpga/fpga-region.c
96− :functions: fpga_region_free
79+ :functions: devm_fpga_region_create
9780
9881 .. kernel-doc:: drivers/fpga/fpga-region.c
9982 :functions: fpga_region_register
10083
10184 .. kernel-doc:: drivers/fpga/fpga-region.c
10285 :functions: fpga_region_unregister
86+
87+.. kernel-doc:: drivers/fpga/fpga-mgr.c
88+ :functions: fpga_mgr_get
89+
90+.. kernel-doc:: drivers/fpga/fpga-mgr.c
91+ :functions: of_fpga_mgr_get
92+
93+.. kernel-doc:: drivers/fpga/fpga-mgr.c
94+ :functions: fpga_mgr_put
95+
96+.. kernel-doc:: drivers/fpga/fpga-bridge.c
97+ :functions: fpga_bridge_get_to_list
98+
99+.. kernel-doc:: drivers/fpga/fpga-bridge.c
100+ :functions: of_fpga_bridge_get_to_list
101+
102+.. kernel-doc:: drivers/fpga/fpga-bridge.c
103+ :functions: fpga_bridges_put
Documentation/driver-api/fpga/index.rst+2−0
@@ -11,3 +11,5 @@ FPGA Subsystem · 10 unmodified lines
1111 fpga-mgr
1212 fpga-bridge
1313 fpga-region
14+ fpga-programming
15+
Documentation/driver-api/fpga/intro.rst+1−1
@@ -44,7 +44,7 @@ FPGA Region · 43 unmodified lines
4444 -----------
4545
4646 If you are adding a new interface to the FPGA framework, add it on top
47−of an FPGA region to allow the most reuse of your interface.
47+of an FPGA region.
4848
4949 The FPGA Region framework (fpga-region.c) associates managers and
5050 bridges as reconfigurable regions. A region may refer to the whole
Documentation/driver-api/gpio/board.rst+24−0
@@ -193,3 +193,27 @@ And the table can be added to the board code as follows:: · 192 unmodified lines
193193
194194 The line will be hogged as soon as the gpiochip is created or - in case the
195195 chip was created earlier - when the hog table is registered.
196+
197+Arrays of pins
198+--------------
199+In addition to requesting pins belonging to a function one by one, a device may
200+also request an array of pins assigned to the function. The way those pins are
201+mapped to the device determines if the array qualifies for fast bitmap
202+processing. If yes, a bitmap is passed over get/set array functions directly
203+between a caller and a respective .get/set_multiple() callback of a GPIO chip.
204+
205+In order to qualify for fast bitmap processing, the array must meet the
206+following requirements:
207+- pin hardware number of array member 0 must also be 0,
208+- pin hardware numbers of consecutive array members which belong to the same
209+ chip as member 0 does must also match their array indexes.
210+
211+Otherwise fast bitmap processing path is not used in order to avoid consecutive
212+pins which belong to the same chip but are not in hardware order being processed
213+separately.
214+
215+If the array applies for fast bitmap processing path, pins which belong to
216+different chips than member 0 does, as well as those with indexes different from
217+their hardware pin numbers, are excluded from the fast path, both input and
218+output. Moreover, open drain and open source pins are excluded from fast bitmap
219+output processing.
Documentation/driver-api/gpio/consumer.rst+42−22
@@ -109,9 +109,11 @@ For a function using multiple GPIOs all of those can be obtained with one call:: · 108 unmodified lines
109109 enum gpiod_flags flags)
110110
111111 This function returns a struct gpio_descs which contains an array of
112−descriptors::
112+descriptors. It also contains a pointer to a gpiolib private structure which,
113+if passed back to get/set array functions, may speed up I/O proocessing::
113114
114115 struct gpio_descs {
116+ struct gpio_array *info;
115117 unsigned int ndescs;
116118 struct gpio_desc *desc[];
117119 }
@@ -323,29 +325,37 @@ The following functions get or set the values of an array of GPIOs:: · 205 unmodified lines
323325
324326 int gpiod_get_array_value(unsigned int array_size,
325327 struct gpio_desc **desc_array,
326− int *value_array);
328+ struct gpio_array *array_info,
329+ unsigned long *value_bitmap);
327330 int gpiod_get_raw_array_value(unsigned int array_size,
328331 struct gpio_desc **desc_array,
329− int *value_array);
332+ struct gpio_array *array_info,
333+ unsigned long *value_bitmap);
330334 int gpiod_get_array_value_cansleep(unsigned int array_size,
331335 struct gpio_desc **desc_array,
332− int *value_array);
336+ struct gpio_array *array_info,
337+ unsigned long *value_bitmap);
333338 int gpiod_get_raw_array_value_cansleep(unsigned int array_size,
334339 struct gpio_desc **desc_array,
335− int *value_array);
336−
337− void gpiod_set_array_value(unsigned int array_size,
338− struct gpio_desc **desc_array,
339− int *value_array)
340− void gpiod_set_raw_array_value(unsigned int array_size,
341− struct gpio_desc **desc_array,
342− int *value_array)
343− void gpiod_set_array_value_cansleep(unsigned int array_size,
344− struct gpio_desc **desc_array,
345− int *value_array)
346− void gpiod_set_raw_array_value_cansleep(unsigned int array_size,
347− struct gpio_desc **desc_array,
348− int *value_array)
340+ struct gpio_array *array_info,
341+ unsigned long *value_bitmap);
342+
343+ int gpiod_set_array_value(unsigned int array_size,
344+ struct gpio_desc **desc_array,
345+ struct gpio_array *array_info,
346+ unsigned long *value_bitmap)
347+ int gpiod_set_raw_array_value(unsigned int array_size,
348+ struct gpio_desc **desc_array,
349+ struct gpio_array *array_info,
350+ unsigned long *value_bitmap)
351+ int gpiod_set_array_value_cansleep(unsigned int array_size,
352+ struct gpio_desc **desc_array,
353+ struct gpio_array *array_info,
354+ unsigned long *value_bitmap)
355+ int gpiod_set_raw_array_value_cansleep(unsigned int array_size,
356+ struct gpio_desc **desc_array,
357+ struct gpio_array *array_info,
358+ unsigned long *value_bitmap)
349359
350360 The array can be an arbitrary set of GPIOs. The functions will try to access
351361 GPIOs belonging to the same bank or chip simultaneously if supported by the
@@ -356,8 +366,9 @@ accessed sequentially. · 4 unmodified lines
356366 The functions take three arguments:
357367 * array_size - the number of array elements
358368 * desc_array - an array of GPIO descriptors
359− * value_array - an array to store the GPIOs' values (get) or
360− an array of values to assign to the GPIOs (set)
369+ * array_info - optional information obtained from gpiod_array_get()
370+ * value_bitmap - a bitmap to store the GPIOs' values (get) or
371+ a bitmap of values to assign to the GPIOs (set)
361372
362373 The descriptor array can be obtained using the gpiod_get_array() function
363374 or one of its variants. If the group of descriptors returned by that function
@@ -366,16 +377,25 @@ the struct gpio_descs returned by gpiod_get_array():: · 2 unmodified lines
366377
367378 struct gpio_descs *my_gpio_descs = gpiod_get_array(...);
368379 gpiod_set_array_value(my_gpio_descs->ndescs, my_gpio_descs->desc,
369− my_gpio_values);
380+ my_gpio_descs->info, my_gpio_value_bitmap);
370381
371382 It is also possible to access a completely arbitrary array of descriptors. The
372383 descriptors may be obtained using any combination of gpiod_get() and
373384 gpiod_get_array(). Afterwards the array of descriptors has to be setup
374−manually before it can be passed to one of the above functions.
385+manually before it can be passed to one of the above functions. In that case,
386+array_info should be set to NULL.
375387
376388 Note that for optimal performance GPIOs belonging to the same chip should be
377389 contiguous within the array of descriptors.
378390
391+Still better performance may be achieved if array indexes of the descriptors
392+match hardware pin numbers of a single chip. If an array passed to a get/set
393+array function matches the one obtained from gpiod_get_array() and array_info
394+associated with the array is also passed, the function may take a fast bitmap
395+processing path, passing the value_bitmap argument directly to the respective
396+.get/set_multiple() callback of the chip. That allows for utilization of GPIO
397+banks as data I/O ports without much loss of performance.
398+
379399 The return value of gpiod_get_array_value() and its variants is 0 on success
380400 or negative on error. Note the difference to gpiod_get_value(), which returns
381401 0 or 1 on success to convey the GPIO value. With the array functions, the GPIO
Documentation/driver-api/gpio/driver.rst+22−1
@@ -374,7 +374,28 @@ When implementing an irqchip inside a GPIO driver, these two functions should · 373 unmodified lines
374374 typically be called in the .startup() and .shutdown() callbacks from the
375375 irqchip.
376376
377−When using the gpiolib irqchip helpers, these callback are automatically
377+When using the gpiolib irqchip helpers, these callbacks are automatically
378+assigned.
379+
380+
381+Disabling and enabling IRQs
382+---------------------------
383+When a GPIO is used as an IRQ signal, then gpiolib also needs to know if
384+the IRQ is enabled or disabled. In order to inform gpiolib about this,
385+a driver should call::
386+
387+ void gpiochip_disable_irq(struct gpio_chip *chip, unsigned int offset)
388+
389+This allows drivers to drive the GPIO as an output while the IRQ is
390+disabled. When the IRQ is enabled again, a driver should call::
391+
392+ void gpiochip_enable_irq(struct gpio_chip *chip, unsigned int offset)
393+
394+When implementing an irqchip inside a GPIO driver, these two functions should
395+typically be called in the .irq_disable() and .irq_enable() callbacks from the
396+irqchip.
397+
398+When using the gpiolib irqchip helpers, these callbacks are automatically
378399 assigned.
379400
380401 Real-Time compliance for GPIO IRQ chips
Documentation/driver-api/gpio/index.rst+1−1
@@ -38,7 +38,7 @@ Device tree support · 37 unmodified lines
3838 Device-managed API
3939 ==================
4040
41−.. kernel-doc:: drivers/gpio/devres.c
41+.. kernel-doc:: drivers/gpio/gpiolib-devres.c
4242 :export:
4343
4444 sysfs helpers
Documentation/driver-api/index.rst+2−1
@@ -29,7 +29,8 @@ available subsections can be seen below. · 28 unmodified lines
2929 iio/index
3030 input
3131 usb/index
32− pci
32+ firewire
33+ pci/index
3334 spi
3435 i2c
3536 hsi
Documentation/driver-api/mtdnand.rst+17−17
@@ -180,10 +180,10 @@ by a chip select decoder. · 179 unmodified lines
180180 {
181181 struct nand_chip *this = mtd_to_nand(mtd);
182182 switch(cmd){
183− case NAND_CTL_SETCLE: this->IO_ADDR_W |= CLE_ADRR_BIT; break;
184− case NAND_CTL_CLRCLE: this->IO_ADDR_W &= ~CLE_ADRR_BIT; break;
185− case NAND_CTL_SETALE: this->IO_ADDR_W |= ALE_ADRR_BIT; break;
186− case NAND_CTL_CLRALE: this->IO_ADDR_W &= ~ALE_ADRR_BIT; break;
183+ case NAND_CTL_SETCLE: this->legacy.IO_ADDR_W |= CLE_ADRR_BIT; break;
184+ case NAND_CTL_CLRCLE: this->legacy.IO_ADDR_W &= ~CLE_ADRR_BIT; break;
185+ case NAND_CTL_SETALE: this->legacy.IO_ADDR_W |= ALE_ADRR_BIT; break;
186+ case NAND_CTL_CLRALE: this->legacy.IO_ADDR_W &= ~ALE_ADRR_BIT; break;
187187 }
188188 }
189189
@@ -197,7 +197,7 @@ to read back the state of the pin. The function has no arguments and · 7 unmodified lines
197197 should return 0, if the device is busy (R/B pin is low) and 1, if the
198198 device is ready (R/B pin is high). If the hardware interface does not
199199 give access to the ready busy pin, then the function must not be defined
200−and the function pointer this->dev_ready is set to NULL.
200+and the function pointer this->legacy.dev_ready is set to NULL.
201201
202202 Init function
203203 -------------
@@ -235,18 +235,18 @@ necessary information about the device. · 31 unmodified lines
235235 }
236236
237237 /* Set address of NAND IO lines */
238− this->IO_ADDR_R = baseaddr;
239− this->IO_ADDR_W = baseaddr;
238+ this->legacy.IO_ADDR_R = baseaddr;
239+ this->legacy.IO_ADDR_W = baseaddr;
240240 /* Reference hardware control function */
241241 this->hwcontrol = board_hwcontrol;
242242 /* Set command delay time, see datasheet for correct value */
243− this->chip_delay = CHIP_DEPENDEND_COMMAND_DELAY;
243+ this->legacy.chip_delay = CHIP_DEPENDEND_COMMAND_DELAY;
244244 /* Assign the device ready function, if available */
245− this->dev_ready = board_dev_ready;
245+ this->legacy.dev_ready = board_dev_ready;
246246 this->eccmode = NAND_ECC_SOFT;
247247
248248 /* Scan to find existence of the device */
249− if (nand_scan (board_mtd, 1)) {
249+ if (nand_scan (this, 1)) {
250250 err = -ENXIO;
251251 goto out_ior;
252252 }
@@ -277,7 +277,7 @@ unregisters the partitions in the MTD layer. · 24 unmodified lines
277277 static void __exit board_cleanup (void)
278278 {
279279 /* Release resources, unregister device */
280− nand_release (board_mtd);
280+ nand_release (mtd_to_nand(board_mtd));
281281
282282 /* unmap physical address */
283283 iounmap(baseaddr);
@@ -336,17 +336,17 @@ connected to an address decoder. · 52 unmodified lines
336336 struct nand_chip *this = mtd_to_nand(mtd);
337337
338338 /* Deselect all chips */
339− this->IO_ADDR_R &= ~BOARD_NAND_ADDR_MASK;
340− this->IO_ADDR_W &= ~BOARD_NAND_ADDR_MASK;
339+ this->legacy.IO_ADDR_R &= ~BOARD_NAND_ADDR_MASK;
340+ this->legacy.IO_ADDR_W &= ~BOARD_NAND_ADDR_MASK;
341341 switch (chip) {
342342 case 0:
343− this->IO_ADDR_R |= BOARD_NAND_ADDR_CHIP0;
344− this->IO_ADDR_W |= BOARD_NAND_ADDR_CHIP0;
343+ this->legacy.IO_ADDR_R |= BOARD_NAND_ADDR_CHIP0;
344+ this->legacy.IO_ADDR_W |= BOARD_NAND_ADDR_CHIP0;
345345 break;
346346 ....
347347 case n:
348− this->IO_ADDR_R |= BOARD_NAND_ADDR_CHIPn;
349− this->IO_ADDR_W |= BOARD_NAND_ADDR_CHIPn;
348+ this->legacy.IO_ADDR_R |= BOARD_NAND_ADDR_CHIPn;
349+ this->legacy.IO_ADDR_W |= BOARD_NAND_ADDR_CHIPn;
350350 break;
351351 }
352352 }
Documentation/driver-api/pci/index.rst+22−0
@@ -0,0 +1,22 @@
1+.. SPDX-License-Identifier: GPL-2.0
2+
3+============================================
4+The Linux PCI driver implementer's API guide
5+============================================
6+
7+.. class:: toc-title
8+
9+ Table of contents
10+
11+.. toctree::
12+ :maxdepth: 2
13+
14+ pci
15+ p2pdma
16+
17+.. only:: subproject and html
18+
19+ Indices
20+ =======
21+
22+ * :ref:`genindex`
Documentation/driver-api/pci/p2pdma.rst+145−0
@@ -0,0 +1,145 @@
1+.. SPDX-License-Identifier: GPL-2.0
2+
3+============================
4+PCI Peer-to-Peer DMA Support
5+============================
6+
7+The PCI bus has pretty decent support for performing DMA transfers
8+between two devices on the bus. This type of transaction is henceforth
9+called Peer-to-Peer (or P2P). However, there are a number of issues that
10+make P2P transactions tricky to do in a perfectly safe way.
11+
12+One of the biggest issues is that PCI doesn't require forwarding
13+transactions between hierarchy domains, and in PCIe, each Root Port
14+defines a separate hierarchy domain. To make things worse, there is no
15+simple way to determine if a given Root Complex supports this or not.
16+(See PCIe r4.0, sec 1.3.1). Therefore, as of this writing, the kernel
17+only supports doing P2P when the endpoints involved are all behind the
18+same PCI bridge, as such devices are all in the same PCI hierarchy
19+domain, and the spec guarantees that all transactions within the
20+hierarchy will be routable, but it does not require routing
21+between hierarchies.
22+
23+The second issue is that to make use of existing interfaces in Linux,
24+memory that is used for P2P transactions needs to be backed by struct
25+pages. However, PCI BARs are not typically cache coherent so there are
26+a few corner case gotchas with these pages so developers need to
27+be careful about what they do with them.
28+
29+
30+Driver Writer's Guide
31+=====================
32+
33+In a given P2P implementation there may be three or more different
34+types of kernel drivers in play:
35+
36+* Provider - A driver which provides or publishes P2P resources like
37+ memory or doorbell registers to other drivers.
38+* Client - A driver which makes use of a resource by setting up a
39+ DMA transaction to or from it.
40+* Orchestrator - A driver which orchestrates the flow of data between
41+ clients and providers.
42+
43+In many cases there could be overlap between these three types (i.e.,
44+it may be typical for a driver to be both a provider and a client).
45+
46+For example, in the NVMe Target Copy Offload implementation:
47+
48+* The NVMe PCI driver is both a client, provider and orchestrator
49+ in that it exposes any CMB (Controller Memory Buffer) as a P2P memory
50+ resource (provider), it accepts P2P memory pages as buffers in requests
51+ to be used directly (client) and it can also make use of the CMB as
52+ submission queue entries (orchastrator).
53+* The RDMA driver is a client in this arrangement so that an RNIC
54+ can DMA directly to the memory exposed by the NVMe device.
55+* The NVMe Target driver (nvmet) can orchestrate the data from the RNIC
56+ to the P2P memory (CMB) and then to the NVMe device (and vice versa).
57+
58+This is currently the only arrangement supported by the kernel but
59+one could imagine slight tweaks to this that would allow for the same
60+functionality. For example, if a specific RNIC added a BAR with some
61+memory behind it, its driver could add support as a P2P provider and
62+then the NVMe Target could use the RNIC's memory instead of the CMB
63+in cases where the NVMe cards in use do not have CMB support.
64+
65+
66+Provider Drivers
67+----------------
68+
69+A provider simply needs to register a BAR (or a portion of a BAR)
70+as a P2P DMA resource using :c:func:`pci_p2pdma_add_resource()`.
71+This will register struct pages for all the specified memory.
72+
73+After that it may optionally publish all of its resources as
74+P2P memory using :c:func:`pci_p2pmem_publish()`. This will allow
75+any orchestrator drivers to find and use the memory. When marked in
76+this way, the resource must be regular memory with no side effects.
77+
78+For the time being this is fairly rudimentary in that all resources
79+are typically going to be P2P memory. Future work will likely expand
80+this to include other types of resources like doorbells.
81+
82+
83+Client Drivers
84+--------------
85+
86+A client driver typically only has to conditionally change its DMA map
87+routine to use the mapping function :c:func:`pci_p2pdma_map_sg()` instead
88+of the usual :c:func:`dma_map_sg()` function. Memory mapped in this
89+way does not need to be unmapped.
90+
91+The client may also, optionally, make use of
92+:c:func:`is_pci_p2pdma_page()` to determine when to use the P2P mapping
93+functions and when to use the regular mapping functions. In some
94+situations, it may be more appropriate to use a flag to indicate a
95+given request is P2P memory and map appropriately. It is important to
96+ensure that struct pages that back P2P memory stay out of code that
97+does not have support for them as other code may treat the pages as
98+regular memory which may not be appropriate.
99+
100+
101+Orchestrator Drivers
102+--------------------
103+
104+The first task an orchestrator driver must do is compile a list of
105+all client devices that will be involved in a given transaction. For
106+example, the NVMe Target driver creates a list including the namespace
107+block device and the RNIC in use. If the orchestrator has access to
108+a specific P2P provider to use it may check compatibility using
109+:c:func:`pci_p2pdma_distance()` otherwise it may find a memory provider
110+that's compatible with all clients using :c:func:`pci_p2pmem_find()`.
111+If more than one provider is supported, the one nearest to all the clients will
112+be chosen first. If more than one provider is an equal distance away, the
113+one returned will be chosen at random (it is not an arbitrary but
114+truely random). This function returns the PCI device to use for the provider
115+with a reference taken and therefore when it's no longer needed it should be
116+returned with pci_dev_put().
117+
118+Once a provider is selected, the orchestrator can then use
119+:c:func:`pci_alloc_p2pmem()` and :c:func:`pci_free_p2pmem()` to
120+allocate P2P memory from the provider. :c:func:`pci_p2pmem_alloc_sgl()`
121+and :c:func:`pci_p2pmem_free_sgl()` are convenience functions for
122+allocating scatter-gather lists with P2P memory.
123+
124+Struct Page Caveats
125+-------------------
126+
127+Driver writers should be very careful about not passing these special
128+struct pages to code that isn't prepared for it. At this time, the kernel
129+interfaces do not have any checks for ensuring this. This obviously
130+precludes passing these pages to userspace.
131+
132+P2P memory is also technically IO memory but should never have any side
133+effects behind it. Thus, the order of loads and stores should not be important
134+and ioreadX(), iowriteX() and friends should not be necessary.
135+However, as the memory is not cache coherent, if access ever needs to
136+be protected by a spinlock then :c:func:`mmiowb()` must be used before
137+unlocking the lock. (See ACQUIRES VS I/O ACCESSES in
138+Documentation/memory-barriers.txt)
139+
140+
141+P2P DMA Support Library
142+=======================
143+
144+.. kernel-doc:: drivers/pci/p2pdma.c
145+ :export:
Documentation/driver-api/pci/pci.rstrenamed from Documentation/driver-api/pci.rst+0−0

File renamed without changes.

Documentation/driver-api/soundwire/stream.rst+36−0
@@ -101,6 +101,34 @@ interface. :: · 100 unmodified lines
101101 +--------------------+ | |
102102 +----------------+
103103
104+Example 5: Stereo Stream with L and R channel is rendered by 2 Masters, each
105+rendering one channel, and is received by two different Slaves, each
106+receiving one channel. Both Masters and both Slaves are using single port. ::
107+
108+ +---------------+ Clock Signal +---------------+
109+ | Master +----------------------------------+ Slave |
110+ | Interface | | Interface |
111+ | 1 | | 1 |
112+ | | Data Signal | |
113+ | L +----------------------------------+ L |
114+ | (Data) | Data Direction | (Data) |
115+ +---------------+ +-----------------------> +---------------+
116+
117+ +---------------+ Clock Signal +---------------+
118+ | Master +----------------------------------+ Slave |
119+ | Interface | | Interface |
120+ | 2 | | 2 |
121+ | | Data Signal | |
122+ | R +----------------------------------+ R |
123+ | (Data) | Data Direction | (Data) |
124+ +---------------+ +-----------------------> +---------------+
125+
126+Note: In multi-link cases like above, to lock, one would acquire a global
127+lock and then go on locking bus instances. But, in this case the caller
128+framework(ASoC DPCM) guarantees that stream operations on a card are
129+always serialized. So, there is no race condition and hence no need for
130+global lock.
131+
104132 SoundWire Stream Management flow
105133 ================================
106134
@@ -174,6 +202,7 @@ per stream. From ASoC DPCM framework, this stream state maybe linked to · 67 unmodified lines
174202 .startup() operation.
175203
176204 .. code-block:: c
205+
177206 int sdw_alloc_stream(char * stream_name);
178207
179208
@@ -200,6 +229,7 @@ only be invoked once by respective Master(s) and Slave(s). From ASoC DPCM · 20 unmodified lines
200229 framework, this stream state is linked to .hw_params() operation.
201230
202231 .. code-block:: c
232+
203233 int sdw_stream_add_master(struct sdw_bus * bus,
204234 struct sdw_stream_config * stream_config,
205235 struct sdw_ports_config * ports_config,
@@ -245,6 +275,7 @@ stream. From ASoC DPCM framework, this stream state is linked to · 39 unmodified lines
245275 .prepare() operation.
246276
247277 .. code-block:: c
278+
248279 int sdw_prepare_stream(struct sdw_stream_runtime * stream);
249280
250281
@@ -274,6 +305,7 @@ stream. From ASoC DPCM framework, this stream state is linked to · 23 unmodified lines
274305 .trigger() start operation.
275306
276307 .. code-block:: c
308+
277309 int sdw_enable_stream(struct sdw_stream_runtime * stream);
278310
279311 SDW_STREAM_DISABLED
@@ -301,6 +333,7 @@ per stream. From ASoC DPCM framework, this stream state is linked to · 21 unmodified lines
301333 .trigger() stop operation.
302334
303335 .. code-block:: c
336+
304337 int sdw_disable_stream(struct sdw_stream_runtime * stream);
305338
306339
@@ -325,6 +358,7 @@ per stream. From ASoC DPCM framework, this stream state is linked to · 18 unmodified lines
325358 .trigger() stop operation.
326359
327360 .. code-block:: c
361+
328362 int sdw_deprepare_stream(struct sdw_stream_runtime * stream);
329363
330364
@@ -349,6 +383,7 @@ all the Master(s) and Slave(s) associated with stream. From ASoC DPCM · 18 unmodified lines
349383 framework, this stream state is linked to .hw_free() operation.
350384
351385 .. code-block:: c
386+
352387 int sdw_stream_remove_master(struct sdw_bus * bus,
353388 struct sdw_stream_runtime * stream);
354389 int sdw_stream_remove_slave(struct sdw_slave * slave,
@@ -361,6 +396,7 @@ stream assigned as part of ALLOCATED state. · 6 unmodified lines
361396 In .shutdown() the data structure maintaining stream state are freed up.
362397
363398 .. code-block:: c
399+
364400 void sdw_release_stream(struct sdw_stream_runtime * stream);
365401
366402 Not Supported
Documentation/driver-api/uio-howto.rst+2−2
@@ -463,8 +463,8 @@ Getting information about your UIO device · 462 unmodified lines
463463
464464 Information about all UIO devices is available in sysfs. The first thing
465465 you should do in your driver is check ``name`` and ``version`` to make
466−sure your talking to the right device and that its kernel driver has the
467−version you expect.
466+sure you're talking to the right device and that its kernel driver has
467+the version you expect.
468468
469469 You should also make sure that the memory mapping you need exists and
470470 has the size you expect.
Documentation/efi-stub.txt+14−3
@@ -83,7 +83,18 @@ is passed to bzImage.efi. · 82 unmodified lines
8383 The "dtb=" option
8484 -----------------
8585
86−For the ARM and arm64 architectures, we also need to be able to provide a
87−device tree to the kernel. This is done with the "dtb=" command line option,
88−and is processed in the same manner as the "initrd=" option that is
86+For the ARM and arm64 architectures, a device tree must be provided to
87+the kernel. Normally firmware shall supply the device tree via the
88+EFI CONFIGURATION TABLE. However, the "dtb=" command line option can
89+be used to override the firmware supplied device tree, or to supply
90+one when firmware is unable to.
91+
92+Please note: Firmware adds runtime configuration information to the
93+device tree before booting the kernel. If dtb= is used to override
94+the device tree, then any runtime data provided by firmware will be
95+lost. The dtb= option should only be used either as a debug tool, or
96+as a last resort when a device tree is not provided in the EFI
97+CONFIGURATION TABLE.
98+
99+"dtb=" is processed in the same manner as the "initrd=" option that is
89100 described above.
Documentation/fb/00-INDEX+0−75
@@ -1,75 +0,0 @@
1−Index of files in Documentation/fb. If you think something about frame
2−buffer devices needs an entry here, needs correction or you've written one
3−please mail me.
4− Geert Uytterhoeven <geert@linux-m68k.org>
5−
6−00-INDEX
7− - this file.
8−api.txt
9− - The frame buffer API between applications and buffer devices.
10−arkfb.txt
11− - info on the fbdev driver for ARK Logic chips.
12−aty128fb.txt
13− - info on the ATI Rage128 frame buffer driver.
14−cirrusfb.txt
15− - info on the driver for Cirrus Logic chipsets.
16−cmap_xfbdev.txt
17− - an introduction to fbdev's cmap structures.
18−deferred_io.txt
19− - an introduction to deferred IO.
20−efifb.txt
21− - info on the EFI platform driver for Intel based Apple computers.
22−ep93xx-fb.txt
23− - info on the driver for EP93xx LCD controller.
24−fbcon.txt
25− - intro to and usage guide for the framebuffer console (fbcon).
26−framebuffer.txt
27− - introduction to frame buffer devices.
28−gxfb.txt
29− - info on the framebuffer driver for AMD Geode GX2 based processors.
30−intel810.txt
31− - documentation for the Intel 810/815 framebuffer driver.
32−intelfb.txt
33− - docs for Intel 830M/845G/852GM/855GM/865G/915G/945G fb driver.
34−internals.txt
35− - quick overview of frame buffer device internals.
36−lxfb.txt
37− - info on the framebuffer driver for AMD Geode LX based processors.
38−matroxfb.txt
39− - info on the Matrox framebuffer driver for Alpha, Intel and PPC.
40−metronomefb.txt
41− - info on the driver for the Metronome display controller.
42−modedb.txt
43− - info on the video mode database.
44−pvr2fb.txt
45− - info on the PowerVR 2 frame buffer driver.
46−pxafb.txt
47− - info on the driver for the PXA25x LCD controller.
48−s3fb.txt
49− - info on the fbdev driver for S3 Trio/Virge chips.
50−sa1100fb.txt
51− - information about the driver for the SA-1100 LCD controller.
52−sh7760fb.txt
53− - info on the SH7760/SH7763 integrated LCDC Framebuffer driver.
54−sisfb.txt
55− - info on the framebuffer device driver for various SiS chips.
56−sm501.txt
57− - info on the framebuffer device driver for sm501 videoframebuffer.
58−sstfb.txt
59− - info on the frame buffer driver for 3dfx' Voodoo Graphics boards.
60−tgafb.txt
61− - info on the TGA (DECChip 21030) frame buffer driver.
62−tridentfb.txt
63− info on the framebuffer driver for some Trident chip based cards.
64−udlfb.txt
65− - Driver for DisplayLink USB 2.0 chips.
66−uvesafb.txt
67− - info on the userspace VESA (VBE2+ compliant) frame buffer device.
68−vesafb.txt
69− - info on the VESA frame buffer device.
70−viafb.modes
71− - list of modes for VIA Integration Graphic Chip.
72−viafb.txt
73− - info on the VIA Integration Graphic Chip console framebuffer driver.
74−vt8623fb.txt
75− - info on the fb driver for the graphics core in VIA VT8623 chipsets.
Documentation/fb/uvesafb.txt+3−2
@@ -15,7 +15,8 @@ than x86. Check the v86d documentation for a list of currently supported · 14 unmodified lines
1515 arches.
1616
1717 v86d source code can be downloaded from the following website:
18− http://dev.gentoo.org/~spock/projects/uvesafb
18+
19+ https://github.com/mjanusz/v86d
1920
2021 Please refer to the v86d documentation for detailed configuration and
2122 installation instructions.
@@ -177,7 +178,7 @@ from the Video BIOS if you set pixclock to 0 in fb_var_screeninfo. · 155 unmodified lines
177178
178179 --
179180 Michal Januszewski <spock@gentoo.org>
180− Last updated: 2009-03-30
181+ Last updated: 2017-10-10
181182
182183 Documentation of the uvesafb options is loosely based on vesafb.txt.
183184
Documentation/fb/vesafb.txt+2−2
@@ -114,11 +114,11 @@ to turn it on. · 113 unmodified lines
114114
115115 You can pass options to vesafb using "video=vesafb:option" on
116116 the kernel command line. Multiple options should be separated
117−by comma, like this: "video=vesafb:ypan,invers"
117+by comma, like this: "video=vesafb:ypan,inverse"
118118
119119 Accepted options:
120120
121−invers no comment...
121+inverse use inverse color map
122122
123123 ypan enable display panning using the VESA protected mode
124124 interface. The visible screen is just a window of the
Documentation/filesystems/00-INDEX+0−153
@@ -1,153 +0,0 @@
1−00-INDEX
2− - this file (info on some of the filesystems supported by linux).
3−Locking
4− - info on locking rules as they pertain to Linux VFS.
5−9p.txt
6− - 9p (v9fs) is an implementation of the Plan 9 remote fs protocol.
7−adfs.txt
8− - info and mount options for the Acorn Advanced Disc Filing System.
9−afs.txt
10− - info and examples for the distributed AFS (Andrew File System) fs.
11−affs.txt
12− - info and mount options for the Amiga Fast File System.
13−autofs-mount-control.txt
14− - info on device control operations for autofs module.
15−automount-support.txt
16− - information about filesystem automount support.
17−befs.txt
18− - information about the BeOS filesystem for Linux.
19−bfs.txt
20− - info for the SCO UnixWare Boot Filesystem (BFS).
21−btrfs.txt
22− - info for the BTRFS filesystem.
23−caching/
24− - directory containing filesystem cache documentation.
25−ceph.txt
26− - info for the Ceph Distributed File System.
27−cifs/
28− - directory containing CIFS filesystem documentation and example code.
29−coda.txt
30− - description of the CODA filesystem.
31−configfs/
32− - directory containing configfs documentation and example code.
33−cramfs.txt
34− - info on the cram filesystem for small storage (ROMs etc).
35−dax.txt
36− - info on avoiding the page cache for files stored on CPU-addressable
37− storage devices.
38−debugfs.txt
39− - info on the debugfs filesystem.
40−devpts.txt
41− - info on the devpts filesystem.
42−directory-locking
43− - info about the locking scheme used for directory operations.
44−dlmfs.txt
45− - info on the userspace interface to the OCFS2 DLM.
46−dnotify.txt
47− - info about directory notification in Linux.
48−dnotify_test.c
49− - example program for dnotify.
50−ecryptfs.txt
51− - docs on eCryptfs: stacked cryptographic filesystem for Linux.
52−efivarfs.txt
53− - info for the efivarfs filesystem.
54−exofs.txt
55− - info, usage, mount options, design about EXOFS.
56−ext2.txt
57− - info, mount options and specifications for the Ext2 filesystem.
58−ext3.txt
59− - info, mount options and specifications for the Ext3 filesystem.
60−ext4.txt
61− - info, mount options and specifications for the Ext4 filesystem.
62−f2fs.txt
63− - info and mount options for the F2FS filesystem.
64−fiemap.txt
65− - info on fiemap ioctl.
66−files.txt
67− - info on file management in the Linux kernel.
68−fuse.txt
69− - info on the Filesystem in User SpacE including mount options.
70−gfs2-glocks.txt
71− - info on the Global File System 2 - Glock internal locking rules.
72−gfs2-uevents.txt
73− - info on the Global File System 2 - uevents.
74−gfs2.txt
75− - info on the Global File System 2.
76−hfs.txt
77− - info on the Macintosh HFS Filesystem for Linux.
78−hfsplus.txt
79− - info on the Macintosh HFSPlus Filesystem for Linux.
80−hpfs.txt
81− - info and mount options for the OS/2 HPFS.
82−inotify.txt
83− - info on the powerful yet simple file change notification system.
84−isofs.txt
85− - info and mount options for the ISO 9660 (CDROM) filesystem.
86−jfs.txt
87− - info and mount options for the JFS filesystem.
88−locks.txt
89− - info on file locking implementations, flock() vs. fcntl(), etc.
90−mandatory-locking.txt
91− - info on the Linux implementation of Sys V mandatory file locking.
92−nfs/
93− - nfs-related documentation.
94−nilfs2.txt
95− - info and mount options for the NILFS2 filesystem.
96−ntfs.txt
97− - info and mount options for the NTFS filesystem (Windows NT).
98−ocfs2.txt
99− - info and mount options for the OCFS2 clustered filesystem.
100−omfs.txt
101− - info on the Optimized MPEG FileSystem.
102−path-lookup.txt
103− - info on path walking and name lookup locking.
104−pohmelfs/
105− - directory containing pohmelfs filesystem documentation.
106−porting
107− - various information on filesystem porting.
108−proc.txt
109− - info on Linux's /proc filesystem.
110−qnx6.txt
111− - info on the QNX6 filesystem.
112−quota.txt
113− - info on Quota subsystem.
114−ramfs-rootfs-initramfs.txt
115− - info on the 'in memory' filesystems ramfs, rootfs and initramfs.
116−relay.txt
117− - info on relay, for efficient streaming from kernel to user space.
118−romfs.txt
119− - description of the ROMFS filesystem.
120−seq_file.txt
121− - how to use the seq_file API.
122−sharedsubtree.txt
123− - a description of shared subtrees for namespaces.
124−spufs.txt
125− - info and mount options for the SPU filesystem used on Cell.
126−squashfs.txt
127− - info on the squashfs filesystem.
128−sysfs-pci.txt
129− - info on accessing PCI device resources through sysfs.
130−sysfs-tagging.txt
131− - info on sysfs tagging to avoid duplicates.
132−sysfs.txt
133− - info on sysfs, a ram-based filesystem for exporting kernel objects.
134−sysv-fs.txt
135− - info on the SystemV/V7/Xenix/Coherent filesystem.
136−tmpfs.txt
137− - info on tmpfs, a filesystem that holds all files in virtual memory.
138−ubifs.txt
139− - info on the Unsorted Block Images FileSystem.
140−udf.txt
141− - info and mount options for the UDF filesystem.
142−ufs.txt
143− - info on the ufs filesystem.
144−vfat.txt
145− - info on using the VFAT filesystem used in Windows NT and Windows 95.
146−vfs.txt
147− - overview of the Virtual File System.
148−xfs-delayed-logging-design.txt
149− - info on the XFS Delayed Logging Design.
150−xfs-self-describing-metadata.txt
151− - info on XFS Self Describing Metadata.
152−xfs.txt
153− - info and mount options for the XFS filesystem.
Documentation/filesystems/ceph.txt+5−0
@@ -151,6 +151,11 @@ Mount Options · 150 unmodified lines
151151 Report overall filesystem usage in statfs instead of using the root
152152 directory quota.
153153
154+ nocopyfrom
155+ Don't use the RADOS 'copy-from' operation to perform remote object
156+ copies. Currently, it's only used in copy_file_range, which will revert
157+ to the default VFS implementation if this option is used.
158+
154159 More Information
155160 ================
156161
Documentation/filesystems/dax.txt+1−1
@@ -75,7 +75,7 @@ exposure of uninitialized data through mmap. · 74 unmodified lines
7575
7676 These filesystems may be used for inspiration:
7777 - ext2: see Documentation/filesystems/ext2.txt
78−- ext4: see Documentation/filesystems/ext4.txt
78+- ext4: see Documentation/filesystems/ext4/ext4.rst
7979 - xfs: see Documentation/filesystems/xfs.txt
8080
8181
Documentation/filesystems/ext2.txt+1−1
@@ -358,7 +358,7 @@ and are copied into the filesystem. If a transaction is incomplete at · 357 unmodified lines
358358 the time of the crash, then there is no guarantee of consistency for
359359 the blocks in that transaction so they are discarded (which means any
360360 filesystem changes they represent are also lost).
361−Check Documentation/filesystems/ext4.txt if you want to read more about
361+Check Documentation/filesystems/ext4/ext4.rst if you want to read more about
362362 ext4 and journaling.
363363
364364 References
Documentation/filesystems/ext4/about.rstrenamed from Documentation/filesystems/ext4/ondisk/about.rst+0−0

File renamed without changes.

Documentation/filesystems/ext4/allocators.rstrenamed from Documentation/filesystems/ext4/ondisk/allocators.rst+0−0

File renamed without changes.

Documentation/filesystems/ext4/attributes.rstrenamed from Documentation/filesystems/ext4/ondisk/attributes.rst+4−4
@@ -30,7 +30,7 @@ Extended attributes, when stored after the inode, have a header · 29 unmodified lines
3030 ``ext4_xattr_ibody_header`` that is 4 bytes long:
3131
3232 .. list-table::
33− :widths: 1 1 1 77
33+ :widths: 8 8 24 40
3434 :header-rows: 1
3535
3636 * - Offset
@@ -47,7 +47,7 @@ The beginning of an extended attribute block is in · 10 unmodified lines
4747 ``struct ext4_xattr_header``, which is 32 bytes long:
4848
4949 .. list-table::
50− :widths: 1 1 1 77
50+ :widths: 8 8 24 40
5151 :header-rows: 1
5252
5353 * - Offset
@@ -92,7 +92,7 @@ entries must be stored in sorted order. The sort order is · 38 unmodified lines
9292 Attributes stored inside an inode do not need be stored in sorted order.
9393
9494 .. list-table::
95− :widths: 1 1 1 77
95+ :widths: 8 8 24 40
9696 :header-rows: 1
9797
9898 * - Offset
@@ -157,7 +157,7 @@ attribute name index field is set, and matching string is removed from · 58 unmodified lines
157157 the key name. Here is a map of name index values to key prefixes:
158158
159159 .. list-table::
160− :widths: 1 79
160+ :widths: 16 64
161161 :header-rows: 1
162162
163163 * - Name Index
Documentation/filesystems/ext4/bigalloc.rstrenamed from Documentation/filesystems/ext4/ondisk/bigalloc.rst+0−0

File renamed without changes.

Documentation/filesystems/ext4/bitmaps.rstrenamed from Documentation/filesystems/ext4/ondisk/bitmaps.rst+0−0

File renamed without changes.

Documentation/filesystems/ext4/blockgroup.rstrenamed from Documentation/filesystems/ext4/ondisk/blockgroup.rst+0−0

File renamed without changes.

Documentation/filesystems/ext4/blockmap.rstrenamed from Documentation/filesystems/ext4/ondisk/blockmap.rst+0−0

File renamed without changes.

Documentation/filesystems/ext4/blocks.rstrenamed from Documentation/filesystems/ext4/ondisk/blocks.rst+0−0

File renamed without changes.

Documentation/filesystems/ext4/checksums.rstrenamed from Documentation/filesystems/ext4/ondisk/checksums.rst+1−1
@@ -28,7 +28,7 @@ of checksum. The checksum function is whatever the superblock describes · 27 unmodified lines
2828 (crc32c as of October 2013) unless noted otherwise.
2929
3030 .. list-table::
31− :widths: 1 1 4
31+ :widths: 20 8 50
3232 :header-rows: 1
3333
3434 * - Metadata
Documentation/filesystems/ext4/directory.rstrenamed from Documentation/filesystems/ext4/ondisk/directory.rst+9−9
@@ -34,7 +34,7 @@ is at most 263 bytes long, though on disk you'll need to reference · 33 unmodified lines
3434 ``dirent.rec_len`` to know for sure.
3535
3636 .. list-table::
37− :widths: 1 1 1 77
37+ :widths: 8 8 24 40
3838 :header-rows: 1
3939
4040 * - Offset
@@ -66,7 +66,7 @@ tree traversal. This format is ``ext4_dir_entry_2``, which is at most · 25 unmodified lines
6666 ``dirent.rec_len`` to know for sure.
6767
6868 .. list-table::
69− :widths: 1 1 1 77
69+ :widths: 8 8 24 40
7070 :header-rows: 1
7171
7272 * - Offset
@@ -99,7 +99,7 @@ tree traversal. This format is ``ext4_dir_entry_2``, which is at most · 26 unmodified lines
9999 The directory file type is one of the following values:
100100
101101 .. list-table::
102− :widths: 1 79
102+ :widths: 16 64
103103 :header-rows: 1
104104
105105 * - Value
@@ -130,7 +130,7 @@ in the place where the name normally goes. The structure is · 24 unmodified lines
130130 ``struct ext4_dir_entry_tail``:
131131
132132 .. list-table::
133− :widths: 1 1 1 77
133+ :widths: 8 8 24 40
134134 :header-rows: 1
135135
136136 * - Offset
@@ -212,7 +212,7 @@ The root of the htree is in ``struct dx_root``, which is the full length · 75 unmodified lines
212212 of a data block:
213213
214214 .. list-table::
215− :widths: 1 1 1 77
215+ :widths: 8 8 24 40
216216 :header-rows: 1
217217
218218 * - Offset
@@ -305,7 +305,7 @@ of a data block: · 86 unmodified lines
305305 The directory hash is one of the following values:
306306
307307 .. list-table::
308− :widths: 1 79
308+ :widths: 16 64
309309 :header-rows: 1
310310
311311 * - Value
@@ -327,7 +327,7 @@ Interior nodes of an htree are recorded as ``struct dx_node``, which is · 15 unmodified lines
327327 also the full length of a data block:
328328
329329 .. list-table::
330− :widths: 1 1 1 77
330+ :widths: 8 8 24 40
331331 :header-rows: 1
332332
333333 * - Offset
@@ -375,7 +375,7 @@ The hash maps that exist in both ``struct dx_root`` and · 41 unmodified lines
375375 long:
376376
377377 .. list-table::
378− :widths: 1 1 1 77
378+ :widths: 8 8 24 40
379379 :header-rows: 1
380380
381381 * - Offset
@@ -405,7 +405,7 @@ directory index (which will ensure that there's space for the checksum. · 23 unmodified lines
405405 The dx\_tail structure is 8 bytes long and looks like this:
406406
407407 .. list-table::
408− :widths: 1 1 1 77
408+ :widths: 8 8 24 40
409409 :header-rows: 1
410410
411411 * - Offset
Documentation/filesystems/ext4/dynamic.rstrenamed from Documentation/filesystems/ext4/ondisk/dynamic.rst+0−0

File renamed without changes.

Documentation/filesystems/ext4/eainode.rstrenamed from Documentation/filesystems/ext4/ondisk/eainode.rst+0−0

File renamed without changes.

Documentation/filesystems/ext4/ext4.rst+0−613
@@ -1,613 +0,0 @@
1−.. SPDX-License-Identifier: GPL-2.0
2−
3−========================
4−General Information
5−========================
6−
7−Ext4 is an advanced level of the ext3 filesystem which incorporates
8−scalability and reliability enhancements for supporting large filesystems
9−(64 bit) in keeping with increasing disk capacities and state-of-the-art
10−feature requirements.
11−
12−Mailing list: linux-ext4@vger.kernel.org
13−Web site: http://ext4.wiki.kernel.org
14−
15−
16−Quick usage instructions
17−========================
18−
19−Note: More extensive information for getting started with ext4 can be
20−found at the ext4 wiki site at the URL:
21−http://ext4.wiki.kernel.org/index.php/Ext4_Howto
22−
23− - The latest version of e2fsprogs can be found at:
24−
25− https://www.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/
26−
27− or
28−
29− http://sourceforge.net/project/showfiles.php?group_id=2406
30−
31− or grab the latest git repository from:
32−
33− https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git
34−
35− - Create a new filesystem using the ext4 filesystem type:
36−
37− # mke2fs -t ext4 /dev/hda1
38−
39− Or to configure an existing ext3 filesystem to support extents:
40−
41− # tune2fs -O extents /dev/hda1
42−
43− If the filesystem was created with 128 byte inodes, it can be
44− converted to use 256 byte for greater efficiency via:
45−
46− # tune2fs -I 256 /dev/hda1
47−
48− - Mounting:
49−
50− # mount -t ext4 /dev/hda1 /wherever
51−
52− - When comparing performance with other filesystems, it's always
53− important to try multiple workloads; very often a subtle change in a
54− workload parameter can completely change the ranking of which
55− filesystems do well compared to others. When comparing versus ext3,
56− note that ext4 enables write barriers by default, while ext3 does
57− not enable write barriers by default. So it is useful to use
58− explicitly specify whether barriers are enabled or not when via the
59− '-o barriers=[0|1]' mount option for both ext3 and ext4 filesystems
60− for a fair comparison. When tuning ext3 for best benchmark numbers,
61− it is often worthwhile to try changing the data journaling mode; '-o
62− data=writeback' can be faster for some workloads. (Note however that
63− running mounted with data=writeback can potentially leave stale data
64− exposed in recently written files in case of an unclean shutdown,
65− which could be a security exposure in some situations.) Configuring
66− the filesystem with a large journal can also be helpful for
67− metadata-intensive workloads.
68−
69−Features
70−========
71−
72−Currently Available
73−-------------------
74−
75−* ability to use filesystems > 16TB (e2fsprogs support not available yet)
76−* extent format reduces metadata overhead (RAM, IO for access, transactions)
77−* extent format more robust in face of on-disk corruption due to magics,
78−* internal redundancy in tree
79−* improved file allocation (multi-block alloc)
80−* lift 32000 subdirectory limit imposed by i_links_count[1]
81−* nsec timestamps for mtime, atime, ctime, create time
82−* inode version field on disk (NFSv4, Lustre)
83−* reduced e2fsck time via uninit_bg feature
84−* journal checksumming for robustness, performance
85−* persistent file preallocation (e.g for streaming media, databases)
86−* ability to pack bitmaps and inode tables into larger virtual groups via the
87− flex_bg feature
88−* large file support
89−* inode allocation using large virtual block groups via flex_bg
90−* delayed allocation
91−* large block (up to pagesize) support
92−* efficient new ordered mode in JBD2 and ext4 (avoid using buffer head to force
93− the ordering)
94−
95−[1] Filesystems with a block size of 1k may see a limit imposed by the
96−directory hash tree having a maximum depth of two.
97−
98−Options
99−=======
100−
101−When mounting an ext4 filesystem, the following option are accepted:
102−(*) == default
103−
104−======================= =======================================================
105−Mount Option Description
106−======================= =======================================================
107−ro Mount filesystem read only. Note that ext4 will
108− replay the journal (and thus write to the
109− partition) even when mounted "read only". The
110− mount options "ro,noload" can be used to prevent
111− writes to the filesystem.
112−
113−journal_checksum Enable checksumming of the journal transactions.
114− This will allow the recovery code in e2fsck and the
115− kernel to detect corruption in the kernel. It is a
116− compatible change and will be ignored by older kernels.
117−
118−journal_async_commit Commit block can be written to disk without waiting
119− for descriptor blocks. If enabled older kernels cannot
120− mount the device. This will enable 'journal_checksum'
121− internally.
122−
123−journal_path=path
124−journal_dev=devnum When the external journal device's major/minor numbers
125− have changed, these options allow the user to specify
126− the new journal location. The journal device is
127− identified through either its new major/minor numbers
128− encoded in devnum, or via a path to the device.
129−
130−norecovery Don't load the journal on mounting. Note that
131−noload if the filesystem was not unmounted cleanly,
132− skipping the journal replay will lead to the
133− filesystem containing inconsistencies that can
134− lead to any number of problems.
135−
136−data=journal All data are committed into the journal prior to being
137− written into the main file system. Enabling
138− this mode will disable delayed allocation and
139− O_DIRECT support.
140−
141−data=ordered (*) All data are forced directly out to the main file
142− system prior to its metadata being committed to the
143− journal.
144−
145−data=writeback Data ordering is not preserved, data may be written
146− into the main file system after its metadata has been
147− committed to the journal.
148−
149−commit=nrsec (*) Ext4 can be told to sync all its data and metadata
150− every 'nrsec' seconds. The default value is 5 seconds.
151− This means that if you lose your power, you will lose
152− as much as the latest 5 seconds of work (your
153− filesystem will not be damaged though, thanks to the
154− journaling). This default value (or any low value)
155− will hurt performance, but it's good for data-safety.
156− Setting it to 0 will have the same effect as leaving
157− it at the default (5 seconds).
158− Setting it to very large values will improve
159− performance.
160−
161−barrier=<0|1(*)> This enables/disables the use of write barriers in
162−barrier(*) the jbd code. barrier=0 disables, barrier=1 enables.
163−nobarrier This also requires an IO stack which can support
164− barriers, and if jbd gets an error on a barrier
165− write, it will disable again with a warning.
166− Write barriers enforce proper on-disk ordering
167− of journal commits, making volatile disk write caches
168− safe to use, at some performance penalty. If
169− your disks are battery-backed in one way or another,
170− disabling barriers may safely improve performance.
171− The mount options "barrier" and "nobarrier" can
172− also be used to enable or disable barriers, for
173− consistency with other ext4 mount options.
174−
175−inode_readahead_blks=n This tuning parameter controls the maximum
176− number of inode table blocks that ext4's inode
177− table readahead algorithm will pre-read into
178− the buffer cache. The default value is 32 blocks.
179−
180−nouser_xattr Disables Extended User Attributes. See the
181− attr(5) manual page for more information about
182− extended attributes.
183−
184−noacl This option disables POSIX Access Control List
185− support. If ACL support is enabled in the kernel
186− configuration (CONFIG_EXT4_FS_POSIX_ACL), ACL is
187− enabled by default on mount. See the acl(5) manual
188− page for more information about acl.
189−
190−bsddf (*) Make 'df' act like BSD.
191−minixdf Make 'df' act like Minix.
192−
193−debug Extra debugging information is sent to syslog.
194−
195−abort Simulate the effects of calling ext4_abort() for
196− debugging purposes. This is normally used while
197− remounting a filesystem which is already mounted.
198−
199−errors=remount-ro Remount the filesystem read-only on an error.
200−errors=continue Keep going on a filesystem error.
201−errors=panic Panic and halt the machine if an error occurs.
202− (These mount options override the errors behavior
203− specified in the superblock, which can be configured
204− using tune2fs)
205−
206−data_err=ignore(*) Just print an error message if an error occurs
207− in a file data buffer in ordered mode.
208−data_err=abort Abort the journal if an error occurs in a file
209− data buffer in ordered mode.
210−
211−grpid New objects have the group ID of their parent.
212−bsdgroups
213−
214−nogrpid (*) New objects have the group ID of their creator.
215−sysvgroups
216−
217−resgid=n The group ID which may use the reserved blocks.
218−
219−resuid=n The user ID which may use the reserved blocks.
220−
221−sb=n Use alternate superblock at this location.
222−
223−quota These options are ignored by the filesystem. They
224−noquota are used only by quota tools to recognize volumes
225−grpquota where quota should be turned on. See documentation
226−usrquota in the quota-tools package for more details
227− (http://sourceforge.net/projects/linuxquota).
228−
229−jqfmt=<quota type> These options tell filesystem details about quota
230−usrjquota=<file> so that quota information can be properly updated
231−grpjquota=<file> during journal replay. They replace the above
232− quota options. See documentation in the quota-tools
233− package for more details
234− (http://sourceforge.net/projects/linuxquota).
235−
236−stripe=n Number of filesystem blocks that mballoc will try
237− to use for allocation size and alignment. For RAID5/6
238− systems this should be the number of data
239− disks * RAID chunk size in file system blocks.
240−
241−delalloc (*) Defer block allocation until just before ext4
242− writes out the block(s) in question. This
243− allows ext4 to better allocation decisions
244− more efficiently.
245−nodelalloc Disable delayed allocation. Blocks are allocated
246− when the data is copied from userspace to the
247− page cache, either via the write(2) system call
248− or when an mmap'ed page which was previously
249− unallocated is written for the first time.
250−
251−max_batch_time=usec Maximum amount of time ext4 should wait for
252− additional filesystem operations to be batch
253− together with a synchronous write operation.
254− Since a synchronous write operation is going to
255− force a commit and then a wait for the I/O
256− complete, it doesn't cost much, and can be a
257− huge throughput win, we wait for a small amount
258− of time to see if any other transactions can
259− piggyback on the synchronous write. The
260− algorithm used is designed to automatically tune
261− for the speed of the disk, by measuring the
262− amount of time (on average) that it takes to
263− finish committing a transaction. Call this time
264− the "commit time". If the time that the
265− transaction has been running is less than the
266− commit time, ext4 will try sleeping for the
267− commit time to see if other operations will join
268− the transaction. The commit time is capped by
269− the max_batch_time, which defaults to 15000us
270− (15ms). This optimization can be turned off
271− entirely by setting max_batch_time to 0.
272−
273−min_batch_time=usec This parameter sets the commit time (as
274− described above) to be at least min_batch_time.
275− It defaults to zero microseconds. Increasing
276− this parameter may improve the throughput of
277− multi-threaded, synchronous workloads on very
278− fast disks, at the cost of increasing latency.
279−
280−journal_ioprio=prio The I/O priority (from 0 to 7, where 0 is the
281− highest priority) which should be used for I/O
282− operations submitted by kjournald2 during a
283− commit operation. This defaults to 3, which is
284− a slightly higher priority than the default I/O
285− priority.
286−
287−auto_da_alloc(*) Many broken applications don't use fsync() when
288−noauto_da_alloc replacing existing files via patterns such as
289− fd = open("foo.new")/write(fd,..)/close(fd)/
290− rename("foo.new", "foo"), or worse yet,
291− fd = open("foo", O_TRUNC)/write(fd,..)/close(fd).
292− If auto_da_alloc is enabled, ext4 will detect
293− the replace-via-rename and replace-via-truncate
294− patterns and force that any delayed allocation
295− blocks are allocated such that at the next
296− journal commit, in the default data=ordered
297− mode, the data blocks of the new file are forced
298− to disk before the rename() operation is
299− committed. This provides roughly the same level
300− of guarantees as ext3, and avoids the
301− "zero-length" problem that can happen when a
302− system crashes before the delayed allocation
303− blocks are forced to disk.
304−
305−noinit_itable Do not initialize any uninitialized inode table
306− blocks in the background. This feature may be
307− used by installation CD's so that the install
308− process can complete as quickly as possible; the
309− inode table initialization process would then be
310− deferred until the next time the file system
311− is unmounted.
312−
313−init_itable=n The lazy itable init code will wait n times the
314− number of milliseconds it took to zero out the
315− previous block group's inode table. This
316− minimizes the impact on the system performance
317− while file system's inode table is being initialized.
318−
319−discard Controls whether ext4 should issue discard/TRIM
320−nodiscard(*) commands to the underlying block device when
321− blocks are freed. This is useful for SSD devices
322− and sparse/thinly-provisioned LUNs, but it is off
323− by default until sufficient testing has been done.
324−
325−nouid32 Disables 32-bit UIDs and GIDs. This is for
326− interoperability with older kernels which only
327− store and expect 16-bit values.
328−
329−block_validity(*) These options enable or disable the in-kernel
330−noblock_validity facility for tracking filesystem metadata blocks
331− within internal data structures. This allows multi-
332− block allocator and other routines to notice
333− bugs or corrupted allocation bitmaps which cause
334− blocks to be allocated which overlap with
335− filesystem metadata blocks.
336−
337−dioread_lock Controls whether or not ext4 should use the DIO read
338−dioread_nolock locking. If the dioread_nolock option is specified
339− ext4 will allocate uninitialized extent before buffer
340− write and convert the extent to initialized after IO
341− completes. This approach allows ext4 code to avoid
342− using inode mutex, which improves scalability on high
343− speed storages. However this does not work with
344− data journaling and dioread_nolock option will be
345− ignored with kernel warning. Note that dioread_nolock
346− code path is only used for extent-based files.
347− Because of the restrictions this options comprises
348− it is off by default (e.g. dioread_lock).
349−
350−max_dir_size_kb=n This limits the size of directories so that any
351− attempt to expand them beyond the specified
352− limit in kilobytes will cause an ENOSPC error.
353− This is useful in memory constrained
354− environments, where a very large directory can
355− cause severe performance problems or even
356− provoke the Out Of Memory killer. (For example,
357− if there is only 512mb memory available, a 176mb
358− directory may seriously cramp the system's style.)
359−
360−i_version Enable 64-bit inode version support. This option is
361− off by default.
362−
363−dax Use direct access (no page cache). See
364− Documentation/filesystems/dax.txt. Note that
365− this option is incompatible with data=journal.
366−======================= =======================================================
367−
368−Data Mode
369−=========
370−There are 3 different data modes:
371−
372−* writeback mode
373−
374− In data=writeback mode, ext4 does not journal data at all. This mode provides
375− a similar level of journaling as that of XFS, JFS, and ReiserFS in its default
376− mode - metadata journaling. A crash+recovery can cause incorrect data to
377− appear in files which were written shortly before the crash. This mode will
378− typically provide the best ext4 performance.
379−
380−* ordered mode
381−
382− In data=ordered mode, ext4 only officially journals metadata, but it logically
383− groups metadata information related to data changes with the data blocks into
384− a single unit called a transaction. When it's time to write the new metadata
385− out to disk, the associated data blocks are written first. In general, this
386− mode performs slightly slower than writeback but significantly faster than
387− journal mode.
388−
389−* journal mode
390−
391− data=journal mode provides full data and metadata journaling. All new data is
392− written to the journal first, and then to its final location. In the event of
393− a crash, the journal can be replayed, bringing both data and metadata into a
394− consistent state. This mode is the slowest except when data needs to be read
395− from and written to disk at the same time where it outperforms all others
396− modes. Enabling this mode will disable delayed allocation and O_DIRECT
397− support.
398−
399−/proc entries
400−=============
401−
402−Information about mounted ext4 file systems can be found in
403−/proc/fs/ext4. Each mounted filesystem will have a directory in
404−/proc/fs/ext4 based on its device name (i.e., /proc/fs/ext4/hdc or
405−/proc/fs/ext4/dm-0). The files in each per-device directory are shown
406−in table below.
407−
408−Files in /proc/fs/ext4/<devname>
409−
410−================ =======
411− File Content
412−================ =======
413− mb_groups details of multiblock allocator buddy cache of free blocks
414−================ =======
415−
416−/sys entries
417−============
418−
419−Information about mounted ext4 file systems can be found in
420−/sys/fs/ext4. Each mounted filesystem will have a directory in
421−/sys/fs/ext4 based on its device name (i.e., /sys/fs/ext4/hdc or
422−/sys/fs/ext4/dm-0). The files in each per-device directory are shown
423−in table below.
424−
425−Files in /sys/fs/ext4/<devname>:
426−
427−(see also Documentation/ABI/testing/sysfs-fs-ext4)
428−
429−============================= =================================================
430−File Content
431−============================= =================================================
432− delayed_allocation_blocks This file is read-only and shows the number of
433− blocks that are dirty in the page cache, but
434− which do not have their location in the
435− filesystem allocated yet.
436−
437−inode_goal Tuning parameter which (if non-zero) controls
438− the goal inode used by the inode allocator in
439− preference to all other allocation heuristics.
440− This is intended for debugging use only, and
441− should be 0 on production systems.
442−
443−inode_readahead_blks Tuning parameter which controls the maximum
444− number of inode table blocks that ext4's inode
445− table readahead algorithm will pre-read into
446− the buffer cache
447−
448−lifetime_write_kbytes This file is read-only and shows the number of
449− kilobytes of data that have been written to this
450− filesystem since it was created.
451−
452− max_writeback_mb_bump The maximum number of megabytes the writeback
453− code will try to write out before move on to
454− another inode.
455−
456− mb_group_prealloc The multiblock allocator will round up allocation
457− requests to a multiple of this tuning parameter if
458− the stripe size is not set in the ext4 superblock
459−
460− mb_max_to_scan The maximum number of extents the multiblock
461− allocator will search to find the best extent
462−
463− mb_min_to_scan The minimum number of extents the multiblock
464− allocator will search to find the best extent
465−
466− mb_order2_req Tuning parameter which controls the minimum size
467− for requests (as a power of 2) where the buddy
468− cache is used
469−
470− mb_stats Controls whether the multiblock allocator should
471− collect statistics, which are shown during the
472− unmount. 1 means to collect statistics, 0 means
473− not to collect statistics
474−
475− mb_stream_req Files which have fewer blocks than this tunable
476− parameter will have their blocks allocated out
477− of a block group specific preallocation pool, so
478− that small files are packed closely together.
479− Each large file will have its blocks allocated
480− out of its own unique preallocation pool.
481−
482− session_write_kbytes This file is read-only and shows the number of
483− kilobytes of data that have been written to this
484− filesystem since it was mounted.
485−
486− reserved_clusters This is RW file and contains number of reserved
487− clusters in the file system which will be used
488− in the specific situations to avoid costly
489− zeroout, unexpected ENOSPC, or possible data
490− loss. The default is 2% or 4096 clusters,
491− whichever is smaller and this can be changed
492− however it can never exceed number of clusters
493− in the file system. If there is not enough space
494− for the reserved space when mounting the file
495− mount will _not_ fail.
496−============================= =================================================
497−
498−Ioctls
499−======
500−
501−There is some Ext4 specific functionality which can be accessed by applications
502−through the system call interfaces. The list of all Ext4 specific ioctls are
503−shown in the table below.
504−
505−Table of Ext4 specific ioctls
506−
507−============================= =================================================
508−Ioctl Description
509−============================= =================================================
510− EXT4_IOC_GETFLAGS Get additional attributes associated with inode.
511− The ioctl argument is an integer bitfield, with
512− bit values described in ext4.h. This ioctl is an
513− alias for FS_IOC_GETFLAGS.
514−
515− EXT4_IOC_SETFLAGS Set additional attributes associated with inode.
516− The ioctl argument is an integer bitfield, with
517− bit values described in ext4.h. This ioctl is an
518− alias for FS_IOC_SETFLAGS.
519−
520− EXT4_IOC_GETVERSION
521− EXT4_IOC_GETVERSION_OLD
522− Get the inode i_generation number stored for
523− each inode. The i_generation number is normally
524− changed only when new inode is created and it is
525− particularly useful for network filesystems. The
526− '_OLD' version of this ioctl is an alias for
527− FS_IOC_GETVERSION.
528−
529− EXT4_IOC_SETVERSION
530− EXT4_IOC_SETVERSION_OLD
531− Set the inode i_generation number stored for
532− each inode. The '_OLD' version of this ioctl
533− is an alias for FS_IOC_SETVERSION.
534−
535− EXT4_IOC_GROUP_EXTEND This ioctl has the same purpose as the resize
536− mount option. It allows to resize filesystem
537− to the end of the last existing block group,
538− further resize has to be done with resize2fs,
539− either online, or offline. The argument points
540− to the unsigned logn number representing the
541− filesystem new block count.
542−
543− EXT4_IOC_MOVE_EXT Move the block extents from orig_fd (the one
544− this ioctl is pointing to) to the donor_fd (the
545− one specified in move_extent structure passed
546− as an argument to this ioctl). Then, exchange
547− inode metadata between orig_fd and donor_fd.
548− This is especially useful for online
549− defragmentation, because the allocator has the
550− opportunity to allocate moved blocks better,
551− ideally into one contiguous extent.
552−
553− EXT4_IOC_GROUP_ADD Add a new group descriptor to an existing or
554− new group descriptor block. The new group
555− descriptor is described by ext4_new_group_input
556− structure, which is passed as an argument to
557− this ioctl. This is especially useful in
558− conjunction with EXT4_IOC_GROUP_EXTEND,
559− which allows online resize of the filesystem
560− to the end of the last existing block group.
561− Those two ioctls combined is used in userspace
562− online resize tool (e.g. resize2fs).
563−
564− EXT4_IOC_MIGRATE This ioctl operates on the filesystem itself.
565− It converts (migrates) ext3 indirect block mapped
566− inode to ext4 extent mapped inode by walking
567− through indirect block mapping of the original
568− inode and converting contiguous block ranges
569− into ext4 extents of the temporary inode. Then,
570− inodes are swapped. This ioctl might help, when
571− migrating from ext3 to ext4 filesystem, however
572− suggestion is to create fresh ext4 filesystem
573− and copy data from the backup. Note, that
574− filesystem has to support extents for this ioctl
575− to work.
576−
577− EXT4_IOC_ALLOC_DA_BLKS Force all of the delay allocated blocks to be
578− allocated to preserve application-expected ext3
579− behaviour. Note that this will also start
580− triggering a write of the data blocks, but this
581− behaviour may change in the future as it is
582− not necessary and has been done this way only
583− for sake of simplicity.
584−
585− EXT4_IOC_RESIZE_FS Resize the filesystem to a new size. The number
586− of blocks of resized filesystem is passed in via
587− 64 bit integer argument. The kernel allocates
588− bitmaps and inode table, the userspace tool thus
589− just passes the new number of blocks.
590−
591− EXT4_IOC_SWAP_BOOT Swap i_blocks and associated attributes
592− (like i_blocks, i_size, i_flags, ...) from
593− the specified inode with inode
594− EXT4_BOOT_LOADER_INO (#5). This is typically
595− used to store a boot loader in a secure part of
596− the filesystem, where it can't be changed by a
597− normal user by accident.
598− The data blocks of the previous boot loader
599− will be associated with the given inode.
600−============================= =================================================
601−
602−References
603−==========
604−
605−kernel source: <file:fs/ext4/>
606− <file:fs/jbd2/>
607−
608−programs: http://e2fsprogs.sourceforge.net/
609−
610−useful links: http://fedoraproject.org/wiki/ext3-devel
611− http://www.bullopensource.org/ext4/
612− http://ext4.wiki.kernel.org/index.php/Main_Page
613− http://fedoraproject.org/wiki/Features/Ext4
Documentation/filesystems/ext4/globals.rstrenamed from Documentation/filesystems/ext4/ondisk/globals.rst+0−0

File renamed without changes.

Documentation/filesystems/ext4/group_descr.rstrenamed from Documentation/filesystems/ext4/ondisk/group_descr.rst+2−2
@@ -43,7 +43,7 @@ entire bitmap. · 42 unmodified lines
4343 The block group descriptor is laid out in ``struct ext4_group_desc``.
4444
4545 .. list-table::
46− :widths: 1 1 1 77
46+ :widths: 8 8 24 40
4747 :header-rows: 1
4848
4949 * - Offset
@@ -157,7 +157,7 @@ The block group descriptor is laid out in ``struct ext4_group_desc``. · 107 unmodified lines
157157 Block group flags can be any combination of the following:
158158
159159 .. list-table::
160− :widths: 1 79
160+ :widths: 16 64
161161 :header-rows: 1
162162
163163 * - Value
Documentation/filesystems/ext4/ifork.rstrenamed from Documentation/filesystems/ext4/ondisk/ifork.rst+4−4
@@ -68,7 +68,7 @@ The extent tree header is recorded in ``struct ext4_extent_header``, · 67 unmodified lines
6868 which is 12 bytes long:
6969
7070 .. list-table::
71− :widths: 1 1 1 77
71+ :widths: 8 8 24 40
7272 :header-rows: 1
7373
7474 * - Offset
@@ -104,7 +104,7 @@ Internal nodes of the extent tree, also known as index nodes, are · 29 unmodified lines
104104 recorded as ``struct ext4_extent_idx``, and are 12 bytes long:
105105
106106 .. list-table::
107− :widths: 1 1 1 77
107+ :widths: 8 8 24 40
108108 :header-rows: 1
109109
110110 * - Offset
@@ -134,7 +134,7 @@ Leaf nodes of the extent tree are recorded as ``struct ext4_extent``, · 23 unmodified lines
134134 and are also 12 bytes long:
135135
136136 .. list-table::
137− :widths: 1 1 1 77
137+ :widths: 8 8 24 40
138138 :header-rows: 1
139139
140140 * - Offset
@@ -174,7 +174,7 @@ including) the checksum itself. · 33 unmodified lines
174174 ``struct ext4_extent_tail`` is 4 bytes long:
175175
176176 .. list-table::
177− :widths: 1 1 1 77
177+ :widths: 8 8 24 40
178178 :header-rows: 1
179179
180180 * - Offset
Documentation/filesystems/ext4/index.rst+8−11
@@ -1,17 +1,14 @@
11 .. SPDX-License-Identifier: GPL-2.0
22
3−===============
4−ext4 Filesystem
5−===============
6−
7−General usage and on-disk artifacts writen by ext4. More documentation may
8−be ported from the wiki as time permits. This should be considered the
9−canonical source of information as the details here have been reviewed by
10−the ext4 community.
3+===================================
4+ext4 Data Structures and Algorithms
5+===================================
116
127 .. toctree::
13− :maxdepth: 5
8+ :maxdepth: 6
149 :numbered:
1510
16− ext4
17− ondisk/index
11+ about.rst
12+ overview.rst
13+ globals.rst
14+ dynamic.rst
Documentation/filesystems/ext4/inlinedata.rstrenamed from Documentation/filesystems/ext4/ondisk/inlinedata.rst+0−0

File renamed without changes.

Documentation/filesystems/ext4/inodes.rstrenamed from Documentation/filesystems/ext4/ondisk/inodes.rst+10−9
@@ -29,8 +29,9 @@ and the inode structure itself. · 28 unmodified lines
2929 The inode table entry is laid out in ``struct ext4_inode``.
3030
3131 .. list-table::
32− :widths: 1 1 1 77
32+ :widths: 8 8 24 40
3333 :header-rows: 1
34+ :class: longtable
3435
3536 * - Offset
3637 - Size
@@ -176,7 +177,7 @@ The inode table entry is laid out in ``struct ext4_inode``. · 139 unmodified lines
176177 The ``i_mode`` value is a combination of the following flags:
177178
178179 .. list-table::
179− :widths: 1 79
180+ :widths: 16 64
180181 :header-rows: 1
181182
182183 * - Value
@@ -227,7 +228,7 @@ The ``i_mode`` value is a combination of the following flags: · 44 unmodified lines
227228 The ``i_flags`` field is a combination of these values:
228229
229230 .. list-table::
230− :widths: 1 79
231+ :widths: 16 64
231232 :header-rows: 1
232233
233234 * - Value
@@ -314,7 +315,7 @@ The ``osd1`` field has multiple meanings depending on the creator: · 80 unmodified lines
314315 Linux:
315316
316317 .. list-table::
317− :widths: 1 1 1 77
318+ :widths: 8 8 24 40
318319 :header-rows: 1
319320
320321 * - Offset
@@ -331,7 +332,7 @@ Linux: · 10 unmodified lines
331332 Hurd:
332333
333334 .. list-table::
334− :widths: 1 1 1 77
335+ :widths: 8 8 24 40
335336 :header-rows: 1
336337
337338 * - Offset
@@ -346,7 +347,7 @@ Hurd: · 8 unmodified lines
346347 Masix:
347348
348349 .. list-table::
349− :widths: 1 1 1 77
350+ :widths: 8 8 24 40
350351 :header-rows: 1
351352
352353 * - Offset
@@ -365,7 +366,7 @@ The ``osd2`` field has multiple meanings depending on the filesystem creator: · 12 unmodified lines
365366 Linux:
366367
367368 .. list-table::
368− :widths: 1 1 1 77
369+ :widths: 8 8 24 40
369370 :header-rows: 1
370371
371372 * - Offset
@@ -402,7 +403,7 @@ Linux: · 30 unmodified lines
402403 Hurd:
403404
404405 .. list-table::
405− :widths: 1 1 1 77
406+ :widths: 8 8 24 40
406407 :header-rows: 1
407408
408409 * - Offset
@@ -433,7 +434,7 @@ Hurd: · 24 unmodified lines
433434 Masix:
434435
435436 .. list-table::
436− :widths: 1 1 1 77
437+ :widths: 8 8 24 40
437438 :header-rows: 1
438439
439440 * - Offset
Documentation/filesystems/ext4/journal.rstrenamed from Documentation/filesystems/ext4/ondisk/journal.rst+16−16
@@ -48,7 +48,7 @@ Layout · 47 unmodified lines
4848 Generally speaking, the journal has this format:
4949
5050 .. list-table::
51− :widths: 1 1 78
51+ :widths: 16 48 16
5252 :header-rows: 1
5353
5454 * - Superblock
@@ -76,7 +76,7 @@ The journal superblock will be in the next full block after the · 21 unmodified lines
7676 superblock.
7777
7878 .. list-table::
79− :widths: 1 1 1 1 76
79+ :widths: 12 12 12 32 12
8080 :header-rows: 1
8181
8282 * - 1024 bytes of padding
@@ -98,7 +98,7 @@ Every block in the journal starts with a common 12-byte header · 15 unmodified lines
9898 ``struct journal_header_s``:
9999
100100 .. list-table::
101− :widths: 1 1 1 77
101+ :widths: 8 8 24 40
102102 :header-rows: 1
103103
104104 * - Offset
@@ -124,7 +124,7 @@ Every block in the journal starts with a common 12-byte header · 19 unmodified lines
124124 The journal block type can be any one of:
125125
126126 .. list-table::
127− :widths: 1 79
127+ :widths: 16 64
128128 :header-rows: 1
129129
130130 * - Value
@@ -154,7 +154,7 @@ The journal superblock is recorded as ``struct journal_superblock_s``, · 23 unmodified lines
154154 which is 1024 bytes long:
155155
156156 .. list-table::
157− :widths: 1 1 1 77
157+ :widths: 8 8 24 40
158158 :header-rows: 1
159159
160160 * - Offset
@@ -264,7 +264,7 @@ which is 1024 bytes long: · 103 unmodified lines
264264 The journal compat features are any combination of the following:
265265
266266 .. list-table::
267− :widths: 1 79
267+ :widths: 16 64
268268 :header-rows: 1
269269
270270 * - Value
@@ -278,7 +278,7 @@ The journal compat features are any combination of the following: · 7 unmodified lines
278278 The journal incompat features are any combination of the following:
279279
280280 .. list-table::
281− :widths: 1 79
281+ :widths: 16 64
282282 :header-rows: 1
283283
284284 * - Value
@@ -306,7 +306,7 @@ Journal checksum type codes are one of the following. crc32 or crc32c are the · 21 unmodified lines
306306 most likely choices.
307307
308308 .. list-table::
309− :widths: 1 79
309+ :widths: 16 64
310310 :header-rows: 1
311311
312312 * - Value
@@ -330,7 +330,7 @@ described by a data structure, but here is the block structure anyway. · 17 unmodified lines
330330 Descriptor blocks consume at least 36 bytes, but use a full block:
331331
332332 .. list-table::
333− :widths: 1 1 1 77
333+ :widths: 8 8 24 40
334334 :header-rows: 1
335335
336336 * - Offset
@@ -355,7 +355,7 @@ defined as ``struct journal_block_tag3_s``, which looks like the · 18 unmodified lines
355355 following. The size is 16 or 32 bytes.
356356
357357 .. list-table::
358− :widths: 1 1 1 77
358+ :widths: 8 8 24 40
359359 :header-rows: 1
360360
361361 * - Offset
@@ -400,7 +400,7 @@ following. The size is 16 or 32 bytes. · 38 unmodified lines
400400 The journal tag flags are any combination of the following:
401401
402402 .. list-table::
403− :widths: 1 79
403+ :widths: 16 64
404404 :header-rows: 1
405405
406406 * - Value
@@ -421,7 +421,7 @@ is defined as ``struct journal_block_tag_s``, which looks like the · 14 unmodified lines
421421 following. The size is 8, 12, 24, or 28 bytes:
422422
423423 .. list-table::
424− :widths: 1 1 1 77
424+ :widths: 8 8 24 40
425425 :header-rows: 1
426426
427427 * - Offset
@@ -471,7 +471,7 @@ JBD2\_FEATURE\_INCOMPAT\_CSUM\_V3 are set, the end of the block is a · 43 unmodified lines
471471 ``struct jbd2_journal_block_tail``, which looks like this:
472472
473473 .. list-table::
474− :widths: 1 1 1 77
474+ :widths: 8 8 24 40
475475 :header-rows: 1
476476
477477 * - Offset
@@ -513,7 +513,7 @@ Revocation blocks are described in · 35 unmodified lines
513513 length, but use a full block:
514514
515515 .. list-table::
516− :widths: 1 1 1 77
516+ :widths: 8 8 24 40
517517 :header-rows: 1
518518
519519 * - Offset
@@ -543,7 +543,7 @@ JBD2\_FEATURE\_INCOMPAT\_CSUM\_V3 are set, the end of the revocation · 23 unmodified lines
543543 block is a ``struct jbd2_journal_revoke_tail``, which has this format:
544544
545545 .. list-table::
546− :widths: 1 1 1 77
546+ :widths: 8 8 24 40
547547 :header-rows: 1
548548
549549 * - Offset
@@ -567,7 +567,7 @@ The commit block is described by ``struct commit_header``, which is 32 · 17 unmodified lines
567567 bytes long (but uses a full block):
568568
569569 .. list-table::
570− :widths: 1 1 1 77
570+ :widths: 8 8 24 40
571571 :header-rows: 1
572572
573573 * - Offset
Documentation/filesystems/ext4/mmp.rstrenamed from Documentation/filesystems/ext4/ondisk/mmp.rst+1−1
@@ -32,7 +32,7 @@ The checksum is calculated against the FS UUID and the MMP structure. · 31 unmodified lines
3232 The MMP structure (``struct mmp_struct``) is as follows:
3333
3434 .. list-table::
35− :widths: 1 1 1 77
35+ :widths: 8 12 20 40
3636 :header-rows: 1
3737
3838 * - Offset
Documentation/filesystems/ext4/ondisk/index.rst+0−9
@@ -1,9 +0,0 @@
1−.. SPDX-License-Identifier: GPL-2.0
2−
3−==============================
4−Data Structures and Algorithms
5−==============================
6−.. include:: about.rst
7−.. include:: overview.rst
8−.. include:: globals.rst
9−.. include:: dynamic.rst
Documentation/filesystems/ext4/overview.rstrenamed from Documentation/filesystems/ext4/ondisk/overview.rst+0−0

File renamed without changes.

Documentation/filesystems/ext4/special_inodes.rstrenamed from Documentation/filesystems/ext4/ondisk/special_inodes.rst+1−1
@@ -6,7 +6,7 @@ Special inodes · 5 unmodified lines
66 ext4 reserves some inode for special features, as follows:
77
88 .. list-table::
9− :widths: 1 79
9+ :widths: 6 70
1010 :header-rows: 1
1111
1212 * - inode Number
Documentation/filesystems/ext4/super.rstrenamed from Documentation/filesystems/ext4/ondisk/super.rst+12−12
@@ -19,7 +19,7 @@ The ext4 superblock is laid out as follows in · 18 unmodified lines
1919 ``struct ext4_super_block``:
2020
2121 .. list-table::
22− :widths: 1 1 1 77
22+ :widths: 8 8 24 40
2323 :header-rows: 1
2424
2525 * - Offset
@@ -483,7 +483,7 @@ The ext4 superblock is laid out as follows in · 457 unmodified lines
483483 The superblock state is some combination of the following:
484484
485485 .. list-table::
486− :widths: 1 79
486+ :widths: 8 72
487487 :header-rows: 1
488488
489489 * - Value
@@ -500,7 +500,7 @@ The superblock state is some combination of the following: · 10 unmodified lines
500500 The superblock error policy is one of the following:
501501
502502 .. list-table::
503− :widths: 1 79
503+ :widths: 8 72
504504 :header-rows: 1
505505
506506 * - Value
@@ -517,7 +517,7 @@ The superblock error policy is one of the following: · 10 unmodified lines
517517 The filesystem creator is one of the following:
518518
519519 .. list-table::
520− :widths: 1 79
520+ :widths: 8 72
521521 :header-rows: 1
522522
523523 * - Value
@@ -538,7 +538,7 @@ The filesystem creator is one of the following: · 14 unmodified lines
538538 The superblock revision is one of the following:
539539
540540 .. list-table::
541− :widths: 1 79
541+ :widths: 8 72
542542 :header-rows: 1
543543
544544 * - Value
@@ -556,7 +556,7 @@ The superblock compatible features field is a combination of any of the · 11 unmodified lines
556556 following:
557557
558558 .. list-table::
559− :widths: 1 79
559+ :widths: 16 64
560560 :header-rows: 1
561561
562562 * - Value
@@ -595,7 +595,7 @@ The superblock incompatible features field is a combination of any of the · 32 unmodified lines
595595 following:
596596
597597 .. list-table::
598− :widths: 1 79
598+ :widths: 16 64
599599 :header-rows: 1
600600
601601 * - Value
@@ -647,7 +647,7 @@ The superblock read-only compatible features field is a combination of any of · 45 unmodified lines
647647 the following:
648648
649649 .. list-table::
650− :widths: 1 79
650+ :widths: 16 64
651651 :header-rows: 1
652652
653653 * - Value
@@ -702,7 +702,7 @@ the following: · 48 unmodified lines
702702 The ``s_def_hash_version`` field is one of the following:
703703
704704 .. list-table::
705− :widths: 1 79
705+ :widths: 8 72
706706 :header-rows: 1
707707
708708 * - Value
@@ -725,7 +725,7 @@ The ``s_def_hash_version`` field is one of the following: · 16 unmodified lines
725725 The ``s_default_mount_opts`` field is any combination of the following:
726726
727727 .. list-table::
728− :widths: 1 79
728+ :widths: 8 72
729729 :header-rows: 1
730730
731731 * - Value
@@ -767,7 +767,7 @@ The ``s_default_mount_opts`` field is any combination of the following: · 35 unmodified lines
767767 The ``s_flags`` field is any combination of the following:
768768
769769 .. list-table::
770− :widths: 1 79
770+ :widths: 8 72
771771 :header-rows: 1
772772
773773 * - Value
@@ -784,7 +784,7 @@ The ``s_flags`` field is any combination of the following: · 10 unmodified lines
784784 The ``s_encrypt_algos`` list can contain any of the following:
785785
786786 .. list-table::
787− :widths: 1 79
787+ :widths: 8 72
788788 :header-rows: 1
789789
790790 * - Value
Documentation/filesystems/f2fs.txt+7−1
@@ -172,9 +172,10 @@ fault_type=%d Support configuring fault injection type, should be · 171 unmodified lines
172172 FAULT_DIR_DEPTH 0x000000100
173173 FAULT_EVICT_INODE 0x000000200
174174 FAULT_TRUNCATE 0x000000400
175− FAULT_IO 0x000000800
175+ FAULT_READ_IO 0x000000800
176176 FAULT_CHECKPOINT 0x000001000
177177 FAULT_DISCARD 0x000002000
178+ FAULT_WRITE_IO 0x000004000
178179 mode=%s Control block allocation mode which supports "adaptive"
179180 and "lfs". In "lfs" mode, there should be no random
180181 writes towards main area.
@@ -211,6 +212,11 @@ fsync_mode=%s Control the policy of fsync. Currently supports "posix", · 30 unmodified lines
211212 non-atomic files likewise "nobarrier" mount option.
212213 test_dummy_encryption Enable dummy encryption, which provides a fake fscrypt
213214 context. The fake fscrypt context is used by xfstests.
215+checkpoint=%s Set to "disable" to turn off checkpointing. Set to "enable"
216+ to reenable checkpointing. Is enabled by default. While
217+ disabled, any unmounting or unexpected shutdowns will cause
218+ the filesystem contents to appear as they did when the
219+ filesystem was mounted with that option.
214220
215221 ================================================================================
216222 DEBUGFS ENTRIES
Documentation/filesystems/fscrypt.rst+0−10
@@ -191,21 +191,11 @@ Currently, the following pairs of encryption modes are supported: · 190 unmodified lines
191191
192192 - AES-256-XTS for contents and AES-256-CTS-CBC for filenames
193193 - AES-128-CBC for contents and AES-128-CTS-CBC for filenames
194−- Speck128/256-XTS for contents and Speck128/256-CTS-CBC for filenames
195194
196195 It is strongly recommended to use AES-256-XTS for contents encryption.
197196 AES-128-CBC was added only for low-powered embedded devices with
198197 crypto accelerators such as CAAM or CESA that do not support XTS.
199198
200−Similarly, Speck128/256 support was only added for older or low-end
201−CPUs which cannot do AES fast enough -- especially ARM CPUs which have
202−NEON instructions but not the Cryptography Extensions -- and for which
203−it would not otherwise be feasible to use encryption at all. It is
204−not recommended to use Speck on CPUs that have AES instructions.
205−Speck support is only available if it has been enabled in the crypto
206−API via CONFIG_CRYPTO_SPECK. Also, on ARM platforms, to get
207−acceptable performance CONFIG_CRYPTO_SPECK_NEON must be enabled.
208−
209199 New encryption modes can be added relatively easily, without changes
210200 to individual filesystems. However, authenticated encryption (AE)
211201 modes are not currently supported because of the difficulty of dealing
Documentation/filesystems/nfs/00-INDEX+0−26
@@ -1,26 +0,0 @@
1−00-INDEX
2− - this file (nfs-related documentation).
3−Exporting
4− - explanation of how to make filesystems exportable.
5−fault_injection.txt
6− - information for using fault injection on the server
7−knfsd-stats.txt
8− - statistics which the NFS server makes available to user space.
9−nfs.txt
10− - nfs client, and DNS resolution for fs_locations.
11−nfs41-server.txt
12− - info on the Linux server implementation of NFSv4 minor version 1.
13−nfs-rdma.txt
14− - how to install and setup the Linux NFS/RDMA client and server software
15−nfsd-admin-interfaces.txt
16− - Administrative interfaces for nfsd.
17−nfsroot.txt
18− - short guide on setting up a diskless box with NFS root filesystem.
19−pnfs.txt
20− - short explanation of some of the internals of the pnfs client code
21−rpc-cache.txt
22− - introduction to the caching mechanisms in the sunrpc layer.
23−idmapper.txt
24− - information for configuring request-keys to be used by idmapper
25−rpc-server-gss.txt
26− - Information on GSS authentication support in the NFS Server
Documentation/filesystems/nfs/rpc-cache.txt+3−3
@@ -84,7 +84,7 @@ Creating a Cache · 83 unmodified lines
8484 A message from user space has arrived to fill out a
8585 cache entry. It is in 'buf' of length 'len'.
8686 cache_parse should parse this, find the item in the
87− cache with sunrpc_cache_lookup, and update the item
87+ cache with sunrpc_cache_lookup_rcu, and update the item
8888 with sunrpc_cache_update.
8989
9090
@@ -95,7 +95,7 @@ Creating a Cache · 4 unmodified lines
9595 Using a cache
9696 -------------
9797
98−To find a value in a cache, call sunrpc_cache_lookup passing a pointer
98+To find a value in a cache, call sunrpc_cache_lookup_rcu passing a pointer
9999 to the cache_head in a sample item with the 'key' fields filled in.
100100 This will be passed to ->match to identify the target entry. If no
101101 entry is found, a new entry will be create, added to the cache, and
@@ -116,7 +116,7 @@ item does become valid, the deferred copy of the request will be · 14 unmodified lines
116116 revisited (->revisit). It is expected that this method will
117117 reschedule the request for processing.
118118
119−The value returned by sunrpc_cache_lookup can also be passed to
119+The value returned by sunrpc_cache_lookup_rcu can also be passed to
120120 sunrpc_cache_update to set the content for the item. A second item is
121121 passed which should hold the content. If the item found by _lookup
122122 has valid data, then it is discarded and a new item is created. This
Documentation/filesystems/overlayfs.txt+6−0
@@ -286,6 +286,12 @@ pointed by REDIRECT. This should not be possible on local system as setting · 285 unmodified lines
286286 "trusted." xattrs will require CAP_SYS_ADMIN. But it should be possible
287287 for untrusted layers like from a pen drive.
288288
289+Note: redirect_dir={off|nofollow|follow(*)} conflicts with metacopy=on, and
290+results in an error.
291+
292+(*) redirect_dir=follow only conflicts with metacopy=on if upperdir=... is
293+given.
294+
289295 Sharing and copying layers
290296 --------------------------
291297
Documentation/filesystems/pohmelfs/design_notes.txt+0−72
@@ -1,72 +0,0 @@
1−POHMELFS: Parallel Optimized Host Message Exchange Layered File System.
2−
3− Evgeniy Polyakov <zbr@ioremap.net>
4−
5−Homepage: http://www.ioremap.net/projects/pohmelfs
6−
7−POHMELFS first began as a network filesystem with coherent local data and
8−metadata caches but is now evolving into a parallel distributed filesystem.
9−
10−Main features of this FS include:
11− * Locally coherent cache for data and metadata with (potentially) byte-range locks.
12− Since all Linux filesystems lock the whole inode during writing, algorithm
13− is very simple and does not use byte-ranges, although they are sent in
14− locking messages.
15− * Completely async processing of all events except creation of hard and symbolic
16− links, and rename events.
17− Object creation and data reading and writing are processed asynchronously.
18− * Flexible object architecture optimized for network processing.
19− Ability to create long paths to objects and remove arbitrarily huge
20− directories with a single network command.
21− (like removing the whole kernel tree via a single network command).
22− * Very high performance.
23− * Fast and scalable multithreaded userspace server. Being in userspace it works
24− with any underlying filesystem and still is much faster than async in-kernel NFS one.
25− * Client is able to switch between different servers (if one goes down, client
26− automatically reconnects to second and so on).
27− * Transactions support. Full failover for all operations.
28− Resending transactions to different servers on timeout or error.
29− * Read request (data read, directory listing, lookup requests) balancing between multiple servers.
30− * Write requests are replicated to multiple servers and completed only when all of them are acked.
31− * Ability to add and/or remove servers from the working set at run-time.
32− * Strong authentication and possible data encryption in network channel.
33− * Extended attributes support.
34−
35−POHMELFS is based on transactions, which are potentially long-standing objects that live
36−in the client's memory. Each transaction contains all the information needed to process a given
37−command (or set of commands, which is frequently used during data writing: single transactions
38−can contain creation and data writing commands). Transactions are committed by all the servers
39−to which they are sent and, in case of failures, are eventually resent or dropped with an error.
40−For example, reading will return an error if no servers are available.
41−
42−POHMELFS uses a asynchronous approach to data processing. Courtesy of transactions, it is
43−possible to detach replies from requests and, if the command requires data to be received, the
44−caller sleeps waiting for it. Thus, it is possible to issue multiple read commands to different
45−servers and async threads will pick up replies in parallel, find appropriate transactions in the
46−system and put the data where it belongs (like the page or inode cache).
47−
48−The main feature of POHMELFS is writeback data and the metadata cache.
49−Only a few non-performance critical operations use the write-through cache and
50−are synchronous: hard and symbolic link creation, and object rename. Creation,
51−removal of objects and data writing are asynchronous and are sent to
52−the server during system writeback. Only one writer at a time is allowed for any
53−given inode, which is guarded by an appropriate locking protocol.
54−Because of this feature, POHMELFS is extremely fast at metadata intensive
55−workloads and can fully utilize the bandwidth to the servers when doing bulk
56−data transfers.
57−
58−POHMELFS clients operate with a working set of servers and are capable of balancing read-only
59−operations (like lookups or directory listings) between them according to IO priorities.
60−Administrators can add or remove servers from the set at run-time via special commands (described
61−in Documentation/filesystems/pohmelfs/info.txt file). Writes are replicated to all servers, which
62−are connected with write permission turned on. IO priority and permissions can be changed in
63−run-time.
64−
65−POHMELFS is capable of full data channel encryption and/or strong crypto hashing.
66−One can select any kernel supported cipher, encryption mode, hash type and operation mode
67−(hmac or digest). It is also possible to use both or neither (default). Crypto configuration
68−is checked during mount time and, if the server does not support it, appropriate capabilities
69−will be disabled or mount will fail (if 'crypto_fail_unsupported' mount option is specified).
70−Crypto performance heavily depends on the number of crypto threads, which asynchronously perform
71−crypto operations and send the resulting data to server or submit it up the stack. This number
72−can be controlled via a mount option.
Documentation/filesystems/pohmelfs/info.txt+0−99
@@ -1,99 +0,0 @@
1−POHMELFS usage information.
2−
3−Mount options.
4−All but index, number of crypto threads and maximum IO size can changed via remount.
5−
6−idx=%u
7− Each mountpoint is associated with a special index via this option.
8− Administrator can add or remove servers from the given index, so all mounts,
9− which were attached to it, are updated.
10− Default it is 0.
11−
12−trans_scan_timeout=%u
13− This timeout, expressed in milliseconds, specifies time to scan transaction
14− trees looking for stale requests, which have to be resent, or if number of
15− retries exceed specified limit, dropped with error.
16− Default is 5 seconds.
17−
18−drop_scan_timeout=%u
19− Internal timeout, expressed in milliseconds, which specifies how frequently
20− inodes marked to be dropped are freed. It also specifies how frequently
21− the system checks that servers have to be added or removed from current working set.
22− Default is 1 second.
23−
24−wait_on_page_timeout=%u
25− Number of milliseconds to wait for reply from remote server for data reading command.
26− If this timeout is exceeded, reading returns an error.
27− Default is 5 seconds.
28−
29−trans_retries=%u
30− This is the number of times that a transaction will be resent to a server that did
31− not answer for the last @trans_scan_timeout milliseconds.
32− When the number of resends exceeds this limit, the transaction is completed with error.
33− Default is 5 resends.
34−
35−crypto_thread_num=%u
36− Number of crypto processing threads. Threads are used both for RX and TX traffic.
37− Default is 2, or no threads if crypto operations are not supported.
38−
39−trans_max_pages=%u
40− Maximum number of pages in a single transaction. This parameter also controls
41− the number of pages, allocated for crypto processing (each crypto thread has
42− pool of pages, the number of which is equal to 'trans_max_pages'.
43− Default is 100 pages.
44−
45−crypto_fail_unsupported
46− If specified, mount will fail if the server does not support requested crypto operations.
47− By default mount will disable non-matching crypto operations.
48−
49−mcache_timeout=%u
50− Maximum number of milliseconds to wait for the mcache objects to be processed.
51− Mcache includes locks (given lock should be granted by server), attributes (they should be
52− fully received in the given timeframe).
53− Default is 5 seconds.
54−
55−Usage examples.
56−
57−Add server server1.net:1025 into the working set with index $idx
58−with appropriate hash algorithm and key file and cipher algorithm, mode and key file:
59−$cfg A add -a server1.net -p 1025 -i $idx -K $hash_key -k $cipher_key
60−
61−Mount filesystem with given index $idx to /mnt mountpoint.
62−Client will connect to all servers specified in the working set via previous command:
63−mount -t pohmel -o idx=$idx q /mnt
64−
65−Change permissions to read-only (-I 1 option, '-I 2' - write-only, 3 - rw):
66−$cfg A modify -a server1.net -p 1025 -i $idx -I 1
67−
68−Change IO priority to 123 (node with the highest priority gets read requests).
69−$cfg A modify -a server1.net -p 1025 -i $idx -P 123
70−
71−One can check currect status of all connections in the mountstats file:
72−# cat /proc/$PID/mountstats
73−...
74−device none mounted on /mnt with fstype pohmel
75−idx addr(:port) socket_type protocol active priority permissions
76−0 server1.net:1026 1 6 1 250 1
77−0 server2.net:1025 1 6 1 123 3
78−
79−Server installation.
80−
81−Creating a server, which listens at port 1025 and 0.0.0.0 address.
82−Working root directory (note, that server chroots there, so you have to have appropriate permissions)
83−is set to /mnt, server will negotiate hash/cipher with client, in case client requested it, there
84−are appropriate key files.
85−Number of working threads is set to 10.
86−
87−# ./fserver -a 0.0.0.0 -p 1025 -r /mnt -w 10 -K hash_key -k cipher_key
88−
89− -A 6 - listen on ipv6 address. Default: Disabled.
90− -r root - path to root directory. Default: /tmp.
91− -a addr - listen address. Default: 0.0.0.0.
92− -p port - listen port. Default: 1025.
93− -w workers - number of workers per connected client. Default: 1.
94− -K file - hash key size. Default: none.
95− -k file - cipher key size. Default: none.
96− -h - this help.
97−
98−Number of worker threads specifies how many workers will be created for each client.
99−Bulk single-client transafers usually are better handled with smaller number (like 1-3).
Documentation/filesystems/pohmelfs/network_protocol.txt+0−227
@@ -1,227 +0,0 @@
1−POHMELFS network protocol.
2−
3−Basic structure used in network communication is following command:
4−
5−struct netfs_cmd
6−{
7− __u16 cmd; /* Command number */
8− __u16 csize; /* Attached crypto information size */
9− __u16 cpad; /* Attached padding size */
10− __u16 ext; /* External flags */
11− __u32 size; /* Size of the attached data */
12− __u32 trans; /* Transaction id */
13− __u64 id; /* Object ID to operate on. Used for feedback.*/
14− __u64 start; /* Start of the object. */
15− __u64 iv; /* IV sequence */
16− __u8 data[0];
17−};
18−
19−Commands can be embedded into transaction command (which in turn has own command),
20−so one can extend protocol as needed without breaking backward compatibility as long
21−as old commands are supported. All string lengths include tail 0 byte.
22−
23−All commands are transferred over the network in big-endian. CPU endianness is used at the end peers.
24−
25−@cmd - command number, which specifies command to be processed. Following
26− commands are used currently:
27−
28− NETFS_READDIR = 1, /* Read directory for given inode number */
29− NETFS_READ_PAGE, /* Read data page from the server */
30− NETFS_WRITE_PAGE, /* Write data page to the server */
31− NETFS_CREATE, /* Create directory entry */
32− NETFS_REMOVE, /* Remove directory entry */
33− NETFS_LOOKUP, /* Lookup single object */
34− NETFS_LINK, /* Create a link */
35− NETFS_TRANS, /* Transaction */
36− NETFS_OPEN, /* Open intent */
37− NETFS_INODE_INFO, /* Metadata cache coherency synchronization message */
38− NETFS_PAGE_CACHE, /* Page cache invalidation message */
39− NETFS_READ_PAGES, /* Read multiple contiguous pages in one go */
40− NETFS_RENAME, /* Rename object */
41− NETFS_CAPABILITIES, /* Capabilities of the client, for example supported crypto */
42− NETFS_LOCK, /* Distributed lock message */
43− NETFS_XATTR_SET, /* Set extended attribute */
44− NETFS_XATTR_GET, /* Get extended attribute */
45−
46−@ext - external flags. Used by different commands to specify some extra arguments
47− like partial size of the embedded objects or creation flags.
48−
49−@size - size of the attached data. For NETFS_READ_PAGE and NETFS_READ_PAGES no data is attached,
50− but size of the requested data is incorporated here. It does not include size of the command
51− header (struct netfs_cmd) itself.
52−
53−@id - id of the object this command operates on. Each command can use it for own purpose.
54−
55−@start - start of the object this command operates on. Each command can use it for own purpose.
56−
57−@csize, @cpad - size and padding size of the (attached if needed) crypto information.
58−
59−Command specifications.
60−
61−@NETFS_READDIR
62−This command is used to sync content of the remote dir to the client.
63−
64−@ext - length of the path to object.
65−@size - the same.
66−@id - local inode number of the directory to read.
67−@start - zero.
68−
69−
70−@NETFS_READ_PAGE
71−This command is used to read data from remote server.
72−Data size does not exceed local page cache size.
73−
74−@id - inode number.
75−@start - first byte offset.
76−@size - number of bytes to read plus length of the path to object.
77−@ext - object path length.
78−
79−
80−@NETFS_CREATE
81−Used to create object.
82−It does not require that all directories on top of the object were
83−already created, it will create them automatically. Each object has
84−associated @netfs_path_entry data structure, which contains creation
85−mode (permissions and type) and length of the name as long as name itself.
86−
87−@start - 0
88−@size - size of the all data structures needed to create a path
89−@id - local inode number
90−@ext - 0
91−
92−
93−@NETFS_REMOVE
94−Used to remove object.
95−
96−@ext - length of the path to object.
97−@size - the same.
98−@id - local inode number.
99−@start - zero.
100−
101−
102−@NETFS_LOOKUP
103−Lookup information about object on server.
104−
105−@ext - length of the path to object.
106−@size - the same.
107−@id - local inode number of the directory to look object in.
108−@start - local inode number of the object to look at.
109−
110−
111−@NETFS_LINK
112−Create hard of symlink.
113−Command is sent as "object_path|target_path".
114−
115−@size - size of the above string.
116−@id - parent local inode number.
117−@start - 1 for symlink, 0 for hardlink.
118−@ext - size of the "object_path" above.
119−
120−
121−@NETFS_TRANS
122−Transaction header.
123−
124−@size - incorporates all embedded command sizes including theirs header sizes.
125−@start - transaction generation number - unique id used to find transaction.
126−@ext - transaction flags. Unused at the moment.
127−@id - 0.
128−
129−
130−@NETFS_OPEN
131−Open intent for given transaction.
132−
133−@id - local inode number.
134−@start - 0.
135−@size - path length to the object.
136−@ext - open flags (O_RDWR and so on).
137−
138−
139−@NETFS_INODE_INFO
140−Metadata update command.
141−It is sent to servers when attributes of the object are changed and received
142−when data or metadata were updated. It operates with the following structure:
143−
144−struct netfs_inode_info
145−{
146− unsigned int mode;
147− unsigned int nlink;
148− unsigned int uid;
149− unsigned int gid;
150− unsigned int blocksize;
151− unsigned int padding;
152− __u64 ino;
153− __u64 blocks;
154− __u64 rdev;
155− __u64 size;
156− __u64 version;
157−};
158−
159−It effectively mirrors stat(2) returned data.
160−
161−
162−@ext - path length to the object.
163−@size - the same plus size of the netfs_inode_info structure.
164−@id - local inode number.
165−@start - 0.
166−
167−
168−@NETFS_PAGE_CACHE
169−Command is only received by clients. It contains information about
170−page to be marked as not up-to-date.
171−
172−@id - client's inode number.
173−@start - last byte of the page to be invalidated. If it is not equal to
174− current inode size, it will be vmtruncated().
175−@size - 0
176−@ext - 0
177−
178−
179−@NETFS_READ_PAGES
180−Used to read multiple contiguous pages in one go.
181−
182−@start - first byte of the contiguous region to read.
183−@size - contains of two fields: lower 8 bits are used to represent page cache shift
184− used by client, another 3 bytes are used to get number of pages.
185−@id - local inode number.
186−@ext - path length to the object.
187−
188−
189−@NETFS_RENAME
190−Used to rename object.
191−Attached data is formed into following string: "old_path|new_path".
192−
193−@id - local inode number.
194−@start - parent inode number.
195−@size - length of the above string.
196−@ext - length of the old path part.
197−
198−
199−@NETFS_CAPABILITIES
200−Used to exchange crypto capabilities with server.
201−If crypto capabilities are not supported by server, then client will disable it
202−or fail (if 'crypto_fail_unsupported' mount options was specified).
203−
204−@id - superblock index. Used to specify crypto information for group of servers.
205−@size - size of the attached capabilities structure.
206−@start - 0.
207−@size - 0.
208−@scsize - 0.
209−
210−@NETFS_LOCK
211−Used to send lock request/release messages. Although it sends byte range request
212−and is capable of flushing pages based on that, it is not used, since all Linux
213−filesystems lock the whole inode.
214−
215−@id - lock generation number.
216−@start - start of the locked range.
217−@size - size of the locked range.
218−@ext - lock type: read/write. Not used actually. 15'th bit is used to determine,
219− if it is lock request (1) or release (0).
220−
221−@NETFS_XATTR_SET
222−@NETFS_XATTR_GET
223−Used to set/get extended attributes for given inode.
224−@id - attribute generation number or xattr setting type
225−@start - size of the attribute (request or attached)
226−@size - name length, path len and data size for given attribute
227−@ext - path length for given object
Documentation/filesystems/porting+16−0
@@ -622,3 +622,19 @@ in your dentry operations instead. · 621 unmodified lines
622622 alloc_file_clone(file, flags, ops) does not affect any caller's references.
623623 On success you get a new struct file sharing the mount/dentry with the
624624 original, on failure - ERR_PTR().
625+--
626+[mandatory]
627+ ->clone_file_range() and ->dedupe_file_range have been replaced with
628+ ->remap_file_range(). See Documentation/filesystems/vfs.txt for more
629+ information.
630+--
631+[recommended]
632+ ->lookup() instances doing an equivalent of
633+ if (IS_ERR(inode))
634+ return ERR_CAST(inode);
635+ return d_splice_alias(inode, dentry);
636+ don't need to bother with the check - d_splice_alias() will do the
637+ right thing when given ERR_PTR(...) as inode. Moreover, passing NULL
638+ inode to d_splice_alias() will also do the right thing (equivalent of
639+ d_add(dentry, NULL); return NULL;), so that kind of special cases
640+ also doesn't need a separate treatment.
Documentation/filesystems/proc.txt+4−0
@@ -858,6 +858,7 @@ Writeback: 0 kB · 857 unmodified lines
858858 AnonPages: 861800 kB
859859 Mapped: 280372 kB
860860 Shmem: 644 kB
861+KReclaimable: 168048 kB
861862 Slab: 284364 kB
862863 SReclaimable: 159856 kB
863864 SUnreclaim: 124508 kB
@@ -925,6 +926,9 @@ AnonHugePages: Non-file backed huge pages mapped into userspace page tables · 61 unmodified lines
925926 ShmemHugePages: Memory used by shared memory (shmem) and tmpfs allocated
926927 with huge pages
927928 ShmemPmdMapped: Shared memory mapped into userspace with huge pages
929+KReclaimable: Kernel allocations that the kernel will attempt to reclaim
930+ under memory pressure. Includes SReclaimable (below), and other
931+ direct allocations with a shrinker.
928932 Slab: in-kernel data structures cache
929933 SReclaimable: Part of Slab, that might be reclaimed, such as caches
930934 SUnreclaim: Part of Slab, that cannot be reclaimed on memory pressure
Documentation/filesystems/ubifs-authentication.md+426−0
@@ -0,0 +1,426 @@
1+% UBIFS Authentication
2+% sigma star gmbh
3+% 2018
4+
5+# Introduction
6+
7+UBIFS utilizes the fscrypt framework to provide confidentiality for file
8+contents and file names. This prevents attacks where an attacker is able to
9+read contents of the filesystem on a single point in time. A classic example
10+is a lost smartphone where the attacker is unable to read personal data stored
11+on the device without the filesystem decryption key.
12+
13+At the current state, UBIFS encryption however does not prevent attacks where
14+the attacker is able to modify the filesystem contents and the user uses the
15+device afterwards. In such a scenario an attacker can modify filesystem
16+contents arbitrarily without the user noticing. One example is to modify a
17+binary to perform a malicious action when executed [DMC-CBC-ATTACK]. Since
18+most of the filesystem metadata of UBIFS is stored in plain, this makes it
19+fairly easy to swap files and replace their contents.
20+
21+Other full disk encryption systems like dm-crypt cover all filesystem metadata,
22+which makes such kinds of attacks more complicated, but not impossible.
23+Especially, if the attacker is given access to the device multiple points in
24+time. For dm-crypt and other filesystems that build upon the Linux block IO
25+layer, the dm-integrity or dm-verity subsystems [DM-INTEGRITY, DM-VERITY]
26+can be used to get full data authentication at the block layer.
27+These can also be combined with dm-crypt [CRYPTSETUP2].
28+
29+This document describes an approach to get file contents _and_ full metadata
30+authentication for UBIFS. Since UBIFS uses fscrypt for file contents and file
31+name encryption, the authentication system could be tied into fscrypt such that
32+existing features like key derivation can be utilized. It should however also
33+be possible to use UBIFS authentication without using encryption.
34+
35+
36+## MTD, UBI & UBIFS
37+
38+On Linux, the MTD (Memory Technology Devices) subsystem provides a uniform
39+interface to access raw flash devices. One of the more prominent subsystems that
40+work on top of MTD is UBI (Unsorted Block Images). It provides volume management
41+for flash devices and is thus somewhat similar to LVM for block devices. In
42+addition, it deals with flash-specific wear-leveling and transparent I/O error
43+handling. UBI offers logical erase blocks (LEBs) to the layers on top of it
44+and maps them transparently to physical erase blocks (PEBs) on the flash.
45+
46+UBIFS is a filesystem for raw flash which operates on top of UBI. Thus, wear
47+leveling and some flash specifics are left to UBI, while UBIFS focuses on
48+scalability, performance and recoverability.
49+
50+
51+
52+ +------------+ +*******+ +-----------+ +-----+
53+ | | * UBIFS * | UBI-BLOCK | | ... |
54+ | JFFS/JFFS2 | +*******+ +-----------+ +-----+
55+ | | +-----------------------------+ +-----------+ +-----+
56+ | | | UBI | | MTD-BLOCK | | ... |
57+ +------------+ +-----------------------------+ +-----------+ +-----+
58+ +------------------------------------------------------------------+
59+ | MEMORY TECHNOLOGY DEVICES (MTD) |
60+ +------------------------------------------------------------------+
61+ +-----------------------------+ +--------------------------+ +-----+
62+ | NAND DRIVERS | | NOR DRIVERS | | ... |
63+ +-----------------------------+ +--------------------------+ +-----+
64+
65+ Figure 1: Linux kernel subsystems for dealing with raw flash
66+
67+
68+
69+Internally, UBIFS maintains multiple data structures which are persisted on
70+the flash:
71+
72+- *Index*: an on-flash B+ tree where the leaf nodes contain filesystem data
73+- *Journal*: an additional data structure to collect FS changes before updating
74+ the on-flash index and reduce flash wear.
75+- *Tree Node Cache (TNC)*: an in-memory B+ tree that reflects the current FS
76+ state to avoid frequent flash reads. It is basically the in-memory
77+ representation of the index, but contains additional attributes.
78+- *LEB property tree (LPT)*: an on-flash B+ tree for free space accounting per
79+ UBI LEB.
80+
81+In the remainder of this section we will cover the on-flash UBIFS data
82+structures in more detail. The TNC is of less importance here since it is never
83+persisted onto the flash directly. More details on UBIFS can also be found in
84+[UBIFS-WP].
85+
86+
87+### UBIFS Index & Tree Node Cache
88+
89+Basic on-flash UBIFS entities are called *nodes*. UBIFS knows different types
90+of nodes. Eg. data nodes (`struct ubifs_data_node`) which store chunks of file
91+contents or inode nodes (`struct ubifs_ino_node`) which represent VFS inodes.
92+Almost all types of nodes share a common header (`ubifs_ch`) containing basic
93+information like node type, node length, a sequence number, etc. (see
94+`fs/ubifs/ubifs-media.h`in kernel source). Exceptions are entries of the LPT
95+and some less important node types like padding nodes which are used to pad
96+unusable content at the end of LEBs.
97+
98+To avoid re-writing the whole B+ tree on every single change, it is implemented
99+as *wandering tree*, where only the changed nodes are re-written and previous
100+versions of them are obsoleted without erasing them right away. As a result,
101+the index is not stored in a single place on the flash, but *wanders* around
102+and there are obsolete parts on the flash as long as the LEB containing them is
103+not reused by UBIFS. To find the most recent version of the index, UBIFS stores
104+a special node called *master node* into UBI LEB 1 which always points to the
105+most recent root node of the UBIFS index. For recoverability, the master node
106+is additionally duplicated to LEB 2. Mounting UBIFS is thus a simple read of
107+LEB 1 and 2 to get the current master node and from there get the location of
108+the most recent on-flash index.
109+
110+The TNC is the in-memory representation of the on-flash index. It contains some
111+additional runtime attributes per node which are not persisted. One of these is
112+a dirty-flag which marks nodes that have to be persisted the next time the
113+index is written onto the flash. The TNC acts as a write-back cache and all
114+modifications of the on-flash index are done through the TNC. Like other caches,
115+the TNC does not have to mirror the full index into memory, but reads parts of
116+it from flash whenever needed. A *commit* is the UBIFS operation of updating the
117+on-flash filesystem structures like the index. On every commit, the TNC nodes
118+marked as dirty are written to the flash to update the persisted index.
119+
120+
121+### Journal
122+
123+To avoid wearing out the flash, the index is only persisted (*commited*) when
124+certain conditions are met (eg. `fsync(2)`). The journal is used to record
125+any changes (in form of inode nodes, data nodes etc.) between commits
126+of the index. During mount, the journal is read from the flash and replayed
127+onto the TNC (which will be created on-demand from the on-flash index).
128+
129+UBIFS reserves a bunch of LEBs just for the journal called *log area*. The
130+amount of log area LEBs is configured on filesystem creation (using
131+`mkfs.ubifs`) and stored in the superblock node. The log area contains only
132+two types of nodes: *reference nodes* and *commit start nodes*. A commit start
133+node is written whenever an index commit is performed. Reference nodes are
134+written on every journal update. Each reference node points to the position of
135+other nodes (inode nodes, data nodes etc.) on the flash that are part of this
136+journal entry. These nodes are called *buds* and describe the actual filesystem
137+changes including their data.
138+
139+The log area is maintained as a ring. Whenever the journal is almost full,
140+a commit is initiated. This also writes a commit start node so that during
141+mount, UBIFS will seek for the most recent commit start node and just replay
142+every reference node after that. Every reference node before the commit start
143+node will be ignored as they are already part of the on-flash index.
144+
145+When writing a journal entry, UBIFS first ensures that enough space is
146+available to write the reference node and buds part of this entry. Then, the
147+reference node is written and afterwards the buds describing the file changes.
148+On replay, UBIFS will record every reference node and inspect the location of
149+the referenced LEBs to discover the buds. If these are corrupt or missing,
150+UBIFS will attempt to recover them by re-reading the LEB. This is however only
151+done for the last referenced LEB of the journal. Only this can become corrupt
152+because of a power cut. If the recovery fails, UBIFS will not mount. An error
153+for every other LEB will directly cause UBIFS to fail the mount operation.
154+
155+
156+ | ---- LOG AREA ---- | ---------- MAIN AREA ------------ |
157+
158+ -----+------+-----+--------+---- ------+-----+-----+---------------
159+ \ | | | | / / | | | \
160+ / CS | REF | REF | | \ \ DENT | INO | INO | /
161+ \ | | | | / / | | | \
162+ ----+------+-----+--------+--- -------+-----+-----+----------------
163+ | | ^ ^
164+ | | | |
165+ +------------------------+ |
166+ | |
167+ +-------------------------------+
168+
169+
170+ Figure 2: UBIFS flash layout of log area with commit start nodes
171+ (CS) and reference nodes (REF) pointing to main area
172+ containing their buds
173+
174+
175+### LEB Property Tree/Table
176+
177+The LEB property tree is used to store per-LEB information. This includes the
178+LEB type and amount of free and *dirty* (old, obsolete content) space [1] on
179+the LEB. The type is important, because UBIFS never mixes index nodes with data
180+nodes on a single LEB and thus each LEB has a specific purpose. This again is
181+useful for free space calculations. See [UBIFS-WP] for more details.
182+
183+The LEB property tree again is a B+ tree, but it is much smaller than the
184+index. Due to its smaller size it is always written as one chunk on every
185+commit. Thus, saving the LPT is an atomic operation.
186+
187+
188+[1] Since LEBs can only be appended and never overwritten, there is a
189+difference between free space ie. the remaining space left on the LEB to be
190+written to without erasing it and previously written content that is obsolete
191+but can't be overwritten without erasing the full LEB.
192+
193+
194+# UBIFS Authentication
195+
196+This chapter introduces UBIFS authentication which enables UBIFS to verify
197+the authenticity and integrity of metadata and file contents stored on flash.
198+
199+
200+## Threat Model
201+
202+UBIFS authentication enables detection of offline data modification. While it
203+does not prevent it, it enables (trusted) code to check the integrity and
204+authenticity of on-flash file contents and filesystem metadata. This covers
205+attacks where file contents are swapped.
206+
207+UBIFS authentication will not protect against rollback of full flash contents.
208+Ie. an attacker can still dump the flash and restore it at a later time without
209+detection. It will also not protect against partial rollback of individual
210+index commits. That means that an attacker is able to partially undo changes.
211+This is possible because UBIFS does not immediately overwrites obsolete
212+versions of the index tree or the journal, but instead marks them as obsolete
213+and garbage collection erases them at a later time. An attacker can use this by
214+erasing parts of the current tree and restoring old versions that are still on
215+the flash and have not yet been erased. This is possible, because every commit
216+will always write a new version of the index root node and the master node
217+without overwriting the previous version. This is further helped by the
218+wear-leveling operations of UBI which copies contents from one physical
219+eraseblock to another and does not atomically erase the first eraseblock.
220+
221+UBIFS authentication does not cover attacks where an attacker is able to
222+execute code on the device after the authentication key was provided.
223+Additional measures like secure boot and trusted boot have to be taken to
224+ensure that only trusted code is executed on a device.
225+
226+
227+## Authentication
228+
229+To be able to fully trust data read from flash, all UBIFS data structures
230+stored on flash are authenticated. That is:
231+
232+- The index which includes file contents, file metadata like extended
233+ attributes, file length etc.
234+- The journal which also contains file contents and metadata by recording changes
235+ to the filesystem
236+- The LPT which stores UBI LEB metadata which UBIFS uses for free space accounting
237+
238+
239+### Index Authentication
240+
241+Through UBIFS' concept of a wandering tree, it already takes care of only
242+updating and persisting changed parts from leaf node up to the root node
243+of the full B+ tree. This enables us to augment the index nodes of the tree
244+with a hash over each node's child nodes. As a result, the index basically also
245+a Merkle tree. Since the leaf nodes of the index contain the actual filesystem
246+data, the hashes of their parent index nodes thus cover all the file contents
247+and file metadata. When a file changes, the UBIFS index is updated accordingly
248+from the leaf nodes up to the root node including the master node. This process
249+can be hooked to recompute the hash only for each changed node at the same time.
250+Whenever a file is read, UBIFS can verify the hashes from each leaf node up to
251+the root node to ensure the node's integrity.
252+
253+To ensure the authenticity of the whole index, the UBIFS master node stores a
254+keyed hash (HMAC) over its own contents and a hash of the root node of the index
255+tree. As mentioned above, the master node is always written to the flash whenever
256+the index is persisted (ie. on index commit).
257+
258+Using this approach only UBIFS index nodes and the master node are changed to
259+include a hash. All other types of nodes will remain unchanged. This reduces
260+the storage overhead which is precious for users of UBIFS (ie. embedded
261+devices).
262+
263+
264+ +---------------+
265+ | Master Node |
266+ | (hash) |
267+ +---------------+
268+ |
269+ v
270+ +-------------------+
271+ | Index Node #1 |
272+ | |
273+ | branch0 branchn |
274+ | (hash) (hash) |
275+ +-------------------+
276+ | ... | (fanout: 8)
277+ | |
278+ +-------+ +------+
279+ | |
280+ v v
281+ +-------------------+ +-------------------+
282+ | Index Node #2 | | Index Node #3 |
283+ | | | |
284+ | branch0 branchn | | branch0 branchn |
285+ | (hash) (hash) | | (hash) (hash) |
286+ +-------------------+ +-------------------+
287+ | ... | ... |
288+ v v v
289+ +-----------+ +----------+ +-----------+
290+ | Data Node | | INO Node | | DENT Node |
291+ +-----------+ +----------+ +-----------+
292+
293+
294+ Figure 3: Coverage areas of index node hash and master node HMAC
295+
296+
297+
298+The most important part for robustness and power-cut safety is to atomically
299+persist the hash and file contents. Here the existing UBIFS logic for how
300+changed nodes are persisted is already designed for this purpose such that
301+UBIFS can safely recover if a power-cut occurs while persisting. Adding
302+hashes to index nodes does not change this since each hash will be persisted
303+atomically together with its respective node.
304+
305+
306+### Journal Authentication
307+
308+The journal is authenticated too. Since the journal is continuously written
309+it is necessary to also add authentication information frequently to the
310+journal so that in case of a powercut not too much data can't be authenticated.
311+This is done by creating a continuous hash beginning from the commit start node
312+over the previous reference nodes, the current reference node, and the bud
313+nodes. From time to time whenever it is suitable authentication nodes are added
314+between the bud nodes. This new node type contains a HMAC over the current state
315+of the hash chain. That way a journal can be authenticated up to the last
316+authentication node. The tail of the journal which may not have a authentication
317+node cannot be authenticated and is skipped during journal replay.
318+
319+We get this picture for journal authentication:
320+
321+ ,,,,,,,,
322+ ,......,...........................................
323+ ,. CS , hash1.----. hash2.----.
324+ ,. | , . |hmac . |hmac
325+ ,. v , . v . v
326+ ,.REF#0,-> bud -> bud -> bud.-> auth -> bud -> bud.-> auth ...
327+ ,..|...,...........................................
328+ , | ,
329+ , | ,,,,,,,,,,,,,,,
330+ . | hash3,----.
331+ , | , |hmac
332+ , v , v
333+ , REF#1 -> bud -> bud,-> auth ...
334+ ,,,|,,,,,,,,,,,,,,,,,,
335+ v
336+ REF#2 -> ...
337+ |
338+ V
339+ ...
340+
341+Since the hash also includes the reference nodes an attacker cannot reorder or
342+skip any journal heads for replay. An attacker can only remove bud nodes or
343+reference nodes from the end of the journal, effectively rewinding the
344+filesystem at maximum back to the last commit.
345+
346+The location of the log area is stored in the master node. Since the master
347+node is authenticated with a HMAC as described above, it is not possible to
348+tamper with that without detection. The size of the log area is specified when
349+the filesystem is created using `mkfs.ubifs` and stored in the superblock node.
350+To avoid tampering with this and other values stored there, a HMAC is added to
351+the superblock struct. The superblock node is stored in LEB 0 and is only
352+modified on feature flag or similar changes, but never on file changes.
353+
354+
355+### LPT Authentication
356+
357+The location of the LPT root node on the flash is stored in the UBIFS master
358+node. Since the LPT is written and read atomically on every commit, there is
359+no need to authenticate individual nodes of the tree. It suffices to
360+protect the integrity of the full LPT by a simple hash stored in the master
361+node. Since the master node itself is authenticated, the LPTs authenticity can
362+be verified by verifying the authenticity of the master node and comparing the
363+LTP hash stored there with the hash computed from the read on-flash LPT.
364+
365+
366+## Key Management
367+
368+For simplicity, UBIFS authentication uses a single key to compute the HMACs
369+of superblock, master, commit start and reference nodes. This key has to be
370+available on creation of the filesystem (`mkfs.ubifs`) to authenticate the
371+superblock node. Further, it has to be available on mount of the filesystem
372+to verify authenticated nodes and generate new HMACs for changes.
373+
374+UBIFS authentication is intended to operate side-by-side with UBIFS encryption
375+(fscrypt) to provide confidentiality and authenticity. Since UBIFS encryption
376+has a different approach of encryption policies per directory, there can be
377+multiple fscrypt master keys and there might be folders without encryption.
378+UBIFS authentication on the other hand has an all-or-nothing approach in the
379+sense that it either authenticates everything of the filesystem or nothing.
380+Because of this and because UBIFS authentication should also be usable without
381+encryption, it does not share the same master key with fscrypt, but manages
382+a dedicated authentication key.
383+
384+The API for providing the authentication key has yet to be defined, but the
385+key can eg. be provided by userspace through a keyring similar to the way it
386+is currently done in fscrypt. It should however be noted that the current
387+fscrypt approach has shown its flaws and the userspace API will eventually
388+change [FSCRYPT-POLICY2].
389+
390+Nevertheless, it will be possible for a user to provide a single passphrase
391+or key in userspace that covers UBIFS authentication and encryption. This can
392+be solved by the corresponding userspace tools which derive a second key for
393+authentication in addition to the derived fscrypt master key used for
394+encryption.
395+
396+To be able to check if the proper key is available on mount, the UBIFS
397+superblock node will additionally store a hash of the authentication key. This
398+approach is similar to the approach proposed for fscrypt encryption policy v2
399+[FSCRYPT-POLICY2].
400+
401+
402+# Future Extensions
403+
404+In certain cases where a vendor wants to provide an authenticated filesystem
405+image to customers, it should be possible to do so without sharing the secret
406+UBIFS authentication key. Instead, in addition the each HMAC a digital
407+signature could be stored where the vendor shares the public key alongside the
408+filesystem image. In case this filesystem has to be modified afterwards,
409+UBIFS can exchange all digital signatures with HMACs on first mount similar
410+to the way the IMA/EVM subsystem deals with such situations. The HMAC key
411+will then have to be provided beforehand in the normal way.
412+
413+
414+# References
415+
416+[CRYPTSETUP2] http://www.saout.de/pipermail/dm-crypt/2017-November/005745.html
417+
418+[DMC-CBC-ATTACK] http://www.jakoblell.com/blog/2013/12/22/practical-malleability-attack-against-cbc-encrypted-luks-partitions/
419+
420+[DM-INTEGRITY] https://www.kernel.org/doc/Documentation/device-mapper/dm-integrity.txt
421+
422+[DM-VERITY] https://www.kernel.org/doc/Documentation/device-mapper/verity.txt
423+
424+[FSCRYPT-POLICY2] https://www.spinics.net/lists/linux-ext4/msg58710.html
425+
426+[UBIFS-WP] http://www.linux-mtd.infradead.org/doc/ubifs_whitepaper.pdf
Documentation/filesystems/ubifs.txt+7−0
@@ -91,6 +91,13 @@ chk_data_crc do not skip checking CRCs on data nodes · 90 unmodified lines
9191 compr=none override default compressor and set it to "none"
9292 compr=lzo override default compressor and set it to "lzo"
9393 compr=zlib override default compressor and set it to "zlib"
94+auth_key= specify the key used for authenticating the filesystem.
95+ Passing this option makes authentication mandatory.
96+ The passed key must be present in the kernel keyring
97+ and must be of type 'logon'
98+auth_hash_name= The hash algorithm used for authentication. Used for
99+ both hashing and for creating HMACs. Typical values
100+ include "sha256" or "sha512"
94101
95102
96103 Quick usage instructions
Documentation/filesystems/vfs.txt+15−7
@@ -883,8 +883,9 @@ struct file_operations { · 882 unmodified lines
883883 unsigned (*mmap_capabilities)(struct file *);
884884 #endif
885885 ssize_t (*copy_file_range)(struct file *, loff_t, struct file *, loff_t, size_t, unsigned int);
886− int (*clone_file_range)(struct file *, loff_t, struct file *, loff_t, u64);
887− int (*dedupe_file_range)(struct file *, loff_t, struct file *, loff_t, u64);
886+ loff_t (*remap_file_range)(struct file *file_in, loff_t pos_in,
887+ struct file *file_out, loff_t pos_out,
888+ loff_t len, unsigned int remap_flags);
888889 int (*fadvise)(struct file *, loff_t, loff_t, int);
889890 };
890891
@@ -960,11 +961,18 @@ otherwise noted. · 69 unmodified lines
960961
961962 copy_file_range: called by the copy_file_range(2) system call.
962963
963− clone_file_range: called by the ioctl(2) system call for FICLONERANGE and
964− FICLONE commands.
965−
966− dedupe_file_range: called by the ioctl(2) system call for FIDEDUPERANGE
967− command.
964+ remap_file_range: called by the ioctl(2) system call for FICLONERANGE and
965+ FICLONE and FIDEDUPERANGE commands to remap file ranges. An
966+ implementation should remap len bytes at pos_in of the source file into
967+ the dest file at pos_out. Implementations must handle callers passing
968+ in len == 0; this means "remap to the end of the source file". The
969+ return value should the number of bytes remapped, or the usual
970+ negative error code if errors occurred before any bytes were remapped.
971+ The remap_flags parameter accepts REMAP_FILE_* flags. If
972+ REMAP_FILE_DEDUP is set then the implementation must only remap if the
973+ requested file ranges have identical contents. If REMAP_CAN_SHORTEN is
974+ set, the caller is ok with the implementation shortening the request
975+ length to satisfy alignment or EOF requirements (or any other reason).
968976
969977 fadvise: possibly called by the fadvise64() system call.
970978
Documentation/fmc/00-INDEX+0−38
@@ -1,38 +0,0 @@
1−
2−Documentation in this directory comes from sections of the manual we
3−wrote for the externally-developed fmc-bus package. The complete
4−manual as of today (2013-02) is available in PDF format at
5−http://www.ohwr.org/projects/fmc-bus/files
6−
7−00-INDEX
8− - this file.
9−
10−FMC-and-SDB.txt
11− - What are FMC and SDB, basic concepts for this framework
12−
13−API.txt
14− - The functions that are exported by the bus driver
15−
16−parameters.txt
17− - The module parameters
18−
19−carrier.txt
20− - writing a carrier (a device)
21−
22−mezzanine.txt
23− - writing code for your mezzanine (a driver)
24−
25−identifiers.txt
26− - how identification and matching works
27−
28−fmc-fakedev.txt
29− - about drivers/fmc/fmc-fakedev.ko
30−
31−fmc-trivial.txt
32− - about drivers/fmc/fmc-trivial.ko
33−
34−fmc-write-eeprom.txt
35− - about drivers/fmc/fmc-write-eeprom.ko
36−
37−fmc-chardev.txt
38− - about drivers/fmc/fmc-chardev.ko
Documentation/gpio/00-INDEX+0−4
@@ -1,4 +0,0 @@
1−00-INDEX
2− - This file
3−sysfs.txt
4− - Information about the GPIO sysfs interface
Documentation/gpu/amdgpu-dc.rst+68−0
@@ -0,0 +1,68 @@
1+===================================
2+drm/amd/display - Display Core (DC)
3+===================================
4+
5+*placeholder - general description of supported platforms, what dc is, etc.*
6+
7+Because it is partially shared with other operating systems, the Display Core
8+Driver is divided in two pieces.
9+
10+1. **Display Core (DC)** contains the OS-agnostic components. Things like
11+ hardware programming and resource management are handled here.
12+2. **Display Manager (DM)** contains the OS-dependent components. Hooks to the
13+ amdgpu base driver and DRM are implemented here.
14+
15+It doesn't help that the entire package is frequently referred to as DC. But
16+with the context in mind, it should be clear.
17+
18+When CONFIG_DRM_AMD_DC is enabled, DC will be initialized by default for
19+supported ASICs. To force disable, set `amdgpu.dc=0` on kernel command line.
20+Likewise, to force enable on unsupported ASICs, set `amdgpu.dc=1`.
21+
22+To determine if DC is loaded, search dmesg for the following entry:
23+
24+``Display Core initialized with <version number here>``
25+
26+AMDgpu Display Manager
27+======================
28+
29+.. kernel-doc:: drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
30+ :doc: overview
31+
32+.. kernel-doc:: drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h
33+ :internal:
34+
35+Lifecycle
36+---------
37+
38+.. kernel-doc:: drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
39+ :doc: DM Lifecycle
40+
41+.. kernel-doc:: drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
42+ :functions: dm_hw_init dm_hw_fini
43+
44+Interrupts
45+----------
46+
47+.. kernel-doc:: drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c
48+ :doc: overview
49+
50+.. kernel-doc:: drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c
51+ :internal:
52+
53+.. kernel-doc:: drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
54+ :functions: register_hpd_handlers dm_crtc_high_irq dm_pflip_high_irq
55+
56+Atomic Implementation
57+---------------------
58+
59+.. kernel-doc:: drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
60+ :doc: atomic
61+
62+.. kernel-doc:: drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
63+ :functions: amdgpu_dm_atomic_check amdgpu_dm_atomic_commit_tail
64+
65+Display Core
66+============
67+
68+**WIP**
Documentation/gpu/drivers.rst+1−0
@@ -5,6 +5,7 @@ GPU Driver Documentation · 4 unmodified lines
55 .. toctree::
66
77 amdgpu
8+ amdgpu-dc
89 i915
910 meson
1011 pl111
Documentation/gpu/drm-kms-helpers.rst+14−5
@@ -59,19 +59,28 @@ Implementing Asynchronous Atomic Commit · 58 unmodified lines
5959 .. kernel-doc:: drivers/gpu/drm/drm_atomic_helper.c
6060 :doc: implementing nonblocking commit
6161
62+Helper Functions Reference
63+--------------------------
64+
65+.. kernel-doc:: include/drm/drm_atomic_helper.h
66+ :internal:
67+
68+.. kernel-doc:: drivers/gpu/drm/drm_atomic_helper.c
69+ :export:
70+
6271 Atomic State Reset and Initialization
6372 -------------------------------------
6473
65−.. kernel-doc:: drivers/gpu/drm/drm_atomic_helper.c
74+.. kernel-doc:: drivers/gpu/drm/drm_atomic_state_helper.c
6675 :doc: atomic state reset and initialization
6776
68−Helper Functions Reference
69−--------------------------
77+Atomic State Helper Reference
78+-----------------------------
7079
71−.. kernel-doc:: include/drm/drm_atomic_helper.h
80+.. kernel-doc:: include/drm/drm_atomic_state_helper.h
7281 :internal:
7382
74−.. kernel-doc:: drivers/gpu/drm/drm_atomic_helper.c
83+.. kernel-doc:: drivers/gpu/drm/drm_atomic_state_helper.c
7584 :export:
7685
7786 Simple KMS Helper Reference
Documentation/gpu/drm-mm.rst+2−2
@@ -72,8 +72,8 @@ object TTM to provide a pool for buffer object allocation by clients and · 71 unmodified lines
7272 the kernel itself. The type of this object should be
7373 TTM_GLOBAL_TTM_BO, and its size should be sizeof(struct
7474 ttm_bo_global). Again, driver-specific init and release functions may
75−be provided, likely eventually calling ttm_bo_global_init() and
76−ttm_bo_global_release(), respectively. Also, like the previous
75+be provided, likely eventually calling ttm_bo_global_ref_init() and
76+ttm_bo_global_ref_release(), respectively. Also, like the previous
7777 object, ttm_global_item_ref() is used to create an initial reference
7878 count for the TTM, which will call your initialization function.
7979
Documentation/gpu/drm-uapi.rst+3−0
@@ -197,6 +197,9 @@ EPERM/EACCESS: · 196 unmodified lines
197197 difference between EACCESS and EPERM.
198198
199199 ENODEV:
200+ The device is not (yet) present or fully initialized.
201+
202+EOPNOTSUPP:
200203 Feature (like PRIME, modesetting, GEM) is not supported by the driver.
201204
202205 ENXIO:
Documentation/gpu/todo.rst+10−0
@@ -339,6 +339,16 @@ Some of these date from the very introduction of KMS in 2008 ... · 338 unmodified lines
339339 leftovers from older (never merged into upstream) KMS designs where modes
340340 where set using their ID, including support to add/remove modes.
341341
342+- Make ->funcs and ->helper_private vtables optional. There's a bunch of empty
343+ function tables in drivers, but before we can remove them we need to make sure
344+ that all the users in helpers and drivers do correctly check for a NULL
345+ vtable.
346+
347+- Cleanup up the various ->destroy callbacks. A lot of them just wrapt the
348+ drm_*_cleanup implementations and can be removed. Some tack a kfree() at the
349+ end, for which we could add drm_*_cleanup_kfree(). And then there's the (for
350+ historical reasons) misnamed drm_primary_helper_destroy() function.
351+
342352 Better Testing
343353 ==============
344354
Documentation/gpu/vkms.rst+99−2
@@ -10,8 +10,8 @@ · 9 unmodified lines
1010 TODO
1111 ====
1212
13−CRC API
14−-------
13+CRC API Improvements
14+--------------------
1515
1616 - Optimize CRC computation ``compute_crc()`` and plane blending ``blend()``
1717
@@ -22,3 +22,100 @@ CRC API · 4 unmodified lines
2222
2323 - Add igt test to check extreme alpha values i.e. fully opaque and fully
2424 transparent (intermediate values are affected by hw-specific rounding modes).
25+
26+Vblank issues
27+-------------
28+
29+Some IGT test cases are failing. Need to analyze why and fix the issues:
30+
31+- plain-flip-fb-recreate
32+- plain-flip-ts-check
33+- flip-vs-blocking-wf-vblank
34+- plain-flip-fb-recreate-interruptible
35+- flip-vs-wf_vblank-interruptible
36+
37+Runtime Configuration
38+---------------------
39+
40+We want to be able to reconfigure vkms instance without having to reload the
41+module. Use/Test-cases:
42+
43+- Hotplug/hotremove connectors on the fly (to be able to test DP MST handling of
44+ compositors).
45+
46+- Configure planes/crtcs/connectors (we'd need some code to have more than 1 of
47+ them first).
48+
49+- Change output configuration: Plug/unplug screens, change EDID, allow changing
50+ the refresh rate.
51+
52+The currently proposed solution is to expose vkms configuration through
53+configfs. All existing module options should be supported through configfs too.
54+
55+Add Plane Features
56+------------------
57+
58+There's lots of plane features we could add support for:
59+
60+- Real overlay planes, not just cursor.
61+
62+- Full alpha blending on all planes.
63+
64+- Rotation, scaling.
65+
66+- Additional buffer formats, especially YUV formats for video like NV12.
67+ Low/high bpp RGB formats would also be interesting.
68+
69+- Async updates (currently only possible on cursor plane using the legacy cursor
70+ api).
71+
72+For all of these, we also want to review the igt test coverage and make sure all
73+relevant igt testcases work on vkms.
74+
75+Writeback support
76+-----------------
77+
78+Currently vkms only computes a CRC for each frame. Once we have additional plane
79+features, we could write back the entire composited frame, and expose it as:
80+
81+- Writeback connector. This is useful for testing compositors if you don't have
82+ hardware with writeback support.
83+
84+- As a v4l device. This is useful for debugging compositors on special vkms
85+ configurations, so that developers see what's really going on.
86+
87+Prime Buffer Sharing
88+--------------------
89+
90+We already have vgem, which is a gem driver for testing rendering, similar to
91+how vkms is for testing the modeset side. Adding buffer sharing support to vkms
92+allows us to test them together, to test synchronization and lots of other
93+features. Also, this allows compositors to test whether they work correctly on
94+SoC chips, where the display and rendering is very often split between 2
95+drivers.
96+
97+Output Features
98+---------------
99+
100+- Variable refresh rate/freesync support. This probably needs prime buffer
101+ sharing support, so that we can use vgem fences to simulate rendering in
102+ testing. Also needs support to specify the EDID.
103+
104+- Add support for link status, so that compositors can validate their runtime
105+ fallbacks when e.g. a Display Port link goes bad.
106+
107+- All the hotplug handling describe under "Runtime Configuration".
108+
109+Atomic Check using eBPF
110+-----------------------
111+
112+Atomic drivers have lots of restrictions which are not exposed to userspace in
113+any explicit form through e.g. possible property values. Userspace can only
114+inquiry about these limits through the atomic IOCTL, possibly using the
115+TEST_ONLY flag. Trying to add configurable code for all these limits, to allow
116+compositors to be tested against them, would be rather futile exercise. Instead
117+we could add support for eBPF to validate any kind of atomic state, and
118+implement a library of different restrictions.
119+
120+This needs a bunch of features (plane compositing, multiple outputs, ...)
121+enabled already to make sense.
Documentation/hwmon/ina3221+2−0
@@ -21,6 +21,8 @@ and power are calculated host-side from these. · 20 unmodified lines
2121 Sysfs entries
2222 -------------
2323
24+in[123]_label Voltage channel labels
25+in[123]_enable Voltage channel enable controls
2426 in[123]_input Bus voltage(mV) channels
2527 curr[123]_input Current(mA) measurement channels
2628 shunt[123]_resistor Shunt resistance(uOhm) channels
Documentation/hwmon/lm75+3−3
@@ -17,8 +17,8 @@ Supported chips: · 16 unmodified lines
1717 Addresses scanned: none
1818 Datasheet: Publicly available at the Maxim website
1919 http://www.maximintegrated.com/
20− * Maxim MAX6625, MAX6626
21− Prefixes: 'max6625', 'max6626'
20+ * Maxim MAX6625, MAX6626, MAX31725, MAX31726
21+ Prefixes: 'max6625', 'max6626', 'max31725', 'max31726'
2222 Addresses scanned: none
2323 Datasheet: Publicly available at the Maxim website
2424 http://www.maxim-ic.com/
@@ -86,7 +86,7 @@ The LM75 is essentially an industry standard; there may be other · 61 unmodified lines
8686 LM75 clones not listed here, with or without various enhancements,
8787 that are supported. The clones are not detected by the driver, unless
8888 they reproduce the exact register tricks of the original LM75, and must
89−therefore be instantiated explicitly. Higher resolution up to 12-bit
89+therefore be instantiated explicitly. Higher resolution up to 16-bit
9090 is supported by this driver, other specific enhancements are not.
9191
9292 The LM77 is not supported, contrary to what we pretended for a long time.
Documentation/hwmon/ltc2978+5−0
@@ -55,6 +55,10 @@ Supported chips: · 54 unmodified lines
5555 Prefix: 'ltm4676'
5656 Addresses scanned: -
5757 Datasheet: http://www.linear.com/product/ltm4676
58+ * Analog Devices LTM4686
59+ Prefix: 'ltm4686'
60+ Addresses scanned: -
61+ Datasheet: http://www.analog.com/ltm4686
5862
5963 Author: Guenter Roeck <linux@roeck-us.net>
6064
@@ -76,6 +80,7 @@ additional components on a single die. The chip is instantiated and reported · 15 unmodified lines
7680 as two separate chips on two different I2C bus addresses.
7781 LTM4675 is a dual 9A or single 18A μModule regulator
7882 LTM4676 is a dual 13A or single 26A uModule regulator.
83+LTM4686 is a dual 10A or single 20A uModule regulator.
7984
8085
8186 Usage Notes
Documentation/hwmon/mc13783-adc+4−4
@@ -2,12 +2,12 @@ Kernel driver mc13783-adc · 1 unmodified line
22 =========================
33
44 Supported chips:
5− * Freescale Atlas MC13783
5+ * Freescale MC13783
66 Prefix: 'mc13783'
7− Datasheet: http://www.freescale.com/files/rf_if/doc/data_sheet/MC13783.pdf?fsrch=1
8− * Freescale Atlas MC13892
7+ Datasheet: https://www.nxp.com/docs/en/data-sheet/MC13783.pdf
8+ * Freescale MC13892
99 Prefix: 'mc13892'
10− Datasheet: http://cache.freescale.com/files/analog/doc/data_sheet/MC13892.pdf?fsrch=1&sr=1
10+ Datasheet: https://www.nxp.com/docs/en/data-sheet/MC13892.pdf
1111
1212 Authors:
1313 Sascha Hauer <s.hauer@pengutronix.de>
Documentation/i2c/busses/i2c-nvidia-gpu+18−0
@@ -0,0 +1,18 @@
1+Kernel driver i2c-nvidia-gpu
2+
3+Datasheet: not publicly available.
4+
5+Authors:
6+ Ajay Gupta <ajayg@nvidia.com>
7+
8+Description
9+-----------
10+
11+i2c-nvidia-gpu is a driver for I2C controller included in NVIDIA Turing
12+and later GPUs and it is used to communicate with Type-C controller on GPUs.
13+
14+If your 'lspci -v' listing shows something like the following,
15+
16+01:00.3 Serial bus controller [0c80]: NVIDIA Corporation Device 1ad9 (rev a1)
17+
18+then this driver should support the I2C controller of your GPU.
Documentation/ide/00-INDEX+0−14
@@ -1,14 +0,0 @@
1−00-INDEX
2− - this file
3−ChangeLog.ide-cd.1994-2004
4− - ide-cd changelog
5−ChangeLog.ide-floppy.1996-2002
6− - ide-floppy changelog
7−ChangeLog.ide-tape.1995-2002
8− - ide-tape changelog
9−ide-tape.txt
10− - info on the IDE ATAPI streaming tape driver
11−ide.txt
12− - important info for users of ATA devices (IDE/EIDE disks and CD-ROMS).
13−warm-plug-howto.txt
14− - using sysfs to remove and add IDE devices.
Documentation/index.rst+1−4
@@ -22,10 +22,7 @@ The following describes the license of the Linux kernel source code · 21 unmodified lines
2222 (GPLv2), how to properly mark the license of individual files in the source
2323 tree, as well as links to the full license text.
2424
25−.. toctree::
26− :maxdepth: 2
27−
28− process/license-rules.rst
25+* :ref:`kernel_licensing`
2926
3027 User-oriented documentation
3128 ---------------------------
Documentation/input/event-codes.rst+10−1
@@ -190,7 +190,16 @@ A few EV_REL codes have special meanings: · 189 unmodified lines
190190 * REL_WHEEL, REL_HWHEEL:
191191
192192 - These codes are used for vertical and horizontal scroll wheels,
193− respectively.
193+ respectively. The value is the number of "notches" moved on the wheel, the
194+ physical size of which varies by device. For high-resolution wheels (which
195+ report multiple events for each notch of movement, or do not have notches)
196+ this may be an approximation based on the high-resolution scroll events.
197+
198+* REL_WHEEL_HI_RES:
199+
200+ - If a vertical scroll wheel supports high-resolution scrolling, this code
201+ will be emitted in addition to REL_WHEEL. The value is the (approximate)
202+ distance travelled by the user's finger, in microns.
194203
195204 EV_ABS
196205 ------
Documentation/ioctl/00-INDEX+0−12
@@ -1,12 +0,0 @@
1−00-INDEX
2− - this file
3−botching-up-ioctls.txt
4− - how to avoid botching up ioctls
5−cdrom.txt
6− - summary of CDROM ioctl calls
7−hdio.txt
8− - summary of HDIO_ ioctl calls
9−ioctl-decoding.txt
10− - how to decode the bits of an IOCTL code
11−ioctl-number.txt
12− - how to implement and register device/driver ioctl calls
Documentation/ioctl/ioctl-number.txt+1−1
@@ -201,7 +201,7 @@ Code Seq#(hex) Include File Comments · 200 unmodified lines
201201 'X' 01 linux/pktcdvd.h conflict!
202202 'Y' all linux/cyclades.h
203203 'Z' 14-15 drivers/message/fusion/mptctl.h
204−'[' 00-07 linux/usb/tmc.h USB Test and Measurement Devices
204+'[' 00-3F linux/usb/tmc.h USB Test and Measurement Devices
205205 <mailto:gregkh@linuxfoundation.org>
206206 'a' all linux/atm*.h, linux/sonet.h ATM on linux
207207 <http://lrcwww.epfl.ch/>
Documentation/isdn/00-INDEX+0−42
@@ -1,42 +0,0 @@
1−00-INDEX
2− - this file (info on ISDN implementation for Linux)
3−CREDITS
4− - list of the kind folks that brought you this stuff.
5−HiSax.cert
6− - information about the ITU approval certification of the HiSax driver.
7−INTERFACE
8− - description of isdn4linux Link Level and Hardware Level interfaces.
9−INTERFACE.fax
10− - description of the fax subinterface of isdn4linux.
11−INTERFACE.CAPI
12− - description of kernel CAPI Link Level to Hardware Level interface.
13−README
14− - general info on what you need and what to do for Linux ISDN.
15−README.FAQ
16− - general info for FAQ.
17−README.HiSax
18− - info on the HiSax driver which replaces the old teles.
19−README.audio
20− - info for running audio over ISDN.
21−README.avmb1
22− - info on driver for AVM-B1 ISDN card.
23−README.concap
24− - info on "CONCAP" encapsulation protocol interface used for X.25.
25−README.diversion
26− - info on module for isdn diversion services.
27−README.fax
28− - info for using Fax over ISDN.
29−README.gigaset
30− - info on the drivers for Siemens Gigaset ISDN adapters
31−README.hfc-pci
32− - info on hfc-pci based cards.
33−README.hysdn
34− - info on driver for Hypercope active HYSDN cards
35−README.mISDN
36− - info on the Modular ISDN subsystem (mISDN)
37−README.syncppp
38− - info on running Sync PPP over ISDN.
39−README.x25
40− - info for running X.25 over ISDN.
41−syncPPP.FAQ
42− - frequently asked questions about running PPP over ISDN.
Documentation/kbuild/00-INDEX+0−14
@@ -1,14 +0,0 @@
1−00-INDEX
2− - this file: info on the kernel build process
3−headers_install.txt
4− - how to export Linux headers for use by userspace
5−kbuild.txt
6− - developer information on kbuild
7−kconfig.txt
8− - usage help for make *config
9−kconfig-language.txt
10− - specification of Config Language, the language in Kconfig files
11−makefiles.txt
12− - developer information for linux kernel makefiles
13−modules.txt
14− - how to build modules and to install them
Documentation/kbuild/makefiles.txt+0−15
@@ -537,21 +537,6 @@ more details, with real examples. · 536 unmodified lines
537537 The third parameter may be a text as in this example, but it may also
538538 be an expanded variable or a macro.
539539
540− cc-fullversion
541− cc-fullversion is useful when the exact version of gcc is needed.
542− One typical use-case is when a specific GCC version is broken.
543− cc-fullversion points out a more specific version than cc-version does.
544−
545− Example:
546− #arch/powerpc/Makefile
547− $(Q)if test "$(cc-fullversion)" = "040200" ; then \
548− echo -n '*** GCC-4.2.0 cannot compile the 64-bit powerpc ' ; \
549− false ; \
550− fi
551−
552− In this example for a specific GCC version the build will error out
553− explaining to the user why it stops.
554−
555540 cc-cross-prefix
556541 cc-cross-prefix is used to check if there exists a $(CC) in path with
557542 one of the listed prefixes. The first prefix where there exist a
Documentation/kernel-per-CPU-kthreads.txt+1−1
@@ -321,7 +321,7 @@ To reduce its OS jitter, do at least one of the following: · 320 unmodified lines
321321 to do.
322322
323323 Name:
324− rcuob/%d, rcuop/%d, and rcuos/%d
324+ rcuop/%d and rcuos/%d
325325
326326 Purpose:
327327 Offload RCU callbacks from the corresponding CPU.
Documentation/laptops/00-INDEX+0−16
@@ -1,16 +0,0 @@
1−00-INDEX
2− - This file
3−asus-laptop.txt
4− - information on the Asus Laptop Extras driver.
5−disk-shock-protection.txt
6− - information on hard disk shock protection.
7−laptop-mode.txt
8− - how to conserve battery power using laptop-mode.
9−sony-laptop.txt
10− - Sony Notebook Control Driver (SNC) Readme.
11−sonypi.txt
12− - info on Linux Sony Programmable I/O Device support.
13−thinkpad-acpi.txt
14− - information on the (IBM and Lenovo) ThinkPad ACPI Extras driver.
15−toshiba_haps.txt
16− - information on the Toshiba HDD Active Protection Sensor driver.
Documentation/laptops/lg-laptop.rst+81−0
@@ -0,0 +1,81 @@
1+.. SPDX-License-Identifier: GPL-2.0+
2+LG Gram laptop extra features
3+=============================
4+
5+By Matan Ziv-Av <matan@svgalib.org>
6+
7+
8+Hotkeys
9+-------
10+
11+The following FN keys are ignored by the kernel without this driver:
12+- FN-F1 (LG control panel) - Generates F15
13+- FN-F5 (Touchpad toggle) - Generates F13
14+- FN-F6 (Airplane mode) - Generates RFKILL
15+- FN-F8 (Keyboard backlight) - Generates F16.
16+ This key also changes keyboard backlight mode.
17+- FN-F9 (Reader mode) - Generates F14
18+
19+The rest of the FN key work without a need for a special driver.
20+
21+
22+Reader mode
23+-----------
24+
25+Writing 0/1 to /sys/devices/platform/lg-laptop/reader_mode disables/enables
26+reader mode. In this mode the screen colors change (blue color reduced),
27+and the reader mode indicator LED (on F9 key) turns on.
28+
29+
30+FN Lock
31+-------
32+
33+Writing 0/1 to /sys/devices/platform/lg-laptop/fn_lock disables/enables
34+FN lock.
35+
36+
37+Battery care limit
38+------------------
39+
40+Writing 80/100 to /sys/devices/platform/lg-laptop/battery_care_limit
41+sets the maximum capacity to charge the battery. Limiting the charge
42+reduces battery capacity loss over time.
43+
44+This value is reset to 100 when the kernel boots.
45+
46+
47+Fan mode
48+--------
49+
50+Writing 1/0 to /sys/devices/platform/lg-laptop/fan_mode disables/enables
51+the fan silent mode.
52+
53+
54+USB charge
55+----------
56+
57+Writing 0/1 to /sys/devices/platform/lg-laptop/usb_charge disables/enables
58+charging another device from the USB port while the device is turned off.
59+
60+This value is reset to 0 when the kernel boots.
61+
62+
63+LEDs
64+~~~~
65+
66+The are two LED devices supported by the driver:
67+
68+Keyboard backlight
69+------------------
70+
71+A led device named kbd_led controls the keyboard backlight. There are three
72+lighting level: off (0), low (127) and high (255).
73+
74+The keyboard backlight is also controlled by the key combination FN-F8
75+which cycles through those levels.
76+
77+
78+Touchpad indicator LED
79+----------------------
80+
81+On the F5 key. Controlled by led device names tpad_led.
Documentation/leds/00-INDEX+0−32
@@ -1,32 +0,0 @@
1−00-INDEX
2− - This file
3−leds-blinkm.txt
4− - Driver for BlinkM LED-devices.
5−leds-class.txt
6− - documents LED handling under Linux.
7−leds-class-flash.txt
8− - documents flash LED handling under Linux.
9−leds-lm3556.txt
10− - notes on how to use the leds-lm3556 driver.
11−leds-lp3944.txt
12− - notes on how to use the leds-lp3944 driver.
13−leds-lp5521.txt
14− - notes on how to use the leds-lp5521 driver.
15−leds-lp5523.txt
16− - notes on how to use the leds-lp5523 driver.
17−leds-lp5562.txt
18− - notes on how to use the leds-lp5562 driver.
19−leds-lp55xx.txt
20− - description about lp55xx common driver.
21−leds-lm3556.txt
22− - notes on how to use the leds-lm3556 driver.
23−leds-mlxcpld.txt
24− - notes on how to use the leds-mlxcpld driver.
25−ledtrig-oneshot.txt
26− - One-shot LED trigger for both sporadic and dense events.
27−ledtrig-transient.txt
28− - LED Transient Trigger, one shot timer activation.
29−ledtrig-usbport.txt
30− - notes on how to use the drivers/usb/core/ledtrig-usbport.c trigger.
31−uleds.txt
32− - notes on how to use the uleds driver.
Documentation/locking/00-INDEX+0−16
@@ -1,16 +0,0 @@
1−00-INDEX
2− - this file.
3−lockdep-design.txt
4− - documentation on the runtime locking correctness validator.
5−lockstat.txt
6− - info on collecting statistics on locks (and contention).
7−mutex-design.txt
8− - info on the generic mutex subsystem.
9−rt-mutex-design.txt
10− - description of the RealTime mutex implementation design.
11−rt-mutex.txt
12− - desc. of RT-mutex subsystem with PI (Priority Inheritance) support.
13−spinlocks.txt
14− - info on using spinlocks to provide exclusive access in kernel.
15−ww-mutex-design.txt
16− - Intro to Mutex wait/would deadlock handling.s
Documentation/locking/lockstat.txt+1−1
@@ -91,7 +91,7 @@ Look at the current lock statistics: · 90 unmodified lines
9191 07 &mm->mmap_sem-R: 37 100 1.31 299502.61 325629.52 3256.30 212344 34316685 0.10 7744.91 95016910.20 2.77
9292 08 ---------------
9393 09 &mm->mmap_sem 1 [<ffffffff811502a7>] khugepaged_scan_mm_slot+0x57/0x280
94−19 &mm->mmap_sem 96 [<ffffffff815351c4>] __do_page_fault+0x1d4/0x510
94+10 &mm->mmap_sem 96 [<ffffffff815351c4>] __do_page_fault+0x1d4/0x510
9595 11 &mm->mmap_sem 34 [<ffffffff81113d77>] vm_mmap_pgoff+0x87/0xd0
9696 12 &mm->mmap_sem 17 [<ffffffff81127e71>] vm_munmap+0x41/0x80
9797 13 ---------------
Documentation/m68k/00-INDEX+0−7
@@ -1,7 +0,0 @@
1−00-INDEX
2− - this file
3−README.buddha
4− - Amiga Buddha and Catweasel IDE Driver
5−kernel-options.txt
6− - command line options for Linux/m68k
7−
Documentation/media/kapi/cec-core.rst+4−0
@@ -268,6 +268,10 @@ to 1, if the hardware does support retry then either set these counters to · 267 unmodified lines
268268 0 if the hardware provides no feedback of which errors occurred and how many
269269 times, or fill in the correct values as reported by the hardware.
270270
271+Be aware that calling these functions can immediately start a new transmit
272+if there is one pending in the queue. So make sure that the hardware is in
273+a state where new transmits can be started *before* calling these functions.
274+
271275 The cec_transmit_attempt_done() function is a helper for cases where the
272276 hardware never retries, so the transmit is always for just a single
273277 attempt. It will call cec_transmit_done() in turn, filling in 1 for the
Documentation/media/kapi/mc-core.rst+2−0
@@ -262,3 +262,5 @@ in the end provide a way to use driver-specific callbacks. · 261 unmodified lines
262262 .. kernel-doc:: include/media/media-devnode.h
263263
264264 .. kernel-doc:: include/media/media-entity.h
265+
266+.. kernel-doc:: include/media/media-request.h
Documentation/media/kapi/v4l2-subdev.rst+19−11
@@ -247,20 +247,28 @@ performed using the :c:func:`v4l2_async_unregister_subdev` call. Subdevices · 246 unmodified lines
247247 registered this way are stored in a global list of subdevices, ready to be
248248 picked up by bridge drivers.
249249
250−Bridge drivers in turn have to register a notifier object with an array of
251−subdevice descriptors that the bridge device needs for its operation. This is
250+Bridge drivers in turn have to register a notifier object. This is
252251 performed using the :c:func:`v4l2_async_notifier_register` call. To
253252 unregister the notifier the driver has to call
254253 :c:func:`v4l2_async_notifier_unregister`. The former of the two functions
255−takes two arguments: a pointer to struct :c:type:`v4l2_device` and a pointer to
256−struct :c:type:`v4l2_async_notifier`. The latter contains a pointer to an array
257−of pointers to subdevice descriptors of type struct :c:type:`v4l2_async_subdev`
258−type. The V4L2 core will then use these descriptors to match asynchronously
259−registered
260−subdevices to them. If a match is detected the ``.bound()`` notifier callback
261−is called. After all subdevices have been located the .complete() callback is
262−called. When a subdevice is removed from the system the .unbind() method is
263−called. All three callbacks are optional.
254+takes two arguments: a pointer to struct :c:type:`v4l2_device` and a
255+pointer to struct :c:type:`v4l2_async_notifier`.
256+
257+Before registering the notifier, bridge drivers must do two things:
258+first, the notifier must be initialized using the
259+:c:func:`v4l2_async_notifier_init`. Second, bridge drivers can then
260+begin to form a list of subdevice descriptors that the bridge device
261+needs for its operation. Subdevice descriptors are added to the notifier
262+using the :c:func:`v4l2_async_notifier_add_subdev` call. This function
263+takes two arguments: a pointer to struct :c:type:`v4l2_async_notifier`,
264+and a pointer to the subdevice descripter, which is of type struct
265+:c:type:`v4l2_async_subdev`.
266+
267+The V4L2 core will then use these descriptors to match asynchronously
268+registered subdevices to them. If a match is detected the ``.bound()``
269+notifier callback is called. After all subdevices have been located the
270+.complete() callback is called. When a subdevice is removed from the
271+system the .unbind() method is called. All three callbacks are optional.
264272
265273 V4L2 sub-device userspace API
266274 -----------------------------
Documentation/media/uapi/cec/cec-func-poll.rst+2−1
@@ -74,4 +74,5 @@ is returned, and the ``errno`` variable is set appropriately: · 73 unmodified lines
7474 The call was interrupted by a signal.
7575
7676 ``EINVAL``
77− The ``nfds`` argument is greater than ``OPEN_MAX``.
77+ The ``nfds`` value exceeds the ``RLIMIT_NOFILE`` value. Use
78+ ``getrlimit()`` to obtain this value.
Documentation/media/uapi/cec/cec-ioc-receive.rst+23−2
@@ -16,10 +16,10 @@ CEC_RECEIVE, CEC_TRANSMIT - Receive or transmit a CEC message · 15 unmodified lines
1616 Synopsis
1717 ========
1818
19−.. c:function:: int ioctl( int fd, CEC_RECEIVE, struct cec_msg *argp )
19+.. c:function:: int ioctl( int fd, CEC_RECEIVE, struct cec_msg \*argp )
2020 :name: CEC_RECEIVE
2121
22−.. c:function:: int ioctl( int fd, CEC_TRANSMIT, struct cec_msg *argp )
22+.. c:function:: int ioctl( int fd, CEC_TRANSMIT, struct cec_msg \*argp )
2323 :name: CEC_TRANSMIT
2424
2525 Arguments
@@ -272,6 +272,19 @@ View On' messages from initiator 0xf ('Unregistered') to destination 0 ('TV'). · 246 unmodified lines
272272 - The transmit failed after one or more retries. This status bit is
273273 mutually exclusive with :ref:`CEC_TX_STATUS_OK <CEC-TX-STATUS-OK>`.
274274 Other bits can still be set to explain which failures were seen.
275+ * .. _`CEC-TX-STATUS-ABORTED`:
276+
277+ - ``CEC_TX_STATUS_ABORTED``
278+ - 0x40
279+ - The transmit was aborted due to an HDMI disconnect, or the adapter
280+ was unconfigured, or a transmit was interrupted, or the driver
281+ returned an error when attempting to start a transmit.
282+ * .. _`CEC-TX-STATUS-TIMEOUT`:
283+
284+ - ``CEC_TX_STATUS_TIMEOUT``
285+ - 0x80
286+ - The transmit timed out. This should not normally happen and this
287+ indicates a driver problem.
275288
276289
277290 .. tabularcolumns:: |p{5.6cm}|p{0.9cm}|p{11.0cm}|
@@ -300,6 +313,14 @@ View On' messages from initiator 0xf ('Unregistered') to destination 0 ('TV'). · 22 unmodified lines
300313 - The message was received successfully but the reply was
301314 ``CEC_MSG_FEATURE_ABORT``. This status is only set if this message
302315 was the reply to an earlier transmitted message.
316+ * .. _`CEC-RX-STATUS-ABORTED`:
317+
318+ - ``CEC_RX_STATUS_ABORTED``
319+ - 0x08
320+ - The wait for a reply to an earlier transmitted message was aborted
321+ because the HDMI cable was disconnected, the adapter was unconfigured
322+ or the :ref:`CEC_TRANSMIT <CEC_RECEIVE>` that waited for a
323+ reply was interrupted.
303324
304325
305326
Documentation/media/uapi/mediactl/media-controller.rst+1−0
@@ -21,6 +21,7 @@ Part IV - Media Controller API · 20 unmodified lines
2121 media-controller-intro
2222 media-controller-model
2323 media-types
24+ request-api
2425 media-funcs
2526 media-header
2627
Documentation/media/uapi/mediactl/media-funcs.rst+6−0
@@ -16,3 +16,9 @@ Function Reference · 15 unmodified lines
1616 media-ioc-enum-entities
1717 media-ioc-enum-links
1818 media-ioc-setup-link
19+ media-ioc-request-alloc
20+ request-func-close
21+ request-func-ioctl
22+ request-func-poll
23+ media-request-ioc-queue
24+ media-request-ioc-reinit
Documentation/media/uapi/mediactl/media-ioc-device-info.rst+1−0
@@ -26,6 +26,7 @@ Arguments · 25 unmodified lines
2626 File descriptor returned by :ref:`open() <media-func-open>`.
2727
2828 ``argp``
29+ Pointer to struct :c:type:`media_device_info`.
2930
3031
3132 Description
Documentation/media/uapi/mediactl/media-ioc-enum-entities.rst+1−0
@@ -26,6 +26,7 @@ Arguments · 25 unmodified lines
2626 File descriptor returned by :ref:`open() <media-func-open>`.
2727
2828 ``argp``
29+ Pointer to struct :c:type:`media_entity_desc`.
2930
3031
3132 Description
Documentation/media/uapi/mediactl/media-ioc-enum-links.rst+1−0
@@ -26,6 +26,7 @@ Arguments · 25 unmodified lines
2626 File descriptor returned by :ref:`open() <media-func-open>`.
2727
2828 ``argp``
29+ Pointer to struct :c:type:`media_links_enum`.
2930
3031
3132 Description
Documentation/media/uapi/mediactl/media-ioc-g-topology.rst+1−0
@@ -26,6 +26,7 @@ Arguments · 25 unmodified lines
2626 File descriptor returned by :ref:`open() <media-func-open>`.
2727
2828 ``argp``
29+ Pointer to struct :c:type:`media_v2_topology`.
2930
3031
3132 Description
Documentation/media/uapi/mediactl/media-ioc-request-alloc.rst+66−0
@@ -0,0 +1,66 @@
1+.. SPDX-License-Identifier: GPL-2.0 OR GFDL-1.1-or-later WITH no-invariant-sections
2+
3+.. _media_ioc_request_alloc:
4+
5+*****************************
6+ioctl MEDIA_IOC_REQUEST_ALLOC
7+*****************************
8+
9+Name
10+====
11+
12+MEDIA_IOC_REQUEST_ALLOC - Allocate a request
13+
14+
15+Synopsis
16+========
17+
18+.. c:function:: int ioctl( int fd, MEDIA_IOC_REQUEST_ALLOC, int *argp )
19+ :name: MEDIA_IOC_REQUEST_ALLOC
20+
21+
22+Arguments
23+=========
24+
25+``fd``
26+ File descriptor returned by :ref:`open() <media-func-open>`.
27+
28+``argp``
29+ Pointer to an integer.
30+
31+
32+Description
33+===========
34+
35+If the media device supports :ref:`requests <media-request-api>`, then
36+this ioctl can be used to allocate a request. If it is not supported, then
37+``errno`` is set to ``ENOTTY``. A request is accessed through a file descriptor
38+that is returned in ``*argp``.
39+
40+If the request was successfully allocated, then the request file descriptor
41+can be passed to the :ref:`VIDIOC_QBUF <VIDIOC_QBUF>`,
42+:ref:`VIDIOC_G_EXT_CTRLS <VIDIOC_G_EXT_CTRLS>`,
43+:ref:`VIDIOC_S_EXT_CTRLS <VIDIOC_G_EXT_CTRLS>` and
44+:ref:`VIDIOC_TRY_EXT_CTRLS <VIDIOC_G_EXT_CTRLS>` ioctls.
45+
46+In addition, the request can be queued by calling
47+:ref:`MEDIA_REQUEST_IOC_QUEUE` and re-initialized by calling
48+:ref:`MEDIA_REQUEST_IOC_REINIT`.
49+
50+Finally, the file descriptor can be :ref:`polled <request-func-poll>` to wait
51+for the request to complete.
52+
53+The request will remain allocated until all the file descriptors associated
54+with it are closed by :ref:`close() <request-func-close>` and the driver no
55+longer uses the request internally. See also
56+:ref:`here <media-request-life-time>` for more information.
57+
58+Return Value
59+============
60+
61+On success 0 is returned, on error -1 and the ``errno`` variable is set
62+appropriately. The generic error codes are described at the
63+:ref:`Generic Error Codes <gen-errors>` chapter.
64+
65+ENOTTY
66+ The driver has no support for requests.
Documentation/media/uapi/mediactl/media-ioc-setup-link.rst+1−0
@@ -26,6 +26,7 @@ Arguments · 25 unmodified lines
2626 File descriptor returned by :ref:`open() <media-func-open>`.
2727
2828 ``argp``
29+ Pointer to struct :c:type:`media_link_desc`.
2930
3031
3132 Description
Documentation/media/uapi/mediactl/media-request-ioc-queue.rst+78−0
@@ -0,0 +1,78 @@
1+.. SPDX-License-Identifier: GPL-2.0 OR GFDL-1.1-or-later WITH no-invariant-sections
2+
3+.. _media_request_ioc_queue:
4+
5+*****************************
6+ioctl MEDIA_REQUEST_IOC_QUEUE
7+*****************************
8+
9+Name
10+====
11+
12+MEDIA_REQUEST_IOC_QUEUE - Queue a request
13+
14+
15+Synopsis
16+========
17+
18+.. c:function:: int ioctl( int request_fd, MEDIA_REQUEST_IOC_QUEUE )
19+ :name: MEDIA_REQUEST_IOC_QUEUE
20+
21+
22+Arguments
23+=========
24+
25+``request_fd``
26+ File descriptor returned by :ref:`MEDIA_IOC_REQUEST_ALLOC`.
27+
28+
29+Description
30+===========
31+
32+If the media device supports :ref:`requests <media-request-api>`, then
33+this request ioctl can be used to queue a previously allocated request.
34+
35+If the request was successfully queued, then the file descriptor can be
36+:ref:`polled <request-func-poll>` to wait for the request to complete.
37+
38+If the request was already queued before, then ``EBUSY`` is returned.
39+Other errors can be returned if the contents of the request contained
40+invalid or inconsistent data, see the next section for a list of
41+common error codes. On error both the request and driver state are unchanged.
42+
43+Once a request is queued, then the driver is required to gracefully handle
44+errors that occur when the request is applied to the hardware. The
45+exception is the ``EIO`` error which signals a fatal error that requires
46+the application to stop streaming to reset the hardware state.
47+
48+It is not allowed to mix queuing requests with queuing buffers directly
49+(without a request). ``EBUSY`` will be returned if the first buffer was
50+queued directly and you next try to queue a request, or vice versa.
51+
52+A request must contain at least one buffer, otherwise this ioctl will
53+return an ``ENOENT`` error.
54+
55+Return Value
56+============
57+
58+On success 0 is returned, on error -1 and the ``errno`` variable is set
59+appropriately. The generic error codes are described at the
60+:ref:`Generic Error Codes <gen-errors>` chapter.
61+
62+EBUSY
63+ The request was already queued or the application queued the first
64+ buffer directly, but later attempted to use a request. It is not permitted
65+ to mix the two APIs.
66+ENOENT
67+ The request did not contain any buffers. All requests are required
68+ to have at least one buffer. This can also be returned if some required
69+ configuration is missing in the request.
70+ENOMEM
71+ Out of memory when allocating internal data structures for this
72+ request.
73+EINVAL
74+ The request has invalid data.
75+EIO
76+ The hardware is in a bad state. To recover, the application needs to
77+ stop streaming to reset the hardware state and then try to restart
78+ streaming.
Documentation/media/uapi/mediactl/media-request-ioc-reinit.rst+51−0
@@ -0,0 +1,51 @@
1+.. SPDX-License-Identifier: GPL-2.0 OR GFDL-1.1-or-later WITH no-invariant-sections
2+
3+.. _media_request_ioc_reinit:
4+
5+******************************
6+ioctl MEDIA_REQUEST_IOC_REINIT
7+******************************
8+
9+Name
10+====
11+
12+MEDIA_REQUEST_IOC_REINIT - Re-initialize a request
13+
14+
15+Synopsis
16+========
17+
18+.. c:function:: int ioctl( int request_fd, MEDIA_REQUEST_IOC_REINIT )
19+ :name: MEDIA_REQUEST_IOC_REINIT
20+
21+
22+Arguments
23+=========
24+
25+``request_fd``
26+ File descriptor returned by :ref:`MEDIA_IOC_REQUEST_ALLOC`.
27+
28+Description
29+===========
30+
31+If the media device supports :ref:`requests <media-request-api>`, then
32+this request ioctl can be used to re-initialize a previously allocated
33+request.
34+
35+Re-initializing a request will clear any existing data from the request.
36+This avoids having to :ref:`close() <request-func-close>` a completed
37+request and allocate a new request. Instead the completed request can just
38+be re-initialized and it is ready to be used again.
39+
40+A request can only be re-initialized if it either has not been queued
41+yet, or if it was queued and completed. Otherwise it will set ``errno``
42+to ``EBUSY``. No other error codes can be returned.
43+
44+Return Value
45+============
46+
47+On success 0 is returned, on error -1 and the ``errno`` variable is set
48+appropriately.
49+
50+EBUSY
51+ The request is queued but not yet completed.
Documentation/media/uapi/mediactl/request-api.rst+252−0
@@ -0,0 +1,252 @@
1+.. SPDX-License-Identifier: GPL-2.0 OR GFDL-1.1-or-later WITH no-invariant-sections
2+
3+.. _media-request-api:
4+
5+Request API
6+===========
7+
8+The Request API has been designed to allow V4L2 to deal with requirements of
9+modern devices (stateless codecs, complex camera pipelines, ...) and APIs
10+(Android Codec v2). One such requirement is the ability for devices belonging to
11+the same pipeline to reconfigure and collaborate closely on a per-frame basis.
12+Another is support of stateless codecs, which require controls to be applied
13+to specific frames (aka 'per-frame controls') in order to be used efficiently.
14+
15+While the initial use-case was V4L2, it can be extended to other subsystems
16+as well, as long as they use the media controller.
17+
18+Supporting these features without the Request API is not always possible and if
19+it is, it is terribly inefficient: user-space would have to flush all activity
20+on the media pipeline, reconfigure it for the next frame, queue the buffers to
21+be processed with that configuration, and wait until they are all available for
22+dequeuing before considering the next frame. This defeats the purpose of having
23+buffer queues since in practice only one buffer would be queued at a time.
24+
25+The Request API allows a specific configuration of the pipeline (media
26+controller topology + configuration for each media entity) to be associated with
27+specific buffers. This allows user-space to schedule several tasks ("requests")
28+with different configurations in advance, knowing that the configuration will be
29+applied when needed to get the expected result. Configuration values at the time
30+of request completion are also available for reading.
31+
32+Usage
33+=====
34+
35+The Request API extends the Media Controller API and cooperates with
36+subsystem-specific APIs to support request usage. At the Media Controller
37+level, requests are allocated from the supporting Media Controller device
38+node. Their life cycle is then managed through the request file descriptors in
39+an opaque way. Configuration data, buffer handles and processing results
40+stored in requests are accessed through subsystem-specific APIs extended for
41+request support, such as V4L2 APIs that take an explicit ``request_fd``
42+parameter.
43+
44+Request Allocation
45+------------------
46+
47+User-space allocates requests using :ref:`MEDIA_IOC_REQUEST_ALLOC`
48+for the media device node. This returns a file descriptor representing the
49+request. Typically, several such requests will be allocated.
50+
51+Request Preparation
52+-------------------
53+
54+Standard V4L2 ioctls can then receive a request file descriptor to express the
55+fact that the ioctl is part of said request, and is not to be applied
56+immediately. See :ref:`MEDIA_IOC_REQUEST_ALLOC` for a list of ioctls that
57+support this. Configurations set with a ``request_fd`` parameter are stored
58+instead of being immediately applied, and buffers queued to a request do not
59+enter the regular buffer queue until the request itself is queued.
60+
61+Request Submission
62+------------------
63+
64+Once the configuration and buffers of the request are specified, it can be
65+queued by calling :ref:`MEDIA_REQUEST_IOC_QUEUE` on the request file descriptor.
66+A request must contain at least one buffer, otherwise ``ENOENT`` is returned.
67+A queued request cannot be modified anymore.
68+
69+.. caution::
70+ For :ref:`memory-to-memory devices <codec>` you can use requests only for
71+ output buffers, not for capture buffers. Attempting to add a capture buffer
72+ to a request will result in an ``EACCES`` error.
73+
74+If the request contains configurations for multiple entities, individual drivers
75+may synchronize so the requested pipeline's topology is applied before the
76+buffers are processed. Media controller drivers do a best effort implementation
77+since perfect atomicity may not be possible due to hardware limitations.
78+
79+.. caution::
80+
81+ It is not allowed to mix queuing requests with directly queuing buffers:
82+ whichever method is used first locks this in place until
83+ :ref:`VIDIOC_STREAMOFF <VIDIOC_STREAMON>` is called or the device is
84+ :ref:`closed <func-close>`. Attempts to directly queue a buffer when earlier
85+ a buffer was queued via a request or vice versa will result in an ``EBUSY``
86+ error.
87+
88+Controls can still be set without a request and are applied immediately,
89+regardless of whether a request is in use or not.
90+
91+.. caution::
92+
93+ Setting the same control through a request and also directly can lead to
94+ undefined behavior!
95+
96+User-space can :ref:`poll() <request-func-poll>` a request file descriptor in
97+order to wait until the request completes. A request is considered complete
98+once all its associated buffers are available for dequeuing and all the
99+associated controls have been updated with the values at the time of completion.
100+Note that user-space does not need to wait for the request to complete to
101+dequeue its buffers: buffers that are available halfway through a request can
102+be dequeued independently of the request's state.
103+
104+A completed request contains the state of the device after the request was
105+executed. User-space can query that state by calling
106+:ref:`ioctl VIDIOC_G_EXT_CTRLS <VIDIOC_G_EXT_CTRLS>` with the request file
107+descriptor. Calling :ref:`ioctl VIDIOC_G_EXT_CTRLS <VIDIOC_G_EXT_CTRLS>` for a
108+request that has been queued but not yet completed will return ``EBUSY``
109+since the control values might be changed at any time by the driver while the
110+request is in flight.
111+
112+.. _media-request-life-time:
113+
114+Recycling and Destruction
115+-------------------------
116+
117+Finally, a completed request can either be discarded or be reused. Calling
118+:ref:`close() <request-func-close>` on a request file descriptor will make
119+that file descriptor unusable and the request will be freed once it is no
120+longer in use by the kernel. That is, if the request is queued and then the
121+file descriptor is closed, then it won't be freed until the driver completed
122+the request.
123+
124+The :ref:`MEDIA_REQUEST_IOC_REINIT` will clear a request's state and make it
125+available again. No state is retained by this operation: the request is as
126+if it had just been allocated.
127+
128+Example for a Codec Device
129+--------------------------
130+
131+For use-cases such as :ref:`codecs <codec>`, the request API can be used
132+to associate specific controls to
133+be applied by the driver for the OUTPUT buffer, allowing user-space
134+to queue many such buffers in advance. It can also take advantage of requests'
135+ability to capture the state of controls when the request completes to read back
136+information that may be subject to change.
137+
138+Put into code, after obtaining a request, user-space can assign controls and one
139+OUTPUT buffer to it:
140+
141+.. code-block:: c
142+
143+ struct v4l2_buffer buf;
144+ struct v4l2_ext_controls ctrls;
145+ int req_fd;
146+ ...
147+ if (ioctl(media_fd, MEDIA_IOC_REQUEST_ALLOC, &req_fd))
148+ return errno;
149+ ...
150+ ctrls.which = V4L2_CTRL_WHICH_REQUEST_VAL;
151+ ctrls.request_fd = req_fd;
152+ if (ioctl(codec_fd, VIDIOC_S_EXT_CTRLS, &ctrls))
153+ return errno;
154+ ...
155+ buf.type = V4L2_BUF_TYPE_VIDEO_OUTPUT;
156+ buf.flags |= V4L2_BUF_FLAG_REQUEST_FD;
157+ buf.request_fd = req_fd;
158+ if (ioctl(codec_fd, VIDIOC_QBUF, &buf))
159+ return errno;
160+
161+Note that it is not allowed to use the Request API for CAPTURE buffers
162+since there are no per-frame settings to report there.
163+
164+Once the request is fully prepared, it can be queued to the driver:
165+
166+.. code-block:: c
167+
168+ if (ioctl(req_fd, MEDIA_REQUEST_IOC_QUEUE))
169+ return errno;
170+
171+User-space can then either wait for the request to complete by calling poll() on
172+its file descriptor, or start dequeuing CAPTURE buffers. Most likely, it will
173+want to get CAPTURE buffers as soon as possible and this can be done using a
174+regular :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>`:
175+
176+.. code-block:: c
177+
178+ struct v4l2_buffer buf;
179+
180+ memset(&buf, 0, sizeof(buf));
181+ buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
182+ if (ioctl(codec_fd, VIDIOC_DQBUF, &buf))
183+ return errno;
184+
185+Note that this example assumes for simplicity that for every OUTPUT buffer
186+there will be one CAPTURE buffer, but this does not have to be the case.
187+
188+We can then, after ensuring that the request is completed via polling the
189+request file descriptor, query control values at the time of its completion via
190+a call to :ref:`VIDIOC_G_EXT_CTRLS <VIDIOC_G_EXT_CTRLS>`.
191+This is particularly useful for volatile controls for which we want to
192+query values as soon as the capture buffer is produced.
193+
194+.. code-block:: c
195+
196+ struct pollfd pfd = { .events = POLLPRI, .fd = req_fd };
197+ poll(&pfd, 1, -1);
198+ ...
199+ ctrls.which = V4L2_CTRL_WHICH_REQUEST_VAL;
200+ ctrls.request_fd = req_fd;
201+ if (ioctl(codec_fd, VIDIOC_G_EXT_CTRLS, &ctrls))
202+ return errno;
203+
204+Once we don't need the request anymore, we can either recycle it for reuse with
205+:ref:`MEDIA_REQUEST_IOC_REINIT`...
206+
207+.. code-block:: c
208+
209+ if (ioctl(req_fd, MEDIA_REQUEST_IOC_REINIT))
210+ return errno;
211+
212+... or close its file descriptor to completely dispose of it.
213+
214+.. code-block:: c
215+
216+ close(req_fd);
217+
218+Example for a Simple Capture Device
219+-----------------------------------
220+
221+With a simple capture device, requests can be used to specify controls to apply
222+for a given CAPTURE buffer.
223+
224+.. code-block:: c
225+
226+ struct v4l2_buffer buf;
227+ struct v4l2_ext_controls ctrls;
228+ int req_fd;
229+ ...
230+ if (ioctl(media_fd, MEDIA_IOC_REQUEST_ALLOC, &req_fd))
231+ return errno;
232+ ...
233+ ctrls.which = V4L2_CTRL_WHICH_REQUEST_VAL;
234+ ctrls.request_fd = req_fd;
235+ if (ioctl(camera_fd, VIDIOC_S_EXT_CTRLS, &ctrls))
236+ return errno;
237+ ...
238+ buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
239+ buf.flags |= V4L2_BUF_FLAG_REQUEST_FD;
240+ buf.request_fd = req_fd;
241+ if (ioctl(camera_fd, VIDIOC_QBUF, &buf))
242+ return errno;
243+
244+Once the request is fully prepared, it can be queued to the driver:
245+
246+.. code-block:: c
247+
248+ if (ioctl(req_fd, MEDIA_REQUEST_IOC_QUEUE))
249+ return errno;
250+
251+User-space can then dequeue buffers, wait for the request completion, query
252+controls and recycle the request as in the M2M example above.
Documentation/media/uapi/mediactl/request-func-close.rst+49−0
@@ -0,0 +1,49 @@
1+.. SPDX-License-Identifier: GPL-2.0 OR GFDL-1.1-or-later WITH no-invariant-sections
2+
3+.. _request-func-close:
4+
5+***************
6+request close()
7+***************
8+
9+Name
10+====
11+
12+request-close - Close a request file descriptor
13+
14+
15+Synopsis
16+========
17+
18+.. code-block:: c
19+
20+ #include <unistd.h>
21+
22+
23+.. c:function:: int close( int fd )
24+ :name: req-close
25+
26+Arguments
27+=========
28+
29+``fd``
30+ File descriptor returned by :ref:`MEDIA_IOC_REQUEST_ALLOC`.
31+
32+
33+Description
34+===========
35+
36+Closes the request file descriptor. Resources associated with the request
37+are freed once all file descriptors associated with the request are closed
38+and the driver has completed the request.
39+See :ref:`here <media-request-life-time>` for more information.
40+
41+
42+Return Value
43+============
44+
45+:ref:`close() <request-func-close>` returns 0 on success. On error, -1 is
46+returned, and ``errno`` is set appropriately. Possible error codes are:
47+
48+EBADF
49+ ``fd`` is not a valid open file descriptor.
Documentation/media/uapi/mediactl/request-func-ioctl.rst+67−0
@@ -0,0 +1,67 @@
1+.. SPDX-License-Identifier: GPL-2.0 OR GFDL-1.1-or-later WITH no-invariant-sections
2+
3+.. _request-func-ioctl:
4+
5+***************
6+request ioctl()
7+***************
8+
9+Name
10+====
11+
12+request-ioctl - Control a request file descriptor
13+
14+
15+Synopsis
16+========
17+
18+.. code-block:: c
19+
20+ #include <sys/ioctl.h>
21+
22+
23+.. c:function:: int ioctl( int fd, int cmd, void *argp )
24+ :name: req-ioctl
25+
26+Arguments
27+=========
28+
29+``fd``
30+ File descriptor returned by :ref:`MEDIA_IOC_REQUEST_ALLOC`.
31+
32+``cmd``
33+ The request ioctl command code as defined in the media.h header file, for
34+ example :ref:`MEDIA_REQUEST_IOC_QUEUE`.
35+
36+``argp``
37+ Pointer to a request-specific structure.
38+
39+
40+Description
41+===========
42+
43+The :ref:`ioctl() <request-func-ioctl>` function manipulates request
44+parameters. The argument ``fd`` must be an open file descriptor.
45+
46+The ioctl ``cmd`` code specifies the request function to be called. It
47+has encoded in it whether the argument is an input, output or read/write
48+parameter, and the size of the argument ``argp`` in bytes.
49+
50+Macros and structures definitions specifying request ioctl commands and
51+their parameters are located in the media.h header file. All request ioctl
52+commands, their respective function and parameters are specified in
53+:ref:`media-user-func`.
54+
55+
56+Return Value
57+============
58+
59+On success 0 is returned, on error -1 and the ``errno`` variable is set
60+appropriately. The generic error codes are described at the
61+:ref:`Generic Error Codes <gen-errors>` chapter.
62+
63+Command-specific error codes are listed in the individual command
64+descriptions.
65+
66+When an ioctl that takes an output or read/write parameter fails, the
67+parameter remains unmodified.
Documentation/media/uapi/mediactl/request-func-poll.rst+77−0
@@ -0,0 +1,77 @@
1+.. SPDX-License-Identifier: GPL-2.0 OR GFDL-1.1-or-later WITH no-invariant-sections
2+
3+.. _request-func-poll:
4+
5+**************
6+request poll()
7+**************
8+
9+Name
10+====
11+
12+request-poll - Wait for some event on a file descriptor
13+
14+
15+Synopsis
16+========
17+
18+.. code-block:: c
19+
20+ #include <sys/poll.h>
21+
22+
23+.. c:function:: int poll( struct pollfd *ufds, unsigned int nfds, int timeout )
24+ :name: request-poll
25+
26+Arguments
27+=========
28+
29+``ufds``
30+ List of file descriptor events to be watched
31+
32+``nfds``
33+ Number of file descriptor events at the \*ufds array
34+
35+``timeout``
36+ Timeout to wait for events
37+
38+
39+Description
40+===========
41+
42+With the :c:func:`poll() <request-func-poll>` function applications can wait
43+for a request to complete.
44+
45+On success :c:func:`poll() <request-func-poll>` returns the number of file
46+descriptors that have been selected (that is, file descriptors for which the
47+``revents`` field of the respective struct :c:type:`pollfd`
48+is non-zero). Request file descriptor set the ``POLLPRI`` flag in ``revents``
49+when the request was completed. When the function times out it returns
50+a value of zero, on failure it returns -1 and the ``errno`` variable is
51+set appropriately.
52+
53+Attempting to poll for a request that is not yet queued will
54+set the ``POLLERR`` flag in ``revents``.
55+
56+
57+Return Value
58+============
59+
60+On success, :c:func:`poll() <request-func-poll>` returns the number of
61+structures which have non-zero ``revents`` fields, or zero if the call
62+timed out. On error -1 is returned, and the ``errno`` variable is set
63+appropriately:
64+
65+``EBADF``
66+ One or more of the ``ufds`` members specify an invalid file
67+ descriptor.
68+
69+``EFAULT``
70+ ``ufds`` references an inaccessible memory area.
71+
72+``EINTR``
73+ The call was interrupted by a signal.
74+
75+``EINVAL``
76+ The ``nfds`` value exceeds the ``RLIMIT_NOFILE`` value. Use
77+ ``getrlimit()`` to obtain this value.
Documentation/media/uapi/v4l/biblio.rst+0−10
@@ -226,16 +226,6 @@ xvYCC · 225 unmodified lines
226226
227227 :author: International Electrotechnical Commission (http://www.iec.ch)
228228
229−.. _adobergb:
230−
231−AdobeRGB
232−========
233−
234−
235−:title: Adobe© RGB (1998) Color Image Encoding Version 2005-05
236−
237−:author: Adobe Systems Incorporated (http://www.adobe.com)
238−
239229 .. _oprgb:
240230
241231 opRGB
Documentation/media/uapi/v4l/buffer.rst+26−3
@@ -306,10 +306,23 @@ struct v4l2_buffer · 305 unmodified lines
306306 - A place holder for future extensions. Drivers and applications
307307 must set this to 0.
308308 * - __u32
309− - ``reserved``
309+ - ``request_fd``
310310 -
311− - A place holder for future extensions. Drivers and applications
312− must set this to 0.
311+ - The file descriptor of the request to queue the buffer to. If the flag
312+ ``V4L2_BUF_FLAG_REQUEST_FD`` is set, then the buffer will be
313+ queued to this request. If the flag is not set, then this field will
314+ be ignored.
315+
316+ The ``V4L2_BUF_FLAG_REQUEST_FD`` flag and this field are only used by
317+ :ref:`ioctl VIDIOC_QBUF <VIDIOC_QBUF>` and ignored by other ioctls that
318+ take a :c:type:`v4l2_buffer` as argument.
319+
320+ Applications should not set ``V4L2_BUF_FLAG_REQUEST_FD`` for any ioctls
321+ other than :ref:`VIDIOC_QBUF <VIDIOC_QBUF>`.
322+
323+ If the device does not support requests, then ``EACCES`` will be returned.
324+ If requests are supported but an invalid request file descriptor is
325+ given, then ``EINVAL`` will be returned.
313326
314327
315328
@@ -514,6 +527,11 @@ Buffer Flags · 198 unmodified lines
514527 streaming may continue as normal and the buffer may be reused
515528 normally. Drivers set this flag when the ``VIDIOC_DQBUF`` ioctl is
516529 called.
530+ * .. _`V4L2-BUF-FLAG-IN-REQUEST`:
531+
532+ - ``V4L2_BUF_FLAG_IN_REQUEST``
533+ - 0x00000080
534+ - This buffer is part of a request that hasn't been queued yet.
517535 * .. _`V4L2-BUF-FLAG-KEYFRAME`:
518536
519537 - ``V4L2_BUF_FLAG_KEYFRAME``
@@ -589,6 +607,11 @@ Buffer Flags · 69 unmodified lines
589607 the format. Any Any subsequent call to the
590608 :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` ioctl will not block anymore,
591609 but return an ``EPIPE`` error code.
610+ * .. _`V4L2-BUF-FLAG-REQUEST-FD`:
611+
612+ - ``V4L2_BUF_FLAG_REQUEST_FD``
613+ - 0x00800000
614+ - The ``request_fd`` field contains a valid file descriptor.
592615 * .. _`V4L2-BUF-FLAG-TIMESTAMP-MASK`:
593616
594617 - ``V4L2_BUF_FLAG_TIMESTAMP_MASK``
Documentation/media/uapi/v4l/colorspaces-defs.rst+4−4
@@ -51,8 +51,8 @@ whole range, 0-255, dividing the angular value by 1.41. The enum · 50 unmodified lines
5151 - See :ref:`col-rec709`.
5252 * - ``V4L2_COLORSPACE_SRGB``
5353 - See :ref:`col-srgb`.
54− * - ``V4L2_COLORSPACE_ADOBERGB``
55− - See :ref:`col-adobergb`.
54+ * - ``V4L2_COLORSPACE_OPRGB``
55+ - See :ref:`col-oprgb`.
5656 * - ``V4L2_COLORSPACE_BT2020``
5757 - See :ref:`col-bt2020`.
5858 * - ``V4L2_COLORSPACE_DCI_P3``
@@ -90,8 +90,8 @@ whole range, 0-255, dividing the angular value by 1.41. The enum · 31 unmodified lines
9090 - Use the Rec. 709 transfer function.
9191 * - ``V4L2_XFER_FUNC_SRGB``
9292 - Use the sRGB transfer function.
93− * - ``V4L2_XFER_FUNC_ADOBERGB``
94− - Use the AdobeRGB transfer function.
93+ * - ``V4L2_XFER_FUNC_OPRGB``
94+ - Use the opRGB transfer function.
9595 * - ``V4L2_XFER_FUNC_SMPTE240M``
9696 - Use the SMPTE 240M transfer function.
9797 * - ``V4L2_XFER_FUNC_NONE``
Documentation/media/uapi/v4l/colorspaces-details.rst+6−7
@@ -290,15 +290,14 @@ Y' is clamped to the range [0…1] and Cb and Cr are clamped to the range · 289 unmodified lines
290290 170M/BT.601. The Y'CbCr quantization is limited range.
291291
292292
293−.. _col-adobergb:
293+.. _col-oprgb:
294294
295−Colorspace Adobe RGB (V4L2_COLORSPACE_ADOBERGB)
295+Colorspace opRGB (V4L2_COLORSPACE_OPRGB)
296296 ===============================================
297297
298−The :ref:`adobergb` standard defines the colorspace used by computer
299−graphics that use the AdobeRGB colorspace. This is also known as the
300−:ref:`oprgb` standard. The default transfer function is
301−``V4L2_XFER_FUNC_ADOBERGB``. The default Y'CbCr encoding is
298+The :ref:`oprgb` standard defines the colorspace used by computer
299+graphics that use the opRGB colorspace. The default transfer function is
300+``V4L2_XFER_FUNC_OPRGB``. The default Y'CbCr encoding is
302301 ``V4L2_YCBCR_ENC_601``. The default Y'CbCr quantization is limited
303302 range.
304303
@@ -312,7 +311,7 @@ The chromaticities of the primary colors and the white reference are: · 7 unmodified lines
312311
313312 .. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
314313
315−.. flat-table:: Adobe RGB Chromaticities
314+.. flat-table:: opRGB Chromaticities
316315 :header-rows: 1
317316 :stub-columns: 0
318317 :widths: 1 1 2
Documentation/media/uapi/v4l/extended-controls.rst+176−0
@@ -1497,6 +1497,182 @@ enum v4l2_mpeg_video_h264_hierarchical_coding_type - · 1496 unmodified lines
14971497
14981498
14991499
1500+.. _v4l2-mpeg-mpeg2:
1501+
1502+``V4L2_CID_MPEG_VIDEO_MPEG2_SLICE_PARAMS (struct)``
1503+ Specifies the slice parameters (as extracted from the bitstream) for the
1504+ associated MPEG-2 slice data. This includes the necessary parameters for
1505+ configuring a stateless hardware decoding pipeline for MPEG-2.
1506+ The bitstream parameters are defined according to :ref:`mpeg2part2`.
1507+
1508+.. c:type:: v4l2_ctrl_mpeg2_slice_params
1509+
1510+.. cssclass:: longtable
1511+
1512+.. flat-table:: struct v4l2_ctrl_mpeg2_slice_params
1513+ :header-rows: 0
1514+ :stub-columns: 0
1515+ :widths: 1 1 2
1516+
1517+ * - __u32
1518+ - ``bit_size``
1519+ - Size (in bits) of the current slice data.
1520+ * - __u32
1521+ - ``data_bit_offset``
1522+ - Offset (in bits) to the video data in the current slice data.
1523+ * - struct :c:type:`v4l2_mpeg2_sequence`
1524+ - ``sequence``
1525+ - Structure with MPEG-2 sequence metadata, merging relevant fields from
1526+ the sequence header and sequence extension parts of the bitstream.
1527+ * - struct :c:type:`v4l2_mpeg2_picture`
1528+ - ``picture``
1529+ - Structure with MPEG-2 picture metadata, merging relevant fields from
1530+ the picture header and picture coding extension parts of the bitstream.
1531+ * - __u8
1532+ - ``quantiser_scale_code``
1533+ - Code used to determine the quantization scale to use for the IDCT.
1534+ * - __u8
1535+ - ``backward_ref_index``
1536+ - Index for the V4L2 buffer to use as backward reference, used with
1537+ B-coded and P-coded frames.
1538+ * - __u8
1539+ - ``forward_ref_index``
1540+ - Index for the V4L2 buffer to use as forward reference, used with
1541+ B-coded frames.
1542+
1543+.. c:type:: v4l2_mpeg2_sequence
1544+
1545+.. cssclass:: longtable
1546+
1547+.. flat-table:: struct v4l2_mpeg2_sequence
1548+ :header-rows: 0
1549+ :stub-columns: 0
1550+ :widths: 1 1 2
1551+
1552+ * - __u16
1553+ - ``horizontal_size``
1554+ - The width of the displayable part of the frame's luminance component.
1555+ * - __u16
1556+ - ``vertical_size``
1557+ - The height of the displayable part of the frame's luminance component.
1558+ * - __u32
1559+ - ``vbv_buffer_size``
1560+ - Used to calculate the required size of the video buffering verifier,
1561+ defined (in bits) as: 16 * 1024 * vbv_buffer_size.
1562+ * - __u8
1563+ - ``profile_and_level_indication``
1564+ - The current profile and level indication as extracted from the
1565+ bitstream.
1566+ * - __u8
1567+ - ``progressive_sequence``
1568+ - Indication that all the frames for the sequence are progressive instead
1569+ of interlaced.
1570+ * - __u8
1571+ - ``chroma_format``
1572+ - The chrominance sub-sampling format (1: 4:2:0, 2: 4:2:2, 3: 4:4:4).
1573+
1574+.. c:type:: v4l2_mpeg2_picture
1575+
1576+.. cssclass:: longtable
1577+
1578+.. flat-table:: struct v4l2_mpeg2_picture
1579+ :header-rows: 0
1580+ :stub-columns: 0
1581+ :widths: 1 1 2
1582+
1583+ * - __u8
1584+ - ``picture_coding_type``
1585+ - Picture coding type for the frame covered by the current slice
1586+ (V4L2_MPEG2_PICTURE_CODING_TYPE_I, V4L2_MPEG2_PICTURE_CODING_TYPE_P or
1587+ V4L2_MPEG2_PICTURE_CODING_TYPE_B).
1588+ * - __u8
1589+ - ``f_code[2][2]``
1590+ - Motion vector codes.
1591+ * - __u8
1592+ - ``intra_dc_precision``
1593+ - Precision of Discrete Cosine transform (0: 8 bits precision,
1594+ 1: 9 bits precision, 2: 10 bits precision, 3: 11 bits precision).
1595+ * - __u8
1596+ - ``picture_structure``
1597+ - Picture structure (1: interlaced top field, 2: interlaced bottom field,
1598+ 3: progressive frame).
1599+ * - __u8
1600+ - ``top_field_first``
1601+ - If set to 1 and interlaced stream, top field is output first.
1602+ * - __u8
1603+ - ``frame_pred_frame_dct``
1604+ - If set to 1, only frame-DCT and frame prediction are used.
1605+ * - __u8
1606+ - ``concealment_motion_vectors``
1607+ - If set to 1, motion vectors are coded for intra macroblocks.
1608+ * - __u8
1609+ - ``q_scale_type``
1610+ - This flag affects the inverse quantization process.
1611+ * - __u8
1612+ - ``intra_vlc_format``
1613+ - This flag affects the decoding of transform coefficient data.
1614+ * - __u8
1615+ - ``alternate_scan``
1616+ - This flag affects the decoding of transform coefficient data.
1617+ * - __u8
1618+ - ``repeat_first_field``
1619+ - This flag affects the decoding process of progressive frames.
1620+ * - __u8
1621+ - ``progressive_frame``
1622+ - Indicates whether the current frame is progressive.
1623+
1624+``V4L2_CID_MPEG_VIDEO_MPEG2_QUANTIZATION (struct)``
1625+ Specifies quantization matrices (as extracted from the bitstream) for the
1626+ associated MPEG-2 slice data.
1627+
1628+.. c:type:: v4l2_ctrl_mpeg2_quantization
1629+
1630+.. cssclass:: longtable
1631+
1632+.. flat-table:: struct v4l2_ctrl_mpeg2_quantization
1633+ :header-rows: 0
1634+ :stub-columns: 0
1635+ :widths: 1 1 2
1636+
1637+ * - __u8
1638+ - ``load_intra_quantiser_matrix``
1639+ - One bit to indicate whether to load the ``intra_quantiser_matrix`` data.
1640+ * - __u8
1641+ - ``load_non_intra_quantiser_matrix``
1642+ - One bit to indicate whether to load the ``non_intra_quantiser_matrix``
1643+ data.
1644+ * - __u8
1645+ - ``load_chroma_intra_quantiser_matrix``
1646+ - One bit to indicate whether to load the
1647+ ``chroma_intra_quantiser_matrix`` data, only relevant for non-4:2:0 YUV
1648+ formats.
1649+ * - __u8
1650+ - ``load_chroma_non_intra_quantiser_matrix``
1651+ - One bit to indicate whether to load the
1652+ ``chroma_non_intra_quantiser_matrix`` data, only relevant for non-4:2:0
1653+ YUV formats.
1654+ * - __u8
1655+ - ``intra_quantiser_matrix[64]``
1656+ - The quantization matrix coefficients for intra-coded frames, in zigzag
1657+ scanning order. It is relevant for both luma and chroma components,
1658+ although it can be superseded by the chroma-specific matrix for
1659+ non-4:2:0 YUV formats.
1660+ * - __u8
1661+ - ``non_intra_quantiser_matrix[64]``
1662+ - The quantization matrix coefficients for non-intra-coded frames, in
1663+ zigzag scanning order. It is relevant for both luma and chroma
1664+ components, although it can be superseded by the chroma-specific matrix
1665+ for non-4:2:0 YUV formats.
1666+ * - __u8
1667+ - ``chroma_intra_quantiser_matrix[64]``
1668+ - The quantization matrix coefficients for the chominance component of
1669+ intra-coded frames, in zigzag scanning order. Only relevant for
1670+ non-4:2:0 YUV formats.
1671+ * - __u8
1672+ - ``chroma_non_intra_quantiser_matrix[64]``
1673+ - The quantization matrix coefficients for the chrominance component of
1674+ non-intra-coded frames, in zigzag scanning order. Only relevant for
1675+ non-4:2:0 YUV formats.
15001676
15011677 MFC 5.1 MPEG Controls
15021678 ---------------------
Documentation/media/uapi/v4l/func-poll.rst+2−1
@@ -113,4 +113,5 @@ EINTR · 112 unmodified lines
113113 The call was interrupted by a signal.
114114
115115 EINVAL
116− The ``nfds`` argument is greater than ``OPEN_MAX``.
116+ The ``nfds`` value exceeds the ``RLIMIT_NOFILE`` value. Use
117+ ``getrlimit()`` to obtain this value.
Documentation/media/uapi/v4l/meta-formats.rst+1−0
@@ -12,6 +12,7 @@ These formats are used for the :ref:`metadata` interface only. · 11 unmodified lines
1212 .. toctree::
1313 :maxdepth: 1
1414
15+ pixfmt-meta-d4xx
1516 pixfmt-meta-uvc
1617 pixfmt-meta-vsp1-hgo
1718 pixfmt-meta-vsp1-hgt
Documentation/media/uapi/v4l/pixfmt-compressed.rst+17−1
@@ -60,6 +60,22 @@ Compressed Formats · 59 unmodified lines
6060 - ``V4L2_PIX_FMT_MPEG2``
6161 - 'MPG2'
6262 - MPEG2 video elementary stream.
63+ * .. _V4L2-PIX-FMT-MPEG2-SLICE:
64+
65+ - ``V4L2_PIX_FMT_MPEG2_SLICE``
66+ - 'MG2S'
67+ - MPEG-2 parsed slice data, as extracted from the MPEG-2 bitstream.
68+ This format is adapted for stateless video decoders that implement a
69+ MPEG-2 pipeline (using the :ref:`codec` and :ref:`media-request-api`).
70+ Metadata associated with the frame to decode is required to be passed
71+ through the ``V4L2_CID_MPEG_VIDEO_MPEG2_SLICE_PARAMS`` control and
72+ quantization matrices can optionally be specified through the
73+ ``V4L2_CID_MPEG_VIDEO_MPEG2_QUANTIZATION`` control.
74+ See the :ref:`associated Codec Control IDs <v4l2-mpeg-mpeg2>`.
75+ Exactly one output and one capture buffer must be provided for use with
76+ this pixel format. The output buffer must contain the appropriate number
77+ of macroblocks to decode a full corresponding frame to the matching
78+ capture buffer.
6379 * .. _V4L2-PIX-FMT-MPEG4:
6480
6581 - ``V4L2_PIX_FMT_MPEG4``
@@ -101,4 +117,4 @@ Compressed Formats · 35 unmodified lines
101117 - 'FWHT'
102118 - Video elementary stream using a codec based on the Fast Walsh Hadamard
103119 Transform. This codec is implemented by the vicodec ('Virtual Codec')
104− driver. See the vicodec-codec.h header for more details.
120+ driver. See the codec-fwht.h header for more details.
Documentation/media/uapi/v4l/pixfmt-meta-d4xx.rst+210−0
@@ -0,0 +1,210 @@
1+.. -*- coding: utf-8; mode: rst -*-
2+
3+.. _v4l2-meta-fmt-d4xx:
4+
5+*******************************
6+V4L2_META_FMT_D4XX ('D4XX')
7+*******************************
8+
9+Intel D4xx UVC Cameras Metadata
10+
11+
12+Description
13+===========
14+
15+Intel D4xx (D435 and other) cameras include per-frame metadata in their UVC
16+payload headers, following the Microsoft(R) UVC extension proposal [1_]. That
17+means, that the private D4XX metadata, following the standard UVC header, is
18+organised in blocks. D4XX cameras implement several standard block types,
19+proposed by Microsoft, and several proprietary ones. Supported standard metadata
20+types are MetadataId_CaptureStats (ID 3), MetadataId_CameraExtrinsics (ID 4),
21+and MetadataId_CameraIntrinsics (ID 5). For their description see [1_]. This
22+document describes proprietary metadata types, used by D4xx cameras.
23+
24+V4L2_META_FMT_D4XX buffers follow the metadata buffer layout of
25+V4L2_META_FMT_UVC with the only difference, that it also includes proprietary
26+payload header data. D4xx cameras use bulk transfers and only send one payload
27+per frame, therefore their headers cannot be larger than 255 bytes.
28+
29+Below are proprietary Microsoft style metadata types, used by D4xx cameras,
30+where all fields are in little endian order:
31+
32+.. flat-table:: D4xx metadata
33+ :widths: 1 4
34+ :header-rows: 1
35+ :stub-columns: 0
36+
37+ * - Field
38+ - Description
39+ * - :cspan:`1` *Depth Control*
40+ * - __u32 ID
41+ - 0x80000000
42+ * - __u32 Size
43+ - Size in bytes (currently 56)
44+ * - __u32 Version
45+ - Version of this structure. The documentation herein corresponds to
46+ version xxx. The version number will be incremented when new fields are
47+ added.
48+ * - __u32 Flags
49+ - A bitmask of flags: see [2_] below
50+ * - __u32 Gain
51+ - Gain value in internal units, same as the V4L2_CID_GAIN control, used to
52+ capture the frame
53+ * - __u32 Exposure
54+ - Exposure time (in microseconds) used to capture the frame
55+ * - __u32 Laser power
56+ - Power of the laser LED 0-360, used for depth measurement
57+ * - __u32 AE mode
58+ - 0: manual; 1: automatic exposure
59+ * - __u32 Exposure priority
60+ - Exposure priority value: 0 - constant frame rate
61+ * - __u32 AE ROI left
62+ - Left border of the AE Region of Interest (all ROI values are in pixels
63+ and lie between 0 and maximum width or height respectively)
64+ * - __u32 AE ROI right
65+ - Right border of the AE Region of Interest
66+ * - __u32 AE ROI top
67+ - Top border of the AE Region of Interest
68+ * - __u32 AE ROI bottom
69+ - Bottom border of the AE Region of Interest
70+ * - __u32 Preset
71+ - Preset selector value, default: 0, unless changed by the user
72+ * - __u32 Laser mode
73+ - 0: off, 1: on
74+ * - :cspan:`1` *Capture Timing*
75+ * - __u32 ID
76+ - 0x80000001
77+ * - __u32 Size
78+ - Size in bytes (currently 40)
79+ * - __u32 Version
80+ - Version of this structure. The documentation herein corresponds to
81+ version xxx. The version number will be incremented when new fields are
82+ added.
83+ * - __u32 Flags
84+ - A bitmask of flags: see [3_] below
85+ * - __u32 Frame counter
86+ - Monotonically increasing counter
87+ * - __u32 Optical time
88+ - Time in microseconds from the beginning of a frame till its middle
89+ * - __u32 Readout time
90+ - Time, used to read out a frame in microseconds
91+ * - __u32 Exposure time
92+ - Frame exposure time in microseconds
93+ * - __u32 Frame interval
94+ - In microseconds = 1000000 / framerate
95+ * - __u32 Pipe latency
96+ - Time in microseconds from start of frame to data in USB buffer
97+ * - :cspan:`1` *Configuration*
98+ * - __u32 ID
99+ - 0x80000002
100+ * - __u32 Size
101+ - Size in bytes (currently 40)
102+ * - __u32 Version
103+ - Version of this structure. The documentation herein corresponds to
104+ version xxx. The version number will be incremented when new fields are
105+ added.
106+ * - __u32 Flags
107+ - A bitmask of flags: see [4_] below
108+ * - __u8 Hardware type
109+ - Camera hardware version [5_]
110+ * - __u8 SKU ID
111+ - Camera hardware configuration [6_]
112+ * - __u32 Cookie
113+ - Internal synchronisation
114+ * - __u16 Format
115+ - Image format code [7_]
116+ * - __u16 Width
117+ - Width in pixels
118+ * - __u16 Height
119+ - Height in pixels
120+ * - __u16 Framerate
121+ - Requested frame rate per second
122+ * - __u16 Trigger
123+ - Byte 0: bit 0: depth and RGB are synchronised, bit 1: external trigger
124+
125+.. _1:
126+
127+[1] https://docs.microsoft.com/en-us/windows-hardware/drivers/stream/uvc-extensions-1-5
128+
129+.. _2:
130+
131+[2] Depth Control flags specify which fields are valid: ::
132+
133+ 0x00000001 Gain
134+ 0x00000002 Exposure
135+ 0x00000004 Laser power
136+ 0x00000008 AE mode
137+ 0x00000010 Exposure priority
138+ 0x00000020 AE ROI
139+ 0x00000040 Preset
140+
141+.. _3:
142+
143+[3] Capture Timing flags specify which fields are valid: ::
144+
145+ 0x00000001 Frame counter
146+ 0x00000002 Optical time
147+ 0x00000004 Readout time
148+ 0x00000008 Exposure time
149+ 0x00000010 Frame interval
150+ 0x00000020 Pipe latency
151+
152+.. _4:
153+
154+[4] Configuration flags specify which fields are valid: ::
155+
156+ 0x00000001 Hardware type
157+ 0x00000002 SKU ID
158+ 0x00000004 Cookie
159+ 0x00000008 Format
160+ 0x00000010 Width
161+ 0x00000020 Height
162+ 0x00000040 Framerate
163+ 0x00000080 Trigger
164+ 0x00000100 Cal count
165+
166+.. _5:
167+
168+[5] Camera model: ::
169+
170+ 0 DS5
171+ 1 IVCAM2
172+
173+.. _6:
174+
175+[6] 8-bit camera hardware configuration bitfield: ::
176+
177+ [1:0] depthCamera
178+ 00: no depth
179+ 01: standard depth
180+ 10: wide depth
181+ 11: reserved
182+ [2] depthIsActive - has a laser projector
183+ [3] RGB presence
184+ [4] Inertial Measurement Unit (IMU) presence
185+ [5] projectorType
186+ 0: HPTG
187+ 1: Princeton
188+ [6] 0: a projector, 1: an LED
189+ [7] reserved
190+
191+.. _7:
192+
193+[7] Image format codes per video streaming interface:
194+
195+Depth: ::
196+
197+ 1 Z16
198+ 2 Z
199+
200+Left sensor: ::
201+
202+ 1 Y8
203+ 2 UYVY
204+ 3 R8L8
205+ 4 Calibration
206+ 5 W10
207+
208+Fish Eye sensor: ::
209+
210+ 1 RAW8
Documentation/media/uapi/v4l/pixfmt-reserved.rst+14−1
@@ -243,7 +243,20 @@ please make a proposal on the linux-media mailing list. · 242 unmodified lines
243243 It is an opaque intermediate format and the MDP hardware must be
244244 used to convert ``V4L2_PIX_FMT_MT21C`` to ``V4L2_PIX_FMT_NV12M``,
245245 ``V4L2_PIX_FMT_YUV420M`` or ``V4L2_PIX_FMT_YVU420``.
246−
246+ * .. _V4L2-PIX-FMT-SUNXI-TILED-NV12:
247+
248+ - ``V4L2_PIX_FMT_SUNXI_TILED_NV12``
249+ - 'ST12'
250+ - Two-planar NV12-based format used by the video engine found on Allwinner
251+ (codenamed sunxi) platforms, with 32x32 tiles for the luminance plane
252+ and 32x64 tiles for the chrominance plane. The data in each tile is
253+ stored in linear order, within the tile bounds. Each tile follows the
254+ previous one linearly in memory (from left to right, top to bottom).
255+
256+ The associated buffer dimensions are aligned to match an integer number
257+ of tiles, resulting in 32-aligned resolutions for the luminance plane
258+ and 16-aligned resolutions for the chrominance plane (with 2x2
259+ subsampling).
247260
248261 .. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}|
249262
Documentation/media/uapi/v4l/vidioc-create-bufs.rst+13−1
@@ -102,7 +102,19 @@ than the number requested. · 101 unmodified lines
102102 - ``format``
103103 - Filled in by the application, preserved by the driver.
104104 * - __u32
105− - ``reserved``\ [8]
105+ - ``capabilities``
106+ - Set by the driver. If 0, then the driver doesn't support
107+ capabilities. In that case all you know is that the driver is
108+ guaranteed to support ``V4L2_MEMORY_MMAP`` and *might* support
109+ other :c:type:`v4l2_memory` types. It will not support any others
110+ capabilities. See :ref:`here <v4l2-buf-capabilities>` for a list of the
111+ capabilities.
112+
113+ If you want to just query the capabilities without making any
114+ other changes, then set ``count`` to 0, ``memory`` to
115+ ``V4L2_MEMORY_MMAP`` and ``format.type`` to the buffer type.
116+ * - __u32
117+ - ``reserved``\ [7]
106118 - A place holder for future extensions. Drivers and applications
107119 must set the array to zero.
108120
Documentation/media/uapi/v4l/vidioc-cropcap.rst+1−1
@@ -58,7 +58,7 @@ overlay devices. · 57 unmodified lines
5858 - Type of the data stream, set by the application. Only these types
5959 are valid here: ``V4L2_BUF_TYPE_VIDEO_CAPTURE``, ``V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE``,
6060 ``V4L2_BUF_TYPE_VIDEO_OUTPUT``, ``V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE`` and
61− ``V4L2_BUF_TYPE_VIDEO_OVERLAY``. See :c:type:`v4l2_buf_type` and the note above.
61+ ``V4L2_BUF_TYPE_VIDEO_OVERLAY``. See :c:type:`v4l2_buf_type` and the note below.
6262 * - struct :ref:`v4l2_rect <v4l2-rect-crop>`
6363 - ``bounds``
6464 - Defines the window within capturing or output is possible, this
Documentation/media/uapi/v4l/vidioc-dqevent.rst+11−1
@@ -379,7 +379,17 @@ call. · 378 unmodified lines
379379 - 0x0001
380380 - This event gets triggered when a resolution change is detected at
381381 an input. This can come from an input connector or from a video
382− decoder.
382+ decoder. Applications will have to query the new resolution (if
383+ any, the signal may also have been lost).
384+
385+ *Important*: even if the new video timings appear identical to the old
386+ ones, receiving this event indicates that there was an issue with the
387+ video signal and you must stop and restart streaming
388+ (:ref:`VIDIOC_STREAMOFF <VIDIOC_STREAMON>`
389+ followed by :ref:`VIDIOC_STREAMON <VIDIOC_STREAMON>`). The reason is
390+ that many devices are not able to recover from a temporary loss of
391+ signal and so restarting streaming I/O is required in order for the
392+ hardware to synchronize to the video signal.
383393
384394
385395 Return Value
Documentation/media/uapi/v4l/vidioc-g-crop.rst+1−1
@@ -84,7 +84,7 @@ When cropping is not supported then no parameters are changed and · 83 unmodified lines
8484 - Type of the data stream, set by the application. Only these types
8585 are valid here: ``V4L2_BUF_TYPE_VIDEO_CAPTURE``, ``V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE``,
8686 ``V4L2_BUF_TYPE_VIDEO_OUTPUT``, ``V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE`` and
87− ``V4L2_BUF_TYPE_VIDEO_OVERLAY``. See :c:type:`v4l2_buf_type` and the note above.
87+ ``V4L2_BUF_TYPE_VIDEO_OVERLAY``. See :c:type:`v4l2_buf_type` and the note below.
8888 * - struct :c:type:`v4l2_rect`
8989 - ``c``
9090 - Cropping rectangle. The same co-ordinate system as for struct
Documentation/media/uapi/v4l/vidioc-g-dv-timings.rst+19−8
@@ -257,14 +257,19 @@ EBUSY · 256 unmodified lines
257257 will also be cleared. This is a read-only flag, applications must
258258 not set this.
259259 * - ``V4L2_DV_FL_REDUCED_FPS``
260− - CEA-861 specific: only valid for video transmitters, the flag is
261− cleared by receivers. It is also only valid for formats with the
262− ``V4L2_DV_FL_CAN_REDUCE_FPS`` flag set, for other formats the
263− flag will be cleared by the driver. If the application sets this
264− flag, then the pixelclock used to set up the transmitter is
265− divided by 1.001 to make it compatible with NTSC framerates. If
266− the transmitter can't generate such frequencies, then the flag
267− will also be cleared.
260+ - CEA-861 specific: only valid for video transmitters or video
261+ receivers that have the ``V4L2_DV_FL_CAN_DETECT_REDUCED_FPS``
262+ set. This flag is cleared otherwise. It is also only valid for
263+ formats with the ``V4L2_DV_FL_CAN_REDUCE_FPS`` flag set, for other
264+ formats the flag will be cleared by the driver.
265+
266+ If the application sets this flag for a transmitter, then the
267+ pixelclock used to set up the transmitter is divided by 1.001 to
268+ make it compatible with NTSC framerates. If the transmitter can't
269+ generate such frequencies, then the flag will be cleared.
270+
271+ If a video receiver detects that the format uses a reduced framerate,
272+ then it will set this flag to signal this to the application.
268273 * - ``V4L2_DV_FL_HALF_LINE``
269274 - Specific to interlaced formats: if set, then the vertical
270275 backporch of field 1 (aka the odd field) is really one half-line
@@ -294,3 +299,9 @@ EBUSY · 23 unmodified lines
294299 - If set, then the hdmi_vic field is valid and contains the Video
295300 Identification Code as per the HDMI standard (HDMI Vendor Specific
296301 InfoFrame).
302+ * - ``V4L2_DV_FL_CAN_DETECT_REDUCED_FPS``
303+ - CEA-861 specific: only valid for video receivers, the flag is
304+ cleared by transmitters.
305+ If set, then the hardware can detect the difference between
306+ regular framerates and framerates reduced by 1000/1001. E.g.:
307+ 60 vs 59.94 Hz, 30 vs 29.97 Hz or 24 vs 23.976 Hz.
Documentation/media/uapi/v4l/vidioc-g-ext-ctrls.rst+49−10
@@ -95,6 +95,25 @@ appropriate. In the first case the new value is set in struct · 94 unmodified lines
9595 is inappropriate (e.g. the given menu index is not supported by the menu
9696 control), then this will also result in an ``EINVAL`` error code error.
9797
98+If ``request_fd`` is set to a not-yet-queued :ref:`request <media-request-api>`
99+file descriptor and ``which`` is set to ``V4L2_CTRL_WHICH_REQUEST_VAL``,
100+then the controls are not applied immediately when calling
101+:ref:`VIDIOC_S_EXT_CTRLS <VIDIOC_G_EXT_CTRLS>`, but instead are applied by
102+the driver for the buffer associated with the same request.
103+If the device does not support requests, then ``EACCES`` will be returned.
104+If requests are supported but an invalid request file descriptor is given,
105+then ``EINVAL`` will be returned.
106+
107+An attempt to call :ref:`VIDIOC_S_EXT_CTRLS <VIDIOC_G_EXT_CTRLS>` for a
108+request that has already been queued will result in an ``EBUSY`` error.
109+
110+If ``request_fd`` is specified and ``which`` is set to
111+``V4L2_CTRL_WHICH_REQUEST_VAL`` during a call to
112+:ref:`VIDIOC_G_EXT_CTRLS <VIDIOC_G_EXT_CTRLS>`, then it will return the
113+values of the controls at the time of request completion.
114+If the request is not yet completed, then this will result in an
115+``EACCES`` error.
116+
98117 The driver will only set/get these controls if all control values are
99118 correct. This prevents the situation where only some of the controls
100119 were set/get. Only low-level errors (e. g. a failed i2c command) can
@@ -209,13 +228,17 @@ still cause this situation. · 108 unmodified lines
209228 - ``which``
210229 - Which value of the control to get/set/try.
211230 ``V4L2_CTRL_WHICH_CUR_VAL`` will return the current value of the
212− control and ``V4L2_CTRL_WHICH_DEF_VAL`` will return the default
213− value of the control.
231+ control, ``V4L2_CTRL_WHICH_DEF_VAL`` will return the default
232+ value of the control and ``V4L2_CTRL_WHICH_REQUEST_VAL`` indicates that
233+ these controls have to be retrieved from a request or tried/set for
234+ a request. In the latter case the ``request_fd`` field contains the
235+ file descriptor of the request that should be used. If the device
236+ does not support requests, then ``EACCES`` will be returned.
214237
215238 .. note::
216239
217− You can only get the default value of the control,
218− you cannot set or try it.
240+ When using ``V4L2_CTRL_WHICH_DEF_VAL`` be aware that you can only
241+ get the default value of the control, you cannot set or try it.
219242
220243 For backwards compatibility you can also use a control class here
221244 (see :ref:`ctrl-class`). In that case all controls have to
@@ -272,8 +295,15 @@ still cause this situation. · 50 unmodified lines
272295 then you can call :ref:`VIDIOC_TRY_EXT_CTRLS <VIDIOC_G_EXT_CTRLS>` to try to discover the
273296 actual control that failed the validation step. Unfortunately,
274297 there is no ``TRY`` equivalent for :ref:`VIDIOC_G_EXT_CTRLS <VIDIOC_G_EXT_CTRLS>`.
298+ * - __s32
299+ - ``request_fd``
300+ - File descriptor of the request to be used by this operation. Only
301+ valid if ``which`` is set to ``V4L2_CTRL_WHICH_REQUEST_VAL``.
302+ If the device does not support requests, then ``EACCES`` will be returned.
303+ If requests are supported but an invalid request file descriptor is
304+ given, then ``EINVAL`` will be returned.
275305 * - __u32
276− - ``reserved``\ [2]
306+ - ``reserved``\ [1]
277307 - Reserved for future extensions.
278308
279309 Drivers and applications must set the array to zero.
@@ -347,11 +377,14 @@ appropriately. The generic error codes are described at the · 67 unmodified lines
347377
348378 EINVAL
349379 The struct :c:type:`v4l2_ext_control` ``id`` is

36 more lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-qbuf.rst+35−2

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

Documentation/media/uapi/v4l/vidioc-queryctrl.rst+12−2

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

Documentation/media/uapi/v4l/vidioc-reqbufs.rst+41−1

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

Documentation/media/videodev2.h.rst.exceptions+8−2

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

Documentation/memory-barriers.txt+1−2

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

Documentation/mips/00-INDEX+0−4

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

Documentation/mmc/00-INDEX+0−10

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

Documentation/mtd/nand/pxa3xx-nand.txt+0−113

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

Documentation/netlabel/00-INDEX+0−10

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

Documentation/netlabel/cipso_ipv4.txt+6−5

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

Documentation/netlabel/introduction.txt+1−1

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

Documentation/networking/00-INDEX+0−234

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

Documentation/networking/af_xdp.rst+2−2

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

Documentation/networking/defza.txt+57−0

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

Documentation/networking/devlink-params-bnxt.txt+18−0

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

Documentation/networking/devlink-params.txt+42−0

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

Documentation/networking/dpaa2/ethernet-driver.rstrenamed from drivers/staging/fsl-dpaa2/ethernet/ethernet-driver.rst+0−0

File renamed without changes.

Documentation/networking/dpaa2/index.rst+1−0

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

Documentation/networking/e100.rst+2−1

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

Documentation/networking/e1000.rst+2−1

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

Documentation/networking/e1000e.rst+382−0

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

Documentation/networking/e1000e.txt+0−312

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

Documentation/networking/filter.txt+80−14

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

Documentation/networking/fm10k.rst+141−0

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

Documentation/networking/i40e.rst+770−0

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

Documentation/networking/i40e.txt+0−190

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

Documentation/networking/i40evf.txt+0−54

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

Documentation/networking/iavf.rst+281−0

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

Documentation/networking/ice.rst+45−0

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

Documentation/networking/ice.txt+0−39

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

Documentation/networking/igb.rst+193−0

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

Documentation/networking/igb.txt+0−129

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

Documentation/networking/igbvf.rst+64−0

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

Documentation/networking/igbvf.txt+0−80

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

Documentation/networking/index.rst+10−0

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

Documentation/networking/ip-sysctl.txt+20−1

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

Documentation/networking/ixgb.rst+467−0

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

Documentation/networking/ixgb.txt+0−433

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

Documentation/networking/ixgbe.rst+527−0

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

Documentation/networking/ixgbe.txt+0−349

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

Documentation/networking/ixgbevf.rst+66−0

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

Documentation/networking/ixgbevf.txt+0−52

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

Documentation/networking/netvsc.txt+9−0

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

Documentation/networking/rxrpc.txt+25−0

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

Documentation/networking/tcp.txt+0−101

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

Documentation/networking/xfrm_device.txt+4−0

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

Documentation/nvmem/nvmem.txt+31−0

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

Documentation/parisc/00-INDEX+0−6

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

Documentation/power/00-INDEX+0−44

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

Documentation/power/swsusp.txt+1−1

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

Documentation/powerpc/00-INDEX+0−34

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

Documentation/preempt-locking.txt+6−6

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

Documentation/process/2.Process.rst+1−1

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

Documentation/process/adding-syscalls.rst+1−1

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

Documentation/process/code-of-conduct-interpretation.rst+156−0

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

Documentation/process/code-of-conduct.rst+15−10

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

Documentation/process/deprecated.rst+119−0

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

Documentation/process/howto.rst+7−6

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

Documentation/process/index.rst+4−0

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

Documentation/process/license-rules.rst+2−0

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

Documentation/process/programming-language.rst+45−0

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

Documentation/s390/00-INDEX+0−28

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

Documentation/s390/vfio-ap.txt+837−0

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

Documentation/scheduler/00-INDEX+0−18

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

Documentation/scheduler/completion.txt+153−109

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

Documentation/scsi/00-INDEX+0−108

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

Documentation/scsi/ufs.txt+20−0

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

Documentation/security/LSM.rst+1−1

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

Documentation/security/keys/core.rst+217−0

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

Documentation/security/keys/ecryptfs.rst+4−4

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

Documentation/security/self-protection.rst+5−5

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

Documentation/serial/00-INDEX+0−16

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

Documentation/serial/driver+1−1

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

Documentation/serial/serial-iso7816.txt+83−0

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

Documentation/sound/hd-audio/models.rst+2−0

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

Documentation/sound/kernel-api/writing-an-alsa-driver.rst+149−158

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

Documentation/sphinx-static/theme_overrides.css+38−0

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

Documentation/spi/00-INDEX+0−16

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

Documentation/switchtec.txt+20−10

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

Documentation/sysctl/00-INDEX+0−16

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

Documentation/sysctl/kernel.txt+18−0

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

Documentation/sysctl/net.txt+8−0

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

Documentation/timers/00-INDEX+0−16

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

Documentation/trace/ftrace.rst+3−0

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

Documentation/trace/histogram.rst+3−3

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

Documentation/trace/kprobetrace.rst+19−4

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

Documentation/trace/stm.rst+29−9

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

Documentation/trace/sys-t.rst+62−0

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

Documentation/virtual/00-INDEX+0−11

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

Documentation/virtual/kvm/00-INDEX+0−35

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

Documentation/virtual/kvm/api.txt+129−6

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

Documentation/vm/00-INDEX+0−50

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

Documentation/vm/hmm.rst+7−7

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

Documentation/vm/slub.rst+9−3

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

Documentation/w1/00-INDEX+0−10

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

Documentation/w1/masters/00-INDEX+0−12

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

Documentation/w1/slaves/00-INDEX+0−14

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

Documentation/watchdog/hpwdt.txt+31−62

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

Documentation/watchdog/watchdog-parameters.txt+5−0

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

Documentation/x86/00-INDEX+0−20

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

Documentation/x86/boot.txt+31−1

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

Documentation/x86/intel_rdt_ui.txt+14−8

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

Documentation/x86/pat.txt+2−2

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

Documentation/x86/x86_64/00-INDEX+0−16

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

Documentation/x86/x86_64/mm.txt+125−51

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

Documentation/x86/zero-page.txt+1−1

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

Documentation/xilinx/eemi.txt+67−0

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

LICENSES/other/CC-BY-SA-4.0+0−397

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

LICENSES/other/CDDL-1.0+5−1

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

LICENSES/other/ISC+24−0

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

MAINTAINERS+577−220

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

Makefile+73−25

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

README+0−1

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

arch/Kconfig+17−0

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

arch/alpha/include/asm/processor.h+0−6

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

arch/alpha/include/asm/termios.h+7−1

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

arch/alpha/include/asm/unistd.h+2−0

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

arch/alpha/include/uapi/asm/ioctls.h+7−0

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

arch/alpha/include/uapi/asm/siginfo.h+0−1

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

arch/alpha/include/uapi/asm/termbits.h+17−0

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

arch/alpha/kernel/core_apecs.c+2−1

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

arch/alpha/kernel/core_cia.c+2−2

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

arch/alpha/kernel/core_irongate.c+3−5

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

arch/alpha/kernel/core_lca.c+2−1

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

arch/alpha/kernel/core_marvel.c+3−3

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

arch/alpha/kernel/core_mcpcia.c+4−2

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

arch/alpha/kernel/core_t2.c+1−1

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

arch/alpha/kernel/core_titan.c+5−3

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

arch/alpha/kernel/core_tsunami.c+5−3

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

arch/alpha/kernel/core_wildfire.c+4−2

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

arch/alpha/kernel/entry.S+24−29

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

arch/alpha/kernel/pci-noop.c+3−3

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

arch/alpha/kernel/pci.c+3−3

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

arch/alpha/kernel/pci_iommu.c+7−7

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

arch/alpha/kernel/setup.c+13−88

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

arch/alpha/kernel/sys_nautilus.c+1−1

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

arch/alpha/kernel/systbls.S+159−159

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

arch/alpha/mm/init.c+2−2

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

arch/alpha/mm/numa.c+13−101

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

arch/arc/Kconfig+3−5

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

arch/arc/Makefile+2−30

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

arch/arc/include/asm/processor.h+0−8

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

arch/arc/include/uapi/asm/unistd.h+1−0

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

arch/arc/kernel/process.c+20−0

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

arch/arc/kernel/traps.c+8−14

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

arch/arc/kernel/unwind.c+3−3

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

arch/arc/kernel/vmlinux.lds.S+0−1

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

arch/arc/mm/dma.c+10−31

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

arch/arc/mm/fault.c+5−15

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

arch/arc/mm/highmem.c+2−2

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

arch/arc/mm/init.c+1−2

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

arch/arm/Kconfig+1−2

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

arch/arm/Kconfig.debug+31−23

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

arch/arm/Makefile+2−24

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

arch/arm/boot/compressed/head.S+43−0

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

arch/arm/boot/compressed/libfdt_env.h+2−0

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

arch/arm/boot/dts/Makefile+16−2

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

arch/arm/boot/dts/am335x-bone-common.dtsi+5−1

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

arch/arm/boot/dts/am335x-boneblack-common.dtsi+4−1

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

arch/arm/boot/dts/am335x-chiliboard.dts+5−1

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

arch/arm/boot/dts/am335x-cm-t335.dts+5−1

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

arch/arm/boot/dts/am335x-evm.dts+6−6

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

arch/arm/boot/dts/am335x-evmsk.dts+10−2

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

arch/arm/boot/dts/am335x-igep0033.dtsi+11−2

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

arch/arm/boot/dts/am335x-lxm.dts+10−2

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

arch/arm/boot/dts/am335x-moxa-uc-2100-common.dtsi+249−0

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

arch/arm/boot/dts/am335x-moxa-uc-2101.dts+69−0

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

arch/arm/boot/dts/am335x-moxa-uc-8100-me-t.dts+10−2

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

arch/arm/boot/dts/am335x-nano.dts+10−2

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

arch/arm/boot/dts/am335x-osd3358-sm-red.dts+6−2

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

arch/arm/boot/dts/am335x-pdu001.dts+11−3

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

arch/arm/boot/dts/am335x-pepper.dts+10−2

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

arch/arm/boot/dts/am335x-sancloud-bbe.dts+5−1

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

arch/arm/boot/dts/am335x-shc.dts+0−1

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

arch/arm/boot/dts/am3517-evm-ui.dtsi+220−0

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

arch/arm/boot/dts/am3517-evm.dts+1−0

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

arch/arm/boot/dts/am4372.dtsi+1−1

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

arch/arm/boot/dts/am437x-cm-t43.dts+10−2

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

arch/arm/boot/dts/am437x-gp-evm.dts+5−1

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

arch/arm/boot/dts/am437x-idk-evm.dts+5−1

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

arch/arm/boot/dts/am437x-sk-evm.dts+10−2

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

arch/arm/boot/dts/am43x-epos-evm.dts+5−1

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

arch/arm/boot/dts/am571x-idk.dts+80−4

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

arch/arm/boot/dts/am572x-idk-common.dtsi+76−0

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

arch/arm/boot/dts/am572x-idk.dts+0−4

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

arch/arm/boot/dts/am57xx-cl-som-am57x.dts+11−3

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

arch/arm/boot/dts/am57xx-idk-common.dtsi+16−2

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

arch/arm/boot/dts/arm-realview-eb.dtsi+1−1

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

arch/arm/boot/dts/arm-realview-pb1176.dts+1−1

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

arch/arm/boot/dts/arm-realview-pb11mp.dts+1−1

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

arch/arm/boot/dts/arm-realview-pbx.dtsi+1−1

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

arch/arm/boot/dts/armada-385-db-88f6820-amc.dts+155−0

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

arch/arm/boot/dts/armada-388-clearfog.dtsi+1−1

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

arch/arm/boot/dts/armada-xp-98dx3236.dtsi+2−2

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

arch/arm/boot/dts/armada-xp-98dx3336.dtsi+1−1

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

arch/arm/boot/dts/armada-xp-98dx4251.dtsi+1−1

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

arch/arm/boot/dts/armada-xp-db-dxbc2.dts+11−7

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

arch/arm/boot/dts/armada-xp-db-xc3-24g4xg.dts+11−7

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

arch/arm/boot/dts/aspeed-bmc-arm-stardragon4800-rep2.dts+207−0

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

arch/arm/boot/dts/aspeed-bmc-facebook-tiogapass.dts+146−0

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

arch/arm/boot/dts/aspeed-bmc-quanta-q71l.dts+47−0

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

arch/arm/boot/dts/aspeed-g4.dtsi+1−1

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

arch/arm/boot/dts/aspeed-g5.dtsi+1−1

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

arch/arm/boot/dts/at91-dvk_su60_somc.dtsi+2−2

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

arch/arm/boot/dts/at91-dvk_su60_somc_lcm.dtsi+2−2

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

arch/arm/boot/dts/at91-nattis-2-natte-2.dts+57−46

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

arch/arm/boot/dts/at91-sama5d27_som1_ek.dts+42−0

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

arch/arm/boot/dts/at91-sama5d2_ptc_ek.dts+6−4

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

arch/arm/boot/dts/at91-sama5d2_xplained.dts+30−0

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

arch/arm/boot/dts/at91-sama5d3_xplained.dts+8−3

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

arch/arm/boot/dts/at91-sama5d4_xplained.dts+9−4

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

arch/arm/boot/dts/at91-tse850-3.dts+13−19

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

arch/arm/boot/dts/at91-vinco.dts+1−1

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

arch/arm/boot/dts/at91sam9260ek.dts+1−1

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

arch/arm/boot/dts/at91sam9261ek.dts+1−1

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

arch/arm/boot/dts/at91sam9g20ek_common.dtsi+1−1

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

arch/arm/boot/dts/at91sam9g45.dtsi+1−1

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

arch/arm/boot/dts/at91sam9x5cm.dtsi+14−4

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

arch/arm/boot/dts/bcm-hr2.dtsi+1−1

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

arch/arm/boot/dts/bcm-nsp.dtsi+31−2

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

arch/arm/boot/dts/bcm2837-rpi-cm3-io3.dts+87−0

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

arch/arm/boot/dts/bcm2837-rpi-cm3.dtsi+52−0

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

arch/arm/boot/dts/bcm283x-rpi-lan7515.dtsi+14−0

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

arch/arm/boot/dts/bcm47081-tplink-archer-c5-v2.dts+28−0

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

arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts+31−0

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

arch/arm/boot/dts/bcm4709-tplink-archer-c9-v1.dts+28−0

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

arch/arm/boot/dts/bcm5301x-nand-cs0.dtsi+4−0

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

arch/arm/boot/dts/bcm5301x.dtsi+4−1

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

arch/arm/boot/dts/bcm63138.dtsi+8−6

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

arch/arm/boot/dts/bcm958625hr.dts+26−0

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

arch/arm/boot/dts/da850-evm.dts+6−0

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

arch/arm/boot/dts/da850-lego-ev3.dts+2−1

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

arch/arm/boot/dts/dm8148-evm.dts+12−2

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

arch/arm/boot/dts/dm8148-t410.dts+12−2

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

arch/arm/boot/dts/dove-cubox.dts+1−1

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

arch/arm/boot/dts/dove.dtsi+3−3

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

arch/arm/boot/dts/dra62x-j5eco-evm.dts+12−2

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

arch/arm/boot/dts/dra7-evm.dts+12−2

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

arch/arm/boot/dts/dra7.dtsi+4−2

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

arch/arm/boot/dts/dra71-evm.dts+2−2

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

arch/arm/boot/dts/dra72-evm-revc.dts+2−2

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

arch/arm/boot/dts/dra72-evm.dts+7−1

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

arch/arm/boot/dts/dra76-evm.dts+2−2

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

arch/arm/boot/dts/exynos3250-artik5.dtsi+7−0

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

arch/arm/boot/dts/exynos4210-origen.dts+9−0

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

arch/arm/boot/dts/exynos4210-trats.dts+15−0

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

arch/arm/boot/dts/exynos4210-universal_c210.dts+9−2

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

arch/arm/boot/dts/exynos4412-midas.dtsi+1−2

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

arch/arm/boot/dts/exynos4412-odroid-common.dtsi+1−2

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

arch/arm/boot/dts/exynos5250-arndale.dts+93−9

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

arch/arm/boot/dts/exynos5250-pinctrl.dtsi+11−0

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

arch/arm/boot/dts/exynos5250-snow-rev5.dts+11−0

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

arch/arm/boot/dts/exynos5250.dtsi+110−42

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

arch/arm/boot/dts/exynos5410-odroidxu.dts+9−1

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

arch/arm/boot/dts/exynos5420-peach-pit.dts+4−1

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

arch/arm/boot/dts/exynos5422-odroid-core.dtsi+145−12

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

arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi+6−0

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

arch/arm/boot/dts/exynos5422-odroidxu3.dts+6−0

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

arch/arm/boot/dts/exynos5800-peach-pi.dts+4−1

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

arch/arm/boot/dts/gr-peach-audiocamerashield.dtsi+0−4

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

arch/arm/boot/dts/hip04.dtsi+176−170

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

arch/arm/boot/dts/imx1.dtsi+2−2

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

arch/arm/boot/dts/imx23-evk.dts+1−1

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

arch/arm/boot/dts/imx23-olinuxino.dts+2−2

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

arch/arm/boot/dts/imx23-sansa.dts+2−2

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

arch/arm/boot/dts/imx23-stmp378x_devb.dts+1−1

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

arch/arm/boot/dts/imx23-xfi3.dts+2−2

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

arch/arm/boot/dts/imx23.dtsi+2−2

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

arch/arm/boot/dts/imx25.dtsi+3−3

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

arch/arm/boot/dts/imx27.dtsi+3−3

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

arch/arm/boot/dts/imx28-apf28dev.dts+2−2

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

arch/arm/boot/dts/imx28-apx4devkit.dts+2−2

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

arch/arm/boot/dts/imx28-cfa10036.dts+1−1

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

arch/arm/boot/dts/imx28-duckbill-2-485.dts+2−2

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

arch/arm/boot/dts/imx28-duckbill-2-enocean.dts+2−2

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

arch/arm/boot/dts/imx28-duckbill-2-spi.dts+2−2

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

arch/arm/boot/dts/imx28-duckbill-2.dts+2−2

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

arch/arm/boot/dts/imx28-duckbill.dts+2−2

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

arch/arm/boot/dts/imx28-evk.dts+3−3

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

arch/arm/boot/dts/imx28-m28cu3.dts+2−2

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

arch/arm/boot/dts/imx28-m28evk.dts+2−2

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

arch/arm/boot/dts/imx28-sps1.dts+2−2

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

arch/arm/boot/dts/imx28-ts4600.dts+1−1

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

arch/arm/boot/dts/imx28.dtsi+4−4

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

arch/arm/boot/dts/imx31.dtsi+2−2

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

arch/arm/boot/dts/imx35.dtsi+2−2

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

arch/arm/boot/dts/imx50.dtsi+3−3

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

arch/arm/boot/dts/imx51-babbage.dts+1−0

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

arch/arm/boot/dts/imx51-zii-rdu1.dts+1−1

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

arch/arm/boot/dts/imx51-zii-scu2-mezz.dts+8−0

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

arch/arm/boot/dts/imx51-zii-scu3-esb.dts+4−0

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

arch/arm/boot/dts/imx51.dtsi+4−4

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

arch/arm/boot/dts/imx53-ppd.dts+1−2

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

arch/arm/boot/dts/imx53-qsb-common.dtsi+11−0

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

arch/arm/boot/dts/imx53.dtsi+3−3

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

arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts+1−1

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

arch/arm/boot/dts/imx6dl-icore-mipi.dts+1−1

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

arch/arm/boot/dts/imx6dl-icore-rqs.dts+1−37

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

arch/arm/boot/dts/imx6dl-icore.dts+1−37

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

arch/arm/boot/dts/imx6dl-riotboard.dts+5−0

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

arch/arm/boot/dts/imx6q-apalis-eval.dts+2−0

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

arch/arm/boot/dts/imx6q-apalis-ixora-v1.1.dts+2−0

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

arch/arm/boot/dts/imx6q-apalis-ixora.dts+2−0

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

arch/arm/boot/dts/imx6q-icore-mipi.dts+3−3

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

arch/arm/boot/dts/imx6q-icore-ofcap10.dts+1−37

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

arch/arm/boot/dts/imx6q-icore-ofcap12.dts+1−37

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

arch/arm/boot/dts/imx6q-icore-rqs.dts+2−37

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

arch/arm/boot/dts/imx6q-icore.dts+1−37

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

arch/arm/boot/dts/imx6q.dtsi+1−1

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

arch/arm/boot/dts/imx6qdl-apalis.dtsi+0−4

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

arch/arm/boot/dts/imx6qdl-icore-1.5.dtsi+34−0

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

arch/arm/boot/dts/imx6qdl-icore-rqs.dtsi+3−38

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

arch/arm/boot/dts/imx6qdl-icore.dtsi+3−39

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

arch/arm/boot/dts/imx6qdl-sabreauto.dtsi+67−0

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

arch/arm/boot/dts/imx6qdl-wandboard.dtsi+4−0

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

arch/arm/boot/dts/imx6qdl-zii-rdu2.dtsi+4−0

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

arch/arm/boot/dts/imx6qdl.dtsi+4−4

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

arch/arm/boot/dts/imx6sl.dtsi+4−4

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

arch/arm/boot/dts/imx6sll.dtsi+32−1

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

arch/arm/boot/dts/imx6sx-sdb.dtsi+8−1

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

arch/arm/boot/dts/imx6sx.dtsi+7−7

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

arch/arm/boot/dts/imx6ul-ccimx6ulsbcpro.dts+390−0

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

arch/arm/boot/dts/imx6ul-geam.dts+2−38

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

arch/arm/boot/dts/imx6ul-isiot-emmc.dts+1−60

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

arch/arm/boot/dts/imx6ul-isiot-nand.dts+1−62

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

arch/arm/boot/dts/imx6ul-isiot.dtsi+53−37

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

arch/arm/boot/dts/imx6ul.dtsi+22−6

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

arch/arm/boot/dts/imx6ull-14x14-evk.dts+1−1

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

arch/arm/boot/dts/imx6ull-pinfunc.h+32−7

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

arch/arm/boot/dts/imx6ull.dtsi+1−1

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

arch/arm/boot/dts/imx6ulz-14x14-evk.dts+20−0

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

arch/arm/boot/dts/imx6ulz.dtsi+38−0

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

arch/arm/boot/dts/imx7d-sdb.dts+2−0

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

arch/arm/boot/dts/imx7d.dtsi+13−7

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

arch/arm/boot/dts/imx7s-warp.dts+15−38

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

arch/arm/boot/dts/imx7s.dtsi+74−57

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

arch/arm/boot/dts/imx7ulp-pinfunc.h+15−1

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

arch/arm/boot/dts/iwg20d-q7-common.dtsi+0−4

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

arch/arm/boot/dts/keystone-k2g.dtsi+1−1

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

arch/arm/boot/dts/lpc32xx.dtsi+2−2

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

arch/arm/boot/dts/ls1021a-qds.dts+2−0

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

arch/arm/boot/dts/ls1021a-twr.dts+2−0

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

arch/arm/boot/dts/ls1021a.dtsi+9−3

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

arch/arm/boot/dts/meson8.dtsi+1−1

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

arch/arm/boot/dts/meson8b-ec100.dts+248−0

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

arch/arm/boot/dts/meson8b-odroidc1.dts+109−0

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

arch/arm/boot/dts/meson8b.dtsi+46−1

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

arch/arm/boot/dts/mt7623.dtsi+124−0

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

arch/arm/boot/dts/omap2.dtsi+2−2

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

arch/arm/boot/dts/omap2430.dtsi+1−1

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

arch/arm/boot/dts/omap3-beagle-xm.dts+10−7

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

arch/arm/boot/dts/omap3-beagle.dts+10−7

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

arch/arm/boot/dts/omap3-gta04.dtsi+234−28

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

arch/arm/boot/dts/omap3-gta04a3.dts+1−1

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

arch/arm/boot/dts/omap3-gta04a4.dts+1−1

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

arch/arm/boot/dts/omap3-gta04a5.dts+126−3

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

arch/arm/boot/dts/omap3-gta04a5one.dts+114−0

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

arch/arm/boot/dts/omap3-n9.dts+1−1

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

arch/arm/boot/dts/omap5-board-common.dtsi+4−0

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

arch/arm/boot/dts/orion5x-linkstation.dtsi+1−1

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

arch/arm/boot/dts/owl-s500-cubieboard6.dts+1−2

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

arch/arm/boot/dts/owl-s500-guitar-bb-rev-b.dts+1−2

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

arch/arm/boot/dts/owl-s500-guitar.dtsi+1−2

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

arch/arm/boot/dts/owl-s500.dtsi+1−2

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

arch/arm/boot/dts/pxa25x.dtsi+4−0

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

arch/arm/boot/dts/pxa27x.dtsi+5−1

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

arch/arm/boot/dts/pxa2xx.dtsi+23−4

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

arch/arm/boot/dts/qcom-apq8064.dtsi+40−31

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

arch/arm/boot/dts/qcom-ipq4019.dtsi+75−68

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

arch/arm/boot/dts/qcom-ipq8064-ap148.dts+7−76

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

arch/arm/boot/dts/qcom-ipq8064-v1.0.dtsi+125−0

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

arch/arm/boot/dts/qcom-ipq8064.dtsi+286−0

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

arch/arm/boot/dts/qcom-msm8974-lge-nexus5-hammerhead.dts+83−0

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

arch/arm/boot/dts/qcom-msm8974.dtsi+115−83

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

arch/arm/boot/dts/r8a7743-iwg20d-q7-dbcm-ca.dts+4−0

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

arch/arm/boot/dts/r8a7743-iwg20d-q7.dts+4−0

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

arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts+12−0

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

arch/arm/boot/dts/r8a77470.dtsi+155−13

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

arch/arm/boot/dts/r8a7778-bockw.dts+1−1

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

arch/arm/boot/dts/r8a7778.dtsi+1−1

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

arch/arm/boot/dts/r8a7779-marzen.dts+1−1

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

arch/arm/boot/dts/r8a7779.dtsi+2−2

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

arch/arm/boot/dts/r8a7790-stout.dts+4−0

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

arch/arm/boot/dts/r8a7790.dtsi+3−3

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

arch/arm/boot/dts/r8a7791.dtsi+3−3

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

arch/arm/boot/dts/r8a7792.dtsi+1−2

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

arch/arm/boot/dts/r8a7793-gose.dts+16−0

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

arch/arm/boot/dts/r8a7793.dtsi+1−1

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

arch/arm/boot/dts/r8a7794-silk.dts+25−0

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

arch/arm/boot/dts/r8a7794.dtsi+1−2

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

arch/arm/boot/dts/r9a06g032.dtsi+83−5

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

arch/arm/boot/dts/rk3036.dtsi+1−1

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

arch/arm/boot/dts/rk3188-radxarock.dts+8−0

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

arch/arm/boot/dts/rk3188.dtsi+82−0

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

arch/arm/boot/dts/rk3288-tinker-s.dts+26−0

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

arch/arm/boot/dts/rk3288-tinker.dts+2−496

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

arch/arm/boot/dts/rk3288-tinker.dtsi+502−0

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

arch/arm/boot/dts/s5pv210.dtsi+1−1

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

arch/arm/boot/dts/sama5d2.dtsi+78−45

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

arch/arm/boot/dts/sama5d4.dtsi+4−4

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

arch/arm/boot/dts/socfpga.dtsi+18−4

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

arch/arm/boot/dts/socfpga_arria10.dtsi+28−4

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

arch/arm/boot/dts/socfpga_cyclone5_de0_nano_soc.dtsrenamed from arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dts+1−1

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

arch/arm/boot/dts/socfpga_cyclone5_socrates.dts+6−1

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

arch/arm/boot/dts/socfpga_cyclone5_vining_fpga.dts+2−1

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

arch/arm/boot/dts/ste-dbx5x0.dtsi+43−37

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

arch/arm/boot/dts/ste-href-family-pinctrl.dtsi+6−2

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

arch/arm/boot/dts/ste-href.dtsi+1−0

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

arch/arm/boot/dts/ste-hrefprev60.dtsi+1−1

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

arch/arm/boot/dts/ste-snowball.dts+2−1

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

arch/arm/boot/dts/ste-u300.dts+1−1

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

arch/arm/boot/dts/stih410-b2260.dts+4−1

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

arch/arm/boot/dts/stihxxx-b2120.dtsi+8−3

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

arch/arm/boot/dts/stm32429i-eval.dts+1−2

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

arch/arm/boot/dts/stm32f429.dtsi+1−1

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

arch/arm/boot/dts/stm32f469-disco.dts+1−2

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

arch/arm/boot/dts/stm32f746-disco.dts+1−2

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

arch/arm/boot/dts/stm32f769-disco.dts+1−2

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

arch/arm/boot/dts/stm32h743.dtsi+1−1

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

arch/arm/boot/dts/stm32mp157c-ev1.dts+67−6

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

arch/arm/boot/dts/stm32mp157c.dtsi+4−4

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

arch/arm/boot/dts/sun5i-reference-design-tablet.dtsi+2−1

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

arch/arm/boot/dts/sun5i.dtsi+26−0

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

arch/arm/boot/dts/sun7i-a20.dtsi+26−0

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

arch/arm/boot/dts/sun8i-a33.dtsi+26−0

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

arch/arm/boot/dts/sun8i-a83t-bananapi-m3.dts+5−0

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

arch/arm/boot/dts/sun8i-a83t.dtsi+18−0

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

arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus-v1.2.dts+13−0

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

arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts+2−188

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

arch/arm/boot/dts/sun8i-h3-orangepi-zero-plus2.dts+140−0

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

arch/arm/boot/dts/sun8i-h3.dtsi+25−0

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

arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts+19−2

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

arch/arm/boot/dts/sun8i-r40.dtsi+14−2

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

arch/arm/boot/dts/sun8i-reference-design-tablet.dtsi+2−1

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

arch/arm/boot/dts/sun8i-v40-bananapi-m2-berry.dts+1−1

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

arch/arm/boot/dts/sun9i-a80.dtsi+1−1

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

arch/arm/boot/dts/sunxi-bananapi-m2-plus-v1.2.dtsi+31−0

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

arch/arm/boot/dts/sunxi-bananapi-m2-plus.dtsi+231−0

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

arch/arm/boot/dts/sunxi-h3-h5.dtsi+1−1

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

arch/arm/boot/dts/tegra124-apalis-eval.dts+23−17

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

arch/arm/boot/dts/tegra124-apalis-v1.2-eval.dts+25−18

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

arch/arm/boot/dts/tegra124-apalis-v1.2.dtsi+229−223

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

arch/arm/boot/dts/tegra124-apalis.dtsi+229−222

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

arch/arm/boot/dts/tegra20-colibri-eval-v3.dts+262−0

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

arch/arm/boot/dts/tegra20-colibri-iris.dts+169−31

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

arch/arm/boot/dts/tegra20-colibri.dtsi+432−225

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

arch/arm/boot/dts/tegra20-paz00.dts+6−6

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

arch/arm/boot/dts/tegra20.dtsi+15−13

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

arch/arm/boot/dts/tegra30-apalis-eval.dts+61−87

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

arch/arm/boot/dts/tegra30-apalis-v1.1-eval.dts+266−0

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

arch/arm/boot/dts/tegra30-apalis-v1.1.dtsi+1189−0

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

arch/arm/boot/dts/tegra30-apalis.dtsi+544−161

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

arch/arm/boot/dts/tegra30-colibri-eval-v3.dts+57−73

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

arch/arm/boot/dts/tegra30-colibri.dtsi+649−131

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

arch/arm/boot/dts/tegra30.dtsi+7−3

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

arch/arm/boot/dts/uniphier-ld4-ref.dts+4−0

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

arch/arm/boot/dts/uniphier-ld4.dtsi+47−1

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

arch/arm/boot/dts/uniphier-ld6b-ref.dts+12−0

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

arch/arm/boot/dts/uniphier-pinctrl.dtsi+25−0

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

arch/arm/boot/dts/uniphier-pro4-ace.dts+12−0

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

arch/arm/boot/dts/uniphier-pro4-ref.dts+12−0

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

arch/arm/boot/dts/uniphier-pro4-sanji.dts+12−0

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

arch/arm/boot/dts/uniphier-pro4.dtsi+188−1

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

arch/arm/boot/dts/uniphier-pro5.dtsi+58−1

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

arch/arm/boot/dts/uniphier-pxs2-gentil.dts+12−0

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

arch/arm/boot/dts/uniphier-pxs2-vodka.dts+8−0

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

arch/arm/boot/dts/uniphier-pxs2.dtsi+238−1

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

arch/arm/boot/dts/uniphier-sld8-ref.dts+4−0

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

arch/arm/boot/dts/uniphier-sld8.dtsi+47−1

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

arch/arm/boot/dts/versatile-ab.dts+1−1

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

arch/arm/boot/dts/vf500.dtsi+3−40

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

arch/arm/boot/dts/vf610-twr.dts+3−40

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

arch/arm/boot/dts/vf610-zii-cfu1.dts+30−0

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

arch/arm/boot/dts/vf610-zii-dev-rev-c.dts+25−19

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

arch/arm/boot/dts/vf610.dtsi+4−40

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

arch/arm/boot/dts/vf610m4-colibri.dts+2−2

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

arch/arm/boot/dts/vfxxx.dtsi+9−46

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

arch/arm/boot/dts/zynq-zc702.dts+6−6

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

arch/arm/boot/dts/zynq-zc770-xm010.dts+1−1

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

arch/arm/boot/dts/zynq-zc770-xm013.dts+1−1

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

arch/arm/common/Kconfig+3−0

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

arch/arm/common/Makefile+1−0

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

arch/arm/common/krait-l2-accessors.c+48−0

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

arch/arm/configs/bcm2835_defconfig+1−1

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

arch/arm/configs/imx_v4_v5_defconfig+8−10

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

arch/arm/configs/imx_v6_v7_defconfig+23−18

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

arch/arm/configs/multi_v7_defconfig+13−0

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

arch/arm/configs/mxs_defconfig+8−11

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

arch/arm/configs/qcom_defconfig+1−0

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

arch/arm/configs/sama5_defconfig+2−0

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

arch/arm/configs/shmobile_defconfig+3−5

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

arch/arm/crypto/Kconfig+1−6

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

arch/arm/crypto/Makefile+0−2

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

arch/arm/crypto/chacha20-neon-core.S+143−134

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

arch/arm/crypto/crc32-ce-glue.c+1−1

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

arch/arm/crypto/ghash-ce-core.S+103−5

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

arch/arm/crypto/ghash-ce-glue.c+27−11

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

arch/arm/crypto/speck-neon-core.S+0−434

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

arch/arm/crypto/speck-neon-glue.c+0−288

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

arch/arm/include/asm/assembler.h+11−0

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

arch/arm/include/asm/bug.h+2−2

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

arch/arm/include/asm/cputype.h+1−0

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

arch/arm/include/asm/dma-mapping.h+2−0

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

arch/arm/include/asm/ftrace.h+0−3

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

arch/arm/include/asm/hugetlb-3level.h+1−31

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

arch/arm/include/asm/hugetlb.h+1−32

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

arch/arm/include/asm/io.h+0−15

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

arch/arm/include/asm/krait-l2-accessors.h+9−0

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

arch/arm/include/asm/kvm_arm.h+2−2

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

arch/arm/include/asm/kvm_host.h+12−1

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

arch/arm/include/asm/kvm_mmu.h+15−5

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

arch/arm/include/asm/paravirt.h+7−2

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

arch/arm/include/asm/pgtable-2level.h+1−1

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

arch/arm/include/asm/proc-fns.h+49−12

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

arch/arm/include/asm/processor.h+0−6

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

arch/arm/include/asm/stage2_pgtable.h+32−22

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

arch/arm/include/asm/thread_info.h+2−2

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

arch/arm/include/asm/topology.h+3−0

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

arch/arm/include/asm/uaccess.h+43−6

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

arch/arm/include/asm/unistd.h+2−2

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

arch/arm/kernel/armksyms.c+0−3

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

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

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

arch/arm/kernel/devtree.c+1−5

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

arch/arm/kernel/entry-common.S+4−5

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

arch/arm/kernel/entry-ftrace.S+4−71

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

arch/arm/kernel/ftrace.c+0−51

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

arch/arm/kernel/head-common.S+3−3

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

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

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

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

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

arch/arm/kernel/setup.c+27−18

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

arch/arm/kernel/signal.c+44−36

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

arch/arm/kernel/smp.c+31−0

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

arch/arm/kernel/swp_emulate.c+7−9

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

arch/arm/kernel/sys_oabi-compat.c+6−2

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

arch/arm/kernel/topology.c+0−6

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

arch/arm/kernel/traps.c+17−46

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

arch/arm/kernel/vmlinux-xip.lds.S+0−1

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

arch/arm/kernel/vmlinux.lds.h+2−0

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

arch/arm/kvm/coproc.c+4−4

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

arch/arm/lib/copy_from_user.S+1−5

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

arch/arm/lib/copy_to_user.S+5−1

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

arch/arm/lib/uaccess_with_memcpy.c+2−1

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

arch/arm/mach-at91/pm.c+3−6

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

arch/arm/mach-at91/pm_suspend.S+8−0

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

arch/arm/mach-davinci/board-neuros-osd2.c+4−4

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

arch/arm/mach-davinci/include/mach/clock.h+0−21

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

arch/arm/mach-ep93xx/core.c+9−0

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

arch/arm/mach-ep93xx/snappercl15.c+6−9

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

arch/arm/mach-ep93xx/ts72xx.c+6−10

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

arch/arm/mach-exynos/common.h+1−0

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

arch/arm/mach-exynos/firmware.c+11−3

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

arch/arm/mach-exynos/suspend.c+24−10

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

arch/arm/mach-imx/anatop.c+20−0

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

arch/arm/mach-imx/cpu.c+3−0

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

arch/arm/mach-imx/mach-mx21ads.c+11−1

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

arch/arm/mach-imx/mach-mx27ads.c+11−1

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

arch/arm/mach-imx/mach-qong.c+8−9

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

arch/arm/mach-imx/mmdc.c+14−0

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

arch/arm/mach-imx/mxc.h+7−0

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

arch/arm/mach-imx/pm-imx6.c+27−2

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

arch/arm/mach-integrator/integrator_cp.c+0−2

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

arch/arm/mach-ixp4xx/ixdp425-setup.c+3−3

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

arch/arm/mach-mmp/brownstone.c+11−1

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

arch/arm/mach-mmp/devices.c+1−10

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

arch/arm/mach-mvebu/board-v7.c+8−6

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

arch/arm/mach-omap1/ams-delta-fiq-handler.S+3−9

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

arch/arm/mach-omap1/board-ams-delta.c+96−75

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

arch/arm/mach-omap1/board-fsample.c+2−3

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

arch/arm/mach-omap1/board-h2.c+2−3

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

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

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

arch/arm/mach-omap1/board-nand.c+2−3

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

arch/arm/mach-omap1/board-perseus2.c+2−3

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

arch/arm/mach-omap1/common.h+2−2

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

arch/arm/mach-omap1/include/mach/board-ams-delta.h+0−7

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

arch/arm/mach-omap2/display.c+53−58

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

arch/arm/mach-omap2/hsmmc.h+0−2

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

arch/arm/mach-omap2/omap_hwmod.c+55−39

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

arch/arm/mach-omap2/pdata-quirks.c+15−3

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

arch/arm/mach-omap2/pm24xx.c+3−4

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

arch/arm/mach-omap2/pm34xx.c+5−9

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

arch/arm/mach-orion5x/ts78xx-setup.c+11−16

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

arch/arm/mach-pxa/balloon3.c+6−7

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

arch/arm/mach-pxa/em-x270.c+6−9

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

arch/arm/mach-pxa/ezx.c+22−11

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

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

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

arch/arm/mach-pxa/palmtreo.c+0−31

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

arch/arm/mach-pxa/palmtx.c+4−6

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

arch/arm/mach-pxa/raumfeld.c+10−2

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

arch/arm/mach-pxa/zeus.c+21−2

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

arch/arm/mach-s3c24xx/mach-gta02.c+0−42

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

arch/arm/mach-s3c24xx/mach-mini2440.c+60−53

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

arch/arm/mach-s3c64xx/mach-crag6410.c+0−1

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

arch/arm/mach-s3c64xx/mach-smdk6410.c+0−1

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

arch/arm/mach-sa1100/assabet.c+14−7

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

arch/arm/mach-sa1100/generic.c+3−2

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

arch/arm/mach-sa1100/generic.h+2−1

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

arch/arm/mach-sa1100/shannon.c+2−2

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

arch/arm/mach-shmobile/Kconfig+12−4

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

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

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

arch/arm/mach-shmobile/headsmp-scu.S+2−11

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

arch/arm/mach-shmobile/headsmp.S+2−5

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

arch/arm/mach-shmobile/platsmp-scu.c+1−4

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

arch/arm/mach-shmobile/platsmp.c+1−4

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

arch/arm/mach-shmobile/pm-rcar-gen2.c+3−10

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

arch/arm/mach-shmobile/pm-rmobile.c+3−6

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

arch/arm/mach-shmobile/pm-rmobile.h+2−5

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

arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c+110−29

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

arch/arm/mach-shmobile/setup-r7s9210.c+27−0

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

arch/arm/mach-shmobile/setup-r8a7779.c+0−2

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

arch/arm/mach-shmobile/setup-rcar-gen2.c+2−0

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

arch/arm/mach-shmobile/smp-sh73a0.c+1−9

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

arch/arm/mach-shmobile/suspend.c+1−4

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

arch/arm/mach-shmobile/timer.c+3−17

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

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

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

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

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

arch/arm/mach-u300/dummyspichip.c+0−276

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

arch/arm/mach-versatile/versatile_dt.c+0−4

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

arch/arm/mach-zynq/slcr.c+1−1

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

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

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

arch/arm/mm/dma-mapping-nommu.c+4−7

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

arch/arm/mm/dma-mapping.c+0−1

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

arch/arm/mm/fault.c+5−23

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

arch/arm/mm/init.c+1−2

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

arch/arm/mm/ioremap.c+1−1

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

arch/arm/mm/mmu.c+1−1

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

arch/arm/mm/proc-v7-bugs.c+2−15

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

arch/arm/mm/proc-v7.S+1−1

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

arch/arm/plat-orion/mpp.c+6−1

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

arch/arm/plat-samsung/Kconfig+1−1

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

arch/arm/tools/syscall.tbl+1−0

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

arch/arm/vfp/vfpmodule.c+11−20

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

arch/arm/xen/enlighten.c+0−34

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

arch/arm/xen/mm.c+0−1

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

arch/arm/xen/p2m.c+1−1

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

arch/arm64/Kconfig+35−6

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

arch/arm64/Kconfig.platforms+38−24

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

arch/arm64/Makefile+3−16

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

arch/arm64/boot/dts/actions/Makefile+2−0

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

arch/arm64/boot/dts/actions/s700-cubieboard7.dts+0−7

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

arch/arm64/boot/dts/actions/s700.dtsi+21−0

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

arch/arm64/boot/dts/actions/s900-bubblegum-96.dts+217−7

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

arch/arm64/boot/dts/actions/s900.dtsi+116−2

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

arch/arm64/boot/dts/allwinner/Makefile+4−0

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

arch/arm64/boot/dts/allwinner/sun50i-a64-amarula-relic.dts+1−1

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

arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts+28−2

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

arch/arm64/boot/dts/allwinner/sun50i-a64-nanopi-a64.dts+81−4

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

arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts+96−3

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

arch/arm64/boot/dts/allwinner/sun50i-a64-orangepi-win.dts+169−6

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

arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-lts.dts+13−0

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

arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts+27−1

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

arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts+4−5

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

arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts+27−1

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

arch/arm64/boot/dts/allwinner/sun50i-a64-teres-i.dts+1−1

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

arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi+190−3

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

arch/arm64/boot/dts/allwinner/sun50i-h5-bananapi-m2-plus-v1.2.dts+11−0

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

arch/arm64/boot/dts/allwinner/sun50i-h5-bananapi-m2-plus.dts+11−0

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

arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi+43−0

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

arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dts+150−0

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

arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi+23−0

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

arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi+46−2

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

arch/arm64/boot/dts/altera/socfpga_stratix10_socdk.dts+6−1

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

arch/arm64/boot/dts/amd/amd-seattle-soc.dtsi+2−2

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

arch/arm64/boot/dts/amlogic/Makefile+1−0

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

arch/arm64/boot/dts/amlogic/meson-axg-s400.dts+294−76

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

arch/arm64/boot/dts/amlogic/meson-axg.dtsi+847−768

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

arch/arm64/boot/dts/amlogic/meson-g12a-u200.dts+29−0

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

arch/arm64/boot/dts/amlogic/meson-g12a.dtsi+172−0

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

arch/arm64/boot/dts/amlogic/meson-gx.dtsi+16−3

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

arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi+1−1

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

arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts+1−1

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

arch/arm64/boot/dts/amlogic/meson-gxl.dtsi+1−1

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

arch/arm64/boot/dts/arm/juno-base.dtsi+83−79

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

arch/arm64/boot/dts/arm/juno-cs-r1r2.dtsi+18−34

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

arch/arm64/boot/dts/arm/juno.dts+5−8

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

arch/arm64/boot/dts/broadcom/Makefile+2−1

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

arch/arm64/boot/dts/broadcom/bcm2837-rpi-cm3-io3.dts+2−0

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

arch/arm64/boot/dts/broadcom/northstar2/ns2.dtsi+2−2

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

arch/arm64/boot/dts/broadcom/stingray/bcm958742-base.dtsi+1−1

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

arch/arm64/boot/dts/broadcom/stingray/stingray.dtsi+2−2

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

arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi+15−3

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

arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi+1−1

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

arch/arm64/boot/dts/freescale/fsl-ls1043a-qds.dts+2−0

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

arch/arm64/boot/dts/freescale/fsl-ls1043a-rdb.dts+2−0

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

arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi+4−4

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

arch/arm64/boot/dts/freescale/fsl-ls1046a-qds.dts+2−0

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

arch/arm64/boot/dts/freescale/fsl-ls1046a-rdb.dts+2−2

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

arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi+3−3

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

arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi+24−3

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

arch/arm64/boot/dts/hisilicon/Makefile+1−0

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

arch/arm64/boot/dts/hisilicon/hi3670-hikey970.dts+35−0

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

arch/arm64/boot/dts/hisilicon/hi3670.dtsi+162−0

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

arch/arm64/boot/dts/hisilicon/hi6220-coresight.dtsi+86−95

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

arch/arm64/boot/dts/hisilicon/hi6220.dtsi+7−0

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

arch/arm64/boot/dts/lg/lg1312.dtsi+2−2

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

arch/arm64/boot/dts/lg/lg1313.dtsi+2−2

This diff is large: its 17 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-372x.dtsi+1−1

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

arch/arm64/boot/dts/marvell/armada-37xx.dtsi+14−1

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

arch/arm64/boot/dts/marvell/armada-8040-clearfog-gt-8k.dts+441−0

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

arch/arm64/boot/dts/marvell/armada-ap806-dual.dtsi+2−2

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

arch/arm64/boot/dts/marvell/armada-ap806-quad.dtsi+8−4

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

arch/arm64/boot/dts/marvell/armada-ap806.dtsi+106−4

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

arch/arm64/boot/dts/marvell/armada-ap810-ap0-octa-core.dtsi+8−8

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

arch/arm64/boot/dts/marvell/armada-common.dtsi+1−0

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

arch/arm64/boot/dts/marvell/armada-cp110.dtsi+122−67

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

arch/arm64/boot/dts/mediatek/Makefile+1−0

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

arch/arm64/boot/dts/mediatek/mt2712e.dtsi+11−0

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

arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts+530−0

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

arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts+98−98

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

arch/arm64/boot/dts/mediatek/mt7622.dtsi+62−0

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

arch/arm64/boot/dts/nvidia/tegra186.dtsi+76−0

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

arch/arm64/boot/dts/nvidia/tegra194.dtsi+8−8

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

arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi+2−10

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

arch/arm64/boot/dts/nvidia/tegra210-p2597.dtsi+0−1

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

arch/arm64/boot/dts/nvidia/tegra210.dtsi+57−0

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

arch/arm64/boot/dts/qcom/Makefile+1−0

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

arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi+14−0

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

arch/arm64/boot/dts/qcom/apq8096-db820c.dts+1−1

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

arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi+14−0

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

arch/arm64/boot/dts/qcom/msm8916.dtsi+51−47

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

arch/arm64/boot/dts/qcom/msm8996.dtsi+4−11

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

arch/arm64/boot/dts/qcom/msm8998-mtp.dts+13−0

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

arch/arm64/boot/dts/qcom/msm8998-mtp.dtsi+243−0

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

arch/arm64/boot/dts/qcom/msm8998.dtsi+690−0

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

arch/arm64/boot/dts/qcom/pm8916.dtsi+13−5

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

arch/arm64/boot/dts/qcom/pm8994.dtsi+18−0

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

arch/arm64/boot/dts/qcom/pm8998.dtsi+74−1

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

arch/arm64/boot/dts/qcom/pmi8998.dtsi+40−0

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

arch/arm64/boot/dts/qcom/sdm845-mtp.dts+382−0

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

arch/arm64/boot/dts/qcom/sdm845.dtsi+300−0

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

arch/arm64/boot/dts/renesas/Makefile+2−0

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

arch/arm64/boot/dts/renesas/r8a774a1.dtsi+1663−0

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

arch/arm64/boot/dts/renesas/r8a7795-es1-salvator-x.dts+1−2

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

arch/arm64/boot/dts/renesas/r8a7795-es1.dtsi+9−9

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

arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts+1−2

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

arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts+1−2

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

arch/arm64/boot/dts/renesas/r8a7795-salvator-xs.dts+15−2

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

arch/arm64/boot/dts/renesas/r8a7795.dtsi+81−58

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

arch/arm64/boot/dts/renesas/r8a7796-m3ulcb.dts+1−2

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

arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts+1−2

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

arch/arm64/boot/dts/renesas/r8a7796.dtsi+63−40

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

arch/arm64/boot/dts/renesas/r8a77965-m3nulcb-kf.dts+16−0

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

arch/arm64/boot/dts/renesas/r8a77965-m3nulcb.dts+33−0

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

arch/arm64/boot/dts/renesas/r8a77965-salvator-xs.dts+14−0

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

arch/arm64/boot/dts/renesas/r8a77965.dtsi+369−48

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

arch/arm64/boot/dts/renesas/r8a77970-v3msk.dts+26−0

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

arch/arm64/boot/dts/renesas/r8a77970.dtsi+104−12

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

arch/arm64/boot/dts/renesas/r8a77980-condor.dts+143−19

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

arch/arm64/boot/dts/renesas/r8a77980-v3hsk.dts+134−0

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

arch/arm64/boot/dts/renesas/r8a77980.dtsi+608−69

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

arch/arm64/boot/dts/renesas/r8a77990-ebisu.dts+272−0

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

arch/arm64/boot/dts/renesas/r8a77990.dtsi+654−27

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

arch/arm64/boot/dts/renesas/r8a77995-draak.dts+229−133

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

arch/arm64/boot/dts/renesas/r8a77995.dtsi+75−7

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

arch/arm64/boot/dts/renesas/salvator-common.dtsi+8−1

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

arch/arm64/boot/dts/renesas/ulcb-kf.dtsi+1−1

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

arch/arm64/boot/dts/renesas/ulcb.dtsi+4−0

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

arch/arm64/boot/dts/rockchip/Makefile+4−0

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

arch/arm64/boot/dts/rockchip/px30-evb.dts+235−0

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

arch/arm64/boot/dts/rockchip/px30.dtsi+2047−0

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

arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts+30−0

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

arch/arm64/boot/dts/rockchip/rk3328-rock64.dts+59−2

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

arch/arm64/boot/dts/rockchip/rk3328.dtsi+73−1

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

arch/arm64/boot/dts/rockchip/rk3399-ficus.dts+5−519

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

arch/arm64/boot/dts/rockchip/rk3399-firefly.dts+36−0

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

arch/arm64/boot/dts/rockchip/rk3399-puma-haikou.dts+1−1

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

arch/arm64/boot/dts/rockchip/rk3399-roc-pc.dts+680−0

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

arch/arm64/boot/dts/rockchip/rk3399-rock960.dts+52−0

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

arch/arm64/boot/dts/rockchip/rk3399-rock960.dtsi+542−0

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

arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts+692−0

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

arch/arm64/boot/dts/rockchip/rk3399-sapphire.dtsi+50−18

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

arch/arm64/boot/dts/rockchip/rk3399.dtsi+32−0

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

arch/arm64/boot/dts/socionext/uniphier-ld11.dtsi+51−1

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

arch/arm64/boot/dts/socionext/uniphier-ld20-global.dts+4−0

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

arch/arm64/boot/dts/socionext/uniphier-ld20-ref.dts+4−0

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

arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi+254−1

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

arch/arm64/boot/dts/socionext/uniphier-pxs3-ref.dts+12−0

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

arch/arm64/boot/dts/socionext/uniphier-pxs3.dtsi+282−1

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

arch/arm64/boot/dts/synaptics/as370.dtsi+173−0

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

arch/arm64/boot/dts/ti/k3-am65-main.dtsi+46−5

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

arch/arm64/boot/dts/ti/k3-am65-mcu.dtsi+18−0

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

arch/arm64/boot/dts/ti/k3-am65-wakeup.dtsi+46−0

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

arch/arm64/boot/dts/ti/k3-am65.dtsi+32−22

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

arch/arm64/boot/dts/ti/k3-am654-base-board.dts+5−0

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

arch/arm64/configs/defconfig+24−1

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

arch/arm64/crypto/Kconfig+0−11

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

arch/arm64/crypto/Makefile+0−6

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

arch/arm64/crypto/aes-ce.S+5−0

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

arch/arm64/crypto/aes-glue.c+193−24

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

arch/arm64/crypto/aes-modes.S+216−200

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

arch/arm64/crypto/aes-neon.S+6−0

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

arch/arm64/crypto/crc32-ce-core.S+0−287

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

arch/arm64/crypto/crc32-ce-glue.c+0−244

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

arch/arm64/crypto/crct10dif-ce-core.S+239−75

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

arch/arm64/crypto/crct10dif-ce-glue.c+12−2

This diff is large: its 36 lines aren’t shown here.

arch/arm64/crypto/speck-neon-core.S+0−352

This diff is large: its 353 lines aren’t shown here.

arch/arm64/crypto/speck-neon-glue.c+0−282

This diff is large: its 283 lines aren’t shown here.

arch/arm64/include/asm/assembler.h+3−4

This diff is large: its 16 lines aren’t shown here.

arch/arm64/include/asm/cache.h+40−0

This diff is large: its 54 lines aren’t shown here.

arch/arm64/include/asm/compat.h+6−21

This diff is large: its 71 lines aren’t shown here.

arch/arm64/include/asm/compiler.h+0−30

This diff is large: its 31 lines aren’t shown here.

arch/arm64/include/asm/cpucaps.h+5−2

This diff is large: its 21 lines aren’t shown here.

arch/arm64/include/asm/cpufeature.h+29−1

This diff is large: its 51 lines aren’t shown here.

arch/arm64/include/asm/cputype.h+2−0

This diff is large: its 16 lines aren’t shown here.

arch/arm64/include/asm/daifflags.h+5−10

This diff is large: its 29 lines aren’t shown here.

arch/arm64/include/asm/device.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm64/include/asm/dma-mapping.h+5−2

This diff is large: its 16 lines aren’t shown here.

arch/arm64/include/asm/esr.h+77−0

This diff is large: its 112 lines aren’t shown here.

arch/arm64/include/asm/hugetlb.h+7−32

This diff is large: its 77 lines aren’t shown here.

arch/arm64/include/asm/io.h+0−9

This diff is large: its 22 lines aren’t shown here.

arch/arm64/include/asm/jump_label.h+18−20

This diff is large: its 60 lines aren’t shown here.

arch/arm64/include/asm/kernel-pgtable.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm64/include/asm/kvm_arm.h+126−30

This diff is large: its 203 lines aren’t shown here.

arch/arm64/include/asm/kvm_asm.h+1−2

This diff is large: its 17 lines aren’t shown here.

arch/arm64/include/asm/kvm_emulate.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm64/include/asm/kvm_host.h+20−9

This diff is large: its 77 lines aren’t shown here.

arch/arm64/include/asm/kvm_hyp.h+10−0

This diff is large: its 16 lines aren’t shown here.

arch/arm64/include/asm/kvm_mmu.h+39−8

This diff is large: its 67 lines aren’t shown here.

arch/arm64/include/asm/mmu.h+3−0

This diff is large: its 9 lines aren’t shown here.

arch/arm64/include/asm/mmu_context.h+15−2

This diff is large: its 28 lines aren’t shown here.

arch/arm64/include/asm/page.h+0−2

This diff is large: its 10 lines aren’t shown here.

arch/arm64/include/asm/paravirt.h+7−2

This diff is large: its 19 lines aren’t shown here.

arch/arm64/include/asm/percpu.h+3−0

This diff is large: its 24 lines aren’t shown here.

arch/arm64/include/asm/pgtable-hwdef.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/arm64/include/asm/pgtable.h+41−7

This diff is large: its 90 lines aren’t shown here.

arch/arm64/include/asm/processor.h+13−9

This diff is large: its 53 lines aren’t shown here.

arch/arm64/include/asm/ptrace.h+4−0

This diff is large: its 18 lines aren’t shown here.

arch/arm64/include/asm/stage2_pgtable-nopmd.h+0−42

This diff is large: its 43 lines aren’t shown here.

arch/arm64/include/asm/stage2_pgtable-nopud.h+0−39

This diff is large: its 40 lines aren’t shown here.

arch/arm64/include/asm/stage2_pgtable.h+170−66

This diff is large: its 292 lines aren’t shown here.

arch/arm64/include/asm/stat.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm64/include/asm/string.h+8−6

This diff is large: its 39 lines aren’t shown here.

arch/arm64/include/asm/sysreg.h+32−12

This diff is large: its 105 lines aren’t shown here.

arch/arm64/include/asm/system_misc.h+2−1

This diff is large: its 10 lines aren’t shown here.

arch/arm64/include/asm/tlb.h+13−21

This diff is large: its 76 lines aren’t shown here.

arch/arm64/include/asm/tlbflush.h+70−42

This diff is large: its 184 lines aren’t shown here.

arch/arm64/include/asm/topology.h+3−0

This diff is large: its 10 lines aren’t shown here.

arch/arm64/include/asm/traps.h+3−2

This diff is large: its 12 lines aren’t shown here.

arch/arm64/include/asm/uaccess.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm64/include/asm/unistd.h+1−1

This diff is large: its 13 lines aren’t shown here.

arch/arm64/include/asm/xen/events.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm64/include/uapi/asm/Kbuild+1−0

This diff is large: its 5 lines aren’t shown here.

arch/arm64/include/uapi/asm/hwcap.h+1−0

This diff is large: its 7 lines aren’t shown here.

arch/arm64/include/uapi/asm/ptrace.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm64/include/uapi/asm/siginfo.h+0−24

This diff is large: its 25 lines aren’t shown here.

arch/arm64/include/uapi/asm/unistd.h+1−0

This diff is large: its 7 lines aren’t shown here.

arch/arm64/kernel/acpi.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm64/kernel/acpi_numa.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm64/kernel/arm64ksyms.c+5−2

This diff is large: its 26 lines aren’t shown here.

arch/arm64/kernel/cpu_errata.c+78−18

This diff is large: its 170 lines aren’t shown here.

arch/arm64/kernel/cpufeature.c+173−22

This diff is large: its 299 lines aren’t shown here.

arch/arm64/kernel/cpuinfo.c+10−1

This diff is large: its 25 lines aren’t shown here.

arch/arm64/kernel/crash_dump.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm64/kernel/debug-monitors.c+3−8

This diff is large: its 25 lines aren’t shown here.

arch/arm64/kernel/entry.S+15−3

This diff is large: its 47 lines aren’t shown here.

arch/arm64/kernel/fpsimd.c+3−7

This diff is large: its 24 lines aren’t shown here.

arch/arm64/kernel/head.S+22−18

This diff is large: its 97 lines aren’t shown here.

arch/arm64/kernel/jump_label.c+3−3

This diff is large: its 16 lines aren’t shown here.

arch/arm64/kernel/paravirt.c+2−2

This diff is large: its 8 lines aren’t shown here.

arch/arm64/kernel/pci.c+2−3

This diff is large: its 19 lines aren’t shown here.

arch/arm64/kernel/perf_event.c+7−0

This diff is large: its 21 lines aren’t shown here.

arch/arm64/kernel/probes/kprobes.c+21−8

This diff is large: its 64 lines aren’t shown here.

arch/arm64/kernel/process.c+4−22

This diff is large: its 37 lines aren’t shown here.

arch/arm64/kernel/psci.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm64/kernel/ptrace.c+7−9

This diff is large: its 32 lines aren’t shown here.

arch/arm64/kernel/setup.c+29−34

This diff is large: its 115 lines aren’t shown here.

arch/arm64/kernel/sleep.S+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm64/kernel/smp.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm64/kernel/ssbd.c+21−3

This diff is large: its 64 lines aren’t shown here.

arch/arm64/kernel/suspend.c+4−0

This diff is large: its 11 lines aren’t shown here.

arch/arm64/kernel/sys_compat.c+5−8

This diff is large: its 28 lines aren’t shown here.

arch/arm64/kernel/traps.c+230−46

This diff is large: its 401 lines aren’t shown here.

arch/arm64/kernel/vmlinux.lds.S+20−16

This diff is large: its 57 lines aren’t shown here.

arch/arm64/kvm/guest.c+57−4

This diff is large: its 112 lines aren’t shown here.

arch/arm64/kvm/handle_exit.c+7−0

This diff is large: its 14 lines aren’t shown here.

arch/arm64/kvm/hyp-init.S+3−0

This diff is large: its 10 lines aren’t shown here.

arch/arm64/kvm/hyp/Makefile+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm64/kvm/hyp/hyp-entry.S+15−1

This diff is large: its 30 lines aren’t shown here.

arch/arm64/kvm/hyp/s2-setup.c+0−90

This diff is large: its 91 lines aren’t shown here.

arch/arm64/kvm/hyp/switch.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/arm64/kvm/hyp/sysreg-sr.c+29−1

This diff is large: its 42 lines aren’t shown here.

arch/arm64/kvm/hyp/tlb.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/arm64/kvm/reset.c+105−3

This diff is large: its 146 lines aren’t shown here.

arch/arm64/lib/Makefile+3−1

This diff is large: its 15 lines aren’t shown here.

arch/arm64/lib/crc32.S+60−0

This diff is large: its 61 lines aren’t shown here.

arch/arm64/lib/memchr.S+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm64/lib/memcmp.S+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm64/lib/strchr.S+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm64/lib/strcmp.S+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm64/lib/strlen.S+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm64/lib/strncmp.S+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm64/lib/strnlen.S+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm64/lib/strrchr.S+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm64/mm/context.c+7−4

This diff is large: its 46 lines aren’t shown here.

arch/arm64/mm/dma-mapping.c+56−215

This diff is large: its 449 lines aren’t shown here.

arch/arm64/mm/dump.c+3−3

This diff is large: its 20 lines aren’t shown here.

arch/arm64/mm/fault.c+48−84

This diff is large: its 289 lines aren’t shown here.

arch/arm64/mm/hugetlbpage.c+43−7

This diff is large: its 87 lines aren’t shown here.

arch/arm64/mm/init.c+2−7

This diff is large: its 51 lines aren’t shown here.

arch/arm64/mm/kasan_init.c+2−3

This diff is large: its 26 lines aren’t shown here.

arch/arm64/mm/mmu.c+26−22

This diff is large: its 76 lines aren’t shown here.

arch/arm64/mm/numa.c+10−8

This diff is large: its 71 lines aren’t shown here.

arch/arm64/mm/proc.S+8−3

This diff is large: its 32 lines aren’t shown here.

arch/c6x/Kconfig+1−2

This diff is large: its 13 lines aren’t shown here.

arch/c6x/Makefile+0−2

This diff is large: its 10 lines aren’t shown here.

arch/c6x/boot/dts/Makefile+7−10

This diff is large: its 23 lines aren’t shown here.

arch/c6x/boot/dts/linked_dtb.S+0−2

This diff is large: its 3 lines aren’t shown here.

arch/c6x/include/asm/processor.h+0−11

This diff is large: its 18 lines aren’t shown here.

arch/c6x/include/asm/sections.h+0−1

This diff is large: its 7 lines aren’t shown here.

arch/c6x/include/uapi/asm/unistd.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/c6x/kernel/setup.c+6−36

This diff is large: its 93 lines aren’t shown here.

arch/c6x/kernel/vmlinux.lds.S+0−10

This diff is large: its 17 lines aren’t shown here.

arch/c6x/mm/dma-coherent.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/c6x/mm/init.c+4−3

This diff is large: its 28 lines aren’t shown here.

arch/csky/Kconfig+203−0

This diff is large: its 204 lines aren’t shown here.

arch/csky/Kconfig.debug+1−0

This diff is large: its 2 lines aren’t shown here.

arch/csky/Makefile+82−0

This diff is large: its 83 lines aren’t shown here.

arch/csky/abiv1/Makefile+8−0

This diff is large: its 9 lines aren’t shown here.

arch/csky/abiv1/alignment.c+326−0

This diff is large: its 327 lines aren’t shown here.

arch/csky/abiv1/bswapdi.c+12−0

This diff is large: its 13 lines aren’t shown here.

arch/csky/abiv1/bswapsi.c+12−0

This diff is large: its 13 lines aren’t shown here.

arch/csky/abiv1/cacheflush.c+52−0

This diff is large: its 53 lines aren’t shown here.

arch/csky/abiv1/inc/abi/cacheflush.h+49−0

This diff is large: its 50 lines aren’t shown here.

arch/csky/abiv1/inc/abi/ckmmu.h+75−0

This diff is large: its 76 lines aren’t shown here.

arch/csky/abiv1/inc/abi/elf.h+26−0

This diff is large: its 27 lines aren’t shown here.

arch/csky/abiv1/inc/abi/entry.h+160−0

This diff is large: its 161 lines aren’t shown here.

arch/csky/abiv1/inc/abi/page.h+27−0

This diff is large: its 28 lines aren’t shown here.

arch/csky/abiv1/inc/abi/pgtable-bits.h+37−0

This diff is large: its 38 lines aren’t shown here.

arch/csky/abiv1/inc/abi/reg_ops.h+27−0

This diff is large: its 28 lines aren’t shown here.

arch/csky/abiv1/inc/abi/regdef.h+26−0

This diff is large: its 27 lines aren’t shown here.

arch/csky/abiv1/inc/abi/string.h+13−0

This diff is large: its 14 lines aren’t shown here.

arch/csky/abiv1/inc/abi/vdso.h+17−0

This diff is large: its 18 lines aren’t shown here.

arch/csky/abiv1/memcpy.S+347−0

This diff is large: its 348 lines aren’t shown here.

arch/csky/abiv1/memset.c+37−0

This diff is large: its 38 lines aren’t shown here.

arch/csky/abiv1/mmap.c+66−0

This diff is large: its 67 lines aren’t shown here.

arch/csky/abiv1/strksyms.c+7−0

This diff is large: its 8 lines aren’t shown here.

arch/csky/abiv2/Makefile+10−0

This diff is large: its 11 lines aren’t shown here.

arch/csky/abiv2/cacheflush.c+60−0

This diff is large: its 61 lines aren’t shown here.

arch/csky/abiv2/fpu.c+275−0

This diff is large: its 276 lines aren’t shown here.

arch/csky/abiv2/inc/abi/cacheflush.h+46−0

This diff is large: its 47 lines aren’t shown here.

arch/csky/abiv2/inc/abi/ckmmu.h+87−0

This diff is large: its 88 lines aren’t shown here.

arch/csky/abiv2/inc/abi/elf.h+43−0

This diff is large: its 44 lines aren’t shown here.

arch/csky/abiv2/inc/abi/entry.h+156−0

This diff is large: its 157 lines aren’t shown here.

arch/csky/abiv2/inc/abi/fpu.h+66−0

This diff is large: its 67 lines aren’t shown here.

arch/csky/abiv2/inc/abi/page.h+14−0

This diff is large: its 15 lines aren’t shown here.

arch/csky/abiv2/inc/abi/pgtable-bits.h+37−0

This diff is large: its 38 lines aren’t shown here.

arch/csky/abiv2/inc/abi/reg_ops.h+17−0

This diff is large: its 18 lines aren’t shown here.

arch/csky/abiv2/inc/abi/regdef.h+26−0

This diff is large: its 27 lines aren’t shown here.

arch/csky/abiv2/inc/abi/string.h+27−0

This diff is large: its 28 lines aren’t shown here.

arch/csky/abiv2/inc/abi/vdso.h+23−0

This diff is large: its 24 lines aren’t shown here.

arch/csky/abiv2/memcmp.S+152−0

This diff is large: its 153 lines aren’t shown here.

arch/csky/abiv2/memcpy.S+110−0

This diff is large: its 111 lines aren’t shown here.

arch/csky/abiv2/memmove.S+108−0

This diff is large: its 109 lines aren’t shown here.

arch/csky/abiv2/memset.S+83−0

This diff is large: its 84 lines aren’t shown here.

arch/csky/abiv2/strcmp.S+168−0

This diff is large: its 169 lines aren’t shown here.

arch/csky/abiv2/strcpy.S+123−0

This diff is large: its 124 lines aren’t shown here.

arch/csky/abiv2/strksyms.c+12−0

This diff is large: its 13 lines aren’t shown here.

arch/csky/abiv2/strlen.S+97−0

This diff is large: its 98 lines aren’t shown here.

arch/csky/abiv2/sysdep.h+30−0

This diff is large: its 31 lines aren’t shown here.

arch/csky/boot/Makefile+24−0

This diff is large: its 25 lines aren’t shown here.

arch/csky/boot/dts/Makefile+3−0

This diff is large: its 4 lines aren’t shown here.

arch/csky/boot/dts/include/dt-bindings+1−0

This diff is large: its 2 lines aren’t shown here.

arch/csky/configs/defconfig+61−0

This diff is large: its 62 lines aren’t shown here.

arch/csky/include/asm/Kbuild+49−0

This diff is large: its 50 lines aren’t shown here.

arch/csky/include/asm/addrspace.h+10−0

This diff is large: its 11 lines aren’t shown here.

arch/csky/include/asm/atomic.h+212−0

This diff is large: its 213 lines aren’t shown here.

arch/csky/include/asm/barrier.h+49−0

This diff is large: its 50 lines aren’t shown here.

arch/csky/include/asm/bitops.h+82−0

This diff is large: its 83 lines aren’t shown here.

arch/csky/include/asm/bug.h+26−0

This diff is large: its 27 lines aren’t shown here.

arch/csky/include/asm/cache.h+30−0

This diff is large: its 31 lines aren’t shown here.

arch/csky/include/asm/cacheflush.h+9−0

This diff is large: its 10 lines aren’t shown here.

arch/csky/include/asm/checksum.h+50−0

This diff is large: its 51 lines aren’t shown here.

arch/csky/include/asm/cmpxchg.h+73−0

This diff is large: its 74 lines aren’t shown here.

arch/csky/include/asm/elf.h+85−0

This diff is large: its 86 lines aren’t shown here.

arch/csky/include/asm/fixmap.h+27−0

This diff is large: its 28 lines aren’t shown here.

arch/csky/include/asm/highmem.h+51−0

This diff is large: its 52 lines aren’t shown here.

arch/csky/include/asm/io.h+24−0

This diff is large: its 25 lines aren’t shown here.

arch/csky/include/asm/irqflags.h+49−0

This diff is large: its 50 lines aren’t shown here.

arch/csky/include/asm/mmu.h+12−0

This diff is large: its 13 lines aren’t shown here.

arch/csky/include/asm/mmu_context.h+150−0

This diff is large: its 151 lines aren’t shown here.

arch/csky/include/asm/page.h+104−0

This diff is large: its 105 lines aren’t shown here.

arch/csky/include/asm/pgalloc.h+115−0

This diff is large: its 116 lines aren’t shown here.

arch/csky/include/asm/pgtable.h+306−0

This diff is large: its 307 lines aren’t shown here.

arch/csky/include/asm/processor.h+115−0

This diff is large: its 116 lines aren’t shown here.

arch/csky/include/asm/reg_ops.h+26−0

This diff is large: its 27 lines aren’t shown here.

arch/csky/include/asm/segment.h+19−0

This diff is large: its 20 lines aren’t shown here.

arch/csky/include/asm/shmparam.h+11−0

This diff is large: its 12 lines aren’t shown here.

arch/csky/include/asm/smp.h+26−0

This diff is large: its 27 lines aren’t shown here.

arch/csky/include/asm/spinlock.h+256−0

This diff is large: its 257 lines aren’t shown here.

arch/csky/include/asm/spinlock_types.h+37−0

This diff is large: its 38 lines aren’t shown here.

arch/csky/include/asm/string.h+13−0

This diff is large: its 14 lines aren’t shown here.

arch/csky/include/asm/switch_to.h+36−0

This diff is large: its 37 lines aren’t shown here.

arch/csky/include/asm/syscall.h+71−0

This diff is large: its 72 lines aren’t shown here.

arch/csky/include/asm/syscalls.h+15−0

This diff is large: its 16 lines aren’t shown here.

arch/csky/include/asm/thread_info.h+75−0

This diff is large: its 76 lines aren’t shown here.

arch/csky/include/asm/tlb.h+25−0

This diff is large: its 26 lines aren’t shown here.

arch/csky/include/asm/tlbflush.h+25−0

This diff is large: its 26 lines aren’t shown here.

arch/csky/include/asm/traps.h+44−0

This diff is large: its 45 lines aren’t shown here.

arch/csky/include/asm/uaccess.h+416−0

This diff is large: its 417 lines aren’t shown here.

arch/csky/include/asm/unistd.h+4−0

This diff is large: its 5 lines aren’t shown here.

arch/csky/include/asm/vdso.h+12−0

This diff is large: its 13 lines aren’t shown here.

arch/csky/include/uapi/asm/Kbuild+32−0

This diff is large: its 33 lines aren’t shown here.

arch/csky/include/uapi/asm/byteorder.h+9−0

This diff is large: its 10 lines aren’t shown here.

arch/csky/include/uapi/asm/cachectl.h+13−0

This diff is large: its 14 lines aren’t shown here.

arch/csky/include/uapi/asm/ptrace.h+104−0

This diff is large: its 105 lines aren’t shown here.

arch/csky/include/uapi/asm/sigcontext.h+14−0

This diff is large: its 15 lines aren’t shown here.

arch/csky/include/uapi/asm/unistd.h+10−0

This diff is large: its 11 lines aren’t shown here.

arch/csky/kernel/Makefile+8−0

This diff is large: its 9 lines aren’t shown here.

arch/csky/kernel/asm-offsets.c+88−0

This diff is large: its 89 lines aren’t shown here.

arch/csky/kernel/atomic.S+87−0

This diff is large: its 88 lines aren’t shown here.

arch/csky/kernel/cpu-probe.c+79−0

This diff is large: its 80 lines aren’t shown here.

arch/csky/kernel/dumpstack.c+66−0

This diff is large: its 67 lines aren’t shown here.

arch/csky/kernel/entry.S+396−0

This diff is large: its 397 lines aren’t shown here.

arch/csky/kernel/head.S+77−0

This diff is large: its 78 lines aren’t shown here.

arch/csky/kernel/irq.c+22−0

This diff is large: its 23 lines aren’t shown here.

arch/csky/kernel/module.c+92−0

This diff is large: its 93 lines aren’t shown here.

arch/csky/kernel/power.c+30−0

This diff is large: its 31 lines aren’t shown here.

arch/csky/kernel/process.c+136−0

This diff is large: its 137 lines aren’t shown here.

arch/csky/kernel/ptrace.c+314−0

This diff is large: its 315 lines aren’t shown here.

arch/csky/kernel/setup.c+161−0

This diff is large: its 162 lines aren’t shown here.

arch/csky/kernel/signal.c+347−0

This diff is large: its 348 lines aren’t shown here.

arch/csky/kernel/smp.c+237−0

This diff is large: its 238 lines aren’t shown here.

arch/csky/kernel/syscall.c+43−0

This diff is large: its 44 lines aren’t shown here.

arch/csky/kernel/syscall_table.c+14−0

This diff is large: its 15 lines aren’t shown here.

arch/csky/kernel/time.c+11−0

This diff is large: its 12 lines aren’t shown here.

arch/csky/kernel/traps.c+169−0

This diff is large: its 170 lines aren’t shown here.

arch/csky/kernel/vdso.c+86−0

This diff is large: its 87 lines aren’t shown here.

arch/csky/kernel/vmlinux.lds.S+66−0

This diff is large: its 67 lines aren’t shown here.

arch/csky/lib/Makefile+1−0

This diff is large: its 2 lines aren’t shown here.

arch/csky/lib/delay.c+39−0

This diff is large: its 40 lines aren’t shown here.

arch/csky/lib/usercopy.c+262−0

This diff is large: its 263 lines aren’t shown here.

arch/csky/mm/Makefile+13−0

This diff is large: its 14 lines aren’t shown here.

arch/csky/mm/cachev1.c+126−0

This diff is large: its 127 lines aren’t shown here.

arch/csky/mm/cachev2.c+79−0

This diff is large: its 80 lines aren’t shown here.

arch/csky/mm/dma-mapping.c+254−0

This diff is large: its 255 lines aren’t shown here.

arch/csky/mm/fault.c+212−0

This diff is large: its 213 lines aren’t shown here.

arch/csky/mm/highmem.c+198−0

This diff is large: its 199 lines aren’t shown here.

arch/csky/mm/init.c+121−0

This diff is large: its 122 lines aren’t shown here.

arch/csky/mm/ioremap.c+48−0

This diff is large: its 49 lines aren’t shown here.

arch/csky/mm/syscache.c+32−0

This diff is large: its 33 lines aren’t shown here.

arch/csky/mm/tlb.c+219−0

This diff is large: its 220 lines aren’t shown here.

arch/h8300/Kconfig+0−2

This diff is large: its 9 lines aren’t shown here.

arch/h8300/Makefile+1−10

This diff is large: its 23 lines aren’t shown here.

arch/h8300/include/asm/processor.h+0−6

This diff is large: its 13 lines aren’t shown here.

arch/h8300/include/uapi/asm/unistd.h+1−0

This diff is large: its 7 lines aren’t shown here.

arch/h8300/kernel/setup.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/h8300/kernel/vmlinux.lds.S+0−1

This diff is large: its 8 lines aren’t shown here.

arch/h8300/mm/init.c+3−3

This diff is large: its 27 lines aren’t shown here.

arch/hexagon/Kconfig+3−0

This diff is large: its 24 lines aren’t shown here.

arch/hexagon/include/asm/Kbuild+1−0

This diff is large: its 8 lines aren’t shown here.

arch/hexagon/include/asm/dma-mapping.h+0−40

This diff is large: its 41 lines aren’t shown here.

arch/hexagon/include/asm/processor.h+0−3

This diff is large: its 10 lines aren’t shown here.

arch/hexagon/include/uapi/asm/unistd.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/hexagon/kernel/dma.c+9−136

This diff is large: its 178 lines aren’t shown here.

arch/hexagon/kernel/setup.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/hexagon/mm/init.c+9−14

This diff is large: its 67 lines aren’t shown here.

arch/ia64/Kconfig+0−2

This diff is large: its 10 lines aren’t shown here.

arch/ia64/hp/common/sba_iommu.c+0−4

This diff is large: its 11 lines aren’t shown here.

arch/ia64/hp/sim/simserial.c+13−11

This diff is large: its 50 lines aren’t shown here.

arch/ia64/include/asm/dma-mapping.h+0−7

This diff is large: its 18 lines aren’t shown here.

arch/ia64/include/asm/hugetlb.h+5−42

This diff is large: its 73 lines aren’t shown here.

arch/ia64/include/asm/iommu.h+0−2

This diff is large: its 16 lines aren’t shown here.

arch/ia64/include/asm/machvec.h+0−7

This diff is large: its 42 lines aren’t shown here.

arch/ia64/include/asm/machvec_init.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/ia64/include/asm/machvec_sn2.h+0−2

This diff is large: its 16 lines aren’t shown here.

arch/ia64/include/asm/pgtable.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/ia64/include/asm/processor.h+0−6

This diff is large: its 13 lines aren’t shown here.

arch/ia64/include/asm/unistd.h+3−0

This diff is large: its 10 lines aren’t shown here.

arch/ia64/include/uapi/asm/siginfo.h+0−2

This diff is large: its 9 lines aren’t shown here.

arch/ia64/kernel/brl_emu.c+6−25

This diff is large: its 58 lines aren’t shown here.

arch/ia64/kernel/crash.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/ia64/kernel/efi.c+1−2

This diff is large: its 17 lines aren’t shown here.

arch/ia64/kernel/ia64_ksyms.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/ia64/kernel/iosapic.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/ia64/kernel/machvec.c+0−16

This diff is large: its 20 lines aren’t shown here.

arch/ia64/kernel/mca.c+5−5

This diff is large: its 32 lines aren’t shown here.

arch/ia64/kernel/mca_drv.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/ia64/kernel/pci-dma.c+0−55

This diff is large: its 78 lines aren’t shown here.

arch/ia64/kernel/setup.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/ia64/kernel/signal.c+15−49

This diff is large: its 112 lines aren’t shown here.

arch/ia64/kernel/smpboot.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/ia64/kernel/topology.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/ia64/kernel/traps.c+39−105

This diff is large: its 268 lines aren’t shown here.

arch/ia64/kernel/unaligned.c+2−10

This diff is large: its 25 lines aren’t shown here.

arch/ia64/kernel/unwind.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/ia64/mm/contig.c+3−3

This diff is large: its 20 lines aren’t shown here.

arch/ia64/mm/discontig.c+4−3

This diff is large: its 21 lines aren’t shown here.

arch/ia64/mm/fault.c+2−10

This diff is large: its 19 lines aren’t shown here.

arch/ia64/mm/init.c+5−6

This diff is large: its 41 lines aren’t shown here.

arch/ia64/mm/numa.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/ia64/mm/tlb.c+5−3

This diff is large: its 22 lines aren’t shown here.

arch/ia64/pci/pci.c+1−27

This diff is large: its 42 lines aren’t shown here.

arch/ia64/sn/kernel/bte.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/ia64/sn/kernel/io_common.c+5−6

This diff is large: its 30 lines aren’t shown here.

arch/ia64/sn/kernel/setup.c+4−3

This diff is large: its 28 lines aren’t shown here.

arch/ia64/sn/pci/pci_dma.c+2−31

This diff is large: its 57 lines aren’t shown here.

arch/m68k/Kconfig+1−3

This diff is large: its 12 lines aren’t shown here.

arch/m68k/atari/stram.c+3−2

This diff is large: its 19 lines aren’t shown here.

arch/m68k/coldfire/m54xx.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/m68k/configs/amiga_defconfig+0−2

This diff is large: its 16 lines aren’t shown here.

arch/m68k/configs/apollo_defconfig+0−2

This diff is large: its 16 lines aren’t shown here.

arch/m68k/configs/atari_defconfig+0−2

This diff is large: its 16 lines aren’t shown here.

arch/m68k/configs/bvme6000_defconfig+0−2

This diff is large: its 16 lines aren’t shown here.

arch/m68k/configs/hp300_defconfig+0−2

This diff is large: its 16 lines aren’t shown here.

arch/m68k/configs/mac_defconfig+0−2

This diff is large: its 16 lines aren’t shown here.

arch/m68k/configs/multi_defconfig+0−2

This diff is large: its 16 lines aren’t shown here.

arch/m68k/configs/mvme147_defconfig+0−2

This diff is large: its 16 lines aren’t shown here.

arch/m68k/configs/mvme16x_defconfig+0−2

This diff is large: its 16 lines aren’t shown here.

arch/m68k/configs/q40_defconfig+0−2

This diff is large: its 16 lines aren’t shown here.

arch/m68k/configs/sun3_defconfig+0−2

This diff is large: its 16 lines aren’t shown here.

arch/m68k/configs/sun3x_defconfig+0−2

This diff is large: its 16 lines aren’t shown here.

arch/m68k/emu/nfblock.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/m68k/emu/nfeth.c+0−4

This diff is large: its 11 lines aren’t shown here.

arch/m68k/include/asm/atafd.h+0−13

This diff is large: its 14 lines aren’t shown here.

arch/m68k/include/asm/atafdreg.h+0−80

This diff is large: its 81 lines aren’t shown here.

arch/m68k/include/asm/pgtable_mm.h+2−2

This diff is large: its 15 lines aren’t shown here.

arch/m68k/include/asm/processor.h+0−6

This diff is large: its 13 lines aren’t shown here.

arch/m68k/include/asm/unistd.h+1−1

This diff is large: its 16 lines aren’t shown here.

arch/m68k/kernel/setup_mm.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m68k/kernel/setup_no.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m68k/kernel/sun3-head.S+0−6

This diff is large: its 10 lines aren’t shown here.

arch/m68k/kernel/uboot.c+2−2

This diff is large: its 16 lines aren’t shown here.

arch/m68k/mac/misc.c+10−65

This diff is large: its 132 lines aren’t shown here.

arch/m68k/mm/init.c+3−3

This diff is large: its 27 lines aren’t shown here.

arch/m68k/mm/mcfmmu.c+2−3

This diff is large: its 26 lines aren’t shown here.

arch/m68k/mm/motorola.c+4−4

This diff is large: its 36 lines aren’t shown here.

arch/m68k/mm/sun3mmu.c+3−3

This diff is large: its 27 lines aren’t shown here.

arch/m68k/sun3/config.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/m68k/sun3/dvma.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/m68k/sun3/mmu_emu.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/m68k/sun3/sun3dvma.c+3−2

This diff is large: its 19 lines aren’t shown here.

arch/m68k/sun3x/dvma.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/microblaze/Kconfig+2−4

This diff is large: its 27 lines aren’t shown here.

arch/microblaze/Makefile+1−3

This diff is large: its 11 lines aren’t shown here.

arch/microblaze/boot/dts/Makefile+4−0

This diff is large: its 18 lines aren’t shown here.

arch/microblaze/include/asm/pgtable.h+1−3

This diff is large: its 18 lines aren’t shown here.

arch/microblaze/include/asm/processor.h+0−12

This diff is large: its 26 lines aren’t shown here.

arch/microblaze/include/asm/unistd.h+1−1

This diff is large: its 16 lines aren’t shown here.

arch/microblaze/kernel/cpu/cpuinfo.c+4−2

This diff is large: its 21 lines aren’t shown here.

arch/microblaze/kernel/dma.c+0−22

This diff is large: its 26 lines aren’t shown here.

arch/microblaze/kernel/vmlinux.lds.S+0−2

This diff is large: its 9 lines aren’t shown here.

arch/microblaze/mm/consistent.c+3−2

This diff is large: its 19 lines aren’t shown here.

arch/microblaze/mm/init.c+3−4

This diff is large: its 30 lines aren’t shown here.

arch/microblaze/pci/pci-common.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/Kconfig+43−8

This diff is large: its 313 lines aren’t shown here.

arch/mips/Makefile+6−22

This diff is large: its 70 lines aren’t shown here.

arch/mips/alchemy/devboards/db1200.c+6−8

This diff is large: its 42 lines aren’t shown here.

arch/mips/alchemy/devboards/db1300.c+6−8

This diff is large: its 42 lines aren’t shown here.

arch/mips/alchemy/devboards/db1550.c+6−8

This diff is large: its 42 lines aren’t shown here.

arch/mips/ar7/memory.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/ath79/setup.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/bcm47xx/workarounds.c+5−3

This diff is large: its 23 lines aren’t shown here.

arch/mips/bcm63xx/prom.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/bcm63xx/setup.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/bmips/setup.c+2−9

This diff is large: its 35 lines aren’t shown here.

arch/mips/boot/dts/ingenic/jz4740.dtsi+15−0

This diff is large: its 22 lines aren’t shown here.

arch/mips/boot/dts/ingenic/jz4770.dtsi+30−0

This diff is large: its 37 lines aren’t shown here.

arch/mips/boot/dts/ingenic/jz4780.dtsi+2−1

This diff is large: its 10 lines aren’t shown here.

arch/mips/boot/dts/lantiq/danube.dtsi+21−21

This diff is large: its 95 lines aren’t shown here.

arch/mips/boot/dts/lantiq/easy50712.dts+7−7

This diff is large: its 49 lines aren’t shown here.

arch/mips/boot/dts/mscc/Makefile+1−1

This diff is large: its 5 lines aren’t shown here.

arch/mips/boot/dts/mscc/ocelot.dtsi+33−5

This diff is large: its 79 lines aren’t shown here.

arch/mips/boot/dts/mscc/ocelot_pcb120.dts+107−0

This diff is large: its 108 lines aren’t shown here.

arch/mips/boot/dts/mscc/ocelot_pcb123.dts+6−0

This diff is large: its 13 lines aren’t shown here.

arch/mips/cavium-octeon/dma-octeon.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/mips/cavium-octeon/executive/cvmx-helper.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/cavium-octeon/octeon-irq.c+8−8

This diff is large: its 51 lines aren’t shown here.

arch/mips/cavium-octeon/setup.c+3−6

This diff is large: its 19 lines aren’t shown here.

arch/mips/cavium-octeon/smp.c+7−0

This diff is large: its 28 lines aren’t shown here.

arch/mips/configs/generic/board-ocelot.config+9−1

This diff is large: its 27 lines aren’t shown here.

arch/mips/dec/prom/memory.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/emma/common/prom.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/fw/arc/memory.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/generic/Kconfig+3−3

This diff is large: its 15 lines aren’t shown here.

arch/mips/generic/Makefile+0−1

This diff is large: its 6 lines aren’t shown here.

arch/mips/generic/Platform+1−1

This diff is large: its 7 lines aren’t shown here.

arch/mips/generic/board-ocelot.its.Srenamed from arch/mips/generic/board-ocelot_pcb123.its.S+17−0

This diff is large: its 30 lines aren’t shown here.

arch/mips/generic/kexec.c+0−44

This diff is large: its 45 lines aren’t shown here.

arch/mips/include/asm/Kbuild+1−0

This diff is large: its 8 lines aren’t shown here.

arch/mips/include/asm/asm-eva.h+6−0

This diff is large: its 48 lines aren’t shown here.

arch/mips/include/asm/asm.h+0−116

This diff is large: its 130 lines aren’t shown here.

arch/mips/include/asm/compat.h+5−23

This diff is large: its 61 lines aren’t shown here.

arch/mips/include/asm/device.h+0−19

This diff is large: its 20 lines aren’t shown here.

arch/mips/include/asm/dma-coherence.h+6−0

This diff is large: its 13 lines aren’t shown here.

arch/mips/include/asm/dma-mapping.h+1−3

This diff is large: its 18 lines aren’t shown here.

arch/mips/include/asm/hugetlb.h+7−33

This diff is large: its 89 lines aren’t shown here.

arch/mips/include/asm/io.h+64−65

This diff is large: its 258 lines aren’t shown here.

arch/mips/include/asm/kexec.h+6−5

This diff is large: its 30 lines aren’t shown here.

arch/mips/include/asm/mach-loongson64/irq.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/include/asm/mach-loongson64/kernel-entry-init.h+12−4

This diff is large: its 45 lines aren’t shown here.

arch/mips/include/asm/mipsregs.h+19−1

This diff is large: its 152 lines aren’t shown here.

arch/mips/include/asm/processor.h+5−10

This diff is large: its 36 lines aren’t shown here.

arch/mips/include/asm/r4kcache.h+0−73

This diff is large: its 181 lines aren’t shown here.

arch/mips/include/asm/smp-ops.h+3−0

This diff is large: its 10 lines aren’t shown here.

arch/mips/include/asm/smp.h+16−0

This diff is large: its 23 lines aren’t shown here.

arch/mips/include/asm/unistd.h+2−1

This diff is large: its 19 lines aren’t shown here.

arch/mips/include/asm/vr41xx/giu.h+0−8

This diff is large: its 13 lines aren’t shown here.

arch/mips/include/uapi/asm/ioctls.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/mips/include/uapi/asm/siginfo.h+0−11

This diff is large: its 18 lines aren’t shown here.

arch/mips/jazz/jazzdma.c+4−5

This diff is large: its 42 lines aren’t shown here.

arch/mips/kernel/Makefile+0−18

This diff is large: its 23 lines aren’t shown here.

arch/mips/kernel/binfmt_elfn32.c+7−7

This diff is large: its 35 lines aren’t shown here.

arch/mips/kernel/binfmt_elfo32.c+7−7

This diff is large: its 35 lines aren’t shown here.

arch/mips/kernel/crash.c+7−2

This diff is large: its 30 lines aren’t shown here.

arch/mips/kernel/crash_dump.c+1−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/kernel/head.S+10−8

This diff is large: its 53 lines aren’t shown here.

arch/mips/kernel/machine_kexec.c+136−7

This diff is large: its 218 lines aren’t shown here.

arch/mips/kernel/mips-mt.c+0−59

This diff is large: its 80 lines aren’t shown here.

arch/mips/kernel/process.c+25−0

This diff is large: its 46 lines aren’t shown here.

arch/mips/kernel/prom.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/kernel/relocate.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/kernel/setup.c+76−123

This diff is large: its 342 lines aren’t shown here.

arch/mips/kernel/smp-bmips.c+7−0

This diff is large: its 28 lines aren’t shown here.

arch/mips/kernel/smp-cps.c+55−25

This diff is large: its 115 lines aren’t shown here.

arch/mips/kernel/traps.c+5−3

This diff is large: its 30 lines aren’t shown here.

arch/mips/kernel/unaligned.c+23−24

This diff is large: its 173 lines aren’t shown here.

arch/mips/kernel/vdso.c+17−1

This diff is large: its 39 lines aren’t shown here.

arch/mips/kernel/vpe.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/kvm/commpage.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/kvm/dyntrans.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/kvm/emulate.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/kvm/interrupt.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/kvm/mips.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/lantiq/prom.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/lantiq/xway/dma.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/lantiq/xway/sysctrl.c+7−7

This diff is large: its 40 lines aren’t shown here.

arch/mips/lasat/prom.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/lib/Makefile+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/lib/iomap-pci.c+0−7

This diff is large: its 11 lines aren’t shown here.

arch/mips/lib/iomap.c+0−227

This diff is large: its 228 lines aren’t shown here.

arch/mips/lib/memcpy.S+13−9

This diff is large: its 76 lines aren’t shown here.

arch/mips/lib/memset.S+31−29

This diff is large: its 205 lines aren’t shown here.

arch/mips/loongson64/common/Makefile+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/loongson64/common/init.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/loongson64/fuloong-2e/Makefile+1−1

This diff is large: its 6 lines aren’t shown here.

arch/mips/loongson64/fuloong-2e/dma.c+12−0

This diff is large: its 13 lines aren’t shown here.

arch/mips/loongson64/lemote-2f/Makefile+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/loongson64/lemote-2f/dma.crenamed from arch/mips/loongson64/common/dma.c+0−4

This diff is large: its 12 lines aren’t shown here.

arch/mips/loongson64/loongson-3/irq.c+6−50

This diff is large: its 71 lines aren’t shown here.

arch/mips/loongson64/loongson-3/numa.c+16−21

This diff is large: its 76 lines aren’t shown here.

arch/mips/loongson64/loongson-3/smp.c+9−5

This diff is large: its 43 lines aren’t shown here.

arch/mips/mm/c-r4k.c+8−9

This diff is large: its 31 lines aren’t shown here.

arch/mips/mm/dma-noncoherent.c+16−63

This diff is large: its 125 lines aren’t shown here.

arch/mips/mm/init.c+5−9

This diff is large: its 55 lines aren’t shown here.

arch/mips/mm/pgtable-32.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/mti-malta/malta-memory.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/netlogic/common/irq.c+7−7

This diff is large: its 45 lines aren’t shown here.

arch/mips/netlogic/xlp/dt.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/netlogic/xlr/platform-flash.c+3−4

This diff is large: its 21 lines aren’t shown here.

arch/mips/pci/ops-loongson3.c+24−10

This diff is large: its 47 lines aren’t shown here.

arch/mips/pci/pci-legacy.c+5−1

This diff is large: its 22 lines aren’t shown here.

arch/mips/pci/pci-rt2880.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/mips/pci/pci.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/pmcs-msp71xx/msp_usb.c+2−2

This diff is large: its 16 lines aren’t shown here.

arch/mips/pnx833x/common/platform.c+3−5

This diff is large: its 23 lines aren’t shown here.

arch/mips/ralink/cevt-rt3352.c+3−3

This diff is large: its 20 lines aren’t shown here.

arch/mips/ralink/ill_acc.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/ralink/of.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/ralink/rt305x.c+5−0

This diff is large: its 19 lines aren’t shown here.

arch/mips/rb532/devices.c+4−6

This diff is large: its 37 lines aren’t shown here.

arch/mips/rb532/prom.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/sgi-ip22/ip28-berr.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/sgi-ip27/ip27-memory.c+5−9

This diff is large: its 50 lines aren’t shown here.

arch/mips/sibyte/common/cfe.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/sibyte/swarm/setup.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/tools/.gitignore+1−0

This diff is large: its 2 lines aren’t shown here.

arch/mips/tools/Makefile+5−0

This diff is large: its 6 lines aren’t shown here.

arch/mips/tools/elf-entry.c+96−0

This diff is large: its 97 lines aren’t shown here.

arch/mips/txx9/generic/setup.c+2−3

This diff is large: its 15 lines aren’t shown here.

arch/mips/txx9/rbtx4938/prom.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/vdso/Makefile+1−1

This diff is large: its 9 lines aren’t shown here.

arch/nds32/Kconfig+1−3

This diff is large: its 24 lines aren’t shown here.

arch/nds32/Makefile+1−1

This diff is large: its 9 lines aren’t shown here.

arch/nds32/include/asm/pgtable.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/nds32/include/asm/processor.h+0−6

This diff is large: its 13 lines aren’t shown here.

arch/nds32/include/uapi/asm/unistd.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/nds32/kernel/setup.c+1−2

This diff is large: its 11 lines aren’t shown here.

arch/nds32/mm/highmem.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/nds32/mm/init.c+6−7

This diff is large: its 59 lines aren’t shown here.

arch/nios2/Kconfig+2−1

This diff is large: its 17 lines aren’t shown here.

arch/nios2/Makefile+1−10

This diff is large: its 29 lines aren’t shown here.

arch/nios2/boot/Makefile+0−22

This diff is large: its 28 lines aren’t shown here.

arch/nios2/boot/dts/Makefile+6−0

This diff is large: its 7 lines aren’t shown here.

arch/nios2/boot/linked_dtb.S+0−19

This diff is large: its 20 lines aren’t shown here.

arch/nios2/include/asm/processor.h+0−6

This diff is large: its 13 lines aren’t shown here.

arch/nios2/include/uapi/asm/unistd.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/nios2/kernel/cpuinfo.c+3−1

This diff is large: its 18 lines aren’t shown here.

arch/nios2/kernel/prom.c+1−18

This diff is large: its 32 lines aren’t shown here.

arch/nios2/kernel/setup.c+7−33

This diff is large: its 66 lines aren’t shown here.

arch/nios2/kernel/time.c+2−2

This diff is large: its 15 lines aren’t shown here.

arch/nios2/mm/init.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/openrisc/Kconfig+1−3

This diff is large: its 22 lines aren’t shown here.

arch/openrisc/include/asm/processor.h+0−5

This diff is large: its 12 lines aren’t shown here.

arch/openrisc/include/uapi/asm/unistd.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/openrisc/kernel/setup.c+2−4

This diff is large: its 26 lines aren’t shown here.

arch/openrisc/mm/init.c+3−4

This diff is large: its 32 lines aren’t shown here.

arch/openrisc/mm/ioremap.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/parisc/Kconfig+1−3

This diff is large: its 18 lines aren’t shown here.

arch/parisc/Makefile+0−9

This diff is large: its 13 lines aren’t shown here.

arch/parisc/boot/compressed/Makefile+1−3

This diff is large: its 25 lines aren’t shown here.

arch/parisc/boot/compressed/misc.c+77−18

This diff is large: its 151 lines aren’t shown here.

arch/parisc/boot/compressed/vmlinux.lds.S+6−4

This diff is large: its 24 lines aren’t shown here.

arch/parisc/include/asm/alternative.h+47−0

This diff is large: its 48 lines aren’t shown here.

arch/parisc/include/asm/assembly.h+1−8

This diff is large: its 17 lines aren’t shown here.

arch/parisc/include/asm/cache.h+19−3

This diff is large: its 36 lines aren’t shown here.

arch/parisc/include/asm/compat.h+5−19

This diff is large: its 54 lines aren’t shown here.

arch/parisc/include/asm/hugetlb.h+8−25

This diff is large: its 72 lines aren’t shown here.

arch/parisc/include/asm/page.h+7−5

This diff is large: its 22 lines aren’t shown here.

arch/parisc/include/asm/pdc.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/parisc/include/asm/pdcpat.h+49−13

This diff is large: its 95 lines aren’t shown here.

arch/parisc/include/asm/pgtable.h+14−21

This diff is large: its 110 lines aren’t shown here.

arch/parisc/include/asm/processor.h+0−11

This diff is large: its 18 lines aren’t shown here.

arch/parisc/include/asm/sections.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/parisc/include/asm/tlbflush.h+1−2

This diff is large: its 10 lines aren’t shown here.

arch/parisc/include/asm/unistd.h+2−1

This diff is large: its 21 lines aren’t shown here.

arch/parisc/include/uapi/asm/Kbuild+1−0

This diff is large: its 5 lines aren’t shown here.

arch/parisc/include/uapi/asm/ioctls.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/parisc/include/uapi/asm/posix_types.h+0−3

This diff is large: its 10 lines aren’t shown here.

arch/parisc/include/uapi/asm/siginfo.h+0−11

This diff is large: its 12 lines aren’t shown here.

arch/parisc/kernel/cache.c+37−26

This diff is large: its 133 lines aren’t shown here.

arch/parisc/kernel/entry.S+20−19

This diff is large: its 119 lines aren’t shown here.

arch/parisc/kernel/firmware.c+57−0

This diff is large: its 71 lines aren’t shown here.

arch/parisc/kernel/hpmc.S+1−2

This diff is large: its 17 lines aren’t shown here.

arch/parisc/kernel/inventory.c+10−0

This diff is large: its 30 lines aren’t shown here.

arch/parisc/kernel/pacache.S+246−34

This diff is large: its 526 lines aren’t shown here.

arch/parisc/kernel/setup.c+82−1

This diff is large: its 104 lines aren’t shown here.

arch/parisc/kernel/signal.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/parisc/kernel/syscall.S+1−1

This diff is large: its 9 lines aren’t shown here.

arch/parisc/kernel/traps.c+4−3

This diff is large: its 21 lines aren’t shown here.

arch/parisc/kernel/unwind.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/parisc/kernel/vmlinux.lds.S+6−0

This diff is large: its 13 lines aren’t shown here.

arch/parisc/mm/init.c+16−8

This diff is large: its 52 lines aren’t shown here.

arch/powerpc/Kbuild+16−0

This diff is large: its 17 lines aren’t shown here.

arch/powerpc/Kconfig+4−30

This diff is large: its 178 lines aren’t shown here.

arch/powerpc/Kconfig.debug+0−6

This diff is large: its 41 lines aren’t shown here.

arch/powerpc/Makefile+37−59

This diff is large: its 156 lines aren’t shown here.

arch/powerpc/boot/.gitignore+1−0

This diff is large: its 6 lines aren’t shown here.

arch/powerpc/boot/Makefile+34−32

This diff is large: its 112 lines aren’t shown here.

arch/powerpc/boot/crt0.S+3−1

This diff is large: its 12 lines aren’t shown here.

arch/powerpc/boot/dts/Makefile+6−0

This diff is large: its 7 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/Makefile+4−0

This diff is large: its 5 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/t2080rdb.dts+2−2

This diff is large: its 15 lines aren’t shown here.

arch/powerpc/boot/dts/mpc885ads.dts+12−1

This diff is large: its 27 lines aren’t shown here.

arch/powerpc/boot/libfdt_env.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/boot/opal.c+0−8

This diff is large: its 19 lines aren’t shown here.

arch/powerpc/boot/serial.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/configs/g5_defconfig+1−0

This diff is large: its 5 lines aren’t shown here.

arch/powerpc/configs/maple_defconfig+1−0

This diff is large: its 5 lines aren’t shown here.

arch/powerpc/configs/powernv_defconfig+4−0

This diff is large: its 15 lines aren’t shown here.

arch/powerpc/configs/ppc64_defconfig+4−0

This diff is large: its 15 lines aren’t shown here.

arch/powerpc/configs/ps3_defconfig+1−0

This diff is large: its 5 lines aren’t shown here.

arch/powerpc/configs/pseries_defconfig+1−0

This diff is large: its 5 lines aren’t shown here.

arch/powerpc/configs/skiroot_defconfig+108−46

This diff is large: its 292 lines aren’t shown here.

arch/powerpc/include/asm/accounting.h+4−0

This diff is large: its 22 lines aren’t shown here.

arch/powerpc/include/asm/asm-prototypes.h+23−1

This diff is large: its 43 lines aren’t shown here.

arch/powerpc/include/asm/book3s/32/pgtable.h+139−19

This diff is large: its 234 lines aren’t shown here.

arch/powerpc/include/asm/book3s/64/hash-4k.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/include/asm/book3s/64/hash.h+6−2

This diff is large: its 22 lines aren’t shown here.

arch/powerpc/include/asm/book3s/64/hugetlb.h+3−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/include/asm/book3s/64/mmu-hash.h+80−27

This diff is large: its 176 lines aren’t shown here.

arch/powerpc/include/asm/book3s/64/mmu.h+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/include/asm/book3s/64/pgtable-64k.h+3−0

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/include/asm/book3s/64/pgtable.h+107−83

This diff is large: its 451 lines aren’t shown here.

arch/powerpc/include/asm/book3s/64/tlbflush-radix.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/include/asm/bug.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/include/asm/code-patching.h+5−0

This diff is large: its 12 lines aren’t shown here.

arch/powerpc/include/asm/compat.h+5−19

This diff is large: its 59 lines aren’t shown here.

arch/powerpc/include/asm/cputhreads.h+2−0

This diff is large: its 14 lines aren’t shown here.

arch/powerpc/include/asm/cputime.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/include/asm/drmem.h+5−0

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/include/asm/eeh.h+9−15

This diff is large: its 74 lines aren’t shown here.

arch/powerpc/include/asm/error-injection.h+13−0

This diff is large: its 14 lines aren’t shown here.

arch/powerpc/include/asm/exception-64s.h+4−13

This diff is large: its 39 lines aren’t shown here.

arch/powerpc/include/asm/firmware.h+4−1

This diff is large: its 19 lines aren’t shown here.

arch/powerpc/include/asm/fixmap.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/include/asm/hugetlb.h+6−37

This diff is large: its 83 lines aren’t shown here.

arch/powerpc/include/asm/hvcall.h+51−1

This diff is large: its 80 lines aren’t shown here.

arch/powerpc/include/asm/io.h+18−35

This diff is large: its 115 lines aren’t shown here.

arch/powerpc/include/asm/iommu.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/include/asm/kgdb.h+4−1

This diff is large: its 14 lines aren’t shown here.

arch/powerpc/include/asm/kvm_asm.h+1−3

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/include/asm/kvm_book3s.h+40−5

This diff is large: its 85 lines aren’t shown here.

arch/powerpc/include/asm/kvm_book3s_64.h+116−2

This diff is large: its 153 lines aren’t shown here.

arch/powerpc/include/asm/kvm_book3s_asm.h+3−0

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/include/asm/kvm_booke.h+2−2

This diff is large: its 15 lines aren’t shown here.

arch/powerpc/include/asm/kvm_host.h+14−2

This diff is large: its 77 lines aren’t shown here.

arch/powerpc/include/asm/kvm_ppc.h+5−3

This diff is large: its 43 lines aren’t shown here.

arch/powerpc/include/asm/machdep.h+2−1

This diff is large: its 17 lines aren’t shown here.

arch/powerpc/include/asm/mce.h+3−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/include/asm/mmu-8xx.h+15−28

This diff is large: its 77 lines aren’t shown here.

arch/powerpc/include/asm/mmu.h+15−0

This diff is large: its 22 lines aren’t shown here.

arch/powerpc/include/asm/mmu_context.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/include/asm/mpic.h+7−0

This diff is large: its 15 lines aren’t shown here.

arch/powerpc/include/asm/nohash/32/pgtable.h+62−13

This diff is large: its 109 lines aren’t shown here.

arch/powerpc/include/asm/nohash/32/pte-40x.h+43−0

This diff is large: its 57 lines aren’t shown here.

arch/powerpc/include/asm/nohash/32/pte-44x.h+30−0

This diff is large: its 45 lines aren’t shown here.

arch/powerpc/include/asm/nohash/32/pte-8xx.h+82−5

This diff is large: its 112 lines aren’t shown here.

arch/powerpc/include/asm/nohash/32/pte-fsl-booke.h+33−0

This diff is large: its 45 lines aren’t shown here.

arch/powerpc/include/asm/nohash/64/pgtable.h+40−6

This diff is large: its 78 lines aren’t shown here.

arch/powerpc/include/asm/nohash/pgtable.h+75−25

This diff is large: its 171 lines aren’t shown here.

arch/powerpc/include/asm/nohash/pte-book3e.h+41−0

This diff is large: its 49 lines aren’t shown here.

arch/powerpc/include/asm/opal-api.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/include/asm/paca.h+16−2

This diff is large: its 39 lines aren’t shown here.

arch/powerpc/include/asm/pgtable.h+29−0

This diff is large: its 43 lines aren’t shown here.

arch/powerpc/include/asm/pnv-pci.h+1−1

This diff is large: its 16 lines aren’t shown here.

arch/powerpc/include/asm/ppc-opcode.h+3−0

This diff is large: its 17 lines aren’t shown here.

arch/powerpc/include/asm/ppc-pci.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/include/asm/processor.h+3−10

This diff is large: its 49 lines aren’t shown here.

arch/powerpc/include/asm/pte-common.h+0−219

This diff is large: its 220 lines aren’t shown here.

arch/powerpc/include/asm/ptrace.h+38−1

This diff is large: its 60 lines aren’t shown here.

arch/powerpc/include/asm/reg.h+8−1

This diff is large: its 34 lines aren’t shown here.

arch/powerpc/include/asm/rtas.h+16−0

This diff is large: its 56 lines aren’t shown here.

arch/powerpc/include/asm/slice.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/include/asm/smp.h+11−0

This diff is large: its 32 lines aren’t shown here.

arch/powerpc/include/asm/sparsemem.h+0−11

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/include/asm/stackprotector.h+38−0

This diff is large: its 39 lines aren’t shown here.

arch/powerpc/include/asm/thread_info.h+15−2

This diff is large: its 61 lines aren’t shown here.

arch/powerpc/include/asm/trace.h+15−0

This diff is large: its 22 lines aren’t shown here.

arch/powerpc/include/asm/uaccess.h+3−3

This diff is large: its 27 lines aren’t shown here.

arch/powerpc/include/asm/unistd.h+2−1

This diff is large: its 24 lines aren’t shown here.

arch/powerpc/include/asm/user.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/include/uapi/asm/Kbuild+1−0

This diff is large: its 5 lines aren’t shown here.

arch/powerpc/include/uapi/asm/ioctls.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/include/uapi/asm/kvm.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/include/uapi/asm/ptrace.h+10−1

This diff is large: its 25 lines aren’t shown here.

arch/powerpc/include/uapi/asm/sigcontext.h+5−1

This diff is large: its 13 lines aren’t shown here.

arch/powerpc/include/uapi/asm/siginfo.h+0−18

This diff is large: its 19 lines aren’t shown here.

arch/powerpc/kernel/Makefile+8−5

This diff is large: its 29 lines aren’t shown here.

arch/powerpc/kernel/asm-offsets.c+15−17

This diff is large: its 101 lines aren’t shown here.

arch/powerpc/kernel/btext.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/kernel/cacheinfo.c+35−2

This diff is large: its 60 lines aren’t shown here.

arch/powerpc/kernel/cpu_setup_power.S+2−2

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/kernel/crash_dump.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/kernel/dma-swiotlb.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/kernel/dt_cpu_ftrs.c+1−3

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/kernel/eeh.c+21−21

This diff is large: its 111 lines aren’t shown here.

arch/powerpc/kernel/eeh_dev.c+0−2

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/kernel/eeh_driver.c+115−122

This diff is large: its 405 lines aren’t shown here.

arch/powerpc/kernel/eeh_pe.c+91−69

This diff is large: its 250 lines aren’t shown here.

arch/powerpc/kernel/entry_32.S+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/kernel/entry_64.S+17−16

This diff is large: its 105 lines aren’t shown here.

arch/powerpc/kernel/exceptions-64s.S+78−166

This diff is large: its 356 lines aren’t shown here.

arch/powerpc/kernel/fadump.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/kernel/head_8xx.S+60−43

This diff is large: its 232 lines aren’t shown here.

arch/powerpc/kernel/io-workarounds.c+2−2

This diff is large: its 13 lines aren’t shown here.

arch/powerpc/kernel/iommu.c+1−1

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/kernel/isa-bridge.c+3−3

This diff is large: its 26 lines aren’t shown here.

arch/powerpc/kernel/kgdb.c+35−8

This diff is large: its 67 lines aren’t shown here.

arch/powerpc/kernel/mce.c+5−4

This diff is large: its 16 lines aren’t shown here.

arch/powerpc/kernel/mce_power.c+8−1

This diff is large: its 23 lines aren’t shown here.

arch/powerpc/kernel/module.c+8−0

This diff is large: its 15 lines aren’t shown here.

arch/powerpc/kernel/module_64.c+8−6

This diff is large: its 28 lines aren’t shown here.

arch/powerpc/kernel/paca.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/kernel/pci_32.c+3−3

This diff is large: its 26 lines aren’t shown here.

arch/powerpc/kernel/pci_64.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/kernel/process.c+63−47

This diff is large: its 265 lines aren’t shown here.

arch/powerpc/kernel/prom.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/kernel/prom_init.c+66−157

This diff is large: its 429 lines aren’t shown here.

arch/powerpc/kernel/prom_init_check.sh+16−0

This diff is large: its 28 lines aren’t shown here.

arch/powerpc/kernel/ptrace.c+59−9

This diff is large: its 139 lines aren’t shown here.

arch/powerpc/kernel/rtas.c+11−2

This diff is large: its 27 lines aren’t shown here.

arch/powerpc/kernel/rtasd.c+9−16

This diff is large: its 61 lines aren’t shown here.

arch/powerpc/kernel/setup-common.c+3−2

This diff is large: its 19 lines aren’t shown here.

arch/powerpc/kernel/setup_32.c+5−5

This diff is large: its 28 lines aren’t shown here.

arch/powerpc/kernel/setup_64.c+20−11

This diff is large: its 66 lines aren’t shown here.

arch/powerpc/kernel/smp.c+244−1

This diff is large: its 338 lines aren’t shown here.

arch/powerpc/kernel/swsusp_asm64.S+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/kernel/time.c+62−42

This diff is large: its 214 lines aren’t shown here.

arch/powerpc/kernel/tm.S+43−32

This diff is large: its 196 lines aren’t shown here.

arch/powerpc/kernel/trace/Makefile+1−3

This diff is large: its 13 lines aren’t shown here.

arch/powerpc/kernel/trace/ftrace.c+257−4

This diff is large: its 333 lines aren’t shown here.

arch/powerpc/kernel/trace/ftrace_64.S+12−0

This diff is large: its 19 lines aren’t shown here.

arch/powerpc/kernel/traps.c+77−80

This diff is large: its 352 lines aren’t shown here.

arch/powerpc/kernel/vdso32/datapage.S+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/kernel/vdso32/gettimeofday.S+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/kernel/vdso64/datapage.S+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/kernel/vdso64/gettimeofday.S+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/kernel/vmlinux.lds.S+15−3

This diff is large: its 46 lines aren’t shown here.

arch/powerpc/kvm/Makefile+2−3

This diff is large: its 19 lines aren’t shown here.

arch/powerpc/kvm/book3s.c+36−10

This diff is large: its 89 lines aren’t shown here.

arch/powerpc/kvm/book3s_64_mmu_hv.c+3−4

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/kvm/book3s_64_mmu_radix.c+546−182

This diff is large: its 1028 lines aren’t shown here.

arch/powerpc/kvm/book3s_64_vio.c+67−27

This diff is large: its 168 lines aren’t shown here.

arch/powerpc/kvm/book3s_64_vio_hv.c+49−38

This diff is large: its 223 lines aren’t shown here.

arch/powerpc/kvm/book3s_emulate.c+6−7

This diff is large: its 55 lines aren’t shown here.

arch/powerpc/kvm/book3s_hv.c+819−57

This diff is large: its 1219 lines aren’t shown here.

arch/powerpc/kvm/book3s_hv_builtin.c+84−8

This diff is large: its 124 lines aren’t shown here.

arch/powerpc/kvm/book3s_hv_interrupts.S+49−46

This diff is large: its 106 lines aren’t shown here.

arch/powerpc/kvm/book3s_hv_nested.c+1291−0

This diff is large: its 1292 lines aren’t shown here.

arch/powerpc/kvm/book3s_hv_ras.c+10−0

This diff is large: its 30 lines aren’t shown here.

arch/powerpc/kvm/book3s_hv_rm_xics.c+10−3

This diff is large: its 34 lines aren’t shown here.

arch/powerpc/kvm/book3s_hv_rmhandlers.S+460−363

This diff is large: its 1100 lines aren’t shown here.

arch/powerpc/kvm/book3s_hv_tm.c+3−3

This diff is large: its 27 lines aren’t shown here.

arch/powerpc/kvm/book3s_hv_tm_builtin.c+3−2

This diff is large: its 17 lines aren’t shown here.

arch/powerpc/kvm/book3s_pr.c+2−3

This diff is large: its 26 lines aren’t shown here.

arch/powerpc/kvm/book3s_xics.c+6−8

This diff is large: its 49 lines aren’t shown here.

arch/powerpc/kvm/book3s_xive.c+63−0

This diff is large: its 70 lines aren’t shown here.

arch/powerpc/kvm/book3s_xive_template.c+0−8

This diff is large: its 15 lines aren’t shown here.

arch/powerpc/kvm/bookehv_interrupts.S+4−4

This diff is large: its 36 lines aren’t shown here.

arch/powerpc/kvm/emulate.c+3−4

This diff is large: its 15 lines aren’t shown here.

arch/powerpc/kvm/emulate_loadstore.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/kvm/powerpc.c+14−1

This diff is large: its 29 lines aren’t shown here.

arch/powerpc/kvm/tm.S+136−114

This diff is large: its 396 lines aren’t shown here.

arch/powerpc/kvm/trace.h+6−2

This diff is large: its 20 lines aren’t shown here.

arch/powerpc/kvm/trace_book3s.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/kvm/trace_booke.h+7−2

This diff is large: its 21 lines aren’t shown here.

arch/powerpc/kvm/trace_hv.h+7−2

This diff is large: its 21 lines aren’t shown here.

arch/powerpc/kvm/trace_pr.h+7−2

This diff is large: its 21 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/alloc.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/lib/code-patching.c+13−10

This diff is large: its 56 lines aren’t shown here.

arch/powerpc/lib/error-inject.c+16−0

This diff is large: its 17 lines aren’t shown here.

arch/powerpc/lib/mem_64.S+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/mm/8xx_mmu.c+11−20

This diff is large: its 82 lines aren’t shown here.

arch/powerpc/mm/Makefile+10−3

This diff is large: its 35 lines aren’t shown here.

arch/powerpc/mm/dma-noncoherent.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/mm/dump_linuxpagetables-8xx.c+82−0

This diff is large: its 83 lines aren’t shown here.

arch/powerpc/mm/dump_linuxpagetables-book3s64.c+120−0

This diff is large: its 121 lines aren’t shown here.

arch/powerpc/mm/dump_linuxpagetables-generic.c+82−0

This diff is large: its 83 lines aren’t shown here.

arch/powerpc/mm/dump_linuxpagetables.c+11−156

This diff is large: its 201 lines aren’t shown here.

arch/powerpc/mm/dump_linuxpagetables.h+19−0

This diff is large: its 20 lines aren’t shown here.

arch/powerpc/mm/fault.c+30−25

This diff is large: its 113 lines aren’t shown here.

arch/powerpc/mm/hash_native_64.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/mm/hash_utils_64.c+7−6

This diff is large: its 48 lines aren’t shown here.

arch/powerpc/mm/hugepage-hash64.c+6−0

This diff is large: its 13 lines aren’t shown here.

arch/powerpc/mm/hugetlbpage-hash64.c+4−0

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/mm/hugetlbpage.c+10−4

This diff is large: its 45 lines aren’t shown here.

arch/powerpc/mm/mem.c+9−9

This diff is large: its 67 lines aren’t shown here.

arch/powerpc/mm/mmu_context_book3s64.c+9−0

This diff is large: its 23 lines aren’t shown here.

arch/powerpc/mm/mmu_context_nohash.c+5−4

This diff is large: its 24 lines aren’t shown here.

arch/powerpc/mm/mmu_decl.h+5−1

This diff is large: its 38 lines aren’t shown here.

arch/powerpc/mm/numa.c+12−6

This diff is large: its 68 lines aren’t shown here.

arch/powerpc/mm/pgtable-book3e.c+3−6

This diff is large: its 38 lines aren’t shown here.

arch/powerpc/mm/pgtable-book3s64.c+8−3

This diff is large: its 26 lines aren’t shown here.

arch/powerpc/mm/pgtable-hash64.c+3−4

This diff is large: its 28 lines aren’t shown here.

arch/powerpc/mm/pgtable-radix.c+28−37

This diff is large: its 116 lines aren’t shown here.

arch/powerpc/mm/pgtable.c+12−20

This diff is large: its 99 lines aren’t shown here.

arch/powerpc/mm/pgtable_32.c+41−31

This diff is large: its 153 lines aren’t shown here.

arch/powerpc/mm/pgtable_64.c+31−26

This diff is large: its 135 lines aren’t shown here.

arch/powerpc/mm/ppc_mmu_32.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/mm/slb.c+548−229

This diff is large: its 974 lines aren’t shown here.

arch/powerpc/mm/slb_low.S+0−335

This diff is large: its 336 lines aren’t shown here.

arch/powerpc/mm/slice.c+30−8

This diff is large: its 115 lines aren’t shown here.

arch/powerpc/mm/tlb-radix.c+10−1

This diff is large: its 32 lines aren’t shown here.

arch/powerpc/mm/tlb_nohash.c+3−0

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/oprofile/Makefile+0−1

This diff is large: its 6 lines aren’t shown here.

arch/powerpc/oprofile/backtrace.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/perf/8xx-pmu.c+12−15

This diff is large: its 63 lines aren’t shown here.

arch/powerpc/perf/Makefile+0−1

This diff is large: its 6 lines aren’t shown here.

arch/powerpc/perf/imc-pmu.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/perf/power7-pmu.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/40x/Kconfig+1−9

This diff is large: its 76 lines aren’t shown here.

arch/powerpc/platforms/44x/Kconfig+2−22

This diff is large: its 183 lines aren’t shown here.

arch/powerpc/platforms/44x/fsp2.c+4−4

This diff is large: its 20 lines aren’t shown here.

arch/powerpc/platforms/4xx/ocm.c+2−5

This diff is large: its 30 lines aren’t shown here.

arch/powerpc/platforms/4xx/soc.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/82xx/Kconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/85xx/smp.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/8xx/m8xx_setup.c+3−2

This diff is large: its 20 lines aren’t shown here.

arch/powerpc/platforms/8xx/machine_check.c+2−2

This diff is large: its 12 lines aren’t shown here.

arch/powerpc/platforms/Kconfig+0−21

This diff is large: its 129 lines aren’t shown here.

arch/powerpc/platforms/Kconfig.cputype+1−4

This diff is large: its 40 lines aren’t shown here.

arch/powerpc/platforms/Makefile+0−2

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/cell/Kconfig+0−3

This diff is large: its 24 lines aren’t shown here.

arch/powerpc/platforms/cell/cpufreq_spudemand.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/cell/spu_base.c+2−2

This diff is large: its 14 lines aren’t shown here.

arch/powerpc/platforms/cell/spu_manage.c+6−19

This diff is large: its 51 lines aren’t shown here.

arch/powerpc/platforms/cell/spufs/fault.c+8−18

This diff is large: its 51 lines aren’t shown here.

arch/powerpc/platforms/cell/spufs/sched.c+3−6

This diff is large: its 23 lines aren’t shown here.

arch/powerpc/platforms/embedded6xx/wii.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/maple/Kconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/pasemi/Kconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/pasemi/dma_lib.c+1−1

This diff is large: its 9 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/powermac/Makefile+2−1

This diff is large: its 12 lines aren’t shown here.

arch/powerpc/platforms/powermac/feature.c+18−33

This diff is large: its 102 lines aren’t shown here.

arch/powerpc/platforms/powermac/nvram.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/platforms/powermac/setup.c+8−7

This diff is large: its 44 lines aren’t shown here.

arch/powerpc/platforms/powermac/time.c+20−106

This diff is large: its 187 lines aren’t shown here.

arch/powerpc/platforms/powernv/Kconfig+0−6

This diff is large: its 20 lines aren’t shown here.

arch/powerpc/platforms/powernv/eeh-powernv.c+5−57

This diff is large: its 125 lines aren’t shown here.

arch/powerpc/platforms/powernv/memtrace.c+20−5

This diff is large: its 66 lines aren’t shown here.

arch/powerpc/platforms/powernv/npu-dma.c+98−164

This diff is large: its 366 lines aren’t shown here.

arch/powerpc/platforms/powernv/opal-powercap.c+2−1

This diff is large: its 17 lines aren’t shown here.

arch/powerpc/platforms/powernv/opal-sensor-groups.c+2−2

This diff is large: its 12 lines aren’t shown here.

arch/powerpc/platforms/powernv/opal-sysparam.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/powernv/opal.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/platforms/powernv/pci-ioda.c+4−5

This diff is large: its 40 lines aren’t shown here.

arch/powerpc/platforms/powernv/setup.c+41−6

This diff is large: its 73 lines aren’t shown here.

arch/powerpc/platforms/ps3/Kconfig+0−2

This diff is large: its 16 lines aren’t shown here.

arch/powerpc/platforms/ps3/os-area.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/ps3/setup.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/platforms/ps3/spu.c+1−2

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/platforms/pseries/Kconfig+7−2

This diff is large: its 27 lines aren’t shown here.

arch/powerpc/platforms/pseries/Makefile+2−1

This diff is large: its 17 lines aren’t shown here.

arch/powerpc/platforms/pseries/dlpar.c+13−28

This diff is large: its 117 lines aren’t shown here.

arch/powerpc/platforms/pseries/dtl.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/platforms/pseries/eeh_pseries.c+4−62

This diff is large: its 101 lines aren’t shown here.

arch/powerpc/platforms/pseries/event_sources.c+13−27

This diff is large: its 56 lines aren’t shown here.

arch/powerpc/platforms/pseries/firmware.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/pseries/hotplug-cpu.c+14−14

This diff is large: its 85 lines aren’t shown here.

arch/powerpc/platforms/pseries/hotplug-memory.c+48−76

This diff is large: its 218 lines aren’t shown here.

arch/powerpc/platforms/pseries/ibmebus.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/pseries/lpar.c+280−15

This diff is large: its 364 lines aren’t shown here.

arch/powerpc/platforms/pseries/lparcfg.c+15−3

This diff is large: its 60 lines aren’t shown here.

arch/powerpc/platforms/pseries/mobility.c+11−12

This diff is large: its 52 lines aren’t shown here.

arch/powerpc/platforms/pseries/msi.c+2−1

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/platforms/pseries/papr_scm.c+345−0

This diff is large: its 346 lines aren’t shown here.

arch/powerpc/platforms/pseries/pci.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/pseries/pmem.c+164−0

This diff is large: its 165 lines aren’t shown here.

arch/powerpc/platforms/pseries/pseries.h+9−2

This diff is large: its 32 lines aren’t shown here.

arch/powerpc/platforms/pseries/ras.c+305−3

This diff is large: its 356 lines aren’t shown here.

arch/powerpc/platforms/pseries/setup.c+14−0

This diff is large: its 35 lines aren’t shown here.

arch/powerpc/platforms/pseries/vio.c+13−14

This diff is large: its 79 lines aren’t shown here.

arch/powerpc/sysdev/Kconfig+0−5

This diff is large: its 32 lines aren’t shown here.

arch/powerpc/sysdev/Makefile+0−3

This diff is large: its 15 lines aren’t shown here.

arch/powerpc/sysdev/dart_iommu.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/sysdev/fsl_85xx_cache_sram.c+4−4

This diff is large: its 16 lines aren’t shown here.

arch/powerpc/sysdev/ipic.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/sysdev/msi_bitmap.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/sysdev/xics/Makefile+0−1

This diff is large: its 6 lines aren’t shown here.

arch/powerpc/sysdev/xive/Kconfig+0−3

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/sysdev/xive/Makefile+0−1

This diff is large: its 5 lines aren’t shown here.

arch/powerpc/sysdev/xive/common.c+4−3

This diff is large: its 17 lines aren’t shown here.

arch/powerpc/sysdev/xive/native.c+1−10

This diff is large: its 22 lines aren’t shown here.

arch/powerpc/xmon/Makefile+9−2

This diff is large: its 24 lines aren’t shown here.

arch/powerpc/xmon/xmon.c+36−20

This diff is large: its 98 lines aren’t shown here.

arch/riscv/Kconfig+50−3

This diff is large: its 86 lines aren’t shown here.

arch/riscv/Kconfig.debug+0−35

This diff is large: its 38 lines aren’t shown here.

arch/riscv/Makefile+12−13

This diff is large: its 51 lines aren’t shown here.

arch/riscv/configs/defconfig+9−8

This diff is large: its 43 lines aren’t shown here.

arch/riscv/include/asm/Kbuild+0−1

This diff is large: its 8 lines aren’t shown here.

arch/riscv/include/asm/elf.h+0−3

This diff is large: its 10 lines aren’t shown here.

arch/riscv/include/asm/futex.h+128−0

This diff is large: its 129 lines aren’t shown here.

arch/riscv/include/asm/processor.h+1−7

This diff is large: its 22 lines aren’t shown here.

arch/riscv/include/asm/ptrace.h+2−2

This diff is large: its 11 lines aren’t shown here.

arch/riscv/include/asm/smp.h+36−11

This diff is large: its 68 lines aren’t shown here.

arch/riscv/include/asm/switch_to.h+11−1

This diff is large: its 33 lines aren’t shown here.

arch/riscv/include/asm/tlbflush.h+13−3

This diff is large: its 34 lines aren’t shown here.

arch/riscv/include/asm/unistd.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/riscv/include/uapi/asm/Kbuild+1−0

This diff is large: its 5 lines aren’t shown here.

arch/riscv/include/uapi/asm/elf.h+3−0

This diff is large: its 11 lines aren’t shown here.

arch/riscv/include/uapi/asm/siginfo.h+0−24

This diff is large: its 25 lines aren’t shown here.

arch/riscv/kernel/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

arch/riscv/kernel/cacheinfo.c+0−7

This diff is large: its 14 lines aren’t shown here.

arch/riscv/kernel/cpu.c+74−13

This diff is large: its 113 lines aren’t shown here.

arch/riscv/kernel/cpufeature.c+20−3

This diff is large: its 47 lines aren’t shown here.

arch/riscv/kernel/entry.S+0−88

This diff is large: its 102 lines aren’t shown here.

arch/riscv/kernel/fpu.S+106−0

This diff is large: its 107 lines aren’t shown here.

arch/riscv/kernel/head.S+3−1

This diff is large: its 18 lines aren’t shown here.

arch/riscv/kernel/irq.c+10−2

This diff is large: its 30 lines aren’t shown here.

arch/riscv/kernel/mcount.S+0−1

This diff is large: its 8 lines aren’t shown here.

arch/riscv/kernel/module.c+6−6

This diff is large: its 54 lines aren’t shown here.

arch/riscv/kernel/process.c+5−1

This diff is large: its 26 lines aren’t shown here.

arch/riscv/kernel/ptrace.c+52−0

This diff is large: its 73 lines aren’t shown here.

arch/riscv/kernel/setup.c+14−1

This diff is large: its 37 lines aren’t shown here.

arch/riscv/kernel/signal.c+48−27

This diff is large: its 109 lines aren’t shown here.

arch/riscv/kernel/smp.c+66−16

This diff is large: its 142 lines aren’t shown here.

arch/riscv/kernel/smpboot.c+32−14

This diff is large: its 89 lines aren’t shown here.

arch/riscv/lib/Makefile+2−1

This diff is large: its 9 lines aren’t shown here.

arch/riscv/mm/init.c+2−3

This diff is large: its 20 lines aren’t shown here.

arch/riscv/mm/ioremap.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/s390/Kconfig+21−2

This diff is large: its 70 lines aren’t shown here.

arch/s390/Makefile+1−1

This diff is large: its 9 lines aren’t shown here.

arch/s390/appldata/appldata_base.c+23−10

This diff is large: its 48 lines aren’t shown here.

arch/s390/appldata/appldata_os.c+0−4

This diff is large: its 11 lines aren’t shown here.

arch/s390/boot/.gitignore+1−0

This diff is large: its 4 lines aren’t shown here.

arch/s390/boot/Makefile+21−3

This diff is large: its 44 lines aren’t shown here.

arch/s390/boot/boot.h+11−0

This diff is large: its 12 lines aren’t shown here.

arch/s390/boot/cmdline.c+2−0

This diff is large: its 3 lines aren’t shown here.

arch/s390/boot/compressed/Makefile+23−28

This diff is large: its 86 lines aren’t shown here.

arch/s390/boot/compressed/decompressor.c+85−0

This diff is large: its 86 lines aren’t shown here.

arch/s390/boot/compressed/decompressor.h+25−0

This diff is large: its 26 lines aren’t shown here.

arch/s390/boot/compressed/head.S+0−52

This diff is large: its 53 lines aren’t shown here.

arch/s390/boot/compressed/misc.c+0−116

This diff is large: its 117 lines aren’t shown here.

arch/s390/boot/compressed/vmlinux.lds.S+18−6

This diff is large: its 57 lines aren’t shown here.

arch/s390/boot/compressed/vmlinux.scr.lds.S+0−15

This diff is large: its 16 lines aren’t shown here.

arch/s390/boot/ctype.c+2−0

This diff is large: its 3 lines aren’t shown here.

arch/s390/boot/head.S+5−7

This diff is large: its 29 lines aren’t shown here.

arch/s390/boot/ipl_parm.c+182−0

This diff is large: its 183 lines aren’t shown here.

arch/s390/boot/ipl_vmparm.c+2−0

This diff is large: its 3 lines aren’t shown here.

arch/s390/boot/mem_detect.c+182−0

This diff is large: its 183 lines aren’t shown here.

arch/s390/boot/startup.c+64−0

This diff is large: its 65 lines aren’t shown here.

arch/s390/boot/string.c+138−0

This diff is large: its 139 lines aren’t shown here.

arch/s390/configs/debug_defconfig+11−4

This diff is large: its 81 lines aren’t shown here.

arch/s390/configs/performance_defconfig+11−3

This diff is large: its 73 lines aren’t shown here.

arch/s390/crypto/aes_s390.c+24−24

This diff is large: its 146 lines aren’t shown here.

arch/s390/crypto/paes_s390.c+37−26

This diff is large: its 171 lines aren’t shown here.

arch/s390/defconfig+41−38

This diff is large: its 146 lines aren’t shown here.

arch/s390/hypfs/hypfs_sprp.c+23−19

This diff is large: its 64 lines aren’t shown here.

arch/s390/include/asm/appldata.h+10−9

This diff is large: its 37 lines aren’t shown here.

arch/s390/include/asm/boot_data.h+11−0

This diff is large: its 12 lines aren’t shown here.

arch/s390/include/asm/ccwgroup.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/s390/include/asm/compat.h+2−16

This diff is large: its 44 lines aren’t shown here.

arch/s390/include/asm/facility.h+7−2

This diff is large: its 26 lines aren’t shown here.

arch/s390/include/asm/ipl.h+2−2

This diff is large: its 11 lines aren’t shown here.

arch/s390/include/asm/jump_label.h+16−24

This diff is large: its 58 lines aren’t shown here.

arch/s390/include/asm/kasan.h+30−0

This diff is large: its 31 lines aren’t shown here.

arch/s390/include/asm/kvm_host.h+14−1

This diff is large: its 57 lines aren’t shown here.

arch/s390/include/asm/lowcore.h+2−2

This diff is large: its 12 lines aren’t shown here.

arch/s390/include/asm/mem_detect.h+82−0

This diff is large: its 83 lines aren’t shown here.

arch/s390/include/asm/mmu.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/s390/include/asm/mmu_context.h+1−5

This diff is large: its 27 lines aren’t shown here.

arch/s390/include/asm/page.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/s390/include/asm/pgalloc.h+3−3

This diff is large: its 15 lines aren’t shown here.

arch/s390/include/asm/pgtable.h+37−1

This diff is large: its 80 lines aren’t shown here.

arch/s390/include/asm/pkey.h+26−0

This diff is large: its 31 lines aren’t shown here.

arch/s390/include/asm/processor.h+51−8

This diff is large: its 87 lines aren’t shown here.

arch/s390/include/asm/qdio.h+0−2

This diff is large: its 14 lines aren’t shown here.

arch/s390/include/asm/sclp.h+7−1

This diff is large: its 27 lines aren’t shown here.

arch/s390/include/asm/sections.h+12−0

This diff is large: its 17 lines aren’t shown here.

arch/s390/include/asm/setup.h+1−2

This diff is large: its 14 lines aren’t shown here.

arch/s390/include/asm/string.h+21−0

This diff is large: its 28 lines aren’t shown here.

arch/s390/include/asm/thread_info.h+9−4

This diff is large: its 29 lines aren’t shown here.

arch/s390/include/asm/tlb.h+3−3

This diff is large: its 27 lines aren’t shown here.

arch/s390/include/asm/unistd.h+2−1

This diff is large: its 24 lines aren’t shown here.

arch/s390/include/asm/vmlinux.lds.h+20−0

This diff is large: its 21 lines aren’t shown here.

arch/s390/include/uapi/asm/Kbuild+1−0

This diff is large: its 5 lines aren’t shown here.

arch/s390/include/uapi/asm/kvm.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/s390/include/uapi/asm/pkey.h+34−0

This diff is large: its 49 lines aren’t shown here.

arch/s390/include/uapi/asm/siginfo.h+0−17

This diff is large: its 18 lines aren’t shown here.

arch/s390/include/uapi/asm/zcrypt.h+16−3

This diff is large: its 46 lines aren’t shown here.

arch/s390/kernel/Makefile+5−1

This diff is large: its 20 lines aren’t shown here.

arch/s390/kernel/asm-offsets.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/s390/kernel/base.S+1−1

This diff is large: its 9 lines aren’t shown here.

arch/s390/kernel/crash_dump.c+2−3

This diff is large: its 21 lines aren’t shown here.

arch/s390/kernel/dumpstack.c+5−5

This diff is large: its 33 lines aren’t shown here.

arch/s390/kernel/early.c+3−44

This diff is large: its 66 lines aren’t shown here.

arch/s390/kernel/early_nobss.c+2−22

This diff is large: its 45 lines aren’t shown here.

arch/s390/kernel/early_printk.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/s390/kernel/entry.S+39−20

This diff is large: its 139 lines aren’t shown here.

arch/s390/kernel/entry.h+3−0

This diff is large: its 8 lines aren’t shown here.

arch/s390/kernel/head64.S+2−4

This diff is large: its 20 lines aren’t shown here.

arch/s390/kernel/ipl.c+13−106

This diff is large: its 170 lines aren’t shown here.

arch/s390/kernel/ipl_vmparm.c+36−0

This diff is large: its 37 lines aren’t shown here.

arch/s390/kernel/irq.c+1−9

This diff is large: its 17 lines aren’t shown here.

arch/s390/kernel/jump_label.c+6−5

This diff is large: its 41 lines aren’t shown here.

arch/s390/kernel/machine_kexec.c+13−4

This diff is large: its 32 lines aren’t shown here.

arch/s390/kernel/module.c+11−4

This diff is large: its 31 lines aren’t shown here.

arch/s390/kernel/perf_cpum_cf.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/s390/kernel/perf_cpum_sf.c+33−6

This diff is large: its 71 lines aren’t shown here.

arch/s390/kernel/setup.c+173−47

This diff is large: its 349 lines aren’t shown here.

arch/s390/kernel/smp.c+53−39

This diff is large: its 212 lines aren’t shown here.

arch/s390/kernel/sthyi.c+5−3

This diff is large: its 23 lines aren’t shown here.

arch/s390/kernel/swsusp.S+6−9

This diff is large: its 31 lines aren’t shown here.

arch/s390/kernel/topology.c+3−3

This diff is large: its 27 lines aren’t shown here.

arch/s390/kernel/vdso.c+6−4

This diff is large: its 39 lines aren’t shown here.

arch/s390/kernel/vdso32/Makefile+5−4

This diff is large: its 34 lines aren’t shown here.

arch/s390/kernel/vdso32/clock_gettime.S+10−9

This diff is large: its 58 lines aren’t shown here.

arch/s390/kernel/vdso32/gettimeofday.S+2−1

This diff is large: its 17 lines aren’t shown here.

arch/s390/kernel/vdso64/Makefile+5−4

This diff is large: its 34 lines aren’t shown here.

arch/s390/kernel/vdso64/clock_gettime.S+13−12

This diff is large: its 75 lines aren’t shown here.

arch/s390/kernel/vdso64/gettimeofday.S+2−1

This diff is large: its 17 lines aren’t shown here.

arch/s390/kernel/vmlinux.lds.S+17−0

This diff is large: its 45 lines aren’t shown here.

arch/s390/kvm/kvm-s390.c+142−42

This diff is large: its 322 lines aren’t shown here.

arch/s390/kvm/kvm-s390.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/s390/kvm/vsie.c+192−18

This diff is large: its 286 lines aren’t shown here.

arch/s390/lib/Makefile+4−0

This diff is large: its 10 lines aren’t shown here.

arch/s390/lib/mem.S+9−3

This diff is large: its 54 lines aren’t shown here.

arch/s390/mm/Makefile+4−2

This diff is large: its 15 lines aren’t shown here.

arch/s390/mm/dump_pagetables.c+50−8

This diff is large: its 120 lines aren’t shown here.

arch/s390/mm/extmem.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/s390/mm/fault.c+21−17

This diff is large: its 66 lines aren’t shown here.

arch/s390/mm/gmap.c+8−2

This diff is large: its 19 lines aren’t shown here.

arch/s390/mm/init.c+6−4

This diff is large: its 53 lines aren’t shown here.

arch/s390/mm/kasan_init.c+387−0

This diff is large: its 388 lines aren’t shown here.

arch/s390/mm/maccess.c+20−5

This diff is large: its 45 lines aren’t shown here.

arch/s390/mm/mem_detect.c+0−62

This diff is large: its 63 lines aren’t shown here.

arch/s390/mm/pgalloc.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/s390/mm/vmem.c+3−4

This diff is large: its 34 lines aren’t shown here.

arch/s390/numa/mode_emu.c+1−2

This diff is large: its 17 lines aren’t shown here.

arch/s390/numa/numa.c+2−2

This diff is large: its 25 lines aren’t shown here.

arch/s390/numa/toptree.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/s390/purgatory/head.S+2−2

This diff is large: its 18 lines aren’t shown here.

arch/s390/tools/gen_facilities.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/sh/Kconfig+1−4

This diff is large: its 26 lines aren’t shown here.

arch/sh/boards/mach-ecovec24/setup.c+25−2

This diff is large: its 62 lines aren’t shown here.

arch/sh/boards/mach-migor/setup.c+6−8

This diff is large: its 38 lines aren’t shown here.

arch/sh/boards/of-generic.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/include/asm/hugetlb.h+4−50

This diff is large: its 83 lines aren’t shown here.

arch/sh/include/asm/processor_32.h+0−6

This diff is large: its 13 lines aren’t shown here.

arch/sh/include/asm/processor_64.h+0−15

This diff is large: its 22 lines aren’t shown here.

arch/sh/include/asm/unistd.h+1−1

This diff is large: its 16 lines aren’t shown here.

arch/sh/include/uapi/asm/ioctls.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/sh/mm/init.c+4−5

This diff is large: its 41 lines aren’t shown here.

arch/sh/mm/ioremap_fixed.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sparc/Kconfig+1−3

This diff is large: its 15 lines aren’t shown here.

arch/sparc/include/asm/cmpxchg_64.h+6−1

This diff is large: its 14 lines aren’t shown here.

arch/sparc/include/asm/compat.h+5−20

This diff is large: its 56 lines aren’t shown here.

arch/sparc/include/asm/cpudata_64.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sparc/include/asm/dma-mapping.h+2−2

This diff is large: its 14 lines aren’t shown here.

arch/sparc/include/asm/hugetlb.h+8−32

This diff is large: its 89 lines aren’t shown here.

arch/sparc/include/asm/parport.h+2−0

This diff is large: its 16 lines aren’t shown here.

arch/sparc/include/asm/processor_32.h+0−6

This diff is large: its 13 lines aren’t shown here.

arch/sparc/include/asm/processor_64.h+0−6

This diff is large: its 13 lines aren’t shown here.

arch/sparc/include/asm/prom.h+0−3

This diff is large: its 10 lines aren’t shown here.

arch/sparc/include/asm/switch_to_64.h+2−1

This diff is large: its 9 lines aren’t shown here.

arch/sparc/include/asm/thread_info_64.h+4−0

This diff is large: its 13 lines aren’t shown here.

arch/sparc/include/asm/unistd.h+2−1

This diff is large: its 24 lines aren’t shown here.

arch/sparc/include/asm/vdso.h+1−3

This diff is large: its 12 lines aren’t shown here.

arch/sparc/include/uapi/asm/ioctls.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/sparc/include/uapi/asm/siginfo.h+0−7

This diff is large: its 19 lines aren’t shown here.

arch/sparc/include/uapi/asm/unistd.h+2−1

This diff is large: its 11 lines aren’t shown here.

arch/sparc/kernel/kgdb_32.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sparc/kernel/kgdb_64.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sparc/kernel/mdesc.c+3−4

This diff is large: its 33 lines aren’t shown here.

arch/sparc/kernel/perf_event.c+22−9

This diff is large: its 117 lines aren’t shown here.

arch/sparc/kernel/process_64.c+19−6

This diff is large: its 62 lines aren’t shown here.

arch/sparc/kernel/prom_32.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/sparc/kernel/prom_64.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sparc/kernel/rtrap_64.S+3−1

This diff is large: its 19 lines aren’t shown here.

arch/sparc/kernel/setup_64.c+5−7

This diff is large: its 26 lines aren’t shown here.

arch/sparc/kernel/signal32.c+10−2

This diff is large: its 26 lines aren’t shown here.

arch/sparc/kernel/signal_64.c+5−1

This diff is large: its 13 lines aren’t shown here.

arch/sparc/kernel/smp_64.c+9−9

This diff is large: its 68 lines aren’t shown here.

arch/sparc/kernel/systbls_32.S+1−1

This diff is large: its 6 lines aren’t shown here.

arch/sparc/kernel/systbls_64.S+4−4

This diff is large: its 27 lines aren’t shown here.

arch/sparc/kernel/time_64.c+0−3

This diff is large: its 17 lines aren’t shown here.

arch/sparc/kernel/viohs.c+9−3

This diff is large: its 29 lines aren’t shown here.

arch/sparc/mm/init_32.c+2−3

This diff is large: its 26 lines aren’t shown here.

arch/sparc/mm/init_64.c+16−12

This diff is large: its 102 lines aren’t shown here.

arch/sparc/mm/srmmu.c+6−6

This diff is large: its 36 lines aren’t shown here.

arch/sparc/vdso/Makefile+20−21

This diff is large: its 87 lines aren’t shown here.

arch/sparc/vdso/checkundef.sh+10−0

This diff is large: its 11 lines aren’t shown here.

arch/sparc/vdso/vclock_gettime.c+165−56

This diff is large: its 334 lines aren’t shown here.

arch/sparc/vdso/vdso-layout.lds.S+0−6

This diff is large: its 13 lines aren’t shown here.

arch/sparc/vdso/vdso.lds.S+2−0

This diff is large: its 11 lines aren’t shown here.

arch/sparc/vdso/vdso2c.c+0−6

This diff is large: its 20 lines aren’t shown here.

arch/sparc/vdso/vdso2c.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/sparc/vdso/vdso32/vdso32.lds.S+2−0

This diff is large: its 11 lines aren’t shown here.

arch/sparc/vdso/vma.c+213−24

This diff is large: its 286 lines aren’t shown here.

arch/um/drivers/line.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/um/drivers/net_kern.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/um/drivers/port_user.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/um/drivers/ubd_kern.c+99−137

This diff is large: its 367 lines aren’t shown here.

arch/um/drivers/vector_kern.c+7−12

This diff is large: its 40 lines aren’t shown here.

arch/um/drivers/vector_user.c+2−4

This diff is large: its 20 lines aren’t shown here.

arch/um/include/asm/common.lds.S+0−2

This diff is large: its 9 lines aren’t shown here.

arch/um/include/shared/aio.h+0−28

This diff is large: its 29 lines aren’t shown here.

arch/um/kernel/initrd.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/um/kernel/irq.c+1−2

This diff is large: its 10 lines aren’t shown here.

arch/um/kernel/mem.c+9−7

This diff is large: its 61 lines aren’t shown here.

arch/um/kernel/physmem.c+10−13

This diff is large: its 57 lines aren’t shown here.

arch/um/kernel/trap.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/um/os-Linux/Makefile+2−6

This diff is large: its 21 lines aren’t shown here.

arch/um/os-Linux/aio.c+0−390

This diff is large: its 391 lines aren’t shown here.

arch/um/os-Linux/skas/process.c+5−0

This diff is large: its 12 lines aren’t shown here.

arch/unicore32/Kconfig+1−2

This diff is large: its 17 lines aren’t shown here.

arch/unicore32/include/asm/Kbuild+1−0

This diff is large: its 8 lines aren’t shown here.

arch/unicore32/include/asm/bug.h+2−1

This diff is large: its 9 lines aren’t shown here.

arch/unicore32/include/asm/dma-mapping.h+0−22

This diff is large: its 23 lines aren’t shown here.

arch/unicore32/include/asm/processor.h+0−6

This diff is large: its 13 lines aren’t shown here.

arch/unicore32/include/uapi/asm/unistd.h+1−0

This diff is large: its 6 lines aren’t shown here.

arch/unicore32/kernel/fpu-ucf64.c+3−9

This diff is large: its 26 lines aren’t shown here.

arch/unicore32/kernel/hibernate.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/unicore32/kernel/setup.c+2−3

This diff is large: its 26 lines aren’t shown here.

arch/unicore32/kernel/traps.c+3−2

This diff is large: its 17 lines aren’t shown here.

arch/unicore32/mm/fault.c+5−22

This diff is large: its 62 lines aren’t shown here.

arch/unicore32/mm/init.c+4−60

This diff is large: its 105 lines aren’t shown here.

arch/unicore32/mm/mmu.c+1−2

This diff is large: its 17 lines aren’t shown here.

arch/x86/Kconfig+17−14

This diff is large: its 150 lines aren’t shown here.

arch/x86/Kconfig.cpu+14−0

This diff is large: its 21 lines aren’t shown here.

arch/x86/Kconfig.debug+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/Makefile+7−3

This diff is large: its 31 lines aren’t shown here.

arch/x86/boot/compressed/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/boot/compressed/eboot.c+10−0

This diff is large: its 24 lines aren’t shown here.

arch/x86/boot/compressed/kaslr.c+8−10

This diff is large: its 58 lines aren’t shown here.

arch/x86/boot/compressed/misc.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/boot/cpucheck.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/boot/early_serial_console.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/x86/boot/edd.c+3−3

This diff is large: its 27 lines aren’t shown here.

arch/x86/boot/header.S+5−1

This diff is large: its 20 lines aren’t shown here.

arch/x86/boot/main.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/x86/boot/memory.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/boot/regs.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/boot/tools/build.c+7−0

This diff is large: its 14 lines aren’t shown here.

arch/x86/boot/video-vesa.c+3−3

This diff is large: its 27 lines aren’t shown here.

arch/x86/boot/video.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/configs/i386_defconfig+1−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/configs/x86_64_defconfig+1−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/crypto/Makefile+1−4

This diff is large: its 19 lines aren’t shown here.

arch/x86/crypto/aesni-intel_glue.c+2−45

This diff is large: its 105 lines aren’t shown here.

arch/x86/crypto/fpu.c+0−207

This diff is large: its 208 lines aren’t shown here.

arch/x86/crypto/sha1-mb/Makefile+0−14

This diff is large: its 15 lines aren’t shown here.

arch/x86/crypto/sha1-mb/sha1_mb.c+0−1011

This diff is large: its 1012 lines aren’t shown here.

arch/x86/crypto/sha1-mb/sha1_mb_ctx.h+0−134

This diff is large: its 135 lines aren’t shown here.

arch/x86/crypto/sha1-mb/sha1_mb_mgr.h+0−110

This diff is large: its 111 lines aren’t shown here.

arch/x86/crypto/sha1-mb/sha1_mb_mgr_datastruct.S+0−287

This diff is large: its 288 lines aren’t shown here.

arch/x86/crypto/sha1-mb/sha1_mb_mgr_flush_avx2.S+0−304

This diff is large: its 305 lines aren’t shown here.

arch/x86/crypto/sha1-mb/sha1_mb_mgr_init_avx2.c+0−64

This diff is large: its 65 lines aren’t shown here.

arch/x86/crypto/sha1-mb/sha1_mb_mgr_submit_avx2.S+0−209

This diff is large: its 210 lines aren’t shown here.

arch/x86/crypto/sha1-mb/sha1_x8_avx2.S+0−492

This diff is large: its 493 lines aren’t shown here.

arch/x86/crypto/sha256-mb/Makefile+0−14

This diff is large: its 15 lines aren’t shown here.

arch/x86/crypto/sha256-mb/sha256_mb.c+0−1013

This diff is large: its 1014 lines aren’t shown here.

arch/x86/crypto/sha256-mb/sha256_mb_ctx.h+0−134

This diff is large: its 135 lines aren’t shown here.

arch/x86/crypto/sha256-mb/sha256_mb_mgr.h+0−108

This diff is large: its 109 lines aren’t shown here.

arch/x86/crypto/sha256-mb/sha256_mb_mgr_datastruct.S+0−304

This diff is large: its 305 lines aren’t shown here.

arch/x86/crypto/sha256-mb/sha256_mb_mgr_flush_avx2.S+0−307

This diff is large: its 308 lines aren’t shown here.

arch/x86/crypto/sha256-mb/sha256_mb_mgr_init_avx2.c+0−65

This diff is large: its 66 lines aren’t shown here.

arch/x86/crypto/sha256-mb/sha256_mb_mgr_submit_avx2.S+0−214

This diff is large: its 215 lines aren’t shown here.

arch/x86/crypto/sha256-mb/sha256_x8_avx2.S+0−598

This diff is large: its 599 lines aren’t shown here.

arch/x86/crypto/sha512-mb/Makefile+0−12

This diff is large: its 13 lines aren’t shown here.

arch/x86/crypto/sha512-mb/sha512_mb.c+0−1047

This diff is large: its 1048 lines aren’t shown here.

arch/x86/crypto/sha512-mb/sha512_mb_ctx.h+0−128

This diff is large: its 129 lines aren’t shown here.

arch/x86/crypto/sha512-mb/sha512_mb_mgr.h+0−104

This diff is large: its 105 lines aren’t shown here.

arch/x86/crypto/sha512-mb/sha512_mb_mgr_datastruct.S+0−281

This diff is large: its 282 lines aren’t shown here.

arch/x86/crypto/sha512-mb/sha512_mb_mgr_flush_avx2.S+0−297

This diff is large: its 298 lines aren’t shown here.

arch/x86/crypto/sha512-mb/sha512_mb_mgr_submit_avx2.S+0−224

This diff is large: its 225 lines aren’t shown here.

arch/x86/crypto/sha512-mb/sha512_x4_avx2.S+0−531

This diff is large: its 532 lines aren’t shown here.

arch/x86/entry/calling.h+15−1

This diff is large: its 32 lines aren’t shown here.

arch/x86/entry/entry_32.S+19−9

This diff is large: its 95 lines aren’t shown here.

arch/x86/entry/entry_64.S+66−75

This diff is large: its 231 lines aren’t shown here.

arch/x86/entry/entry_64_compat.S+5−0

This diff is large: its 12 lines aren’t shown here.

arch/x86/entry/vdso/Makefile+14−2

This diff is large: its 30 lines aren’t shown here.

arch/x86/entry/vdso/vclock_gettime.c+66−154

This diff is large: its 314 lines aren’t shown here.

arch/x86/entry/vdso/vgetcpu.c+1−7

This diff is large: its 16 lines aren’t shown here.

arch/x86/entry/vdso/vma.c+10−52

This diff is large: its 112 lines aren’t shown here.

arch/x86/entry/vsyscall/vsyscall_64.c+1−8

This diff is large: its 22 lines aren’t shown here.

arch/x86/entry/vsyscall/vsyscall_gtod.c+28−23

This diff is large: its 70 lines aren’t shown here.

arch/x86/events/amd/core.c+4−0

This diff is large: its 11 lines aren’t shown here.

arch/x86/events/amd/uncore.c+23−7

This diff is large: its 85 lines aren’t shown here.

arch/x86/events/core.c+33−8

This diff is large: its 99 lines aren’t shown here.

arch/x86/events/intel/core.c+272−76

This diff is large: its 566 lines aren’t shown here.

arch/x86/events/intel/cstate.c+4−4

This diff is large: its 23 lines aren’t shown here.

arch/x86/events/intel/pt.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/events/intel/rapl.c+2−2

This diff is large: its 12 lines aren’t shown here.

arch/x86/events/intel/uncore.h+25−8

This diff is large: its 52 lines aren’t shown here.

arch/x86/events/intel/uncore_snb.c+119−2

This diff is large: its 156 lines aren’t shown here.

arch/x86/events/intel/uncore_snbep.c+7−7

This diff is large: its 32 lines aren’t shown here.

arch/x86/events/msr.c+4−4

This diff is large: its 19 lines aren’t shown here.

arch/x86/events/perf_event.h+3−1

This diff is large: its 13 lines aren’t shown here.

arch/x86/hyperv/Makefile+4−0

This diff is large: its 7 lines aren’t shown here.

arch/x86/hyperv/hv_apic.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/hyperv/hv_init.c+19−0

This diff is large: its 40 lines aren’t shown here.

arch/x86/hyperv/hv_spinlock.c+88−0

This diff is large: its 89 lines aren’t shown here.

arch/x86/hyperv/mmu.c+2−2

This diff is large: its 9 lines aren’t shown here.

arch/x86/include/asm/acpi.h+7−0

This diff is large: its 21 lines aren’t shown here.

arch/x86/include/asm/alternative-asm.h+14−6

This diff is large: its 31 lines aren’t shown here.

arch/x86/include/asm/alternative.h+2−9

This diff is large: its 18 lines aren’t shown here.

arch/x86/include/asm/amd_nb.h+3−0

This diff is large: its 10 lines aren’t shown here.

arch/x86/include/asm/asm.h+25−32

This diff is large: its 84 lines aren’t shown here.

arch/x86/include/asm/atomic.h+4−4

This diff is large: its 36 lines aren’t shown here.

arch/x86/include/asm/atomic64_64.h+4−4

This diff is large: its 36 lines aren’t shown here.

arch/x86/include/asm/bitops.h+3−6

This diff is large: its 30 lines aren’t shown here.

arch/x86/include/asm/bug.h+56−42

This diff is large: its 122 lines aren’t shown here.

arch/x86/include/asm/cacheinfo.h+1−0

This diff is large: its 7 lines aren’t shown here.

arch/x86/include/asm/cmpxchg.h+6−4

This diff is large: its 17 lines aren’t shown here.

arch/x86/include/asm/compat.h+11−19

This diff is large: its 65 lines aren’t shown here.

arch/x86/include/asm/cpu_entry_area.h+0−2

This diff is large: its 9 lines aren’t shown here.

arch/x86/include/asm/cpufeature.h+47−35

This diff is large: its 102 lines aren’t shown here.

arch/x86/include/asm/cpufeatures.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/x86/include/asm/debugreg.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/include/asm/desc.h+2−2

This diff is large: its 18 lines aren’t shown here.

arch/x86/include/asm/efi.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/include/asm/elf.h+4−5

This diff is large: its 37 lines aren’t shown here.

arch/x86/include/asm/extable.h+2−1

This diff is large: its 10 lines aren’t shown here.

arch/x86/include/asm/fixmap.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/include/asm/fpu/internal.h+2−2

This diff is large: its 18 lines aren’t shown here.

arch/x86/include/asm/fsgsbase.h+49−0

This diff is large: its 50 lines aren’t shown here.

arch/x86/include/asm/ftrace.h+1−3

This diff is large: its 11 lines aren’t shown here.

arch/x86/include/asm/futex.h+3−3

This diff is large: its 20 lines aren’t shown here.

arch/x86/include/asm/hugetlb.h+0−69

This diff is large: its 76 lines aren’t shown here.

arch/x86/include/asm/hyperv-tlfs.h+5−0

This diff is large: its 19 lines aren’t shown here.

arch/x86/include/asm/intel-family.h+17−16

This diff is large: its 47 lines aren’t shown here.

arch/x86/include/asm/io.h+2−13

This diff is large: its 33 lines aren’t shown here.

arch/x86/include/asm/iosf_mbi.h+29−10

This diff is large: its 60 lines aren’t shown here.

arch/x86/include/asm/irq_remapping.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/x86/include/asm/irqflags.h+6−10

This diff is large: its 49 lines aren’t shown here.

arch/x86/include/asm/jump_label.h+18−62

This diff is large: its 117 lines aren’t shown here.

arch/x86/include/asm/kexec.h+3−2

This diff is large: its 26 lines aren’t shown here.

arch/x86/include/asm/kvm_emulate.h+4−0

This diff is large: its 11 lines aren’t shown here.

arch/x86/include/asm/kvm_host.h+61−9

This diff is large: its 178 lines aren’t shown here.

arch/x86/include/asm/local.h+4−4

This diff is large: its 36 lines aren’t shown here.

arch/x86/include/asm/mce.h+32−25

This diff is large: its 91 lines aren’t shown here.

arch/x86/include/asm/mmu_context.h+2−2

This diff is large: its 15 lines aren’t shown here.

arch/x86/include/asm/mpx.h+9−3

This diff is large: its 28 lines aren’t shown here.

arch/x86/include/asm/mshyperv.h+3−1

This diff is large: its 18 lines aren’t shown here.

arch/x86/include/asm/msr-index.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/include/asm/msr.h+2−2

This diff is large: its 18 lines aren’t shown here.

arch/x86/include/asm/nospec-branch.h+13−4

This diff is large: its 41 lines aren’t shown here.

arch/x86/include/asm/page_64_types.h+16−11

This diff is large: its 43 lines aren’t shown here.

arch/x86/include/asm/paravirt.h+195−220

This diff is large: its 932 lines aren’t shown here.

arch/x86/include/asm/paravirt_types.h+65−75

This diff is large: its 303 lines aren’t shown here.

arch/x86/include/asm/percpu.h+4−4

This diff is large: its 27 lines aren’t shown here.

arch/x86/include/asm/perf_event.h+9−0

This diff is large: its 23 lines aren’t shown here.

arch/x86/include/asm/pgalloc.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/include/asm/pgtable-3level_types.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/include/asm/pgtable.h+3−4

This diff is large: its 22 lines aren’t shown here.

arch/x86/include/asm/pgtable_64_types.h+1−3

This diff is large: its 11 lines aren’t shown here.

arch/x86/include/asm/pgtable_types.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/include/asm/preempt.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/include/asm/processor.h+10−15

This diff is large: its 61 lines aren’t shown here.

arch/x86/include/asm/ptrace.h+77−9

This diff is large: its 127 lines aren’t shown here.

arch/x86/include/asm/qspinlock.h+18−0

This diff is large: its 28 lines aren’t shown here.

arch/x86/include/asm/refcount.h+48−31

This diff is large: its 134 lines aren’t shown here.

arch/x86/include/asm/rmwcc.h+41−28

This diff is large: its 98 lines aren’t shown here.

arch/x86/include/asm/sections.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/include/asm/segment.h+44−4

This diff is large: its 72 lines aren’t shown here.

arch/x86/include/asm/special_insns.h+2−2

This diff is large: its 18 lines aren’t shown here.

arch/x86/include/asm/string_64.h+19−1

This diff is large: its 27 lines aren’t shown here.

arch/x86/include/asm/suspend.h+8−0

This diff is large: its 12 lines aren’t shown here.

arch/x86/include/asm/suspend_32.h+4−0

This diff is large: its 9 lines aren’t shown here.

arch/x86/include/asm/tlb.h+14−7

This diff is large: its 31 lines aren’t shown here.

arch/x86/include/asm/tlbflush.h+18−21

This diff is large: its 72 lines aren’t shown here.

arch/x86/include/asm/trace/mpx.h+2−2

This diff is large: its 15 lines aren’t shown here.

arch/x86/include/asm/uaccess.h+11−11

This diff is large: its 85 lines aren’t shown here.

arch/x86/include/asm/unistd.h+2−1

This diff is large: its 23 lines aren’t shown here.

arch/x86/include/asm/uv/uv.h+6−0

This diff is large: its 22 lines aren’t shown here.

arch/x86/include/asm/vgtod.h+33−46

This diff is large: its 116 lines aren’t shown here.

arch/x86/include/asm/virtext.h+4−3

This diff is large: its 22 lines aren’t shown here.

arch/x86/include/asm/vmx.h+0−13

This diff is large: its 20 lines aren’t shown here.

arch/x86/include/asm/x86_init.h+2−0

This diff is large: its 7 lines aren’t shown here.

arch/x86/include/asm/xen/events.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/x86/include/asm/xen/page.h+31−4

This diff is large: its 52 lines aren’t shown here.

arch/x86/include/uapi/asm/bootparam.h+4−0

This diff is large: its 18 lines aren’t shown here.

arch/x86/include/uapi/asm/kvm.h+6−2

This diff is large: its 36 lines aren’t shown here.

arch/x86/include/uapi/asm/siginfo.h+0−2

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/acpi/boot.c+9−2

This diff is large: its 36 lines aren’t shown here.

arch/x86/kernel/acpi/sleep.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/kernel/alternative.c+5−1

This diff is large: its 20 lines aren’t shown here.

arch/x86/kernel/amd_gart_64.c+3−3

This diff is large: its 27 lines aren’t shown here.

arch/x86/kernel/amd_nb.c+41−8

This diff is large: its 96 lines aren’t shown here.

arch/x86/kernel/apic/apic.c+8−1

This diff is large: its 30 lines aren’t shown here.

arch/x86/kernel/apic/io_apic.c+4−3

This diff is large: its 28 lines aren’t shown here.

arch/x86/kernel/apic/probe_32.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/kernel/apic/vector.c+4−5

This diff is large: its 19 lines aren’t shown here.

arch/x86/kernel/asm-offsets.c+7−11

This diff is large: its 37 lines aren’t shown here.

arch/x86/kernel/asm-offsets_64.c+6−3

This diff is large: its 17 lines aren’t shown here.

arch/x86/kernel/check.c+23−5

This diff is large: its 83 lines aren’t shown here.

arch/x86/kernel/cpu/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/kernel/cpu/amd.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/cpu/bugs.c+55−7

This diff is large: its 115 lines aren’t shown here.

arch/x86/kernel/cpu/cacheinfo.c+29−2

This diff is large: its 66 lines aren’t shown here.

arch/x86/kernel/cpu/common.c+50−33

This diff is large: its 180 lines aren’t shown here.

arch/x86/kernel/cpu/cpu.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/kernel/cpu/cyrix.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/cpu/hygon.c+408−0

This diff is large: its 409 lines aren’t shown here.

arch/x86/kernel/cpu/intel_rdt.c+11−6

This diff is large: its 47 lines aren’t shown here.

arch/x86/kernel/cpu/intel_rdt.h+3−3

This diff is large: its 18 lines aren’t shown here.

arch/x86/kernel/cpu/intel_rdt_ctrlmondata.c+10−2

This diff is large: its 19 lines aren’t shown here.

arch/x86/kernel/cpu/intel_rdt_pseudo_lock.c+241−164

This diff is large: its 532 lines aren’t shown here.

arch/x86/kernel/cpu/intel_rdt_rdtgroup.c+182−28

This diff is large: its 340 lines aren’t shown here.

arch/x86/kernel/cpu/mcheck/dev-mcelog.c+0−3

This diff is large: its 10 lines aren’t shown here.

arch/x86/kernel/cpu/mcheck/mce-inject.c+6−0

This diff is large: its 20 lines aren’t shown here.

arch/x86/kernel/cpu/mcheck/mce-severity.c+2−1

This diff is large: its 10 lines aren’t shown here.

arch/x86/kernel/cpu/mcheck/mce.c+21−9

This diff is large: its 111 lines aren’t shown here.

arch/x86/kernel/cpu/microcode/core.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/x86/kernel/cpu/mshyperv.c+25−0

This diff is large: its 53 lines aren’t shown here.

arch/x86/kernel/cpu/mtrr/cleanup.c+2−1

This diff is large: its 10 lines aren’t shown here.

arch/x86/kernel/cpu/mtrr/generic.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/cpu/mtrr/if.c+3−3

This diff is large: its 24 lines aren’t shown here.

arch/x86/kernel/cpu/mtrr/mtrr.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/cpu/perfctr-watchdog.c+2−0

This diff is large: its 16 lines aren’t shown here.

arch/x86/kernel/cpu/vmware.c+3−3

This diff is large: its 26 lines aren’t shown here.

arch/x86/kernel/crash_dump_64.c+41−19

This diff is large: its 82 lines aren’t shown here.

arch/x86/kernel/devicetree.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/e820.c+6−15

This diff is large: its 56 lines aren’t shown here.

arch/x86/kernel/early_printk.c+19−10

This diff is large: its 71 lines aren’t shown here.

arch/x86/kernel/fpu/signal.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/kernel/head32.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/kernel/head64.c+3−1

This diff is large: its 18 lines aren’t shown here.

arch/x86/kernel/head_64.S+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/jump_label.c+25−37

This diff is large: its 93 lines aren’t shown here.

arch/x86/kernel/kprobes/core.c+1−47

This diff is large: its 66 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/kvm.c+10−9

This diff is large: its 47 lines aren’t shown here.

arch/x86/kernel/kvmclock.c+2−2

This diff is large: its 16 lines aren’t shown here.

arch/x86/kernel/ldt.c+38−21

This diff is large: its 107 lines aren’t shown here.

arch/x86/kernel/macros.S+16−0

This diff is large: its 17 lines aren’t shown here.

arch/x86/kernel/module.c+6−0

This diff is large: its 13 lines aren’t shown here.

arch/x86/kernel/mpparse.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/kernel/msr.c+4−4

This diff is large: its 34 lines aren’t shown here.

arch/x86/kernel/paravirt-spinlocks.c+2−13

This diff is large: its 28 lines aren’t shown here.

arch/x86/kernel/paravirt.c+164−172

This diff is large: its 448 lines aren’t shown here.

arch/x86/kernel/paravirt_patch_32.c+42−57

This diff is large: its 125 lines aren’t shown here.

arch/x86/kernel/paravirt_patch_64.c+47−64

This diff is large: its 138 lines aren’t shown here.

arch/x86/kernel/pci-dma.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/pci-swiotlb.c+1−3

This diff is large: its 20 lines aren’t shown here.

arch/x86/kernel/process_64.c+144−45

This diff is large: its 242 lines aren’t shown here.

arch/x86/kernel/ptrace.c+16−41

This diff is large: its 99 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/setup.c+18−2

This diff is large: its 41 lines aren’t shown here.

arch/x86/kernel/setup_percpu.c+8−6

This diff is large: its 45 lines aren’t shown here.

arch/x86/kernel/smpboot.c+4−2

This diff is large: its 27 lines aren’t shown here.

arch/x86/kernel/sys_x86_64.c+6−5

This diff is large: its 40 lines aren’t shown here.

arch/x86/kernel/tce_64.c+3−3

This diff is large: its 25 lines aren’t shown here.

arch/x86/kernel/time.c+23−1

This diff is large: its 42 lines aren’t shown here.

arch/x86/kernel/traps.c+89−109

This diff is large: its 365 lines aren’t shown here.

arch/x86/kernel/tsc.c+9−5

This diff is large: its 63 lines aren’t shown here.

arch/x86/kernel/tsc_msr.c+5−5

This diff is large: its 18 lines aren’t shown here.

arch/x86/kernel/umip.c+1−7

This diff is large: its 21 lines aren’t shown here.

arch/x86/kernel/uprobes.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/vm86_32.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/vmlinux.lds.S+0−10

This diff is large: its 17 lines aren’t shown here.

arch/x86/kernel/vsmp_64.c+7−77

This diff is large: its 121 lines aren’t shown here.

arch/x86/kernel/x86_init.c+1−2

This diff is large: its 17 lines aren’t shown here.

arch/x86/kvm/emulate.c+21−12

This diff is large: its 111 lines aren’t shown here.

arch/x86/kvm/hyperv.c+212−68

This diff is large: its 412 lines aren’t shown here.

arch/x86/kvm/hyperv.h+4−0

This diff is large: its 11 lines aren’t shown here.

arch/x86/kvm/lapic.c+39−8

This diff is large: its 102 lines aren’t shown here.

arch/x86/kvm/lapic.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kvm/mmu.c+256−172

This diff is large: its 1019 lines aren’t shown here.

arch/x86/kvm/mmu.h+4−9

This diff is large: its 34 lines aren’t shown here.

arch/x86/kvm/mmu_audit.c+6−6

This diff is large: its 34 lines aren’t shown here.

arch/x86/kvm/paging_tmpl.h+8−7

This diff is large: its 63 lines aren’t shown here.

arch/x86/kvm/svm.c+40−30

This diff is large: its 139 lines aren’t shown here.

arch/x86/kvm/trace.h+42−0

This diff is large: its 49 lines aren’t shown here.

arch/x86/kvm/vmx.c+1651−767

This diff is large: its 3612 lines aren’t shown here.

arch/x86/kvm/vmx_shadow_fields.h+1−4

This diff is large: its 27 lines aren’t shown here.

arch/x86/kvm/x86.c+216−72

This diff is large: its 683 lines aren’t shown here.

arch/x86/kvm/x86.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/x86/lib/checksum_32.S+2−2

This diff is large: its 14 lines aren’t shown here.

arch/x86/lib/copy_user_64.S+45−45

This diff is large: its 117 lines aren’t shown here.

arch/x86/lib/csum-copy_64.S+6−2

This diff is large: its 21 lines aren’t shown here.

arch/x86/lib/getuser.S+6−6

This diff is large: its 19 lines aren’t shown here.

arch/x86/lib/putuser.S+5−5

This diff is large: its 16 lines aren’t shown here.

arch/x86/lib/usercopy_32.c+63−63

This diff is large: its 154 lines aren’t shown here.

arch/x86/lib/usercopy_64.c+4−4

This diff is large: its 29 lines aren’t shown here.

arch/x86/mm/amdtopology.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/mm/cpu_entry_area.c+0−36

This diff is large: its 61 lines aren’t shown here.

arch/x86/mm/dump_pagetables.c+27−8

This diff is large: its 57 lines aren’t shown here.

arch/x86/mm/extable.c+100−14

This diff is large: its 205 lines aren’t shown here.

arch/x86/mm/fault.c+265−215

This diff is large: its 800 lines aren’t shown here.

arch/x86/mm/highmem_32.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/x86/mm/hugetlbpage.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/x86/mm/init.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/mm/init_32.c+6−22

This diff is large: its 65 lines aren’t shown here.

arch/x86/mm/init_64.c+3−4

This diff is large: its 34 lines aren’t shown here.

arch/x86/mm/ioremap.c+17−9

This diff is large: its 88 lines aren’t shown here.

arch/x86/mm/kasan_init_64.c+5−6

This diff is large: its 28 lines aren’t shown here.

arch/x86/mm/kaslr.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/mm/mem_encrypt_identity.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/mm/mmap.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/mm/mpx.c+9−21

This diff is large: its 64 lines aren’t shown here.

arch/x86/mm/numa.c+1−2

This diff is large: its 17 lines aren’t shown here.

arch/x86/mm/numa_32.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/mm/numa_64.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/mm/numa_emulation.c+10−3

This diff is large: its 28 lines aren’t shown here.

arch/x86/mm/pageattr-test.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/mm/pageattr.c+431−204

This diff is large: its 880 lines aren’t shown here.

arch/x86/mm/pat.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/mm/pgtable.c+8−2

This diff is large: its 46 lines aren’t shown here.

arch/x86/mm/physaddr.c+1−1

This diff is large: its 7 lines aren’t shown here.

arch/x86/mm/pti.c+32−1

This diff is large: its 44 lines aren’t shown here.

arch/x86/mm/tlb.c+122−76

This diff is large: its 314 lines aren’t shown here.

arch/x86/pci/acpi.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/pci/amd_bus.c+4−2

This diff is large: its 20 lines aren’t shown here.

arch/x86/pci/fixup.c+3−9

This diff is large: its 21 lines aren’t shown here.

arch/x86/pci/i386.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/platform/atom/punit_atom_debug.c+3−3

This diff is large: its 20 lines aren’t shown here.

arch/x86/platform/efi/early_printk.c+6−2

This diff is large: its 29 lines aren’t shown here.

arch/x86/platform/efi/efi.c+1−2

This diff is large: its 11 lines aren’t shown here.

arch/x86/platform/efi/efi_64.c+5−7

This diff is large: its 32 lines aren’t shown here.

arch/x86/platform/efi/quirks.c+81−4

This diff is large: its 124 lines aren’t shown here.

arch/x86/platform/intel-mid/device_libs/platform_bcm43xx.c+14−3

This diff is large: its 42 lines aren’t shown here.

arch/x86/platform/intel-mid/device_libs/platform_bt.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/platform/intel/iosf_mbi.c+199−18

This diff is large: its 295 lines aren’t shown here.

arch/x86/platform/olpc/olpc-xo1-rtc.c+3−0

This diff is large: its 17 lines aren’t shown here.

arch/x86/platform/olpc/olpc_dt.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/x86/platform/ts5500/ts5500.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/power/Makefile+1−1

This diff is large: its 6 lines aren’t shown here.

arch/x86/power/hibernate.c+248−0

This diff is large: its 249 lines aren’t shown here.

arch/x86/power/hibernate_32.c+39−15

This diff is large: its 85 lines aren’t shown here.

arch/x86/power/hibernate_64.c+1−223

This diff is large: its 242 lines aren’t shown here.

arch/x86/power/hibernate_asm_32.S+31−6

This diff is large: its 76 lines aren’t shown here.

arch/x86/power/hibernate_asm_64.S+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/tools/relocs.c+12−2

This diff is large: its 42 lines aren’t shown here.

arch/x86/um/asm/elf.h+2−3

This diff is large: its 19 lines aren’t shown here.

arch/x86/um/asm/processor_32.h+0−8

This diff is large: its 15 lines aren’t shown here.

arch/x86/um/asm/processor_64.h+0−3

This diff is large: its 10 lines aren’t shown here.

arch/x86/um/shared/sysdep/ptrace_32.h+0−12

This diff is large: its 23 lines aren’t shown here.

arch/x86/xen/Kconfig+1−1

This diff is large: its 16 lines aren’t shown here.

arch/x86/xen/Makefile+31−10

This diff is large: its 57 lines aren’t shown here.

arch/x86/xen/efi.c+1−13

This diff is large: its 20 lines aren’t shown here.

arch/x86/xen/enlighten.c+4−1

This diff is large: its 15 lines aren’t shown here.

arch/x86/xen/enlighten_hvm.c+2−0

This diff is large: its 6 lines aren’t shown here.

arch/x86/xen/enlighten_pv.c+19−15

This diff is large: its 80 lines aren’t shown here.

arch/x86/xen/enlighten_pvh.c+2−1

This diff is large: its 17 lines aren’t shown here.

arch/x86/xen/grant-table.c+1−24

This diff is large: its 36 lines aren’t shown here.

arch/x86/xen/irq.c+1−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/xen/mmu.c+2−186

This diff is large: its 206 lines aren’t shown here.

arch/x86/xen/mmu_hvm.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/xen/mmu_pv.c+158−18

This diff is large: its 245 lines aren’t shown here.

arch/x86/xen/p2m.c+6−5

This diff is large: its 43 lines aren’t shown here.

arch/x86/xen/pci-swiotlb-xen.c+2−0

This diff is large: its 6 lines aren’t shown here.

arch/x86/xen/platform-pci-unplug.c+7−16

This diff is large: its 56 lines aren’t shown here.

arch/x86/xen/pmu.c+10−3

This diff is large: its 48 lines aren’t shown here.

arch/x86/xen/smp_pv.c+2−0

This diff is large: its 16 lines aren’t shown here.

arch/x86/xen/spinlock.c+20−26

This diff is large: its 80 lines aren’t shown here.

arch/x86/xen/time.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/x86/xen/vdso.h+2−0

This diff is large: its 6 lines aren’t shown here.

arch/x86/xen/xen-asm_64.S+5−3

This diff is large: its 19 lines aren’t shown here.

arch/x86/xen/xen-pvh.S+3−14

This diff is large: its 30 lines aren’t shown here.

arch/xtensa/Kconfig+1−6

This diff is large: its 31 lines aren’t shown here.

arch/xtensa/Makefile+1−11

This diff is large: its 30 lines aren’t shown here.

arch/xtensa/boot/Makefile+1−1

This diff is large: its 9 lines aren’t shown here.

arch/xtensa/include/asm/Kbuild+1−0

This diff is large: its 7 lines aren’t shown here.

arch/xtensa/include/asm/processor.h+5−9

This diff is large: its 28 lines aren’t shown here.

arch/xtensa/include/asm/unistd.h+1−1

This diff is large: its 11 lines aren’t shown here.

arch/xtensa/include/asm/vga.h+0−19

This diff is large: its 20 lines aren’t shown here.

arch/xtensa/include/uapi/asm/ioctls.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/xtensa/kernel/Makefile+2−2

This diff is large: its 11 lines aren’t shown here.

arch/xtensa/kernel/head.S+5−2

This diff is large: its 15 lines aren’t shown here.

arch/xtensa/kernel/pci.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/xtensa/kernel/vmlinux.lds.S+5−32

This diff is large: its 59 lines aren’t shown here.

arch/xtensa/mm/cache.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/xtensa/mm/init.c+3−3

This diff is large: its 27 lines aren’t shown here.

arch/xtensa/mm/kasan_init.c+2−3

This diff is large: its 22 lines aren’t shown here.

arch/xtensa/mm/mmu.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/xtensa/platforms/iss/network.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/xtensa/platforms/iss/setup.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/xtensa/platforms/xtfpga/setup.c+3−3

This diff is large: its 24 lines aren’t shown here.

block/Kconfig+3−7

This diff is large: its 64 lines aren’t shown here.

block/Kconfig.iosched+0−3

This diff is large: its 24 lines aren’t shown here.

block/Makefile+1−0

This diff is large: its 5 lines aren’t shown here.

block/bfq-iosched.c+188−101

This diff is large: its 497 lines aren’t shown here.

block/bfq-iosched.h+37−16

This diff is large: its 102 lines aren’t shown here.

block/bfq-wf2q.c+24−19

This diff is large: its 79 lines aren’t shown here.

block/bio-integrity.c+4−8

This diff is large: its 32 lines aren’t shown here.

block/bio.c+24−24

This diff is large: its 106 lines aren’t shown here.

block/blk-core.c+36−248

This diff is large: its 397 lines aren’t shown here.

block/blk-flush.c+3−3

This diff is large: its 24 lines aren’t shown here.

block/blk-integrity.c+2−10

This diff is large: its 28 lines aren’t shown here.

block/blk-iolatency.c+161−47

This diff is large: its 376 lines aren’t shown here.

block/blk-lib.c+13−48

This diff is large: its 123 lines aren’t shown here.

block/blk-merge.c+105−32

This diff is large: its 210 lines aren’t shown here.

block/blk-mq-debugfs.c+10−4

This diff is large: its 49 lines aren’t shown here.

block/blk-mq-sched.h+2−2

This diff is large: its 15 lines aren’t shown here.

block/blk-mq-tag.c+64−5

This diff is large: its 124 lines aren’t shown here.

block/blk-mq.c+152−63

This diff is large: its 363 lines aren’t shown here.

block/blk-pm.c+216−0

This diff is large: its 217 lines aren’t shown here.

block/blk-pm.h+69−0

This diff is large: its 70 lines aren’t shown here.

block/blk-settings.c+1−1

This diff is large: its 9 lines aren’t shown here.

block/blk-softirq.c+2−3

This diff is large: its 20 lines aren’t shown here.

block/blk-stat.c+1−0

This diff is large: its 8 lines aren’t shown here.

block/blk-sysfs.c+13−2

This diff is large: its 50 lines aren’t shown here.

block/blk-throttle.c+15−26

This diff is large: its 92 lines aren’t shown here.

block/blk-wbt.c+1−1

This diff is large: its 16 lines aren’t shown here.

block/blk-zoned.c+231−128

This diff is large: its 454 lines aren’t shown here.

block/blk.h+88−3

This diff is large: its 138 lines aren’t shown here.

block/bounce.c+30−10

This diff is large: its 89 lines aren’t shown here.

block/cfq-iosched.c+9−3

This diff is large: its 24 lines aren’t shown here.

block/elevator.c+1−21

This diff is large: its 36 lines aren’t shown here.

block/genhd.c+14−5

This diff is large: its 67 lines aren’t shown here.

block/ioctl.c+4−0

This diff is large: its 11 lines aren’t shown here.

block/kyber-iosched.c+306−241

This diff is large: its 766 lines aren’t shown here.

crypto/Kconfig+24−77

This diff is large: its 143 lines aren’t shown here.

crypto/Makefile+2−2

This diff is large: its 32 lines aren’t shown here.

crypto/aegis.h+9−11

This diff is large: its 42 lines aren’t shown here.

crypto/af_alg.c+1−1

This diff is large: its 9 lines aren’t shown here.

crypto/ahash.c+18−7

This diff is large: its 52 lines aren’t shown here.

crypto/algapi.c+16−1

This diff is large: its 40 lines aren’t shown here.

crypto/algboss.c+2−0

This diff is large: its 9 lines aren’t shown here.

crypto/algif_aead.c+6−6

This diff is large: its 44 lines aren’t shown here.

crypto/algif_hash.c+1−1

This diff is large: its 9 lines aren’t shown here.

crypto/asymmetric_keys/Kconfig+31−0

This diff is large: its 45 lines aren’t shown here.

crypto/asymmetric_keys/Makefile+25−0

This diff is large: its 43 lines aren’t shown here.

crypto/asymmetric_keys/asym_tpm.c+988−0

This diff is large: its 989 lines aren’t shown here.

crypto/asymmetric_keys/asymmetric_keys.h+3−0

This diff is large: its 7 lines aren’t shown here.

crypto/asymmetric_keys/asymmetric_type.c+43−0

This diff is large: its 64 lines aren’t shown here.

crypto/asymmetric_keys/pkcs7_parser.c+1−0

This diff is large: its 8 lines aren’t shown here.

crypto/asymmetric_keys/pkcs8.asn1+24−0

This diff is large: its 25 lines aren’t shown here.

crypto/asymmetric_keys/pkcs8_parser.c+184−0

This diff is large: its 185 lines aren’t shown here.

crypto/asymmetric_keys/public_key.c+173−18

This diff is large: its 226 lines aren’t shown here.

crypto/asymmetric_keys/signature.c+95−0

This diff is large: its 110 lines aren’t shown here.

crypto/asymmetric_keys/tpm.asn1+5−0

This diff is large: its 6 lines aren’t shown here.

crypto/asymmetric_keys/tpm_parser.c+102−0

This diff is large: its 103 lines aren’t shown here.

crypto/asymmetric_keys/x509_cert_parser.c+9−12

This diff is large: its 45 lines aren’t shown here.

crypto/authenc.c+4−4

This diff is large: its 30 lines aren’t shown here.

crypto/authencesn.c+4−4

This diff is large: its 30 lines aren’t shown here.

crypto/ccm.c+6−3

This diff is large: its 30 lines aren’t shown here.

crypto/chacha20_generic.c+4−3

This diff is large: its 25 lines aren’t shown here.

crypto/cryptd.c+17−15

This diff is large: its 92 lines aren’t shown here.

crypto/crypto_null.c+5−6

This diff is large: its 38 lines aren’t shown here.

crypto/crypto_user_base.crenamed from crypto/crypto_user.c+16−11

This diff is large: its 112 lines aren’t shown here.

crypto/crypto_user_stat.c+484−0

This diff is large: its 485 lines aren’t shown here.

crypto/echainiv.c+2−2

This diff is large: its 12 lines aren’t shown here.

crypto/gcm.c+4−4

This diff is large: its 30 lines aren’t shown here.

crypto/internal.h+0−8

This diff is large: its 22 lines aren’t shown here.

crypto/lrw.c+89−250

This diff is large: its 428 lines aren’t shown here.

crypto/mcryptd.c+0−675

This diff is large: its 676 lines aren’t shown here.

crypto/morus1280.c+2−5

This diff is large: its 17 lines aren’t shown here.

crypto/morus640.c+4−12

This diff is large: its 26 lines aren’t shown here.

crypto/ofb.c+225−0

This diff is large: its 226 lines aren’t shown here.

crypto/rng.c+1−0

This diff is large: its 8 lines aren’t shown here.

crypto/rsa-pkcs1pad.c+41−27

This diff is large: its 112 lines aren’t shown here.

crypto/seqiv.c+2−2

This diff is large: its 12 lines aren’t shown here.

crypto/shash.c+19−14

This diff is large: its 67 lines aren’t shown here.

crypto/simd.c+3−2

This diff is large: its 12 lines aren’t shown here.

crypto/skcipher.c+24−0

This diff is large: its 31 lines aren’t shown here.

crypto/speck.c+0−307

This diff is large: its 308 lines aren’t shown here.

crypto/tcrypt.c+21−6

This diff is large: its 69 lines aren’t shown here.

crypto/tcrypt.h+1−0

This diff is large: its 8 lines aren’t shown here.

crypto/testmgr.c+15−27

This diff is large: its 84 lines aren’t shown here.

crypto/testmgr.h+126−737

This diff is large: its 911 lines aren’t shown here.

crypto/xcbc.c+5−3

This diff is large: its 29 lines aren’t shown here.

crypto/xts.c+46−223

This diff is large: its 338 lines aren’t shown here.

drivers/acpi/Kconfig+4−7

This diff is large: its 67 lines aren’t shown here.

drivers/acpi/Makefile+3−0

This diff is large: its 10 lines aren’t shown here.

drivers/acpi/acpi_adxl.c+192−0

This diff is large: its 193 lines aren’t shown here.

drivers/acpi/acpi_ipmi.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/acpi/acpi_lpit.c+6−0

This diff is large: its 18 lines aren’t shown here.

drivers/acpi/acpi_lpss.c+104−16

This diff is large: its 255 lines aren’t shown here.

drivers/acpi/acpi_memhotplug.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/acpi/acpi_pad.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/acpi/acpi_processor.c+4−3

This diff is large: its 24 lines aren’t shown here.

drivers/acpi/acpi_tad.c+201−0

This diff is large: its 215 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/acevents.h+2−0

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/acinterp.h+23−0

This diff is large: its 37 lines aren’t shown here.

drivers/acpi/acpica/aclocal.h+1−1

This diff is large: its 11 lines aren’t shown here.

drivers/acpi/acpica/amlcode.h+5−5

This diff is large: its 21 lines aren’t shown here.

drivers/acpi/acpica/dsopcode.c+4−0

This diff is large: its 11 lines aren’t shown here.

drivers/acpi/acpica/evregion.c+15−2

This diff is large: its 31 lines aren’t shown here.

drivers/acpi/acpica/evrgnini.c+1−5

This diff is large: its 27 lines aren’t shown here.

drivers/acpi/acpica/evxfregn.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/acpi/acpica/exfield.c+70−256

This diff is large: its 470 lines aren’t shown here.

drivers/acpi/acpica/exserial.c+360−0

This diff is large: its 361 lines aren’t shown here.

drivers/acpi/acpica/psloop.c+14−2

This diff is large: its 38 lines aren’t shown here.

drivers/acpi/acpica/tbxfload.c+1−2

This diff is large: its 10 lines aren’t shown here.

drivers/acpi/arm64/iort.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/bus.c+16−28

This diff is large: its 58 lines aren’t shown here.

drivers/acpi/cppc_acpi.c+6−2

This diff is large: its 30 lines aren’t shown here.

drivers/acpi/custom_method.c+1−2

This diff is large: its 10 lines aren’t shown here.

drivers/acpi/device_pm.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/acpi/glue.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/nfit/core.c+196−90

This diff is large: its 537 lines aren’t shown here.

drivers/acpi/nfit/intel.h+38−0

This diff is large: its 39 lines aren’t shown here.

drivers/acpi/nfit/mce.c+6−2

This diff is large: its 15 lines aren’t shown here.

drivers/acpi/nfit/nfit.h+14−7

This diff is large: its 57 lines aren’t shown here.

drivers/acpi/numa.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/acpi/osl.c+10−6

This diff is large: its 33 lines aren’t shown here.

drivers/acpi/pci_root.c+13−4

This diff is large: its 46 lines aren’t shown here.

drivers/acpi/pmic/intel_pmic_bxtwc.c+2−10

This diff is large: its 19 lines aren’t shown here.

drivers/acpi/pmic/intel_pmic_chtdc_ti.c+1−0

This diff is large: its 5 lines aren’t shown here.

drivers/acpi/pmic/intel_pmic_chtwc.c+1−9

This diff is large: its 20 lines aren’t shown here.

drivers/acpi/pmic/intel_pmic_crc.c+4−12

This diff is large: its 28 lines aren’t shown here.

drivers/acpi/pmic/intel_pmic_xpower.c+17−16

This diff is large: its 67 lines aren’t shown here.

drivers/acpi/pmic/tps68470_pmic.c+1−1

This diff is large: its 10 lines aren’t shown here.

drivers/acpi/pptt.c+13−20

This diff is large: its 61 lines aren’t shown here.

drivers/acpi/processor_idle.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/acpi/property.c+71−26

This diff is large: its 171 lines aren’t shown here.

drivers/acpi/sbs.c+6−2

This diff is large: its 16 lines aren’t shown here.

drivers/acpi/sbshc.c+2−0

This diff is large: its 16 lines aren’t shown here.

drivers/acpi/scan.c+1−10

This diff is large: its 25 lines aren’t shown here.

drivers/acpi/tables.c+1−2

This diff is large: its 11 lines aren’t shown here.

drivers/acpi/x86/apple.c+3−3

This diff is large: its 22 lines aren’t shown here.

drivers/acpi/x86/utils.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/android/Kconfig+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/android/binder.c+320−169

This diff is large: its 783 lines aren’t shown here.

drivers/android/binder_trace.h+27−9

This diff is large: its 50 lines aren’t shown here.

drivers/ata/Kconfig+2−3

This diff is large: its 26 lines aren’t shown here.

drivers/ata/ahci.h+2−0

This diff is large: its 9 lines aren’t shown here.

drivers/ata/ahci_brcm.c+8−0

This diff is large: its 36 lines aren’t shown here.

drivers/ata/ahci_platform.c+14−1

This diff is large: its 43 lines aren’t shown here.

drivers/ata/ahci_sunxi.c+2−1

This diff is large: its 17 lines aren’t shown here.

drivers/ata/libahci_platform.c+48−6

This diff is large: its 117 lines aren’t shown here.

drivers/ata/libata-core.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/ata/libata-scsi.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/ata/pata_atiixp.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/ata/pata_ep93xx.c+4−4

This diff is large: its 36 lines aren’t shown here.

drivers/ata/sata_inic162x.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/ata/sata_rcar.c+1−5

This diff is large: its 16 lines aren’t shown here.

drivers/atm/eni.c+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/atm/fore200e.c+134−267

This diff is large: its 748 lines aren’t shown here.

drivers/atm/fore200e.h+1−7

This diff is large: its 22 lines aren’t shown here.

drivers/atm/nicstar.c+1−2

This diff is large: its 13 lines aren’t shown here.

drivers/atm/zatm.c+21−21

This diff is large: its 138 lines aren’t shown here.

drivers/auxdisplay/hd44780.c+21−40

This diff is large: its 99 lines aren’t shown here.

drivers/auxdisplay/panel.c+3−4

This diff is large: its 14 lines aren’t shown here.

drivers/base/arch_topology.c+26−0

This diff is large: its 61 lines aren’t shown here.

drivers/base/cacheinfo.c+2−0

This diff is large: its 9 lines aren’t shown here.

drivers/base/component.c+3−3

This diff is large: its 13 lines aren’t shown here.

drivers/base/dd.c+7−5

This diff is large: its 33 lines aren’t shown here.

drivers/base/devres.c+34−2

This diff is large: its 60 lines aren’t shown here.

drivers/base/devtmpfs.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/base/firmware_loader/main.c+5−2

This diff is large: its 14 lines aren’t shown here.

drivers/base/memory.c+8−14

This diff is large: its 68 lines aren’t shown here.

drivers/base/node.c+12−7

This diff is large: its 49 lines aren’t shown here.

drivers/base/platform-msi.c+8−6

This diff is large: its 28 lines aren’t shown here.

drivers/base/platform.c+11−2

This diff is large: its 34 lines aren’t shown here.

drivers/base/power/domain.c+16−4

This diff is large: its 48 lines aren’t shown here.

drivers/base/power/main.c+4−1

This diff is large: its 20 lines aren’t shown here.

drivers/base/regmap/internal.h+4−1

This diff is large: its 31 lines aren’t shown here.

drivers/base/regmap/regmap.c+91−8

This diff is large: its 162 lines aren’t shown here.

drivers/block/DAC960.c+0−7229

This diff is large: its 7230 lines aren’t shown here.

drivers/block/DAC960.h+0−4414

This diff is large: its 4415 lines aren’t shown here.

drivers/block/Kconfig+0−13

This diff is large: its 27 lines aren’t shown here.

drivers/block/Makefile+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/block/amiflop.c+194−124

This diff is large: its 423 lines aren’t shown here.

drivers/block/aoe/aoe.h+4−1

This diff is large: its 24 lines aren’t shown here.

drivers/block/aoe/aoeblk.c+43−27

This diff is large: its 141 lines aren’t shown here.

drivers/block/aoe/aoecmd.c+13−6

This diff is large: its 59 lines aren’t shown here.

drivers/block/aoe/aoedev.c+8−7

This diff is large: its 52 lines aren’t shown here.

drivers/block/ataflop.c+163−110

This diff is large: its 491 lines aren’t shown here.

drivers/block/brd.c+11−5

This diff is large: its 43 lines aren’t shown here.

drivers/block/cryptoloop.c+11−11

This diff is large: its 68 lines aren’t shown here.

drivers/block/drbd/Kconfig+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/block/drbd/drbd_int.h+8−7

This diff is large: its 36 lines aren’t shown here.

drivers/block/drbd/drbd_main.c+9−9

This diff is large: its 61 lines aren’t shown here.

drivers/block/drbd/drbd_nl.c+12−27

This diff is large: its 88 lines aren’t shown here.

drivers/block/drbd/drbd_protocol.h+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/block/drbd/drbd_receiver.c+19−18

This diff is large: its 141 lines aren’t shown here.

drivers/block/drbd/drbd_req.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/block/drbd/drbd_worker.c+33−32

This diff is large: its 134 lines aren’t shown here.

drivers/block/floppy.c+39−32

This diff is large: its 181 lines aren’t shown here.

drivers/block/loop.c+4−5

This diff is large: its 37 lines aren’t shown here.

drivers/block/mtip32xx/mtip32xx.c+21−32

This diff is large: its 104 lines aren’t shown here.

drivers/block/nbd.c+5−7

This diff is large: its 47 lines aren’t shown here.

drivers/block/null_blk.h+7−4

This diff is large: its 26 lines aren’t shown here.

drivers/block/null_blk_main.c+14−127

This diff is large: its 239 lines aren’t shown here.

drivers/block/null_blk_zoned.c+15−42

This diff is large: its 70 lines aren’t shown here.

drivers/block/paride/pcd.c+56−32

This diff is large: its 169 lines aren’t shown here.

drivers/block/paride/pd.c+66−28

This diff is large: its 185 lines aren’t shown here.

drivers/block/paride/pf.c+42−14

This diff is large: its 132 lines aren’t shown here.

drivers/block/pktcdvd.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/block/ps3disk.c+45−43

This diff is large: its 187 lines aren’t shown here.

drivers/block/ps3vram.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/block/rbd.c+16−12

This diff is large: its 89 lines aren’t shown here.

drivers/block/rsxx/core.c+2−2

This diff is large: its 12 lines aren’t shown here.

drivers/block/rsxx/cregs.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/block/rsxx/dev.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/block/rsxx/dma.c+26−26

This diff is large: its 110 lines aren’t shown here.

drivers/block/skd_main.c+28−41

This diff is large: its 146 lines aren’t shown here.

drivers/block/sunvdc.c+11−5

This diff is large: its 51 lines aren’t shown here.

drivers/block/swim.c+52−54

This diff is large: its 178 lines aren’t shown here.

drivers/block/swim3.c+100−111

This diff is large: its 346 lines aren’t shown here.

drivers/block/sx8.c+85−81

This diff is large: its 363 lines aren’t shown here.

drivers/block/umem.c+20−22

This diff is large: its 108 lines aren’t shown here.

drivers/block/virtio_blk.c+39−29

This diff is large: its 112 lines aren’t shown here.

drivers/block/xen-blkfront.c+5−1

This diff is large: its 27 lines aren’t shown here.

drivers/block/xsysace.c+55−25

This diff is large: its 183 lines aren’t shown here.

drivers/block/z2ram.c+50−40

This diff is large: its 135 lines aren’t shown here.

drivers/block/zram/Kconfig+0−2

This diff is large: its 16 lines aren’t shown here.

drivers/block/zram/zram_drv.c+7−21

This diff is large: its 55 lines aren’t shown here.

drivers/bluetooth/ath3k.c+6−5

This diff is large: its 33 lines aren’t shown here.

drivers/bluetooth/bt3c_cs.c+6−3

This diff is large: its 30 lines aren’t shown here.

drivers/bluetooth/btbcm.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/bluetooth/btrsi.c+12−1

This diff is large: its 28 lines aren’t shown here.

drivers/bluetooth/btrtl.c+9−1

This diff is large: its 31 lines aren’t shown here.

drivers/bluetooth/btsdio.c+9−5

This diff is large: its 23 lines aren’t shown here.

drivers/bluetooth/btusb.c+2−0

This diff is large: its 16 lines aren’t shown here.

drivers/bluetooth/hci_ldisc.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/bluetooth/hci_qca.c+61−10

This diff is large: its 166 lines aren’t shown here.

drivers/bluetooth/hci_serdev.c+6−4

This diff is large: its 31 lines aren’t shown here.

drivers/bus/fsl-mc/fsl-mc-bus.c+20−7

This diff is large: its 83 lines aren’t shown here.

drivers/bus/imx-weim.c+0−3

This diff is large: its 10 lines aren’t shown here.

drivers/bus/mvebu-mbus.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/bus/ti-sysc.c+48−123

This diff is large: its 242 lines aren’t shown here.

drivers/bus/ts-nbus.c+7−13

This diff is large: its 38 lines aren’t shown here.

drivers/cdrom/cdrom.c+14−15

This diff is large: its 58 lines aren’t shown here.

drivers/cdrom/gdrom.c+82−98

This diff is large: its 269 lines aren’t shown here.

drivers/char/Kconfig+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/char/hw_random/core.c+2−2

This diff is large: its 13 lines aren’t shown here.

drivers/char/ipmi/ipmi_bt_sm.c+34−32

This diff is large: its 172 lines aren’t shown here.

drivers/char/ipmi/ipmi_devintf.c+5−6

This diff is large: its 41 lines aren’t shown here.

drivers/char/ipmi/ipmi_dmi.c+15−16

This diff is large: its 110 lines aren’t shown here.

drivers/char/ipmi/ipmi_kcs_sm.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/char/ipmi/ipmi_msghandler.c+25−28

This diff is large: its 190 lines aren’t shown here.

drivers/char/ipmi/ipmi_powernv.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/char/ipmi/ipmi_poweroff.c+30−37

This diff is large: its 199 lines aren’t shown here.

drivers/char/ipmi/ipmi_si_hardcode.c+5−4

This diff is large: its 39 lines aren’t shown here.

drivers/char/ipmi/ipmi_si_hotmod.c+9−8

This diff is large: its 67 lines aren’t shown here.

drivers/char/ipmi/ipmi_si_intf.c+14−14

This diff is large: its 123 lines aren’t shown here.

drivers/char/ipmi/ipmi_si_mem_io.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/char/ipmi/ipmi_si_pci.c+8−13

This diff is large: its 68 lines aren’t shown here.

drivers/char/ipmi/ipmi_si_platform.c+17−9

This diff is large: its 96 lines aren’t shown here.

drivers/char/ipmi/ipmi_smic_sm.c+11−15

This diff is large: its 75 lines aren’t shown here.

drivers/char/ipmi/ipmi_ssif.c+211−96

This diff is large: its 610 lines aren’t shown here.

drivers/char/ipmi/ipmi_watchdog.c+25−27

This diff is large: its 212 lines aren’t shown here.

drivers/char/pcmcia/cm4000_cs.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/char/pcmcia/cm4040_cs.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/char/pcmcia/synclink_cs.c+1−2

This diff is large: its 10 lines aren’t shown here.

drivers/char/random.c+12−12

This diff is large: its 101 lines aren’t shown here.

drivers/char/tpm/Kconfig+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/char/tpm/tpm-dev-common.c+109−38

This diff is large: its 236 lines aren’t shown here.

drivers/char/tpm/tpm-dev.c+3−8

This diff is large: its 31 lines aren’t shown here.

drivers/char/tpm/tpm-dev.h+12−6

This diff is large: its 40 lines aren’t shown here.

drivers/char/tpm/tpm-interface.c+23−7

This diff is large: its 66 lines aren’t shown here.

drivers/char/tpm/tpm.h+2−0

This diff is large: its 7 lines aren’t shown here.

drivers/char/tpm/tpm2-cmd.c+3−1

This diff is large: its 11 lines aren’t shown here.

drivers/char/tpm/tpmrm-dev.c+3−12

This diff is large: its 33 lines aren’t shown here.

drivers/char/tpm/xen-tpmfront.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/clk/Kconfig+2−0

This diff is large: its 15 lines aren’t shown here.

drivers/clk/Makefile+3−1

This diff is large: its 15 lines aren’t shown here.

drivers/clk/actions/Kconfig+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/clk/actions/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/clk/actions/owl-common.c+2−1

This diff is large: its 17 lines aren’t shown here.

drivers/clk/actions/owl-common.h+4−1

This diff is large: its 19 lines aren’t shown here.

drivers/clk/actions/owl-reset.c+66−0

This diff is large: its 67 lines aren’t shown here.

drivers/clk/actions/owl-reset.h+31−0

This diff is large: its 32 lines aren’t shown here.

drivers/clk/actions/owl-s700.c+53−2

This diff is large: its 83 lines aren’t shown here.

drivers/clk/actions/owl-s900.c+84−2

This diff is large: its 114 lines aren’t shown here.

drivers/clk/at91/Makefile+4−1

This diff is large: its 16 lines aren’t shown here.

drivers/clk/at91/at91sam9260.c+494−0

This diff is large: its 495 lines aren’t shown here.

drivers/clk/at91/at91sam9rl.c+171−0

This diff is large: its 172 lines aren’t shown here.

drivers/clk/at91/at91sam9x5.c+309−0

This diff is large: its 310 lines aren’t shown here.

drivers/clk/at91/clk-audio-pll.c+56−53

This diff is large: its 157 lines aren’t shown here.

drivers/clk/at91/clk-generated.c+3−78

This diff is large: its 110 lines aren’t shown here.

drivers/clk/at91/clk-h32mx.c+7−15

This diff is large: its 44 lines aren’t shown here.

drivers/clk/at91/clk-i2s-mux.c+2−38

This diff is large: its 58 lines aren’t shown here.

drivers/clk/at91/clk-main.c+4−108

This diff is large: its 172 lines aren’t shown here.

drivers/clk/at91/clk-master.c+3−96

This diff is large: its 129 lines aren’t shown here.

drivers/clk/at91/clk-peripheral.c+2−79

This diff is large: its 106 lines aren’t shown here.

drivers/clk/at91/clk-pll.c+8−182

This diff is large: its 234 lines aren’t shown here.

drivers/clk/at91/clk-plldiv.c+1−26

This diff is large: its 38 lines aren’t shown here.

drivers/clk/at91/clk-programmable.c+4−77

This diff is large: its 120 lines aren’t shown here.

drivers/clk/at91/clk-slow.c+1−31

This diff is large: its 43 lines aren’t shown here.

drivers/clk/at91/clk-smd.c+1−33

This diff is large: its 52 lines aren’t shown here.

drivers/clk/at91/clk-system.c+1−38

This diff is large: its 50 lines aren’t shown here.

drivers/clk/at91/clk-usb.c+3−91

This diff is large: its 126 lines aren’t shown here.

drivers/clk/at91/clk-utmi.c+1−44

This diff is large: its 56 lines aren’t shown here.

drivers/clk/at91/dt-compat.c+961−0

This diff is large: its 962 lines aren’t shown here.

drivers/clk/at91/pmc.c+78−0

This diff is large: its 92 lines aren’t shown here.

drivers/clk/at91/pmc.h+159−0

This diff is large: its 176 lines aren’t shown here.

drivers/clk/at91/sama5d2.c+336−0

This diff is large: its 337 lines aren’t shown here.

drivers/clk/at91/sama5d4.c+264−0

This diff is large: its 265 lines aren’t shown here.

drivers/clk/axs10x/pll_clock.c+2−2

This diff is large: its 16 lines aren’t shown here.

drivers/clk/bcm/clk-kona-setup.c+11−11

This diff is large: its 58 lines aren’t shown here.

drivers/clk/clk-asm9260.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/clk/clk-bulk.c+80−0

This diff is large: its 96 lines aren’t shown here.

drivers/clk/clk-cdce925.c+6−5

This diff is large: its 39 lines aren’t shown here.

drivers/clk/clk-devres.c+24−0

This diff is large: its 31 lines aren’t shown here.

drivers/clk/clk-fixed-factor.c+5−4

This diff is large: its 27 lines aren’t shown here.

drivers/clk/clk-fixed-rate.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/clk/clk-gpio.c+4−4

This diff is large: its 16 lines aren’t shown here.

drivers/clk/clk-hsdk-pll.c+2−2

This diff is large: its 16 lines aren’t shown here.

drivers/clk/clk-max77686.c+6−21

This diff is large: its 31 lines aren’t shown here.

drivers/clk/clk-nomadik.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/clk/clk-npcm7xx.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/clk/clk-palmas.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/clk/clk-qoriq.c+7−7

This diff is large: its 42 lines aren’t shown here.

drivers/clk/clk-s2mps11.c+36−22

This diff is large: its 76 lines aren’t shown here.

drivers/clk/clk-scmi.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/clk/clk-scpi.c+3−3

This diff is large: its 25 lines aren’t shown here.

drivers/clk/clk-si5351.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/clk/clk-stm32f4.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/clk/clk-stm32h7.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/clk/clk-stm32mp1.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/clk/clk-tango4.c+5−5

This diff is large: its 29 lines aren’t shown here.

drivers/clk/clk.c+95−0

This diff is large: its 102 lines aren’t shown here.

drivers/clk/davinci/psc.c+0−18

This diff is large: its 25 lines aren’t shown here.

drivers/clk/hisilicon/Kconfig+7−0

This diff is large: its 14 lines aren’t shown here.

drivers/clk/hisilicon/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/clk/hisilicon/clk-hi3670.c+1016−0

This diff is large: its 1017 lines aren’t shown here.

drivers/clk/hisilicon/reset.c+2−3

This diff is large: its 12 lines aren’t shown here.

drivers/clk/imx/clk-cpu.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/clk/imx/clk-imx6q.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/clk/imx/clk-imx6sl.c+2−0

This diff is large: its 9 lines aren’t shown here.

drivers/clk/imx/clk-imx6sll.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/clk/imx/clk-imx6sx.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/clk/imx/clk-imx6ul.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/clk/imx/clk-imx7d.c+8−20

This diff is large: its 75 lines aren’t shown here.

drivers/clk/imx/clk.h+7−0

This diff is large: its 14 lines aren’t shown here.

drivers/clk/ingenic/Kconfig+47−0

This diff is large: its 48 lines aren’t shown here.

drivers/clk/ingenic/Makefile+5−4

This diff is large: its 10 lines aren’t shown here.

drivers/clk/ingenic/jz4725b-cgu.c+225−0

This diff is large: its 226 lines aren’t shown here.

drivers/clk/keystone/Kconfig+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/clk/keystone/gate.c+6−1

This diff is large: its 18 lines aren’t shown here.

drivers/clk/keystone/pll.c+6−1

This diff is large: its 18 lines aren’t shown here.

drivers/clk/mediatek/clk-mt2701.c+0−5

This diff is large: its 12 lines aren’t shown here.

drivers/clk/meson/axg-audio.c+23−11

This diff is large: its 61 lines aren’t shown here.

drivers/clk/meson/axg.c+202−143

This diff is large: its 552 lines aren’t shown here.

drivers/clk/meson/axg.h+7−1

This diff is large: its 16 lines aren’t shown here.

drivers/clk/meson/clk-pll.c+101−55

This diff is large: its 274 lines aren’t shown here.

drivers/clk/meson/clkc.h+4−12

This diff is large: its 42 lines aren’t shown here.

drivers/clk/meson/gxbb.c+273−257

This diff is large: its 724 lines aren’t shown here.

drivers/clk/meson/gxbb.h+8−2

This diff is large: its 17 lines aren’t shown here.

drivers/clk/meson/meson8b.c+135−145

This diff is large: its 427 lines aren’t shown here.

drivers/clk/meson/meson8b.h+4−1

This diff is large: its 13 lines aren’t shown here.

drivers/clk/mmp/clk-of-mmp2.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/clk/mvebu/ap806-system-controller.c+1−4

This diff is large: its 23 lines aren’t shown here.

drivers/clk/mvebu/armada-370.c+1−3

This diff is large: its 15 lines aren’t shown here.

drivers/clk/mvebu/armada-375.c+1−3

This diff is large: its 15 lines aren’t shown here.

drivers/clk/mvebu/armada-37xx-periph.c+50−8

This diff is large: its 104 lines aren’t shown here.

drivers/clk/mvebu/armada-37xx-tbg.c+3−5

This diff is large: its 30 lines aren’t shown here.

drivers/clk/mvebu/armada-37xx-xtal.c+1−3

This diff is large: its 15 lines aren’t shown here.

drivers/clk/mvebu/armada-38x.c+1−3

This diff is large: its 15 lines aren’t shown here.

drivers/clk/mvebu/armada-39x.c+1−3

This diff is large: its 15 lines aren’t shown here.

drivers/clk/mvebu/armada-xp.c+1−3

This diff is large: its 15 lines aren’t shown here.

drivers/clk/mvebu/clk-corediv.c+1−3

This diff is large: its 15 lines aren’t shown here.

drivers/clk/mvebu/clk-cpu.c+3−5

This diff is large: its 33 lines aren’t shown here.

drivers/clk/mvebu/common.c+1−3

This diff is large: its 15 lines aren’t shown here.

drivers/clk/mvebu/common.h+1−3

This diff is large: its 15 lines aren’t shown here.

drivers/clk/mvebu/cp110-system-controller.c+1−3

This diff is large: its 15 lines aren’t shown here.

drivers/clk/mvebu/dove.c+1−3

This diff is large: its 15 lines aren’t shown here.

drivers/clk/mvebu/kirkwood.c+1−3

This diff is large: its 15 lines aren’t shown here.

drivers/clk/mvebu/mv98dx3236.c+1−3

This diff is large: its 15 lines aren’t shown here.

drivers/clk/mvebu/orion.c+1−3

This diff is large: its 15 lines aren’t shown here.

drivers/clk/qcom/Kconfig+53−0

This diff is large: its 68 lines aren’t shown here.

drivers/clk/qcom/Makefile+8−0

This diff is large: its 23 lines aren’t shown here.

drivers/clk/qcom/camcc-sdm845.c+1745−0

This diff is large: its 1746 lines aren’t shown here.

drivers/clk/qcom/clk-alpha-pll.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/clk/qcom/clk-branch.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/clk/qcom/clk-hfpll.c+244−0

This diff is large: its 245 lines aren’t shown here.

drivers/clk/qcom/clk-hfpll.h+44−0

This diff is large: its 45 lines aren’t shown here.

drivers/clk/qcom/clk-krait.c+126−0

This diff is large: its 127 lines aren’t shown here.

drivers/clk/qcom/clk-krait.h+40−0

This diff is large: its 41 lines aren’t shown here.

drivers/clk/qcom/clk-rcg.h+11−0

This diff is large: its 16 lines aren’t shown here.

drivers/clk/qcom/clk-rcg2.c+195−0

This diff is large: its 213 lines aren’t shown here.

drivers/clk/qcom/gcc-ipq806x.c+82−0

This diff is large: its 103 lines aren’t shown here.

drivers/clk/qcom/gcc-msm8960.c+172−0

This diff is large: its 207 lines aren’t shown here.

drivers/clk/qcom/gcc-msm8996.c+152−0

This diff is large: its 201 lines aren’t shown here.

drivers/clk/qcom/gcc-qcs404.c+2744−0

This diff is large: its 2745 lines aren’t shown here.

drivers/clk/qcom/gcc-sdm660.c+2480−0

This diff is large: its 2481 lines aren’t shown here.

drivers/clk/qcom/gcc-sdm845.c+209−112

This diff is large: its 484 lines aren’t shown here.

drivers/clk/qcom/hfpll.c+96−0

This diff is large: its 97 lines aren’t shown here.

drivers/clk/qcom/kpss-xcc.c+87−0

This diff is large: its 88 lines aren’t shown here.

drivers/clk/qcom/krait-cc.c+397−0

This diff is large: its 398 lines aren’t shown here.

drivers/clk/renesas/Kconfig+18−1

This diff is large: its 46 lines aren’t shown here.

drivers/clk/renesas/Makefile+3−0

This diff is large: its 15 lines aren’t shown here.

drivers/clk/renesas/clk-div6.c+7−10

This diff is large: its 48 lines aren’t shown here.

drivers/clk/renesas/clk-emev2.c+5−17

This diff is large: its 44 lines aren’t shown here.

drivers/clk/renesas/clk-mstp.c+5−8

This diff is large: its 38 lines aren’t shown here.

drivers/clk/renesas/clk-r8a73a4.c+3−6

This diff is large: its 24 lines aren’t shown here.

drivers/clk/renesas/clk-r8a7740.c+3−6

This diff is large: its 24 lines aren’t shown here.

drivers/clk/renesas/clk-r8a7778.c+3−6

This diff is large: its 24 lines aren’t shown here.

drivers/clk/renesas/clk-r8a7779.c+3−6

This diff is large: its 26 lines aren’t shown here.

drivers/clk/renesas/clk-rcar-gen2.c+3−6

This diff is large: its 26 lines aren’t shown here.

drivers/clk/renesas/clk-rz.c+3−6

This diff is large: its 25 lines aren’t shown here.

drivers/clk/renesas/clk-sh73a0.c+3−6

This diff is large: its 24 lines aren’t shown here.

drivers/clk/renesas/r7s9210-cpg-mssr.c+217−0

This diff is large: its 218 lines aren’t shown here.

drivers/clk/renesas/r8a7743-cpg-mssr.c+13−5

This diff is large: its 52 lines aren’t shown here.

drivers/clk/renesas/r8a7745-cpg-mssr.c+1−4

This diff is large: its 13 lines aren’t shown here.

drivers/clk/renesas/r8a774a1-cpg-mssr.c+323−0

This diff is large: its 324 lines aren’t shown here.

drivers/clk/renesas/r8a774c0-cpg-mssr.c+286−0

This diff is large: its 287 lines aren’t shown here.

drivers/clk/renesas/r8a7790-cpg-mssr.c+1−4

This diff is large: its 16 lines aren’t shown here.

drivers/clk/renesas/r8a7791-cpg-mssr.c+1−4

This diff is large: its 16 lines aren’t shown here.

drivers/clk/renesas/r8a7792-cpg-mssr.c+1−4

This diff is large: its 16 lines aren’t shown here.

drivers/clk/renesas/r8a7794-cpg-mssr.c+1−4

This diff is large: its 16 lines aren’t shown here.

drivers/clk/renesas/r8a7795-cpg-mssr.c+35−37

This diff is large: its 116 lines aren’t shown here.

drivers/clk/renesas/r8a7796-cpg-mssr.c+35−37

This diff is large: its 116 lines aren’t shown here.

drivers/clk/renesas/r8a77965-cpg-mssr.c+36−33

This diff is large: its 114 lines aren’t shown here.

drivers/clk/renesas/r8a77970-cpg-mssr.c+75−6

This diff is large: its 146 lines aren’t shown here.

drivers/clk/renesas/r8a77980-cpg-mssr.c+21−11

This diff is large: its 76 lines aren’t shown here.

drivers/clk/renesas/r8a77990-cpg-mssr.c+13−4

This diff is large: its 59 lines aren’t shown here.

drivers/clk/renesas/r8a77995-cpg-mssr.c+11−6

This diff is large: its 56 lines aren’t shown here.

drivers/clk/renesas/r9a06g032-clocks.c+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/clk/renesas/rcar-gen2-cpg.c+1−4

This diff is large: its 13 lines aren’t shown here.

drivers/clk/renesas/rcar-gen2-cpg.h+2−5

This diff is large: its 14 lines aren’t shown here.

drivers/clk/renesas/rcar-gen3-cpg.c+32−13

This diff is large: its 95 lines aren’t shown here.

drivers/clk/renesas/rcar-gen3-cpg.h+24−9

This diff is large: its 63 lines aren’t shown here.

drivers/clk/renesas/rcar-usb2-clock-sel.c+1−4

This diff is large: its 16 lines aren’t shown here.

drivers/clk/renesas/renesas-cpg-mssr.c+168−37

This diff is large: its 374 lines aren’t shown here.

drivers/clk/renesas/renesas-cpg-mssr.h+33−5

This diff is large: its 104 lines aren’t shown here.

drivers/clk/rockchip/clk-ddr.c+0−4

This diff is large: its 17 lines aren’t shown here.

drivers/clk/rockchip/clk-rk3188.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/clk/rockchip/clk-rk3288.c+25−4

This diff is large: its 48 lines aren’t shown here.

drivers/clk/rockchip/clk-rk3328.c+4−4

This diff is large: its 27 lines aren’t shown here.

drivers/clk/samsung/clk-cpu.c+3−3

This diff is large: its 27 lines aren’t shown here.

drivers/clk/samsung/clk-cpu.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/clk/samsung/clk-exynos-audss.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/clk/samsung/clk-exynos3250.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/clk/samsung/clk-exynos4.c+14−212

This diff is large: its 310 lines aren’t shown here.

drivers/clk/samsung/clk-exynos5250.c+2−40

This diff is large: its 70 lines aren’t shown here.

drivers/clk/samsung/clk-exynos5420.c+8−68

This diff is large: its 120 lines aren’t shown here.

drivers/clk/samsung/clk-exynos5433.c+32−1

This diff is large: its 82 lines aren’t shown here.

drivers/clk/samsung/clk-s3c2410.c+2−41

This diff is large: its 71 lines aren’t shown here.

drivers/clk/samsung/clk-s3c2412.c+2−41

This diff is large: its 71 lines aren’t shown here.

drivers/clk/samsung/clk-s3c2443.c+2−41

This diff is large: its 71 lines aren’t shown here.

drivers/clk/samsung/clk-s3c64xx.c+6−60

This diff is large: its 94 lines aren’t shown here.

drivers/clk/samsung/clk-s5pv210.c+2−39

This diff is large: its 69 lines aren’t shown here.

drivers/clk/samsung/clk.c+13−10

This diff is large: its 56 lines aren’t shown here.

drivers/clk/samsung/clk.h+16−2

This diff is large: its 33 lines aren’t shown here.

drivers/clk/st/clkgen-fsyn.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/clk/sunxi-ng/ccu-sun4i-a10.c+9−1

This diff is large: its 18 lines aren’t shown here.

drivers/clk/sunxi-ng/ccu-sun50i-a64.c+26−22

This diff is large: its 62 lines aren’t shown here.

drivers/clk/sunxi-ng/ccu-sun50i-a64.h+3−1

This diff is large: its 11 lines aren’t shown here.

drivers/clk/sunxi-ng/ccu-sun50i-h6.c+28−25

This diff is large: its 91 lines aren’t shown here.

drivers/clk/sunxi-ng/ccu-sun8i-a83t.c+2−0

This diff is large: its 16 lines aren’t shown here.

drivers/clk/sunxi-ng/ccu-sun8i-h3.c+13−12

This diff is large: its 32 lines aren’t shown here.

drivers/clk/sunxi-ng/ccu-sun8i-r40.c+26−26

This diff is large: its 66 lines aren’t shown here.

drivers/clk/sunxi-ng/ccu_nkmp.c+7−0

This diff is large: its 14 lines aren’t shown here.

drivers/clk/sunxi-ng/ccu_nkmp.h+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/clk/sunxi-ng/ccu_nm.c+7−0

This diff is large: its 14 lines aren’t shown here.

drivers/clk/sunxi-ng/ccu_nm.h+30−0

This diff is large: its 44 lines aren’t shown here.

drivers/clk/sunxi/clk-mod0.c+3−3

This diff is large: its 20 lines aren’t shown here.

drivers/clk/sunxi/clk-sun9i-core.c+10−10

This diff is large: its 55 lines aren’t shown here.

drivers/clk/sunxi/clk-sunxi.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/clk/tegra/clk-dfll.c+6−2

This diff is large: its 15 lines aren’t shown here.

drivers/clk/tegra/clk-tegra210.c+4−3

This diff is large: its 34 lines aren’t shown here.

drivers/clk/ti/Makefile+6−3

This diff is large: its 23 lines aren’t shown here.

drivers/clk/ti/apll.c+9−9

This diff is large: its 65 lines aren’t shown here.

drivers/clk/ti/clk-33xx-compat.c+218−0

This diff is large: its 219 lines aren’t shown here.

drivers/clk/ti/clk-33xx.c+140−92

This diff is large: its 310 lines aren’t shown here.

drivers/clk/ti/clk-43xx-compat.c+225−0

This diff is large: its 226 lines aren’t shown here.

drivers/clk/ti/clk-43xx.c+150−99

This diff is large: its 322 lines aren’t shown here.

drivers/clk/ti/clk-7xx-compat.c+823−0

This diff is large: its 824 lines aren’t shown here.

drivers/clk/ti/clk-7xx.c+328−262

This diff is large: its 779 lines aren’t shown here.

drivers/clk/ti/clk-dra7-atl.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/clk/ti/clk.c+20−12

This diff is large: its 119 lines aren’t shown here.

drivers/clk/ti/clkctrl.c+77−24

This diff is large: its 144 lines aren’t shown here.

drivers/clk/ti/clock.h+11−0

This diff is large: its 42 lines aren’t shown here.

drivers/clk/ti/composite.c+7−7

This diff is large: its 49 lines aren’t shown here.

drivers/clk/ti/divider.c+38−2

This diff is large: its 65 lines aren’t shown here.

drivers/clk/ti/dpll.c+12−6

This diff is large: its 67 lines aren’t shown here.

drivers/clk/ti/dpll3xxx.c+124−0

This diff is large: its 131 lines aren’t shown here.

drivers/clk/ti/fapll.c+4−4

This diff is large: its 32 lines aren’t shown here.

drivers/clk/ti/fixed-factor.c+2−2

This diff is large: its 15 lines aren’t shown here.

drivers/clk/ti/gate.c+4−1

This diff is large: its 33 lines aren’t shown here.

drivers/clk/ti/interface.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/clk/ti/mux.c+31−2

This diff is large: its 58 lines aren’t shown here.

drivers/clk/zynq/clkc.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/clk/zynqmp/Kconfig+10−0

This diff is large: its 11 lines aren’t shown here.

drivers/clk/zynqmp/Makefile+4−0

This diff is large: its 5 lines aren’t shown here.

drivers/clk/zynqmp/clk-gate-zynqmp.c+144−0

This diff is large: its 145 lines aren’t shown here.

drivers/clk/zynqmp/clk-mux-zynqmp.c+141−0

This diff is large: its 142 lines aren’t shown here.

drivers/clk/zynqmp/clk-zynqmp.h+68−0

This diff is large: its 69 lines aren’t shown here.

drivers/clk/zynqmp/clkc.c+716−0

This diff is large: its 717 lines aren’t shown here.

drivers/clk/zynqmp/divider.c+217−0

This diff is large: its 218 lines aren’t shown here.

drivers/clk/zynqmp/pll.c+335−0

This diff is large: its 336 lines aren’t shown here.

drivers/clocksource/Kconfig+18−0

This diff is large: its 23 lines aren’t shown here.

drivers/clocksource/Makefile+15−13

This diff is large: its 62 lines aren’t shown here.

drivers/clocksource/arm_arch_timer.c+15−0

This diff is large: its 29 lines aren’t shown here.

drivers/clocksource/asm9260_timer.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/clocksource/dw_apb_timer_of.c+16−4

This diff is large: its 52 lines aren’t shown here.

drivers/clocksource/i8253.c+12−2

This diff is large: its 28 lines aren’t shown here.

drivers/clocksource/pxa_timer.c+3−3

This diff is large: its 25 lines aren’t shown here.

drivers/clocksource/renesas-ostm.c+1−10

This diff is large: its 20 lines aren’t shown here.

drivers/clocksource/riscv_timer.c+8−4

This diff is large: its 37 lines aren’t shown here.

drivers/clocksource/sh_cmt.c+53−53

This diff is large: its 232 lines aren’t shown here.

drivers/clocksource/sh_mtu2.c+1−9

This diff is large: its 18 lines aren’t shown here.

drivers/clocksource/sh_tmu.c+1−9

This diff is large: its 18 lines aren’t shown here.

drivers/clocksource/timer-armada-370-xp.crenamed from drivers/clocksource/time-armada-370-xp.c+0−0

File renamed without changes.

drivers/clocksource/timer-cadence-ttc.crenamed from drivers/clocksource/cadence_ttc_timer.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/clocksource/timer-efm32.crenamed from drivers/clocksource/time-efm32.c+0−0

File renamed without changes.

drivers/clocksource/timer-fsl-ftm.crenamed from drivers/clocksource/fsl_ftm_timer.c+0−0

File renamed without changes.

drivers/clocksource/timer-gx6605s.c+154−0

This diff is large: its 155 lines aren’t shown here.

drivers/clocksource/timer-integrator-ap.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/clocksource/timer-lpc32xx.crenamed from drivers/clocksource/time-lpc32xx.c+0−0

File renamed without changes.

drivers/clocksource/timer-mp-csky.c+173−0

This diff is large: its 174 lines aren’t shown here.

drivers/clocksource/timer-orion.crenamed from drivers/clocksource/time-orion.c+4−4

This diff is large: its 34 lines aren’t shown here.

drivers/clocksource/timer-owl.crenamed from drivers/clocksource/owl-timer.c+0−0

File renamed without changes.

drivers/clocksource/timer-pistachio.crenamed from drivers/clocksource/time-pistachio.c+0−0

File renamed without changes.

drivers/clocksource/timer-qcom.crenamed from drivers/clocksource/qcom-timer.c+0−0

File renamed without changes.

drivers/clocksource/timer-sp804.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/clocksource/timer-versatile.crenamed from drivers/clocksource/versatile.c+0−0

File renamed without changes.

drivers/clocksource/timer-vf-pit.crenamed from drivers/clocksource/vf_pit_timer.c+0−0

File renamed without changes.

drivers/clocksource/timer-vt8500.crenamed from drivers/clocksource/vt8500_timer.c+0−0

File renamed without changes.

drivers/clocksource/timer-zevio.crenamed from drivers/clocksource/zevio-timer.c+4−4

This diff is large: its 17 lines aren’t shown here.

drivers/cpufreq/Kconfig.arm+1−8

This diff is large: its 22 lines aren’t shown here.

drivers/cpufreq/Makefile+0−3

This diff is large: its 10 lines aren’t shown here.

drivers/cpufreq/acpi-cpufreq.c+5−0

This diff is large: its 33 lines aren’t shown here.

drivers/cpufreq/amd_freq_sensitivity.c+7−2

This diff is large: its 19 lines aren’t shown here.

drivers/cpufreq/arm_big_little_dt.c+0−100

This diff is large: its 101 lines aren’t shown here.

drivers/cpufreq/cppc_cpufreq.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/cpufreq/cpufreq-dt-platdev.c+5−1

This diff is large: its 20 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