History

Merge tag 'v4.14-rc2' into patchwork

Linux 4.14-rc2 * tag 'v4.14-rc2': (12066 commits) Linux 4.14-rc2 tpm: ibmvtpm: simplify crq initialization and document crq format tpm: replace msleep() with usleep_range() in TPM 1.2/2.0 generic drivers Documentation: tpm: add powered-while-suspended binding documentation tpm: tpm_crb: constify acpi_device_id. tpm: vtpm: constify vio_device_id security: fix description of values returned by cap_inode_need_killpriv x86/asm: Fix inline asm call constraints for Clang objtool: Handle another GCC stack pointer adjustment bug inet: fix improper empty comparison net: use inet6_rcv_saddr to compare sockets net: set tb->fast_sk_family net: orphan frags on stand-alone ptype in dev_queue_xmit_nit MAINTAINERS: update git tree locations for ieee802154 subsystem SMB3: Don't ignore O_SYNC/O_DSYNC and O_DIRECT flags SMB3: handle new statx fields arch: remove unused *_segments() macros/functions parisc: Unbreak bootloader due to gcc-7 optimizations parisc: Reintroduce option to gzip-compress the kernel apparmor: fix apparmorfs DAC access permissions ...

Mauro Carvalho Chehab committed 9 years ago

Commit cf09e3c2 parents d5426f4 e19b20511102 files · +555891 −330104Browse files

Unified · Split

3633 files
  1. CREDITS +4 −6
  2. Documentation/ABI/stable/sysfs-bus-nvmem +19 −0
  3. Documentation/ABI/stable/sysfs-driver-dma-ioatdma +30 −0
  4. Documentation/ABI/testing/configfs-usb-gadget-rndis +3 −0
  5. Documentation/ABI/testing/ppc-memtrace +45 −0
  6. Documentation/ABI/testing/procfs-smaps_rollup +31 −0
  7. Documentation/ABI/testing/sysfs-block-zram +8 −0
  8. Documentation/ABI/testing/sysfs-bus-iio +9 −0
  9. Documentation/ABI/testing/sysfs-bus-iio-lptimer-stm32 +57 −0
  10. Documentation/ABI/testing/sysfs-bus-thunderbolt +2 −0
  11. Documentation/ABI/testing/sysfs-bus-usb-lvstest +13 −0
  12. Documentation/ABI/testing/sysfs-driver-altera-cvp +8 −0
  13. Documentation/ABI/testing/sysfs-firmware-opal-powercap +31 −0
  14. Documentation/ABI/testing/sysfs-firmware-opal-psr +18 −0
  15. Documentation/ABI/testing/sysfs-fs-f2fs +21 −0
  16. Documentation/ABI/testing/sysfs-kernel-mm-swap +26 −0
  17. Documentation/ABI/testing/sysfs-power +12 −0
  18. Documentation/DMA-API.txt +17 −38
  19. Documentation/Makefile +2 −10
  20. Documentation/RCU/Design/Requirements/Requirements.html +130 −0
  21. Documentation/RCU/checklist.txt +85 −36
  22. Documentation/RCU/rcu.txt +3 −6
  23. Documentation/RCU/rcu_dereference.txt +21 −40
  24. Documentation/RCU/rcubarrier.txt +5 −0
  25. Documentation/RCU/torture.txt +14 −6
  26. Documentation/RCU/whatisRCU.txt +4 −1
  27. Documentation/admin-guide/LSM/tomoyo.rst +12 −12
  28. Documentation/admin-guide/devices.txt +5 −0
  29. Documentation/admin-guide/kernel-parameters.rst +1 −0
  30. Documentation/admin-guide/kernel-parameters.txt +37 −4
  31. Documentation/admin-guide/pm/cpufreq.rst +0 −8
  32. Documentation/admin-guide/pm/index.rst +3 −9
  33. Documentation/admin-guide/pm/intel_pstate.rst +8 −53
  34. Documentation/admin-guide/pm/sleep-states.rst +245 −0
  35. Documentation/admin-guide/pm/strategies.rst +52 −0
  36. Documentation/admin-guide/pm/system-wide.rst +8 −0
  37. Documentation/admin-guide/pm/working-state.rst +9 −0
  38. Documentation/arm/firmware.txt +1 −1
  39. Documentation/arm64/cpu-feature-registers.txt +2 −0
  40. Documentation/atomic_bitops.txt +66 −0
  41. Documentation/atomic_t.txt +242 −0
  42. Documentation/block/bfq-iosched.txt +64 −80
  43. Documentation/blockdev/cciss.txt +0 −194
  44. Documentation/blockdev/zram.txt +11 −0
  45. Documentation/cgroup-v2.txt +203 −18
  46. Documentation/conf.py +41 −23
  47. Documentation/core-api/genalloc.rst +144 −0
  48. Documentation/core-api/index.rst +1 −0
  49. Documentation/core-api/kernel-api.rst +49 −0
  50. Documentation/core-api/workqueue.rst +7 −3
  51. Documentation/dev-tools/gdb-kernel-debugging.rst +4 −2
  52. Documentation/dev-tools/kgdb.rst +10 −1
  53. Documentation/devicetree/bindings/arc/hsdk.txt +7 −0
  54. Documentation/devicetree/bindings/arm/amlogic.txt +41 −0
  55. Documentation/devicetree/bindings/arm/arch_timer.txt +0 −1
  56. Documentation/devicetree/bindings/arm/bcm/brcm,bcm2835.txt +4 −0
  57. Documentation/devicetree/bindings/arm/bhf.txt +6 −0
  58. Documentation/devicetree/bindings/arm/coresight.txt +2 −2
  59. Documentation/devicetree/bindings/arm/cpus.txt +1 −0
  60. Documentation/devicetree/bindings/arm/marvell/armada-8kp.txt +15 −0
  61. Documentation/devicetree/bindings/arm/marvell/cp110-system-controller0.txt +0 −1
  62. Documentation/devicetree/bindings/arm/mediatek.txt +12 −6
  63. Documentation/devicetree/bindings/arm/omap/omap.txt +9 −0
  64. Documentation/devicetree/bindings/arm/pmu.txt +2 −0
  65. Documentation/devicetree/bindings/arm/qcom.txt +2 −0
  66. Documentation/devicetree/bindings/arm/rockchip.txt +12 −0
  67. Documentation/devicetree/bindings/arm/shmobile.txt +8 −0
  68. Documentation/devicetree/bindings/ata/ahci-mtk.txt +51 −0
  69. Documentation/devicetree/bindings/ata/apm-xgene.txt +0 −2
  70. Documentation/devicetree/bindings/ata/imx-pata.txt +0 −1
  71. Documentation/devicetree/bindings/bus/mvebu-mbus.txt +0 −3
  72. Documentation/devicetree/bindings/bus/nvidia,tegra20-gmi.txt +0 −2
  73. Documentation/devicetree/bindings/bus/nvidia,tegra210-aconnect.txt +0 −1
  74. Documentation/devicetree/bindings/chosen.txt +24 −2
  75. Documentation/devicetree/bindings/clock/alphascale,acc.txt +0 −1
  76. Documentation/devicetree/bindings/clock/amlogic,gxbb-aoclkc.txt +16 −7
  77. Documentation/devicetree/bindings/clock/amlogic,gxbb-clkc.txt +0 −1
  78. Documentation/devicetree/bindings/clock/amlogic,meson8b-clkc.txt +8 −2
  79. Documentation/devicetree/bindings/clock/at91-clock.txt +10 −0
  80. Documentation/devicetree/bindings/clock/brcm,kona-ccu.txt +0 −1
  81. Documentation/devicetree/bindings/clock/exynos5433-clock.txt +0 −1
  82. Documentation/devicetree/bindings/clock/hi3660-clock.txt +0 −1
  83. Documentation/devicetree/bindings/clock/hix5hd2-clock.txt +0 −1
  84. Documentation/devicetree/bindings/clock/idt,versaclock5.txt +23 −7
  85. Documentation/devicetree/bindings/clock/imx21-clock.txt +0 −1
  86. Documentation/devicetree/bindings/clock/imx23-clock.txt +0 −1
  87. Documentation/devicetree/bindings/clock/imx25-clock.txt +0 −1
  88. Documentation/devicetree/bindings/clock/imx27-clock.txt +0 −1
  89. Documentation/devicetree/bindings/clock/imx28-clock.txt +0 −1
  90. Documentation/devicetree/bindings/clock/imx31-clock.txt +0 −1
  91. Documentation/devicetree/bindings/clock/imx5-clock.txt +0 −1
  92. Documentation/devicetree/bindings/clock/imx6q-clock.txt +0 −1
  93. Documentation/devicetree/bindings/clock/mt8173-cpu-dvfs.txt +0 −83
  94. Documentation/devicetree/bindings/clock/nvidia,tegra124-dfll.txt +0 −1
  95. Documentation/devicetree/bindings/clock/pxa-clock.txt +0 −1
  96. Documentation/devicetree/bindings/clock/renesas,cpg-mssr.txt +2 −2
  97. Documentation/devicetree/bindings/clock/renesas,r8a7778-cpg-clocks.txt +0 −1
  98. Documentation/devicetree/bindings/clock/renesas,rcar-usb2-clock-sel.txt +55 −0
  99. Documentation/devicetree/bindings/clock/renesas,rz-cpg-clocks.txt +0 −1
  100. Documentation/devicetree/bindings/clock/rockchip,rk3128-cru.txt +5 −3
  101. Documentation/devicetree/bindings/clock/samsung,s3c2410-clock.txt +0 −1
  102. Documentation/devicetree/bindings/clock/samsung,s3c2412-clock.txt +0 −1
  103. Documentation/devicetree/bindings/clock/samsung,s3c2443-clock.txt +0 −1
  104. Documentation/devicetree/bindings/clock/samsung,s3c64xx-clock.txt +0 −1
  105. Documentation/devicetree/bindings/clock/samsung,s5pv210-clock.txt +0 −1
  106. Documentation/devicetree/bindings/clock/silabs,si5351.txt +5 −1
  107. Documentation/devicetree/bindings/clock/snps,hsdk-pll-clock.txt +28 −0
  108. Documentation/devicetree/bindings/clock/snps,pll-clock.txt +28 −0
  109. Documentation/devicetree/bindings/clock/st,stm32h7-rcc.txt +71 −0
  110. Documentation/devicetree/bindings/clock/sunxi-ccu.txt +6 −0
  111. Documentation/devicetree/bindings/clock/ti,sci-clk.txt +3 −4
  112. Documentation/devicetree/bindings/clock/ti/dra7-atl.txt +0 −2
  113. Documentation/devicetree/bindings/clock/uniphier-clock.txt +3 −5
  114. Documentation/devicetree/bindings/clock/zx296702-clk.txt +0 −1
  115. Documentation/devicetree/bindings/clock/zx296718-clk.txt +0 −1
  116. Documentation/devicetree/bindings/cpufreq/cpufreq-mediatek.txt +247 −0
  117. Documentation/devicetree/bindings/crypto/artpec6-crypto.txt +16 −0
  118. Documentation/devicetree/bindings/crypto/atmel-crypto.txt +13 −0
  119. Documentation/devicetree/bindings/crypto/fsl-dcp.txt +0 −1
  120. Documentation/devicetree/bindings/crypto/inside-secure-safexcel.txt +0 −1
  121. Documentation/devicetree/bindings/crypto/marvell-cesa.txt +0 −1
  122. Documentation/devicetree/bindings/crypto/mv_cesa.txt +0 −1
  123. Documentation/devicetree/bindings/crypto/rockchip-crypto.txt +0 −1
  124. Documentation/devicetree/bindings/crypto/st,stm32-hash.txt +30 −0
  125. Documentation/devicetree/bindings/devfreq/event/rockchip-dfi.txt +0 −1
  126. Documentation/devicetree/bindings/devfreq/rk3399_dmc.txt +0 −1
  127. Documentation/devicetree/bindings/display/atmel,lcdc.txt +0 −1
  128. Documentation/devicetree/bindings/display/atmel/hlcdc-dc.txt +0 −1
  129. Documentation/devicetree/bindings/display/bridge/dw_mipi_dsi.txt +32 −0
  130. Documentation/devicetree/bindings/display/bridge/megachips-stdpxxxx-ge-b850v3-fw.txt +0 −1
  131. Documentation/devicetree/bindings/display/bridge/renesas,dw-hdmi.txt +1 −1
  132. Documentation/devicetree/bindings/display/exynos/exynos5433-decon.txt +0 −12
  133. Documentation/devicetree/bindings/display/fsl,tcon.txt +0 −1
  134. Documentation/devicetree/bindings/display/imx/fsl-imx-drm.txt +1 −1
  135. Documentation/devicetree/bindings/display/marvell,pxa2xx-lcdc.txt +0 −1
  136. Documentation/devicetree/bindings/display/panel/innolux,p079zca.txt +0 −1
  137. Documentation/devicetree/bindings/display/renesas,du.txt +30 −21
  138. Documentation/devicetree/bindings/display/repaper.txt +52 −0
  139. Documentation/devicetree/bindings/display/rockchip/analogix_dp-rockchip.txt +0 −1
  140. Documentation/devicetree/bindings/display/rockchip/dw_hdmi-rockchip.txt +5 −3
  141. Documentation/devicetree/bindings/display/rockchip/dw_mipi_dsi_rockchip.txt +0 −2
  142. Documentation/devicetree/bindings/display/rockchip/inno_hdmi-rockchip.txt +0 −1
  143. Documentation/devicetree/bindings/display/rockchip/rockchip-vop.txt +4 −0
  144. Documentation/devicetree/bindings/display/simple-framebuffer-sunxi.txt +0 −1
  145. Documentation/devicetree/bindings/display/sitronix,st7586.txt +22 −0
  146. Documentation/devicetree/bindings/display/st,stm32-ltdc.txt +103 −2
  147. Documentation/devicetree/bindings/display/sunxi/sun4i-drm.txt +27 −10
  148. Documentation/devicetree/bindings/dma/fsl-edma.txt +0 −1
  149. Documentation/devicetree/bindings/dma/mv-xor.txt +0 −1
  150. Documentation/devicetree/bindings/dma/qcom_adm.txt +0 −1
  151. Documentation/devicetree/bindings/dma/renesas,rcar-dmac.txt +1 −0
  152. Documentation/devicetree/bindings/dma/renesas,usb-dmac.txt +1 −0
  153. Documentation/devicetree/bindings/dma/snps-dma.txt +0 −1
  154. Documentation/devicetree/bindings/dma/st_fdma.txt +0 −1
  155. Documentation/devicetree/bindings/dma/ste-dma40.txt +0 −1
  156. Documentation/devicetree/bindings/dma/sun4i-dma.txt +0 −1
  157. Documentation/devicetree/bindings/dma/sun6i-dma.txt +1 −0
  158. Documentation/devicetree/bindings/dma/ti-dma-crossbar.txt +0 −1
  159. Documentation/devicetree/bindings/dma/ti-edma.txt +90 −6
  160. Documentation/devicetree/bindings/eeprom/eeprom.txt +5 −1
  161. Documentation/devicetree/bindings/extcon/extcon-usbc-cros-ec.txt +24 −0
  162. Documentation/devicetree/bindings/fpga/altera-passive-serial.txt +29 −0
  163. Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt +36 −0
  164. Documentation/devicetree/bindings/fpga/xilinx-slave-serial.txt +0 −1
  165. Documentation/devicetree/bindings/gpio/gpio-74x164.txt +3 −0
  166. Documentation/devicetree/bindings/gpio/gpio-aspeed.txt +1 −1
  167. Documentation/devicetree/bindings/gpio/gpio-davinci.txt +89 −2
  168. Documentation/devicetree/bindings/gpio/gpio-mpc8xxx.txt +0 −1
  169. Documentation/devicetree/bindings/gpio/gpio-vf610.txt +3 −1
  170. Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt +12 −4
  171. Documentation/devicetree/bindings/gpio/spear_spics.txt +0 −1
  172. Documentation/devicetree/bindings/gpu/arm,mali-midgard.txt +1 −0
  173. Documentation/devicetree/bindings/gpu/arm,mali-utgard.txt +5 −0
  174. Documentation/devicetree/bindings/gpu/nvidia,gk20a.txt +0 −3
  175. Documentation/devicetree/bindings/gpu/samsung-g2d.txt +0 −1
  176. Documentation/devicetree/bindings/hsi/omap-ssi.txt +0 −1
  177. Documentation/devicetree/bindings/hwmon/aspeed-pwm-tacho.txt +9 −0
  178. Documentation/devicetree/bindings/hwmon/ibm,cffps1.txt +21 −0
  179. Documentation/devicetree/bindings/hwmon/ltq-cputemp.txt +10 −0
  180. Documentation/devicetree/bindings/i2c/i2c-altera.txt +39 −0
  181. Documentation/devicetree/bindings/i2c/i2c-cbus-gpio.txt +2 −2
  182. Documentation/devicetree/bindings/i2c/i2c-demux-pinctrl.txt +0 −1
  183. Documentation/devicetree/bindings/i2c/i2c-efm32.txt +0 −1
  184. Documentation/devicetree/bindings/i2c/i2c-mtk.txt +8 −7
  185. Documentation/devicetree/bindings/i2c/i2c-rcar.txt +4 −1
  186. Documentation/devicetree/bindings/i2c/i2c-rk3x.txt +1 −0
  187. Documentation/devicetree/bindings/i2c/i2c-sh_mobile.txt +4 −1
  188. Documentation/devicetree/bindings/i2c/i2c-sprd.txt +31 −0
  189. Documentation/devicetree/bindings/i2c/i2c-stm32.txt +26 −3
  190. Documentation/devicetree/bindings/i2c/nvidia,tegra20-i2c.txt +0 −1
  191. Documentation/devicetree/bindings/iio/adc/at91-sama5d2_adc.txt +6 −0
  192. Documentation/devicetree/bindings/iio/adc/brcm,iproc-static-adc.txt +0 −1
  193. Documentation/devicetree/bindings/iio/adc/lpc1850-adc.txt +0 −1
  194. Documentation/devicetree/bindings/iio/adc/mt6577_auxadc.txt +1 −0
  195. Documentation/devicetree/bindings/iio/adc/rockchip-saradc.txt +1 −0
  196. Documentation/devicetree/bindings/iio/adc/st,stm32-adc.txt +5 −0
  197. Documentation/devicetree/bindings/iio/counter/stm32-lptimer-cnt.txt +27 −0
  198. Documentation/devicetree/bindings/iio/dac/lpc1850-dac.txt +0 −1
  199. Documentation/devicetree/bindings/iio/dac/st,stm32-dac.txt +3 −1
  200. Documentation/devicetree/bindings/iio/humidity/hdc100x.txt +17 −0
  201. Documentation/devicetree/bindings/iio/humidity/hts221.txt +10 −1
  202. Documentation/devicetree/bindings/iio/humidity/htu21.txt +13 −0
  203. Documentation/devicetree/bindings/iio/imu/st_lsm6dsx.txt +8 −0
  204. Documentation/devicetree/bindings/iio/pressure/ms5637.txt +17 −0
  205. Documentation/devicetree/bindings/iio/st-sensors.txt +3 −0
  206. Documentation/devicetree/bindings/iio/temperature/tsys01.txt +19 −0
  207. Documentation/devicetree/bindings/iio/timer/stm32-lptimer-trigger.txt +23 −0
  208. Documentation/devicetree/bindings/iio/timer/stm32-timer-trigger.txt +4 −2
  209. Documentation/devicetree/bindings/input/atmel,maxtouch.txt +2 −0
  210. Documentation/devicetree/bindings/input/brcm,bcm-keypad.txt +0 −1
  211. Documentation/devicetree/bindings/input/pwm-vibrator.txt +66 −0
  212. Documentation/devicetree/bindings/input/ti,drv260x.txt +1 −1
  213. Documentation/devicetree/bindings/input/touchscreen/colibri-vf50-ts.txt +0 −1
  214. Documentation/devicetree/bindings/input/touchscreen/imx6ul_tsc.txt +0 −1
  215. Documentation/devicetree/bindings/interrupt-controller/fsl,ls-scfg-msi.txt +5 −3
  216. Documentation/devicetree/bindings/interrupt-controller/mediatek,sysirq.txt +1 −0
  217. Documentation/devicetree/bindings/interrupt-controller/socionext,uniphier-aidet.txt +32 −0
  218. Documentation/devicetree/bindings/iommu/qcom,iommu.txt +121 −0
  219. Documentation/devicetree/bindings/iommu/rockchip,iommu.txt +5 −0
  220. Documentation/devicetree/bindings/leds/leds-gpio.txt +3 −0
  221. Documentation/devicetree/bindings/leds/leds-pca955x.txt +88 −0
  222. Documentation/devicetree/bindings/media/pxa-camera.txt +0 −1
  223. Documentation/devicetree/bindings/media/s5p-cec.txt +0 −1
  224. Documentation/devicetree/bindings/media/samsung-fimc.txt +0 −2
  225. Documentation/devicetree/bindings/media/stih407-c8sectpfe.txt +0 −1
  226. Documentation/devicetree/bindings/media/ti,da850-vpif.txt +0 −1
  227. Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.txt +15 −0
  228. Documentation/devicetree/bindings/memory-controllers/mvebu-devbus.txt +0 −1
  229. Documentation/devicetree/bindings/mfd/act8945a.txt +0 −2
  230. Documentation/devicetree/bindings/mfd/atmel-hlcdc.txt +0 −1
  231. Documentation/devicetree/bindings/mfd/atmel-smc.txt +1 −0
  232. Documentation/devicetree/bindings/mfd/axp20x.txt +45 −5
  233. Documentation/devicetree/bindings/mfd/bd9571mwv.txt +49 −0
  234. Documentation/devicetree/bindings/mfd/da9052-i2c.txt +8 −1
  235. Documentation/devicetree/bindings/mfd/mc13xxx.txt +0 −1
  236. Documentation/devicetree/bindings/mfd/mxs-lradc.txt +0 −2
  237. Documentation/devicetree/bindings/mfd/retu.txt +25 −0
  238. Documentation/devicetree/bindings/mfd/rk808.txt +21 −1
  239. Documentation/devicetree/bindings/mfd/samsung,exynos5433-lpass.txt +0 −2
  240. Documentation/devicetree/bindings/mfd/stm32-lptimer.txt +48 −0
  241. Documentation/devicetree/bindings/mfd/tps6105x.txt +17 −0
  242. Documentation/devicetree/bindings/mfd/wm831x.txt +1 −0
  243. Documentation/devicetree/bindings/mfd/zii,rave-sp.txt +39 −0
  244. Documentation/devicetree/bindings/mips/lantiq/fpi-bus.txt +31 −0
  245. Documentation/devicetree/bindings/mips/lantiq/rcu-gphy.txt +36 −0
  246. Documentation/devicetree/bindings/mips/lantiq/rcu.txt +89 −0
  247. Documentation/devicetree/bindings/mips/ni.txt +7 −0
  248. Documentation/devicetree/bindings/mips/ralink.txt +1 −0
  249. Documentation/devicetree/bindings/misc/atmel-ssc.txt +0 −1
  250. Documentation/devicetree/bindings/mmc/arasan,sdhci.txt +0 −1
  251. Documentation/devicetree/bindings/mmc/davinci_mmc.txt +0 −1
  252. Documentation/devicetree/bindings/mmc/fsl-imx-mmc.txt +0 −1
  253. Documentation/devicetree/bindings/mmc/mmc-card.txt +0 −1
  254. Documentation/devicetree/bindings/mmc/mmc.txt +0 −1
  255. Documentation/devicetree/bindings/mmc/orion-sdio.txt +0 −1
  256. Documentation/devicetree/bindings/mmc/renesas,mmcif.txt +3 −1
  257. Documentation/devicetree/bindings/mmc/rockchip-dw-mshc.txt +1 −0
  258. Documentation/devicetree/bindings/mmc/sdhci-st.txt +0 −3
  259. Documentation/devicetree/bindings/mmc/sunxi-mmc.txt +1 −0
  260. Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt +37 −15
  261. Documentation/devicetree/bindings/mmc/tmio_mmc.txt +4 −4
  262. Documentation/devicetree/bindings/mmc/zx-dw-mshc.txt +0 −1
  263. Documentation/devicetree/bindings/mtd/atmel-quadspi.txt +0 −1
  264. Documentation/devicetree/bindings/mtd/mtk-quadspi.txt +0 −1
  265. Documentation/devicetree/bindings/mtd/qcom_nandc.txt +59 −6
  266. Documentation/devicetree/bindings/mtd/st-fsm.txt +0 −1
  267. Documentation/devicetree/bindings/mtd/sunxi-nand.txt +0 −1
  268. Documentation/devicetree/bindings/net/anarion-gmac.txt +25 −0
  269. Documentation/devicetree/bindings/net/brcm,amac.txt +0 −1
  270. Documentation/devicetree/bindings/net/broadcom-bluetooth.txt +35 −0
  271. Documentation/devicetree/bindings/net/btusb.txt +0 −1
  272. Documentation/devicetree/bindings/net/can/c_can.txt +12 −1
  273. Documentation/devicetree/bindings/net/can/m_can.txt +0 −1
  274. Documentation/devicetree/bindings/net/dsa/ksz.txt +0 −2
  275. Documentation/devicetree/bindings/net/dsa/lan9303.txt +0 −3
  276. Documentation/devicetree/bindings/net/dwmac-sun8i.txt +0 −84
  277. Documentation/devicetree/bindings/net/ethernet.txt +4 −0
  278. Documentation/devicetree/bindings/net/ftgmac100.txt +0 −1
  279. Documentation/devicetree/bindings/net/marvell-armada-370-neta.txt +0 −1
  280. Documentation/devicetree/bindings/net/marvell-bt-8xxx.txt +0 −2
  281. Documentation/devicetree/bindings/net/marvell-neta-bm.txt +0 −2
  282. Documentation/devicetree/bindings/net/marvell-pp2.txt +26 −6
  283. Documentation/devicetree/bindings/net/mediatek-net.txt +13 −5
  284. Documentation/devicetree/bindings/net/meson-dwmac.txt +0 −1
  285. Documentation/devicetree/bindings/net/micrel-ksz90x1.txt +0 −1
  286. Documentation/devicetree/bindings/net/microchip,enc28j60.txt +0 −1
  287. Documentation/devicetree/bindings/net/nfc/nfcmrvl.txt +0 −2
  288. Documentation/devicetree/bindings/net/nfc/nxp-nci.txt +0 −1
  289. Documentation/devicetree/bindings/net/nfc/pn533-i2c.txt +0 −1
  290. Documentation/devicetree/bindings/net/nfc/pn544.txt +0 −1
  291. Documentation/devicetree/bindings/net/nfc/s3fwrn5.txt +0 −1
  292. Documentation/devicetree/bindings/net/nfc/st-nci-i2c.txt +0 −1
  293. Documentation/devicetree/bindings/net/nfc/st-nci-spi.txt +0 −1
  294. Documentation/devicetree/bindings/net/nfc/st21nfca.txt +0 −1
  295. Documentation/devicetree/bindings/net/nfc/st95hf.txt +0 −2
  296. Documentation/devicetree/bindings/net/nfc/trf7970a.txt +0 −2
  297. Documentation/devicetree/bindings/net/oxnas-dwmac.txt +0 −1
  298. Documentation/devicetree/bindings/net/phy.txt +8 −7
  299. Documentation/devicetree/bindings/net/qca,qca7000.txt +0 −2
  300. Documentation/devicetree/bindings/net/renesas,ravb.txt +18 −12
  301. Documentation/devicetree/bindings/net/rockchip-dwmac.txt +1 −1
  302. Documentation/devicetree/bindings/net/sff,sfp.txt +76 −0
  303. Documentation/devicetree/bindings/net/smsc-lan87xx.txt +0 −1
  304. Documentation/devicetree/bindings/net/socfpga-dwmac.txt +0 −1
  305. Documentation/devicetree/bindings/net/sti-dwmac.txt +0 −1
  306. Documentation/devicetree/bindings/net/stm32-dwmac.txt +0 −1
  307. Documentation/devicetree/bindings/net/wireless/brcm,bcm43xx-fmac.txt +0 −1
  308. Documentation/devicetree/bindings/net/wireless/esp,esp8089.txt +0 −1
  309. Documentation/devicetree/bindings/net/wireless/marvell-8xxx.txt +0 −1
  310. Documentation/devicetree/bindings/net/wireless/ti,wlcore.txt +0 −1
  311. Documentation/devicetree/bindings/net/xilinx_axienet.txt +55 −0
  312. Documentation/devicetree/bindings/nvmem/mtk-efuse.txt +4 −1
  313. Documentation/devicetree/bindings/nvmem/mxs-ocotp.txt +0 −1
  314. Documentation/devicetree/bindings/opp/opp.txt +0 −1
  315. Documentation/devicetree/bindings/pci/83xx-512x-pci.txt +3 −3
  316. Documentation/devicetree/bindings/pci/aardvark-pci.txt +0 −1
  317. Documentation/devicetree/bindings/pci/altera-pcie.txt +9 −9
  318. Documentation/devicetree/bindings/pci/axis,artpec6-pcie.txt +1 −1
  319. Documentation/devicetree/bindings/pci/designware-pcie.txt +11 −13
  320. Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.txt +1 −1
  321. Documentation/devicetree/bindings/pci/hisilicon-pcie.txt +2 −4
  322. Documentation/devicetree/bindings/pci/kirin-pcie.txt +4 −4
  323. Documentation/devicetree/bindings/pci/layerscape-pci.txt +3 −1
  324. Documentation/devicetree/bindings/pci/mediatek,mt7623-pcie.txt +0 −130
  325. Documentation/devicetree/bindings/pci/mediatek-pcie.txt +284 −0
  326. Documentation/devicetree/bindings/pci/mvebu-pci.txt +2 −13
  327. Documentation/devicetree/bindings/pci/pci-armada8k.txt +1 −2
  328. Documentation/devicetree/bindings/pci/pci-keystone.txt +7 −8
  329. Documentation/devicetree/bindings/pci/pci-rcar-gen2.txt +5 −2
  330. Documentation/devicetree/bindings/pci/pci.txt +2 −2
  331. Documentation/devicetree/bindings/pci/qcom,pcie.txt +25 −2
  332. Documentation/devicetree/bindings/pci/ralink,rt3883-pci.txt +1 −1
  333. Documentation/devicetree/bindings/pci/rcar-pci.txt +3 −5
  334. Documentation/devicetree/bindings/pci/rockchip-pcie.txt +25 −3
  335. Documentation/devicetree/bindings/pci/samsung,exynos5440-pcie.txt +11 −11
  336. Documentation/devicetree/bindings/pci/spear13xx-pcie.txt +3 −3
  337. Documentation/devicetree/bindings/pci/ti-pci.txt +4 −4
  338. Documentation/devicetree/bindings/pci/versatile.txt +1 −1
  339. Documentation/devicetree/bindings/pci/xgene-pci-msi.txt +3 −3
  340. Documentation/devicetree/bindings/pci/xgene-pci.txt +4 −4
  341. Documentation/devicetree/bindings/pci/xilinx-nwl-pcie.txt +4 −3
  342. Documentation/devicetree/bindings/phy/apm-xgene-phy.txt +0 −3
  343. Documentation/devicetree/bindings/phy/keystone-usb-phy.txt +0 −1
  344. Documentation/devicetree/bindings/phy/phy-bindings.txt +3 −1
  345. Documentation/devicetree/bindings/phy/phy-lantiq-rcu-usb2.txt +40 −0
  346. Documentation/devicetree/bindings/phy/phy-mtk-tphy.txt +12 −9
  347. Documentation/devicetree/bindings/phy/phy-mvebu-comphy.txt +43 −0
  348. Documentation/devicetree/bindings/phy/phy-mvebu.txt +0 −1
  349. Documentation/devicetree/bindings/phy/phy-rockchip-inno-usb2.txt +10 −3
  350. Documentation/devicetree/bindings/phy/qcom-dwc3-usb-phy.txt +0 −2
  351. Documentation/devicetree/bindings/phy/qcom-qmp-phy.txt +11 −0
  352. Documentation/devicetree/bindings/phy/ralink-usb-phy.txt +23 −0
  353. Documentation/devicetree/bindings/phy/rockchip-pcie-phy.txt +6 −1
  354. Documentation/devicetree/bindings/phy/samsung-phy.txt +0 −1
  355. Documentation/devicetree/bindings/phy/sun4i-usb-phy.txt +8 −2
  356. Documentation/devicetree/bindings/phy/sun9i-usb-phy.txt +0 −1
  357. Documentation/devicetree/bindings/pinctrl/atmel,at91-pinctrl.txt +0 −1
  358. Documentation/devicetree/bindings/pinctrl/cortina,gemini-pinctrl.txt +59 −0
  359. Documentation/devicetree/bindings/pinctrl/fsl,imx-pinctrl.txt +0 −1
  360. Documentation/devicetree/bindings/pinctrl/fsl,imx7d-pinctrl.txt +0 −1
  361. Documentation/devicetree/bindings/pinctrl/fsl,imx7ulp-pinctrl.txt +61 −0
  362. Documentation/devicetree/bindings/pinctrl/nvidia,tegra124-dpaux-padctl.txt +0 −1
  363. Documentation/devicetree/bindings/pinctrl/oxnas,pinctrl.txt +0 −1
  364. Documentation/devicetree/bindings/pinctrl/pinctrl-aspeed.txt +5 −3
  365. Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt +2 −0
  366. Documentation/devicetree/bindings/pinctrl/pinctrl-mt65xx.txt +1 −0
  367. Documentation/devicetree/bindings/pinctrl/pinctrl-rk805.txt +63 −0
  368. Documentation/devicetree/bindings/pinctrl/pinctrl-zx.txt +0 −1
  369. Documentation/devicetree/bindings/pinctrl/qcom,apq8064-pinctrl.txt +2 −1
  370. Documentation/devicetree/bindings/pinctrl/qcom,ipq4019-pinctrl.txt +5 −1
  371. Documentation/devicetree/bindings/pinctrl/qcom,pmic-gpio.txt +25 −1
  372. Documentation/devicetree/bindings/pinctrl/renesas,pfc-pinctrl.txt +2 −2
  373. Documentation/devicetree/bindings/pinctrl/rockchip,pinctrl.txt +1 −1
  374. Documentation/devicetree/bindings/pinctrl/sprd,pinctrl.txt +83 −0
  375. Documentation/devicetree/bindings/pinctrl/sprd,sc9860-pinctrl.txt +70 −0
  376. Documentation/devicetree/bindings/pinctrl/st,stm32-pinctrl.txt +0 −1
  377. Documentation/devicetree/bindings/power/power-controller.txt +0 −1
  378. Documentation/devicetree/bindings/power/renesas,apmu.txt +2 −1
  379. Documentation/devicetree/bindings/power/renesas,rcar-sysc.txt +1 −0
  380. Documentation/devicetree/bindings/power/reset/st-reset.txt +0 −1
  381. Documentation/devicetree/bindings/power/rockchip-io-domain.txt +2 −0
  382. Documentation/devicetree/bindings/power/supply/act8945a-charger.txt +0 −2
  383. Documentation/devicetree/bindings/power/supply/bq24190.txt +51 −0
  384. Documentation/devicetree/bindings/power/supply/ltc2941.txt +8 −7
  385. Documentation/devicetree/bindings/power/supply/max8903-charger.txt +0 −1
  386. Documentation/devicetree/bindings/power/supply/maxim,max14656.txt +0 −1
  387. Documentation/devicetree/bindings/power/wakeup-source.txt +4 −5
  388. Documentation/devicetree/bindings/powerpc/ibm,vas.txt +22 −0
  389. Documentation/devicetree/bindings/powerpc/opal/sensor-groups.txt +27 −0
  390. Documentation/devicetree/bindings/pps/pps-gpio.txt +6 −2
  391. Documentation/devicetree/bindings/ptp/brcm,ptp-dte.txt +0 −1
  392. Documentation/devicetree/bindings/pwm/pwm-bcm2835.txt +2 −2
  393. Documentation/devicetree/bindings/pwm/pwm-mediatek.txt +5 −1
  394. Documentation/devicetree/bindings/pwm/pwm-meson.txt +0 −1
  395. Documentation/devicetree/bindings/pwm/pwm-rockchip.txt +9 −2
  396. Documentation/devicetree/bindings/pwm/pwm-stm32-lp.txt +24 −0
  397. Documentation/devicetree/bindings/pwm/pwm-sun4i.txt +0 −1
  398. Documentation/devicetree/bindings/pwm/pwm-tiecap.txt +1 −0
  399. Documentation/devicetree/bindings/pwm/pwm-tipwmss.txt +0 −2
  400. Documentation/devicetree/bindings/pwm/pwm-zx.txt +22 −0
  401. Documentation/devicetree/bindings/pwm/renesas,tpu-pwm.txt +0 −1
  402. Documentation/devicetree/bindings/regulator/act8865-regulator.txt +0 −1
  403. Documentation/devicetree/bindings/regulator/act8945a-regulator.txt +0 −1
  404. Documentation/devicetree/bindings/regulator/mt6311-regulator.txt +1 −1
  405. Documentation/devicetree/bindings/regulator/mt6323-regulator.txt +1 −1
  406. Documentation/devicetree/bindings/regulator/mt6380-regulator.txt +89 −0
  407. Documentation/devicetree/bindings/regulator/mt6397-regulator.txt +1 −1
  408. Documentation/devicetree/bindings/regulator/pwm-regulator.txt +1 −1
  409. Documentation/devicetree/bindings/regulator/st,stm32-vrefbuf.txt +20 −0
  410. Documentation/devicetree/bindings/remoteproc/imx-rproc.txt +33 −0
  411. Documentation/devicetree/bindings/remoteproc/qcom,adsp.txt +4 −3
  412. Documentation/devicetree/bindings/remoteproc/qcom,q6v5.txt +5 −0
  413. Documentation/devicetree/bindings/remoteproc/ti,davinci-rproc.txt +86 −0
  414. Documentation/devicetree/bindings/remoteproc/ti,keystone-rproc.txt +64 −9
  415. Documentation/devicetree/bindings/reset/lantiq,reset.txt +30 −0
  416. Documentation/devicetree/bindings/reset/nxp,lpc1850-rgu.txt +0 −1
  417. Documentation/devicetree/bindings/reset/renesas,rst.txt +1 −0
  418. Documentation/devicetree/bindings/reset/uniphier-reset.txt +25 −2
  419. Documentation/devicetree/bindings/rng/imx-rngc.txt +21 −0
  420. Documentation/devicetree/bindings/rtc/google,goldfish-rtc.txt +17 −0
  421. Documentation/devicetree/bindings/rtc/isil,isl12057.txt +0 −1
  422. Documentation/devicetree/bindings/rtc/realtek,rtd119x.txt +16 −0
  423. Documentation/devicetree/bindings/rtc/st,stm32-rtc.txt +0 −1
  424. Documentation/devicetree/bindings/rtc/sun6i-rtc.txt +2 −2
  425. Documentation/devicetree/bindings/scsi/hisilicon-sas.txt +0 −1
  426. Documentation/devicetree/bindings/security/tpm/st33zp24-i2c.txt +0 −1
  427. Documentation/devicetree/bindings/security/tpm/st33zp24-spi.txt +0 −1
  428. Documentation/devicetree/bindings/security/tpm/tpm-i2c.txt +6 −1
  429. Documentation/devicetree/bindings/security/tpm/tpm_tis_spi.txt +0 −1
  430. Documentation/devicetree/bindings/serial/8250.txt +2 −0
  431. Documentation/devicetree/bindings/serial/arc-uart.txt +0 −1
  432. Documentation/devicetree/bindings/serial/axis,etraxfs-uart.txt +0 −1
  433. Documentation/devicetree/bindings/serial/mtk-uart.txt +1 −0
  434. Documentation/devicetree/bindings/serial/nvidia,tegra20-hsuart.txt +0 −1
  435. Documentation/devicetree/bindings/serial/qcom,msm-uartdm.txt +0 −3
  436. Documentation/devicetree/bindings/serial/renesas,sci-serial.txt +2 −0
  437. Documentation/devicetree/bindings/serial/rs485.txt +2 −3
  438. Documentation/devicetree/bindings/serial/serial.txt +0 −2
  439. Documentation/devicetree/bindings/serial/st,stm32-usart.txt +12 −5
  440. Documentation/devicetree/bindings/serio/allwinner,sun4i-ps2.txt +0 −1
  441. Documentation/devicetree/bindings/serio/ps2-gpio.txt +23 −0
  442. Documentation/devicetree/bindings/soc/mediatek/scpsys.txt +3 −0
  443. Documentation/devicetree/bindings/soc/qcom/qcom,glink.txt +7 −6
  444. Documentation/devicetree/bindings/soc/qcom/qcom,gsbi.txt +0 −1
  445. Documentation/devicetree/bindings/soc/rockchip/grf.txt +3 −0
  446. Documentation/devicetree/bindings/soc/rockchip/power_domain.txt +3 −0
  447. Documentation/devicetree/bindings/soc/ti/sci-pm-domain.txt +3 −2
  448. Documentation/devicetree/bindings/sound/armada-370db-audio.txt +0 −1
  449. Documentation/devicetree/bindings/sound/atmel-classd.txt +3 −6
  450. Documentation/devicetree/bindings/sound/axentia,tse850-pcm5142.txt +0 −1
  451. Documentation/devicetree/bindings/sound/brcm,cygnus-audio.txt +0 −4
  452. Documentation/devicetree/bindings/sound/cs43130.txt +67 −0
  453. Documentation/devicetree/bindings/sound/davinci-mcbsp.txt +0 −1
  454. Documentation/devicetree/bindings/sound/dmic.txt +16 −0
  455. Documentation/devicetree/bindings/sound/fsl,asrc.txt +0 −1
  456. Documentation/devicetree/bindings/sound/fsl,esai.txt +0 −1
  457. Documentation/devicetree/bindings/sound/fsl,spdif.txt +0 −1
  458. Documentation/devicetree/bindings/sound/hdmi.txt +0 −1
  459. Documentation/devicetree/bindings/sound/mt2701-afe-pcm.txt +3 −1
  460. Documentation/devicetree/bindings/sound/qcom,msm8916-wcd-analog.txt +17 −1
  461. Documentation/devicetree/bindings/sound/renesas,rsnd.txt +34 −36
  462. Documentation/devicetree/bindings/sound/rockchip,pdm.txt +5 −3
  463. Documentation/devicetree/bindings/sound/rockchip,rk3399-gru-sound.txt +1 −1
  464. Documentation/devicetree/bindings/sound/rockchip-i2s.txt +4 −0
  465. Documentation/devicetree/bindings/sound/rockchip-spdif.txt +0 −1
  466. Documentation/devicetree/bindings/sound/rt274.txt +33 −0
  467. Documentation/devicetree/bindings/sound/rt5663.txt +8 −0
  468. Documentation/devicetree/bindings/sound/samsung,odroid.txt +0 −6
  469. Documentation/devicetree/bindings/sound/simple-card.txt +3 −0
  470. Documentation/devicetree/bindings/sound/simple-scu-card.txt +1 −0
  471. Documentation/devicetree/bindings/sound/st,sti-asoc-card.txt +0 −5
  472. Documentation/devicetree/bindings/sound/sun4i-i2s.txt +2 −0
  473. Documentation/devicetree/bindings/sound/sunxi,sun4i-spdif.txt +0 −1
  474. Documentation/devicetree/bindings/sound/tas5720.txt +0 −1
  475. Documentation/devicetree/bindings/sound/tlv320aic32x4.txt +12 −1
  476. Documentation/devicetree/bindings/sound/tlv320aic3x.txt +5 −0
  477. Documentation/devicetree/bindings/sound/wm8524.txt +16 −0
  478. Documentation/devicetree/bindings/sound/zte,zx-i2s.txt +0 −1
  479. Documentation/devicetree/bindings/sound/zte,zx-spdif.txt +0 −1
  480. Documentation/devicetree/bindings/spi/efm32-spi.txt +0 −2
  481. Documentation/devicetree/bindings/spi/fsl-imx-cspi.txt +1 −0
  482. Documentation/devicetree/bindings/spi/nvidia,tegra114-spi.txt +0 −1
  483. Documentation/devicetree/bindings/spi/nvidia,tegra20-sflash.txt +0 −1
  484. Documentation/devicetree/bindings/spi/nvidia,tegra20-slink.txt +0 −1
  485. Documentation/devicetree/bindings/spi/sh-hspi.txt +0 −1
  486. Documentation/devicetree/bindings/spi/sh-msiof.txt +1 −1
  487. Documentation/devicetree/bindings/spi/spi-clps711x.txt +0 −1
  488. Documentation/devicetree/bindings/spi/spi-fsl-dspi.txt +0 −1
  489. Documentation/devicetree/bindings/spi/spi-mt65xx.txt +0 −1
  490. Documentation/devicetree/bindings/spi/spi-orion.txt +0 −2
  491. Documentation/devicetree/bindings/spi/spi-rockchip.txt +1 −0
  492. Documentation/devicetree/bindings/spi/spi-sun4i.txt +0 −1
  493. Documentation/devicetree/bindings/spi/spi-sun6i.txt +0 −1
  494. Documentation/devicetree/bindings/spi/spi_atmel.txt +0 −1
  495. Documentation/devicetree/bindings/sram/renesas,smp-sram.txt +27 −0
  496. Documentation/devicetree/bindings/sram/sunxi-sram.txt +7 −3
  497. Documentation/devicetree/bindings/thermal/armada-thermal.txt +0 −1
  498. Documentation/devicetree/bindings/thermal/exynos-thermal.txt +0 −1
  499. Documentation/devicetree/bindings/thermal/mediatek-thermal.txt +1 −0
  500. Documentation/devicetree/bindings/thermal/rcar-gen3-thermal.txt +0 −1
  501. Documentation/devicetree/bindings/thermal/rockchip-thermal.txt +1 −0
  502. Documentation/devicetree/bindings/thermal/uniphier-thermal.txt +64 −0
  503. Documentation/devicetree/bindings/timer/nxp,tpm-timer.txt +28 −0
  504. Documentation/devicetree/bindings/timer/renesas,cmt.txt +32 −41
  505. Documentation/devicetree/bindings/trivial-devices.txt +14 −0
  506. Documentation/devicetree/bindings/unittest.txt +0 −5
  507. Documentation/devicetree/bindings/usb/allwinner,sun4i-a10-musb.txt +0 −1
  508. Documentation/devicetree/bindings/usb/am33xx-usb.txt +2 −2
  509. Documentation/devicetree/bindings/usb/brcm,bdc.txt +29 −0
  510. Documentation/devicetree/bindings/usb/da8xx-usb.txt +0 −2
  511. Documentation/devicetree/bindings/usb/dwc3-st.txt +0 −1
  512. Documentation/devicetree/bindings/usb/dwc3-xilinx.txt +0 −1
  513. Documentation/devicetree/bindings/usb/ehci-st.txt +0 −1
  514. Documentation/devicetree/bindings/usb/exynos-usb.txt +0 −2
  515. Documentation/devicetree/bindings/usb/fcs,fusb302.txt +29 −0
  516. Documentation/devicetree/bindings/usb/isp1301.txt +0 −1
  517. Documentation/devicetree/bindings/usb/keystone-usb.txt +15 −3
  518. Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.txt +11 −3
  519. Documentation/devicetree/bindings/usb/mediatek,mtu3.txt +6 −4
  520. Documentation/devicetree/bindings/usb/ohci-st.txt +0 −1
  521. Documentation/devicetree/bindings/usb/qcom,dwc3.txt +0 −3
  522. Documentation/devicetree/bindings/usb/renesas_usb3.txt +13 −3
  523. Documentation/devicetree/bindings/usb/rockchip,dwc3.txt +0 −4
  524. Documentation/devicetree/bindings/usb/usb-device.txt +1 −2
  525. Documentation/devicetree/bindings/vendor-prefixes.txt +10 −2
  526. Documentation/devicetree/bindings/w1/fsl-imx-owire.txt +0 −1
  527. Documentation/devicetree/bindings/watchdog/aspeed-wdt.txt +40 −0
  528. Documentation/devicetree/bindings/watchdog/atmel-sama5d4-wdt.txt +0 −1
  529. Documentation/devicetree/bindings/watchdog/atmel-wdt.txt +0 −1
  530. Documentation/devicetree/bindings/watchdog/lantiq-wdt.txt +24 −0
  531. Documentation/devicetree/bindings/watchdog/marvel.txt +0 −1
  532. Documentation/devicetree/bindings/watchdog/meson-wdt.txt +5 −1
  533. Documentation/devicetree/bindings/watchdog/mtk-wdt.txt +5 −3
  534. Documentation/devicetree/bindings/watchdog/renesas-wdt.txt +1 −0
  535. Documentation/devicetree/bindings/xilinx.txt +2 −0
  536. Documentation/devicetree/booting-without-of.txt +1 −1
  537. Documentation/dmaengine/provider.txt +7 −7
  538. Documentation/doc-guide/sphinx.rst +106 −1
  539. Documentation/dontdiff +0 −1
  540. Documentation/driver-api/basics.rst +1 −4
  541. Documentation/driver-api/dma-buf.rst +0 −3
  542. Documentation/driver-api/firmware/request_firmware.rst +0 −11
  543. Documentation/driver-api/gpio.rst +45 −0
  544. Documentation/driver-api/index.rst +1 −0
  545. Documentation/driver-api/miscellaneous.rst +0 −1
  546. Documentation/driver-api/mtdnand.rst +4 −4
  547. Documentation/driver-api/pm/devices.rst +1 −1
  548. Documentation/driver-api/s390-drivers.rst +1 −1
  549. Documentation/driver-api/scsi.rst +0 −8
  550. Documentation/driver-model/devres.txt +1 −0
  551. Documentation/errseq.rst +149 −0
  552. Documentation/fb/efifb.txt +6 −0
  553. Documentation/fb/fbcon.txt +7 −0
  554. Documentation/features/core/tracehook/arch-support.txt +1 −1
  555. Documentation/filesystems/Locking +1 −1
  556. Documentation/filesystems/caching/netfs-api.txt +0 −2
  557. Documentation/filesystems/cifs/AUTHORS +5 −0
  558. Documentation/filesystems/cifs/README +38 −43
  559. Documentation/filesystems/cifs/TODO +34 −38
  560. Documentation/filesystems/cifs/cifs.txt +14 −10
  561. Documentation/filesystems/dax.txt +2 −3
  562. Documentation/filesystems/f2fs.txt +19 −0
  563. Documentation/filesystems/orangefs.txt +4 −10
  564. Documentation/filesystems/porting +1 −1
  565. Documentation/filesystems/vfs.txt +2 −4
  566. Documentation/gpio/drivers-on-gpio.txt +5 −0
  567. Documentation/gpio/gpio-legacy.txt +1 −1
  568. Documentation/gpu/drm-internals.rst +2 −0
  569. Documentation/gpu/drm-kms-helpers.rst +9 −0
  570. Documentation/gpu/drm-kms.rst +2 −57
  571. Documentation/gpu/drm-mm.rst +2 −2
  572. Documentation/gpu/drm-uapi.rst +2 −0
  573. Documentation/gpu/i915.rst +17 −1
  574. Documentation/gpu/todo.rst +2 −2
  575. Documentation/hwmon/ftsteutates +4 −0
  576. Documentation/hwmon/ibm-cffps +54 −0
  577. Documentation/hwmon/lm25066 +7 −2
  578. Documentation/i2c/i2c-topology +6 −0
  579. Documentation/iio/ep93xx_adc.txt +29 −0
  580. Documentation/infiniband/tag_matching.txt +64 −0
  581. Documentation/input/input.rst +1 −1
  582. Documentation/input/joydev/index.rst +0 −1
  583. Documentation/kbuild/makefiles.txt +3 −3
  584. Documentation/laptops/thinkpad-acpi.txt +7 −2
  585. Documentation/locking/crossrelease.txt +874 −0
  586. Documentation/locking/rt-mutex-design.txt +105 −327
  587. Documentation/locking/rt-mutex.txt +26 −32
  588. Documentation/memory-barriers.txt +32 −110
  589. Documentation/networking/00-INDEX +0 −2
  590. Documentation/networking/batman-adv.rst +220 −0
  591. Documentation/networking/batman-adv.txt +0 −215
  592. Documentation/networking/dpaa.txt +67 −1
  593. Documentation/networking/filter.txt +112 −22
  594. Documentation/networking/hinic.txt +125 −0
  595. Documentation/networking/ieee802154.txt +8 −8
  596. Documentation/networking/index.rst +1 −0
  597. Documentation/networking/ip-sysctl.txt +31 −16
  598. Documentation/networking/msg_zerocopy.rst +257 −0
  599. Documentation/networking/netdev-FAQ.txt +8 −0
  600. Documentation/networking/netvsc.txt +75 −0
  601. Documentation/networking/nf_conntrack-sysctl.txt +0 −11
  602. Documentation/networking/rmnet.txt +82 −0
  603. Documentation/networking/rxrpc.txt +56 −1
  604. Documentation/networking/strparser.txt +140 −69
  605. Documentation/networking/switchdev.txt +36 −36
  606. Documentation/nvmem/nvmem.txt +1 −1
  607. Documentation/power/states.txt +0 −125
  608. Documentation/pps/pps.txt +23 −21
  609. Documentation/printk-formats.txt +21 −8
  610. Documentation/process/applying-patches.rst +1 −42
  611. Documentation/process/changes.rst +3 −13
  612. Documentation/process/stable-kernel-rules.rst +2 −2
  613. Documentation/process/submitting-patches.rst +1 −1
  614. Documentation/rbtree.txt +33 −0
  615. Documentation/security/keys/core.rst +3 −13
  616. Documentation/security/keys/request-key.rst +1 −1
  617. Documentation/security/keys/trusted-encrypted.rst +1 −1
  618. Documentation/sphinx-static/theme_overrides.css +17 −0
  619. Documentation/sphinx/kerneldoc.py +3 −5
  620. Documentation/sphinx/requirements.txt +3 −0
  621. Documentation/static-keys.txt +20 −0
  622. Documentation/sysctl/kernel.txt +13 −1
  623. Documentation/sysctl/net.txt +36 −11
  624. Documentation/sysctl/vm.txt +3 −1
  625. Documentation/trace/stm.txt +12 −1
  626. Documentation/translations/ko_KR/memory-barriers.txt +30 −107
  627. Documentation/translations/zh_CN/HOWTO +0 −2
  628. Documentation/userspace-api/seccomp_filter.rst +50 −2
  629. Documentation/virtual/kvm/devices/arm-vgic.txt +5 −0
  630. Documentation/virtual/kvm/devices/vm.txt +13 −1
  631. Documentation/vm/hmm.txt +384 −0
  632. Documentation/vm/numa +2 −5
  633. Documentation/vm/swap_numa.txt +69 −0
  634. Documentation/watchdog/watchdog-parameters.txt +1 −1
  635. Documentation/x86/amd-memory-encryption.txt +68 −0
  636. Documentation/x86/early-microcode.txt +0 −70
  637. Documentation/x86/intel_rdt_ui.txt +285 −38
  638. Documentation/x86/microcode.txt +137 −0
  639. Documentation/x86/orc-unwinder.txt +179 −0
  640. Documentation/x86/protection-keys.txt +3 −3
  641. Documentation/x86/x86_64/5level-paging.txt +64 −0
  642. MAINTAINERS +327 −110
  643. Makefile +16 −29
  644. arch/Kconfig +26 −5
  645. arch/alpha/defconfig +0 −2
  646. arch/alpha/include/asm/Kbuild +1 −0
  647. arch/alpha/include/asm/asm-prototypes.h +18 −0
  648. arch/alpha/include/asm/core_marvel.h +1 −1
  649. arch/alpha/include/asm/fb.h +0 −13
  650. arch/alpha/include/asm/futex.h +5 −21
  651. arch/alpha/include/asm/io.h +1 −0
  652. arch/alpha/include/asm/spinlock.h +0 −5
  653. arch/alpha/include/asm/string.h +8 −7
  654. arch/alpha/include/asm/types.h +1 −1
  655. arch/alpha/include/asm/unistd.h +1 −1
  656. arch/alpha/include/asm/vga.h +1 −1
  657. arch/alpha/include/uapi/asm/mman.h +3 −11
  658. arch/alpha/include/uapi/asm/siginfo.h +14 −0
  659. arch/alpha/include/uapi/asm/socket.h +2 −0
  660. arch/alpha/include/uapi/asm/types.h +11 −1
  661. arch/alpha/include/uapi/asm/unistd.h +14 −5
  662. arch/alpha/kernel/core_marvel.c +5 −3
  663. arch/alpha/kernel/core_titan.c +2 −0
  664. arch/alpha/kernel/module.c +3 −0
  665. arch/alpha/kernel/pci-noop.c +1 −5
  666. arch/alpha/kernel/pci-sysfs.c +3 −4
  667. arch/alpha/kernel/pci.c +21 −12
  668. arch/alpha/kernel/setup.c +3 −2
  669. arch/alpha/kernel/smc37c669.c +2 −5
  670. arch/alpha/kernel/smp.c +1 −1
  671. arch/alpha/kernel/sys_marvel.c +6 −6
  672. arch/alpha/kernel/sys_nautilus.c +27 −4
  673. arch/alpha/kernel/systbls.S +9 −0
  674. arch/alpha/kernel/traps.c +5 −3
  675. arch/alpha/lib/Makefile +16 −6
  676. arch/alpha/lib/copy_user.S +1 −1
  677. arch/alpha/lib/ev6-copy_user.S +4 −3
  678. arch/alpha/lib/memset.S +5 −5
  679. arch/alpha/math-emu/math.c +1 −0
  680. arch/arc/Kconfig +10 −2
  681. arch/arc/Makefile +2 −1
  682. arch/arc/boot/dts/axc001.dtsi +9 −11
  683. arch/arc/boot/dts/axc003.dtsi +19 −13
  684. arch/arc/boot/dts/axc003_idu.dtsi +19 −13
  685. arch/arc/boot/dts/axs10x_mb.dtsi +1 −2
  686. arch/arc/boot/dts/hsdk.dts +189 −0
  687. arch/arc/boot/dts/nsim_hs.dts +1 −1
  688. arch/arc/boot/dts/vdk_axs10x_mb.dtsi +0 −1
  689. arch/arc/configs/haps_hs_defconfig +0 −1
  690. arch/arc/configs/haps_hs_smp_defconfig +0 −1
  691. arch/arc/configs/hsdk_defconfig +80 −0
  692. arch/arc/configs/nps_defconfig +0 −1
  693. arch/arc/configs/nsim_700_defconfig +0 −1
  694. arch/arc/configs/nsim_hs_defconfig +0 −1
  695. arch/arc/configs/nsim_hs_smp_defconfig +0 −1
  696. arch/arc/configs/nsimosci_defconfig +0 −1
  697. arch/arc/configs/nsimosci_hs_defconfig +0 −1
  698. arch/arc/configs/nsimosci_hs_smp_defconfig +0 −1
  699. arch/arc/configs/tb10x_defconfig +0 −1
  700. arch/arc/include/asm/atomic.h +2 −0
  701. arch/arc/include/asm/cache.h +6 −1
  702. arch/arc/include/asm/entry-compact.h +24 −0
  703. arch/arc/include/asm/futex.h +5 −35
  704. arch/arc/include/asm/irqflags-arcv2.h +0 −3
  705. arch/arc/include/asm/irqflags-compact.h +0 −2
  706. arch/arc/include/asm/mmu.h +2 −0
  707. arch/arc/include/asm/page.h +1 −1
  708. arch/arc/include/asm/processor.h +10 −3
  709. arch/arc/include/asm/ptrace.h +5 −0
  710. arch/arc/include/asm/spinlock.h +12 −5
  711. arch/arc/include/asm/switch_to.h +9 −0
  712. arch/arc/kernel/Makefile +0 −1
  713. arch/arc/kernel/devtree.c +3 −2
  714. arch/arc/kernel/entry-compact.S +11 −11
  715. arch/arc/kernel/entry.S +6 −0
  716. arch/arc/kernel/intc-arcv2.c +10 −0
  717. arch/arc/kernel/intc-compact.c +13 −1
  718. arch/arc/kernel/pcibios.c +0 −22
  719. arch/arc/kernel/process.c +31 −2
  720. arch/arc/kernel/setup.c +4 −4
  721. arch/arc/kernel/traps.c +2 −2
  722. arch/arc/kernel/troubleshoot.c +5 −2
  723. arch/arc/mm/cache.c +115 −18
  724. arch/arc/mm/dma.c +45 −0
  725. arch/arc/mm/fault.c +1 −1
  726. arch/arc/mm/init.c +3 −3
  727. arch/arc/mm/tlb.c +12 −5
  728. arch/arc/mm/tlbex.S +9 −0
  729. arch/arc/plat-axs10x/axs10x.c +21 −131
  730. arch/arc/plat-eznps/Kconfig +24 −2
  731. arch/arc/plat-eznps/Makefile +1 −1
  732. arch/arc/plat-eznps/ctop.c +32 −0
  733. arch/arc/plat-eznps/entry.S +1 −1
  734. arch/arc/plat-eznps/include/plat/ctop.h +2 −0
  735. arch/arc/plat-eznps/mtm.c +46 −4
  736. arch/arc/plat-hsdk/Kconfig +9 −0
  737. arch/arc/plat-hsdk/Makefile +9 −0
  738. arch/arc/plat-hsdk/platform.c +66 −0
  739. arch/arc/plat-sim/Kconfig +0 −13
  740. arch/arc/plat-sim/platform.c +4 −1
  741. arch/arm/Kconfig +3 −3
  742. arch/arm/Kconfig.debug +38 −15
  743. arch/arm/boot/compressed/efi-header.S +82 −78
  744. arch/arm/boot/compressed/vmlinux.lds.S +23 −7
  745. arch/arm/boot/dts/Makefile +18 −6
  746. arch/arm/boot/dts/am335x-bone-common.dtsi +0 −3
  747. arch/arm/boot/dts/am335x-chiliboard.dts +0 −3
  748. arch/arm/boot/dts/am335x-evm.dts +1 −0
  749. arch/arm/boot/dts/am335x-moxa-uc-8100-me-t.dts +525 −0
  750. arch/arm/boot/dts/am437x-gp-evm.dts +15 −0
  751. arch/arm/boot/dts/am43x-epos-evm.dts +1 −0
  752. arch/arm/boot/dts/am571x-idk.dts +28 −7
  753. arch/arm/boot/dts/am572x-idk.dts +25 −9
  754. arch/arm/boot/dts/am57xx-beagle-x15-common.dtsi +7 −29
  755. arch/arm/boot/dts/am57xx-beagle-x15-revb1.dts +16 −1
  756. arch/arm/boot/dts/am57xx-beagle-x15-revc.dts +39 −0
  757. arch/arm/boot/dts/am57xx-beagle-x15.dts +11 −0
  758. arch/arm/boot/dts/am57xx-idk-common.dtsi +8 −0
  759. arch/arm/boot/dts/armada-370.dtsi +3 −1
  760. arch/arm/boot/dts/armada-375.dtsi +3 −1
  761. arch/arm/boot/dts/armada-380.dtsi +4 −1
  762. arch/arm/boot/dts/armada-385-db-ap.dts +1 −1
  763. arch/arm/boot/dts/armada-385-turris-omnia.dts +1 −1
  764. arch/arm/boot/dts/armada-385.dtsi +5 −1
  765. arch/arm/boot/dts/armada-388-clearfog.dts +1 −1
  766. arch/arm/boot/dts/armada-388-clearfog.dtsi +1 −1
  767. arch/arm/boot/dts/armada-388-db.dts +1 −1
  768. arch/arm/boot/dts/armada-388-gp.dts +1 −1
  769. arch/arm/boot/dts/armada-388-rd.dts +1 −1
  770. arch/arm/boot/dts/armada-38x.dtsi +7 −0
  771. arch/arm/boot/dts/armada-390-db.dts +1 −1
  772. arch/arm/boot/dts/armada-395-gp.dts +1 −1
  773. arch/arm/boot/dts/armada-398-db.dts +1 −1
  774. arch/arm/boot/dts/armada-39x.dtsi +5 −1
  775. arch/arm/boot/dts/armada-xp-98dx3236.dtsi +2 −1
  776. arch/arm/boot/dts/armada-xp-db.dts +1 −1
  777. arch/arm/boot/dts/armada-xp-gp.dts +1 −1
  778. arch/arm/boot/dts/armada-xp-mv78230.dtsi +6 −1
  779. arch/arm/boot/dts/armada-xp-mv78260.dtsi +10 −1
  780. arch/arm/boot/dts/armada-xp-mv78460.dtsi +12 −2
  781. arch/arm/boot/dts/aspeed-g4.dtsi +2 −2
  782. arch/arm/boot/dts/at91-sama5d27_som1.dtsi +102 −0
  783. arch/arm/boot/dts/at91-sama5d27_som1_ek.dts +537 −0
  784. arch/arm/boot/dts/at91-sama5d2_xplained.dts +28 −11
  785. arch/arm/boot/dts/at91sam9g45.dtsi +21 −0
  786. arch/arm/boot/dts/at91sam9m10g45ek.dts +4 −0
  787. arch/arm/boot/dts/bcm-cygnus.dtsi +135 −14
  788. arch/arm/boot/dts/bcm-nsp.dtsi +45 −14
  789. arch/arm/boot/dts/bcm2835-rpi-a-plus.dts +6 −0
  790. arch/arm/boot/dts/bcm2835-rpi-a.dts +6 −0
  791. arch/arm/boot/dts/bcm2835-rpi-b-plus.dts +6 −0
  792. arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts +6 −0
  793. arch/arm/boot/dts/bcm2835-rpi-b.dts +6 −0
  794. arch/arm/boot/dts/bcm2835-rpi-zero-w.dts +139 −0
  795. arch/arm/boot/dts/bcm2835-rpi-zero.dts +6 −0
  796. arch/arm/boot/dts/bcm2835-rpi.dtsi +1 −1
  797. arch/arm/boot/dts/bcm2836-rpi-2-b.dts +6 −0
  798. arch/arm/boot/dts/bcm2836.dtsi +1 −0
  799. arch/arm/boot/dts/bcm2837-rpi-3-b.dts +51 −1
  800. arch/arm/boot/dts/bcm2837.dtsi +1 −0
  801. arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts +4 −0
  802. arch/arm/boot/dts/bcm4708-netgear-r6250.dts +3 −0
  803. arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts +6 −0
  804. arch/arm/boot/dts/bcm47081-tplink-archer-c5-v2.dts +4 −0
  805. arch/arm/boot/dts/bcm4709-tplink-archer-c9-v1.dts +5 −0
  806. arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts +3 −0
  807. arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts +3 −0
  808. arch/arm/boot/dts/bcm47189-tenda-ac9.dts +2 −0
  809. arch/arm/boot/dts/bcm5301x.dtsi +34 −0
  810. arch/arm/boot/dts/bcm53573.dtsi +4 −0
  811. arch/arm/boot/dts/bcm911360_entphn.dts +5 −2
  812. arch/arm/boot/dts/bcm947189acdbmr.dts +97 −0
  813. arch/arm/boot/dts/bcm958522er.dts +8 −0
  814. arch/arm/boot/dts/bcm958525er.dts +8 −0
  815. arch/arm/boot/dts/bcm958525xmc.dts +8 −0
  816. arch/arm/boot/dts/bcm958622hr.dts +8 −0
  817. arch/arm/boot/dts/bcm958623hr.dts +8 −0
  818. arch/arm/boot/dts/bcm958625hr.dts +8 −0
  819. arch/arm/boot/dts/bcm958625k.dts +8 −0
  820. arch/arm/boot/dts/da850-lego-ev3.dts +24 −0
  821. arch/arm/boot/dts/dove-d3plug.dts +2 −2
  822. arch/arm/boot/dts/dove.dtsi +5 −3
  823. arch/arm/boot/dts/dra7-evm-common.dtsi +258 −0
  824. arch/arm/boot/dts/dra7-evm.dts +29 −248
  825. arch/arm/boot/dts/dra7.dtsi +35 −1
  826. arch/arm/boot/dts/dra71-evm.dts +31 −1
  827. arch/arm/boot/dts/dra72-evm-common.dtsi +5 −2
  828. arch/arm/boot/dts/dra72-evm-revc.dts +34 −0
  829. arch/arm/boot/dts/dra72-evm-tps65917.dtsi +1 −1
  830. arch/arm/boot/dts/dra72-evm.dts +32 −0
  831. arch/arm/boot/dts/dra72x-mmc-iodelay.dtsi +350 −0
  832. arch/arm/boot/dts/dra74x-mmc-iodelay.dtsi +647 −0
  833. arch/arm/boot/dts/dra76-evm.dts +423 −0
  834. arch/arm/boot/dts/dra76x.dtsi +19 −0
  835. arch/arm/boot/dts/exynos3250-artik5-eval.dts +0 −1
  836. arch/arm/boot/dts/exynos3250-artik5.dtsi +0 −1
  837. arch/arm/boot/dts/exynos3250-monk.dts +0 −1
  838. arch/arm/boot/dts/exynos3250-rinato.dts +0 −22
  839. arch/arm/boot/dts/exynos4210-trats.dts +0 −21
  840. arch/arm/boot/dts/exynos4412-itop-scp-core.dtsi +0 −1
  841. arch/arm/boot/dts/exynos4412-odroid-common.dtsi +0 −1
  842. arch/arm/boot/dts/exynos4412-origen.dts +0 −1
  843. arch/arm/boot/dts/exynos4412-trats2.dts +0 −22
  844. arch/arm/boot/dts/exynos5250-arndale.dts +0 −2
  845. arch/arm/boot/dts/exynos5250-smdk5250.dts +0 −2
  846. arch/arm/boot/dts/exynos5250-snow-common.dtsi +0 −3
  847. arch/arm/boot/dts/exynos5250-spring.dts +0 −2
  848. arch/arm/boot/dts/exynos5260-xyref5260.dts +0 −2
  849. arch/arm/boot/dts/exynos5410-smdk5410.dts +0 −2
  850. arch/arm/boot/dts/exynos5420-peach-pit.dts +0 −3
  851. arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi +1 −0
  852. arch/arm/boot/dts/exynos5440.dtsi +2 −0
  853. arch/arm/boot/dts/exynos5800-peach-pi.dts +0 −3
  854. arch/arm/boot/dts/gemini-dlink-dir-685.dts +246 −0
  855. arch/arm/boot/dts/gemini-nas4220b.dts +24 −0
  856. arch/arm/boot/dts/gemini-rut1xx.dts +39 −0
  857. arch/arm/boot/dts/gemini-sq201.dts +35 −1
  858. arch/arm/boot/dts/gemini-wbd111.dts +26 −0
  859. arch/arm/boot/dts/gemini-wbd222.dts +26 −0
  860. arch/arm/boot/dts/gemini.dtsi +146 −27
  861. arch/arm/boot/dts/imx25.dtsi +8 −0
  862. arch/arm/boot/dts/imx53-cx9020.dts +297 −0
  863. arch/arm/boot/dts/imx53-pinfunc.h +4 −0
  864. arch/arm/boot/dts/imx53.dtsi +9 −0
  865. arch/arm/boot/dts/imx6dl-gw52xx.dts +58 −0
  866. arch/arm/boot/dts/imx6dl-gw53xx.dts +58 −0
  867. arch/arm/boot/dts/imx6dl-gw54xx.dts +58 −0
  868. arch/arm/boot/dts/imx6dl-riotboard.dts +45 −0
  869. arch/arm/boot/dts/imx6q-apalis-eval.dts +278 −0
  870. arch/arm/boot/dts/imx6q-apalis-ixora-v1.1.dts +291 −0
  871. arch/arm/boot/dts/imx6q-apalis-ixora.dts +14 −18
  872. arch/arm/boot/dts/imx6q-b850v3.dts +1 −1
  873. arch/arm/boot/dts/imx6q-bx50v3.dtsi +42 −0
  874. arch/arm/boot/dts/imx6q-evi.dts +16 −0
  875. arch/arm/boot/dts/imx6q-gw52xx.dts +58 −0
  876. arch/arm/boot/dts/imx6q-gw53xx.dts +58 −0
  877. arch/arm/boot/dts/imx6q-gw54xx.dts +58 −0
  878. arch/arm/boot/dts/imx6qdl-apalis.dtsi +20 −24
  879. arch/arm/boot/dts/imx6qdl-gw51xx.dtsi +54 −0
  880. arch/arm/boot/dts/imx6qdl-gw52xx.dtsi +0 −1
  881. arch/arm/boot/dts/imx6qdl-gw53xx.dtsi +0 −1
  882. arch/arm/boot/dts/imx6qdl-gw54xx.dtsi +0 −1
  883. arch/arm/boot/dts/imx6qdl-gw553x.dtsi +54 −0
  884. arch/arm/boot/dts/imx6qdl-icore-rqs.dtsi +0 −1
  885. arch/arm/boot/dts/imx6qdl-nitrogen6_som2.dtsi +2 −2
  886. arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi +19 −0
  887. arch/arm/boot/dts/imx6qdl-sabrelite.dtsi +19 −0
  888. arch/arm/boot/dts/imx6qdl-zii-rdu2.dtsi +109 −3
  889. arch/arm/boot/dts/imx6qdl.dtsi +1 −0
  890. arch/arm/boot/dts/imx6sl.dtsi +1 −0
  891. arch/arm/boot/dts/imx6sx.dtsi +1 −0
  892. arch/arm/boot/dts/imx6ul-14x14-evk.dts +15 −25
  893. arch/arm/boot/dts/imx6ul-geam.dts +74 −0
  894. arch/arm/boot/dts/imx6ul-isiot-common.dtsi +0 −141
  895. arch/arm/boot/dts/imx6ul-isiot-emmc.dts +0 −1
  896. arch/arm/boot/dts/imx6ul-isiot-nand.dts +0 −1
  897. arch/arm/boot/dts/imx6ul-isiot.dtsi +183 −0
  898. arch/arm/boot/dts/imx6ul-liteboard.dts +4 −0
  899. arch/arm/boot/dts/imx6ul.dtsi +1 −0
  900. arch/arm/boot/dts/imx7-colibri.dtsi +9 −0
  901. arch/arm/boot/dts/imx7d-sdb.dts +68 −41
  902. arch/arm/boot/dts/imx7s.dtsi +32 −0
  903. arch/arm/boot/dts/imx7ulp-pinfunc.h +468 −0
  904. arch/arm/boot/dts/keystone-k2e-evm.dts +18 −0
  905. arch/arm/boot/dts/keystone-k2e.dtsi +20 −0
  906. arch/arm/boot/dts/keystone-k2g-evm.dts +71 −0
  907. arch/arm/boot/dts/keystone-k2g-ice.dts +18 −0
  908. arch/arm/boot/dts/keystone-k2g.dtsi +204 −0
  909. arch/arm/boot/dts/keystone-k2hk-evm.dts +53 −0
  910. arch/arm/boot/dts/keystone-k2hk.dtsi +139 −0
  911. arch/arm/boot/dts/keystone-k2l-evm.dts +33 −0
  912. arch/arm/boot/dts/keystone-k2l.dtsi +71 −0
  913. arch/arm/boot/dts/kirkwood-6192.dtsi +2 −1
  914. arch/arm/boot/dts/kirkwood-6281.dtsi +2 −1
  915. arch/arm/boot/dts/kirkwood-6282.dtsi +3 −1
  916. arch/arm/boot/dts/kirkwood-98dx4122.dtsi +2 −1
  917. arch/arm/boot/dts/logicpd-torpedo-37xx-devkit.dts +1 −1
  918. arch/arm/boot/dts/ls1021a.dtsi +4 −4
  919. arch/arm/boot/dts/meson.dtsi +26 −4
  920. arch/arm/boot/dts/meson6.dtsi +28 −0
  921. arch/arm/boot/dts/meson8.dtsi +16 −0
  922. arch/arm/boot/dts/meson8b.dtsi +13 −20
  923. arch/arm/boot/dts/motorola-cpcap-mapphone.dtsi +1 −0
  924. arch/arm/boot/dts/mt2701.dtsi +106 −0
  925. arch/arm/boot/dts/mt6323.dtsi +241 −0
  926. arch/arm/boot/dts/mt7623.dtsi +167 −44
  927. arch/arm/boot/dts/mt7623n-bananapi-bpi-r2.dts +487 −0
  928. arch/arm/boot/dts/mt7623n-rfb-nand.dts +111 −0
  929. arch/arm/boot/dts/mt7623n-rfb.dtsi +92 −0
  930. arch/arm/boot/dts/omap2420-n8x0-common.dtsi +2 −2
  931. arch/arm/boot/dts/omap3-beagle-xm.dts +1 −1
  932. arch/arm/boot/dts/omap3-beagle.dts +1 −1
  933. arch/arm/boot/dts/omap3-cm-t3517.dts +1 −1
  934. arch/arm/boot/dts/omap3-cm-t3730.dts +1 −1
  935. arch/arm/boot/dts/omap3-devkit8000-common.dtsi +1 −1
  936. arch/arm/boot/dts/omap3-evm-common.dtsi +1 −1
  937. arch/arm/boot/dts/omap3-n900.dts +88 −1
  938. arch/arm/boot/dts/omap3-overo-base.dtsi +1 −1
  939. arch/arm/boot/dts/omap3-tao3530.dtsi +1 −1
  940. arch/arm/boot/dts/omap3-zoom3.dts +1 −1
  941. arch/arm/boot/dts/omap3.dtsi +0 −4
  942. arch/arm/boot/dts/omap3430-sdp.dts +1 −1
  943. arch/arm/boot/dts/omap4-droid4-xt894.dts +41 −1
  944. arch/arm/boot/dts/omap4-duovero-parlor.dts +1 −1
  945. arch/arm/boot/dts/omap4-panda-common.dtsi +1 −1
  946. arch/arm/boot/dts/omap4-sdp-es23plus.dts +1 −1
  947. arch/arm/boot/dts/omap4-sdp.dts +1 −1
  948. arch/arm/boot/dts/omap4-var-om44customboard.dtsi +1 −1
  949. arch/arm/boot/dts/omap5-board-common.dtsi +1 −1
  950. arch/arm/boot/dts/omap5-cm-t54.dts +1 −1
  951. arch/arm/boot/dts/qcom-ipq4019-ap.dk01.1.dtsi +11 −18
  952. arch/arm/boot/dts/qcom-ipq4019.dtsi +108 −1
  953. arch/arm/boot/dts/qcom-msm8974.dtsi +1 −1
  954. arch/arm/boot/dts/r7s72100-genmai.dts +70 −1
  955. arch/arm/boot/dts/r7s72100-rskrza1.dts +61 −0
  956. arch/arm/boot/dts/r7s72100.dtsi +78 −0
  957. arch/arm/boot/dts/r8a7743-iwg20d-q7.dts +31 −0
  958. arch/arm/boot/dts/r8a7743-iwg20m.dtsi +26 −0
  959. arch/arm/boot/dts/r8a7743-sk-rzg1m.dts +24 −1
  960. arch/arm/boot/dts/r8a7743.dtsi +300 −1
  961. arch/arm/boot/dts/r8a7745-sk-rzg1e.dts +24 −1
  962. arch/arm/boot/dts/r8a7745.dtsi +29 −1
  963. arch/arm/boot/dts/r8a7790.dtsi +24 −6
  964. arch/arm/boot/dts/r8a7791-koelsch.dts +9 −1
  965. arch/arm/boot/dts/r8a7791.dtsi +23 −5
  966. arch/arm/boot/dts/r8a7792.dtsi +18 −0
  967. arch/arm/boot/dts/r8a7793.dtsi +18 −0
  968. arch/arm/boot/dts/r8a7794.dtsi +20 −2
  969. arch/arm/boot/dts/rk3036-kylin.dts +0 −2
  970. arch/arm/boot/dts/rk3036.dtsi +1 −2
  971. arch/arm/boot/dts/rk3066a-bqcurie2.dts +0 −2
  972. arch/arm/boot/dts/rk3066a-mk808.dts +0 −2
  973. arch/arm/boot/dts/rk3066a-rayeager.dts +0 −3
  974. arch/arm/boot/dts/rk3188-px3-evb.dts +0 −2
  975. arch/arm/boot/dts/rk3188-radxarock.dts +0 −1
  976. arch/arm/boot/dts/rk3228-evb.dts +34 −0
  977. arch/arm/boot/dts/rk3229-evb.dts +128 −1
  978. arch/arm/boot/dts/rk3229.dtsi +89 −0
  979. arch/arm/boot/dts/rk322x.dtsi +197 −2
  980. arch/arm/boot/dts/rk3288-evb.dtsi +48 −3
  981. arch/arm/boot/dts/rk3288-fennec.dts +6 −2
  982. arch/arm/boot/dts/rk3288-firefly-reload-core.dtsi +1 −2
  983. arch/arm/boot/dts/rk3288-firefly-reload.dts +0 −2
  984. arch/arm/boot/dts/rk3288-firefly.dtsi +1 −4
  985. arch/arm/boot/dts/rk3288-miqi.dts +1 −3
  986. arch/arm/boot/dts/rk3288-phycore-rdk.dts +0 −1
  987. arch/arm/boot/dts/rk3288-phycore-som.dtsi +1 −2
  988. arch/arm/boot/dts/rk3288-popmetal.dts +1 −3
  989. arch/arm/boot/dts/rk3288-r89.dts +1 −2
  990. arch/arm/boot/dts/rk3288-rock2-som.dtsi +1 −2
  991. arch/arm/boot/dts/rk3288-rock2-square.dts +0 −2
  992. arch/arm/boot/dts/rk3288-tinker.dts +6 −2
  993. arch/arm/boot/dts/rk3288-veyron-sdmmc.dtsi +0 −1
  994. arch/arm/boot/dts/rk3288-veyron.dtsi +1 −3
  995. arch/arm/boot/dts/rk3288.dtsi +126 −89
  996. arch/arm/boot/dts/rv1108-evb.dts +190 −0
  997. arch/arm/boot/dts/rv1108.dtsi +359 −10
  998. arch/arm/boot/dts/sama5d2.dtsi +82 −7
  999. arch/arm/boot/dts/spear1310.dtsi +3 −0
  1000. arch/arm/boot/dts/spear1340.dtsi +1 −0
  1001. arch/arm/boot/dts/ste-dbx5x0.dtsi +8 −7
  1002. arch/arm/boot/dts/ste-hrefprev60.dtsi +1 −1
  1003. arch/arm/boot/dts/stm32429i-eval.dts +1 −1
  1004. arch/arm/boot/dts/stm32f429-disco.dts +1 −1
  1005. arch/arm/boot/dts/stm32f429.dtsi +25 −0
  1006. arch/arm/boot/dts/stm32f469-disco.dts +1 −1
  1007. arch/arm/boot/dts/stm32f746.dtsi +51 −0
  1008. arch/arm/boot/dts/stm32f769-disco.dts +6 −0
  1009. arch/arm/boot/dts/stm32h743.dtsi +119 −8
  1010. arch/arm/boot/dts/stm32h743i-eval.dts +18 −0
  1011. arch/arm/boot/dts/sun6i-a31.dtsi +3 −3
  1012. arch/arm/boot/dts/sun7i-a20-cubietruck.dts +4 −0
  1013. arch/arm/boot/dts/sun8i-a23-a33.dtsi +3 −3
  1014. arch/arm/boot/dts/sun8i-a83t-allwinner-h8homlet-v2.dts +85 −0
  1015. arch/arm/boot/dts/sun8i-a83t-bananapi-m3.dts +148 −0
  1016. arch/arm/boot/dts/sun8i-a83t-cubietruck-plus.dts +101 −0
  1017. arch/arm/boot/dts/sun8i-a83t.dtsi +176 −0
  1018. arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts +0 −9
  1019. arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts +0 −19
  1020. arch/arm/boot/dts/sun8i-h3-beelink-x2.dts +21 −1
  1021. arch/arm/boot/dts/sun8i-h3-nanopi-neo.dts +0 −7
  1022. arch/arm/boot/dts/sun8i-h3-orangepi-2.dts +0 −8
  1023. arch/arm/boot/dts/sun8i-h3-orangepi-one.dts +0 −8
  1024. arch/arm/boot/dts/sun8i-h3-orangepi-pc-plus.dts +0 −5
  1025. arch/arm/boot/dts/sun8i-h3-orangepi-pc.dts +0 −8
  1026. arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts +0 −22
  1027. arch/arm/boot/dts/sun8i-h3-orangepi-plus2e.dts +0 −16
  1028. arch/arm/boot/dts/sun8i-r16-bananapi-m2m.dts +321 −0
  1029. arch/arm/boot/dts/sunxi-h3-h5.dtsi +0 −26
  1030. arch/arm/boot/dts/tango4-smp8758.dtsi +0 −1
  1031. arch/arm/boot/dts/tegra114-dalmore.dts +10 −0
  1032. arch/arm/boot/dts/tegra124-jetson-tk1.dts +11 −1
  1033. arch/arm/boot/dts/tegra124.dtsi +1 −0
  1034. arch/arm/boot/dts/tegra20-paz00.dts +2 −0
  1035. arch/arm/boot/dts/tegra30-beaver.dts +10 −0
  1036. arch/arm/boot/dts/tps65217.dtsi +3 −0
  1037. arch/arm/boot/dts/uniphier-ld4-ref.dts +7 −3
  1038. arch/arm/boot/dts/uniphier-ld4.dtsi +19 −1
  1039. arch/arm/boot/dts/uniphier-ld6b-ref.dts +7 −3
  1040. arch/arm/boot/dts/uniphier-ld6b.dtsi +1 −1
  1041. arch/arm/boot/dts/uniphier-pinctrl.dtsi +21 −37
  1042. arch/arm/boot/dts/uniphier-pro4-ace.dts +1 −1
  1043. arch/arm/boot/dts/uniphier-pro4-ref.dts +7 −3
  1044. arch/arm/boot/dts/uniphier-pro4-sanji.dts +1 −1
  1045. arch/arm/boot/dts/uniphier-pro4.dtsi +19 −1
  1046. arch/arm/boot/dts/uniphier-pro5.dtsi +21 −39
  1047. arch/arm/boot/dts/uniphier-pxs2-gentil.dts +1 −1
  1048. arch/arm/boot/dts/uniphier-pxs2-vodka.dts +1 −1
  1049. arch/arm/boot/dts/uniphier-pxs2.dtsi +20 −2
  1050. arch/arm/boot/dts/uniphier-sld3-ref.dts +0 −75
  1051. arch/arm/boot/dts/uniphier-sld3.dtsi +0 −260
  1052. arch/arm/boot/dts/uniphier-sld8-ref.dts +7 −3
  1053. arch/arm/boot/dts/uniphier-sld8.dtsi +19 −1
  1054. arch/arm/boot/dts/versatile-pb.dts +1 −1
  1055. arch/arm/boot/dts/zx296702-ad1.dts +0 −2
  1056. arch/arm/boot/dts/zynq-7000.dtsi +8 −0
  1057. arch/arm/boot/dts/zynq-parallella.dts +2 −1
  1058. arch/arm/boot/dts/zynq-zc702.dts +18 −2
  1059. arch/arm/boot/dts/zynq-zc706.dts +18 −2
  1060. arch/arm/boot/dts/zynq-zed.dts +3 −2
  1061. arch/arm/boot/dts/zynq-zybo.dts +3 −2
  1062. arch/arm/configs/aspeed_g4_defconfig +4 −1
  1063. arch/arm/configs/aspeed_g5_defconfig +3 −1
  1064. arch/arm/configs/bcm2835_defconfig +7 −0
  1065. arch/arm/configs/davinci_all_defconfig +2 −0
  1066. arch/arm/configs/exynos_defconfig +73 −6
  1067. arch/arm/configs/ezx_defconfig +0 −1
  1068. arch/arm/configs/imx_v6_v7_defconfig +14 −1
  1069. arch/arm/configs/ixp4xx_defconfig +0 −4
  1070. arch/arm/configs/keystone_defconfig +13 −0
  1071. arch/arm/configs/multi_v7_defconfig +8 −10
  1072. arch/arm/configs/omap2plus_defconfig +4 −0
  1073. arch/arm/configs/qcom_defconfig +0 −1
  1074. arch/arm/configs/shmobile_defconfig +11 −7
  1075. arch/arm/configs/sunxi_defconfig +5 −10
  1076. arch/arm/configs/tegra_defconfig +7 −5
  1077. arch/arm/configs/vexpress_defconfig +0 −1
  1078. arch/arm/crypto/Kconfig +3 −2
  1079. arch/arm/crypto/aes-ce-glue.c +1 −3
  1080. arch/arm/crypto/aes-cipher-core.S +65 −23
  1081. arch/arm/crypto/aes-neonbs-glue.c +2 −3
  1082. arch/arm/crypto/ghash-ce-core.S +191 −43
  1083. arch/arm/crypto/ghash-ce-glue.c +21 −3
  1084. arch/arm/include/asm/arch_gicv3.h +34 −0
  1085. arch/arm/include/asm/futex.h +4 −22
  1086. arch/arm/include/asm/kvm_arm.h +0 −1
  1087. arch/arm/include/asm/kvm_emulate.h +19 −5
  1088. arch/arm/include/asm/kvm_host.h +0 −6
  1089. arch/arm/include/asm/smp_scu.h +1 −0
  1090. arch/arm/include/asm/spinlock.h +0 −16
  1091. arch/arm/include/asm/string.h +14 −0
  1092. arch/arm/include/asm/suspend.h +2 −0
  1093. arch/arm/include/asm/tlb.h +9 −2
  1094. arch/arm/include/asm/traps.h +0 −7
  1095. arch/arm/include/debug/omap2plus.S +1 −108
  1096. arch/arm/kernel/armksyms.c +2 −0
  1097. arch/arm/kernel/cpuidle.c +2 −2
  1098. arch/arm/kernel/devtree.c +2 −3
  1099. arch/arm/kernel/entry-armv.S +2 −0
  1100. arch/arm/kernel/entry-common.S +42 −13
  1101. arch/arm/kernel/head.S +2 −0
  1102. arch/arm/kernel/hyp-stub.S +1 −0
  1103. arch/arm/kernel/iwmmxt.S +1 −0
  1104. arch/arm/kernel/signal.c +7 −0
  1105. arch/arm/kernel/sleep.S +1 −0
  1106. arch/arm/kernel/stacktrace.c +1 −0
  1107. arch/arm/kernel/topology.c +1 −2
  1108. arch/arm/kvm/handle_exit.c +1 −1
  1109. arch/arm/lib/memset.S +18 −6
  1110. arch/arm/mach-at91/Kconfig +5 −1
  1111. arch/arm/mach-at91/pm.c +12 −0
  1112. arch/arm/mach-davinci/board-da850-evm.c +1 −1
  1113. arch/arm/mach-davinci/board-dm355-evm.c +1 −1
  1114. arch/arm/mach-davinci/board-dm355-leopard.c +1 −1
  1115. arch/arm/mach-davinci/board-dm365-evm.c +1 −1
  1116. arch/arm/mach-davinci/board-dm644x-evm.c +1 −1
  1117. arch/arm/mach-davinci/board-dm646x-evm.c +1 −1
  1118. arch/arm/mach-davinci/board-sffsdr.c +1 −1
  1119. arch/arm/mach-dove/dove-db-setup.c +1 −1
  1120. arch/arm/mach-ep93xx/clock.c +8 −0
  1121. arch/arm/mach-ep93xx/core.c +24 −0
  1122. arch/arm/mach-ep93xx/edb93xx.c +1 −0
  1123. arch/arm/mach-ep93xx/include/mach/platform.h +1 −0
  1124. arch/arm/mach-ep93xx/snappercl15.c +1 −1
  1125. arch/arm/mach-ep93xx/soc.h +1 −0
  1126. arch/arm/mach-ep93xx/ts72xx.c +1 −1
  1127. arch/arm/mach-exynos/sleep.S +1 −0
  1128. arch/arm/mach-exynos/suspend.c +3 −4
  1129. arch/arm/mach-gemini/Kconfig +5 −0
  1130. arch/arm/mach-hisi/Kconfig +1 −0
  1131. arch/arm/mach-hisi/platsmp.c +1 −1
  1132. arch/arm/mach-imx/gpc.c +2 −2
  1133. arch/arm/mach-imx/mach-imx27_visstrim_m10.c +17 −27
  1134. arch/arm/mach-imx/mach-mx31moboard.c +6 −6
  1135. arch/arm/mach-imx/mach-qong.c +1 −1
  1136. arch/arm/mach-ixp4xx/ixdp425-setup.c +1 −1
  1137. arch/arm/mach-mediatek/mediatek.c +2 −0
  1138. arch/arm/mach-mediatek/platsmp.c +1 −0
  1139. arch/arm/mach-mmp/aspenite.c +1 −1
  1140. arch/arm/mach-mvebu/Kconfig +2 −0
  1141. arch/arm/mach-mvebu/kirkwood.c +1 −2
  1142. arch/arm/mach-omap1/board-fsample.c +1 −1
  1143. arch/arm/mach-omap1/board-h2-mmc.c +1 −1
  1144. arch/arm/mach-omap1/board-h2.c +2 −2
  1145. arch/arm/mach-omap1/board-h3-mmc.c +1 −1
  1146. arch/arm/mach-omap1/board-h3.c +2 −2
  1147. arch/arm/mach-omap1/board-nand.c +1 −1
  1148. arch/arm/mach-omap1/board-nokia770.c +2 −2
  1149. arch/arm/mach-omap1/board-osk.c +1 −1
  1150. arch/arm/mach-omap1/board-perseus2.c +1 −1
  1151. arch/arm/mach-omap2/Kconfig +1 −0
  1152. arch/arm/mach-omap2/Makefile +1 −1
  1153. arch/arm/mach-omap2/board-generic.c +2 −0
  1154. arch/arm/mach-omap2/common.h +1 −1
  1155. arch/arm/mach-omap2/display.c +61 −58
  1156. arch/arm/mach-omap2/display.h +0 −1
  1157. arch/arm/mach-omap2/dma.c +5 −143
  1158. arch/arm/mach-omap2/drm.c +0 −53
  1159. arch/arm/mach-omap2/id.c +9 −0
  1160. arch/arm/mach-omap2/io.c +0 −1
  1161. arch/arm/mach-omap2/omap-smp.c +2 −2
  1162. arch/arm/mach-omap2/omap-wakeupgen.c +2 −2
  1163. arch/arm/mach-omap2/omap_device.c +0 −10
  1164. arch/arm/mach-omap2/omap_hwmod.c +2 −2
  1165. arch/arm/mach-omap2/omap_hwmod_7xx_data.c +9 −2
  1166. arch/arm/mach-omap2/omap_twl.c +1 −1
  1167. arch/arm/mach-omap2/pdata-quirks.c +31 −0
  1168. arch/arm/mach-omap2/powerdomains7xx_data.c +32 −1
  1169. arch/arm/mach-omap2/prm3xxx.c +1 −1
  1170. arch/arm/mach-omap2/prm44xx.c +2 −2
  1171. arch/arm/mach-omap2/sleep34xx.S +2 −0
  1172. arch/arm/mach-omap2/sleep44xx.S +1 −0
  1173. arch/arm/mach-omap2/soc.h +5 −0
  1174. arch/arm/mach-orion5x/db88f5281-setup.c +1 −1
  1175. arch/arm/mach-orion5x/kurobox_pro-setup.c +1 −1
  1176. arch/arm/mach-orion5x/ts209-setup.c +1 −1
  1177. arch/arm/mach-orion5x/ts78xx-setup.c +1 −1
  1178. arch/arm/mach-pxa/balloon3.c +1 −1
  1179. arch/arm/mach-pxa/em-x270.c +1 −1
  1180. arch/arm/mach-pxa/eseries.c +1 −1
  1181. arch/arm/mach-pxa/mioa701_bootresume.S +2 −0
  1182. arch/arm/mach-pxa/palmtx.c +1 −1
  1183. arch/arm/mach-pxa/raumfeld.c +1 −1
  1184. arch/arm/mach-pxa/tosa.c +1 −1
  1185. arch/arm/mach-rockchip/Kconfig +2 −0
  1186. arch/arm/mach-rockchip/platsmp.c +3 −3
  1187. arch/arm/mach-rockchip/sleep.S +1 −1
  1188. arch/arm/mach-s3c24xx/Kconfig +1 −1
  1189. arch/arm/mach-s3c24xx/common-smdk.c +1 −1
  1190. arch/arm/mach-s3c24xx/common.c +1 −1
  1191. arch/arm/mach-s3c24xx/include/mach/regs-clock.h +2 −2
  1192. arch/arm/mach-s3c24xx/mach-anubis.c +1 −1
  1193. arch/arm/mach-s3c24xx/mach-at2440evb.c +1 −1
  1194. arch/arm/mach-s3c24xx/mach-bast.c +1 −1
  1195. arch/arm/mach-s3c24xx/mach-gta02.c +1 −1
  1196. arch/arm/mach-s3c24xx/mach-jive.c +1 −1
  1197. arch/arm/mach-s3c24xx/mach-mini2440.c +2 −2
  1198. arch/arm/mach-s3c24xx/mach-osiris-dvs.c +1 −1
  1199. arch/arm/mach-s3c24xx/mach-osiris.c +2 −2
  1200. arch/arm/mach-s3c24xx/mach-qt2410.c +1 −1
  1201. arch/arm/mach-s3c24xx/mach-rx3715.c +1 −1
  1202. arch/arm/mach-s3c24xx/mach-smdk2443.c +0 −8
  1203. arch/arm/mach-s3c24xx/mach-vstms.c +1 −1
  1204. arch/arm/mach-s3c24xx/sleep.S +6 −5
  1205. arch/arm/mach-shmobile/Kconfig +0 −4
  1206. arch/arm/mach-shmobile/pm-rcar-gen2.c +30 −3
  1207. arch/arm/mach-shmobile/pm-rmobile.c +3 −4
  1208. arch/arm/mach-shmobile/setup-rcar-gen2.c +17 −4
  1209. arch/arm/mach-tegra/Kconfig +2 −0
  1210. arch/arm/mach-tegra/cpuidle-tegra114.c +2 −2
  1211. arch/arm/mach-tegra/tegra.c +1 −28
  1212. arch/arm/mm/cache-v4wb.S +1 −0
  1213. arch/arm/mm/fault.c +4 −1
  1214. arch/arm/mm/proc-v7-3level.S +1 −2
  1215. arch/arm/mm/proc-xscale.S +1 −0
  1216. arch/arm/net/bpf_jit_32.c +1663 −785
  1217. arch/arm/net/bpf_jit_32.h +83 −25
  1218. arch/arm/plat-samsung/include/plat/map-s3c.h +1 −1
  1219. arch/arm64/Kconfig +13 −0
  1220. arch/arm64/Kconfig.platforms +7 −0
  1221. arch/arm64/Makefile +5 −0
  1222. arch/arm64/boot/dts/allwinner/Makefile +2 −0
  1223. arch/arm64/boot/dts/allwinner/axp803.dtsi +150 −0
  1224. arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts +132 −20
  1225. arch/arm64/boot/dts/allwinner/sun50i-a64-nanopi-a64.dts +207 −0
  1226. arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts +199 −0
  1227. arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-plus.dts +0 −15
  1228. arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts +112 −16
  1229. arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts +22 −15
  1230. arch/arm64/boot/dts/allwinner/sun50i-a64-sopine.dtsi +86 −0
  1231. arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi +9 −20
  1232. arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo2.dts +0 −17
  1233. arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts +0 −17
  1234. arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts +0 −17
  1235. arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi +3 −0
  1236. arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi +7 −0
  1237. arch/arm64/boot/dts/amlogic/meson-gx.dtsi +30 −16
  1238. arch/arm64/boot/dts/amlogic/meson-gxbb-nanopi-k2.dts +58 −0
  1239. arch/arm64/boot/dts/amlogic/meson-gxbb-nexbox-a95x.dts +7 −0
  1240. arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi +10 −0
  1241. arch/arm64/boot/dts/amlogic/meson-gxbb-wetek-play2.dts +6 −0
  1242. arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi +34 −0
  1243. arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p230.dts +7 −1
  1244. arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts +63 −0
  1245. arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts +64 −0
  1246. arch/arm64/boot/dts/amlogic/meson-gxl-s905x-nexbox-a95x.dts +7 −0
  1247. arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dts +7 −0
  1248. arch/arm64/boot/dts/amlogic/meson-gxl.dtsi +35 −0
  1249. arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts +7 −0
  1250. arch/arm64/boot/dts/amlogic/meson-gxm.dtsi +4 −0
  1251. arch/arm64/boot/dts/apm/apm-shadowcat.dtsi +2 −0
  1252. arch/arm64/boot/dts/apm/apm-storm.dtsi +5 −0
  1253. arch/arm64/boot/dts/arm/foundation-v8.dtsi +1 −1
  1254. arch/arm64/boot/dts/arm/juno-base.dtsi +7 −7
  1255. arch/arm64/boot/dts/arm/rtsm_ve-motherboard.dtsi +1 −1
  1256. arch/arm64/boot/dts/broadcom/Makefile +2 −2
  1257. arch/arm64/boot/dts/broadcom/bcm2835-rpi.dtsi +0 −1
  1258. arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dts +1 −41
  1259. arch/arm64/boot/dts/broadcom/bcm283x-rpi-smsc9514.dtsi +0 −1
  1260. arch/arm64/boot/dts/broadcom/bcm283x-rpi-usb-host.dtsi +0 −1
  1261. arch/arm64/boot/dts/broadcom/bcm283x.dtsi +0 −1
  1262. arch/arm64/boot/dts/broadcom/northstar2/Makefile +6 −0
  1263. arch/arm64/boot/dts/broadcom/northstar2/ns2-clock.dtsi +0 −0
  1264. arch/arm64/boot/dts/broadcom/northstar2/ns2-svk.dts +0 −0
  1265. arch/arm64/boot/dts/broadcom/northstar2/ns2-xmc.dts +0 −0
  1266. arch/arm64/boot/dts/broadcom/northstar2/ns2.dtsi +0 −0
  1267. arch/arm64/boot/dts/broadcom/stingray/bcm958742-base.dtsi +78 −0
  1268. arch/arm64/boot/dts/broadcom/stingray/bcm958742k.dts +4 −0
  1269. arch/arm64/boot/dts/broadcom/stingray/bcm958742t.dts +4 −0
  1270. arch/arm64/boot/dts/broadcom/stingray/stingray-fs4.dtsi +118 −0
  1271. arch/arm64/boot/dts/broadcom/stingray/stingray-sata.dtsi +278 −0
  1272. arch/arm64/boot/dts/broadcom/stingray/stingray.dtsi +136 −0
  1273. arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi +2 −23
  1274. arch/arm64/boot/dts/exynos/exynos5433.dtsi +2 −2
  1275. arch/arm64/boot/dts/exynos/exynos7-espresso.dts +0 −2
  1276. arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi +17 −0
  1277. arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi +6 −6
  1278. arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi +31 −0
  1279. arch/arm64/boot/dts/freescale/fsl-ls1088a-rdb.dts +1 −1
  1280. arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi +65 −0
  1281. arch/arm64/boot/dts/freescale/fsl-ls2080a-qds.dts +0 −5
  1282. arch/arm64/boot/dts/freescale/fsl-ls2080a-rdb.dts +0 −5
  1283. arch/arm64/boot/dts/freescale/fsl-ls2080a-simu.dts +0 −5
  1284. arch/arm64/boot/dts/freescale/fsl-ls2080a.dtsi +17 −0
  1285. arch/arm64/boot/dts/freescale/fsl-ls2088a-qds.dts +0 −5
  1286. arch/arm64/boot/dts/freescale/fsl-ls2088a-rdb.dts +0 −5
  1287. arch/arm64/boot/dts/freescale/fsl-ls2088a.dtsi +17 −0
  1288. arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi +51 −0
  1289. arch/arm64/boot/dts/hisilicon/hi3660-hikey960.dts +36 −1
  1290. arch/arm64/boot/dts/hisilicon/hi3660.dtsi +130 −0
  1291. arch/arm64/boot/dts/hisilicon/hi6220.dtsi +8 −1
  1292. arch/arm64/boot/dts/hisilicon/hip07-d05.dts +4 −0
  1293. arch/arm64/boot/dts/hisilicon/hip07.dtsi +22 −0
  1294. arch/arm64/boot/dts/marvell/Makefile +1 −0
  1295. arch/arm64/boot/dts/marvell/armada-3720-espressobin.dts +30 −0
  1296. arch/arm64/boot/dts/marvell/armada-37xx.dtsi +10 −1
  1297. arch/arm64/boot/dts/marvell/armada-7040-db.dts +39 −0
  1298. arch/arm64/boot/dts/marvell/armada-8040-db.dts +65 −0
  1299. arch/arm64/boot/dts/marvell/armada-8040-mcbin.dts +122 −2
  1300. arch/arm64/boot/dts/marvell/armada-8080-db.dts +67 −0
  1301. arch/arm64/boot/dts/marvell/armada-8080.dtsi +53 −0
  1302. arch/arm64/boot/dts/marvell/armada-ap806.dtsi +2 −2
  1303. arch/arm64/boot/dts/marvell/armada-ap810-ap0-octa-core.dtsi +104 −0
  1304. arch/arm64/boot/dts/marvell/armada-ap810-ap0.dtsi +163 −0
  1305. arch/arm64/boot/dts/marvell/armada-cp110-master.dtsi +63 −20
  1306. arch/arm64/boot/dts/marvell/armada-cp110-slave.dtsi +63 −20
  1307. arch/arm64/boot/dts/mediatek/Makefile +2 −0
  1308. arch/arm64/boot/dts/mediatek/mt2712-evb.dts +32 −0
  1309. arch/arm64/boot/dts/mediatek/mt2712e.dtsi +171 −0
  1310. arch/arm64/boot/dts/mediatek/mt6797.dtsi +5 −7
  1311. arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts +27 −0
  1312. arch/arm64/boot/dts/mediatek/mt7622.dtsi +110 −0
  1313. arch/arm64/boot/dts/qcom/Makefile +1 −0
  1314. arch/arm64/boot/dts/qcom/apq8016-sbc-pmic-pins.dtsi +1 −0
  1315. arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi +7 −10
  1316. arch/arm64/boot/dts/qcom/apq8096-db820c-pmic-pins.dtsi +24 −0
  1317. arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi +198 −0
  1318. arch/arm64/boot/dts/qcom/ipq8074-hk01.dts +52 −0
  1319. arch/arm64/boot/dts/qcom/ipq8074.dtsi +194 −0
  1320. arch/arm64/boot/dts/qcom/msm8916.dtsi +119 −1
  1321. arch/arm64/boot/dts/qcom/msm8996.dtsi +314 −0
  1322. arch/arm64/boot/dts/qcom/pmi8994.dtsi +17 −0
  1323. arch/arm64/boot/dts/renesas/Makefile +1 −0
  1324. arch/arm64/boot/dts/renesas/r8a7795-es1-h3ulcb.dts +0 −2
  1325. arch/arm64/boot/dts/renesas/r8a7795-es1-salvator-x.dts +0 −2
  1326. arch/arm64/boot/dts/renesas/r8a7795-es1.dtsi +8 −1
  1327. arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts +14 −2
  1328. arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts +0 −2
  1329. arch/arm64/boot/dts/renesas/r8a7795-salvator-xs.dts +4 −4
  1330. arch/arm64/boot/dts/renesas/r8a7795.dtsi +313 −1
  1331. arch/arm64/boot/dts/renesas/r8a7796-m3ulcb.dts +12 −2
  1332. arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts +29 −2
  1333. arch/arm64/boot/dts/renesas/r8a7796.dtsi +403 −11
  1334. arch/arm64/boot/dts/renesas/r8a77995-draak.dts +46 −0
  1335. arch/arm64/boot/dts/renesas/r8a77995.dtsi +155 −0
  1336. arch/arm64/boot/dts/renesas/salvator-common.dtsi +1 −5
  1337. arch/arm64/boot/dts/renesas/salvator-xs.dtsi +10 −0
  1338. arch/arm64/boot/dts/renesas/ulcb.dtsi +51 −0
  1339. arch/arm64/boot/dts/rockchip/Makefile +3 −0
  1340. arch/arm64/boot/dts/rockchip/rk3328-evb.dts +181 −0
  1341. arch/arm64/boot/dts/rockchip/rk3328-rock64.dts +333 −0
  1342. arch/arm64/boot/dts/rockchip/rk3328.dtsi +437 −0
  1343. arch/arm64/boot/dts/rockchip/rk3368-evb.dtsi +0 −1
  1344. arch/arm64/boot/dts/rockchip/rk3368-geekbox.dts +0 −1
  1345. arch/arm64/boot/dts/rockchip/rk3368-orion-r68-meta.dts +0 −2
  1346. arch/arm64/boot/dts/rockchip/rk3368-px5-evb.dts +0 −3
  1347. arch/arm64/boot/dts/rockchip/rk3368-r88.dts +0 −2
  1348. arch/arm64/boot/dts/rockchip/rk3368.dtsi +138 −2
  1349. arch/arm64/boot/dts/rockchip/rk3399-evb.dts +1 −1
  1350. arch/arm64/boot/dts/rockchip/rk3399-firefly.dts +14 −2
  1351. arch/arm64/boot/dts/rockchip/rk3399-gru-kevin.dts +44 −0
  1352. arch/arm64/boot/dts/rockchip/rk3399-gru.dtsi +88 −44
  1353. arch/arm64/boot/dts/rockchip/rk3399-op1-opp.dtsi +33 −0
  1354. arch/arm64/boot/dts/rockchip/rk3399-opp.dtsi +33 −0
  1355. arch/arm64/boot/dts/rockchip/rk3399-puma-haikou.dts +228 −0
  1356. arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi +547 −0
  1357. arch/arm64/boot/dts/rockchip/rk3399-sapphire-excavator.dts +240 −0
  1358. arch/arm64/boot/dts/rockchip/rk3399-sapphire.dtsi +644 −0
  1359. arch/arm64/boot/dts/rockchip/rk3399.dtsi +278 −14
  1360. arch/arm64/boot/dts/socionext/Makefile +2 −1
  1361. arch/arm64/boot/dts/socionext/uniphier-ld11-global.dts +5 −1
  1362. arch/arm64/boot/dts/socionext/uniphier-ld11-ref.dts +3 −3
  1363. arch/arm64/boot/dts/socionext/uniphier-ld11.dtsi +34 −1
  1364. arch/arm64/boot/dts/socionext/uniphier-ld20-global.dts +5 −1
  1365. arch/arm64/boot/dts/socionext/uniphier-ld20-ref.dts +3 −3
  1366. arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi +35 −2
  1367. arch/arm64/boot/dts/socionext/uniphier-pinctrl.dtsi +0 −1
  1368. arch/arm64/boot/dts/socionext/uniphier-pinctrl.dtsi +1 −0
  1369. arch/arm64/boot/dts/socionext/uniphier-pxs3-ref.dts +62 −0
  1370. arch/arm64/boot/dts/socionext/uniphier-pxs3.dtsi +367 −0
  1371. arch/arm64/boot/dts/socionext/uniphier-ref-daughter.dtsi +0 −1
  1372. arch/arm64/boot/dts/socionext/uniphier-ref-daughter.dtsi +1 −0
  1373. arch/arm64/boot/dts/socionext/uniphier-support-card.dtsi +0 −1
  1374. arch/arm64/boot/dts/socionext/uniphier-support-card.dtsi +1 −0
  1375. arch/arm64/boot/dts/xilinx/zynqmp-ep108-clk.dtsi +49 −1
  1376. arch/arm64/boot/dts/xilinx/zynqmp-ep108.dts +12 −6
  1377. arch/arm64/boot/dts/xilinx/zynqmp.dtsi +260 −17
  1378. arch/arm64/boot/dts/zte/Makefile +1 −0
  1379. arch/arm64/boot/dts/zte/zx296718-evb.dts +60 −8
  1380. arch/arm64/boot/dts/zte/zx296718-pcbox.dts +143 −0
  1381. arch/arm64/boot/dts/zte/zx296718.dtsi +169 −2
  1382. arch/arm64/configs/defconfig +39 −2
  1383. arch/arm64/crypto/Kconfig +16 −6
  1384. arch/arm64/crypto/aes-ce-ccm-core.S +15 −15
  1385. arch/arm64/crypto/aes-ce-ccm-glue.c +139 −35
  1386. arch/arm64/crypto/aes-ce-cipher.c +33 −22
  1387. arch/arm64/crypto/aes-ce.S +6 −6
  1388. arch/arm64/crypto/aes-cipher-core.S +107 −45
  1389. arch/arm64/crypto/aes-ctr-fallback.h +53 −0
  1390. arch/arm64/crypto/aes-glue.c +45 −18
  1391. arch/arm64/crypto/aes-neonbs-glue.c +45 −8
  1392. arch/arm64/crypto/chacha20-neon-glue.c +3 −2
  1393. arch/arm64/crypto/crc32-ce-glue.c +6 −5
  1394. arch/arm64/crypto/crct10dif-ce-glue.c +9 −4
  1395. arch/arm64/crypto/ghash-ce-core.S +383 −18
  1396. arch/arm64/crypto/ghash-ce-glue.c +482 −35
  1397. arch/arm64/crypto/sha1-ce-glue.c +14 −4
  1398. arch/arm64/crypto/sha2-ce-glue.c +26 −4
  1399. arch/arm64/crypto/sha256-glue.c +1 −0
  1400. arch/arm64/include/asm/Kbuild +0 −1
  1401. arch/arm64/include/asm/arch_gicv3.h +7 −0
  1402. arch/arm64/include/asm/arch_timer.h +2 −2
  1403. arch/arm64/include/asm/asm-bug.h +54 −0
  1404. arch/arm64/include/asm/assembler.h +24 −1
  1405. arch/arm64/include/asm/bug.h +3 −32
  1406. arch/arm64/include/asm/cacheflush.h +3 −1
  1407. arch/arm64/include/asm/cpucaps.h +2 −1
  1408. arch/arm64/include/asm/efi.h +14 −2
  1409. arch/arm64/include/asm/elf.h +2 −4
  1410. arch/arm64/include/asm/esr.h +31 −11
  1411. arch/arm64/include/asm/fpsimd.h +3 −13
  1412. arch/arm64/include/asm/fpsimdmacros.h +0 −56
  1413. arch/arm64/include/asm/futex.h +4 −22
  1414. arch/arm64/include/asm/hugetlb.h +8 −1
  1415. arch/arm64/include/asm/irq.h +0 −42
  1416. arch/arm64/include/asm/kvm_emulate.h +19 −5
  1417. arch/arm64/include/asm/kvm_host.h +0 −6
  1418. arch/arm64/include/asm/kvm_mmu.h +9 −12
  1419. arch/arm64/include/asm/linkage.h +2 −2
  1420. arch/arm64/include/asm/memory.h +53 −0
  1421. arch/arm64/include/asm/mmu.h +2 −0
  1422. arch/arm64/include/asm/neon.h +13 −3
  1423. arch/arm64/include/asm/numa.h +0 −3
  1424. arch/arm64/include/asm/page-def.h +34 −0
  1425. arch/arm64/include/asm/page.h +1 −11
  1426. arch/arm64/include/asm/pgtable-prot.h +8 −10
  1427. arch/arm64/include/asm/pgtable.h +41 −62
  1428. arch/arm64/include/asm/processor.h +2 −2
  1429. arch/arm64/include/asm/ptrace.h +30 −1
  1430. arch/arm64/include/asm/signal32.h +0 −2
  1431. arch/arm64/include/asm/simd.h +56 −0
  1432. arch/arm64/include/asm/smp.h +1 −1
  1433. arch/arm64/include/asm/spinlock.h +7 −62
  1434. arch/arm64/include/asm/stacktrace.h +59 −2
  1435. arch/arm64/include/asm/string.h +4 −0
  1436. arch/arm64/include/asm/sysreg.h +1 −0
  1437. arch/arm64/include/asm/thread_info.h +7 −10
  1438. arch/arm64/include/asm/traps.h +5 −7
  1439. arch/arm64/include/asm/uaccess.h +15 −0
  1440. arch/arm64/include/uapi/asm/hwcap.h +1 −0
  1441. arch/arm64/kernel/acpi.c +2 −2
  1442. arch/arm64/kernel/asm-offsets.c +1 −0
  1443. arch/arm64/kernel/cpufeature.c +13 −0
  1444. arch/arm64/kernel/cpuinfo.c +1 −0
  1445. arch/arm64/kernel/entry-fpsimd.S +0 −24
  1446. arch/arm64/kernel/entry.S +183 −100
  1447. arch/arm64/kernel/fpsimd.c +136 −38
  1448. arch/arm64/kernel/head.S +13 −10
  1449. arch/arm64/kernel/hibernate.c +2 −2
  1450. arch/arm64/kernel/irq.c +38 −2
  1451. arch/arm64/kernel/kaslr.c +11 −9
  1452. arch/arm64/kernel/machine_kexec.c +1 −1
  1453. arch/arm64/kernel/pci.c +0 −17
  1454. arch/arm64/kernel/perf_callchain.c +0 −1
  1455. arch/arm64/kernel/perf_event.c +85 −123
  1456. arch/arm64/kernel/probes/uprobes.c +1 −1
  1457. arch/arm64/kernel/process.c +11 −4
  1458. arch/arm64/kernel/ptrace.c +3 −2
  1459. arch/arm64/kernel/return_address.c +0 −1
  1460. arch/arm64/kernel/signal.c +10 −5
  1461. arch/arm64/kernel/signal32.c +10 −15
  1462. arch/arm64/kernel/smp.c +13 −3
  1463. arch/arm64/kernel/stacktrace.c +23 −55
  1464. arch/arm64/kernel/time.c +0 −1
  1465. arch/arm64/kernel/traps.c +49 −30
  1466. arch/arm64/kernel/vdso.c +15 −0
  1467. arch/arm64/kernel/vmlinux.lds.S +1 −17
  1468. arch/arm64/kvm/handle_exit.c +1 −1
  1469. arch/arm64/kvm/hyp/s2-setup.c +1 −1
  1470. arch/arm64/kvm/vgic-sys-reg-v3.c +3 −20
  1471. arch/arm64/lib/Makefile +2 −0
  1472. arch/arm64/lib/uaccess_flushcache.c +47 −0
  1473. arch/arm64/mm/cache.S +28 −9
  1474. arch/arm64/mm/dma-mapping.c +2 −2
  1475. arch/arm64/mm/fault.c +62 −20
  1476. arch/arm64/mm/flush.c +16 −0
  1477. arch/arm64/mm/hugetlbpage.c +230 −84
  1478. arch/arm64/net/bpf_jit.h +4 −0
  1479. arch/arm64/net/bpf_jit_comp.c +20 −0
  1480. arch/blackfin/include/asm/bfin_twi.h +133 −1
  1481. arch/blackfin/include/asm/spinlock.h +0 −5
  1482. arch/blackfin/include/uapi/asm/siginfo.h +19 −11
  1483. arch/blackfin/kernel/debug-mmrs.c +0 −1
  1484. arch/blackfin/kernel/module.c +21 −18
  1485. arch/blackfin/mach-bf537/boards/dnp5370.c +1 −1
  1486. arch/blackfin/mach-bf537/boards/stamp.c +1 −1
  1487. arch/blackfin/mach-bf561/boards/acvilon.c +1 −1
  1488. arch/c6x/configs/dsk6455_defconfig +0 −2
  1489. arch/c6x/configs/evmc6457_defconfig +0 −2
  1490. arch/c6x/configs/evmc6472_defconfig +0 −2
  1491. arch/c6x/configs/evmc6474_defconfig +0 −2
  1492. arch/c6x/configs/evmc6678_defconfig +0 −2
  1493. arch/c6x/include/asm/processor.h +0 −3
  1494. arch/c6x/platforms/megamod-pic.c +11 −11
  1495. arch/c6x/platforms/plldata.c +2 −2
  1496. arch/c6x/platforms/timer64.c +4 −4
  1497. arch/cris/arch-v32/drivers/mach-a3/nandflash.c +1 −1
  1498. arch/cris/arch-v32/drivers/mach-fs/nandflash.c +1 −1
  1499. arch/cris/arch-v32/drivers/pci/bios.c +0 −4
  1500. arch/cris/arch-v32/mach-a3/arbiter.c +2 −2
  1501. arch/cris/arch-v32/mach-fs/arbiter.c +2 −2
  1502. arch/cris/kernel/traps.c +3 −3
  1503. arch/frv/Kconfig +3 −0
  1504. arch/frv/include/asm/futex.h +2 −1
  1505. arch/frv/include/asm/processor.h +0 −4
  1506. arch/frv/include/uapi/asm/siginfo.h +1 −1
  1507. arch/frv/include/uapi/asm/socket.h +2 −0
  1508. arch/frv/kernel/futex.c +4 −23
  1509. arch/h8300/Kconfig +3 −0
  1510. arch/h8300/include/asm/traps.h +3 −3
  1511. arch/hexagon/include/asm/atomic.h +2 −0
  1512. arch/hexagon/include/asm/futex.h +4 −34
  1513. arch/hexagon/include/asm/spinlock.h +0 −5
  1514. arch/ia64/Kconfig.debug +0 −5
  1515. arch/ia64/include/asm/acpi.h +0 −2
  1516. arch/ia64/include/asm/futex.h +4 −21
  1517. arch/ia64/include/asm/spinlock.h +0 −21
  1518. arch/ia64/include/asm/tlb.h +6 −2
  1519. arch/ia64/include/uapi/asm/siginfo.h +12 −9
  1520. arch/ia64/include/uapi/asm/socket.h +2 −0
  1521. arch/ia64/kernel/acpi.c +3 −3
  1522. arch/ia64/kernel/efi.c +2 −2
  1523. arch/ia64/kernel/signal.c +8 −9
  1524. arch/ia64/kernel/traps.c +2 −2
  1525. arch/ia64/pci/pci.c +0 −7
  1526. arch/m32r/configs/m32104ut_defconfig +0 −4
  1527. arch/m32r/configs/m32700ut.smp_defconfig +0 −3
  1528. arch/m32r/configs/m32700ut.up_defconfig +0 −3
  1529. arch/m32r/configs/mappi.nommu_defconfig +0 −2
  1530. arch/m32r/configs/mappi.smp_defconfig +0 −4
  1531. arch/m32r/configs/mappi.up_defconfig +0 −4
  1532. arch/m32r/configs/mappi2.opsp_defconfig +0 −2
  1533. arch/m32r/configs/mappi2.vdec2_defconfig +0 −2
  1534. arch/m32r/configs/mappi3.smp_defconfig +0 −4
  1535. arch/m32r/configs/oaks32r_defconfig +0 −2
  1536. arch/m32r/configs/opsput_defconfig +0 −2
  1537. arch/m32r/configs/usrv_defconfig +0 −5
  1538. arch/m32r/include/asm/flat.h +2 −1
  1539. arch/m32r/include/asm/processor.h +0 −8
  1540. arch/m32r/include/asm/spinlock.h +0 −5
  1541. arch/m32r/include/uapi/asm/socket.h +2 −0
  1542. arch/m68k/Kconfig +3 −0
  1543. arch/m68k/coldfire/clk.c +3 −0
  1544. arch/m68k/coldfire/m5441x.c +0 −37
  1545. arch/m68k/coldfire/pci.c +32 −4
  1546. arch/m68k/configs/amiga_defconfig +5 −2
  1547. arch/m68k/configs/apollo_defconfig +5 −2
  1548. arch/m68k/configs/atari_defconfig +6 −2
  1549. arch/m68k/configs/bvme6000_defconfig +5 −2
  1550. arch/m68k/configs/hp300_defconfig +5 −2
  1551. arch/m68k/configs/mac_defconfig +5 −2
  1552. arch/m68k/configs/multi_defconfig +5 −2
  1553. arch/m68k/configs/mvme147_defconfig +5 −2
  1554. arch/m68k/configs/mvme16x_defconfig +5 −2
  1555. arch/m68k/configs/q40_defconfig +5 −2
  1556. arch/m68k/configs/sun3_defconfig +5 −2
  1557. arch/m68k/configs/sun3x_defconfig +5 −2
  1558. arch/m68k/include/asm/asm-prototypes.h +5 −0
  1559. arch/m68k/include/asm/page.h +1 −1
  1560. arch/m68k/mac/misc.c +14 −2
  1561. arch/metag/Kconfig +1 −0
  1562. arch/metag/include/asm/atomic_lock1.h +2 −0
  1563. arch/metag/include/asm/dma-mapping.h +1 −1
  1564. arch/metag/include/asm/processor.h +0 −3
  1565. arch/metag/include/asm/spinlock.h +0 −5
  1566. arch/metag/include/asm/topology.h +0 −1
  1567. arch/microblaze/Kconfig +16 −0
  1568. arch/microblaze/Makefile +2 −0
  1569. arch/microblaze/include/asm/flat.h +1 −1
  1570. arch/microblaze/include/asm/futex.h +4 −34
  1571. arch/microblaze/include/asm/pci.h +0 −3
  1572. arch/microblaze/kernel/timer.c +1 −1
  1573. arch/microblaze/pci/pci-common.c +7 −152
  1574. arch/mips/Kconfig +6 −17
  1575. arch/mips/Makefile +41 −5
  1576. arch/mips/alchemy/devboards/db1200.c +37 −29
  1577. arch/mips/alchemy/devboards/db1300.c +18 −15
  1578. arch/mips/alchemy/devboards/db1550.c +1 −1
  1579. arch/mips/alchemy/devboards/db1xxx.c +2 −0
  1580. arch/mips/ar7/clock.c +3 −0
  1581. arch/mips/ath79/clock.c +4 −5
  1582. arch/mips/ath79/pci.c +6 −6
  1583. arch/mips/bcm63xx/clk.c +3 −0
  1584. arch/mips/boot/Makefile +11 −5
  1585. arch/mips/boot/compressed/.gitignore +2 −0
  1586. arch/mips/boot/dts/Makefile +1 −0
  1587. arch/mips/boot/dts/ingenic/ci20.dts +37 −0
  1588. arch/mips/boot/dts/ingenic/jz4780.dtsi +11 −0
  1589. arch/mips/boot/dts/ni/169445.dts +100 −0
  1590. arch/mips/boot/dts/ni/Makefile +7 −0
  1591. arch/mips/boot/dts/ralink/Makefile +2 −0
  1592. arch/mips/boot/dts/ralink/mt7628a.dtsi +126 −0
  1593. arch/mips/boot/dts/ralink/omega2p.dts +18 −0
  1594. arch/mips/boot/dts/ralink/vocore2.dts +18 −0
  1595. arch/mips/cavium-octeon/executive/Makefile +1 −1
  1596. arch/mips/cavium-octeon/executive/cvmx-boot-vector.c +167 −0
  1597. arch/mips/cavium-octeon/executive/cvmx-bootmem.c +85 −0
  1598. arch/mips/cavium-octeon/octeon-irq.c +9 −0
  1599. arch/mips/cavium-octeon/octeon-usb.c +1 −1
  1600. arch/mips/cavium-octeon/smp.c +9 −5
  1601. arch/mips/configs/cavium_octeon_defconfig +15 −10
  1602. arch/mips/configs/ci20_defconfig +3 −0
  1603. arch/mips/configs/generic/board-ni169445.config +30 −0
  1604. arch/mips/configs/generic/board-sead-3.config +2 −0
  1605. arch/mips/configs/generic_defconfig +1 −2
  1606. arch/mips/configs/gpr_defconfig +0 −4
  1607. arch/mips/configs/lemote2f_defconfig +0 −1
  1608. arch/mips/configs/malta_defconfig +0 −1
  1609. arch/mips/configs/malta_kvm_defconfig +0 −1
  1610. arch/mips/configs/malta_kvm_guest_defconfig +1 −0
  1611. arch/mips/configs/maltasmvp_defconfig +0 −1
  1612. arch/mips/configs/maltasmvp_eva_defconfig +0 −1
  1613. arch/mips/configs/mtx1_defconfig +0 −4
  1614. arch/mips/configs/nlm_xlp_defconfig +0 −1
  1615. arch/mips/configs/nlm_xlr_defconfig +0 −4
  1616. arch/mips/configs/omega2p_defconfig +129 −0
  1617. arch/mips/configs/pistachio_defconfig +4 −1
  1618. arch/mips/configs/vocore2_defconfig +129 −0
  1619. arch/mips/dec/int-handler.S +6 −28
  1620. arch/mips/fw/arc/init.c +1 −1
  1621. arch/mips/generic/Kconfig +6 −0
  1622. arch/mips/generic/Platform +4 −0
  1623. arch/mips/generic/board-boston.its.S +22 −0
  1624. arch/mips/generic/board-ni169445.its.S +22 −0
  1625. arch/mips/generic/init.c +5 −0
  1626. arch/mips/generic/irq.c +5 −4
  1627. arch/mips/generic/vmlinux.its.S +0 −25
  1628. arch/mips/include/asm/asm.h +3 −0
  1629. arch/mips/include/asm/bmips.h +2 −2
  1630. arch/mips/include/asm/cache.h +2 −0
  1631. arch/mips/include/asm/cpu-features.h +3 −0
  1632. arch/mips/include/asm/cpu-info.h +49 −13
  1633. arch/mips/include/asm/cpu-type.h +0 −5
  1634. arch/mips/include/asm/cpu.h +0 −5
  1635. arch/mips/include/asm/floppy.h +2 −2
  1636. arch/mips/include/asm/fpu_emulator.h +117 −1
  1637. arch/mips/include/asm/futex.h +4 −21
  1638. arch/mips/include/asm/io.h +2 −0
  1639. arch/mips/include/asm/kvm_host.h +0 −5
  1640. arch/mips/include/asm/mach-au1x00/cpu-feature-overrides.h +26 −0
  1641. arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h +1 −1
  1642. arch/mips/include/asm/mach-cavium-octeon/cpu-feature-overrides.h +3 −3
  1643. arch/mips/include/asm/mach-ip27/topology.h +0 −1
  1644. arch/mips/include/asm/mach-jz4740/jz4740_nand.h +1 −1
  1645. arch/mips/include/asm/mach-lantiq/lantiq.h +0 −2
  1646. arch/mips/include/asm/mach-loongson64/loongson.h +1 −1
  1647. arch/mips/include/asm/mach-loongson64/topology.h +0 −1
  1648. arch/mips/include/asm/mips-boards/maltaint.h +0 −5
  1649. arch/mips/include/asm/mips-cm.h +247 −320
  1650. arch/mips/include/asm/mips-cpc.h +92 −85
  1651. arch/mips/include/asm/mips-cps.h +240 −0
  1652. arch/mips/include/asm/mips-gic.h +347 −0
  1653. arch/mips/include/asm/mipsregs.h +22 −6
  1654. arch/mips/include/asm/module.h +0 −2
  1655. arch/mips/include/asm/netlogic/common.h +1 −1
  1656. arch/mips/include/asm/octeon/cvmx-boot-vector.h +53 −0
  1657. arch/mips/include/asm/octeon/cvmx-bootmem.h +28 −0
  1658. arch/mips/include/asm/octeon/cvmx-ciu-defs.h +10 −0
  1659. arch/mips/include/asm/octeon/cvmx-l2c-defs.h +36 −1
  1660. arch/mips/include/asm/octeon/cvmx-l2d-defs.h +60 −0
  1661. arch/mips/include/asm/octeon/cvmx.h +29 −0
  1662. arch/mips/include/asm/octeon/octeon.h +2 −0
  1663. arch/mips/include/asm/smp-ops.h +8 −8
  1664. arch/mips/include/asm/smp.h +5 −5
  1665. arch/mips/include/asm/stackframe.h +168 −112
  1666. arch/mips/include/asm/stacktrace.h +50 −14
  1667. arch/mips/include/asm/topology.h +1 −1
  1668. arch/mips/include/asm/vga.h +7 −0
  1669. arch/mips/include/uapi/asm/inst.h +1 −1
  1670. arch/mips/include/uapi/asm/mman.h +3 −11
  1671. arch/mips/include/uapi/asm/siginfo.h +2 −2
  1672. arch/mips/include/uapi/asm/socket.h +2 −0
  1673. arch/mips/kernel/Makefile +9 −5
  1674. arch/mips/kernel/cps-vec.S +2 −2
  1675. arch/mips/kernel/cpu-probe.c +38 −21
  1676. arch/mips/kernel/elf.c +4 −8
  1677. arch/mips/kernel/genex.S +8 −5
  1678. arch/mips/kernel/idle.c +1 −0
  1679. arch/mips/kernel/mips-cm.c +51 −43
  1680. arch/mips/kernel/mips-cpc.c +8 −9
  1681. arch/mips/kernel/mips-r2-to-r6-emul.c +9 −7
  1682. arch/mips/kernel/octeon_switch.S +6 −5
  1683. arch/mips/kernel/perf_event_mipsxx.c +1 −2
  1684. arch/mips/kernel/pm-cps.c +8 −9
  1685. arch/mips/kernel/proc.c +3 −3
  1686. arch/mips/kernel/process.c +61 −41
  1687. arch/mips/kernel/ptrace.c +4 −6
  1688. arch/mips/kernel/r2300_fpu.S +79 −1
  1689. arch/mips/kernel/r2300_switch.S +0 −81
  1690. arch/mips/kernel/r4k_fpu.S +196 −0
  1691. arch/mips/kernel/r4k_switch.S +0 −203
  1692. arch/mips/kernel/r6000_fpu.S +0 −99
  1693. arch/mips/kernel/scall32-o32.S +0 −11
  1694. arch/mips/kernel/scall64-o32.S +0 −6
  1695. arch/mips/kernel/signal32.c +9 −10
  1696. arch/mips/kernel/smp-bmips.c +6 −4
  1697. arch/mips/kernel/smp-cmp.c +3 −3
  1698. arch/mips/kernel/smp-cps.c +82 −70
  1699. arch/mips/kernel/smp-mt.c +7 −7
  1700. arch/mips/kernel/smp-up.c +3 −2
  1701. arch/mips/kernel/smp.c +19 −17
  1702. arch/mips/kernel/time.c +0 −14
  1703. arch/mips/kernel/traps.c +6 −23
  1704. arch/mips/kernel/unaligned.c +1 −1
  1705. arch/mips/kernel/vdso.c +5 −10
  1706. arch/mips/kvm/mips.c +7 −2
  1707. arch/mips/lantiq/Kconfig +2 −0
  1708. arch/mips/lantiq/falcon/reset.c +5 −18
  1709. arch/mips/lantiq/irq.c +0 −4
  1710. arch/mips/lantiq/prom.c +1 −1
  1711. arch/mips/lantiq/xway/Makefile +1 −3
  1712. arch/mips/lantiq/xway/reset.c +0 −387
  1713. arch/mips/lantiq/xway/sysctrl.c +22 −61
  1714. arch/mips/lantiq/xway/xrx200_phy_fw.c +0 −113
  1715. arch/mips/lib/Makefile +1 −1
  1716. arch/mips/lib/delay.c +1 −0
  1717. arch/mips/lib/iomap_copy.c +42 −0
  1718. arch/mips/loongson64/lemote-2f/clock.c +3 −0
  1719. arch/mips/loongson64/loongson-3/smp.c +9 −7
  1720. arch/mips/math-emu/Makefile +4 −2
  1721. arch/mips/math-emu/cp1emu.c +272 −12
  1722. arch/mips/math-emu/dp_fmax.c +63 −21
  1723. arch/mips/math-emu/dp_fmin.c +64 −22
  1724. arch/mips/math-emu/dp_maddf.c +154 −92
  1725. arch/mips/math-emu/dp_rint.c +89 −0
  1726. arch/mips/math-emu/ieee754.h +2 −0
  1727. arch/mips/math-emu/ieee754int.h +4 −0
  1728. arch/mips/math-emu/ieee754sp.h +4 −0
  1729. arch/mips/math-emu/me-debugfs.c +314 −4
  1730. arch/mips/math-emu/sp_fmax.c +63 −21
  1731. arch/mips/math-emu/sp_fmin.c +64 −22
  1732. arch/mips/math-emu/sp_maddf.c +107 −122
  1733. arch/mips/math-emu/sp_rint.c +90 −0
  1734. arch/mips/mm/c-r4k.c +1 −1
  1735. arch/mips/mm/cache.c +1 −1
  1736. arch/mips/mm/dma-default.c +5 −41
  1737. arch/mips/mm/init.c +1 −0
  1738. arch/mips/mm/mmap.c +1 −0
  1739. arch/mips/mm/sc-mips.c +19 −28
  1740. arch/mips/mm/tlbex-fault.S +4 −3
  1741. arch/mips/mm/tlbex.c +0 −5
  1742. arch/mips/mm/uasm-mips.c +1 −1
  1743. arch/mips/mti-malta/malta-dtshim.c +2 −2
  1744. arch/mips/mti-malta/malta-init.c +1 −2
  1745. arch/mips/mti-malta/malta-int.c +2 −3
  1746. arch/mips/mti-malta/malta-setup.c +2 −2
  1747. arch/mips/mti-malta/malta-time.c +12 −14
  1748. arch/mips/net/ebpf_jit.c +1995 −0
  1749. arch/mips/netlogic/common/smp.c +5 −3
  1750. arch/mips/netlogic/xlr/platform-flash.c +1 −1
  1751. arch/mips/oprofile/op_model_mipsxx.c +2 −2
  1752. arch/mips/paravirt/paravirt-smp.c +3 −2
  1753. arch/mips/paravirt/setup.c +1 −1
  1754. arch/mips/pci/fixup-capcella.c +2 −2
  1755. arch/mips/pci/fixup-cobalt.c +4 −4
  1756. arch/mips/pci/fixup-emma2rh.c +2 −2
  1757. arch/mips/pci/fixup-fuloong2e.c +1 −1
  1758. arch/mips/pci/fixup-ip32.c +2 −2
  1759. arch/mips/pci/fixup-jmr3927.c +1 −1
  1760. arch/mips/pci/fixup-lantiq.c +1 −1
  1761. arch/mips/pci/fixup-lemote2f.c +2 −2
  1762. arch/mips/pci/fixup-loongson3.c +1 −1
  1763. arch/mips/pci/fixup-malta.c +2 −2
  1764. arch/mips/pci/fixup-mpc30x.c +3 −3
  1765. arch/mips/pci/fixup-pmcmsp.c +4 −4
  1766. arch/mips/pci/fixup-rbtx4927.c +1 −1
  1767. arch/mips/pci/fixup-rbtx4938.c +1 −1
  1768. arch/mips/pci/fixup-sni.c +6 −6
  1769. arch/mips/pci/fixup-tb0219.c +1 −1
  1770. arch/mips/pci/fixup-tb0226.c +1 −1
  1771. arch/mips/pci/fixup-tb0287.c +1 −1
  1772. arch/mips/pci/pci-alchemy.c +1 −1
  1773. arch/mips/pci/pci-bcm47xx.c +1 −1
  1774. arch/mips/pci/pci-lasat.c +1 −1
  1775. arch/mips/pci/pci-legacy.c +21 −11
  1776. arch/mips/pci/pci-malta.c +3 −3
  1777. arch/mips/pci/pci-mt7620.c +2 −2
  1778. arch/mips/pci/pci-octeon.c +2 −3
  1779. arch/mips/pci/pci-rt2880.c +1 −1
  1780. arch/mips/pci/pci-rt3883.c +6 −7
  1781. arch/mips/pci/pci-tx4938.c +1 −1
  1782. arch/mips/pci/pci-tx4939.c +2 −2
  1783. arch/mips/pci/pci-xlp.c +1 −1
  1784. arch/mips/pci/pci-xlr.c +1 −1
  1785. arch/mips/pci/pci.c +3 −4
  1786. arch/mips/pci/pcie-octeon.c +1 −2
  1787. arch/mips/pistachio/init.c +1 −2
  1788. arch/mips/pistachio/irq.c +0 −1
  1789. arch/mips/pistachio/time.c +1 −1
  1790. arch/mips/pmcs-msp71xx/msp_smp.c +2 −0
  1791. arch/mips/pnx833x/common/platform.c +1 −1
  1792. arch/mips/ralink/Kconfig +10 −0
  1793. arch/mips/ralink/clk.c +3 −0
  1794. arch/mips/ralink/irq-gic.c +1 −1
  1795. arch/mips/ralink/mt7621.c +2 −3
  1796. arch/mips/rb532/devices.c +1 −1
  1797. arch/mips/sgi-ip27/ip27-smp.c +3 −2
  1798. arch/mips/sibyte/bcm1480/smp.c +3 −2
  1799. arch/mips/sibyte/common/cfe.c +2 −2
  1800. arch/mips/sibyte/sb1250/smp.c +3 −2
  1801. arch/mips/tools/generic-board-config.sh +90 −0
  1802. arch/mips/txx9/generic/pci.c +6 −2
  1803. arch/mips/vdso/gettimeofday.c +7 −7
  1804. arch/mips/vdso/sigreturn.S +0 −10
  1805. arch/mn10300/configs/asb2303_defconfig +0 −6
  1806. arch/mn10300/configs/asb2364_defconfig +0 −8
  1807. arch/mn10300/include/asm/spinlock.h +0 −5
  1808. arch/mn10300/include/uapi/asm/socket.h +2 −0
  1809. arch/mn10300/kernel/process.c +0 −12
  1810. arch/nios2/boot/dts/3c120_devboard.dts +2 −1
  1811. arch/nios2/include/asm/dma-mapping.h +1 −1
  1812. arch/nios2/kernel/time.c +4 −1
  1813. arch/openrisc/Kconfig +3 −0
  1814. arch/openrisc/include/asm/futex.h +4 −35
  1815. arch/openrisc/include/asm/pgtable.h +2 −0
  1816. arch/parisc/Kconfig +24 −0
  1817. arch/parisc/Makefile +16 −1
  1818. arch/parisc/boot/.gitignore +2 −0
  1819. arch/parisc/boot/Makefile +26 −0
  1820. arch/parisc/boot/compressed/.gitignore +3 −0
  1821. arch/parisc/boot/compressed/Makefile +86 −0
  1822. arch/parisc/boot/compressed/head.S +85 −0
  1823. arch/parisc/boot/compressed/misc.c +302 −0
  1824. arch/parisc/boot/compressed/vmlinux.lds.S +101 −0
  1825. arch/parisc/boot/compressed/vmlinux.scr +10 −0
  1826. arch/parisc/boot/install.sh +65 −0
  1827. arch/parisc/configs/c3000_defconfig +0 −1
  1828. arch/parisc/include/asm/atomic.h +2 −0
  1829. arch/parisc/include/asm/futex.h +4 −22
  1830. arch/parisc/include/asm/mmu_context.h +3 −0
  1831. arch/parisc/include/asm/page.h +4 −0
  1832. arch/parisc/include/asm/pdc.h +3 −0
  1833. arch/parisc/include/asm/pdcpat.h +14 −0
  1834. arch/parisc/include/asm/smp.h +1 −0
  1835. arch/parisc/include/asm/spinlock.h +0 −7
  1836. arch/parisc/include/uapi/asm/mman.h +6 −14
  1837. arch/parisc/include/uapi/asm/socket.h +2 −0
  1838. arch/parisc/kernel/firmware.c +73 −9
  1839. arch/parisc/kernel/pci-dma.c +1 −2
  1840. arch/parisc/kernel/pdt.c +248 −41
  1841. arch/parisc/kernel/perf.c +1 −3
  1842. arch/parisc/kernel/processor.c +25 −7
  1843. arch/parisc/kernel/real2.S +4 −0
  1844. arch/parisc/kernel/setup.c +3 −3
  1845. arch/parisc/kernel/signal32.c +15 −16
  1846. arch/parisc/kernel/smp.c +1 −2
  1847. arch/parisc/kernel/traps.c +9 −1
  1848. arch/parisc/kernel/unwind.c +13 −3
  1849. arch/parisc/lib/memcpy.c +0 −2
  1850. arch/parisc/mm/fault.c +29 −4
  1851. arch/powerpc/Kconfig +29 −11
  1852. arch/powerpc/Makefile +5 −1
  1853. arch/powerpc/boot/4xx.c +1 −1
  1854. arch/powerpc/boot/Makefile +6 −5
  1855. arch/powerpc/boot/crt0.S +10 −10
  1856. arch/powerpc/boot/dts/fsp2.dts +19 −14
  1857. arch/powerpc/boot/ppc_asm.h +8 −0
  1858. arch/powerpc/boot/serial.c +4 −0
  1859. arch/powerpc/boot/util.S +5 −19
  1860. arch/powerpc/configs/40x/acadia_defconfig +0 −1
  1861. arch/powerpc/configs/40x/ep405_defconfig +0 −1
  1862. arch/powerpc/configs/40x/kilauea_defconfig +0 −1
  1863. arch/powerpc/configs/40x/klondike_defconfig +0 −1
  1864. arch/powerpc/configs/40x/makalu_defconfig +0 −1
  1865. arch/powerpc/configs/40x/obs600_defconfig +0 −1
  1866. arch/powerpc/configs/40x/virtex_defconfig +1 −2
  1867. arch/powerpc/configs/40x/walnut_defconfig +0 −1
  1868. arch/powerpc/configs/44x/akebono_defconfig +0 −2
  1869. arch/powerpc/configs/44x/bamboo_defconfig +0 −1
  1870. arch/powerpc/configs/44x/currituck_defconfig +0 −2
  1871. arch/powerpc/configs/44x/ebony_defconfig +0 −1
  1872. arch/powerpc/configs/44x/eiger_defconfig +0 −4
  1873. arch/powerpc/configs/44x/fsp2_defconfig +2 −1
  1874. arch/powerpc/configs/44x/icon_defconfig +0 −3
  1875. arch/powerpc/configs/44x/iss476-smp_defconfig +0 −2
  1876. arch/powerpc/configs/44x/katmai_defconfig +0 −1
  1877. arch/powerpc/configs/44x/rainier_defconfig +0 −1
  1878. arch/powerpc/configs/44x/redwood_defconfig +0 −4
  1879. arch/powerpc/configs/44x/sequoia_defconfig +0 −1
  1880. arch/powerpc/configs/44x/taishan_defconfig +0 −1
  1881. arch/powerpc/configs/44x/virtex5_defconfig +1 −2
  1882. arch/powerpc/configs/44x/warp_defconfig +0 −1
  1883. arch/powerpc/configs/52xx/cm5200_defconfig +0 −1
  1884. arch/powerpc/configs/52xx/lite5200b_defconfig +1 −2
  1885. arch/powerpc/configs/52xx/motionpro_defconfig +7 −8
  1886. arch/powerpc/configs/52xx/tqm5200_defconfig +0 −2
  1887. arch/powerpc/configs/83xx/asp8347_defconfig +0 −2
  1888. arch/powerpc/configs/83xx/kmeter1_defconfig +0 −1
  1889. arch/powerpc/configs/83xx/mpc8313_rdb_defconfig +0 −3
  1890. arch/powerpc/configs/83xx/mpc8315_rdb_defconfig +0 −2
  1891. arch/powerpc/configs/83xx/mpc832x_mds_defconfig +1 −3
  1892. arch/powerpc/configs/83xx/mpc832x_rdb_defconfig +2 −4
  1893. arch/powerpc/configs/83xx/mpc834x_itx_defconfig +0 −2
  1894. arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig +0 −1
  1895. arch/powerpc/configs/83xx/mpc834x_mds_defconfig +0 −2
  1896. arch/powerpc/configs/83xx/mpc836x_mds_defconfig +1 −3
  1897. arch/powerpc/configs/83xx/mpc836x_rdk_defconfig +1 −4
  1898. arch/powerpc/configs/83xx/mpc837x_mds_defconfig +1 −3
  1899. arch/powerpc/configs/83xx/mpc837x_rdb_defconfig +1 −4
  1900. arch/powerpc/configs/83xx/sbc834x_defconfig +1 −3
  1901. arch/powerpc/configs/85xx/ge_imp3a_defconfig +1 −2
  1902. arch/powerpc/configs/85xx/ksi8560_defconfig +1 −3
  1903. arch/powerpc/configs/85xx/mpc8540_ads_defconfig +1 −3
  1904. arch/powerpc/configs/85xx/mpc8560_ads_defconfig +2 −4
  1905. arch/powerpc/configs/85xx/mpc85xx_cds_defconfig +1 −3
  1906. arch/powerpc/configs/85xx/sbc8548_defconfig +1 −3
  1907. arch/powerpc/configs/85xx/socrates_defconfig +0 −3
  1908. arch/powerpc/configs/85xx/stx_gp3_defconfig +0 −3
  1909. arch/powerpc/configs/85xx/tqm8540_defconfig +1 −3
  1910. arch/powerpc/configs/85xx/tqm8541_defconfig +1 −3
  1911. arch/powerpc/configs/85xx/tqm8548_defconfig +0 −2
  1912. arch/powerpc/configs/85xx/tqm8555_defconfig +1 −3
  1913. arch/powerpc/configs/85xx/tqm8560_defconfig +1 −3
  1914. arch/powerpc/configs/85xx/xes_mpc85xx_defconfig +1 −4
  1915. arch/powerpc/configs/adder875_defconfig +1 −1
  1916. arch/powerpc/configs/amigaone_defconfig +0 −2
  1917. arch/powerpc/configs/be.config +1 −0
  1918. arch/powerpc/configs/c2k_defconfig +1 −4
  1919. arch/powerpc/configs/cell_defconfig +1 −8
  1920. arch/powerpc/configs/chrp32_defconfig +1 −2
  1921. arch/powerpc/configs/ep8248e_defconfig +0 −1
  1922. arch/powerpc/configs/ep88xc_defconfig +1 −1
  1923. arch/powerpc/configs/g5_defconfig +6 −10
  1924. arch/powerpc/configs/gamecube_defconfig +3 −4
  1925. arch/powerpc/configs/holly_defconfig +1 −2
  1926. arch/powerpc/configs/linkstation_defconfig +0 −3
  1927. arch/powerpc/configs/maple_defconfig +2 −7
  1928. arch/powerpc/configs/mgcoge_defconfig +0 −2
  1929. arch/powerpc/configs/mpc512x_defconfig +12 −16
  1930. arch/powerpc/configs/mpc5200_defconfig +0 −4
  1931. arch/powerpc/configs/mpc7448_hpc2_defconfig +1 −3
  1932. arch/powerpc/configs/mpc8272_ads_defconfig +0 −1
  1933. arch/powerpc/configs/mpc83xx_defconfig +3 −7
  1934. arch/powerpc/configs/mpc866_ads_defconfig +1 −3
  1935. arch/powerpc/configs/mpc86xx_basic_defconfig +6 −6
  1936. arch/powerpc/configs/mpc885_ads_defconfig +1 −1
  1937. arch/powerpc/configs/mvme5100_defconfig +0 −3
  1938. arch/powerpc/configs/pasemi_defconfig +3 −5
  1939. arch/powerpc/configs/pmac32_defconfig +8 −10
  1940. arch/powerpc/configs/powernv_defconfig +9 −12
  1941. arch/powerpc/configs/ppc40x_defconfig +1 −2
  1942. arch/powerpc/configs/ppc44x_defconfig +1 −3
  1943. arch/powerpc/configs/ppc64_defconfig +24 −24
  1944. arch/powerpc/configs/ppc64e_defconfig +7 −10
  1945. arch/powerpc/configs/ppc6xx_defconfig +21 −32
  1946. arch/powerpc/configs/pq2fads_defconfig +0 −1
  1947. arch/powerpc/configs/ps3_defconfig +0 −3
  1948. arch/powerpc/configs/pseries_defconfig +20 −25
  1949. arch/powerpc/configs/tqm8xx_defconfig +1 −2
  1950. arch/powerpc/configs/wii_defconfig +3 −7
  1951. arch/powerpc/include/asm/Kbuild +1 −0
  1952. arch/powerpc/include/asm/asm-compat.h +1 −1
  1953. arch/powerpc/include/asm/barrier.h +0 −7
  1954. arch/powerpc/include/asm/book3s/32/pgtable.h +1 −3
  1955. arch/powerpc/include/asm/book3s/64/hash.h +4 −2
  1956. arch/powerpc/include/asm/book3s/64/hugetlb.h +1 −3
  1957. arch/powerpc/include/asm/book3s/64/mmu-hash.h +2 −1
  1958. arch/powerpc/include/asm/book3s/64/mmu.h +3 −5
  1959. arch/powerpc/include/asm/book3s/64/pgalloc.h +0 −2
  1960. arch/powerpc/include/asm/book3s/64/pgtable.h +8 −1
  1961. arch/powerpc/include/asm/book3s/64/radix.h +2 −0
  1962. arch/powerpc/include/asm/book3s/64/tlbflush-radix.h +2 −3
  1963. arch/powerpc/include/asm/bug.h +1 −0
  1964. arch/powerpc/include/asm/cache.h +1 −1
  1965. arch/powerpc/include/asm/cpuidle.h +11 −16
  1966. arch/powerpc/include/asm/cputable.h +2 −2
  1967. arch/powerpc/include/asm/eeh.h +2 −3
  1968. arch/powerpc/include/asm/fadump.h +2 −0
  1969. arch/powerpc/include/asm/feature-fixups.h +3 −3
  1970. arch/powerpc/include/asm/fixmap.h +7 −3
  1971. arch/powerpc/include/asm/fs_pd.h +1 −1
  1972. arch/powerpc/include/asm/futex.h +5 −21
  1973. arch/powerpc/include/asm/hardirq.h +4 −0
  1974. arch/powerpc/include/asm/hugetlb.h +0 −14
  1975. arch/powerpc/include/asm/hvcall.h +12 −1
  1976. arch/powerpc/include/asm/icswx.h +3 −0
  1977. arch/powerpc/include/asm/imc-pmu.h +128 −0
  1978. arch/powerpc/include/asm/kvm_book3s_asm.h +4 −0
  1979. arch/powerpc/include/asm/kvm_host.h +0 −5
  1980. arch/powerpc/include/asm/machdep.h +0 −1
  1981. arch/powerpc/include/asm/mmu_context.h +2 −56
  1982. arch/powerpc/include/asm/nmi.h +1 −2
  1983. arch/powerpc/include/asm/nohash/32/pgtable.h +1 −4
  1984. arch/powerpc/include/asm/nohash/pgtable.h +1 −0
  1985. arch/powerpc/include/asm/opal-api.h +23 −1
  1986. arch/powerpc/include/asm/opal.h +18 −1
  1987. arch/powerpc/include/asm/paca.h +7 −0
  1988. arch/powerpc/include/asm/pci-bridge.h +0 −1
  1989. arch/powerpc/include/asm/pgalloc.h +2 −0
  1990. arch/powerpc/include/asm/pgtable-be-types.h +1 −0
  1991. arch/powerpc/include/asm/pgtable-types.h +1 −0
  1992. arch/powerpc/include/asm/pgtable.h +2 −10
  1993. arch/powerpc/include/asm/pnv-pci.h +2 −0
  1994. arch/powerpc/include/asm/ppc-opcode.h +15 −1
  1995. arch/powerpc/include/asm/ppc_asm.h +11 −5
  1996. arch/powerpc/include/asm/prom.h +4 −1
  1997. arch/powerpc/include/asm/pte-walk.h +35 −0
  1998. arch/powerpc/include/asm/reg.h +74 −25
  1999. arch/powerpc/include/asm/reg_booke.h +0 −3
  2000. arch/powerpc/include/asm/setup.h +0 −1
  2001. arch/powerpc/include/asm/smp.h +6 −0
  2002. arch/powerpc/include/asm/spinlock.h +3 −33
  2003. arch/powerpc/include/asm/sstep.h +88 −7
  2004. arch/powerpc/include/asm/string.h +26 −0
  2005. arch/powerpc/include/asm/timex.h +1 −5
  2006. arch/powerpc/include/asm/tlb.h +10 −1
  2007. arch/powerpc/include/asm/topology.h +0 −2
  2008. arch/powerpc/include/asm/vas.h +159 −0
  2009. arch/powerpc/include/asm/vga.h +8 −0
  2010. arch/powerpc/include/asm/xive.h +5 −0
  2011. arch/powerpc/include/uapi/asm/mman.h +0 −16
  2012. arch/powerpc/kernel/Makefile +2 −2
  2013. arch/powerpc/kernel/align.c +32 −742
  2014. arch/powerpc/kernel/asm-offsets.c +8 −0
  2015. arch/powerpc/kernel/btext.c +1 −1
  2016. arch/powerpc/kernel/cacheinfo.c +16 −18
  2017. arch/powerpc/kernel/cputable.c +5 −3
  2018. arch/powerpc/kernel/eeh.c +14 −10
  2019. arch/powerpc/kernel/eeh_dev.c +1 −24
  2020. arch/powerpc/kernel/eeh_driver.c +1 −1
  2021. arch/powerpc/kernel/eeh_pe.c +51 −39
  2022. arch/powerpc/kernel/eeh_sysfs.c +0 −3
  2023. arch/powerpc/kernel/entry_32.S +22 −0
  2024. arch/powerpc/kernel/entry_64.S +20 −49
  2025. arch/powerpc/kernel/exceptions-64s.S +19 −18
  2026. arch/powerpc/kernel/fadump.c +30 −1
  2027. arch/powerpc/kernel/head_32.S +3 −3
  2028. arch/powerpc/kernel/head_64.S +4 −4
  2029. arch/powerpc/kernel/head_8xx.S +71 −38
  2030. arch/powerpc/kernel/idle_book3s.S +114 −16
  2031. arch/powerpc/kernel/io-workarounds.c +5 −4
  2032. arch/powerpc/kernel/iommu.c +3 −4
  2033. arch/powerpc/kernel/irq.c +40 −25
  2034. arch/powerpc/kernel/isa-bridge.c +16 −16
  2035. arch/powerpc/kernel/kgdb.c +2 −2
  2036. arch/powerpc/kernel/kvm.c +0 −7
  2037. arch/powerpc/kernel/l2cr_6xx.S +2 −2
  2038. arch/powerpc/kernel/legacy_serial.c +6 −6
  2039. arch/powerpc/kernel/mce.c +33 −0
  2040. arch/powerpc/kernel/of_platform.c +1 −1
  2041. arch/powerpc/kernel/optprobes.c +3 −1
  2042. arch/powerpc/kernel/optprobes_head.S +0 −8
  2043. arch/powerpc/kernel/paca.c +12 −3
  2044. arch/powerpc/kernel/pci-common.c +7 −8
  2045. arch/powerpc/kernel/pci_32.c +2 −2
  2046. arch/powerpc/kernel/pci_64.c +2 −2
  2047. arch/powerpc/kernel/pci_dn.c +7 −15
  2048. arch/powerpc/kernel/pci_of_scan.c +12 −12
  2049. arch/powerpc/kernel/process.c +54 −50
  2050. arch/powerpc/kernel/prom_init.c +33 −1
  2051. arch/powerpc/kernel/ptrace.c +13 −31
  2052. arch/powerpc/kernel/reloc_64.S +3 −3
  2053. arch/powerpc/kernel/rtas.c +2 −2
  2054. arch/powerpc/kernel/rtas_pci.c +4 −29
  2055. arch/powerpc/kernel/setup-common.c +2 −36
  2056. arch/powerpc/kernel/setup_32.c +6 −1
  2057. arch/powerpc/kernel/setup_64.c +36 −3
  2058. arch/powerpc/kernel/signal_32.c +9 −11
  2059. arch/powerpc/kernel/smp.c +149 −85
  2060. arch/powerpc/kernel/swsusp_asm64.S +1 −1
  2061. arch/powerpc/kernel/systbl.S +7 −7
  2062. arch/powerpc/kernel/traps.c +102 −215
  2063. arch/powerpc/kernel/uprobes.c +9 −0
  2064. arch/powerpc/kernel/vdso32/gettimeofday.S +3 −9
  2065. arch/powerpc/kernel/vmlinux.lds.S +1 −1
  2066. arch/powerpc/kernel/watchdog.c +39 −13
  2067. arch/powerpc/kvm/book3s_64_mmu_hv.c +4 −2
  2068. arch/powerpc/kvm/book3s_64_mmu_radix.c +16 −16
  2069. arch/powerpc/kvm/book3s_64_vio.c +34 −23
  2070. arch/powerpc/kvm/book3s_64_vio_hv.c +11 −1
  2071. arch/powerpc/kvm/book3s_hv.c +30 −3
  2072. arch/powerpc/kvm/book3s_hv_rm_mmu.c +10 −10
  2073. arch/powerpc/kvm/book3s_hv_rm_xive.c +0 −1
  2074. arch/powerpc/kvm/book3s_hv_rmhandlers.S +30 −3
  2075. arch/powerpc/kvm/book3s_xive.c +0 −1
  2076. arch/powerpc/kvm/book3s_xive_template.c +68 −5
  2077. arch/powerpc/kvm/e500.c +6 −2
  2078. arch/powerpc/kvm/e500_mmu_host.c +2 −1
  2079. arch/powerpc/kvm/e500mc.c +3 −1
  2080. arch/powerpc/kvm/powerpc.c +5 −0
  2081. arch/powerpc/lib/Makefile +2 −1
  2082. arch/powerpc/lib/copy_32.S +34 −10
  2083. arch/powerpc/lib/copypage_power7.S +7 −7
  2084. arch/powerpc/lib/copyuser_power7.S +33 −33
  2085. arch/powerpc/lib/ldstfp.S +85 −214
  2086. arch/powerpc/lib/mem_64.S +18 −1
  2087. arch/powerpc/lib/memcpy_power7.S +33 −33
  2088. arch/powerpc/lib/quad.S +62 −0
  2089. arch/powerpc/lib/sstep.c +1647 −590
  2090. arch/powerpc/lib/string_64.S +1 −1
  2091. arch/powerpc/mm/8xx_mmu.c +22 −7
  2092. arch/powerpc/mm/Makefile +1 −3
  2093. arch/powerpc/mm/dump_hashpagetable.c +1 −1
  2094. arch/powerpc/mm/dump_linuxpagetables.c +1 −1
  2095. arch/powerpc/mm/fault.c +294 −268
  2096. arch/powerpc/mm/hash_low_32.S +1 −1
  2097. arch/powerpc/mm/hash_utils_64.c +8 −8
  2098. arch/powerpc/mm/hugetlbpage.c +38 −181
  2099. arch/powerpc/mm/icswx.c +0 −292
  2100. arch/powerpc/mm/icswx.h +0 −68
  2101. arch/powerpc/mm/icswx_pid.c +0 −87
  2102. arch/powerpc/mm/init_32.c +6 −2
  2103. arch/powerpc/mm/init_64.c +3 −3
  2104. arch/powerpc/mm/mem.c +1 −1
  2105. arch/powerpc/mm/mmu_context.c +99 −0
  2106. arch/powerpc/mm/mmu_context_book3s64.c +2 −18
  2107. arch/powerpc/mm/mmu_decl.h +5 −5
  2108. arch/powerpc/mm/pgtable-book3s64.c +23 −1
  2109. arch/powerpc/mm/pgtable-hash64.c +5 −7
  2110. arch/powerpc/mm/pgtable-radix.c +25 −8
  2111. arch/powerpc/mm/pgtable_32.c +42 −24
  2112. arch/powerpc/mm/pgtable_64.c +2 −0
  2113. arch/powerpc/mm/slb_low.S +18 −5
  2114. arch/powerpc/mm/tlb-radix.c +66 −42
  2115. arch/powerpc/mm/tlb_hash64.c +6 −7
  2116. arch/powerpc/mm/tlb_nohash_low.S +1 −1
  2117. arch/powerpc/net/bpf_jit.h +1 −0
  2118. arch/powerpc/net/bpf_jit_comp64.c +21 −5
  2119. arch/powerpc/perf/Makefile +1 −0
  2120. arch/powerpc/perf/callchain.c +2 −1
  2121. arch/powerpc/perf/core-book3s.c +7 −1
  2122. arch/powerpc/perf/imc-pmu.c +1306 −0
  2123. arch/powerpc/perf/isa207-common.c +28 −3
  2124. arch/powerpc/perf/isa207-common.h +3 −2
  2125. arch/powerpc/perf/power8-pmu.c +5 −28
  2126. arch/powerpc/perf/power9-events-list.h +8 −1
  2127. arch/powerpc/perf/power9-pmu.c +13 −10
  2128. arch/powerpc/platforms/44x/Makefile +2 −2
  2129. arch/powerpc/platforms/44x/machine_check.c +89 −0
  2130. arch/powerpc/platforms/4xx/Makefile +8 −0
  2131. arch/powerpc/platforms/4xx/cpm.c +5 −5
  2132. arch/powerpc/platforms/4xx/gpio.c +1 −2
  2133. arch/powerpc/platforms/4xx/hsta_msi.c +0 −0
  2134. arch/powerpc/platforms/4xx/machine_check.c +26 −0
  2135. arch/powerpc/platforms/4xx/msi.c +1 −2
  2136. arch/powerpc/platforms/4xx/ocm.c +0 −0
  2137. arch/powerpc/platforms/4xx/pci.c +53 −65
  2138. arch/powerpc/platforms/4xx/pci.h +0 −0
  2139. arch/powerpc/platforms/4xx/soc.c +2 −3
  2140. arch/powerpc/platforms/4xx/uic.c +7 −7
  2141. arch/powerpc/platforms/512x/clock-commonclk.c +2 −2
  2142. arch/powerpc/platforms/512x/mpc512x_shared.c +6 −6
  2143. arch/powerpc/platforms/52xx/efika.c +4 −4
  2144. arch/powerpc/platforms/52xx/media5200.c +1 −1
  2145. arch/powerpc/platforms/52xx/mpc52xx_gpt.c +2 −2
  2146. arch/powerpc/platforms/52xx/mpc52xx_pci.c +4 −4
  2147. arch/powerpc/platforms/83xx/mcu_mpc8349emitx.c +2 −1
  2148. arch/powerpc/platforms/83xx/mpc832x_rdb.c +1 −1
  2149. arch/powerpc/platforms/83xx/suspend.c +2 −2
  2150. arch/powerpc/platforms/85xx/p1022_ds.c +4 −4
  2151. arch/powerpc/platforms/85xx/xes_mpc85xx.c +2 −2
  2152. arch/powerpc/platforms/8xx/Kconfig +1 −2
  2153. arch/powerpc/platforms/8xx/Makefile +1 −1
  2154. arch/powerpc/platforms/8xx/m8xx_setup.c +1 −1
  2155. arch/powerpc/platforms/8xx/machine_check.c +37 −0
  2156. arch/powerpc/platforms/8xx/pic.c +1 −1
  2157. arch/powerpc/platforms/8xx/pic.h +0 −0
  2158. arch/powerpc/platforms/Kconfig.cputype +1 −44
  2159. arch/powerpc/platforms/Makefile +1 −0
  2160. arch/powerpc/platforms/amigaone/setup.c +3 −3
  2161. arch/powerpc/platforms/cell/axon_msi.c +18 −18
  2162. arch/powerpc/platforms/cell/interrupt.c +2 −2
  2163. arch/powerpc/platforms/cell/iommu.c +12 −12
  2164. arch/powerpc/platforms/cell/ras.c +2 −2
  2165. arch/powerpc/platforms/cell/spider-pci.c +2 −2
  2166. arch/powerpc/platforms/cell/spider-pic.c +2 −2
  2167. arch/powerpc/platforms/cell/spu_manage.c +13 −13
  2168. arch/powerpc/platforms/cell/spufs/file.c +1 −1
  2169. arch/powerpc/platforms/chrp/pci.c +9 −9
  2170. arch/powerpc/platforms/chrp/pegasos_eth.c +1 −1
  2171. arch/powerpc/platforms/embedded6xx/linkstation.c +3 −3
  2172. arch/powerpc/platforms/embedded6xx/mvme5100.c +1 −1
  2173. arch/powerpc/platforms/embedded6xx/storcenter.c +1 −1
  2174. arch/powerpc/platforms/maple/pci.c +5 −5
  2175. arch/powerpc/platforms/pasemi/pci.c +1 −1
  2176. arch/powerpc/platforms/powermac/feature.c +7 −7
  2177. arch/powerpc/platforms/powermac/low_i2c.c +25 −25
  2178. arch/powerpc/platforms/powermac/pci.c +3 −3
  2179. arch/powerpc/platforms/powermac/pfunc_base.c +12 −12
  2180. arch/powerpc/platforms/powermac/pfunc_core.c +3 −3
  2181. arch/powerpc/platforms/powermac/pic.c +4 −4
  2182. arch/powerpc/platforms/powermac/setup.c +1 −1
  2183. arch/powerpc/platforms/powernv/Kconfig +22 −0
  2184. arch/powerpc/platforms/powernv/Makefile +4 −1
  2185. arch/powerpc/platforms/powernv/copy-paste.h +46 −0
  2186. arch/powerpc/platforms/powernv/eeh-powernv.c +9 −20
  2187. arch/powerpc/platforms/powernv/idle.c +77 −4
  2188. arch/powerpc/platforms/powernv/memtrace.c +282 −0
  2189. arch/powerpc/platforms/powernv/npu-dma.c +6 −16
  2190. arch/powerpc/platforms/powernv/opal-async.c +2 −2
  2191. arch/powerpc/platforms/powernv/opal-flash.c +1 −1
  2192. arch/powerpc/platforms/powernv/opal-hmi.c +3 −19
  2193. arch/powerpc/platforms/powernv/opal-imc.c +226 −0
  2194. arch/powerpc/platforms/powernv/opal-powercap.c +244 −0
  2195. arch/powerpc/platforms/powernv/opal-prd.c +3 −10
  2196. arch/powerpc/platforms/powernv/opal-psr.c +175 −0
  2197. arch/powerpc/platforms/powernv/opal-sensor-groups.c +212 −0
  2198. arch/powerpc/platforms/powernv/opal-wrappers.S +10 −1
  2199. arch/powerpc/platforms/powernv/opal-xscom.c +4 −4
  2200. arch/powerpc/platforms/powernv/opal.c +103 −49
  2201. arch/powerpc/platforms/powernv/pci-ioda.c +8 −10
  2202. arch/powerpc/platforms/powernv/pci.c +75 −0
  2203. arch/powerpc/platforms/powernv/pci.h +5 −0
  2204. arch/powerpc/platforms/powernv/powernv.h +2 −0
  2205. arch/powerpc/platforms/powernv/rng.c +42 −3
  2206. arch/powerpc/platforms/powernv/smp.c +2 −9
  2207. arch/powerpc/platforms/powernv/vas-window.c +1134 −0
  2208. arch/powerpc/platforms/powernv/vas.c +151 −0
  2209. arch/powerpc/platforms/powernv/vas.h +467 −0
  2210. arch/powerpc/platforms/ps3/repository.c +5 −17
  2211. arch/powerpc/platforms/ps3/setup.c +0 −15
  2212. arch/powerpc/platforms/pseries/Kconfig +1 −0
  2213. arch/powerpc/platforms/pseries/dlpar.c +3 −7
  2214. arch/powerpc/platforms/pseries/eeh_pseries.c +1 −3
  2215. arch/powerpc/platforms/pseries/event_sources.c +3 −3
  2216. arch/powerpc/platforms/pseries/hotplug-cpu.c +17 −6
  2217. arch/powerpc/platforms/pseries/hotplug-memory.c +36 −21
  2218. arch/powerpc/platforms/pseries/hvCall.S +1 −1
  2219. arch/powerpc/platforms/pseries/ibmebus.c +2 −3
  2220. arch/powerpc/platforms/pseries/iommu.c +29 −29
  2221. arch/powerpc/platforms/pseries/kexec.c +5 −1
  2222. arch/powerpc/platforms/pseries/mobility.c +4 −2
  2223. arch/powerpc/platforms/pseries/msi.c +8 −15
  2224. arch/powerpc/platforms/pseries/pci_dlpar.c +1 −1
  2225. arch/powerpc/platforms/pseries/pseries.h +1 −1
  2226. arch/powerpc/platforms/pseries/pseries_energy.c +3 −4
  2227. arch/powerpc/platforms/pseries/ras.c +15 −0
  2228. arch/powerpc/platforms/pseries/reconfig.c +4 −11
  2229. arch/powerpc/platforms/pseries/setup.c +6 −3
  2230. arch/powerpc/platforms/pseries/smp.c +25 −2
  2231. arch/powerpc/platforms/pseries/suspend.c +1 −1
  2232. arch/powerpc/platforms/pseries/vio.c +5 −5
  2233. arch/powerpc/purgatory/trampoline.S +3 −3
  2234. arch/powerpc/sysdev/Makefile +1 −11
  2235. arch/powerpc/sysdev/axonram.c +21 −27
  2236. arch/powerpc/sysdev/dcr.c +2 −2
  2237. arch/powerpc/sysdev/fsl_85xx_cache_sram.c +6 −6
  2238. arch/powerpc/sysdev/fsl_gtm.c +7 −7
  2239. arch/powerpc/sysdev/fsl_msi.c +8 −8
  2240. arch/powerpc/sysdev/fsl_pci.c +23 −24
  2241. arch/powerpc/sysdev/fsl_rio.c +18 −18
  2242. arch/powerpc/sysdev/fsl_rmu.c +6 −6
  2243. arch/powerpc/sysdev/fsl_soc.c +1 −1
  2244. arch/powerpc/sysdev/fsl_soc.h +1 −1
  2245. arch/powerpc/sysdev/ipic.c +1 −0
  2246. arch/powerpc/sysdev/mpic.c +2 −2
  2247. arch/powerpc/sysdev/mpic_msgr.c +1 −1
  2248. arch/powerpc/sysdev/mpic_msi.c +1 −1
  2249. arch/powerpc/sysdev/mpic_timer.c +7 −12
  2250. arch/powerpc/sysdev/msi_bitmap.c +2 −2
  2251. arch/powerpc/sysdev/mv64x60_dev.c +10 −10
  2252. arch/powerpc/sysdev/mv64x60_pci.c +3 −3
  2253. arch/powerpc/sysdev/of_rtc.c +6 −6
  2254. arch/powerpc/sysdev/scom.c +3 −2
  2255. arch/powerpc/sysdev/simple_gpio.c +1 −2
  2256. arch/powerpc/sysdev/tsi108_pci.c +2 −2
  2257. arch/powerpc/sysdev/xive/Kconfig +5 −0
  2258. arch/powerpc/sysdev/xive/Makefile +1 −0
  2259. arch/powerpc/sysdev/xive/common.c +71 −19
  2260. arch/powerpc/sysdev/xive/native.c +11 −15
  2261. arch/powerpc/sysdev/xive/spapr.c +662 −0
  2262. arch/powerpc/sysdev/xive/xive-internal.h +7 −0
  2263. arch/powerpc/xmon/Makefile +4 −0
  2264. arch/powerpc/xmon/xmon.c +66 −20
  2265. arch/s390/Kconfig +18 −0
  2266. arch/s390/Makefile +4 −2
  2267. arch/s390/include/asm/Kbuild +1 −0
  2268. arch/s390/include/asm/ap.h +126 −0
  2269. arch/s390/include/asm/compat.h +3 −2
  2270. arch/s390/include/asm/cpcmd.h +3 −4
  2271. arch/s390/include/asm/ebcdic.h +1 −3
  2272. arch/s390/include/asm/elf.h +1 −1
  2273. arch/s390/include/asm/futex.h +5 −18
  2274. arch/s390/include/asm/ipl.h +1 −1
  2275. arch/s390/include/asm/kvm_host.h +5 −1
  2276. arch/s390/include/asm/lowcore.h +24 −24
  2277. arch/s390/include/asm/mman.h +0 −11
  2278. arch/s390/include/asm/mmu.h +2 −5
  2279. arch/s390/include/asm/mmu_context.h +13 −35
  2280. arch/s390/include/asm/nmi.h +1 −1
  2281. arch/s390/include/asm/page-states.h +2 −1
  2282. arch/s390/include/asm/page.h +27 −10
  2283. arch/s390/include/asm/pci.h +7 −0
  2284. arch/s390/include/asm/pgalloc.h +12 −6
  2285. arch/s390/include/asm/pgtable.h +123 −78
  2286. arch/s390/include/asm/qdio.h +1 −1
  2287. arch/s390/include/asm/setup.h +14 −3
  2288. arch/s390/include/asm/spinlock.h +5 −11
  2289. arch/s390/include/asm/timex.h +35 −5
  2290. arch/s390/include/asm/tlb.h +14 −9
  2291. arch/s390/include/asm/tlbflush.h +14 −23
  2292. arch/s390/include/asm/topology.h +0 −6
  2293. arch/s390/include/asm/types.h +0 −11
  2294. arch/s390/include/asm/unaligned.h +0 −13
  2295. arch/s390/include/uapi/asm/Kbuild +1 −0
  2296. arch/s390/include/uapi/asm/dasd.h +5 −1
  2297. arch/s390/include/uapi/asm/kvm.h +6 −0
  2298. arch/s390/include/uapi/asm/socket.h +2 −0
  2299. arch/s390/include/uapi/asm/swab.h +0 −89
  2300. arch/s390/include/uapi/asm/vmcp.h +7 −13
  2301. arch/s390/kernel/asm-offsets.c +1 −0
  2302. arch/s390/kernel/compat_signal.c +15 −17
  2303. arch/s390/kernel/cpcmd.c +4 −9
  2304. arch/s390/kernel/debug.c +5 −4
  2305. arch/s390/kernel/dumpstack.c +1 −1
  2306. arch/s390/kernel/early.c +12 −17
  2307. arch/s390/kernel/head.S +2 −1
  2308. arch/s390/kernel/head64.S +2 −2
  2309. arch/s390/kernel/irq.c +2 −1
  2310. arch/s390/kernel/perf_cpum_sf.c +6 −3
  2311. arch/s390/kernel/relocate_kernel.S +3 −2
  2312. arch/s390/kernel/setup.c +9 −5
  2313. arch/s390/kernel/smp.c +1 −0
  2314. arch/s390/kernel/suspend.c +19 −5
  2315. arch/s390/kernel/time.c +46 −21
  2316. arch/s390/kernel/topology.c +135 −13
  2317. arch/s390/kernel/vdso.c +2 −0
  2318. arch/s390/kernel/vdso32/vdso32.lds.S +3 −1
  2319. arch/s390/kernel/vdso64/vdso64.lds.S +3 −1
  2320. arch/s390/kvm/diag.c +5 −5
  2321. arch/s390/kvm/gaccess.c +17 −18
  2322. arch/s390/kvm/guestdbg.c +1 −1
  2323. arch/s390/kvm/interrupt.c +4 −2
  2324. arch/s390/kvm/kvm-s390.c +116 −2
  2325. arch/s390/kvm/kvm-s390.h +2 −0
  2326. arch/s390/kvm/priv.c +9 −5
  2327. arch/s390/kvm/sigp.c +17 −19
  2328. arch/s390/kvm/sthyi.c +4 −9
  2329. arch/s390/kvm/vsie.c +12 −6
  2330. arch/s390/lib/delay.c +1 −1
  2331. arch/s390/lib/spinlock.c +51 −36
  2332. arch/s390/lib/uaccess.c +26 −12
  2333. arch/s390/mm/fault.c +5 −5
  2334. arch/s390/mm/gmap.c +98 −73
  2335. arch/s390/mm/gup.c +3 −4
  2336. arch/s390/mm/init.c +57 −3
  2337. arch/s390/mm/mmap.c +4 −2
  2338. arch/s390/mm/page-states.c +177 −15
  2339. arch/s390/mm/pageattr.c +3 −2
  2340. arch/s390/mm/pgalloc.c +15 −13
  2341. arch/s390/mm/pgtable.c +126 −34
  2342. arch/s390/mm/vmem.c +12 −35
  2343. arch/s390/net/bpf_jit_comp.c +26 −1
  2344. arch/s390/pci/pci.c +8 −5
  2345. arch/s390/pci/pci_clp.c +9 −1
  2346. arch/s390/tools/gen_facilities.c +5 −1
  2347. arch/sh/boards/mach-migor/setup.c +1 −1
  2348. arch/sh/configs/ap325rxa_defconfig +0 −10
  2349. arch/sh/configs/apsh4a3a_defconfig +0 −9
  2350. arch/sh/configs/apsh4ad0a_defconfig +0 −6
  2351. arch/sh/configs/cayman_defconfig +0 −4
  2352. arch/sh/configs/dreamcast_defconfig +0 −6
  2353. arch/sh/configs/ecovec24-romimage_defconfig +0 −7
  2354. arch/sh/configs/ecovec24_defconfig +0 −9
  2355. arch/sh/configs/edosk7705_defconfig +0 −2
  2356. arch/sh/configs/edosk7760_defconfig +0 −11
  2357. arch/sh/configs/espt_defconfig +0 −10
  2358. arch/sh/configs/hp6xx_defconfig +0 −4
  2359. arch/sh/configs/kfr2r09-romimage_defconfig +0 −5
  2360. arch/sh/configs/kfr2r09_defconfig +0 −7
  2361. arch/sh/configs/landisk_defconfig +0 −4
  2362. arch/sh/configs/lboxre2_defconfig +0 −3
  2363. arch/sh/configs/magicpanelr2_defconfig +0 −9
  2364. arch/sh/configs/microdev_defconfig +0 −3
  2365. arch/sh/configs/migor_defconfig +0 −8
  2366. arch/sh/configs/polaris_defconfig +0 −9
  2367. arch/sh/configs/r7780mp_defconfig +0 −4
  2368. arch/sh/configs/r7785rp_defconfig +0 −3
  2369. arch/sh/configs/rsk7201_defconfig +0 −8
  2370. arch/sh/configs/rsk7203_defconfig +0 −10
  2371. arch/sh/configs/rsk7264_defconfig +0 −3
  2372. arch/sh/configs/rsk7269_defconfig +0 −4
  2373. arch/sh/configs/rts7751r2d1_defconfig +0 −5
  2374. arch/sh/configs/rts7751r2dplus_defconfig +0 −8
  2375. arch/sh/configs/sdk7780_defconfig +0 −9
  2376. arch/sh/configs/sdk7786_defconfig +0 −9
  2377. arch/sh/configs/se7206_defconfig +0 −8
  2378. arch/sh/configs/se7343_defconfig +0 −9
  2379. arch/sh/configs/se7619_defconfig +0 −5
  2380. arch/sh/configs/se7705_defconfig +0 −5
  2381. arch/sh/configs/se7712_defconfig +0 −7
  2382. arch/sh/configs/se7721_defconfig +0 −6
  2383. arch/sh/configs/se7722_defconfig +0 −3
  2384. arch/sh/configs/se7724_defconfig +0 −9
  2385. arch/sh/configs/se7750_defconfig +0 −5
  2386. arch/sh/configs/se7751_defconfig +0 −6
  2387. arch/sh/configs/se7780_defconfig +0 −7
  2388. arch/sh/configs/secureedge5410_defconfig +0 −9
  2389. arch/sh/configs/sh03_defconfig +0 −4
  2390. arch/sh/configs/sh2007_defconfig +0 −8
  2391. arch/sh/configs/sh7710voipgw_defconfig +0 −5
  2392. arch/sh/configs/sh7724_generic_defconfig +0 −3
  2393. arch/sh/configs/sh7757lcr_defconfig +0 −4
  2394. arch/sh/configs/sh7763rdp_defconfig +0 −9
  2395. arch/sh/configs/sh7770_generic_defconfig +0 −3
  2396. arch/sh/configs/sh7785lcr_32bit_defconfig +0 −10
  2397. arch/sh/configs/sh7785lcr_defconfig +0 −9
  2398. arch/sh/configs/shmin_defconfig +0 −4
  2399. arch/sh/configs/shx3_defconfig +0 −6
  2400. arch/sh/configs/titan_defconfig +0 −8
  2401. arch/sh/configs/ul2_defconfig +0 −9
  2402. arch/sh/configs/urquell_defconfig +0 −9
  2403. arch/sh/drivers/pci/fixups-cayman.c +1 −1
  2404. arch/sh/drivers/pci/fixups-dreamcast.c +2 −3
  2405. arch/sh/drivers/pci/fixups-r7780rp.c +1 −1
  2406. arch/sh/drivers/pci/fixups-rts7751r2d.c +3 −3
  2407. arch/sh/drivers/pci/fixups-sdk7780.c +2 −2
  2408. arch/sh/drivers/pci/fixups-se7751.c +1 −1
  2409. arch/sh/drivers/pci/fixups-sh03.c +1 −1
  2410. arch/sh/drivers/pci/fixups-snapgear.c +1 −1
  2411. arch/sh/drivers/pci/fixups-titan.c +2 −2
  2412. arch/sh/drivers/pci/pci.c +25 −24
  2413. arch/sh/drivers/pci/pcie-sh7786.c +1 −1
  2414. arch/sh/include/asm/futex.h +4 −22
  2415. arch/sh/include/asm/processor_32.h +0 −4
  2416. arch/sh/include/asm/processor_64.h +0 −4
  2417. arch/sh/include/asm/spinlock-cas.h +0 −5
  2418. arch/sh/include/asm/spinlock-llsc.h +0 −5
  2419. arch/sh/include/asm/tlb.h +5 −3
  2420. arch/sparc/Kconfig +3 −0
  2421. arch/sparc/configs/sparc64_defconfig +1 −0
  2422. arch/sparc/crypto/aes_glue.c +1 −2
  2423. arch/sparc/include/asm/atomic_32.h +2 −0
  2424. arch/sparc/include/asm/futex_64.h +5 −21
  2425. arch/sparc/include/asm/hugetlb.h +7 −0
  2426. arch/sparc/include/asm/hypervisor.h +18 −0
  2427. arch/sparc/include/asm/page_32.h +2 −0
  2428. arch/sparc/include/asm/page_64.h +2 −1
  2429. arch/sparc/include/asm/pgtable_64.h +18 −2
  2430. arch/sparc/include/asm/smp_64.h +5 −0
  2431. arch/sparc/include/asm/spinlock_32.h +0 −5
  2432. arch/sparc/include/asm/spitfire.h +16 −0
  2433. arch/sparc/include/asm/trap_block.h +2 −0
  2434. arch/sparc/include/asm/tsb.h +36 −0
  2435. arch/sparc/include/asm/vga.h +25 −0
  2436. arch/sparc/include/asm/vio.h +9 −0
  2437. arch/sparc/include/uapi/asm/siginfo.h +8 −1
  2438. arch/sparc/include/uapi/asm/socket.h +2 −0
  2439. arch/sparc/kernel/cpu.c +6 −0
  2440. arch/sparc/kernel/cpumap.c +1 −0
  2441. arch/sparc/kernel/etrap_64.S +22 −4
  2442. arch/sparc/kernel/head_64.S +28 −10
  2443. arch/sparc/kernel/hvapi.c +1 −1
  2444. arch/sparc/kernel/hvcalls.S +11 −0
  2445. arch/sparc/kernel/ldc.c +2 −0
  2446. arch/sparc/kernel/leon_pci.c +18 −12
  2447. arch/sparc/kernel/leon_pci_grpci1.c +1 −1
  2448. arch/sparc/kernel/leon_pci_grpci2.c +1 −1
  2449. arch/sparc/kernel/pci.c +0 −10
  2450. arch/sparc/kernel/pci_sun4v.c +0 −2
  2451. arch/sparc/kernel/pcic.c +1 −7
  2452. arch/sparc/kernel/process_64.c +6 −1
  2453. arch/sparc/kernel/rtrap_64.S +11 −2
  2454. arch/sparc/kernel/setup_64.c +19 −2
  2455. arch/sparc/kernel/signal32.c +8 −8
  2456. arch/sparc/kernel/smp_64.c +77 −3
  2457. arch/sparc/kernel/traps_32.c +1 −1
  2458. arch/sparc/kernel/traps_64.c +52 −1
  2459. arch/sparc/kernel/tsb.S +1 −1
  2460. arch/sparc/kernel/vio.c +1 −0
  2461. arch/sparc/kernel/viohs.c +9 −3
  2462. arch/sparc/kernel/vmlinux.lds.S +10 −0
  2463. arch/sparc/lib/M7copy_from_user.S +40 −0
  2464. arch/sparc/lib/M7copy_to_user.S +51 −0
  2465. arch/sparc/lib/M7memcpy.S +923 −0
  2466. arch/sparc/lib/M7memset.S +352 −0
  2467. arch/sparc/lib/M7patch.S +51 −0
  2468. arch/sparc/lib/Makefile +5 −0
  2469. arch/sparc/lib/Memcpy_utils.S +345 −0
  2470. arch/sparc/lib/NG4memcpy.S +64 −213
  2471. arch/sparc/lib/U3memcpy.S +21 −11
  2472. arch/sparc/lib/multi3.S +12 −12
  2473. arch/sparc/mm/gup.c +44 −1
  2474. arch/sparc/mm/hugetlbpage.c +60 −42
  2475. arch/sparc/mm/init_64.c +60 −8
  2476. arch/sparc/net/bpf_jit_comp_64.c +34 −0
  2477. arch/tile/configs/tilegx_defconfig +0 −1
  2478. arch/tile/configs/tilepro_defconfig +0 −2
  2479. arch/tile/include/asm/atomic_32.h +2 −0
  2480. arch/tile/include/asm/dma-mapping.h +2 −2
  2481. arch/tile/include/asm/futex.h +5 −35
  2482. arch/tile/include/asm/spinlock_32.h +0 −2
  2483. arch/tile/include/asm/spinlock_64.h +0 −2
  2484. arch/tile/include/uapi/asm/siginfo.h +2 −2
  2485. arch/tile/kernel/compat_signal.c +8 −10
  2486. arch/tile/kernel/pci.c +16 −23
  2487. arch/tile/kernel/pci_gx.c +16 −19
  2488. arch/tile/kernel/setup.c +2 −2
  2489. arch/tile/kernel/traps.c +1 −1
  2490. arch/tile/lib/spinlock_32.c +0 −23
  2491. arch/tile/lib/spinlock_64.c +0 −22
  2492. arch/um/Kconfig.um +1 −0
  2493. arch/um/Makefile +1 −1
  2494. arch/um/configs/i386_defconfig +0 −1
  2495. arch/um/configs/x86_64_defconfig +0 −1
  2496. arch/um/drivers/mconsole_kern.c +1 −6
  2497. arch/um/include/asm/processor-generic.h +0 −5
  2498. arch/um/include/asm/thread_info.h +3 −0
  2499. arch/um/include/asm/tlb.h +10 −3
  2500. arch/um/include/asm/unwind.h +8 −0
  2501. arch/um/include/shared/os.h +1 −1
  2502. arch/um/kernel/gmon_syms.c +7 −0
  2503. arch/um/kernel/process.c +2 −2
  2504. arch/um/os-Linux/drivers/tuntap_user.c +1 −1
  2505. arch/um/os-Linux/skas/process.c +8 −9
  2506. arch/um/os-Linux/start_up.c +3 −3
  2507. arch/unicore32/kernel/pci.c +31 −4
  2508. arch/x86/Kbuild +1 −4
  2509. arch/x86/Kconfig +72 −13
  2510. arch/x86/Kconfig.debug +57 −2
  2511. arch/x86/Makefile +8 −9
  2512. arch/x86/boot/compressed/eboot.c +8 −5
  2513. arch/x86/boot/compressed/head_32.S +64 −65
  2514. arch/x86/boot/compressed/head_64.S +53 −59
  2515. arch/x86/boot/compressed/kaslr.c +120 −27
  2516. arch/x86/boot/compressed/misc.c +1 −2
  2517. arch/x86/boot/compressed/pagetable.c +7 −0
  2518. arch/x86/boot/header.S +7 −1
  2519. arch/x86/configs/tiny.config +2 −0
  2520. arch/x86/crypto/aesni-intel_glue.c +2 −2
  2521. arch/x86/crypto/blowfish-x86_64-asm_64.S +26 −22
  2522. arch/x86/crypto/blowfish_glue.c +1 −2
  2523. arch/x86/crypto/camellia-x86_64-asm_64.S +13 −13
  2524. arch/x86/crypto/cast5-avx-x86_64-asm_64.S +30 −17
  2525. arch/x86/crypto/cast5_avx_glue.c +1 −2
  2526. arch/x86/crypto/cast6-avx-x86_64-asm_64.S +34 −16
  2527. arch/x86/crypto/des3_ede-asm_64.S +9 −6
  2528. arch/x86/crypto/des3_ede_glue.c +1 −2
  2529. arch/x86/crypto/sha1_avx2_x86_64_asm.S +37 −34
  2530. arch/x86/crypto/sha1_ssse3_asm.S +5 −6
  2531. arch/x86/crypto/sha1_ssse3_glue.c +1 −1
  2532. arch/x86/crypto/sha256-avx-asm.S +7 −8
  2533. arch/x86/crypto/sha256-avx2-asm.S +7 −15
  2534. arch/x86/crypto/sha256-ssse3-asm.S +7 −8
  2535. arch/x86/crypto/sha512-avx2-asm.S +39 −36
  2536. arch/x86/crypto/twofish-avx-x86_64-asm_64.S +6 −6
  2537. arch/x86/entry/Makefile +0 −1
  2538. arch/x86/entry/calling.h +5 −0
  2539. arch/x86/entry/common.c +3 −0
  2540. arch/x86/entry/entry_32.S +2 −18
  2541. arch/x86/entry/entry_64.S +151 −88
  2542. arch/x86/entry/entry_64_compat.S +5 −7
  2543. arch/x86/entry/vdso/vma.c +1 −1
  2544. arch/x86/events/amd/uncore.c +17 −4
  2545. arch/x86/events/core.c +55 −25
  2546. arch/x86/events/intel/Makefile +1 −1
  2547. arch/x86/events/intel/bts.c +2 −2
  2548. arch/x86/events/intel/core.c +99 −8
  2549. arch/x86/events/intel/cqm.c +0 −1766
  2550. arch/x86/events/intel/ds.c +34 −24
  2551. arch/x86/events/intel/lbr.c +51 −1
  2552. arch/x86/events/intel/p4.c +1 −1
  2553. arch/x86/events/intel/pt.c +3 −2
  2554. arch/x86/events/intel/rapl.c +1 −1
  2555. arch/x86/events/intel/uncore.c +1 −1
  2556. arch/x86/events/intel/uncore_nhmex.c +6 −6
  2557. arch/x86/events/intel/uncore_snb.c +3 −3
  2558. arch/x86/events/intel/uncore_snbep.c +21 −21
  2559. arch/x86/events/perf_event.h +8 −2
  2560. arch/x86/hyperv/Makefile +1 −1
  2561. arch/x86/hyperv/hv_init.c +40 −50
  2562. arch/x86/hyperv/mmu.c +272 −0
  2563. arch/x86/ia32/ia32_aout.c +2 −2
  2564. arch/x86/ia32/ia32_signal.c +1 −1
  2565. arch/x86/include/asm/acpi.h +6 −7
  2566. arch/x86/include/asm/alternative.h +1 −2
  2567. arch/x86/include/asm/asm.h +17 −0
  2568. arch/x86/include/asm/atomic.h +46 −23
  2569. arch/x86/include/asm/atomic64_32.h +57 −24
  2570. arch/x86/include/asm/atomic64_64.h +47 −26
  2571. arch/x86/include/asm/cacheflush.h +0 −2
  2572. arch/x86/include/asm/cmdline.h +2 −0
  2573. arch/x86/include/asm/cmpxchg.h +1 −1
  2574. arch/x86/include/asm/cpufeatures.h +4 −2
  2575. arch/x86/include/asm/desc.h +47 −204
  2576. arch/x86/include/asm/desc_defs.h +66 −56
  2577. arch/x86/include/asm/disabled-features.h +3 −1
  2578. arch/x86/include/asm/dma-mapping.h +3 −2
  2579. arch/x86/include/asm/dmi.h +4 −4
  2580. arch/x86/include/asm/e820/api.h +2 −0
  2581. arch/x86/include/asm/elf.h +12 −11
  2582. arch/x86/include/asm/entry_arch.h +6 −11
  2583. arch/x86/include/asm/fixmap.h +20 −0
  2584. arch/x86/include/asm/fpu/internal.h +3 −3
  2585. arch/x86/include/asm/futex.h +5 −35
  2586. arch/x86/include/asm/hw_irq.h +0 −20
  2587. arch/x86/include/asm/hypervisor.h +10 −0
  2588. arch/x86/include/asm/init.h +1 −0
  2589. arch/x86/include/asm/intel_rdt.h +0 −286
  2590. arch/x86/include/asm/intel_rdt_common.h +0 −27
  2591. arch/x86/include/asm/intel_rdt_sched.h +92 −0
  2592. arch/x86/include/asm/io.h +55 −51
  2593. arch/x86/include/asm/irq.h +0 −4
  2594. arch/x86/include/asm/irq_work.h +8 −0
  2595. arch/x86/include/asm/kexec.h +10 −1
  2596. arch/x86/include/asm/kvm_emulate.h +2 −2
  2597. arch/x86/include/asm/kvm_host.h +18 −30
  2598. arch/x86/include/asm/lguest.h +0 −91
  2599. arch/x86/include/asm/lguest_hcall.h +0 −74
  2600. arch/x86/include/asm/mem_encrypt.h +80 −0
  2601. arch/x86/include/asm/mmu.h +23 −2
  2602. arch/x86/include/asm/mmu_context.h +39 −6
  2603. arch/x86/include/asm/module.h +9 −0
  2604. arch/x86/include/asm/mpspec.h +0 −1
  2605. arch/x86/include/asm/mpx.h +9 −0
  2606. arch/x86/include/asm/mshyperv.h +146 −1
  2607. arch/x86/include/asm/msr-index.h +2 −0
  2608. arch/x86/include/asm/orc_lookup.h +46 −0
  2609. arch/x86/include/asm/orc_types.h +107 −0
  2610. arch/x86/include/asm/page_64.h +4 −0
  2611. arch/x86/include/asm/page_types.h +2 −1
  2612. arch/x86/include/asm/paravirt.h +0 −42
  2613. arch/x86/include/asm/paravirt_types.h +7 −19
  2614. arch/x86/include/asm/pgtable.h +42 −30
  2615. arch/x86/include/asm/pgtable_64.h +11 −3
  2616. arch/x86/include/asm/pgtable_types.h +48 −20
  2617. arch/x86/include/asm/preempt.h +5 −10
  2618. arch/x86/include/asm/processor-flags.h +8 −5
  2619. arch/x86/include/asm/processor.h +22 −9
  2620. arch/x86/include/asm/proto.h +3 −0
  2621. arch/x86/include/asm/ptrace.h +37 −6
  2622. arch/x86/include/asm/realmode.h +12 −0
  2623. arch/x86/include/asm/refcount.h +109 −0
  2624. arch/x86/include/asm/rmwcc.h +24 −13
  2625. arch/x86/include/asm/rwsem.h +2 −2
  2626. arch/x86/include/asm/segment.h +1 −3
  2627. arch/x86/include/asm/set_memory.h +3 −0
  2628. arch/x86/include/asm/setup.h +1 −0
  2629. arch/x86/include/asm/special_insns.h +5 −5
  2630. arch/x86/include/asm/string_32.h +24 −0
  2631. arch/x86/include/asm/string_64.h +36 −0
  2632. arch/x86/include/asm/svm.h +6 −0
  2633. arch/x86/include/asm/thread_info.h +4 −1
  2634. arch/x86/include/asm/tlb.h +14 −0
  2635. arch/x86/include/asm/tlbflush.h +82 −7
  2636. arch/x86/include/asm/topology.h +0 −6
  2637. arch/x86/include/asm/trace/common.h +16 −0
  2638. arch/x86/include/asm/trace/exceptions.h +4 −4
  2639. arch/x86/include/asm/trace/hyperv.h +40 −0
  2640. arch/x86/include/asm/trace/irq_vectors.h +39 −12
  2641. arch/x86/include/asm/traps.h +23 −27
  2642. arch/x86/include/asm/uaccess.h +8 −3
  2643. arch/x86/include/asm/unwind.h +47 −29
  2644. arch/x86/include/asm/unwind_hints.h +105 −0
  2645. arch/x86/include/asm/vga.h +13 −1
  2646. arch/x86/include/asm/vmx.h +17 −5
  2647. arch/x86/include/asm/xen/hypercall.h +6 −5
  2648. arch/x86/include/asm/xen/page.h +0 −5
  2649. arch/x86/include/uapi/asm/bootparam.h +1 −1
  2650. arch/x86/include/uapi/asm/hyperv.h +15 −4
  2651. arch/x86/include/uapi/asm/mman.h +0 −3
  2652. arch/x86/kernel/Makefile +5 −6
  2653. arch/x86/kernel/acpi/boot.c +12 −9
  2654. arch/x86/kernel/alternative.c +16 −6
  2655. arch/x86/kernel/apic/apic.c +20 −60
  2656. arch/x86/kernel/apic/io_apic.c +1 −1
  2657. arch/x86/kernel/apic/vector.c +1 −1
  2658. arch/x86/kernel/apm_32.c +1 −1
  2659. arch/x86/kernel/asm-offsets_32.c +0 −20
  2660. arch/x86/kernel/asm-offsets_64.c +0 −1
  2661. arch/x86/kernel/cpu/Makefile +1 −1
  2662. arch/x86/kernel/cpu/amd.c +54 −12
  2663. arch/x86/kernel/cpu/aperfmperf.c +3 −0
  2664. arch/x86/kernel/cpu/common.c +28 −9
  2665. arch/x86/kernel/cpu/intel_cacheinfo.c +18 −14
  2666. arch/x86/kernel/cpu/intel_rdt.c +314 −61
  2667. arch/x86/kernel/cpu/intel_rdt.h +440 −0
  2668. arch/x86/kernel/cpu/intel_rdt_ctrlmondata.c +61 −6
  2669. arch/x86/kernel/cpu/intel_rdt_monitor.c +499 −0
  2670. arch/x86/kernel/cpu/intel_rdt_rdtgroup.c +925 −206
  2671. arch/x86/kernel/cpu/mcheck/mce.c +43 −0
  2672. arch/x86/kernel/cpu/mcheck/mce_amd.c +4 −21
  2673. arch/x86/kernel/cpu/mcheck/therm_throt.c +4 −18
  2674. arch/x86/kernel/cpu/mcheck/threshold.c +2 −14
  2675. arch/x86/kernel/cpu/microcode/amd.c +4 −1
  2676. arch/x86/kernel/cpu/microcode/core.c +2 −2
  2677. arch/x86/kernel/cpu/microcode/intel.c +14 −13
  2678. arch/x86/kernel/cpu/mshyperv.c +12 −10
  2679. arch/x86/kernel/cpu/mtrr/main.c +15 −3
  2680. arch/x86/kernel/cpu/scattered.c +1 −0
  2681. arch/x86/kernel/dumpstack.c +8 −6
  2682. arch/x86/kernel/dumpstack_32.c +2 −2
  2683. arch/x86/kernel/dumpstack_64.c +2 −2
  2684. arch/x86/kernel/e820.c +23 −3
  2685. arch/x86/kernel/early-quirks.c +3 −2
  2686. arch/x86/kernel/eisa.c +19 −0
  2687. arch/x86/kernel/espfix_64.c +1 −1
  2688. arch/x86/kernel/head32.c +4 −0
  2689. arch/x86/kernel/head64.c +83 −23
  2690. arch/x86/kernel/head_32.S +11 −55
  2691. arch/x86/kernel/head_64.S +28 −12
  2692. arch/x86/kernel/idt.c +371 −0
  2693. arch/x86/kernel/io_delay.c +1 −1
  2694. arch/x86/kernel/irq.c +12 −28
  2695. arch/x86/kernel/irq_work.c +4 −16
  2696. arch/x86/kernel/irqinit.c +1 −101
  2697. arch/x86/kernel/kdebugfs.c +11 −23
  2698. arch/x86/kernel/kprobes/opt.c +6 −3
  2699. arch/x86/kernel/ksysfs.c +16 −16
  2700. arch/x86/kernel/kvm.c +3 −3
  2701. arch/x86/kernel/ldt.c +21 −0
  2702. arch/x86/kernel/machine_kexec_32.c +1 −13
  2703. arch/x86/kernel/machine_kexec_64.c +23 −2
  2704. arch/x86/kernel/module.c +10 −1
  2705. arch/x86/kernel/mpparse.c +75 −33
  2706. arch/x86/kernel/nmi.c +9 −9
  2707. arch/x86/kernel/paravirt.c +0 −8
  2708. arch/x86/kernel/pci-dma.c +7 −4
  2709. arch/x86/kernel/pci-nommu.c +1 −1
  2710. arch/x86/kernel/pci-swiotlb.c +13 −2
  2711. arch/x86/kernel/platform-quirks.c +0 −1
  2712. arch/x86/kernel/process.c +15 −2
  2713. arch/x86/kernel/process_32.c +2 −2
  2714. arch/x86/kernel/process_64.c +136 −108
  2715. arch/x86/kernel/quirks.c +10 −0
  2716. arch/x86/kernel/reboot.c +2 −4
  2717. arch/x86/kernel/relocate_kernel_64.S +14 −0
  2718. arch/x86/kernel/setup.c +20 −3
  2719. arch/x86/kernel/setup_percpu.c +4 −7
  2720. arch/x86/kernel/signal.c +1 −1
  2721. arch/x86/kernel/signal_compat.c +9 −12
  2722. arch/x86/kernel/smp.c +21 −60
  2723. arch/x86/kernel/smpboot.c +30 −23
  2724. arch/x86/kernel/step.c +1 −1
  2725. arch/x86/kernel/sys_x86_64.c +26 −4
  2726. arch/x86/kernel/tls.c +1 −1
  2727. arch/x86/kernel/tracepoint.c +19 −38
  2728. arch/x86/kernel/traps.c +3 −104
  2729. arch/x86/kernel/unwind_frame.c +16 −25
  2730. arch/x86/kernel/unwind_guess.c +5 −0
  2731. arch/x86/kernel/unwind_orc.c +582 −0
  2732. arch/x86/kernel/vmlinux.lds.S +3 −0
  2733. arch/x86/kvm/Kconfig +0 −1
  2734. arch/x86/kvm/cpuid.c +25 −11
  2735. arch/x86/kvm/cpuid.h +63 −122
  2736. arch/x86/kvm/emulate.c +30 −17
  2737. arch/x86/kvm/hyperv.c +7 −1
  2738. arch/x86/kvm/kvm_cache_regs.h +1 −6
  2739. arch/x86/kvm/lapic.c +4 −2
  2740. arch/x86/kvm/lapic.h +3 −0
  2741. arch/x86/kvm/mmu.c +207 −101
  2742. arch/x86/kvm/mmu.h +6 −19
  2743. arch/x86/kvm/mmu_audit.c +2 −2
  2744. arch/x86/kvm/mtrr.c +1 −1
  2745. arch/x86/kvm/paging_tmpl.h +3 −3
  2746. arch/x86/kvm/svm.c +125 −96
  2747. arch/x86/kvm/trace.h +7 −4
  2748. arch/x86/kvm/vmx.c +581 −274
  2749. arch/x86/kvm/x86.c +184 −111
  2750. arch/x86/kvm/x86.h +51 −3
  2751. arch/x86/lguest/Kconfig +0 −14
  2752. arch/x86/lguest/Makefile +0 −2
  2753. arch/x86/lguest/boot.c +0 −1558
  2754. arch/x86/lguest/head_32.S +0 −192
  2755. arch/x86/lib/cmdline.c +105 −0
  2756. arch/x86/math-emu/div_Xsig.S +1 −0
  2757. arch/x86/math-emu/div_small.S +1 −1
  2758. arch/x86/math-emu/fpu_entry.c +5 −6
  2759. arch/x86/math-emu/fpu_system.h +37 −11
  2760. arch/x86/math-emu/get_address.c +9 −8
  2761. arch/x86/math-emu/mul_Xsig.S +3 −1
  2762. arch/x86/math-emu/polynom_Xsig.S +1 −0
  2763. arch/x86/math-emu/reg_norm.S +2 −0
  2764. arch/x86/math-emu/reg_round.S +2 −0
  2765. arch/x86/math-emu/reg_u_add.S +1 −0
  2766. arch/x86/math-emu/reg_u_div.S +2 −0
  2767. arch/x86/math-emu/reg_u_mul.S +1 −0
  2768. arch/x86/math-emu/reg_u_sub.S +1 −0
  2769. arch/x86/math-emu/round_Xsig.S +2 −2
  2770. arch/x86/math-emu/shr_Xsig.S +1 −0
  2771. arch/x86/math-emu/wm_shrx.S +2 −0
  2772. arch/x86/math-emu/wm_sqrt.S +1 −0
  2773. arch/x86/mm/Makefile +2 −0
  2774. arch/x86/mm/dump_pagetables.c +56 −37
  2775. arch/x86/mm/extable.c +43 −1
  2776. arch/x86/mm/fault.c +29 −49
  2777. arch/x86/mm/hugetlbpage.c +23 −4
  2778. arch/x86/mm/ident_map.c +8 −4
  2779. arch/x86/mm/init.c +38 −1
  2780. arch/x86/mm/init_64.c +15 −7
  2781. arch/x86/mm/ioremap.c +269 −18
  2782. arch/x86/mm/kasan_init_64.c +3 −3
  2783. arch/x86/mm/mem_encrypt.c +593 −0
  2784. arch/x86/mm/mem_encrypt_boot.S +149 −0
  2785. arch/x86/mm/mmap.c +9 −10
  2786. arch/x86/mm/mpx.c +32 −1
  2787. arch/x86/mm/numa_emulation.c +32 −23
  2788. arch/x86/mm/pageattr.c +67 −0
  2789. arch/x86/mm/pat.c +6 −3
  2790. arch/x86/mm/pgtable.c +5 −10
  2791. arch/x86/mm/tlb.c +304 −78
  2792. arch/x86/net/bpf_jit_comp.c +30 −5
  2793. arch/x86/pci/common.c +2 −2
  2794. arch/x86/pci/fixup.c +17 −0
  2795. arch/x86/pci/intel_mid_pci.c +10 −2
  2796. arch/x86/pci/irq.c +1 −1
  2797. arch/x86/platform/efi/efi.c +0 −19
  2798. arch/x86/platform/efi/efi_64.c +11 −4
  2799. arch/x86/platform/intel-mid/device_libs/platform_bt.c +1 −1
  2800. arch/x86/platform/intel-mid/device_libs/platform_mrfld_wdt.c +3 −3
  2801. arch/x86/platform/intel-mid/device_libs/platform_tc35876x.c +1 −1
  2802. arch/x86/platform/intel-mid/intel-mid.c +1 −1
  2803. arch/x86/platform/intel-mid/pwr.c +2 −2
  2804. arch/x86/platform/uv/tlb_uv.c +2 −2
  2805. arch/x86/power/cpu.c +2 −1
  2806. arch/x86/power/hibernate_64.c +20 −1
  2807. arch/x86/realmode/init.c +12 −0
  2808. arch/x86/realmode/rm/trampoline_64.S +24 −0
  2809. arch/x86/um/os-Linux/registers.c +12 −6
  2810. arch/x86/um/os-Linux/tls.c +1 −1
  2811. arch/x86/um/user-offsets.c +2 −2
  2812. arch/x86/xen/Kconfig +5 −0
  2813. arch/x86/xen/enlighten_hvm.c +37 −22
  2814. arch/x86/xen/enlighten_pv.c +79 −99
  2815. arch/x86/xen/irq.c +0 −3
  2816. arch/x86/xen/mmu.c +1 −1
  2817. arch/x86/xen/mmu_pv.c +3 −26
  2818. arch/x86/xen/p2m.c +1 −24
  2819. arch/x86/xen/setup.c +1 −4
  2820. arch/x86/xen/xen-asm.S +6 −20
  2821. arch/x86/xen/xen-asm.h +0 −12
  2822. arch/x86/xen/xen-asm_32.S +5 −22
  2823. arch/x86/xen/xen-asm_64.S +68 −34
  2824. arch/x86/xen/xen-head.S +1 −1
  2825. arch/x86/xen/xen-ops.h +4 −12
  2826. arch/xtensa/include/asm/Kbuild +2 −0
  2827. arch/xtensa/include/asm/device.h +0 −15
  2828. arch/xtensa/include/asm/futex.h +5 −22
  2829. arch/xtensa/include/asm/param.h +0 −18
  2830. arch/xtensa/include/asm/processor.h +0 −5
  2831. arch/xtensa/include/asm/spinlock.h +0 −5
  2832. arch/xtensa/include/uapi/asm/mman.h +3 −11
  2833. arch/xtensa/include/uapi/asm/socket.h +2 −0
  2834. arch/xtensa/kernel/setup.c +3 −3
  2835. arch/xtensa/kernel/xtensa_ksyms.c +0 −2
  2836. arch/xtensa/mm/cache.c +8 −8
  2837. block/Kconfig +5 −0
  2838. block/Makefile +1 −0
  2839. block/bfq-cgroup.c +9 −9
  2840. block/bfq-iosched.c +142 −101
  2841. block/bfq-iosched.h +33 −18
  2842. block/bfq-wf2q.c +137 −100
  2843. block/bio-integrity.c +15 −15
  2844. block/bio.c +18 −14
  2845. block/blk-cgroup.c +5 −3
  2846. block/blk-core.c +87 −73
  2847. block/blk-flush.c +13 −13
  2848. block/blk-lib.c +6 −6
  2849. block/blk-merge.c +3 −3
  2850. block/blk-mq-debugfs.c +4 −3
  2851. block/blk-mq-pci.c +7 −1
  2852. block/blk-mq-rdma.c +52 −0
  2853. block/blk-mq-tag.c +17 −6
  2854. block/blk-mq.c +75 −11
  2855. block/blk-mq.h +4 −0
  2856. block/blk-settings.c +1 −0
  2857. block/blk-softirq.c +1 −1
  2858. block/blk-sysfs.c +2 −0
  2859. block/blk-tag.c +0 −1
  2860. block/blk-throttle.c +17 −14
  2861. block/blk-zoned.c +2 −2
  2862. block/blk.h +2 −1
  2863. block/bsg-lib.c +48 −33
  2864. block/bsg.c +0 −7
  2865. block/cfq-iosched.c +44 −68
  2866. block/compat_ioctl.c +1 −1
  2867. block/deadline-iosched.c +4 −5
  2868. block/elevator.c +4 −0
  2869. block/genhd.c +84 −25
  2870. block/mq-deadline.c +5 −5
  2871. block/opal_proto.h +1 −0
  2872. block/partition-generic.c +17 −6
  2873. block/sed-opal.c +32 −0
  2874. crypto/Kconfig +2 −0
  2875. crypto/af_alg.c +691 −0
  2876. crypto/ahash.c +29 −0
  2877. crypto/algapi.c +15 −10
  2878. crypto/algif_aead.c +250 −614
  2879. crypto/algif_skcipher.c +132 −697
  2880. crypto/chacha20_generic.c +7 −2
  2881. crypto/ctr.c +1 −2
  2882. crypto/drbg.c +4 −4
  2883. crypto/ecdh.c +33 −18
  2884. crypto/pcbc.c +4 −8
  2885. crypto/rng.c +4 −2
  2886. crypto/scompress.c +22 −33
  2887. crypto/serpent_generic.c +41 −36
  2888. crypto/tcrypt.c +4 −4
  2889. crypto/testmgr.h +7 −0
  2890. drivers/Makefile +0 −1
  2891. drivers/acpi/Makefile +1 −0
  2892. drivers/acpi/acpi_lpat.c +3 −3
  2893. drivers/acpi/acpi_lpss.c +2 −1
  2894. drivers/acpi/acpi_processor.c +1 −1
  2895. drivers/acpi/acpi_video.c +1 −1
  2896. drivers/acpi/acpi_watchdog.c +1 −1
  2897. drivers/acpi/acpica/Makefile +1 −0
  2898. drivers/acpi/acpica/acapps.h +2 −0
  2899. drivers/acpi/acpica/acdispat.h +13 −0
  2900. drivers/acpi/acpica/aclocal.h +4 −3
  2901. drivers/acpi/acpica/acobject.h +11 −4
  2902. drivers/acpi/acpica/actables.h +4 −1
  2903. drivers/acpi/acpica/acutils.h +8 −1
  2904. drivers/acpi/acpica/dbdisply.c +32 −5
  2905. drivers/acpi/acpica/dsfield.c +2 −0
  2906. drivers/acpi/acpica/dsobject.c +67 −331
  2907. drivers/acpi/acpica/dsopcode.c +9 −0
  2908. drivers/acpi/acpica/dspkginit.c +496 −0
  2909. drivers/acpi/acpica/evgpeblk.c +21 −9
  2910. drivers/acpi/acpica/evxfgpe.c +8 −0
  2911. drivers/acpi/acpica/excreate.c +17 −45
  2912. drivers/acpi/acpica/exdump.c +26 −8
  2913. drivers/acpi/acpica/exmisc.c +9 −0
  2914. drivers/acpi/acpica/exoparg2.c +3 −0
  2915. drivers/acpi/acpica/hwregs.c +1 −1
  2916. drivers/acpi/acpica/hwxfsleep.c +6 −3
  2917. drivers/acpi/acpica/nsaccess.c +22 −6
  2918. drivers/acpi/acpica/nsarguments.c +17 −4
  2919. drivers/acpi/acpica/nsinit.c +14 −0
  2920. drivers/acpi/acpica/nsnames.c +8 −1
  2921. drivers/acpi/acpica/nsprepkg.c +2 −0
  2922. drivers/acpi/acpica/nsxfeval.c +7 −3
  2923. drivers/acpi/acpica/psloop.c +14 −0
  2924. drivers/acpi/acpica/psobject.c +26 −0
  2925. drivers/acpi/acpica/rsxface.c +4 −3
  2926. drivers/acpi/acpica/tbdata.c +205 −25
  2927. drivers/acpi/acpica/tbinstal.c +22 −139
  2928. drivers/acpi/acpica/tbxface.c +34 −5
  2929. drivers/acpi/acpica/tbxfload.c +1 −1
  2930. drivers/acpi/acpica/uthex.c +3 −1
  2931. drivers/acpi/acpica/utmath.c +213 −9
  2932. drivers/acpi/acpica/utmisc.c +7 −3
  2933. drivers/acpi/acpica/utobject.c +5 −0
  2934. drivers/acpi/acpica/utprint.c +4 −4
  2935. drivers/acpi/acpica/utresrc.c +7 −0
  2936. drivers/acpi/acpica/utstate.c +1 −1
  2937. drivers/acpi/acpica/utstrtoul64.c +4 −5
  2938. drivers/acpi/acpica/uttrack.c +7 −2
  2939. drivers/acpi/apei/apei-internal.h +0 −5
  2940. drivers/acpi/apei/einj.c +1 −1
  2941. drivers/acpi/apei/ghes.c +8 −2
  2942. drivers/acpi/apei/hest.c +7 −6
  2943. drivers/acpi/arm64/iort.c +142 −55
  2944. drivers/acpi/battery.c +1 −1
  2945. drivers/acpi/blacklist.c +16 −71
  2946. drivers/acpi/bus.c +2 −5
  2947. drivers/acpi/device_pm.c +123 −52
  2948. drivers/acpi/dock.c +1 −1
  2949. drivers/acpi/ec.c +34 −31
  2950. drivers/acpi/internal.h +6 −1
  2951. drivers/acpi/nfit/Kconfig +1 −1
  2952. drivers/acpi/nfit/core.c +45 −7
  2953. drivers/acpi/osi.c +9 −30
  2954. drivers/acpi/pci_root.c +2 −2
  2955. drivers/acpi/pci_slot.c +1 −1
  2956. drivers/acpi/pmic/intel_pmic_xpower.c +18 −3
  2957. drivers/acpi/processor_driver.c +1 −1
  2958. drivers/acpi/processor_idle.c +16 −9
  2959. drivers/acpi/processor_pdc.c +1 −1
  2960. drivers/acpi/property.c +158 −87
  2961. drivers/acpi/resource.c +63 −19
  2962. drivers/acpi/sbs.c +3 −24
  2963. drivers/acpi/scan.c +94 −14
  2964. drivers/acpi/sleep.c +190 −16
  2965. drivers/acpi/spcr.c +60 −12
  2966. drivers/acpi/sysfs.c +88 −3
  2967. drivers/acpi/tables.c +2 −2
  2968. drivers/acpi/thermal.c +1 −1
  2969. drivers/acpi/utils.c +36 −0
  2970. drivers/acpi/video_detect.c +14 −0
  2971. drivers/acpi/x86/apple.c +141 −0
  2972. drivers/android/Kconfig +12 −2
  2973. drivers/android/Makefile +2 −1
  2974. drivers/android/binder.c +2557 −1313
  2975. drivers/android/binder_alloc.c +1009 −0
  2976. drivers/android/binder_alloc.h +187 −0
  2977. drivers/android/binder_alloc_selftest.c +310 −0
  2978. drivers/android/binder_trace.h +77 −19
  2979. drivers/ata/Kconfig +10 −0
  2980. drivers/ata/Makefile +1 −0
  2981. drivers/ata/ahci.c +8 −1
  2982. drivers/ata/ahci_da850.c +6 −2
  2983. drivers/ata/ahci_mtk.c +196 −0
  2984. drivers/ata/ahci_platform.c +1 −0
  2985. drivers/ata/libahci_platform.c +34 −0
  2986. drivers/ata/libata-core.c +3 −0
  2987. drivers/ata/libata-eh.c +3 −5
  2988. drivers/ata/libata-zpodd.c +2 −2
  2989. drivers/ata/pata_amd.c +1 −0
  2990. drivers/ata/pata_cs5536.c +1 −0
  2991. drivers/ata/pata_octeon_cf.c +4 −6
  2992. drivers/ata/sata_gemini.c +34 −33
  2993. drivers/ata/sata_svw.c +1 −1
  2994. drivers/atm/adummy.c +2 −2
  2995. drivers/atm/ambassador.c +1 −1
  2996. drivers/atm/atmtcp.c +1 −1
  2997. drivers/atm/eni.c +1 −1
  2998. drivers/atm/firestream.c +1 −1
  2999. drivers/atm/fore200e.c +1 −1
  3000. drivers/atm/he.c +2 −2
  3001. drivers/atm/horizon.c +1 −1
  3002. drivers/atm/idt77252.c +2 −2
  3003. drivers/atm/iphase.c +1 −1
  3004. drivers/atm/lanai.c +1 −1
  3005. drivers/atm/nicstar.c +2 −2
  3006. drivers/atm/solos-pci.c +4 −4
  3007. drivers/atm/zatm.c +1 −1
  3008. drivers/auxdisplay/panel.c +3 −3
  3009. drivers/base/Kconfig +1 −4
  3010. drivers/base/arch_topology.c +43 −43
  3011. drivers/base/base.h +0 −5
  3012. drivers/base/bus.c +1 −1
  3013. drivers/base/core.c +137 −4
  3014. drivers/base/cpu.c +2 −2
  3015. drivers/base/dd.c +31 −1
  3016. drivers/base/dma-coherent.c +39 −49
  3017. drivers/base/dma-mapping.c +2 −5
  3018. drivers/base/firmware_class.c +44 −117
  3019. drivers/base/memory.c +20 −10
  3020. drivers/base/node.c +15 −7
  3021. drivers/base/power/domain.c +234 −17
  3022. drivers/base/power/main.c +70 −42
  3023. drivers/base/power/opp/of.c +23 −14
  3024. drivers/base/power/qos.c +5 −5
  3025. drivers/base/power/wakeup.c +6 −4
  3026. drivers/base/property.c +85 −46
  3027. drivers/base/topology.c +1 −1
  3028. drivers/bcma/Kconfig +2 −7
  3029. drivers/bcma/driver_gpio.c +1 −0
  3030. drivers/block/DAC960.c +8 −4
  3031. drivers/block/Kconfig +2 −28
  3032. drivers/block/Makefile +0 −1
  3033. drivers/block/brd.c +7 −4
  3034. drivers/block/cciss.c +0 −5415
  3035. drivers/block/cciss.h +0 −433
  3036. drivers/block/cciss_cmd.h +0 −269
  3037. drivers/block/cciss_scsi.c +0 −1653
  3038. drivers/block/cciss_scsi.h +0 −79
  3039. drivers/block/drbd/drbd_actlog.c +1 −1
  3040. drivers/block/drbd/drbd_bitmap.c +1 −1
  3041. drivers/block/drbd/drbd_int.h +14 −17
  3042. drivers/block/drbd/drbd_main.c +62 −51
  3043. drivers/block/drbd/drbd_nl.c +24 −36
  3044. drivers/block/drbd/drbd_proc.c +5 −5
  3045. drivers/block/drbd/drbd_receiver.c +52 −8
  3046. drivers/block/drbd/drbd_req.c +77 −9
  3047. drivers/block/drbd/drbd_req.h +6 −0
  3048. drivers/block/drbd/drbd_state.c +47 −1
  3049. drivers/block/drbd/drbd_state.h +8 −0
  3050. drivers/block/drbd/drbd_worker.c +38 −10
  3051. drivers/block/floppy.c +1 −1
  3052. drivers/block/loop.c +118 −131
  3053. drivers/block/loop.h +5 −4
  3054. drivers/block/nbd.c +12 −3
  3055. drivers/block/null_blk.c +1215 −96
  3056. drivers/block/pktcdvd.c +5 −6
  3057. drivers/block/ps3vram.c +6 −4
  3058. drivers/block/rbd.c +1 −1
  3059. drivers/block/rsxx/dev.c +3 −3
  3060. drivers/block/skd_main.c +808 −2402
  3061. drivers/block/skd_s1120.h +16 −22
  3062. drivers/block/sunvdc.c +61 −0
  3063. drivers/block/virtio_blk.c +11 −7
  3064. drivers/block/xen-blkback/blkback.c +5 −4
  3065. drivers/block/xen-blkback/xenbus.c +10 −3
  3066. drivers/block/xen-blkfront.c +4 −4
  3067. drivers/block/zram/Kconfig +12 −0
  3068. drivers/block/zram/zram_drv.c +466 −96
  3069. drivers/block/zram/zram_drv.h +10 −1
  3070. drivers/bluetooth/Kconfig +2 −0
  3071. drivers/bluetooth/ath3k.c +2 −1
  3072. drivers/bluetooth/bluecard_cs.c +27 −31
  3073. drivers/bluetooth/bt3c_cs.c +5 −3
  3074. drivers/bluetooth/btbcm.c +39 −30
  3075. drivers/bluetooth/btmrvl_sdio.c +4 −2
  3076. drivers/bluetooth/btqca.c +1 −1
  3077. drivers/bluetooth/btrtl.c +2 −0
  3078. drivers/bluetooth/btsdio.c +2 −1
  3079. drivers/bluetooth/btuart_cs.c +5 −3
  3080. drivers/bluetooth/btusb.c +60 −8
  3081. drivers/bluetooth/btwilink.c +4 −4
  3082. drivers/bluetooth/hci_bcm.c +115 −18
  3083. drivers/bluetooth/hci_h4.c +1 −1
  3084. drivers/bluetooth/hci_ldisc.c +2 −1
  3085. drivers/bluetooth/hci_ll.c +3 −8
  3086. drivers/bluetooth/hci_nokia.c +1 −9
  3087. drivers/bluetooth/hci_serdev.c +13 −0
  3088. drivers/bluetooth/hci_uart.h +1 −0
  3089. drivers/bus/Kconfig +1 −1
  3090. drivers/bus/arm-cci.c +6 −6
  3091. drivers/bus/imx-weim.c +4 −4
  3092. drivers/bus/omap-ocp2scp.c +7 −2
  3093. drivers/bus/sunxi-rsb.c +11 −11
  3094. drivers/char/Kconfig +1 −1
  3095. drivers/char/agp/ali-agp.c +1 −1
  3096. drivers/char/agp/amd-k7-agp.c +2 −2
  3097. drivers/char/agp/amd64-agp.c +1 −1
  3098. drivers/char/agp/ati-agp.c +1 −1
  3099. drivers/char/agp/efficeon-agp.c +1 −1
  3100. drivers/char/agp/intel-agp.c +1 −1
  3101. drivers/char/agp/nvidia-agp.c +1 −1
  3102. drivers/char/agp/sis-agp.c +1 −1
  3103. drivers/char/agp/uninorth-agp.c +1 −1
  3104. drivers/char/applicom.c +1 −1
  3105. drivers/char/hw_random/Kconfig +16 −4
  3106. drivers/char/hw_random/Makefile +1 −0
  3107. drivers/char/hw_random/core.c +36 −6
  3108. drivers/char/hw_random/imx-rngc.c +331 −0
  3109. drivers/char/ipmi/ipmi_si_intf.c +7 −5
  3110. drivers/char/mwave/smapi.c +25 −23
  3111. drivers/char/ppdev.c +0 −3
  3112. drivers/char/random.c +1 −1
  3113. drivers/char/sonypi.c +1 −1
  3114. drivers/char/tlclk.c +1 −1
  3115. drivers/char/tpm/tpm-chip.c +2 −9
  3116. drivers/char/tpm/tpm-interface.c +5 −5
  3117. drivers/char/tpm/tpm.h +8 −1
  3118. drivers/char/tpm/tpm2-cmd.c +1 −1
  3119. drivers/char/tpm/tpm_crb.c +1 −1
  3120. drivers/char/tpm/tpm_ibmvtpm.c +61 −37
  3121. drivers/char/tpm/tpm_infineon.c +3 −3
  3122. drivers/char/tpm/tpm_tis_core.c +4 −4
  3123. drivers/char/virtio_console.c +2 −5
  3124. drivers/char/xilinx_hwicap/xilinx_hwicap.c +21 −18
  3125. drivers/char/xilinx_hwicap/xilinx_hwicap.h +9 −4
  3126. drivers/clk/Kconfig +12 −5
  3127. drivers/clk/Makefile +2 −1
  3128. drivers/clk/at91/Makefile +1 −0
  3129. drivers/clk/at91/clk-audio-pll.c +536 −0
  3130. drivers/clk/at91/clk-generated.c +82 −19
  3131. drivers/clk/axs10x/Makefile +1 −0
  3132. drivers/clk/axs10x/pll_clock.c +346 −0
  3133. drivers/clk/berlin/bg2.c +1 −2
  3134. drivers/clk/berlin/bg2q.c +3 −4
  3135. drivers/clk/clk-asm9260.c +2 −2
  3136. drivers/clk/clk-conf.c +8 −8
  3137. drivers/clk/clk-cs2000-cp.c +10 −4
  3138. drivers/clk/clk-divider.c +4 −2
  3139. drivers/clk/clk-fractional-divider.c +20 −8
  3140. drivers/clk/clk-gate.c +2 −1
  3141. drivers/clk/clk-gemini.c +0 −7
  3142. drivers/clk/clk-hsdk-pll.c +431 −0
  3143. drivers/clk/clk-mb86s7x.c +0 −390
  3144. drivers/clk/clk-moxart.c +8 −8
  3145. drivers/clk/clk-qoriq.c +22 −4
  3146. drivers/clk/clk-si5351.c +5 −7
  3147. drivers/clk/clk-stm32f4.c +2 −2
  3148. drivers/clk/clk-stm32h7.c +1410 −0
  3149. drivers/clk/clk-versaclock5.c +159 −13
  3150. drivers/clk/clk-xgene.c +6 −9
  3151. drivers/clk/clk.c +2 −2
  3152. drivers/clk/clkdev.c +2 −2
  3153. drivers/clk/hisilicon/clk-hi6220.c +3 −3
  3154. drivers/clk/imx/clk-imx51-imx53.c +4 −4
  3155. drivers/clk/imx/clk-imx6sl.c +3 −3
  3156. drivers/clk/imx/clk-imx6sx.c +3 −3
  3157. drivers/clk/imx/clk-imx6ul.c +3 −3
  3158. drivers/clk/imx/clk-imx7d.c +2 −2
  3159. drivers/clk/imx/clk-vf610.c +1 −1
  3160. drivers/clk/mediatek/clk-cpumux.c +1 −5
  3161. drivers/clk/mediatek/clk-mtk.c +1 −1
  3162. drivers/clk/mediatek/reset.c +1 −1
  3163. drivers/clk/meson/Kconfig +1 −0
  3164. drivers/clk/meson/Makefile +1 −1
  3165. drivers/clk/meson/gxbb-aoclk-32k.c +194 −0
  3166. drivers/clk/meson/gxbb-aoclk-regmap.c +46 −0
  3167. drivers/clk/meson/gxbb-aoclk.c +42 −23
  3168. drivers/clk/meson/gxbb-aoclk.h +42 −0
  3169. drivers/clk/meson/gxbb.c +185 −4
  3170. drivers/clk/meson/gxbb.h +14 −111
  3171. drivers/clk/meson/meson8b.c +148 −12
  3172. drivers/clk/meson/meson8b.h +12 −100
  3173. drivers/clk/mmp/clk.c +1 −1
  3174. drivers/clk/nxp/clk-lpc32xx.c +6 −6
  3175. drivers/clk/qcom/clk-smd-rpm.c +0 −2
  3176. drivers/clk/qcom/gcc-msm8916.c +1 −1
  3177. drivers/clk/qcom/gcc-msm8996.c +28 −0
  3178. drivers/clk/renesas/Kconfig +29 −19
  3179. drivers/clk/renesas/Makefile +2 −0
  3180. drivers/clk/renesas/clk-div6.c +3 −0
  3181. drivers/clk/renesas/clk-mstp.c +1 −1
  3182. drivers/clk/renesas/clk-rcar-gen2.c +1 −2
  3183. drivers/clk/renesas/r8a7792-cpg-mssr.c +7 −0
  3184. drivers/clk/renesas/r8a7795-cpg-mssr.c +17 −17
  3185. drivers/clk/renesas/r8a7796-cpg-mssr.c +18 −17
  3186. drivers/clk/renesas/r8a77995-cpg-mssr.c +236 −0
  3187. drivers/clk/renesas/rcar-gen3-cpg.c +41 −28
  3188. drivers/clk/renesas/rcar-gen3-cpg.h +12 −3
  3189. drivers/clk/renesas/rcar-usb2-clock-sel.c +188 −0
  3190. drivers/clk/renesas/renesas-cpg-mssr.c +6 −0
  3191. drivers/clk/renesas/renesas-cpg-mssr.h +1 −0
  3192. drivers/clk/rockchip/clk-rk3128.c +55 −14
  3193. drivers/clk/rockchip/clk-rk3228.c +1 −1
  3194. drivers/clk/rockchip/clk-rv1108.c +381 −81
  3195. drivers/clk/rockchip/clk.c +36 −0
  3196. drivers/clk/samsung/clk-exynos-audss.c +4 −4
  3197. drivers/clk/samsung/clk-exynos5420.c +15 −8
  3198. drivers/clk/sunxi-ng/Kconfig +18 −0
  3199. drivers/clk/sunxi-ng/Makefile +3 −0
  3200. drivers/clk/sunxi-ng/ccu-sun4i-a10.c +1456 −0
  3201. drivers/clk/sunxi-ng/ccu-sun4i-a10.h +61 −0
  3202. drivers/clk/sunxi-ng/ccu-sun5i.c +1 −2
  3203. drivers/clk/sunxi-ng/ccu-sun6i-a31.c +1 −2
  3204. drivers/clk/sunxi-ng/ccu-sun8i-a23.c +1 −2
  3205. drivers/clk/sunxi-ng/ccu-sun8i-a33.c +1 −2
  3206. drivers/clk/sunxi-ng/ccu-sun8i-a83t.c +2 −8
  3207. drivers/clk/sunxi-ng/ccu-sun8i-h3.c +13 −3
  3208. drivers/clk/sunxi-ng/ccu-sun8i-r.c +1 −2
  3209. drivers/clk/sunxi-ng/ccu-sun8i-r.h +1 −1
  3210. drivers/clk/sunxi-ng/ccu-sun8i-r40.c +1290 −0
  3211. drivers/clk/sunxi-ng/ccu-sun8i-r40.h +69 −0
  3212. drivers/clk/sunxi-ng/ccu-sun8i-v3s.c +1 −2
  3213. drivers/clk/sunxi-ng/ccu_common.h +4 −0
  3214. drivers/clk/sunxi-ng/ccu_div.c +19 −3
  3215. drivers/clk/sunxi-ng/ccu_div.h +2 −1
  3216. drivers/clk/sunxi-ng/ccu_frac.c +8 −6
  3217. drivers/clk/sunxi-ng/ccu_frac.h +1 −1
  3218. drivers/clk/sunxi-ng/ccu_mmc_timing.c +70 −0
  3219. drivers/clk/sunxi-ng/ccu_mp.c +80 −0
  3220. drivers/clk/sunxi-ng/ccu_mp.h +30 −0
  3221. drivers/clk/sunxi-ng/ccu_mult.c +7 −3
  3222. drivers/clk/sunxi-ng/ccu_nkm.c +19 −3
  3223. drivers/clk/sunxi-ng/ccu_nkm.h +2 −0
  3224. drivers/clk/sunxi-ng/ccu_nm.c +16 −3
  3225. drivers/clk/sunxi-ng/ccu_reset.c +12 −0
  3226. drivers/clk/sunxi/clk-sun8i-bus-gates.c +4 −0
  3227. drivers/clk/sunxi/clk-sunxi.c +7 −10
  3228. drivers/clk/tegra/clk-emc.c +5 −7
  3229. drivers/clk/tegra/clk-pll.c +38 −121
  3230. drivers/clk/tegra/clk-tegra-periph.c +2 −1
  3231. drivers/clk/tegra/clk-tegra-super-gen4.c +9 −2
  3232. drivers/clk/tegra/clk-tegra210.c +18 −14
  3233. drivers/clk/tegra/clk.h +0 −6
  3234. drivers/clk/ti/adpll.c +2 −2
  3235. drivers/clk/ti/apll.c +1 −1
  3236. drivers/clk/ti/clockdomain.c +2 −2
  3237. drivers/clk/ti/fapll.c +2 −2
  3238. drivers/clk/uniphier/clk-uniphier-core.c +15 −11
  3239. drivers/clk/uniphier/clk-uniphier-mio.c +1 −3
  3240. drivers/clk/uniphier/clk-uniphier-sys.c +71 −27
  3241. drivers/clk/uniphier/clk-uniphier.h +2 −2
  3242. drivers/clk/ux500/clk-prcc.c +3 −3
  3243. drivers/clk/ux500/clk-prcmu.c +7 −7
  3244. drivers/clk/ux500/clk-sysctrl.c +4 −4
  3245. drivers/clk/versatile/clk-vexpress-osc.c +1 −1
  3246. drivers/clk/zte/clk-zx296718.c +3 −3
  3247. drivers/clocksource/Kconfig +9 −1
  3248. drivers/clocksource/Makefile +1 −0
  3249. drivers/clocksource/arm_arch_timer.c +6 −2
  3250. drivers/clocksource/bcm2835_timer.c +0 −1
  3251. drivers/clocksource/em_sti.c +6 −5
  3252. drivers/clocksource/mips-gic-timer.c +31 −6
  3253. drivers/clocksource/tango_xtal.c +3 −3
  3254. drivers/clocksource/timer-imx-tpm.c +239 −0
  3255. drivers/clocksource/timer-integrator-ap.c +2 −2
  3256. drivers/clocksource/timer-of.c +7 −8
  3257. drivers/clocksource/timer-probe.c +1 −2
  3258. drivers/clocksource/timer-stm32.c +4 −4
  3259. drivers/cpufreq/Kconfig.arm +8 −13
  3260. drivers/cpufreq/Makefile +2 −2
  3261. drivers/cpufreq/arm_big_little.c +4 −6
  3262. drivers/cpufreq/cppc_cpufreq.c +0 −1
  3263. drivers/cpufreq/cpufreq-dt-platdev.c +60 −17
  3264. drivers/cpufreq/cpufreq-dt.c +1 −0
  3265. drivers/cpufreq/cpufreq-nforce2.c +1 −1
  3266. drivers/cpufreq/cpufreq.c +34 −7
  3267. drivers/cpufreq/cpufreq_conservative.c +0 −6
  3268. drivers/cpufreq/cpufreq_governor.c +5 −15
  3269. drivers/cpufreq/cpufreq_governor.h +1 −2
  3270. drivers/cpufreq/cpufreq_ondemand.c +0 −12
  3271. drivers/cpufreq/dbx500-cpufreq.c +0 −103
  3272. drivers/cpufreq/elanfreq.c +1 −3
  3273. drivers/cpufreq/gx-suspmod.c +1 −1
  3274. drivers/cpufreq/imx6q-cpufreq.c +9 −0
  3275. drivers/cpufreq/intel_pstate.c +50 −339
  3276. drivers/cpufreq/longrun.c +0 −1
  3277. drivers/cpufreq/loongson2_cpufreq.c +1 −1
  3278. drivers/cpufreq/mediatek-cpufreq.c +16 −13
  3279. drivers/cpufreq/pmac32-cpufreq.c +5 −2
  3280. drivers/cpufreq/pmac64-cpufreq.c +1 −1
  3281. drivers/cpufreq/powernow-k7.c +1 −1
  3282. drivers/cpufreq/s5pv210-cpufreq.c +3 −0
  3283. drivers/cpufreq/sa1100-cpufreq.c +3 −2
  3284. drivers/cpufreq/sa1110-cpufreq.c +3 −2
  3285. drivers/cpufreq/sh-cpufreq.c +1 −2
  3286. drivers/cpufreq/speedstep-ich.c +1 −1
  3287. drivers/cpufreq/speedstep-lib.c +2 −2
  3288. drivers/cpufreq/speedstep-smi.c +1 −1
  3289. drivers/cpufreq/sti-cpufreq.c +4 −4
  3290. drivers/cpufreq/tango-cpufreq.c +38 −0
  3291. drivers/cpufreq/ti-cpufreq.c +3 −3
  3292. drivers/cpufreq/unicore2-cpufreq.c +1 −2
  3293. drivers/cpuidle/Makefile +1 −0
  3294. drivers/cpuidle/coupled.c +5 −5
  3295. drivers/cpuidle/cpuidle-arm.c +4 −2
  3296. drivers/cpuidle/cpuidle-cps.c +1 −1
  3297. drivers/cpuidle/cpuidle-powernv.c +10 −0
  3298. drivers/cpuidle/cpuidle.c +9 −9
  3299. drivers/cpuidle/driver.c +0 −32
  3300. drivers/cpuidle/dt_idle_states.c +12 −12
  3301. drivers/cpuidle/governors/ladder.c +8 −6
  3302. drivers/cpuidle/governors/menu.c +5 −8
  3303. drivers/cpuidle/poll_state.c +37 −0
  3304. drivers/crypto/Kconfig +46 −3
  3305. drivers/crypto/Makefile +3 −1
  3306. drivers/crypto/atmel-ecc.c +781 −0
  3307. drivers/crypto/atmel-ecc.h +128 −0
  3308. drivers/crypto/atmel-sha.c +1 −1
  3309. drivers/crypto/atmel-tdes.c +1 −1
  3310. drivers/crypto/axis/Makefile +1 −0
  3311. drivers/crypto/axis/artpec6_crypto.c +3192 −0
  3312. drivers/crypto/bcm/cipher.c +54 −60
  3313. drivers/crypto/bcm/cipher.h +7 −6
  3314. drivers/crypto/caam/Kconfig +1 −4
  3315. drivers/crypto/caam/caamalg.c +15 −51
  3316. drivers/crypto/caam/caamalg_desc.c +2 −3
  3317. drivers/crypto/caam/caamalg_qi.c +47 −8
  3318. drivers/crypto/caam/caamhash.c +3 −4
  3319. drivers/crypto/caam/caamrng.c +1 −5
  3320. drivers/crypto/caam/ctrl.c +69 −77
  3321. drivers/crypto/caam/ctrl.h +2 −0
  3322. drivers/crypto/caam/error.c +40 −0
  3323. drivers/crypto/caam/error.h +4 −0
  3324. drivers/crypto/caam/intern.h +0 −11
  3325. drivers/crypto/caam/jr.c +6 −1
  3326. drivers/crypto/caam/qi.c +12 −18
  3327. drivers/crypto/caam/qi.h +3 −0
  3328. drivers/crypto/caam/regs.h +29 −31
  3329. drivers/crypto/caam/sg_sw_qm2.h +81 −0
  3330. drivers/crypto/caam/sg_sw_sec4.h +25 −18
  3331. drivers/crypto/cavium/cpt/cptpf_main.c +9 −4
  3332. drivers/crypto/cavium/nitrox/nitrox_main.c +3 −1
  3333. drivers/crypto/ccp/Kconfig +15 −7
  3334. drivers/crypto/ccp/Makefile +4 −3
  3335. drivers/crypto/ccp/ccp-crypto-aes-galois.c +1 −1
  3336. drivers/crypto/ccp/ccp-crypto-aes-xts.c +53 −43
  3337. drivers/crypto/ccp/ccp-crypto-des3.c +1 −1
  3338. drivers/crypto/ccp/ccp-crypto-main.c +20 −1
  3339. drivers/crypto/ccp/ccp-crypto-rsa.c +299 −0
  3340. drivers/crypto/ccp/ccp-crypto-sha.c +1 −1
  3341. drivers/crypto/ccp/ccp-crypto.h +34 −2
  3342. drivers/crypto/ccp/ccp-debugfs.c +10 −5
  3343. drivers/crypto/ccp/ccp-dev-v3.c +13 −7
  3344. drivers/crypto/ccp/ccp-dev-v5.c +14 −14
  3345. drivers/crypto/ccp/ccp-dev.c +84 −50
  3346. drivers/crypto/ccp/ccp-dev.h +9 −21
  3347. drivers/crypto/ccp/ccp-dmaengine.c +1 −24
  3348. drivers/crypto/ccp/ccp-ops.c +91 −42
  3349. drivers/crypto/ccp/ccp-pci.c +0 −356
  3350. drivers/crypto/ccp/ccp-platform.c +0 −293
  3351. drivers/crypto/ccp/sp-dev.c +277 −0
  3352. drivers/crypto/ccp/sp-dev.h +133 −0
  3353. drivers/crypto/ccp/sp-pci.c +276 −0
  3354. drivers/crypto/ccp/sp-platform.c +256 −0
  3355. drivers/crypto/geode-aes.c +10 −7
  3356. drivers/crypto/img-hash.c +1 −1
  3357. drivers/crypto/inside-secure/safexcel.c +3 −2
  3358. drivers/crypto/inside-secure/safexcel_cipher.c +1 −1
  3359. drivers/crypto/inside-secure/safexcel_hash.c +5 −5
  3360. drivers/crypto/ixp4xx_crypto.c +3 −3
  3361. drivers/crypto/mediatek/mtk-platform.c +1 −1
  3362. drivers/crypto/mxc-scc.c +2 −2
  3363. drivers/crypto/mxs-dcp.c +6 −2
  3364. drivers/crypto/n2_core.c +28 −32
  3365. drivers/crypto/nx/Kconfig +1 −0
  3366. drivers/crypto/nx/nx-842-powernv.c +464 −50
  3367. drivers/crypto/nx/nx-842.c +1 −1
  3368. drivers/crypto/nx/nx-842.h +8 −5
  3369. drivers/crypto/omap-aes.c +1 −0
  3370. drivers/crypto/omap-des.c +2 −1
  3371. drivers/crypto/omap-sham.c +1 −1
  3372. drivers/crypto/qat/qat_common/adf_aer.c +1 −1
  3373. drivers/crypto/rockchip/rk3288_crypto.c +56 −18
  3374. drivers/crypto/rockchip/rk3288_crypto.h +10 −5
  3375. drivers/crypto/rockchip/rk3288_crypto_ablkcipher.c +50 −53
  3376. drivers/crypto/rockchip/rk3288_crypto_ahash.c +60 −59
  3377. drivers/crypto/sahara.c +6 −8
  3378. drivers/crypto/stm32/Kconfig +16 −3
  3379. drivers/crypto/stm32/Makefile +2 −2
  3380. drivers/crypto/stm32/stm32-hash.c +1575 −0
  3381. drivers/crypto/stm32/stm32_crc32.c +9 −8
  3382. drivers/crypto/sunxi-ss/Makefile +1 −0
  3383. drivers/crypto/sunxi-ss/sun4i-ss-core.c +30 −0
  3384. drivers/crypto/sunxi-ss/sun4i-ss-prng.c +56 −0
  3385. drivers/crypto/sunxi-ss/sun4i-ss.h +11 −0
  3386. drivers/crypto/talitos.c +5 −4
  3387. drivers/crypto/virtio/virtio_crypto_algs.c +87 −22
  3388. drivers/crypto/virtio/virtio_crypto_common.h +4 −18
  3389. drivers/crypto/virtio/virtio_crypto_core.c +7 −30
  3390. drivers/crypto/vmx/aes_ctr.c +1 −2
  3391. drivers/dax/super.c +26 −7
  3392. drivers/devfreq/Kconfig +1 −0
  3393. drivers/devfreq/devfreq-event.c +2 −2
  3394. drivers/devfreq/devfreq.c +4 −1
  3395. drivers/devfreq/governor.h +4 −0
  3396. drivers/dma-buf/dma-fence.c +2 −2
  3397. drivers/dma-buf/reservation.c +77 −22
  3398. drivers/dma-buf/sw_sync.c +121 −80
  3399. drivers/dma-buf/sync_debug.c +8 −11
  3400. drivers/dma-buf/sync_debug.h +13 −13
  3401. drivers/dma-buf/sync_file.c +3 −2
  3402. drivers/dma/Kconfig +6 −0
  3403. drivers/dma/Makefile +1 −0
  3404. drivers/dma/altera-msgdma.c +927 −0
  3405. drivers/dma/amba-pl08x.c +1 −1
  3406. drivers/dma/at_hdmac.c +1 −139
  3407. drivers/dma/at_xdmac.c +8 −5
  3408. drivers/dma/bcm-sba-raid.c +295 −249
  3409. drivers/dma/dmaengine.c +79 −24
  3410. drivers/dma/dmatest.c +59 −51
  3411. drivers/dma/fsldma.c +0 −118
  3412. drivers/dma/ioat/dma.c +7 −3
  3413. drivers/dma/ioat/dma.h +3 −0
  3414. drivers/dma/ioat/init.c +1 −1
  3415. drivers/dma/ioat/sysfs.c +42 −0
  3416. drivers/dma/k3dma.c +4 −8
  3417. drivers/dma/mv_xor.c +1 −161
  3418. drivers/dma/nbpfaxi.c +0 −17
  3419. drivers/dma/of-dma.c +4 −4
  3420. drivers/dma/pl330.c +1 −1
  3421. drivers/dma/ppc4xx/adma.c +16 −21
  3422. drivers/dma/qcom/bam_dma.c +5 −1
  3423. drivers/dma/qcom/hidma.c +36 −1
  3424. drivers/dma/qcom/hidma.h +6 −1
  3425. drivers/dma/qcom/hidma_ll.c +4 −7
  3426. drivers/dma/qcom/hidma_mgmt.c +10 −6
  3427. drivers/dma/sh/rcar-dmac.c +43 −42
  3428. drivers/dma/ste_dma40.c +2 −20
  3429. drivers/dma/sun6i-dma.c +26 −7
  3430. drivers/dma/tegra210-adma.c +2 −2
  3431. drivers/dma/ti-dma-crossbar.c +1 −1
  3432. drivers/dma/xgene-dma.c +1 −159
  3433. drivers/dma/xilinx/xilinx_dma.c +15 −15
  3434. drivers/dma/xilinx/zynqmp_dma.c +0 −94
  3435. drivers/edac/altera_edac.c +3 −3
  3436. drivers/edac/amd64_edac.c +0 −1
  3437. drivers/edac/amd76x_edac.c +0 −2
  3438. drivers/edac/cpc925_edac.c +1 −2
  3439. drivers/edac/e752x_edac.c +0 −2
  3440. drivers/edac/e7xxx_edac.c +0 −2
  3441. drivers/edac/edac_mc_sysfs.c +7 −7
  3442. drivers/edac/ghes_edac.c +0 −3
  3443. drivers/edac/highbank_mc_edac.c +0 −1
  3444. drivers/edac/i3000_edac.c +0 −3
  3445. drivers/edac/i3200_edac.c +0 −3
  3446. drivers/edac/i5000_edac.c +0 −1
  3447. drivers/edac/i5100_edac.c +0 −1
  3448. drivers/edac/i5400_edac.c +0 −1
  3449. drivers/edac/i7300_edac.c +0 −1
  3450. drivers/edac/i7core_edac.c +4 −5
  3451. drivers/edac/i82443bxgx_edac.c +0 −3
  3452. drivers/edac/i82860_edac.c +0 −2
  3453. drivers/edac/i82875p_edac.c +0 −2
  3454. drivers/edac/i82975x_edac.c +0 −2
  3455. drivers/edac/ie31200_edac.c +0 −2
  3456. drivers/edac/mce_amd.c +16 −20
  3457. drivers/edac/mv64x60_edac.c +0 −1
  3458. drivers/edac/pnd2_edac.c +77 −29
  3459. drivers/edac/ppc4xx_edac.c +4 −5
  3460. drivers/edac/r82600_edac.c +0 −2
  3461. drivers/edac/sb_edac.c +47 −17
  3462. drivers/edac/skx_edac.c +0 −3
  3463. drivers/edac/synopsys_edac.c +0 −1
  3464. drivers/edac/thunderx_edac.c +2 −4
  3465. drivers/edac/x38_edac.c +0 −3
  3466. drivers/edac/xgene_edac.c +0 −1
  3467. drivers/extcon/Kconfig +7 −0
  3468. drivers/extcon/Makefile +1 −0
  3469. drivers/extcon/devres.c +24 −26
  3470. drivers/extcon/extcon-intel-int3496.c +1 −1
  3471. drivers/extcon/extcon-max77693.c +2 −3
  3472. drivers/extcon/extcon-usbc-cros-ec.c +417 −0
  3473. drivers/extcon/extcon.c +136 −143
  3474. drivers/firmware/arm_scpi.c +2 −2
  3475. drivers/firmware/dcdbas.c +1 −1
  3476. drivers/firmware/dmi-sysfs.c +3 −2
  3477. drivers/firmware/efi/Kconfig +10 −0
  3478. drivers/firmware/efi/apple-properties.c +2 −3
  3479. drivers/firmware/efi/arm-init.c +8 −0
  3480. drivers/firmware/efi/cper.c +7 −15
  3481. drivers/firmware/efi/efi-bgrt.c +1 −21
  3482. drivers/firmware/efi/efi.c +67 −8
  3483. drivers/firmware/efi/esrt.c +1 −1
  3484. drivers/firmware/efi/libstub/Makefile +2 −1
  3485. drivers/firmware/efi/libstub/arm-stub.c +3 −0
  3486. drivers/firmware/efi/libstub/arm64-stub.c +13 −3
  3487. drivers/firmware/efi/libstub/efi-stub-helper.c +2 −2
  3488. drivers/firmware/efi/libstub/random.c +4 −6
  3489. drivers/firmware/efi/libstub/tpm.c +58 −0
  3490. drivers/firmware/efi/reboot.c +11 −1
  3491. drivers/firmware/google/gsmi.c +1 −1
  3492. drivers/firmware/google/memconsole-x86-legacy.c +1 −1
  3493. drivers/firmware/google/vpd.c +5 −5
  3494. drivers/firmware/pcdp.c +2 −2
  3495. drivers/firmware/psci.c +2 −2
  3496. drivers/firmware/tegra/bpmp.c +2 −2
  3497. drivers/fmc/Makefile +1 −0
  3498. drivers/fmc/fmc-chardev.c +1 −2
  3499. drivers/fmc/fmc-core.c +90 −5
  3500. drivers/fmc/fmc-debug.c +173 −0
  3501. drivers/fmc/fmc-dump.c +0 −41
  3502. drivers/fmc/fmc-match.c +1 −1
  3503. drivers/fmc/fmc-private.h +9 −0
  3504. drivers/fmc/fmc-sdb.c +25 −94
  3505. drivers/fmc/fmc-trivial.c +8 −12
  3506. drivers/fmc/fmc-write-eeprom.c +4 −4
  3507. drivers/fmc/fru-parse.c +1 −2
  3508. drivers/fpga/Kconfig +15 −5
  3509. drivers/fpga/Makefile +2 −0
  3510. drivers/fpga/altera-cvp.c +500 −0
  3511. drivers/fpga/altera-hps2fpga.c +8 −4
  3512. drivers/fpga/altera-ps-spi.c +308 −0
  3513. drivers/fpga/fpga-region.c +2 −2
  3514. drivers/fsi/fsi-core.c +2 −2
  3515. drivers/fsi/fsi-scom.c +4 −6
  3516. drivers/gpio/Kconfig +25 −1
  3517. drivers/gpio/Makefile +2 −0
  3518. drivers/gpio/devres.c +3 −0
  3519. drivers/gpio/gpio-74x164.c +10 −0
  3520. drivers/gpio/gpio-altera-a10sr.c +1 −1
  3521. drivers/gpio/gpio-altera.c +2 −2
  3522. drivers/gpio/gpio-aspeed.c +1 −1
  3523. drivers/gpio/gpio-brcmstb.c +6 −5
  3524. drivers/gpio/gpio-davinci.c +17 −5
  3525. drivers/gpio/gpio-ge.c +2 −4
  3526. drivers/gpio/gpio-grgpio.c +1 −1
  3527. drivers/gpio/gpio-it87.c +3 −0
  3528. drivers/gpio/gpio-max77620.c +1 −1
  3529. drivers/gpio/gpio-mb86s7x.c +3 −1
  3530. drivers/gpio/gpio-ml-ioh.c +7 −5
  3531. drivers/gpio/gpio-mockup.c +7 −72
  3532. drivers/gpio/gpio-mpc8xxx.c +2 −2
  3533. drivers/gpio/gpio-msic.c +2 −2
  3534. drivers/gpio/gpio-mvebu.c +1 −1
  3535. drivers/gpio/gpio-mxc.c +17 −10
  3536. drivers/gpio/gpio-mxs.c +10 −5
  3537. drivers/gpio/gpio-omap.c +2 −0
  3538. drivers/gpio/gpio-pca953x.c +3 −5
  3539. drivers/gpio/gpio-pch.c +7 −5
  3540. drivers/gpio/gpio-pl061.c +1 −1
  3541. drivers/gpio/gpio-pxa.c +5 −3
  3542. drivers/gpio/gpio-rcar.c +10 −0
  3543. drivers/gpio/gpio-sta2x11.c +10 −4
  3544. drivers/gpio/gpio-tb10x.c +2 −1
  3545. drivers/gpio/gpio-tegra.c +61 −68
  3546. drivers/gpio/gpio-thunderx.c +639 −0
  3547. drivers/gpio/gpio-tps68470.c +176 −0
  3548. drivers/gpio/gpio-twl4030.c +1 −1
  3549. drivers/gpio/gpio-twl6040.c +0 −2
  3550. drivers/gpio/gpio-tz1090.c +4 −6
  3551. drivers/gpio/gpio-vf610.c +44 −3
  3552. drivers/gpio/gpio-xilinx.c +2 −2
  3553. drivers/gpio/gpio-zevio.c +1 −1
  3554. drivers/gpio/gpio-zynq.c +136 −24
  3555. drivers/gpio/gpiolib-acpi.c +2 −2
  3556. drivers/gpio/gpiolib-of.c +17 −19
  3557. drivers/gpio/gpiolib-sysfs.c +12 −6
  3558. drivers/gpio/gpiolib.c +84 −46
  3559. drivers/gpio/gpiolib.h +1 −1
  3560. drivers/gpu/drm/Makefile +1 −1
  3561. drivers/gpu/drm/amd/amdgpu/Makefile +1 −1
  3562. drivers/gpu/drm/amd/amdgpu/amdgpu.h +41 −180
  3563. drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c +46 −26
  3564. drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c +2 −2
  3565. drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c +22 −22
  3566. drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h +16 −2
  3567. drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c +162 −27
  3568. drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c +197 −29
  3569. drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c +22 −10
  3570. drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.h +1 −0
  3571. drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c +126 −35
  3572. drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.h +2 −4
  3573. drivers/gpu/drm/amd/amdgpu/amdgpu_benchmark.c +3 −3
  3574. drivers/gpu/drm/amd/amdgpu/amdgpu_bios.c +2 −15
  3575. drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c +6 −6
  3576. drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c +26 −4
  3577. drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c +94 −44
  3578. drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +106 −151
  3579. drivers/gpu/drm/amd/amdgpu/amdgpu_display.c +3 −3
  3580. drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c +22 −7
  3581. drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c +3 −28
  3582. drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c +52 −17
  3583. drivers/gpu/drm/amd/amdgpu/amdgpu_gart.h +76 −0
  3584. drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c +27 −37
  3585. drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c +2 −1
  3586. drivers/gpu/drm/amd/amdgpu/amdgpu_gtt_mgr.c +54 −33
  3587. drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c +4 −3
  3588. drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c +5 −1
  3589. drivers/gpu/drm/amd/amdgpu/amdgpu_job.c +2 −0
  3590. drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c +20 −19
  3591. drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c +4 −35
  3592. drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h +0 −13
  3593. drivers/gpu/drm/amd/amdgpu/amdgpu_object.c +143 −135
  3594. drivers/gpu/drm/amd/amdgpu/amdgpu_object.h +67 −1
  3595. drivers/gpu/drm/amd/amdgpu/amdgpu_pm.h +1 −0
  3596. drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c +1 −1
  3597. drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c +31 −32
  3598. drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h +5 −0
  3599. drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c +29 −40
  3600. drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h +40 −0
  3601. drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c +1 −1
  3602. drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c +6 −7
  3603. drivers/gpu/drm/amd/amdgpu/amdgpu_test.c +28 −28
  3604. drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h +69 −13
  3605. drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c +361 −143
  3606. drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h +16 −10
  3607. drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c +10 −8
  3608. drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c +6 −2
  3609. drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c +2 −2
  3610. drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c +8 −10
  3611. drivers/gpu/drm/amd/amdgpu/amdgpu_vf_error.c +85 −0
  3612. drivers/gpu/drm/amd/amdgpu/amdgpu_vf_error.h +62 −0
  3613. drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c +12 −13
  3614. drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h +3 −1
  3615. drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c +306 −227
  3616. drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h +28 −13
  3617. drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c +73 −4
  3618. drivers/gpu/drm/amd/amdgpu/cik.c +1 −8
  3619. drivers/gpu/drm/amd/amdgpu/cik_sdma.c +60 −0
  3620. drivers/gpu/drm/amd/amdgpu/dce_v10_0.c +13 −155
  3621. drivers/gpu/drm/amd/amdgpu/dce_v11_0.c +13 −100
  3622. drivers/gpu/drm/amd/amdgpu/dce_v6_0.c +14 −138
  3623. drivers/gpu/drm/amd/amdgpu/dce_v8_0.c +13 −102
  3624. drivers/gpu/drm/amd/amdgpu/dce_virtual.c +42 −83
  3625. drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c +18 −91
  3626. drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c +40 −203
  3627. drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c +45 −139
  3628. drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c +48 −104
  3629. drivers/gpu/drm/amd/amdgpu/gfx_v9_0.h +0 −1
  3630. drivers/gpu/drm/amd/amdgpu/gfxhub_v1_0.c +10 −5
  3631. drivers/gpu/drm/amd/amdgpu/gfxhub_v1_0.h +0 −2
  3632. drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c +48 −47
  3633. drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c +52 −44
CREDITS+4−6
@@ -2090,7 +2090,7 @@ S: Kuala Lumpur, Malaysia · 2089 unmodified lines
20902090
20912091 N: Mohit Kumar
20922092 D: ST Microelectronics SPEAr13xx PCI host bridge driver
2093−D: Synopsys Designware PCI host bridge driver
2093+D: Synopsys DesignWare PCI host bridge driver
20942094
20952095 N: Gabor Kuti
20962096 E: seasons@falcon.sch.bme.hu
@@ -2606,11 +2606,9 @@ E: tmolina@cablespeed.com · 509 unmodified lines
26062606 D: bug fixes, documentation, minor hackery
26072607
26082608 N: Paul Moore
2609−E: paul.moore@hp.com
2610−D: NetLabel author
2611−S: Hewlett-Packard
2612−S: 110 Spit Brook Road
2613−S: Nashua, NH 03062
2609+E: paul@paul-moore.com
2610+W: http://www.paul-moore.com
2611+D: NetLabel, SELinux, audit
26142612
26152613 N: James Morris
26162614 E: jmorris@namei.org
Documentation/ABI/stable/sysfs-bus-nvmem+19−0
@@ -0,0 +1,19 @@
1+What: /sys/bus/nvmem/devices/.../nvmem
2+Date: July 2015
3+KernelVersion: 4.2
4+Contact: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
5+Description:
6+ This file allows user to read/write the raw NVMEM contents.
7+ Permissions for write to this file depends on the nvmem
8+ provider configuration.
9+
10+ ex:
11+ hexdump /sys/bus/nvmem/devices/qfprom0/nvmem
12+
13+ 0000000 0000 0000 0000 0000 0000 0000 0000 0000
14+ *
15+ 00000a0 db10 2240 0000 e000 0c00 0c00 0000 0c00
16+ 0000000 0000 0000 0000 0000 0000 0000 0000 0000
17+ ...
18+ *
19+ 0001000
Documentation/ABI/stable/sysfs-driver-dma-ioatdma+30−0
@@ -0,0 +1,30 @@
1+What: sys/devices/pciXXXX:XX/0000:XX:XX.X/dma/dma<n>chan<n>/quickdata/cap
2+Date: December 3, 2009
3+KernelVersion: 2.6.32
4+Contact: dmaengine@vger.kernel.org
5+Description: Capabilities the DMA supports.Currently there are DMA_PQ, DMA_PQ_VAL,
6+ DMA_XOR,DMA_XOR_VAL,DMA_INTERRUPT.
7+
8+What: sys/devices/pciXXXX:XX/0000:XX:XX.X/dma/dma<n>chan<n>/quickdata/ring_active
9+Date: December 3, 2009
10+KernelVersion: 2.6.32
11+Contact: dmaengine@vger.kernel.org
12+Description: The number of descriptors active in the ring.
13+
14+What: sys/devices/pciXXXX:XX/0000:XX:XX.X/dma/dma<n>chan<n>/quickdata/ring_size
15+Date: December 3, 2009
16+KernelVersion: 2.6.32
17+Contact: dmaengine@vger.kernel.org
18+Description: Descriptor ring size, total number of descriptors available.
19+
20+What: sys/devices/pciXXXX:XX/0000:XX:XX.X/dma/dma<n>chan<n>/quickdata/version
21+Date: December 3, 2009
22+KernelVersion: 2.6.32
23+Contact: dmaengine@vger.kernel.org
24+Description: Version of ioatdma device.
25+
26+What: sys/devices/pciXXXX:XX/0000:XX:XX.X/dma/dma<n>chan<n>/quickdata/intr_coalesce
27+Date: August 8, 2017
28+KernelVersion: 4.14
29+Contact: dmaengine@vger.kernel.org
30+Description: Tune-able interrupt delay value per channel basis.
Documentation/ABI/testing/configfs-usb-gadget-rndis+3−0
@@ -12,3 +12,6 @@ Description: · 11 unmodified lines
1212 Ethernet over USB link
1313 dev_addr - MAC address of device's end of this
1414 Ethernet over USB link
15+ class - USB interface class, default is 02 (hex)
16+ subclass - USB interface subclass, default is 06 (hex)
17+ protocol - USB interface protocol, default is 00 (hex)
Documentation/ABI/testing/ppc-memtrace+45−0
@@ -0,0 +1,45 @@
1+What: /sys/kernel/debug/powerpc/memtrace
2+Date: Aug 2017
3+KernelVersion: 4.14
4+Contact: linuxppc-dev@lists.ozlabs.org
5+Description: This folder contains the relevant debugfs files for the
6+ hardware trace macro to use. CONFIG_PPC64_HARDWARE_TRACING
7+ must be set.
8+
9+What: /sys/kernel/debug/powerpc/memtrace/enable
10+Date: Aug 2017
11+KernelVersion: 4.14
12+Contact: linuxppc-dev@lists.ozlabs.org
13+Description: Write an integer containing the size in bytes of the memory
14+ you want removed from each NUMA node to this file - it must be
15+ aligned to the memblock size. This amount of RAM will be removed
16+ from the kernel mappings and the following debugfs files will be
17+ created. This can only be successfully done once per boot. Once
18+ memory is successfully removed from each node, the following
19+ files are created.
20+
21+What: /sys/kernel/debug/powerpc/memtrace/<node-id>
22+Date: Aug 2017
23+KernelVersion: 4.14
24+Contact: linuxppc-dev@lists.ozlabs.org
25+Description: This directory contains information about the removed memory
26+ from the specific NUMA node.
27+
28+What: /sys/kernel/debug/powerpc/memtrace/<node-id>/size
29+Date: Aug 2017
30+KernelVersion: 4.14
31+Contact: linuxppc-dev@lists.ozlabs.org
32+Description: This contains the size of the memory removed from the node.
33+
34+What: /sys/kernel/debug/powerpc/memtrace/<node-id>/start
35+Date: Aug 2017
36+KernelVersion: 4.14
37+Contact: linuxppc-dev@lists.ozlabs.org
38+Description: This contains the start address of the removed memory.
39+
40+What: /sys/kernel/debug/powerpc/memtrace/<node-id>/trace
41+Date: Aug 2017
42+KernelVersion: 4.14
43+Contact: linuxppc-dev@lists.ozlabs.org
44+Description: This is where the hardware trace macro will output the trace
45+ it generates.
Documentation/ABI/testing/procfs-smaps_rollup+31−0
@@ -0,0 +1,31 @@
1+What: /proc/pid/smaps_rollup
2+Date: August 2017
3+Contact: Daniel Colascione <dancol@google.com>
4+Description:
5+ This file provides pre-summed memory information for a
6+ process. The format is identical to /proc/pid/smaps,
7+ except instead of an entry for each VMA in a process,
8+ smaps_rollup has a single entry (tagged "[rollup]")
9+ for which each field is the sum of the corresponding
10+ fields from all the maps in /proc/pid/smaps.
11+ For more details, see the procfs man page.
12+
13+ Typical output looks like this:
14+
15+ 00100000-ff709000 ---p 00000000 00:00 0 [rollup]
16+ Rss: 884 kB
17+ Pss: 385 kB
18+ Shared_Clean: 696 kB
19+ Shared_Dirty: 0 kB
20+ Private_Clean: 120 kB
21+ Private_Dirty: 68 kB
22+ Referenced: 884 kB
23+ Anonymous: 68 kB
24+ LazyFree: 0 kB
25+ AnonHugePages: 0 kB
26+ ShmemPmdMapped: 0 kB
27+ Shared_Hugetlb: 0 kB
28+ Private_Hugetlb: 0 kB
29+ Swap: 0 kB
30+ SwapPss: 0 kB
31+ Locked: 385 kB
Documentation/ABI/testing/sysfs-block-zram+8−0
@@ -90,3 +90,11 @@ Description: · 89 unmodified lines
9090 device's debugging info useful for kernel developers. Its
9191 format is not documented intentionally and may change
9292 anytime without any notice.
93+
94+What: /sys/block/zram<id>/backing_dev
95+Date: June 2017
96+Contact: Minchan Kim <minchan@kernel.org>
97+Description:
98+ The backing_dev file is read-write and set up backing
99+ device for zram to write incompressible pages.
100+ For using, user should enable CONFIG_ZRAM_WRITEBACK.
Documentation/ABI/testing/sysfs-bus-iio+9−0
@@ -119,6 +119,15 @@ Description: · 118 unmodified lines
119119 unique to allow association with event codes. Units after
120120 application of scale and offset are milliamps.
121121
122+What: /sys/bus/iio/devices/iio:deviceX/in_powerY_raw
123+KernelVersion: 4.5
124+Contact: linux-iio@vger.kernel.org
125+Description:
126+ Raw (unscaled no bias removal etc.) power measurement from
127+ channel Y. The number must always be specified and
128+ unique to allow association with event codes. Units after
129+ application of scale and offset are milliwatts.
130+
122131 What: /sys/bus/iio/devices/iio:deviceX/in_capacitanceY_raw
123132 KernelVersion: 3.2
124133 Contact: linux-iio@vger.kernel.org
Documentation/ABI/testing/sysfs-bus-iio-lptimer-stm32+57−0
@@ -0,0 +1,57 @@
1+What: /sys/bus/iio/devices/iio:deviceX/in_count0_preset
2+KernelVersion: 4.13
3+Contact: fabrice.gasnier@st.com
4+Description:
5+ Reading returns the current preset value. Writing sets the
6+ preset value. Encoder counts continuously from 0 to preset
7+ value, depending on direction (up/down).
8+
9+What: /sys/bus/iio/devices/iio:deviceX/in_count_quadrature_mode_available
10+KernelVersion: 4.13
11+Contact: fabrice.gasnier@st.com
12+Description:
13+ Reading returns the list possible quadrature modes.
14+
15+What: /sys/bus/iio/devices/iio:deviceX/in_count0_quadrature_mode
16+KernelVersion: 4.13
17+Contact: fabrice.gasnier@st.com
18+Description:
19+ Configure the device counter quadrature modes:
20+ - non-quadrature:
21+ Encoder IN1 input servers as the count input (up
22+ direction).
23+ - quadrature:
24+ Encoder IN1 and IN2 inputs are mixed to get direction
25+ and count.
26+
27+What: /sys/bus/iio/devices/iio:deviceX/in_count_polarity_available
28+KernelVersion: 4.13
29+Contact: fabrice.gasnier@st.com
30+Description:
31+ Reading returns the list possible active edges.
32+
33+What: /sys/bus/iio/devices/iio:deviceX/in_count0_polarity
34+KernelVersion: 4.13
35+Contact: fabrice.gasnier@st.com
36+Description:
37+ Configure the device encoder/counter active edge:
38+ - rising-edge
39+ - falling-edge
40+ - both-edges
41+
42+ In non-quadrature mode, device counts up on active edge.
43+ In quadrature mode, encoder counting scenarios are as follows:
44+ ----------------------------------------------------------------
45+ | Active | Level on | IN1 signal | IN2 signal |
46+ | edge | opposite |------------------------------------------
47+ | | signal | Rising | Falling | Rising | Falling |
48+ ----------------------------------------------------------------
49+ | Rising | High -> | Down | - | Up | - |
50+ | edge | Low -> | Up | - | Down | - |
51+ ----------------------------------------------------------------
52+ | Falling | High -> | - | Up | - | Down |
53+ | edge | Low -> | - | Down | - | Up |
54+ ----------------------------------------------------------------
55+ | Both | High -> | Down | Up | Up | Down |
56+ | edges | Low -> | Up | Down | Down | Up |
57+ ----------------------------------------------------------------
Documentation/ABI/testing/sysfs-bus-thunderbolt+2−0
@@ -45,6 +45,8 @@ Contact: thunderbolt-software@lists.01.org · 44 unmodified lines
4545 Description: When a devices supports Thunderbolt secure connect it will
4646 have this attribute. Writing 32 byte hex string changes
4747 authorization to use the secure connection method instead.
48+ Writing an empty string clears the key and regular connection
49+ method can be used again.
4850
4951 What: /sys/bus/thunderbolt/devices/.../device
5052 Date: Sep 2017
Documentation/ABI/testing/sysfs-bus-usb-lvstest+13−0
@@ -45,3 +45,16 @@ Contact: Pratyush Anand <pratyush.anand@gmail.com> · 44 unmodified lines
4545 Description:
4646 Write to this node to issue "U3 exit" for Link Layer
4747 Validation device. It is needed for TD.7.36.
48+
49+What: /sys/bus/usb/devices/.../enable_compliance
50+Date: July 2017
51+Description:
52+ Write to this node to set the port to compliance mode to test
53+ with Link Layer Validation device. It is needed for TD.7.34.
54+
55+What: /sys/bus/usb/devices/.../warm_reset
56+Date: July 2017
57+Description:
58+ Write to this node to issue "Warm Reset" for Link Layer Validation
59+ device. It may be needed to properly reset an xHCI 1.1 host port if
60+ compliance mode needed to be explicitly enabled.
Documentation/ABI/testing/sysfs-driver-altera-cvp+8−0
@@ -0,0 +1,8 @@
1+What: /sys/bus/pci/drivers/altera-cvp/chkcfg
2+Date: May 2017
3+Kernel Version: 4.13
4+Contact: Anatolij Gustschin <agust@denx.de>
5+Description:
6+ Contains either 1 or 0 and controls if configuration
7+ error checking in altera-cvp driver is turned on or
8+ off.
Documentation/ABI/testing/sysfs-firmware-opal-powercap+31−0
@@ -0,0 +1,31 @@
1+What: /sys/firmware/opal/powercap
2+Date: August 2017
3+Contact: Linux for PowerPC mailing list <linuxppc-dev@ozlabs.org>
4+Description: Powercap directory for Powernv (P8, P9) servers
5+
6+ Each folder in this directory contains a
7+ power-cappable component.
8+
9+What: /sys/firmware/opal/powercap/system-powercap
10+ /sys/firmware/opal/powercap/system-powercap/powercap-min
11+ /sys/firmware/opal/powercap/system-powercap/powercap-max
12+ /sys/firmware/opal/powercap/system-powercap/powercap-current
13+Date: August 2017
14+Contact: Linux for PowerPC mailing list <linuxppc-dev@ozlabs.org>
15+Description: System powercap directory and attributes applicable for
16+ Powernv (P8, P9) servers
17+
18+ This directory provides powercap information. It
19+ contains below sysfs attributes:
20+
21+ - powercap-min : This file provides the minimum
22+ possible powercap in Watt units
23+
24+ - powercap-max : This file provides the maximum
25+ possible powercap in Watt units
26+
27+ - powercap-current : This file provides the current
28+ powercap set on the system. Writing to this file
29+ creates a request for setting a new-powercap. The
30+ powercap requested must be between powercap-min
31+ and powercap-max.
Documentation/ABI/testing/sysfs-firmware-opal-psr+18−0
@@ -0,0 +1,18 @@
1+What: /sys/firmware/opal/psr
2+Date: August 2017
3+Contact: Linux for PowerPC mailing list <linuxppc-dev@ozlabs.org>
4+Description: Power-Shift-Ratio directory for Powernv P9 servers
5+
6+ Power-Shift-Ratio allows to provide hints the firmware
7+ to shift/throttle power between different entities in
8+ the system. Each attribute in this directory indicates
9+ a settable PSR.
10+
11+What: /sys/firmware/opal/psr/cpu_to_gpu_X
12+Date: August 2017
13+Contact: Linux for PowerPC mailing list <linuxppc-dev@ozlabs.org>
14+Description: PSR sysfs attributes for Powernv P9 servers
15+
16+ Power-Shift-Ratio between CPU and GPU for a given chip
17+ with chip-id X. This file gives the ratio (0-100)
18+ which is used by OCC for power-capping.
Documentation/ABI/testing/sysfs-fs-f2fs+21−0
@@ -57,6 +57,15 @@ Contact: "Jaegeuk Kim" <jaegeuk.kim@samsung.com> · 56 unmodified lines
5757 Description:
5858 Controls the issue rate of small discard commands.
5959
60+What: /sys/fs/f2fs/<disk>/discard_granularity
61+Date: July 2017
62+Contact: "Chao Yu" <yuchao0@huawei.com>
63+Description:
64+ Controls discard granularity of inner discard thread, inner thread
65+ will not issue discards with size that is smaller than granularity.
66+ The unit size is one block, now only support configuring in range
67+ of [1, 512].
68+
6069 What: /sys/fs/f2fs/<disk>/max_victim_search
6170 Date: January 2014
6271 Contact: "Jaegeuk Kim" <jaegeuk.kim@samsung.com>
@@ -130,3 +139,15 @@ Date: June 2017 · 67 unmodified lines
130139 Contact: "Chao Yu" <yuchao0@huawei.com>
131140 Description:
132141 Controls current reserved blocks in system.
142+
143+What: /sys/fs/f2fs/<disk>/gc_urgent
144+Date: August 2017
145+Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
146+Description:
147+ Do background GC agressively
148+
149+What: /sys/fs/f2fs/<disk>/gc_urgent_sleep_time
150+Date: August 2017
151+Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
152+Description:
153+ Controls sleep time of GC urgent mode
Documentation/ABI/testing/sysfs-kernel-mm-swap+26−0
@@ -0,0 +1,26 @@
1+What: /sys/kernel/mm/swap/
2+Date: August 2017
3+Contact: Linux memory management mailing list <linux-mm@kvack.org>
4+Description: Interface for swapping
5+
6+What: /sys/kernel/mm/swap/vma_ra_enabled
7+Date: August 2017
8+Contact: Linux memory management mailing list <linux-mm@kvack.org>
9+Description: Enable/disable VMA based swap readahead.
10+
11+ If set to true, the VMA based swap readahead algorithm
12+ will be used for swappable anonymous pages mapped in a
13+ VMA, and the global swap readahead algorithm will be
14+ still used for tmpfs etc. other users. If set to
15+ false, the global swap readahead algorithm will be
16+ used for all swappable pages.
17+
18+What: /sys/kernel/mm/swap/vma_ra_max_order
19+Date: August 2017
20+Contact: Linux memory management mailing list <linux-mm@kvack.org>
21+Description: The max readahead size in order for VMA based swap readahead
22+
23+ VMA based swap readahead algorithm will readahead at
24+ most 1 << max_order pages for each readahead. The
25+ real readahead size for each readahead will be scaled
26+ according to the estimation algorithm.
Documentation/ABI/testing/sysfs-power+12−0
@@ -273,3 +273,15 @@ Description: · 272 unmodified lines
273273
274274 This output is useful for system wakeup diagnostics of spurious
275275 wakeup interrupts.
276+
277+What: /sys/power/pm_debug_messages
278+Date: July 2017
279+Contact: Rafael J. Wysocki <rjw@rjwysocki.net>
280+Description:
281+ The /sys/power/pm_debug_messages file controls the printing
282+ of debug messages from the system suspend/hiberbation
283+ infrastructure to the kernel log.
284+
285+ Writing a "1" to this file enables the debug messages and
286+ writing a "0" (default) to it disables them. Reads from
287+ this file return the current value.
Documentation/DMA-API.txt+17−38
@@ -515,14 +515,15 @@ API at all. · 514 unmodified lines
515515 ::
516516
517517 void *
518− dma_alloc_noncoherent(struct device *dev, size_t size,
519− dma_addr_t *dma_handle, gfp_t flag)
518+ dma_alloc_attrs(struct device *dev, size_t size, dma_addr_t *dma_handle,
519+ gfp_t flag, unsigned long attrs)
520520
521−Identical to dma_alloc_coherent() except that the platform will
522−choose to return either consistent or non-consistent memory as it sees
523−fit. By using this API, you are guaranteeing to the platform that you
524−have all the correct and necessary sync points for this memory in the
525−driver should it choose to return non-consistent memory.
521+Identical to dma_alloc_coherent() except that when the
522+DMA_ATTR_NON_CONSISTENT flags is passed in the attrs argument, the
523+platform will choose to return either consistent or non-consistent memory
524+as it sees fit. By using this API, you are guaranteeing to the platform
525+that you have all the correct and necessary sync points for this memory
526+in the driver should it choose to return non-consistent memory.
526527
527528 Note: where the platform can return consistent memory, it will
528529 guarantee that the sync points become nops.
@@ -535,12 +536,13 @@ that simply cannot make consistent memory. · 6 unmodified lines
535536 ::
536537
537538 void
538− dma_free_noncoherent(struct device *dev, size_t size, void *cpu_addr,
539− dma_addr_t dma_handle)
539+ dma_free_attrs(struct device *dev, size_t size, void *cpu_addr,
540+ dma_addr_t dma_handle, unsigned long attrs)
540541
541−Free memory allocated by the nonconsistent API. All parameters must
542−be identical to those passed in (and returned by
543−dma_alloc_noncoherent()).
542+Free memory allocated by the dma_alloc_attrs(). All parameters common
543+parameters must identical to those otherwise passed to dma_fre_coherent,
544+and the attrs argument must be identical to the attrs passed to
545+dma_alloc_attrs().
544546
545547 ::
546548
@@ -564,8 +566,8 @@ memory or doing partial flushes. · 17 unmodified lines
564566 dma_cache_sync(struct device *dev, void *vaddr, size_t size,
565567 enum dma_data_direction direction)
566568
567−Do a partial sync of memory that was allocated by
568−dma_alloc_noncoherent(), starting at virtual address vaddr and
569+Do a partial sync of memory that was allocated by dma_alloc_attrs() with
570+the DMA_ATTR_NON_CONSISTENT flag starting at virtual address vaddr and
569571 continuing on for size. Again, you *must* observe the cache line
570572 boundaries when doing this.
571573
@@ -590,34 +592,11 @@ size is the size of the area (must be multiples of PAGE_SIZE). · 18 unmodified lines
590592
591593 flags can be ORed together and are:
592594
593−- DMA_MEMORY_MAP - request that the memory returned from
594− dma_alloc_coherent() be directly writable.
595−
596−- DMA_MEMORY_IO - request that the memory returned from
597− dma_alloc_coherent() be addressable using read()/write()/memcpy_toio() etc.
598−
599−One or both of these flags must be present.
600−
601−- DMA_MEMORY_INCLUDES_CHILDREN - make the declared memory be allocated by
602− dma_alloc_coherent of any child devices of this one (for memory residing
603− on a bridge).
604−
605595 - DMA_MEMORY_EXCLUSIVE - only allocate memory from the declared regions.
606596 Do not allow dma_alloc_coherent() to fall back to system memory when
607597 it's out of memory in the declared region.
608598
609−The return value will be either DMA_MEMORY_MAP or DMA_MEMORY_IO and
610−must correspond to a passed in flag (i.e. no returning DMA_MEMORY_IO
611−if only DMA_MEMORY_MAP were passed in) for success or zero for
612−failure.
613−
614−Note, for DMA_MEMORY_IO returns, all subsequent memory returned by
615−dma_alloc_coherent() may no longer be accessed directly, but instead
616−must be accessed using the correct bus functions. If your driver
617−isn't prepared to handle this contingency, it should not specify
618−DMA_MEMORY_IO in the input flags.
619−
620−As a simplification for the platforms, only **one** such region of
599+As a simplification for the platforms, only *one* such region of
621600 memory may be declared per device.
622601
623602 For reasons of efficiency, most platforms choose to track the declared
Documentation/Makefile+2−10
@@ -22,6 +22,8 @@ ifeq ($(HAVE_SPHINX),0) · 21 unmodified lines
2222
2323 .DEFAULT:
2424 $(warning The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed and in PATH, or set the SPHINXBUILD make variable to point to the full path of the '$(SPHINXBUILD)' executable.)
25+ @echo
26+ @./scripts/sphinx-pre-install
2527 @echo " SKIP Sphinx $@ target."
2628
2729 else # HAVE_SPHINX
@@ -95,16 +97,6 @@ endif # HAVE_SPHINX · 67 unmodified lines
9597 # The following targets are independent of HAVE_SPHINX, and the rules should
9698 # work or silently pass without Sphinx.
9799
98−# no-ops for the Sphinx toolchain
99−sgmldocs:
100− @:
101−psdocs:
102− @:
103−mandocs:
104− @:
105−installmandocs:
106− @:
107−
108100 cleandocs:
109101 $(Q)rm -rf $(BUILDDIR)
110102 $(Q)$(MAKE) BUILDDIR=$(abspath $(BUILDDIR)) $(build)=Documentation/media clean
Documentation/RCU/Design/Requirements/Requirements.html+130−0
@@ -2080,6 +2080,8 @@ Some of the relevant points of interest are as follows: · 2079 unmodified lines
20802080 <li> <a href="#Scheduler and RCU">Scheduler and RCU</a>.
20812081 <li> <a href="#Tracing and RCU">Tracing and RCU</a>.
20822082 <li> <a href="#Energy Efficiency">Energy Efficiency</a>.
2083+<li> <a href="#Scheduling-Clock Interrupts and RCU">
2084+ Scheduling-Clock Interrupts and RCU</a>.
20832085 <li> <a href="#Memory Efficiency">Memory Efficiency</a>.
20842086 <li> <a href="#Performance, Scalability, Response Time, and Reliability">
20852087 Performance, Scalability, Response Time, and Reliability</a>.
@@ -2532,6 +2534,134 @@ I learned of many of these requirements via angry phone calls: · 446 unmodified lines
25322534 Flaming me on the Linux-kernel mailing list was apparently not
25332535 sufficient to fully vent their ire at RCU's energy-efficiency bugs!
25342536
2537+<h3><a name="Scheduling-Clock Interrupts and RCU">
2538+Scheduling-Clock Interrupts and RCU</a></h3>
2539+
2540+<p>
2541+The kernel transitions between in-kernel non-idle execution, userspace
2542+execution, and the idle loop.
2543+Depending on kernel configuration, RCU handles these states differently:
2544+
2545+<table border=3>
2546+<tr><th><tt>HZ</tt> Kconfig</th>
2547+ <th>In-Kernel</th>
2548+ <th>Usermode</th>
2549+ <th>Idle</th></tr>
2550+<tr><th align="left"><tt>HZ_PERIODIC</tt></th>
2551+ <td>Can rely on scheduling-clock interrupt.</td>
2552+ <td>Can rely on scheduling-clock interrupt and its
2553+ detection of interrupt from usermode.</td>
2554+ <td>Can rely on RCU's dyntick-idle detection.</td></tr>
2555+<tr><th align="left"><tt>NO_HZ_IDLE</tt></th>
2556+ <td>Can rely on scheduling-clock interrupt.</td>
2557+ <td>Can rely on scheduling-clock interrupt and its
2558+ detection of interrupt from usermode.</td>
2559+ <td>Can rely on RCU's dyntick-idle detection.</td></tr>
2560+<tr><th align="left"><tt>NO_HZ_FULL</tt></th>
2561+ <td>Can only sometimes rely on scheduling-clock interrupt.
2562+ In other cases, it is necessary to bound kernel execution
2563+ times and/or use IPIs.</td>
2564+ <td>Can rely on RCU's dyntick-idle detection.</td>
2565+ <td>Can rely on RCU's dyntick-idle detection.</td></tr>
2566+</table>
2567+
2568+<table>
2569+<tr><th>&nbsp;</th></tr>
2570+<tr><th align="left">Quick Quiz:</th></tr>
2571+<tr><td>
2572+ Why can't <tt>NO_HZ_FULL</tt> in-kernel execution rely on the
2573+ scheduling-clock interrupt, just like <tt>HZ_PERIODIC</tt>
2574+ and <tt>NO_HZ_IDLE</tt> do?
2575+</td></tr>
2576+<tr><th align="left">Answer:</th></tr>
2577+<tr><td bgcolor="#ffffff"><font color="ffffff">
2578+ Because, as a performance optimization, <tt>NO_HZ_FULL</tt>
2579+ does not necessarily re-enable the scheduling-clock interrupt
2580+ on entry to each and every system call.
2581+</font></td></tr>
2582+<tr><td>&nbsp;</td></tr>
2583+</table>
2584+
2585+<p>
2586+However, RCU must be reliably informed as to whether any given
2587+CPU is currently in the idle loop, and, for <tt>NO_HZ_FULL</tt>,
2588+also whether that CPU is executing in usermode, as discussed
2589+<a href="#Energy Efficiency">earlier</a>.
2590+It also requires that the scheduling-clock interrupt be enabled when
2591+RCU needs it to be:
2592+
2593+<ol>
2594+<li> If a CPU is either idle or executing in usermode, and RCU believes
2595+ it is non-idle, the scheduling-clock tick had better be running.
2596+ Otherwise, you will get RCU CPU stall warnings. Or at best,
2597+ very long (11-second) grace periods, with a pointless IPI waking
2598+ the CPU from time to time.
2599+<li> If a CPU is in a portion of the kernel that executes RCU read-side
2600+ critical sections, and RCU believes this CPU to be idle, you will get
2601+ random memory corruption. <b>DON'T DO THIS!!!</b>
2602+
2603+ <br>This is one reason to test with lockdep, which will complain
2604+ about this sort of thing.
2605+<li> If a CPU is in a portion of the kernel that is absolutely
2606+ positively no-joking guaranteed to never execute any RCU read-side
2607+ critical sections, and RCU believes this CPU to to be idle,
2608+ no problem. This sort of thing is used by some architectures
2609+ for light-weight exception handlers, which can then avoid the
2610+ overhead of <tt>rcu_irq_enter()</tt> and <tt>rcu_irq_exit()</tt>
2611+ at exception entry and exit, respectively.
2612+ Some go further and avoid the entireties of <tt>irq_enter()</tt>
2613+ and <tt>irq_exit()</tt>.
2614+
2615+ <br>Just make very sure you are running some of your tests with
2616+ <tt>CONFIG_PROVE_RCU=y</tt>, just in case one of your code paths
2617+ was in fact joking about not doing RCU read-side critical sections.
2618+<li> If a CPU is executing in the kernel with the scheduling-clock
2619+ interrupt disabled and RCU believes this CPU to be non-idle,
2620+ and if the CPU goes idle (from an RCU perspective) every few
2621+ jiffies, no problem. It is usually OK for there to be the
2622+ occasional gap between idle periods of up to a second or so.
2623+
2624+ <br>If the gap grows too long, you get RCU CPU stall warnings.
2625+<li> If a CPU is either idle or executing in usermode, and RCU believes
2626+ it to be idle, of course no problem.
2627+<li> If a CPU is executing in the kernel, the kernel code
2628+ path is passing through quiescent states at a reasonable
2629+ frequency (preferably about once per few jiffies, but the
2630+ occasional excursion to a second or so is usually OK) and the
2631+ scheduling-clock interrupt is enabled, of course no problem.
2632+
2633+ <br>If the gap between a successive pair of quiescent states grows
2634+ too long, you get RCU CPU stall warnings.
2635+</ol>
2636+
2637+<table>
2638+<tr><th>&nbsp;</th></tr>
2639+<tr><th align="left">Quick Quiz:</th></tr>
2640+<tr><td>
2641+ But what if my driver has a hardware interrupt handler
2642+ that can run for many seconds?
2643+ I cannot invoke <tt>schedule()</tt> from an hardware
2644+ interrupt handler, after all!
2645+</td></tr>
2646+<tr><th align="left">Answer:</th></tr>
2647+<tr><td bgcolor="#ffffff"><font color="ffffff">
2648+ One approach is to do <tt>rcu_irq_exit();rcu_irq_enter();</tt>
2649+ every so often.
2650+ But given that long-running interrupt handlers can cause
2651+ other problems, not least for response time, shouldn't you
2652+ work to keep your interrupt handler's runtime within reasonable
2653+ bounds?
2654+</font></td></tr>
2655+<tr><td>&nbsp;</td></tr>
2656+</table>
2657+
2658+<p>
2659+But as long as RCU is properly informed of kernel state transitions between
2660+in-kernel execution, usermode execution, and idle, and as long as the
2661+scheduling-clock interrupt is enabled when RCU needs it to be, you
2662+can rest assured that the bugs you encounter will be in some other
2663+part of RCU or some other part of the kernel!
2664+
25352665 <h3><a name="Memory Efficiency">Memory Efficiency</a></h3>
25362666
25372667 <p>
Documentation/RCU/checklist.txt+85−36
@@ -23,6 +23,14 @@ over a rather long period of time, but improvements are always welcome! · 22 unmodified lines
2323 Yet another exception is where the low real-time latency of RCU's
2424 read-side primitives is critically important.
2525
26+ One final exception is where RCU readers are used to prevent
27+ the ABA problem (https://en.wikipedia.org/wiki/ABA_problem)
28+ for lockless updates. This does result in the mildly
29+ counter-intuitive situation where rcu_read_lock() and
30+ rcu_read_unlock() are used to protect updates, however, this
31+ approach provides the same potential simplifications that garbage
32+ collectors do.
33+
2634 1. Does the update code have proper mutual exclusion?
2735
2836 RCU does allow -readers- to run (almost) naked, but -writers- must
@@ -40,7 +48,9 @@ over a rather long period of time, but improvements are always welcome! · 11 unmodified lines
4048 explain how this single task does not become a major bottleneck on
4149 big multiprocessor machines (for example, if the task is updating
4250 information relating to itself that other tasks can read, there
43− by definition can be no bottleneck).
51+ by definition can be no bottleneck). Note that the definition
52+ of "large" has changed significantly: Eight CPUs was "large"
53+ in the year 2000, but a hundred CPUs was unremarkable in 2017.
4454
4555 2. Do the RCU read-side critical sections make proper use of
4656 rcu_read_lock() and friends? These primitives are needed
@@ -55,6 +65,12 @@ over a rather long period of time, but improvements are always welcome! · 8 unmodified lines
5565 Disabling of preemption can serve as rcu_read_lock_sched(), but
5666 is less readable.
5767
68+ Letting RCU-protected pointers "leak" out of an RCU read-side
69+ critical section is every bid as bad as letting them leak out
70+ from under a lock. Unless, of course, you have arranged some
71+ other means of protection, such as a lock or a reference count
72+ -before- letting them out of the RCU read-side critical section.
73+
5874 3. Does the update code tolerate concurrent accesses?
5975
6076 The whole point of RCU is to permit readers to run without
@@ -78,10 +94,10 @@ over a rather long period of time, but improvements are always welcome! · 17 unmodified lines
7894
7995 This works quite well, also.
8096
81− c. Make updates appear atomic to readers. For example,
97+ c. Make updates appear atomic to readers. For example,
8298 pointer updates to properly aligned fields will
8399 appear atomic, as will individual atomic primitives.
84− Sequences of perations performed under a lock will -not-
100+ Sequences of operations performed under a lock will -not-
85101 appear to be atomic to RCU readers, nor will sequences
86102 of multiple atomic primitives.
87103
@@ -168,8 +184,8 @@ over a rather long period of time, but improvements are always welcome! · 80 unmodified lines
168184
169185 5. If call_rcu(), or a related primitive such as call_rcu_bh(),
170186 call_rcu_sched(), or call_srcu() is used, the callback function
171− must be written to be called from softirq context. In particular,
172− it cannot block.
187+ will be called from softirq context. In particular, it cannot
188+ block.
173189
174190 6. Since synchronize_rcu() can block, it cannot be called from
175191 any sort of irq context. The same rule applies for
@@ -178,11 +194,14 @@ over a rather long period of time, but improvements are always welcome! · 2 unmodified lines
178194 synchronize_sched_expedite(), and synchronize_srcu_expedited().
179195
180196 The expedited forms of these primitives have the same semantics
181− as the non-expedited forms, but expediting is both expensive
182− and unfriendly to real-time workloads. Use of the expedited
183− primitives should be restricted to rare configuration-change
184− operations that would not normally be undertaken while a real-time
185− workload is running.
197+ as the non-expedited forms, but expediting is both expensive and
198+ (with the exception of synchronize_srcu_expedited()) unfriendly
199+ to real-time workloads. Use of the expedited primitives should
200+ be restricted to rare configuration-change operations that would
201+ not normally be undertaken while a real-time workload is running.
202+ However, real-time workloads can use rcupdate.rcu_normal kernel
203+ boot parameter to completely disable expedited grace periods,
204+ though this might have performance implications.
186205
187206 In particular, if you find yourself invoking one of the expedited
188207 primitives repeatedly in a loop, please do everyone a favor:
@@ -193,11 +212,6 @@ over a rather long period of time, but improvements are always welcome! · 4 unmodified lines
193212 of the system, especially to real-time workloads running on
194213 the rest of the system.
195214
196− In addition, it is illegal to call the expedited forms from
197− a CPU-hotplug notifier, or while holding a lock that is acquired
198− by a CPU-hotplug notifier. Failing to observe this restriction
199− will result in deadlock.
200−
201215 7. If the updater uses call_rcu() or synchronize_rcu(), then the
202216 corresponding readers must use rcu_read_lock() and
203217 rcu_read_unlock(). If the updater uses call_rcu_bh() or
@@ -321,7 +335,7 @@ over a rather long period of time, but improvements are always welcome! · 117 unmodified lines
321335 Similarly, disabling preemption is not an acceptable substitute
322336 for rcu_read_lock(). Code that attempts to use preemption
323337 disabling where it should be using rcu_read_lock() will break
324− in real-time kernel builds.
338+ in CONFIG_PREEMPT=y kernel builds.
325339
326340 If you want to wait for interrupt handlers, NMI handlers, and
327341 code under the influence of preempt_disable(), you instead
@@ -356,23 +370,22 @@ over a rather long period of time, but improvements are always welcome! · 28 unmodified lines
356370 not the case, a self-spawning RCU callback would prevent the
357371 victim CPU from ever going offline.)
358372
359−14. SRCU (srcu_read_lock(), srcu_read_unlock(), srcu_dereference(),
360− synchronize_srcu(), synchronize_srcu_expedited(), and call_srcu())
361− may only be invoked from process context. Unlike other forms of
362− RCU, it -is- permissible to block in an SRCU read-side critical
363− section (demarked by srcu_read_lock() and srcu_read_unlock()),
364− hence the "SRCU": "sleepable RCU". Please note that if you
365− don't need to sleep in read-side critical sections, you should be
366− using RCU rather than SRCU, because RCU is almost always faster
367− and easier to use than is SRCU.
368−
369− Also unlike other forms of RCU, explicit initialization
370− and cleanup is required via init_srcu_struct() and
371− cleanup_srcu_struct(). These are passed a "struct srcu_struct"
372− that defines the scope of a given SRCU domain. Once initialized,
373− the srcu_struct is passed to srcu_read_lock(), srcu_read_unlock()
374− synchronize_srcu(), synchronize_srcu_expedited(), and call_srcu().
375− A given synchronize_srcu() waits only for SRCU read-side critical
373+14. Unlike other forms of RCU, it -is- permissible to block in an
374+ SRCU read-side critical section (demarked by srcu_read_lock()
375+ and srcu_read_unlock()), hence the "SRCU": "sleepable RCU".
376+ Please note that if you don't need to sleep in read-side critical
377+ sections, you should be using RCU rather than SRCU, because RCU
378+ is almost always faster and easier to use than is SRCU.
379+
380+ Also unlike other forms of RCU, explicit initialization and
381+ cleanup is required either at build time via DEFINE_SRCU()
382+ or DEFINE_STATIC_SRCU() or at runtime via init_srcu_struct()
383+ and cleanup_srcu_struct(). These last two are passed a
384+ "struct srcu_struct" that defines the scope of a given
385+ SRCU domain. Once initialized, the srcu_struct is passed
386+ to srcu_read_lock(), srcu_read_unlock() synchronize_srcu(),
387+ synchronize_srcu_expedited(), and call_srcu(). A given
388+ synchronize_srcu() waits only for SRCU read-side critical
376389 sections governed by srcu_read_lock() and srcu_read_unlock()
377390 calls that have been passed the same srcu_struct. This property
378391 is what makes sleeping read-side critical sections tolerable --
@@ -390,10 +403,16 @@ over a rather long period of time, but improvements are always welcome! · 11 unmodified lines
390403 Therefore, SRCU should be used in preference to rw_semaphore
391404 only in extremely read-intensive situations, or in situations
392405 requiring SRCU's read-side deadlock immunity or low read-side
393− realtime latency.
406+ realtime latency. You should also consider percpu_rw_semaphore
407+ when you need lightweight readers.
394408
395− Note that, rcu_assign_pointer() relates to SRCU just as it does
396− to other forms of RCU.
409+ SRCU's expedited primitive (synchronize_srcu_expedited())
410+ never sends IPIs to other CPUs, so it is easier on
411+ real-time workloads than is synchronize_rcu_expedited(),
412+ synchronize_rcu_bh_expedited() or synchronize_sched_expedited().
413+
414+ Note that rcu_dereference() and rcu_assign_pointer() relate to
415+ SRCU just as they do to other forms of RCU.
397416
398417 15. The whole point of call_rcu(), synchronize_rcu(), and friends
399418 is to wait until all pre-existing readers have finished before
@@ -435,3 +454,33 @@ over a rather long period of time, but improvements are always welcome! · 35 unmodified lines
435454
436455 These debugging aids can help you find problems that are
437456 otherwise extremely difficult to spot.
457+
458+18. If you register a callback using call_rcu(), call_rcu_bh(),
459+ call_rcu_sched(), or call_srcu(), and pass in a function defined
460+ within a loadable module, then it in necessary to wait for
461+ all pending callbacks to be invoked after the last invocation
462+ and before unloading that module. Note that it is absolutely
463+ -not- sufficient to wait for a grace period! The current (say)
464+ synchronize_rcu() implementation waits only for all previous
465+ callbacks registered on the CPU that synchronize_rcu() is running
466+ on, but it is -not- guaranteed to wait for callbacks registered
467+ on other CPUs.
468+
469+ You instead need to use one of the barrier functions:
470+
471+ o call_rcu() -> rcu_barrier()
472+ o call_rcu_bh() -> rcu_barrier_bh()
473+ o call_rcu_sched() -> rcu_barrier_sched()
474+ o call_srcu() -> srcu_barrier()
475+
476+ However, these barrier functions are absolutely -not- guaranteed
477+ to wait for a grace period. In fact, if there are no call_rcu()
478+ callbacks waiting anywhere in the system, rcu_barrier() is within
479+ its rights to return immediately.
480+
481+ So if you need to wait for both an RCU grace period and for
482+ all pre-existing call_rcu() callbacks, you will need to execute
483+ both rcu_barrier() and synchronize_rcu(), if necessary, using
484+ something like workqueues to to execute them concurrently.
485+
486+ See rcubarrier.txt for more information.
Documentation/RCU/rcu.txt+3−6
@@ -76,15 +76,12 @@ o I hear that RCU is patented? What is with that? · 75 unmodified lines
7676 Of these, one was allowed to lapse by the assignee, and the
7777 others have been contributed to the Linux kernel under GPL.
7878 There are now also LGPL implementations of user-level RCU
79− available (http://lttng.org/?q=node/18).
79+ available (http://liburcu.org/).
8080
8181 o I hear that RCU needs work in order to support realtime kernels?
8282
83− This work is largely completed. Realtime-friendly RCU can be
84− enabled via the CONFIG_PREEMPT_RCU kernel configuration
85− parameter. However, work is in progress for enabling priority
86− boosting of preempted RCU read-side critical sections. This is
87− needed if you have CPU-bound realtime threads.
83+ Realtime-friendly RCU can be enabled via the CONFIG_PREEMPT_RCU
84+ kernel configuration parameter.
8885
8986 o Where can I find more information on RCU?
9087
Documentation/RCU/rcu_dereference.txt+21−40
@@ -25,35 +25,35 @@ o You must use one of the rcu_dereference() family of primitives · 24 unmodified lines
2525 for an example where the compiler can in fact deduce the exact
2626 value of the pointer, and thus cause misordering.
2727
28+o You are only permitted to use rcu_dereference on pointer values.
29+ The compiler simply knows too much about integral values to
30+ trust it to carry dependencies through integer operations.
31+ There are a very few exceptions, namely that you can temporarily
32+ cast the pointer to uintptr_t in order to:
33+
34+ o Set bits and clear bits down in the must-be-zero low-order
35+ bits of that pointer. This clearly means that the pointer
36+ must have alignment constraints, for example, this does
37+ -not- work in general for char* pointers.
38+
39+ o XOR bits to translate pointers, as is done in some
40+ classic buddy-allocator algorithms.
41+
42+ It is important to cast the value back to pointer before
43+ doing much of anything else with it.
44+
2845 o Avoid cancellation when using the "+" and "-" infix arithmetic
2946 operators. For example, for a given variable "x", avoid
30− "(x-x)". There are similar arithmetic pitfalls from other
31− arithmetic operators, such as "(x*0)", "(x/(x+1))" or "(x%1)".
32− The compiler is within its rights to substitute zero for all of
33− these expressions, so that subsequent accesses no longer depend
34− on the rcu_dereference(), again possibly resulting in bugs due
35− to misordering.
47+ "(x-(uintptr_t)x)" for char* pointers. The compiler is within its
48+ rights to substitute zero for this sort of expression, so that
49+ subsequent accesses no longer depend on the rcu_dereference(),
50+ again possibly resulting in bugs due to misordering.
3651
3752 Of course, if "p" is a pointer from rcu_dereference(), and "a"
3853 and "b" are integers that happen to be equal, the expression
3954 "p+a-b" is safe because its value still necessarily depends on
4055 the rcu_dereference(), thus maintaining proper ordering.
4156
42−o Avoid all-zero operands to the bitwise "&" operator, and
43− similarly avoid all-ones operands to the bitwise "|" operator.
44− If the compiler is able to deduce the value of such operands,
45− it is within its rights to substitute the corresponding constant
46− for the bitwise operation. Once again, this causes subsequent
47− accesses to no longer depend on the rcu_dereference(), causing
48− bugs due to misordering.
49−
50− Please note that single-bit operands to bitwise "&" can also
51− be dangerous. At this point, the compiler knows that the
52− resulting value can only take on one of two possible values.
53− Therefore, a very small amount of additional information will
54− allow the compiler to deduce the exact value, which again can
55− result in misordering.
56−
5757 o If you are using RCU to protect JITed functions, so that the
5858 "()" function-invocation operator is applied to a value obtained
5959 (directly or indirectly) from rcu_dereference(), you may need to
@@ -61,25 +61,6 @@ o If you are using RCU to protect JITed functions, so that the · 1 unmodified line
6161 This issue arises on some systems when a newly JITed function is
6262 using the same memory that was used by an earlier JITed function.
6363
64−o Do not use the results from the boolean "&&" and "||" when
65− dereferencing. For example, the following (rather improbable)
66− code is buggy:
67−
68− int *p;
69− int *q;
70−
71− ...
72−
73− p = rcu_dereference(gp)
74− q = &global_q;
75− q += p != &oom_p1 && p != &oom_p2;
76− r1 = *q; /* BUGGY!!! */
77−
78− The reason this is buggy is that "&&" and "||" are often compiled
79− using branches. While weak-memory machines such as ARM or PowerPC
80− do order stores after such branches, they can speculate loads,
81− which can result in misordering bugs.
82−
8364 o Do not use the results from relational operators ("==", "!=",
8465 ">", ">=", "<", or "<=") when dereferencing. For example,
8566 the following (quite strange) code is buggy:
Documentation/RCU/rcubarrier.txt+5−0
@@ -263,6 +263,11 @@ Quick Quiz #2: What happens if CPU 0's rcu_barrier_func() executes · 262 unmodified lines
263263 are delayed for a full grace period? Couldn't this result in
264264 rcu_barrier() returning prematurely?
265265
266+The current rcu_barrier() implementation is more complex, due to the need
267+to avoid disturbing idle CPUs (especially on battery-powered systems)
268+and the need to minimally disturb non-idle CPUs in real-time systems.
269+However, the code above illustrates the concepts.
270+
266271
267272 rcu_barrier() Summary
268273
Documentation/RCU/torture.txt+14−6
@@ -276,15 +276,17 @@ o "Free-Block Circulation": Shows the number of torture structures · 275 unmodified lines
276276 somehow gets incremented farther than it should.
277277
278278 Different implementations of RCU can provide implementation-specific
279−additional information. For example, SRCU provides the following
279+additional information. For example, Tree SRCU provides the following
280280 additional line:
281281
282− srcu-torture: per-CPU(idx=1): 0(0,1) 1(0,1) 2(0,0) 3(0,1)
282+ srcud-torture: Tree SRCU per-CPU(idx=0): 0(35,-21) 1(-4,24) 2(1,1) 3(-26,20) 4(28,-47) 5(-9,4) 6(-10,14) 7(-14,11) T(1,6)
283283
284−This line shows the per-CPU counter state. The numbers in parentheses are
285−the values of the "old" and "current" counters for the corresponding CPU.
286−The "idx" value maps the "old" and "current" values to the underlying
287−array, and is useful for debugging.
284+This line shows the per-CPU counter state, in this case for Tree SRCU
285+using a dynamically allocated srcu_struct (hence "srcud-" rather than
286+"srcu-"). The numbers in parentheses are the values of the "old" and
287+"current" counters for the corresponding CPU. The "idx" value maps the
288+"old" and "current" values to the underlying array, and is useful for
289+debugging. The final "T" entry contains the totals of the counters.
288290
289291
290292 USAGE
@@ -304,3 +306,9 @@ checked for such errors. The "rmmod" command forces a "SUCCESS", · 13 unmodified lines
304306 "FAILURE", or "RCU_HOTPLUG" indication to be printk()ed. The first
305307 two are self-explanatory, while the last indicates that while there
306308 were no RCU failures, CPU-hotplug problems were detected.
309+
310+However, the tools/testing/selftests/rcutorture/bin/kvm.sh script
311+provides better automation, including automatic failure analysis.
312+It assumes a qemu/kvm-enabled platform, and runs guest OSes out of initrd.
313+See tools/testing/selftests/rcutorture/doc/initrd.txt for instructions
314+on setting up such an initrd.
Documentation/RCU/whatisRCU.txt+4−1
@@ -890,6 +890,8 @@ SRCU: Critical sections Grace period Barrier · 889 unmodified lines
890890 srcu_read_lock_held
891891
892892 SRCU: Initialization/cleanup
893+ DEFINE_SRCU
894+ DEFINE_STATIC_SRCU
893895 init_srcu_struct
894896 cleanup_srcu_struct
895897
@@ -913,7 +915,8 @@ a. Will readers need to block? If so, you need SRCU. · 17 unmodified lines
913915 b. What about the -rt patchset? If readers would need to block
914916 in an non-rt kernel, you need SRCU. If readers would block
915917 in a -rt kernel, but not in a non-rt kernel, SRCU is not
916− necessary.
918+ necessary. (The -rt patchset turns spinlocks into sleeplocks,
919+ hence this distinction.)
917920
918921 c. Do you need to treat NMI handlers, hardirq handlers,
919922 and code segments with preemption disabled (whether
Documentation/admin-guide/LSM/tomoyo.rst+12−12
@@ -9,8 +9,8 @@ TOMOYO is a name-based MAC extension (LSM module) for the Linux kernel. · 8 unmodified lines
99
1010 LiveCD-based tutorials are available at
1111
12−http://tomoyo.sourceforge.jp/1.7/1st-step/ubuntu10.04-live/
13−http://tomoyo.sourceforge.jp/1.7/1st-step/centos5-live/
12+http://tomoyo.sourceforge.jp/1.8/ubuntu12.04-live.html
13+http://tomoyo.sourceforge.jp/1.8/centos6-live.html
1414
1515 Though these tutorials use non-LSM version of TOMOYO, they are useful for you
1616 to know what TOMOYO is.
@@ -21,35 +21,35 @@ How to enable TOMOYO? · 4 unmodified lines
2121 Build the kernel with ``CONFIG_SECURITY_TOMOYO=y`` and pass ``security=tomoyo`` on
2222 kernel's command line.
2323
24−Please see http://tomoyo.sourceforge.jp/2.3/ for details.
24+Please see http://tomoyo.osdn.jp/2.5/ for details.
2525
2626 Where is documentation?
2727 =======================
2828
2929 User <-> Kernel interface documentation is available at
30−http://tomoyo.sourceforge.jp/2.3/policy-reference.html .
30+http://tomoyo.osdn.jp/2.5/policy-specification/index.html .
3131
3232 Materials we prepared for seminars and symposiums are available at
33−http://sourceforge.jp/projects/tomoyo/docs/?category_id=532&language_id=1 .
33+http://osdn.jp/projects/tomoyo/docs/?category_id=532&language_id=1 .
3434 Below lists are chosen from three aspects.
3535
3636 What is TOMOYO?
3737 TOMOYO Linux Overview
38− http://sourceforge.jp/projects/tomoyo/docs/lca2009-takeda.pdf
38+ http://osdn.jp/projects/tomoyo/docs/lca2009-takeda.pdf
3939 TOMOYO Linux: pragmatic and manageable security for Linux
40− http://sourceforge.jp/projects/tomoyo/docs/freedomhectaipei-tomoyo.pdf
40+ http://osdn.jp/projects/tomoyo/docs/freedomhectaipei-tomoyo.pdf
4141 TOMOYO Linux: A Practical Method to Understand and Protect Your Own Linux Box
42− http://sourceforge.jp/projects/tomoyo/docs/PacSec2007-en-no-demo.pdf
42+ http://osdn.jp/projects/tomoyo/docs/PacSec2007-en-no-demo.pdf
4343
4444 What can TOMOYO do?
4545 Deep inside TOMOYO Linux
46− http://sourceforge.jp/projects/tomoyo/docs/lca2009-kumaneko.pdf
46+ http://osdn.jp/projects/tomoyo/docs/lca2009-kumaneko.pdf
4747 The role of "pathname based access control" in security.
48− http://sourceforge.jp/projects/tomoyo/docs/lfj2008-bof.pdf
48+ http://osdn.jp/projects/tomoyo/docs/lfj2008-bof.pdf
4949
5050 History of TOMOYO?
5151 Realities of Mainlining
52− http://sourceforge.jp/projects/tomoyo/docs/lfj2008.pdf
52+ http://osdn.jp/projects/tomoyo/docs/lfj2008.pdf
5353
5454 What is future plan?
5555 ====================
@@ -60,6 +60,6 @@ multiple LSM modules at the same time. We feel sorry that you have to give up · 4 unmodified lines
6060 SELinux/SMACK/AppArmor etc. when you want to use TOMOYO.
6161
6262 We hope that LSM becomes stackable in future. Meanwhile, you can use non-LSM
63−version of TOMOYO, available at http://tomoyo.sourceforge.jp/1.7/ .
63+version of TOMOYO, available at http://tomoyo.osdn.jp/1.8/ .
6464 LSM version of TOMOYO is a subset of non-LSM version of TOMOYO. We are planning
6565 to port non-LSM version's functionalities to LSM versions.
Documentation/admin-guide/devices.txt+5−0
@@ -3081,3 +3081,8 @@ · 3080 unmodified lines
30813081 1 = /dev/osd1 Second OSD Device
30823082 ...
30833083 255 = /dev/osd255 256th OSD Device
3084+
3085+ 384-511 char RESERVED FOR DYNAMIC ASSIGNMENT
3086+ Character devices that request a dynamic allocation of major
3087+ number will take numbers starting from 511 and downward,
3088+ once the 234-254 range is full.
Documentation/admin-guide/kernel-parameters.rst+1−0
@@ -138,6 +138,7 @@ parameter is applicable:: · 137 unmodified lines
138138 PPT Parallel port support is enabled.
139139 PS2 Appropriate PS/2 support is enabled.
140140 RAM RAM disk support is enabled.
141+ RDT Intel Resource Director Technology.
141142 S390 S390 architecture is enabled.
142143 SCSI Appropriate SCSI support is enabled.
143144 A lot of drivers have their options described inside
Documentation/admin-guide/kernel-parameters.txt+37−4
@@ -2233,6 +2233,17 @@ · 2232 unmodified lines
22332233 memory contents and reserves bad memory
22342234 regions that are detected.
22352235
2236+ mem_encrypt= [X86-64] AMD Secure Memory Encryption (SME) control
2237+ Valid arguments: on, off
2238+ Default (depends on kernel configuration option):
2239+ on (CONFIG_AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT=y)
2240+ off (CONFIG_AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT=n)
2241+ mem_encrypt=on: Activate SME
2242+ mem_encrypt=off: Do not activate SME
2243+
2244+ Refer to Documentation/x86/amd-memory-encryption.txt
2245+ for details on when memory encryption can be activated.
2246+
22362247 mem_sleep_default= [SUSPEND] Default system suspend mode:
22372248 s2idle - Suspend-To-Idle
22382249 shallow - Power-On Suspend or equivalent (if supported)
@@ -2633,9 +2644,10 @@ · 394 unmodified lines
26332644 In kernels built with CONFIG_NO_HZ_FULL=y, set
26342645 the specified list of CPUs whose tick will be stopped
26352646 whenever possible. The boot CPU will be forced outside
2636− the range to maintain the timekeeping.
2637− The CPUs in this range must also be included in the
2638− rcu_nocbs= set.
2647+ the range to maintain the timekeeping. Any CPUs
2648+ in this list will have their RCU callbacks offloaded,
2649+ just as if they had also been called out in the
2650+ rcu_nocbs= boot parameter.
26392651
26402652 noiotrap [SH] Disables trapped I/O port accesses.
26412653
@@ -2696,6 +2708,8 @@ · 54 unmodified lines
26962708 nopat [X86] Disable PAT (page attribute table extension of
26972709 pagetables) support.
26982710
2711+ nopcid [X86-64] Disable the PCID cpu feature.
2712+
26992713 norandmaps Don't use address space randomization. Equivalent to
27002714 echo 0 > /proc/sys/kernel/randomize_va_space
27012715
@@ -2750,6 +2764,15 @@ · 48 unmodified lines
27502764 If the dependencies are under your control, you can
27512765 turn on cpu0_hotplug.
27522766
2767+ nps_mtm_hs_ctr= [KNL,ARC]
2768+ This parameter sets the maximum duration, in
2769+ cycles, each HW thread of the CTOP can run
2770+ without interruptions, before HW switches it.
2771+ The actual maximum duration is 16 times this
2772+ parameter's value.
2773+ Format: integer between 1 and 255
2774+ Default: 255
2775+
27532776 nptcg= [IA-64] Override max number of concurrent global TLB
27542777 purges which is reported from either PAL_VM_SUMMARY or
27552778 SAL PALO.
@@ -2769,7 +2792,7 @@ · 13 unmodified lines
27692792 Allowed values are enable and disable
27702793
27712794 numa_zonelist_order= [KNL, BOOT] Select zonelist order for NUMA.
2772− one of ['zone', 'node', 'default'] can be specified
2795+ 'node', 'default' can be specified
27732796 This can be set from sysctl after boot.
27742797 See Documentation/sysctl/vm.txt for details.
27752798
@@ -3598,6 +3621,12 @@ · 822 unmodified lines
35983621 Run specified binary instead of /init from the ramdisk,
35993622 used for early userspace startup. See initrd.
36003623
3624+ rdt= [HW,X86,RDT]
3625+ Turn on/off individual RDT features. List is:
3626+ cmt, mbmtotal, mbmlocal, l3cat, l3cdp, l2cat, mba.
3627+ E.g. to turn on cmt and turn off mba use:
3628+ rdt=cmt,!mba
3629+
36013630 reboot= [KNL]
36023631 Format (x86 or x86_64):
36033632 [w[arm] | c[old] | h[ard] | s[oft] | g[pio]] \
@@ -4375,6 +4404,10 @@ · 771 unmodified lines
43754404 decrease the size and leave more room for directly
43764405 mapped kernel RAM.
43774406
4407+ vmcp_cma=nn[MG] [KNL,S390]
4408+ Sets the memory size reserved for contiguous memory
4409+ allocations for the vmcp device driver.
4410+
43784411 vmhalt= [KNL,S390] Perform z/VM CP command after system halt.
43794412 Format: <command>
43804413
Documentation/admin-guide/pm/cpufreq.rst+0−8
@@ -479,14 +479,6 @@ This governor exposes the following tunables: · 478 unmodified lines
479479
480480 # echo `$(($(cat cpuinfo_transition_latency) * 750 / 1000)) > ondemand/sampling_rate
481481
482−
483−``min_sampling_rate``
484− The minimum value of ``sampling_rate``.
485−
486− Equal to 10000 (10 ms) if :c:macro:`CONFIG_NO_HZ_COMMON` and
487− :c:data:`tick_nohz_active` are both set or to 20 times the value of
488− :c:data:`jiffies` in microseconds otherwise.
489−
490482 ``up_threshold``
491483 If the estimated CPU load is above this value (in percent), the governor
492484 will set the frequency to the maximum value allowed for the policy.
Documentation/admin-guide/pm/index.rst+3−9
@@ -5,12 +5,6 @@ Power Management · 4 unmodified lines
55 .. toctree::
66 :maxdepth: 2
77
8− cpufreq
9− intel_pstate
10−
11−.. only:: subproject and html
12−
13− Indices
14− =======
15−
16− * :ref:`genindex`
8+ strategies
9+ system-wide
10+ working-state
Documentation/admin-guide/pm/intel_pstate.rst+8−53
@@ -167,35 +167,17 @@ is set. · 166 unmodified lines
167167 ``powersave``
168168 .............
169169
170−Without HWP, this P-state selection algorithm generally depends on the
171−processor model and/or the system profile setting in the ACPI tables and there
172−are two variants of it.
173−
174−One of them is used with processors from the Atom line and (regardless of the
175−processor model) on platforms with the system profile in the ACPI tables set to
176−"mobile" (laptops mostly), "tablet", "appliance PC", "desktop", or
177−"workstation". It is also used with processors supporting the HWP feature if
178−that feature has not been enabled (that is, with the ``intel_pstate=no_hwp``
179−argument in the kernel command line). It is similar to the algorithm
170+Without HWP, this P-state selection algorithm is similar to the algorithm
180171 implemented by the generic ``schedutil`` scaling governor except that the
181172 utilization metric used by it is based on numbers coming from feedback
182173 registers of the CPU. It generally selects P-states proportional to the
183−current CPU utilization, so it is referred to as the "proportional" algorithm.
184−
185−The second variant of the ``powersave`` P-state selection algorithm, used in all
186−of the other cases (generally, on processors from the Core line, so it is
187−referred to as the "Core" algorithm), is based on the values read from the APERF
188−and MPERF feedback registers and the previously requested target P-state.
189−It does not really take CPU utilization into account explicitly, but as a rule
190−it causes the CPU P-state to ramp up very quickly in response to increased
191−utilization which is generally desirable in server environments.
192−
193−Regardless of the variant, this algorithm is run by the driver's utilization
194−update callback for the given CPU when it is invoked by the CPU scheduler, but
195−not more often than every 10 ms (that can be tweaked via ``debugfs`` in `this
196−particular case <Tuning Interface in debugfs_>`_). Like in the ``performance``
197−case, the hardware configuration is not touched if the new P-state turns out to
198−be the same as the current one.
174+current CPU utilization.
175+
176+This algorithm is run by the driver's utilization update callback for the
177+given CPU when it is invoked by the CPU scheduler, but not more often than
178+every 10 ms. Like in the ``performance`` case, the hardware configuration
179+is not touched if the new P-state turns out to be the same as the current
180+one.
199181
200182 This is the default P-state selection algorithm if the
201183 :c:macro:`CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE` kernel configuration option
@@ -720,34 +702,7 @@ P-state is called, the ``ftrace`` filter can be set to to · 518 unmodified lines
720702 gnome-shell-3409 [001] ..s. 2537.650850: intel_pstate_set_pstate <-intel_pstate_timer_func
721703 <idle>-0 [000] ..s. 2537.654843: intel_pstate_set_pstate <-intel_pstate_timer_func
722704
723−Tuning Interface in ``debugfs``
724−-------------------------------
725−
726−The ``powersave`` algorithm provided by ``intel_pstate`` for `the Core line of
727−processors in the active mode <powersave_>`_ is based on a `PID controller`_
728−whose parameters were chosen to address a number of different use cases at the
729−same time. However, it still is possible to fine-tune it to a specific workload
730−and the ``debugfs`` interface under ``/sys/kernel/debug/pstate_snb/`` is
731−provided for this purpose. [Note that the ``pstate_snb`` directory will be
732−present only if the specific P-state selection algorithm matching the interface
733−in it actually is in use.]
734−
735−The following files present in that directory can be used to modify the PID
736−controller parameters at run time:
737−
738−| ``deadband``
739−| ``d_gain_pct``
740−| ``i_gain_pct``
741−| ``p_gain_pct``
742−| ``sample_rate_ms``
743−| ``setpoint``
744−
745−Note, however, that achieving desirable results this way generally requires
746−expert-level understanding of the power vs performance tradeoff, so extra care
747−is recommended when attempting to do that.
748−
749705
750706 .. _LCEU2015: http://events.linuxfoundation.org/sites/events/files/slides/LinuxConEurope_2015.pdf
751707 .. _SDM: http://www.intel.com/content/www/us/en/architecture-and-technology/64-ia-32-architectures-software-developer-system-programming-manual-325384.html
752708 .. _ACPI specification: http://www.uefi.org/sites/default/files/resources/ACPI_6_1.pdf
753−.. _PID controller: https://en.wikipedia.org/wiki/PID_controller
Documentation/admin-guide/pm/sleep-states.rst+245−0
@@ -0,0 +1,245 @@
1+===================
2+System Sleep States
3+===================
4+
5+::
6+
7+ Copyright (c) 2017 Intel Corp., Rafael J. Wysocki <rafael.j.wysocki@intel.com>
8+
9+Sleep states are global low-power states of the entire system in which user
10+space code cannot be executed and the overall system activity is significantly
11+reduced.
12+
13+
14+Sleep States That Can Be Supported
15+==================================
16+
17+Depending on its configuration and the capabilities of the platform it runs on,
18+the Linux kernel can support up to four system sleep states, includig
19+hibernation and up to three variants of system suspend. The sleep states that
20+can be supported by the kernel are listed below.
21+
22+.. _s2idle:
23+
24+Suspend-to-Idle
25+---------------
26+
27+This is a generic, pure software, light-weight variant of system suspend (also
28+referred to as S2I or S2Idle). It allows more energy to be saved relative to
29+runtime idle by freezing user space, suspending the timekeeping and putting all
30+I/O devices into low-power states (possibly lower-power than available in the
31+working state), such that the processors can spend time in their deepest idle
32+states while the system is suspended.
33+
34+The system is woken up from this state by in-band interrupts, so theoretically
35+any devices that can cause interrupts to be generated in the working state can
36+also be set up as wakeup devices for S2Idle.
37+
38+This state can be used on platforms without support for :ref:`standby <standby>`
39+or :ref:`suspend-to-RAM <s2ram>`, or it can be used in addition to any of the
40+deeper system suspend variants to provide reduced resume latency. It is always
41+supported if the :c:macro:`CONFIG_SUSPEND` kernel configuration option is set.
42+
43+.. _standby:
44+
45+Standby
46+-------
47+
48+This state, if supported, offers moderate, but real, energy savings, while
49+providing a relatively straightforward transition back to the working state. No
50+operating state is lost (the system core logic retains power), so the system can
51+go back to where it left off easily enough.
52+
53+In addition to freezing user space, suspending the timekeeping and putting all
54+I/O devices into low-power states, which is done for :ref:`suspend-to-idle
55+<s2idle>` too, nonboot CPUs are taken offline and all low-level system functions
56+are suspended during transitions into this state. For this reason, it should
57+allow more energy to be saved relative to :ref:`suspend-to-idle <s2idle>`, but
58+the resume latency will generally be greater than for that state.
59+
60+The set of devices that can wake up the system from this state usually is
61+reduced relative to :ref:`suspend-to-idle <s2idle>` and it may be necessary to
62+rely on the platform for setting up the wakeup functionality as appropriate.
63+
64+This state is supported if the :c:macro:`CONFIG_SUSPEND` kernel configuration
65+option is set and the support for it is registered by the platform with the
66+core system suspend subsystem. On ACPI-based systems this state is mapped to
67+the S1 system state defined by ACPI.
68+
69+.. _s2ram:
70+
71+Suspend-to-RAM
72+--------------
73+
74+This state (also referred to as STR or S2RAM), if supported, offers significant
75+energy savings as everything in the system is put into a low-power state, except
76+for memory, which should be placed into the self-refresh mode to retain its
77+contents. All of the steps carried out when entering :ref:`standby <standby>`
78+are also carried out during transitions to S2RAM. Additional operations may
79+take place depending on the platform capabilities. In particular, on ACPI-based
80+systems the kernel passes control to the platform firmware (BIOS) as the last
81+step during S2RAM transitions and that usually results in powering down some
82+more low-level components that are not directly controlled by the kernel.
83+
84+The state of devices and CPUs is saved and held in memory. All devices are
85+suspended and put into low-power states. In many cases, all peripheral buses
86+lose power when entering S2RAM, so devices must be able to handle the transition
87+back to the "on" state.
88+
89+On ACPI-based systems S2RAM requires some minimal boot-strapping code in the
90+platform firmware to resume the system from it. This may be the case on other
91+platforms too.
92+
93+The set of devices that can wake up the system from S2RAM usually is reduced
94+relative to :ref:`suspend-to-idle <s2idle>` and :ref:`standby <standby>` and it
95+may be necessary to rely on the platform for setting up the wakeup functionality
96+as appropriate.
97+
98+S2RAM is supported if the :c:macro:`CONFIG_SUSPEND` kernel configuration option
99+is set and the support for it is registered by the platform with the core system
100+suspend subsystem. On ACPI-based systems it is mapped to the S3 system state
101+defined by ACPI.
102+
103+.. _hibernation:
104+
105+Hibernation
106+-----------
107+
108+This state (also referred to as Suspend-to-Disk or STD) offers the greatest
109+energy savings and can be used even in the absence of low-level platform support
110+for system suspend. However, it requires some low-level code for resuming the
111+system to be present for the underlying CPU architecture.
112+
113+Hibernation is significantly different from any of the system suspend variants.
114+It takes three system state changes to put it into hibernation and two system
115+state changes to resume it.
116+
117+First, when hibernation is triggered, the kernel stops all system activity and
118+creates a snapshot image of memory to be written into persistent storage. Next,
119+the system goes into a state in which the snapshot image can be saved, the image
120+is written out and finally the system goes into the target low-power state in
121+which power is cut from almost all of its hardware components, including memory,
122+except for a limited set of wakeup devices.
123+
124+Once the snapshot image has been written out, the system may either enter a
125+special low-power state (like ACPI S4), or it may simply power down itself.
126+Powering down means minimum power draw and it allows this mechanism to work on
127+any system. However, entering a special low-power state may allow additional
128+means of system wakeup to be used (e.g. pressing a key on the keyboard or
129+opening a laptop lid).
130+
131+After wakeup, control goes to the platform firmware that runs a boot loader
132+which boots a fresh instance of the kernel (control may also go directly to
133+the boot loader, depending on the system configuration, but anyway it causes
134+a fresh instance of the kernel to be booted). That new instance of the kernel
135+(referred to as the ``restore kernel``) looks for a hibernation image in
136+persistent storage and if one is found, it is loaded into memory. Next, all
137+activity in the system is stopped and the restore kernel overwrites itself with
138+the image contents and jumps into a special trampoline area in the original
139+kernel stored in the image (referred to as the ``image kernel``), which is where
140+the special architecture-specific low-level code is needed. Finally, the
141+image kernel restores the system to the pre-hibernation state and allows user
142+space to run again.
143+
144+Hibernation is supported if the :c:macro:`CONFIG_HIBERNATION` kernel
145+configuration option is set. However, this option can only be set if support
146+for the given CPU architecture includes the low-level code for system resume.
147+
148+
149+Basic ``sysfs`` Interfaces for System Suspend and Hibernation
150+=============================================================
151+
152+The following files located in the :file:`/sys/power/` directory can be used by
153+user space for sleep states control.
154+
155+``state``
156+ This file contains a list of strings representing sleep states supported
157+ by the kernel. Writing one of these strings into it causes the kernel
158+ to start a transition of the system into the sleep state represented by
159+ that string.
160+
161+ In particular, the strings "disk", "freeze" and "standby" represent the
162+ :ref:`hibernation <hibernation>`, :ref:`suspend-to-idle <s2idle>` and
163+ :ref:`standby <standby>` sleep states, respectively. The string "mem"
164+ is interpreted in accordance with the contents of the ``mem_sleep`` file
165+ described below.
166+
167+ If the kernel does not support any system sleep states, this file is
168+ not present.
169+
170+``mem_sleep``
171+ This file contains a list of strings representing supported system
172+ suspend variants and allows user space to select the variant to be
173+ associated with the "mem" string in the ``state`` file described above.
174+
175+ The strings that may be present in this file are "s2idle", "shallow"
176+ and "deep". The string "s2idle" always represents :ref:`suspend-to-idle
177+ <s2idle>` and, by convention, "shallow" and "deep" represent
178+ :ref:`standby <standby>` and :ref:`suspend-to-RAM <s2ram>`,
179+ respectively.
180+
181+ Writing one of the listed strings into this file causes the system
182+ suspend variant represented by it to be associated with the "mem" string
183+ in the ``state`` file. The string representing the suspend variant
184+ currently associated with the "mem" string in the ``state`` file
185+ is listed in square brackets.
186+
187+ If the kernel does not support system suspend, this file is not present.
188+
189+``disk``
190+ This file contains a list of strings representing different operations
191+ that can be carried out after the hibernation image has been saved. The
192+ possible options are as follows:
193+
194+ ``platform``
195+ Put the system into a special low-power state (e.g. ACPI S4) to
196+ make additional wakeup options available and possibly allow the
197+ platform firmware to take a simplified initialization path after
198+ wakeup.
199+
200+ ``shutdown``
201+ Power off the system.
202+
203+ ``reboot``
204+ Reboot the system (useful for diagnostics mostly).
205+
206+ ``suspend``
207+ Hybrid system suspend. Put the system into the suspend sleep
208+ state selected through the ``mem_sleep`` file described above.
209+ If the system is successfully woken up from that state, discard
210+ the hibernation image and continue. Otherwise, use the image
211+ to restore the previous state of the system.
212+
213+ ``test_resume``
214+ Diagnostic operation. Load the image as though the system had
215+ just woken up from hibernation and the currently running kernel
216+ instance was a restore kernel and follow up with full system
217+ resume.
218+
219+ Writing one of the listed strings into this file causes the option
220+ represented by it to be selected.
221+
222+ The currently selected option is shown in square brackets which means
223+ that the operation represented by it will be carried out after creating
224+ and saving the image next time hibernation is triggered by writing
225+ ``disk`` to :file:`/sys/power/state`.
226+
227+ If the kernel does not support hibernation, this file is not present.
228+
229+According to the above, there are two ways to make the system go into the
230+:ref:`suspend-to-idle <s2idle>` state. The first one is to write "freeze"
231+directly to :file:`/sys/power/state`. The second one is to write "s2idle" to
232+:file:`/sys/power/mem_sleep` and then to write "mem" to
233+:file:`/sys/power/state`. Likewise, there are two ways to make the system go
234+into the :ref:`standby <standby>` state (the strings to write to the control
235+files in that case are "standby" or "shallow" and "mem", respectively) if that
236+state is supported by the platform. However, there is only one way to make the
237+system go into the :ref:`suspend-to-RAM <s2ram>` state (write "deep" into
238+:file:`/sys/power/mem_sleep` and "mem" into :file:`/sys/power/state`).
239+
240+The default suspend variant (ie. the one to be used without writing anything
241+into :file:`/sys/power/mem_sleep`) is either "deep" (on the majority of systems
242+supporting :ref:`suspend-to-RAM <s2ram>`) or "s2idle", but it can be overridden
243+by the value of the "mem_sleep_default" parameter in the kernel command line.
244+On some ACPI-based systems, depending on the information in the ACPI tables, the
245+default may be "s2idle" even if :ref:`suspend-to-RAM <s2ram>` is supported.
Documentation/admin-guide/pm/strategies.rst+52−0
@@ -0,0 +1,52 @@
1+===========================
2+Power Management Strategies
3+===========================
4+
5+::
6+
7+ Copyright (c) 2017 Intel Corp., Rafael J. Wysocki <rafael.j.wysocki@intel.com>
8+
9+The Linux kernel supports two major high-level power management strategies.
10+
11+One of them is based on using global low-power states of the whole system in
12+which user space code cannot be executed and the overall system activity is
13+significantly reduced, referred to as :doc:`sleep states <sleep-states>`. The
14+kernel puts the system into one of these states when requested by user space
15+and the system stays in it until a special signal is received from one of
16+designated devices, triggering a transition to the ``working state`` in which
17+user space code can run. Because sleep states are global and the whole system
18+is affected by the state changes, this strategy is referred to as the
19+:doc:`system-wide power management <system-wide>`.
20+
21+The other strategy, referred to as the :doc:`working-state power management
22+<working-state>`, is based on adjusting the power states of individual hardware
23+components of the system, as needed, in the working state. In consequence, if
24+this strategy is in use, the working state of the system usually does not
25+correspond to any particular physical configuration of it, but can be treated as
26+a metastate covering a range of different power states of the system in which
27+the individual components of it can be either ``active`` (in use) or
28+``inactive`` (idle). If they are active, they have to be in power states
29+allowing them to process data and to be accessed by software. In turn, if they
30+are inactive, ideally, they should be in low-power states in which they may not
31+be accessible.
32+
33+If all of the system components are active, the system as a whole is regarded as
34+"runtime active" and that situation typically corresponds to the maximum power
35+draw (or maximum energy usage) of it. If all of them are inactive, the system
36+as a whole is regarded as "runtime idle" which may be very close to a sleep
37+state from the physical system configuration and power draw perspective, but
38+then it takes much less time and effort to start executing user space code than
39+for the same system in a sleep state. However, transitions from sleep states
40+back to the working state can only be started by a limited set of devices, so
41+typically the system can spend much more time in a sleep state than it can be
42+runtime idle in one go. For this reason, systems usually use less energy in
43+sleep states than when they are runtime idle most of the time.
44+
45+Moreover, the two power management strategies address different usage scenarios.
46+Namely, if the user indicates that the system will not be in use going forward,
47+for example by closing its lid (if the system is a laptop), it probably should
48+go into a sleep state at that point. On the other hand, if the user simply goes
49+away from the laptop keyboard, it probably should stay in the working state and
50+use the working-state power management in case it becomes idle, because the user
51+may come back to it at any time and then may want the system to be immediately
52+accessible.
Documentation/admin-guide/pm/system-wide.rst+8−0
@@ -0,0 +1,8 @@
1+============================
2+System-Wide Power Management
3+============================
4+
5+.. toctree::
6+ :maxdepth: 2
7+
8+ sleep-states
Documentation/admin-guide/pm/working-state.rst+9−0
@@ -0,0 +1,9 @@
1+==============================
2+Working-State Power Management
3+==============================
4+
5+.. toctree::
6+ :maxdepth: 2
7+
8+ cpufreq
9+ intel_pstate
Documentation/arm/firmware.txt+1−1
@@ -60,7 +60,7 @@ Example of using a firmware operation: · 59 unmodified lines
6060
6161 /* some platform code, e.g. SMP initialization */
6262
63− __raw_writel(virt_to_phys(exynos4_secondary_startup),
63+ __raw_writel(__pa_symbol(exynos4_secondary_startup),
6464 CPU1_BOOT_REG);
6565
6666 /* Call Exynos specific smc call */
Documentation/arm64/cpu-feature-registers.txt+2−0
@@ -179,6 +179,8 @@ infrastructure: · 178 unmodified lines
179179 | FCMA | [19-16] | y |
180180 |--------------------------------------------------|
181181 | JSCVT | [15-12] | y |
182+ |--------------------------------------------------|
183+ | DPB | [3-0] | y |
182184 x--------------------------------------------------x
183185
184186 Appendix I: Example
Documentation/atomic_bitops.txt+66−0
@@ -0,0 +1,66 @@
1+
2+On atomic bitops.
3+
4+
5+While our bitmap_{}() functions are non-atomic, we have a number of operations
6+operating on single bits in a bitmap that are atomic.
7+
8+
9+API
10+---
11+
12+The single bit operations are:
13+
14+Non-RMW ops:
15+
16+ test_bit()
17+
18+RMW atomic operations without return value:
19+
20+ {set,clear,change}_bit()
21+ clear_bit_unlock()
22+
23+RMW atomic operations with return value:
24+
25+ test_and_{set,clear,change}_bit()
26+ test_and_set_bit_lock()
27+
28+Barriers:
29+
30+ smp_mb__{before,after}_atomic()
31+
32+
33+All RMW atomic operations have a '__' prefixed variant which is non-atomic.
34+
35+
36+SEMANTICS
37+---------
38+
39+Non-atomic ops:
40+
41+In particular __clear_bit_unlock() suffers the same issue as atomic_set(),
42+which is why the generic version maps to clear_bit_unlock(), see atomic_t.txt.
43+
44+
45+RMW ops:
46+
47+The test_and_{}_bit() operations return the original value of the bit.
48+
49+
50+ORDERING
51+--------
52+
53+Like with atomic_t, the rule of thumb is:
54+
55+ - non-RMW operations are unordered;
56+
57+ - RMW operations that have no return value are unordered;
58+
59+ - RMW operations that have a return value are fully ordered.
60+
61+Except for test_and_set_bit_lock() which has ACQUIRE semantics and
62+clear_bit_unlock() which has RELEASE semantics.
63+
64+Since a platform only has a single means of achieving atomic operations
65+the same barriers as for atomic_t are used, see atomic_t.txt.
66+
Documentation/atomic_t.txt+242−0
@@ -0,0 +1,242 @@
1+
2+On atomic types (atomic_t atomic64_t and atomic_long_t).
3+
4+The atomic type provides an interface to the architecture's means of atomic
5+RMW operations between CPUs (atomic operations on MMIO are not supported and
6+can lead to fatal traps on some platforms).
7+
8+API
9+---
10+
11+The 'full' API consists of (atomic64_ and atomic_long_ prefixes omitted for
12+brevity):
13+
14+Non-RMW ops:
15+
16+ atomic_read(), atomic_set()
17+ atomic_read_acquire(), atomic_set_release()
18+
19+
20+RMW atomic operations:
21+
22+Arithmetic:
23+
24+ atomic_{add,sub,inc,dec}()
25+ atomic_{add,sub,inc,dec}_return{,_relaxed,_acquire,_release}()
26+ atomic_fetch_{add,sub,inc,dec}{,_relaxed,_acquire,_release}()
27+
28+
29+Bitwise:
30+
31+ atomic_{and,or,xor,andnot}()
32+ atomic_fetch_{and,or,xor,andnot}{,_relaxed,_acquire,_release}()
33+
34+
35+Swap:
36+
37+ atomic_xchg{,_relaxed,_acquire,_release}()
38+ atomic_cmpxchg{,_relaxed,_acquire,_release}()
39+ atomic_try_cmpxchg{,_relaxed,_acquire,_release}()
40+
41+
42+Reference count (but please see refcount_t):
43+
44+ atomic_add_unless(), atomic_inc_not_zero()
45+ atomic_sub_and_test(), atomic_dec_and_test()
46+
47+
48+Misc:
49+
50+ atomic_inc_and_test(), atomic_add_negative()
51+ atomic_dec_unless_positive(), atomic_inc_unless_negative()
52+
53+
54+Barriers:
55+
56+ smp_mb__{before,after}_atomic()
57+
58+
59+
60+SEMANTICS
61+---------
62+
63+Non-RMW ops:
64+
65+The non-RMW ops are (typically) regular LOADs and STOREs and are canonically
66+implemented using READ_ONCE(), WRITE_ONCE(), smp_load_acquire() and
67+smp_store_release() respectively.
68+
69+The one detail to this is that atomic_set{}() should be observable to the RMW
70+ops. That is:
71+
72+ C atomic-set
73+
74+ {
75+ atomic_set(v, 1);
76+ }
77+
78+ P1(atomic_t *v)
79+ {
80+ atomic_add_unless(v, 1, 0);
81+ }
82+
83+ P2(atomic_t *v)
84+ {
85+ atomic_set(v, 0);
86+ }
87+
88+ exists
89+ (v=2)
90+
91+In this case we would expect the atomic_set() from CPU1 to either happen
92+before the atomic_add_unless(), in which case that latter one would no-op, or
93+_after_ in which case we'd overwrite its result. In no case is "2" a valid
94+outcome.
95+
96+This is typically true on 'normal' platforms, where a regular competing STORE
97+will invalidate a LL/SC or fail a CMPXCHG.
98+
99+The obvious case where this is not so is when we need to implement atomic ops
100+with a lock:
101+
102+ CPU0 CPU1
103+
104+ atomic_add_unless(v, 1, 0);
105+ lock();
106+ ret = READ_ONCE(v->counter); // == 1
107+ atomic_set(v, 0);
108+ if (ret != u) WRITE_ONCE(v->counter, 0);
109+ WRITE_ONCE(v->counter, ret + 1);
110+ unlock();
111+
112+the typical solution is to then implement atomic_set{}() with atomic_xchg().
113+
114+
115+RMW ops:
116+
117+These come in various forms:
118+
119+ - plain operations without return value: atomic_{}()
120+
121+ - operations which return the modified value: atomic_{}_return()
122+
123+ these are limited to the arithmetic operations because those are
124+ reversible. Bitops are irreversible and therefore the modified value
125+ is of dubious utility.
126+
127+ - operations which return the original value: atomic_fetch_{}()
128+
129+ - swap operations: xchg(), cmpxchg() and try_cmpxchg()
130+
131+ - misc; the special purpose operations that are commonly used and would,
132+ given the interface, normally be implemented using (try_)cmpxchg loops but
133+ are time critical and can, (typically) on LL/SC architectures, be more
134+ efficiently implemented.
135+
136+All these operations are SMP atomic; that is, the operations (for a single
137+atomic variable) can be fully ordered and no intermediate state is lost or
138+visible.
139+
140+
141+ORDERING (go read memory-barriers.txt first)
142+--------
143+
144+The rule of thumb:
145+
146+ - non-RMW operations are unordered;
147+
148+ - RMW operations that have no return value are unordered;
149+
150+ - RMW operations that have a return value are fully ordered;
151+
152+ - RMW operations that are conditional are unordered on FAILURE,
153+ otherwise the above rules apply.
154+
155+Except of course when an operation has an explicit ordering like:
156+
157+ {}_relaxed: unordered
158+ {}_acquire: the R of the RMW (or atomic_read) is an ACQUIRE
159+ {}_release: the W of the RMW (or atomic_set) is a RELEASE
160+
161+Where 'unordered' is against other memory locations. Address dependencies are
162+not defeated.
163+
164+Fully ordered primitives are ordered against everything prior and everything
165+subsequent. Therefore a fully ordered primitive is like having an smp_mb()
166+before and an smp_mb() after the primitive.
167+
168+
169+The barriers:
170+
171+ smp_mb__{before,after}_atomic()
172+
173+only apply to the RMW ops and can be used to augment/upgrade the ordering
174+inherent to the used atomic op. These barriers provide a full smp_mb().
175+
176+These helper barriers exist because architectures have varying implicit
177+ordering on their SMP atomic primitives. For example our TSO architectures
178+provide full ordered atomics and these barriers are no-ops.
179+
180+Thus:
181+
182+ atomic_fetch_add();
183+
184+is equivalent to:
185+
186+ smp_mb__before_atomic();
187+ atomic_fetch_add_relaxed();
188+ smp_mb__after_atomic();
189+
190+However the atomic_fetch_add() might be implemented more efficiently.
191+
192+Further, while something like:
193+
194+ smp_mb__before_atomic();
195+ atomic_dec(&X);
196+
197+is a 'typical' RELEASE pattern, the barrier is strictly stronger than
198+a RELEASE. Similarly for something like:
199+
200+ atomic_inc(&X);
201+ smp_mb__after_atomic();
202+
203+is an ACQUIRE pattern (though very much not typical), but again the barrier is
204+strictly stronger than ACQUIRE. As illustrated:
205+
206+ C strong-acquire
207+
208+ {
209+ }
210+
211+ P1(int *x, atomic_t *y)
212+ {
213+ r0 = READ_ONCE(*x);
214+ smp_rmb();
215+ r1 = atomic_read(y);
216+ }
217+
218+ P2(int *x, atomic_t *y)
219+ {
220+ atomic_inc(y);
221+ smp_mb__after_atomic();
222+ WRITE_ONCE(*x, 1);
223+ }
224+
225+ exists
226+ (r0=1 /\ r1=0)
227+
228+This should not happen; but a hypothetical atomic_inc_acquire() --
229+(void)atomic_fetch_inc_acquire() for instance -- would allow the outcome,
230+since then:
231+
232+ P1 P2
233+
234+ t = LL.acq *y (0)
235+ t++;
236+ *x = 1;
237+ r0 = *x (1)
238+ RMB
239+ r1 = *y (0)
240+ SC *y, t;
241+
242+is allowed.
Documentation/block/bfq-iosched.txt+64−80
@@ -16,14 +16,16 @@ throughput. So, when needed for achieving a lower latency, BFQ builds · 15 unmodified lines
1616 schedules that may lead to a lower throughput. If your main or only
1717 goal, for a given device, is to achieve the maximum-possible
1818 throughput at all times, then do switch off all low-latency heuristics
19−for that device, by setting low_latency to 0. Full details in Section 3.
19+for that device, by setting low_latency to 0. See Section 3 for
20+details on how to configure BFQ for the desired tradeoff between
21+latency and throughput, or on how to maximize throughput.
2022
2123 On average CPUs, the current version of BFQ can handle devices
2224 performing at most ~30K IOPS; at most ~50 KIOPS on faster CPUs. As a
2325 reference, 30-50 KIOPS correspond to very high bandwidths with
2426 sequential I/O (e.g., 8-12 GB/s if I/O requests are 256 KB large), and
25−to 120-200 MB/s with 4KB random I/O. BFQ has not yet been tested on
26−multi-queue devices.
27+to 120-200 MB/s with 4KB random I/O. BFQ is currently being tested on
28+multi-queue devices too.
2729
2830 The table of contents follow. Impatients can just jump to Section 3.
2931
@@ -33,7 +35,7 @@ CONTENTS · 3 unmodified lines
3335 1-1 Personal systems
3436 1-2 Server systems
3537 2. How does BFQ work?
36−3. What are BFQ's tunable?
38+3. What are BFQ's tunables and how to properly configure BFQ?
3739 4. BFQ group scheduling
3840 4-1 Service guarantees provided
3941 4-2 Interface
@@ -145,19 +147,28 @@ plus a lot of code, are borrowed from CFQ. · 105 unmodified lines
145147 contrast, BFQ may idle the device for a short time interval,
146148 giving the process the chance to go on being served if it issues
147149 a new request in time. Device idling typically boosts the
148− throughput on rotational devices, if processes do synchronous
149− and sequential I/O. In addition, under BFQ, device idling is
150− also instrumental in guaranteeing the desired throughput
151− fraction to processes issuing sync requests (see the description
152− of the slice_idle tunable in this document, or [1, 2], for more
153− details).
150+ throughput on rotational devices and on non-queueing flash-based
151+ devices, if processes do synchronous and sequential I/O. In
152+ addition, under BFQ, device idling is also instrumental in
153+ guaranteeing the desired throughput fraction to processes
154+ issuing sync requests (see the description of the slice_idle
155+ tunable in this document, or [1, 2], for more details).
154156
155157 - With respect to idling for service guarantees, if several
156158 processes are competing for the device at the same time, but
157− all processes (and groups, after the following commit) have
158− the same weight, then BFQ guarantees the expected throughput
159− distribution without ever idling the device. Throughput is
160− thus as high as possible in this common scenario.
159+ all processes and groups have the same weight, then BFQ
160+ guarantees the expected throughput distribution without ever
161+ idling the device. Throughput is thus as high as possible in
162+ this common scenario.
163+
164+ - On flash-based storage with internal queueing of commands
165+ (typically NCQ), device idling happens to be always detrimental
166+ for throughput. So, with these devices, BFQ performs idling
167+ only when strictly needed for service guarantees, i.e., for
168+ guaranteeing low latency or fairness. In these cases, overall
169+ throughput may be sub-optimal. No solution currently exists to
170+ provide both strong service guarantees and optimal throughput
171+ on devices with internal queueing.
161172
162173 - If low-latency mode is enabled (default configuration), BFQ
163174 executes some special heuristics to detect interactive and soft
@@ -191,10 +202,7 @@ plus a lot of code, are borrowed from CFQ. · 27 unmodified lines
191202 - Queues are scheduled according to a variant of WF2Q+, named
192203 B-WF2Q+, and implemented using an augmented rb-tree to preserve an
193204 O(log N) overall complexity. See [2] for more details. B-WF2Q+ is
194− also ready for hierarchical scheduling. However, for a cleaner
195− logical breakdown, the code that enables and completes
196− hierarchical support is provided in the next commit, which focuses
197− exactly on this feature.
205+ also ready for hierarchical scheduling, details in Section 4.
198206
199207 - B-WF2Q+ guarantees a tight deviation with respect to an ideal,
200208 perfectly fair, and smooth service. In particular, B-WF2Q+
@@ -249,13 +257,24 @@ plus a lot of code, are borrowed from CFQ. · 48 unmodified lines
249257 the Idle class, to prevent it from starving.
250258
251259
252−3. What are BFQ's tunable?
253−==========================
260+3. What are BFQ's tunables and how to properly configure BFQ?
261+=============================================================
262+
263+Most BFQ tunables affect service guarantees (basically latency and
264+fairness) and throughput. For full details on how to choose the
265+desired tradeoff between service guarantees and throughput, see the
266+parameters slice_idle, strict_guarantees and low_latency. For details
267+on how to maximise throughput, see slice_idle, timeout_sync and
268+max_budget. The other performance-related parameters have been
269+inherited from, and have been preserved mostly for compatibility with
270+CFQ. So far, no performance improvement has been reported after
271+changing the latter parameters in BFQ.
254272
255−The tunables back_seek-max, back_seek_penalty, fifo_expire_async and
256−fifo_expire_sync below are the same as in CFQ. Their description is
257−just copied from that for CFQ. Some considerations in the description
258−of slice_idle are copied from CFQ too.
273+In particular, the tunables back_seek-max, back_seek_penalty,
274+fifo_expire_async and fifo_expire_sync below are the same as in
275+CFQ. Their description is just copied from that for CFQ. Some
276+considerations in the description of slice_idle are copied from CFQ
277+too.
259278
260279 per-process ioprio and weight
261280 -----------------------------
@@ -285,15 +304,17 @@ number of seeks and see improved throughput. · 23 unmodified lines
285304
286305 Setting slice_idle to 0 will remove all the idling on queues and one
287306 should see an overall improved throughput on faster storage devices
288−like multiple SATA/SAS disks in hardware RAID configuration.
307+like multiple SATA/SAS disks in hardware RAID configuration, as well
308+as flash-based storage with internal command queueing (and
309+parallelism).
289310
290311 So depending on storage and workload, it might be useful to set
291312 slice_idle=0. In general for SATA/SAS disks and software RAID of
292313 SATA/SAS disks keeping slice_idle enabled should be useful. For any
293314 configurations where there are multiple spindles behind single LUN
294−(Host based hardware RAID controller or for storage arrays), setting
295−slice_idle=0 might end up in better throughput and acceptable
296−latencies.
315+(Host based hardware RAID controller or for storage arrays), or with
316+flash-based fast storage, setting slice_idle=0 might end up in better
317+throughput and acceptable latencies.
297318
298319 Idling is however necessary to have service guarantees enforced in
299320 case of differentiated weights or differentiated I/O-request lengths.
@@ -312,13 +333,14 @@ There is an important flipside for idling: apart from the above cases · 12 unmodified lines
312333 where it is beneficial also for throughput, idling can severely impact
313334 throughput. One important case is random workload. Because of this
314335 issue, BFQ tends to avoid idling as much as possible, when it is not
315−beneficial also for throughput. As a consequence of this behavior, and
316−of further issues described for the strict_guarantees tunable,
317−short-term service guarantees may be occasionally violated. And, in
318−some cases, these guarantees may be more important than guaranteeing
319−maximum throughput. For example, in video playing/streaming, a very
320−low drop rate may be more important than maximum throughput. In these
321−cases, consider setting the strict_guarantees parameter.
336+beneficial also for throughput (as detailed in Section 2). As a
337+consequence of this behavior, and of further issues described for the
338+strict_guarantees tunable, short-term service guarantees may be
339+occasionally violated. And, in some cases, these guarantees may be
340+more important than guaranteeing maximum throughput. For example, in
341+video playing/streaming, a very low drop rate may be more important
342+than maximum throughput. In these cases, consider setting the
343+strict_guarantees parameter.
322344
323345 strict_guarantees
324346 -----------------
@@ -420,6 +442,13 @@ The default value is 0, which enables auto-tuning: BFQ sets max_budget · 95 unmodified lines
420442 to the maximum number of sectors that can be served during
421443 timeout_sync, according to the estimated peak rate.
422444
445+For specific devices, some users have occasionally reported to have
446+reached a higher throughput by setting max_budget explicitly, i.e., by
447+setting max_budget to a higher value than 0. In particular, they have
448+set max_budget to higher values than those to which BFQ would have set
449+it with auto-tuning. An alternative way to achieve this goal is to
450+just increase the value of timeout_sync, leaving max_budget equal to 0.
451+
423452 weights
424453 -------
425454
@@ -427,51 +456,6 @@ Read-only parameter, used to show the weights of the currently active · 1 unmodified line
427456 BFQ queues.
428457
429458
430−wr_ tunables
431−------------
432−
433−BFQ exports a few parameters to control/tune the behavior of
434−low-latency heuristics.
435−
436−wr_coeff
437−
438−Factor by which the weight of a weight-raised queue is multiplied. If
439−the queue is deemed soft real-time, then the weight is further
440−multiplied by an additional, constant factor.
441−
442−wr_max_time
443−
444−Maximum duration of a weight-raising period for an interactive task
445−(ms). If set to zero (default value), then this value is computed
446−automatically, as a function of the peak rate of the device. In any
447−case, when the value of this parameter is read, it always reports the
448−current duration, regardless of whether it has been set manually or
449−computed automatically.
450−
451−wr_max_softrt_rate
452−
453−Maximum service rate below which a queue is deemed to be associated
454−with a soft real-time application, and is then weight-raised
455−accordingly (sectors/sec).
456−
457−wr_min_idle_time
458−
459−Minimum idle period after which interactive weight-raising may be
460−reactivated for a queue (in ms).
461−
462−wr_rt_max_time
463−
464−Maximum weight-raising duration for soft real-time queues (in ms). The
465−start time from which this duration is considered is automatically
466−moved forward if the queue is detected to be still soft real-time
467−before the current soft real-time weight-raising period finishes.
468−
469−wr_min_inter_arr_async
470−
471−Minimum period between I/O request arrivals after which weight-raising
472−may be reactivated for an already busy async queue (in ms).
473−
474−
475459 4. Group scheduling with BFQ
476460 ============================
477461
Documentation/blockdev/cciss.txt+0−194
@@ -1,194 +0,0 @@
1−This driver is for Compaq's SMART Array Controllers.
2−
3−Supported Cards:
4−----------------
5−
6−This driver is known to work with the following cards:
7−
8− * SA 5300
9− * SA 5i
10− * SA 532
11− * SA 5312
12− * SA 641
13− * SA 642
14− * SA 6400
15− * SA 6400 U320 Expansion Module
16− * SA 6i
17− * SA P600
18− * SA P800
19− * SA E400
20− * SA P400i
21− * SA E200
22− * SA E200i
23− * SA E500
24− * SA P700m
25− * SA P212
26− * SA P410
27− * SA P410i
28− * SA P411
29− * SA P812
30− * SA P712m
31− * SA P711m
32−
33−Detecting drive failures:
34−-------------------------
35−
36−To get the status of logical volumes and to detect physical drive
37−failures, you can use the cciss_vol_status program found here:
38−http://cciss.sourceforge.net/#cciss_utils
39−
40−Device Naming:
41−--------------
42−
43−If nodes are not already created in the /dev/cciss directory, run as root:
44−
45−# cd /dev
46−# ./MAKEDEV cciss
47−
48−You need some entries in /dev for the cciss device. The MAKEDEV script
49−can make device nodes for you automatically. Currently the device setup
50−is as follows:
51−
52−Major numbers:
53− 104 cciss0
54− 105 cciss1
55− 106 cciss2
56− 105 cciss3
57− 108 cciss4
58− 109 cciss5
59− 110 cciss6
60− 111 cciss7
61−
62−Minor numbers:
63− b7 b6 b5 b4 b3 b2 b1 b0
64− |----+----| |----+----|
65− | |
66− | +-------- Partition ID (0=wholedev, 1-15 partition)
67− |
68− +-------------------- Logical Volume number
69−
70−The device naming scheme is:
71−/dev/cciss/c0d0 Controller 0, disk 0, whole device
72−/dev/cciss/c0d0p1 Controller 0, disk 0, partition 1
73−/dev/cciss/c0d0p2 Controller 0, disk 0, partition 2
74−/dev/cciss/c0d0p3 Controller 0, disk 0, partition 3
75−
76−/dev/cciss/c1d1 Controller 1, disk 1, whole device
77−/dev/cciss/c1d1p1 Controller 1, disk 1, partition 1
78−/dev/cciss/c1d1p2 Controller 1, disk 1, partition 2
79−/dev/cciss/c1d1p3 Controller 1, disk 1, partition 3
80−
81−CCISS simple mode support
82−-------------------------
83−
84−The "cciss_simple_mode=1" boot parameter may be used to prevent the driver
85−from putting the controller into "performant" mode. The difference is that
86−with simple mode, each command completion requires an interrupt, while with
87−"performant mode" (the default, and ordinarily better performing) it is
88−possible to have multiple command completions indicated by a single
89−interrupt.
90−
91−SCSI tape drive and medium changer support
92−------------------------------------------
93−
94−SCSI sequential access devices and medium changer devices are supported and
95−appropriate device nodes are automatically created. (e.g.
96−/dev/st0, /dev/st1, etc. See the "st" man page for more details.)
97−You must enable "SCSI tape drive support for Smart Array 5xxx" and
98−"SCSI support" in your kernel configuration to be able to use SCSI
99−tape drives with your Smart Array 5xxx controller.
100−
101−Additionally, note that the driver will engage the SCSI core at init
102−time if any tape drives or medium changers are detected. The driver may
103−also be directed to dynamically engage the SCSI core via the /proc filesystem
104−entry which the "block" side of the driver creates as
105−/proc/driver/cciss/cciss* at runtime. This is best done via a script.
106−
107−For example:
108−
109− for x in /proc/driver/cciss/cciss[0-9]*
110− do
111− echo "engage scsi" > $x
112− done
113−
114−Once the SCSI core is engaged by the driver, it cannot be disengaged
115−(except by unloading the driver, if it happens to be linked as a module.)
116−
117−Note also that if no sequential access devices or medium changers are
118−detected, the SCSI core will not be engaged by the action of the above
119−script.
120−
121−Hot plug support for SCSI tape drives
122−-------------------------------------
123−
124−Hot plugging of SCSI tape drives is supported, with some caveats.
125−The cciss driver must be informed that changes to the SCSI bus
126−have been made. This may be done via the /proc filesystem.
127−For example:
128−
129− echo "rescan" > /proc/scsi/cciss0/1
130−
131−This causes the driver to query the adapter about changes to the
132−physical SCSI buses and/or fibre channel arbitrated loop and the
133−driver to make note of any new or removed sequential access devices
134−or medium changers. The driver will output messages indicating what
135−devices have been added or removed and the controller, bus, target and
136−lun used to address the device. It then notifies the SCSI mid layer
137−of these changes.
138−
139−Note that the naming convention of the /proc filesystem entries
140−contains a number in addition to the driver name. (E.g. "cciss0"
141−instead of just "cciss" which you might expect.)
142−
143−Note: ONLY sequential access devices and medium changers are presented
144−as SCSI devices to the SCSI mid layer by the cciss driver. Specifically,
145−physical SCSI disk drives are NOT presented to the SCSI mid layer. The
146−physical SCSI disk drives are controlled directly by the array controller
147−hardware and it is important to prevent the kernel from attempting to directly
148−access these devices too, as if the array controller were merely a SCSI
149−controller in the same way that we are allowing it to access SCSI tape drives.
150−
151−SCSI error handling for tape drives and medium changers
152−-------------------------------------------------------
153−
154−The linux SCSI mid layer provides an error handling protocol which
155−kicks into gear whenever a SCSI command fails to complete within a
156−certain amount of time (which can vary depending on the command).
157−The cciss driver participates in this protocol to some extent. The
158−normal protocol is a four step process. First the device is told
159−to abort the command. If that doesn't work, the device is reset.
160−If that doesn't work, the SCSI bus is reset. If that doesn't work
161−the host bus adapter is reset. Because the cciss driver is a block
162−driver as well as a SCSI driver and only the tape drives and medium
163−changers are presented to the SCSI mid layer, and unlike more
164−straightforward SCSI drivers, disk i/o continues through the block
165−side during the SCSI error recovery process, the cciss driver only
166−implements the first two of these actions, aborting the command, and
167−resetting the device. Additionally, most tape drives will not oblige
168−in aborting commands, and sometimes it appears they will not even
169−obey a reset command, though in most circumstances they will. In
170−the case that the command cannot be aborted and the device cannot be
171−reset, the device will be set offline.
172−
173−In the event the error handling code is triggered and a tape drive is
174−successfully reset or the tardy command is successfully aborted, the
175−tape drive may still not allow i/o to continue until some command
176−is issued which positions the tape to a known position. Typically you
177−must rewind the tape (by issuing "mt -f /dev/st0 rewind" for example)
178−before i/o can proceed again to a tape drive which was reset.
179−
180−There is a cciss_tape_cmds module parameter which can be used to make cciss
181−allocate more commands for use by tape drives. Ordinarily only a few commands
182−(6) are allocated for tape drives because tape drives are slow and
183−infrequently used and the primary purpose of Smart Array controllers is to
184−act as a RAID controller for disk drives, so the vast majority of commands
185−are allocated for disk devices. However, if you have more than a few tape
186−drives attached to a smart array, the default number of commands may not be
187−enough (for example, if you have 8 tape drives, you could only rewind 6
188−at one time with the default number of commands.) The cciss_tape_cmds module
189−parameter allows more commands (up to 16 more) to be allocated for use by
190−tape drives. For example:
191−
192− insmod cciss.ko cciss_tape_cmds=16
193−
194−Or, as a kernel boot parameter passed in via grub: cciss.cciss_tape_cmds=8
Documentation/blockdev/zram.txt+11−0
@@ -168,6 +168,7 @@ max_comp_streams RW the number of possible concurrent compress operations · 167 unmodified lines
168168 comp_algorithm RW show and change the compression algorithm
169169 compact WO trigger memory compaction
170170 debug_stat RO this file is used for zram debugging purposes
171+backing_dev RW set up backend storage for zram to write out
171172
172173
173174 User space is advised to use the following files to read the device statistics.
@@ -231,5 +232,15 @@ line of text and contains the following stats separated by whitespace: · 57 unmodified lines
231232 resets the disksize to zero. You must set the disksize again
232233 before reusing the device.
233234
235+* Optional Feature
236+
237+= writeback
238+
239+With incompressible pages, there is no memory saving with zram.
240+Instead, with CONFIG_ZRAM_WRITEBACK, zram can write incompressible page
241+to backing storage rather than keeping it in memory.
242+User should set up backing device via /sys/block/zramX/backing_dev
243+before disksize setting.
244+
234245 Nitin Gupta
235246 ngupta@vflare.org
Documentation/cgroup-v2.txt+203−18
@@ -18,7 +18,9 @@ v1 is available under Documentation/cgroup-v1/. · 17 unmodified lines
1818 1-2. What is cgroup?
1919 2. Basic Operations
2020 2-1. Mounting
21− 2-2. Organizing Processes
21+ 2-2. Organizing Processes and Threads
22+ 2-2-1. Processes
23+ 2-2-2. Threads
2224 2-3. [Un]populated Notification
2325 2-4. Controlling Controllers
2426 2-4-1. Enabling and Disabling
@@ -167,8 +169,11 @@ cgroup v2 currently supports the following mount options. · 142 unmodified lines
167169 Delegation section for details.
168170
169171
170−Organizing Processes
171−--------------------
172+Organizing Processes and Threads
173+--------------------------------
174+
175+Processes
176+~~~~~~~~~
172177
173178 Initially, only the root cgroup exists to which all processes belong.
174179 A child cgroup can be created by creating a sub-directory::
@@ -219,6 +224,105 @@ is removed subsequently, " (deleted)" is appended to the path:: · 44 unmodified lines
219224 0::/test-cgroup/test-cgroup-nested (deleted)
220225
221226
227+Threads
228+~~~~~~~
229+
230+cgroup v2 supports thread granularity for a subset of controllers to
231+support use cases requiring hierarchical resource distribution across
232+the threads of a group of processes. By default, all threads of a
233+process belong to the same cgroup, which also serves as the resource
234+domain to host resource consumptions which are not specific to a
235+process or thread. The thread mode allows threads to be spread across
236+a subtree while still maintaining the common resource domain for them.
237+
238+Controllers which support thread mode are called threaded controllers.
239+The ones which don't are called domain controllers.
240+
241+Marking a cgroup threaded makes it join the resource domain of its
242+parent as a threaded cgroup. The parent may be another threaded
243+cgroup whose resource domain is further up in the hierarchy. The root
244+of a threaded subtree, that is, the nearest ancestor which is not
245+threaded, is called threaded domain or thread root interchangeably and
246+serves as the resource domain for the entire subtree.
247+
248+Inside a threaded subtree, threads of a process can be put in
249+different cgroups and are not subject to the no internal process
250+constraint - threaded controllers can be enabled on non-leaf cgroups
251+whether they have threads in them or not.
252+
253+As the threaded domain cgroup hosts all the domain resource
254+consumptions of the subtree, it is considered to have internal
255+resource consumptions whether there are processes in it or not and
256+can't have populated child cgroups which aren't threaded. Because the
257+root cgroup is not subject to no internal process constraint, it can
258+serve both as a threaded domain and a parent to domain cgroups.
259+
260+The current operation mode or type of the cgroup is shown in the
261+"cgroup.type" file which indicates whether the cgroup is a normal
262+domain, a domain which is serving as the domain of a threaded subtree,
263+or a threaded cgroup.
264+
265+On creation, a cgroup is always a domain cgroup and can be made
266+threaded by writing "threaded" to the "cgroup.type" file. The
267+operation is single direction::
268+
269+ # echo threaded > cgroup.type
270+
271+Once threaded, the cgroup can't be made a domain again. To enable the
272+thread mode, the following conditions must be met.
273+
274+- As the cgroup will join the parent's resource domain. The parent
275+ must either be a valid (threaded) domain or a threaded cgroup.
276+
277+- When the parent is an unthreaded domain, it must not have any domain
278+ controllers enabled or populated domain children. The root is
279+ exempt from this requirement.
280+
281+Topology-wise, a cgroup can be in an invalid state. Please consider
282+the following toplogy::
283+
284+ A (threaded domain) - B (threaded) - C (domain, just created)
285+
286+C is created as a domain but isn't connected to a parent which can
287+host child domains. C can't be used until it is turned into a
288+threaded cgroup. "cgroup.type" file will report "domain (invalid)" in
289+these cases. Operations which fail due to invalid topology use
290+EOPNOTSUPP as the errno.
291+
292+A domain cgroup is turned into a threaded domain when one of its child
293+cgroup becomes threaded or threaded controllers are enabled in the
294+"cgroup.subtree_control" file while there are processes in the cgroup.
295+A threaded domain reverts to a normal domain when the conditions
296+clear.
297+
298+When read, "cgroup.threads" contains the list of the thread IDs of all
299+threads in the cgroup. Except that the operations are per-thread
300+instead of per-process, "cgroup.threads" has the same format and
301+behaves the same way as "cgroup.procs". While "cgroup.threads" can be
302+written to in any cgroup, as it can only move threads inside the same
303+threaded domain, its operations are confined inside each threaded
304+subtree.
305+
306+The threaded domain cgroup serves as the resource domain for the whole
307+subtree, and, while the threads can be scattered across the subtree,
308+all the processes are considered to be in the threaded domain cgroup.
309+"cgroup.procs" in a threaded domain cgroup contains the PIDs of all
310+processes in the subtree and is not readable in the subtree proper.
311+However, "cgroup.procs" can be written to from anywhere in the subtree
312+to migrate all threads of the matching process to the cgroup.
313+
314+Only threaded controllers can be enabled in a threaded subtree. When
315+a threaded controller is enabled inside a threaded subtree, it only
316+accounts for and controls resource consumptions associated with the
317+threads in the cgroup and its descendants. All consumptions which
318+aren't tied to a specific thread belong to the threaded domain cgroup.
319+
320+Because a threaded subtree is exempt from no internal process
321+constraint, a threaded controller must be able to handle competition
322+between threads in a non-leaf cgroup and its child cgroups. Each
323+threaded controller defines how such competitions are handled.
324+
325+
222326 [Un]populated Notification
223327 --------------------------
224328
@@ -302,15 +406,15 @@ disabled if one or more children have it enabled. · 77 unmodified lines
302406 No Internal Process Constraint
303407 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
304408
305−Non-root cgroups can only distribute resources to their children when
306−they don't have any processes of their own. In other words, only
307−cgroups which don't contain any processes can have controllers enabled
308−in their "cgroup.subtree_control" files.
409+Non-root cgroups can distribute domain resources to their children
410+only when they don't have any processes of their own. In other words,
411+only domain cgroups which don't contain any processes can have domain
412+controllers enabled in their "cgroup.subtree_control" files.
309413
310−This guarantees that, when a controller is looking at the part of the
311−hierarchy which has it enabled, processes are always only on the
312−leaves. This rules out situations where child cgroups compete against
313−internal processes of the parent.
414+This guarantees that, when a domain controller is looking at the part
415+of the hierarchy which has it enabled, processes are always only on
416+the leaves. This rules out situations where child cgroups compete
417+against internal processes of the parent.
314418
315419 The root cgroup is exempt from this restriction. Root contains
316420 processes and anonymous resource consumption which can't be associated
@@ -334,10 +438,10 @@ Model of Delegation · 17 unmodified lines
334438 ~~~~~~~~~~~~~~~~~~~
335439
336440 A cgroup can be delegated in two ways. First, to a less privileged
337−user by granting write access of the directory and its "cgroup.procs"
338−and "cgroup.subtree_control" files to the user. Second, if the
339−"nsdelegate" mount option is set, automatically to a cgroup namespace
340−on namespace creation.
441+user by granting write access of the directory and its "cgroup.procs",
442+"cgroup.threads" and "cgroup.subtree_control" files to the user.
443+Second, if the "nsdelegate" mount option is set, automatically to a
444+cgroup namespace on namespace creation.
341445
342446 Because the resource control interface files in a given directory
343447 control the distribution of the parent's resources, the delegatee
@@ -644,6 +748,29 @@ Core Interface Files · 300 unmodified lines
644748
645749 All cgroup core files are prefixed with "cgroup."
646750
751+ cgroup.type
752+
753+ A read-write single value file which exists on non-root
754+ cgroups.
755+
756+ When read, it indicates the current type of the cgroup, which
757+ can be one of the following values.
758+
759+ - "domain" : A normal valid domain cgroup.
760+
761+ - "domain threaded" : A threaded domain cgroup which is
762+ serving as the root of a threaded subtree.
763+
764+ - "domain invalid" : A cgroup which is in an invalid state.
765+ It can't be populated or have controllers enabled. It may
766+ be allowed to become a threaded cgroup.
767+
768+ - "threaded" : A threaded cgroup which is a member of a
769+ threaded subtree.
770+
771+ A cgroup can be turned into a threaded cgroup by writing
772+ "threaded" to this file.
773+
647774 cgroup.procs
648775 A read-write new-line separated values file which exists on
649776 all cgroups.
@@ -658,9 +785,6 @@ All cgroup core files are prefixed with "cgroup." · 8 unmodified lines
658785 the PID to the cgroup. The writer should match all of the
659786 following conditions.
660787
661− - Its euid is either root or must match either uid or suid of
662− the target process.
663−
664788 - It must have write access to the "cgroup.procs" file.
665789
666790 - It must have write access to the "cgroup.procs" file of the
@@ -669,6 +793,35 @@ All cgroup core files are prefixed with "cgroup." · 2 unmodified lines
669793 When delegating a sub-hierarchy, write access to this file
670794 should be granted along with the containing directory.
671795
796+ In a threaded cgroup, reading this file fails with EOPNOTSUPP
797+ as all the processes belong to the thread root. Writing is
798+ supported and moves every thread of the process to the cgroup.
799+
800+ cgroup.threads
801+ A read-write new-line separated values file which exists on
802+ all cgroups.
803+
804+ When read, it lists the TIDs of all threads which belong to
805+ the cgroup one-per-line. The TIDs are not ordered and the
806+ same TID may show up more than once if the thread got moved to
807+ another cgroup and then back or the TID got recycled while
808+ reading.
809+
810+ A TID can be written to migrate the thread associated with the
811+ TID to the cgroup. The writer should match all of the
812+ following conditions.
813+
814+ - It must have write access to the "cgroup.threads" file.
815+
816+ - The cgroup that the thread is currently in must be in the
817+ same resource domain as the destination cgroup.
818+
819+ - It must have write access to the "cgroup.procs" file of the
820+ common ancestor of the source and destination cgroups.
821+
822+ When delegating a sub-hierarchy, write access to this file
823+ should be granted along with the containing directory.
824+
672825 cgroup.controllers
673826 A read-only space separated values file which exists on all
674827 cgroups.
@@ -701,6 +854,38 @@ All cgroup core files are prefixed with "cgroup." · 26 unmodified lines
701854 1 if the cgroup or its descendants contains any live
702855 processes; otherwise, 0.
703856
857+ cgroup.max.descendants
858+ A read-write single value files. The default is "max".
859+
860+ Maximum allowed number of descent cgroups.
861+ If the actual number of descendants is equal or larger,
862+ an attempt to create a new cgroup in the hierarchy will fail.
863+
864+ cgroup.max.depth
865+ A read-write single value files. The default is "max".
866+
867+ Maximum allowed descent depth below the current cgroup.
868+ If the actual descent depth is equal or larger,
869+ an attempt to create a new child cgroup will fail.
870+
871+ cgroup.stat
872+ A read-only flat-keyed file with the following entries:
873+
874+ nr_descendants
875+ Total number of visible descendant cgroups.
876+
877+ nr_dying_descendants
878+ Total number of dying descendant cgroups. A cgroup becomes
879+ dying after being deleted by a user. The cgroup will remain
880+ in dying state for some time undefined time (which can depend
881+ on system load) before being completely destroyed.
882+
883+ A process can't enter a dying cgroup under any circumstances,
884+ a dying cgroup can't revive.
885+
886+ A dying cgroup can consume system resources not exceeding
887+ limits, which were active at the moment of cgroup deletion.
888+
704889
705890 Controllers
706891 ===========
Documentation/conf.py+41−23
@@ -29,7 +29,7 @@ from load_config import loadConfig · 28 unmodified lines
2929 # -- General configuration ------------------------------------------------
3030
3131 # If your documentation needs a minimal Sphinx version, state it here.
32−needs_sphinx = '1.2'
32+needs_sphinx = '1.3'
3333
3434 # Add any Sphinx extension module names here, as strings. They can be
3535 # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
@@ -271,10 +271,29 @@ latex_elements = { · 235 unmodified lines
271271
272272 # Additional stuff for the LaTeX preamble.
273273 'preamble': '''
274− \\usepackage{ifthen}
274+ % Use some font with UTF-8 support with XeLaTeX
275+ \\usepackage{fontspec}
276+ \\setsansfont{DejaVu Serif}
277+ \\setromanfont{DejaVu Sans}
278+ \\setmonofont{DejaVu Sans Mono}
275279
276− % Allow generate some pages in landscape
277− \\usepackage{lscape}
280+ '''
281+}
282+
283+# Fix reference escape troubles with Sphinx 1.4.x
284+if major == 1 and minor > 3:
285+ latex_elements['preamble'] += '\\renewcommand*{\\DUrole}[2]{ #2 }\n'
286+
287+if major == 1 and minor <= 4:
288+ latex_elements['preamble'] += '\\usepackage[margin=0.5in, top=1in, bottom=1in]{geometry}'
289+elif major == 1 and (minor > 5 or (minor == 5 and patch >= 3)):
290+ latex_elements['sphinxsetup'] = 'hmargin=0.5in, vmargin=1in'
291+ latex_elements['preamble'] += '\\fvset{fontsize=auto}\n'
292+
293+# Customize notice background colors on Sphinx < 1.6:
294+if major == 1 and minor < 6:
295+ latex_elements['preamble'] += '''
296+ \\usepackage{ifthen}
278297
279298 % Put notes in color and let them be inside a table
280299 \\definecolor{NoteColor}{RGB}{204,255,255}
@@ -325,27 +344,26 @@ latex_elements = { · 44 unmodified lines
325344 }
326345 \\makeatother
327346
328− % Use some font with UTF-8 support with XeLaTeX
329− \\usepackage{fontspec}
330− \\setsansfont{DejaVu Serif}
331− \\setromanfont{DejaVu Sans}
332− \\setmonofont{DejaVu Sans Mono}
333−
334− % To allow adjusting table sizes
335− \\usepackage{adjustbox}
336−
337347 '''
338−}
339−
340−# Fix reference escape troubles with Sphinx 1.4.x
341−if major == 1 and minor > 3:
342− latex_elements['preamble'] += '\\renewcommand*{\\DUrole}[2]{ #2 }\n'
343−
344−if major == 1 and minor <= 4:
345− latex_elements['preamble'] += '\\usepackage[margin=0.5in, top=1in, bottom=1in]{geometry}'
346−elif major == 1 and (minor > 5 or (minor == 5 and patch >= 3)):
347− latex_elements['sphinxsetup'] = 'hmargin=0.5in, vmargin=0.5in'
348348
349+# With Sphinx 1.6, it is possible to change the Bg color directly
350+# by using:
351+# \definecolor{sphinxnoteBgColor}{RGB}{204,255,255}
352+# \definecolor{sphinxwarningBgColor}{RGB}{255,204,204}
353+# \definecolor{sphinxattentionBgColor}{RGB}{255,255,204}
354+# \definecolor{sphinximportantBgColor}{RGB}{192,255,204}
355+#
356+# However, it require to use sphinx heavy box with:
357+#
358+# \renewenvironment{sphinxlightbox} {%
359+# \\begin{sphinxheavybox}
360+# }
361+# \\end{sphinxheavybox}
362+# }
363+#
364+# Unfortunately, the implementation is buggy: if a note is inside a
365+# table, it isn't displayed well. So, for now, let's use boring
366+# black and white notes.
349367
350368 # Grouping the document tree into LaTeX files. List of tuples
351369 # (source start file, target name, title,
Documentation/core-api/genalloc.rst+144−0
@@ -0,0 +1,144 @@
1+The genalloc/genpool subsystem
2+==============================
3+
4+There are a number of memory-allocation subsystems in the kernel, each
5+aimed at a specific need. Sometimes, however, a kernel developer needs to
6+implement a new allocator for a specific range of special-purpose memory;
7+often that memory is located on a device somewhere. The author of the
8+driver for that device can certainly write a little allocator to get the
9+job done, but that is the way to fill the kernel with dozens of poorly
10+tested allocators. Back in 2005, Jes Sorensen lifted one of those
11+allocators from the sym53c8xx_2 driver and posted_ it as a generic module
12+for the creation of ad hoc memory allocators. This code was merged
13+for the 2.6.13 release; it has been modified considerably since then.
14+
15+.. _posted: https://lwn.net/Articles/125842/
16+
17+Code using this allocator should include <linux/genalloc.h>. The action
18+begins with the creation of a pool using one of:
19+
20+.. kernel-doc:: lib/genalloc.c
21+ :functions: gen_pool_create
22+
23+.. kernel-doc:: lib/genalloc.c
24+ :functions: devm_gen_pool_create
25+
26+A call to :c:func:`gen_pool_create` will create a pool. The granularity of
27+allocations is set with min_alloc_order; it is a log-base-2 number like
28+those used by the page allocator, but it refers to bytes rather than pages.
29+So, if min_alloc_order is passed as 3, then all allocations will be a
30+multiple of eight bytes. Increasing min_alloc_order decreases the memory
31+required to track the memory in the pool. The nid parameter specifies
32+which NUMA node should be used for the allocation of the housekeeping
33+structures; it can be -1 if the caller doesn't care.
34+
35+The "managed" interface :c:func:`devm_gen_pool_create` ties the pool to a
36+specific device. Among other things, it will automatically clean up the
37+pool when the given device is destroyed.
38+
39+A pool is shut down with:
40+
41+.. kernel-doc:: lib/genalloc.c
42+ :functions: gen_pool_destroy
43+
44+It's worth noting that, if there are still allocations outstanding from the
45+given pool, this function will take the rather extreme step of invoking
46+BUG(), crashing the entire system. You have been warned.
47+
48+A freshly created pool has no memory to allocate. It is fairly useless in
49+that state, so one of the first orders of business is usually to add memory
50+to the pool. That can be done with one of:
51+
52+.. kernel-doc:: include/linux/genalloc.h
53+ :functions: gen_pool_add
54+
55+.. kernel-doc:: lib/genalloc.c
56+ :functions: gen_pool_add_virt
57+
58+A call to :c:func:`gen_pool_add` will place the size bytes of memory
59+starting at addr (in the kernel's virtual address space) into the given
60+pool, once again using nid as the node ID for ancillary memory allocations.
61+The :c:func:`gen_pool_add_virt` variant associates an explicit physical
62+address with the memory; this is only necessary if the pool will be used
63+for DMA allocations.
64+
65+The functions for allocating memory from the pool (and putting it back)
66+are:
67+
68+.. kernel-doc:: lib/genalloc.c
69+ :functions: gen_pool_alloc
70+
71+.. kernel-doc:: lib/genalloc.c
72+ :functions: gen_pool_dma_alloc
73+
74+.. kernel-doc:: lib/genalloc.c
75+ :functions: gen_pool_free
76+
77+As one would expect, :c:func:`gen_pool_alloc` will allocate size< bytes
78+from the given pool. The :c:func:`gen_pool_dma_alloc` variant allocates
79+memory for use with DMA operations, returning the associated physical
80+address in the space pointed to by dma. This will only work if the memory
81+was added with :c:func:`gen_pool_add_virt`. Note that this function
82+departs from the usual genpool pattern of using unsigned long values to
83+represent kernel addresses; it returns a void * instead.
84+
85+That all seems relatively simple; indeed, some developers clearly found it
86+to be too simple. After all, the interface above provides no control over
87+how the allocation functions choose which specific piece of memory to
88+return. If that sort of control is needed, the following functions will be
89+of interest:
90+
91+.. kernel-doc:: lib/genalloc.c
92+ :functions: gen_pool_alloc_algo
93+
94+.. kernel-doc:: lib/genalloc.c
95+ :functions: gen_pool_set_algo
96+
97+Allocations with :c:func:`gen_pool_alloc_algo` specify an algorithm to be
98+used to choose the memory to be allocated; the default algorithm can be set
99+with :c:func:`gen_pool_set_algo`. The data value is passed to the
100+algorithm; most ignore it, but it is occasionally needed. One can,
101+naturally, write a special-purpose algorithm, but there is a fair set
102+already available:
103+
104+- gen_pool_first_fit is a simple first-fit allocator; this is the default
105+ algorithm if none other has been specified.
106+
107+- gen_pool_first_fit_align forces the allocation to have a specific
108+ alignment (passed via data in a genpool_data_align structure).
109+
110+- gen_pool_first_fit_order_align aligns the allocation to the order of the
111+ size. A 60-byte allocation will thus be 64-byte aligned, for example.
112+
113+- gen_pool_best_fit, as one would expect, is a simple best-fit allocator.
114+
115+- gen_pool_fixed_alloc allocates at a specific offset (passed in a
116+ genpool_data_fixed structure via the data parameter) within the pool.
117+ If the indicated memory is not available the allocation fails.
118+
119+There is a handful of other functions, mostly for purposes like querying
120+the space available in the pool or iterating through chunks of memory.
121+Most users, however, should not need much beyond what has been described
122+above. With luck, wider awareness of this module will help to prevent the
123+writing of special-purpose memory allocators in the future.
124+
125+.. kernel-doc:: lib/genalloc.c
126+ :functions: gen_pool_virt_to_phys
127+
128+.. kernel-doc:: lib/genalloc.c
129+ :functions: gen_pool_for_each_chunk
130+
131+.. kernel-doc:: lib/genalloc.c
132+ :functions: addr_in_gen_pool
133+
134+.. kernel-doc:: lib/genalloc.c
135+ :functions: gen_pool_avail
136+
137+.. kernel-doc:: lib/genalloc.c
138+ :functions: gen_pool_size
139+
140+.. kernel-doc:: lib/genalloc.c
141+ :functions: gen_pool_get
142+
143+.. kernel-doc:: lib/genalloc.c
144+ :functions: of_gen_pool_get
Documentation/core-api/index.rst+1−0
@@ -20,6 +20,7 @@ Core utilities · 19 unmodified lines
2020 genericirq
2121 flexible-arrays
2222 librs
23+ genalloc
2324
2425 Interfaces for kernel debugging
2526 ===============================
Documentation/core-api/kernel-api.rst+49−0
@@ -344,3 +344,52 @@ codecs, and devices with strict requirements for interface clocking. · 343 unmodified lines
344344
345345 .. kernel-doc:: include/linux/clk.h
346346 :internal:
347+
348+Synchronization Primitives
349+==========================
350+
351+Read-Copy Update (RCU)
352+----------------------
353+
354+.. kernel-doc:: include/linux/rcupdate.h
355+ :external:
356+
357+.. kernel-doc:: include/linux/rcupdate_wait.h
358+ :external:
359+
360+.. kernel-doc:: include/linux/rcutree.h
361+ :external:
362+
363+.. kernel-doc:: kernel/rcu/tree.c
364+ :external:
365+
366+.. kernel-doc:: kernel/rcu/tree_plugin.h
367+ :external:
368+
369+.. kernel-doc:: kernel/rcu/tree_exp.h
370+ :external:
371+
372+.. kernel-doc:: kernel/rcu/update.c
373+ :external:
374+
375+.. kernel-doc:: include/linux/srcu.h
376+ :external:
377+
378+.. kernel-doc:: kernel/rcu/srcutree.c
379+ :external:
380+
381+.. kernel-doc:: include/linux/rculist_bl.h
382+ :external:
383+
384+.. kernel-doc:: include/linux/rculist.h
385+ :external:
386+
387+.. kernel-doc:: include/linux/rculist_nulls.h
388+ :external:
389+
390+.. kernel-doc:: include/linux/rcu_sync.h
391+ :external:
392+
393+.. kernel-doc:: kernel/rcu/sync.c
394+ :external:
395+
Documentation/core-api/workqueue.rst+7−3
@@ -243,11 +243,15 @@ throttling the number of active work items, specifying '0' is · 242 unmodified lines
243243 recommended.
244244
245245 Some users depend on the strict execution ordering of ST wq. The
246−combination of ``@max_active`` of 1 and ``WQ_UNBOUND`` is used to
247−achieve this behavior. Work items on such wq are always queued to the
248−unbound worker-pools and only one work item can be active at any given
246+combination of ``@max_active`` of 1 and ``WQ_UNBOUND`` used to
247+achieve this behavior. Work items on such wq were always queued to the
248+unbound worker-pools and only one work item could be active at any given
249249 time thus achieving the same ordering property as ST wq.
250250
251+In the current implementation the above configuration only guarantees
252+ST behavior within a given NUMA node. Instead alloc_ordered_queue should
253+be used to achieve system wide ST behavior.
254+
251255
252256 Example Execution Scenarios
253257 ===========================
Documentation/dev-tools/gdb-kernel-debugging.rst+4−2
@@ -31,11 +31,13 @@ Setup · 30 unmodified lines
3131 CONFIG_DEBUG_INFO_REDUCED off. If your architecture supports
3232 CONFIG_FRAME_POINTER, keep it enabled.
3333
34−- Install that kernel on the guest.
34+- Install that kernel on the guest, turn off KASLR if necessary by adding
35+ "nokaslr" to the kernel command line.
3536 Alternatively, QEMU allows to boot the kernel directly using -kernel,
3637 -append, -initrd command line switches. This is generally only useful if
3738 you do not depend on modules. See QEMU documentation for more details on
38− this mode.
39+ this mode. In this case, you should build the kernel with
40+ CONFIG_RANDOMIZE_BASE disabled if the architecture supports KASLR.
3941
4042 - Enable the gdb stub of QEMU/KVM, either
4143
Documentation/dev-tools/kgdb.rst+10−1
@@ -348,6 +348,15 @@ default behavior is always set to 0. · 347 unmodified lines
348348 - ``echo 1 > /sys/module/debug_core/parameters/kgdbreboot``
349349 - Enter the debugger on reboot notify.
350350
351+Kernel parameter: ``nokaslr``
352+-----------------------------
353+
354+If the architecture that you are using enable KASLR by default,
355+you should consider turning it off. KASLR randomizes the
356+virtual address where the kernel image is mapped and confuse
357+gdb which resolve kernel symbol address from symbol table
358+of vmlinux.
359+
351360 Using kdb
352361 =========
353362
@@ -358,7 +367,7 @@ This is a quick example of how to use kdb. · 4 unmodified lines
358367
359368 1. Configure kgdboc at boot using kernel parameters::
360369
361− console=ttyS0,115200 kgdboc=ttyS0,115200
370+ console=ttyS0,115200 kgdboc=ttyS0,115200 nokaslr
362371
363372 OR
364373
Documentation/devicetree/bindings/arc/hsdk.txt+7−0
@@ -0,0 +1,7 @@
1+Synopsys DesignWare ARC HS Development Kit Device Tree Bindings
2+---------------------------------------------------------------------------
3+
4+ARC HSDK Board with quad-core ARC HS38x4 in silicon.
5+
6+Required root node properties:
7+ - compatible = "snps,hsdk";
Documentation/devicetree/bindings/arm/amlogic.txt+41−0
@@ -1,6 +1,18 @@
11 Amlogic MesonX device tree bindings
22 -------------------------------------------
33
4+Work in progress statement:
5+
6+Device tree files and bindings applying to Amlogic SoCs and boards are
7+considered "unstable". Any Amlogic device tree binding may change at
8+any time. Be sure to use a device tree binary and a kernel image
9+generated from the same source tree.
10+
11+Please refer to Documentation/devicetree/bindings/ABI.txt for a definition of a
12+stable binding/ABI.
13+
14+---------------------------------------------------------------
15+
416 Boards with the Amlogic Meson6 SoC shall have the following properties:
517 Required root node property:
618 compatible: "amlogic,meson6"
@@ -61,3 +73,32 @@ Board compatible values (alphabetically, grouped by SoC): · 54 unmodified lines
6173 - "amlogic,q201" (Meson gxm s912)
6274 - "kingnovel,r-box-pro" (Meson gxm S912)
6375 - "nexbox,a1" (Meson gxm s912)
76+
77+Amlogic Meson Firmware registers Interface
78+------------------------------------------
79+
80+The Meson SoCs have a register bank with status and data shared with the
81+secure firmware.
82+
83+Required properties:
84+ - compatible: For Meson GX SoCs, must be "amlogic,meson-gx-ao-secure", "syscon"
85+
86+Properties should indentify components of this register interface :
87+
88+Meson GX SoC Information
89+------------------------
90+A firmware register encodes the SoC type, package and revision information on
91+the Meson GX SoCs.
92+If present, the following property should be added :
93+
94+Optional properties:
95+ - amlogic,has-chip-id: If present, the interface gives the current SoC version.
96+
97+Example
98+-------
99+
100+ao-secure@140 {
101+ compatible = "amlogic,meson-gx-ao-secure", "syscon";
102+ reg = <0x0 0x140 0x0 0x140>;
103+ amlogic,has-chip-id;
104+};
Documentation/devicetree/bindings/arm/arch_timer.txt+0−1
@@ -108,6 +108,5 @@ Example: · 107 unmodified lines
108108 frame-number = <1>
109109 interrupts = <0 15 0x8>;
110110 reg = <0xf0003000 0x1000>;
111− status = "disabled";
112111 };
113112 };
Documentation/devicetree/bindings/arm/bcm/brcm,bcm2835.txt+4−0
@@ -42,6 +42,10 @@ Raspberry Pi Zero · 41 unmodified lines
4242 Required root node properties:
4343 compatible = "raspberrypi,model-zero", "brcm,bcm2835";
4444
45+Raspberry Pi Zero W
46+Required root node properties:
47+compatible = "raspberrypi,model-zero-w", "brcm,bcm2835";
48+
4549 Generic BCM2835 board
4650 Required root node properties:
4751 compatible = "brcm,bcm2835";
Documentation/devicetree/bindings/arm/bhf.txt+6−0
@@ -0,0 +1,6 @@
1+Beckhoff Automation Platforms Device Tree Bindings
2+--------------------------------------------------
3+
4+CX9020 Embedded PC
5+Required root node properties:
6+ - compatible = "bhf,cx9020", "fsl,imx53";
Documentation/devicetree/bindings/arm/coresight.txt+2−2
@@ -34,8 +34,8 @@ its hardware characteristcs. · 33 unmodified lines
3434 - Embedded Trace Macrocell (version 4.x):
3535 "arm,coresight-etm4x", "arm,primecell";
3636
37− - Qualcomm Configurable Replicator (version 1.x):
38− "qcom,coresight-replicator1x", "arm,primecell";
37+ - Coresight programmable Replicator :
38+ "arm,coresight-dynamic-replicator", "arm,primecell";
3939
4040 - System Trace Macrocell:
4141 "arm,coresight-stm", "arm,primecell"; [1]
Documentation/devicetree/bindings/arm/cpus.txt+1−0
@@ -200,6 +200,7 @@ described below. · 199 unmodified lines
200200 "arm,realview-smp"
201201 "brcm,bcm11351-cpu-method"
202202 "brcm,bcm23550"
203+ "brcm,bcm2836-smp"
203204 "brcm,bcm-nsp-smp"
204205 "brcm,brahma-b15"
205206 "marvell,armada-375-smp"
Documentation/devicetree/bindings/arm/marvell/armada-8kp.txt+15−0
@@ -0,0 +1,15 @@
1+Marvell Armada 8KPlus Platforms Device Tree Bindings
2+----------------------------------------------------
3+
4+Boards using a SoC of the Marvell Armada 8KP families must carry
5+the following root node property:
6+
7+ - compatible, with one of the following values:
8+
9+ - "marvell,armada-8080", "marvell,armada-ap810-octa", "marvell,armada-ap810"
10+ when the SoC being used is the Armada 8080
11+
12+Example:
13+
14+compatible = "marvell,armada-8080-db", "marvell,armada-8080",
15+ "marvell,armada-ap810-octa", "marvell,armada-ap810"
Documentation/devicetree/bindings/arm/marvell/cp110-system-controller0.txt+0−1
@@ -183,7 +183,6 @@ cpm_syscon0: system-controller@440000 { · 182 unmodified lines
183183 gpio-controller;
184184 #gpio-cells = <2>;
185185 gpio-ranges = <&cpm_pinctrl 0 0 32>;
186− status = "disabled";
187186 };
188187
189188 };
Documentation/devicetree/bindings/arm/mediatek.txt+12−6
@@ -1,12 +1,12 @@
1−MediaTek mt65xx, mt67xx & mt81xx Platforms Device Tree Bindings
1+MediaTek SoC based Platforms Device Tree Bindings
22
3−Boards with a MediaTek mt65xx/mt67xx/mt81xx SoC shall have the
4−following property:
3+Boards with a MediaTek SoC shall have the following property:
54
65 Required root node property:
76
87 compatible: Must contain one of
98 "mediatek,mt2701"
9+ "mediatek,mt2712"
1010 "mediatek,mt6580"
1111 "mediatek,mt6589"
1212 "mediatek,mt6592"
@@ -14,7 +14,8 @@ compatible: Must contain one of · 1 unmodified line
1414 "mediatek,mt6795"
1515 "mediatek,mt6797"
1616 "mediatek,mt7622"
17− "mediatek,mt7623"
17+ "mediatek,mt7623" which is referred to MT7623N SoC
18+ "mediatek,mt7623a"
1819 "mediatek,mt8127"
1920 "mediatek,mt8135"
2021 "mediatek,mt8173"
@@ -25,6 +26,9 @@ Supported boards: · 4 unmodified lines
2526 - Evaluation board for MT2701:
2627 Required root node properties:
2728 - compatible = "mediatek,mt2701-evb", "mediatek,mt2701";
29+- Evaluation board for MT2712:
30+ Required root node properties:
31+ - compatible = "mediatek,mt2712-evb", "mediatek,mt2712";
2832 - Evaluation board for MT6580:
2933 Required root node properties:
3034 - compatible = "mediatek,mt6580-evbp1", "mediatek,mt6580";
@@ -46,9 +50,11 @@ Supported boards: · 15 unmodified lines
4650 - Reference board variant 1 for MT7622:
4751 Required root node properties:
4852 - compatible = "mediatek,mt7622-rfb1", "mediatek,mt7622";
49−- Evaluation board for MT7623:
53+- Reference board for MT7623n with NAND:
5054 Required root node properties:
51− - compatible = "mediatek,mt7623-evb", "mediatek,mt7623";
55+ - compatible = "mediatek,mt7623n-rfb-nand", "mediatek,mt7623";
56+- Bananapi BPI-R2 board:
57+ - compatible = "bananapi,bpi-r2", "mediatek,mt7623";
5258 - MTK mt8127 tablet moose EVB:
5359 Required root node properties:
5460 - compatible = "mediatek,mt8127-moose", "mediatek,mt8127";
Documentation/devicetree/bindings/arm/omap/omap.txt+9−0
@@ -80,6 +80,9 @@ SoCs: · 79 unmodified lines
8080 - OMAP5432
8181 compatible = "ti,omap5432", "ti,omap5"
8282
83+- DRA762
84+ compatible = "ti,dra762", "ti,dra7"
85+
8386 - DRA742
8487 compatible = "ti,dra742", "ti,dra74", "ti,dra7"
8588
@@ -154,6 +157,9 @@ Boards: · 68 unmodified lines
154157 - AM335X phyCORE-AM335x: Development kit
155158 compatible = "phytec,am335x-pcm-953", "phytec,am335x-phycore-som", "ti,am33xx"
156159
160+- AM335X UC-8100-ME-T: Communication-centric industrial computing platform
161+ compatible = "moxa,uc-8100-me-t", "ti,am33xx";
162+
157163 - OMAP5 EVM : Evaluation Module
158164 compatible = "ti,omap5-evm", "ti,omap5"
159165
@@ -184,6 +190,9 @@ Boards: · 24 unmodified lines
184190 - AM5718 IDK
185191 compatible = "ti,am5718-idk", "ti,am5718", "ti,dra7"
186192
193+- DRA762 EVM: Software Development Board for DRA762
194+ compatible = "ti,dra76-evm", "ti,dra762", "ti,dra7"
195+
187196 - DRA742 EVM: Software Development Board for DRA742
188197 compatible = "ti,dra7-evm", "ti,dra742", "ti,dra74", "ti,dra7"
189198
Documentation/devicetree/bindings/arm/pmu.txt+2−0
@@ -9,9 +9,11 @@ Required properties: · 8 unmodified lines
99 - compatible : should be one of
1010 "apm,potenza-pmu"
1111 "arm,armv8-pmuv3"
12+ "arm,cortex-a73-pmu"
1213 "arm,cortex-a72-pmu"
1314 "arm,cortex-a57-pmu"
1415 "arm,cortex-a53-pmu"
16+ "arm,cortex-a35-pmu"
1517 "arm,cortex-a17-pmu"
1618 "arm,cortex-a15-pmu"
1719 "arm,cortex-a12-pmu"
Documentation/devicetree/bindings/arm/qcom.txt+2−0
@@ -25,6 +25,7 @@ The 'SoC' element must be one of the following strings: · 24 unmodified lines
2525 msm8994
2626 msm8996
2727 mdm9615
28+ ipq8074
2829
2930 The 'board' element must be one of the following strings:
3031
@@ -33,6 +34,7 @@ The 'board' element must be one of the following strings: · 2 unmodified lines
3334 dragonboard
3435 mtp
3536 sbc
37+ hk01
3638
3739 The 'soc_version' and 'board_version' elements take the form of v<Major>.<Minor>
3840 where the minor number may be omitted when it's zero, i.e. v1.0 is the same
Documentation/devicetree/bindings/arm/rockchip.txt+12−0
@@ -134,6 +134,10 @@ Rockchip platforms device tree bindings · 133 unmodified lines
134134 Required root node properties:
135135 - compatible = "phytec,rk3288-pcm-947", "phytec,rk3288-phycore-som", "rockchip,rk3288";
136136
137+- Pine64 Rock64 board:
138+ Required root node properties:
139+ - compatible = "pine64,rock64", "rockchip,rk3328";
140+
137141 - Rockchip PX3 Evaluation board:
138142 Required root node properties:
139143 - compatible = "rockchip,px3-evb", "rockchip,px3", "rockchip,rk3188";
@@ -173,6 +177,14 @@ Rockchip platforms device tree bindings · 33 unmodified lines
173177 Required root node properties:
174178 - compatible = "rockchip,rk3399-evb", "rockchip,rk3399";
175179
180+- Rockchip RK3399 Sapphire Excavator board:
181+ Required root node properties:
182+ - compatible = "rockchip,rk3399-sapphire-excavator", "rockchip,rk3399";
183+
184+- Theobroma Systems RK3399-Q7 Haikou Baseboard:
185+ Required root node properties:
186+ - compatible = "tsd,rk3399-q7-haikou", "rockchip,rk3399";
187+
176188 - Tronsmart Orion R68 Meta
177189 Required root node properties:
178190 - compatible = "tronsmart,orion-r68-meta", "rockchip,rk3368";
Documentation/devicetree/bindings/arm/shmobile.txt+8−0
@@ -39,6 +39,8 @@ SoCs: · 38 unmodified lines
3939 compatible = "renesas,r8a7795"
4040 - R-Car M3-W (R8A77960)
4141 compatible = "renesas,r8a7796"
42+ - R-Car D3 (R8A77995)
43+ compatible = "renesas,r8a77995"
4244
4345
4446 Boards:
@@ -53,6 +55,8 @@ Boards: · 8 unmodified lines
5355 compatible = "renesas,blanche", "renesas,r8a7792"
5456 - BOCK-W
5557 compatible = "renesas,bockw", "renesas,r8a7778"
58+ - Draak (RTP0RC77995SEB0010S)
59+ compatible = "renesas,draak", "renesas,r8a77995"
5660 - Genmai (RTK772100BC00000BR)
5761 compatible = "renesas,genmai", "renesas,r7s72100"
5862 - GR-Peach (X28A-M01-E/F)
@@ -64,6 +68,10 @@ Boards: · 5 unmodified lines
6468 compatible = "renesas,h3ulcb", "renesas,r8a7795";
6569 - Henninger
6670 compatible = "renesas,henninger", "renesas,r8a7791"
71+ - iWave Systems RZ/G1E SODIMM SOM Development Platform (iW-RainboW-G22D)
72+ compatible = "iwave,g22d", "iwave,g22m", "renesas,r8a7745"
73+ - iWave Systems RZ/G1E SODIMM System On Module (iW-RainboW-G22M-SM)
74+ compatible = "iwave,g22m", "renesas,r8a7745"
6775 - iWave Systems RZ/G1M Qseven Development Platform (iW-RainboW-G20D-Qseven)
6876 compatible = "iwave,g20d", "iwave,g20m", "renesas,r8a7743"
6977 - iWave Systems RZ/G1M Qseven System On Module (iW-RainboW-G20M-Qseven)
Documentation/devicetree/bindings/ata/ahci-mtk.txt+51−0
@@ -0,0 +1,51 @@
1+MediaTek Serial ATA controller
2+
3+Required properties:
4+ - compatible : Must be "mediatek,<chip>-ahci", "mediatek,mtk-ahci".
5+ When using "mediatek,mtk-ahci" compatible strings, you
6+ need SoC specific ones in addition, one of:
7+ - "mediatek,mt7622-ahci"
8+ - reg : Physical base addresses and length of register sets.
9+ - interrupts : Interrupt associated with the SATA device.
10+ - interrupt-names : Associated name must be: "hostc".
11+ - clocks : A list of phandle and clock specifier pairs, one for each
12+ entry in clock-names.
13+ - clock-names : Associated names must be: "ahb", "axi", "asic", "rbc", "pm".
14+ - phys : A phandle and PHY specifier pair for the PHY port.
15+ - phy-names : Associated name must be: "sata-phy".
16+ - ports-implemented : See ./ahci-platform.txt for details.
17+
18+Optional properties:
19+ - power-domains : A phandle and power domain specifier pair to the power
20+ domain which is responsible for collapsing and restoring
21+ power to the peripheral.
22+ - resets : Must contain an entry for each entry in reset-names.
23+ See ../reset/reset.txt for details.
24+ - reset-names : Associated names must be: "axi", "sw", "reg".
25+ - mediatek,phy-mode : A phandle to the system controller, used to enable
26+ SATA function.
27+
28+Example:
29+
30+ sata: sata@1a200000 {
31+ compatible = "mediatek,mt7622-ahci",
32+ "mediatek,mtk-ahci";
33+ reg = <0 0x1a200000 0 0x1100>;
34+ interrupts = <GIC_SPI 233 IRQ_TYPE_LEVEL_HIGH>;
35+ interrupt-names = "hostc";
36+ clocks = <&pciesys CLK_SATA_AHB_EN>,
37+ <&pciesys CLK_SATA_AXI_EN>,
38+ <&pciesys CLK_SATA_ASIC_EN>,
39+ <&pciesys CLK_SATA_RBC_EN>,
40+ <&pciesys CLK_SATA_PM_EN>;
41+ clock-names = "ahb", "axi", "asic", "rbc", "pm";
42+ phys = <&u3port1 PHY_TYPE_SATA>;
43+ phy-names = "sata-phy";
44+ ports-implemented = <0x1>;
45+ power-domains = <&scpsys MT7622_POWER_DOMAIN_HIF0>;
46+ resets = <&pciesys MT7622_SATA_AXI_BUS_RST>,
47+ <&pciesys MT7622_SATA_PHY_SW_RST>,
48+ <&pciesys MT7622_SATA_PHY_REG_RST>;
49+ reset-names = "axi", "sw", "reg";
50+ mediatek,phy-mode = <&pciesys>;
51+ };
Documentation/devicetree/bindings/ata/apm-xgene.txt+0−2
@@ -57,7 +57,6 @@ Example: · 56 unmodified lines
5757 <0x0 0x1f227000 0x0 0x1000>;
5858 interrupts = <0x0 0x87 0x4>;
5959 dma-coherent;
60− status = "ok";
6160 clocks = <&sataclk 0>;
6261 phys = <&phy2 0>;
6362 phy-names = "sata-phy";
@@ -72,7 +71,6 @@ Example: · 8 unmodified lines
7271 <0x0 0x1f237000 0x0 0x1000>;
7372 interrupts = <0x0 0x88 0x4>;
7473 dma-coherent;
75− status = "ok";
7674 clocks = <&sataclk 0>;
7775 phys = <&phy3 0>;
7876 phy-names = "sata-phy";
Documentation/devicetree/bindings/ata/imx-pata.txt+0−1
@@ -13,5 +13,4 @@ Example: · 12 unmodified lines
1313 reg = <0x83fe0000 0x4000>;
1414 interrupts = <70>;
1515 clocks = <&clks 161>;
16− status = "disabled";
1716 };
Documentation/devicetree/bindings/bus/mvebu-mbus.txt+0−3
@@ -227,7 +227,6 @@ See the example below, where a more complete device tree is shown: · 226 unmodified lines
227227 };
228228
229229 devbus-bootcs {
230− status = "okay";
231230 ranges = <0 MBUS_ID(0x01, 0x2f) 0 0x8000000>;
232231
233232 /* NOR */
@@ -240,7 +239,6 @@ See the example below, where a more complete device tree is shown: · 6 unmodified lines
240239
241240 pcie-controller {
242241 compatible = "marvell,armada-xp-pcie";
243− status = "okay";
244242 device_type = "pci";
245243
246244 #address-cells = <3>;
@@ -258,7 +256,6 @@ See the example below, where a more complete device tree is shown: · 11 unmodified lines
258256
259257 pcie@1,0 {
260258 /* Port 0, Lane 0 */
261− status = "okay";
262259 };
263260 };
264261
Documentation/devicetree/bindings/bus/nvidia,tegra20-gmi.txt+0−2
@@ -84,7 +84,6 @@ gmi@70090000 { · 83 unmodified lines
8484 reset-names = "gmi";
8585 ranges = <4 0 0xd0000000 0xfffffff>;
8686
87− status = "okay";
8887
8988 bus@4,0 {
9089 compatible = "simple-bus";
@@ -121,7 +120,6 @@ gmi@70090000 { · 30 unmodified lines
121120 reset-names = "gmi";
122121 ranges = <4 0 0xd0000000 0xfffffff>;
123122
124− status = "okay";
125123
126124 can@4,0 {
127125 reg = <4 0 0x100>;
Documentation/devicetree/bindings/bus/nvidia,tegra210-aconnect.txt+0−1
@@ -33,7 +33,6 @@ Example: · 32 unmodified lines
3333 #size-cells = <1>;
3434 ranges = <0x702c0000 0x0 0x702c0000 0x00040000>;
3535
36− status = "disabled";
3736
3837 child1 {
3938 ...
Documentation/devicetree/bindings/chosen.txt+24−2
@@ -5,9 +5,31 @@ The chosen node does not represent a real device, but serves as a place · 4 unmodified lines
55 for passing data between firmware and the operating system, like boot
66 arguments. Data in the chosen node does not represent the hardware.
77
8+The following properties are recognized:
89
9−stdout-path property
10−--------------------
10+
11+kaslr-seed
12+-----------
13+
14+This property is used when booting with CONFIG_RANDOMIZE_BASE as the
15+entropy used to randomize the kernel image base address location. Since
16+it is used directly, this value is intended only for KASLR, and should
17+not be used for other purposes (as it may leak information about KASLR
18+offsets). It is parsed as a u64 value, e.g.
19+
20+/ {
21+ chosen {
22+ kaslr-seed = <0xfeedbeef 0xc0def00d>;
23+ };
24+};
25+
26+Note that if this property is set from UEFI (or a bootloader in EFI
27+mode) when EFI_RNG_PROTOCOL is supported, it will be overwritten by
28+the Linux EFI stub (which will populate the property itself, using
29+EFI_RNG_PROTOCOL).
30+
31+stdout-path
32+-----------
1133
1234 Device trees may specify the device to be used for boot console output
1335 with a stdout-path property under /chosen, as described in the Devicetree
Documentation/devicetree/bindings/clock/alphascale,acc.txt+0−1
@@ -102,7 +102,6 @@ uart4: serial@80010000 { · 101 unmodified lines
102102 reg = <0x80010000 0x4000>;
103103 clocks = <&acc CLKID_SYS_UART4>, <&acc CLKID_AHB_UART4>;
104104 interrupts = <19>;
105− status = "disabled";
106105 };
107106
108107 Clock consumer with only one, _AHB_ sink.
Documentation/devicetree/bindings/clock/amlogic,gxbb-aoclkc.txt+16−7
@@ -5,9 +5,11 @@ controllers within the Always-On part of the SoC. · 4 unmodified lines
55
66 Required Properties:
77
8−- compatible: should be "amlogic,gxbb-aoclkc"
9−- reg: physical base address of the clock controller and length of memory
10− mapped region.
8+- compatible: value should be different for each SoC family as :
9+ - GXBB (S905) : "amlogic,meson-gxbb-aoclkc"
10+ - GXL (S905X, S905D) : "amlogic,meson-gxl-aoclkc"
11+ - GXM (S912) : "amlogic,meson-gxm-aoclkc"
12+ followed by the common "amlogic,meson-gx-aoclkc"
1113
1214 - #clock-cells: should be 1.
1315
@@ -23,14 +25,22 @@ to specify the reset which they consume. All available resets are defined as · 9 unmodified lines
2325 preprocessor macros in the dt-bindings/reset/gxbb-aoclkc.h header and can be
2426 used in device tree sources.
2527
28+Parent node should have the following properties :
29+- compatible: "amlogic,meson-gx-ao-sysctrl", "syscon", "simple-mfd"
30+- reg: base address and size of the AO system control register space.
31+
2632 Example: AO Clock controller node:
2733
28− clkc_AO: clock-controller@040 {
29− compatible = "amlogic,gxbb-aoclkc";
30− reg = <0x0 0x040 0x0 0x4>;
34+ao_sysctrl: sys-ctrl@0 {
35+ compatible = "amlogic,meson-gx-ao-sysctrl", "syscon", "simple-mfd";
36+ reg = <0x0 0x0 0x0 0x100>;
37+
38+ clkc_AO: clock-controller {
39+ compatible = "amlogic,meson-gxbb-aoclkc", "amlogic,meson-gx-aoclkc";
3140 #clock-cells = <1>;
3241 #reset-cells = <1>;
3342 };
43+};
3444
3545 Example: UART controller node that consumes the clock and reset generated
3646 by the clock controller:
@@ -41,5 +51,4 @@ Example: UART controller node that consumes the clock and reset generated · 4 unmodified lines
4151 interrupts = <0 90 1>;
4252 clocks = <&clkc_AO CLKID_AO_UART1>;
4353 resets = <&clkc_AO RESET_AO_UART1>;
44− status = "disabled";
4554 };
Documentation/devicetree/bindings/clock/amlogic,gxbb-clkc.txt+0−1
@@ -33,5 +33,4 @@ Example: UART controller node that consumes the clock generated by the clock · 32 unmodified lines
3333 reg = <0xc81004c0 0x14>;
3434 interrupts = <0 90 1>;
3535 clocks = <&clkc CLKID_CLK81>;
36− status = "disabled";
3736 };
Documentation/devicetree/bindings/clock/amlogic,meson8b-clkc.txt+8−2
@@ -16,18 +16,25 @@ Required Properties: · 15 unmodified lines
1616 mapped region.
1717
1818 - #clock-cells: should be 1.
19+- #reset-cells: should be 1.
1920
2021 Each clock is assigned an identifier and client nodes can use this identifier
2122 to specify the clock which they consume. All available clocks are defined as
2223 preprocessor macros in the dt-bindings/clock/meson8b-clkc.h header and can be
2324 used in device tree sources.
2425
26+Similarly a preprocessor macro for each reset line is defined in
27+dt-bindings/reset/amlogic,meson8b-clkc-reset.h (which can be used from the
28+device tree sources).
29+
30+
2531 Example: Clock controller node:
2632
2733 clkc: clock-controller@c1104000 {
28− #clock-cells = <1>;
2934 compatible = "amlogic,meson8b-clkc";
3035 reg = <0xc1108000 0x4>, <0xc1104000 0x460>;
36+ #clock-cells = <1>;
37+ #reset-cells = <1>;
3138 };
3239
3340
@@ -39,5 +46,4 @@ Example: UART controller node that consumes the clock generated by the clock · 5 unmodified lines
3946 reg = <0xc81004c0 0x14>;
4047 interrupts = <0 90 1>;
4148 clocks = <&clkc CLKID_CLK81>;
42− status = "disabled";
4349 };
Documentation/devicetree/bindings/clock/at91-clock.txt+10−0
@@ -81,6 +81,16 @@ Required properties: · 80 unmodified lines
8181 "atmel,sama5d2-clk-generated":
8282 at91 generated clock
8383
84+ "atmel,sama5d2-clk-audio-pll-frac":
85+ at91 audio fractional pll
86+
87+ "atmel,sama5d2-clk-audio-pll-pad":
88+ at91 audio pll CLK_AUDIO output pin
89+
90+ "atmel,sama5d2-clk-audio-pll-pmc"
91+ at91 audio pll output on AUDIOPLLCLK that feeds the PMC
92+ and can be used by peripheral clock or generic clock
93+
8494 Required properties for SCKC node:
8595 - reg : defines the IO memory reserved for the SCKC.
8696 - #size-cells : shall be 0 (reg is used to encode clk id).
Documentation/devicetree/bindings/clock/brcm,kona-ccu.txt+0−1
@@ -46,7 +46,6 @@ Device tree example: · 45 unmodified lines
4646
4747 uart@3e002000 {
4848 compatible = "brcm,bcm11351-dw-apb-uart", "snps,dw-apb-uart";
49− status = "disabled";
5049 reg = <0x3e002000 0x1000>;
5150 clocks = <&slave_ccu BCM281XX_SLAVE_CCU_UARTB3>;
5251 interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
Documentation/devicetree/bindings/clock/exynos5433-clock.txt+0−1
@@ -465,5 +465,4 @@ Example 3: UART controller node that consumes the clock generated by the clock · 464 unmodified lines
465465 clock-names = "uart", "clk_uart_baud0";
466466 pinctrl-names = "default";
467467 pinctrl-0 = <&uart0_bus>;
468− status = "disabled";
469468 };
Documentation/devicetree/bindings/clock/hi3660-clock.txt+0−1
@@ -38,5 +38,4 @@ Examples: · 37 unmodified lines
3838 clocks = <&crg_ctrl HI3660_CLK_MUX_UART0>,
3939 <&crg_ctrl HI3660_PCLK>;
4040 clock-names = "uartclk", "apb_pclk";
41− status = "disabled";
4241 };
Documentation/devicetree/bindings/clock/hix5hd2-clock.txt+0−1
@@ -27,5 +27,4 @@ Examples: · 26 unmodified lines
2727 interrupts = <0 49 4>;
2828 clocks = <&clock HIX5HD2_FIXED_83M>;
2929 clock-names = "apb_pclk";
30− status = "disabled";
3130 };
Documentation/devicetree/bindings/clock/idt,versaclock5.txt+23−7
@@ -1,24 +1,32 @@
1−Binding for IDT VersaClock5 programmable i2c clock generator.
1+Binding for IDT VersaClock 5,6 programmable i2c clock generators.
22
3−The IDT VersaClock5 are programmable i2c clock generators providing
4−from 3 to 12 output clocks.
3+The IDT VersaClock 5 and VersaClock 6 are programmable i2c clock
4+generators providing from 3 to 12 output clocks.
55
66 ==I2C device node==
77
88 Required properties:
9−- compatible: shall be one of "idt,5p49v5923" , "idt,5p49v5933" ,
10− "idt,5p49v5935".
9+- compatible: shall be one of
10+ "idt,5p49v5923"
11+ "idt,5p49v5925"
12+ "idt,5p49v5933"
13+ "idt,5p49v5935"
14+ "idt,5p49v6901"
1115 - reg: i2c device address, shall be 0x68 or 0x6a.
1216 - #clock-cells: from common clock binding; shall be set to 1.
1317 - clocks: from common clock binding; list of parent clock handles,
14− - 5p49v5923: (required) either or both of XTAL or CLKIN
18+ - 5p49v5923 and
19+ 5p49v5925 and
20+ 5p49v6901: (required) either or both of XTAL or CLKIN
1521 reference clock.
1622 - 5p49v5933 and
1723 - 5p49v5935: (optional) property not present (internal
1824 Xtal used) or CLKIN reference
1925 clock.
2026 - clock-names: from common clock binding; clock input names, can be
21− - 5p49v5923: (required) either or both of "xin", "clkin".
27+ - 5p49v5923 and
28+ 5p49v5925 and
29+ 5p49v6901: (required) either or both of "xin", "clkin".
2230 - 5p49v5933 and
2331 - 5p49v5935: (optional) property not present or "clkin".
2432
@@ -37,6 +45,7 @@ clock specifier, the following mapping applies: · 12 unmodified lines
3745 1 -- OUT1
3846 2 -- OUT4
3947
48+5P49V5925 and
4049 5P49V5935:
4150 0 -- OUT0_SEL_I2CB
4251 1 -- OUT1
@@ -44,6 +53,13 @@ clock specifier, the following mapping applies: · 1 unmodified line
4453 3 -- OUT3
4554 4 -- OUT4
4655
56+5P49V6901:
57+ 0 -- OUT0_SEL_I2CB
58+ 1 -- OUT1
59+ 2 -- OUT2
60+ 3 -- OUT3
61+ 4 -- OUT4
62+
4763 ==Example==
4864
4965 /* 25MHz reference crystal */
Documentation/devicetree/bindings/clock/imx21-clock.txt+0−1
@@ -24,5 +24,4 @@ Examples: · 23 unmodified lines
2424 clocks = <&clks IMX21_CLK_UART1_IPG_GATE>,
2525 <&clks IMX21_CLK_PER1>;
2626 clock-names = "ipg", "per";
27− status = "disabled";
2827 };
Documentation/devicetree/bindings/clock/imx23-clock.txt+0−1
@@ -67,5 +67,4 @@ auart0: serial@8006c000 { · 66 unmodified lines
6767 reg = <0x8006c000 0x2000>;
6868 interrupts = <24 25 23>;
6969 clocks = <&clks 32>;
70− status = "disabled";
7170 };
Documentation/devicetree/bindings/clock/imx25-clock.txt+0−1
@@ -157,5 +157,4 @@ uart1: serial@43f90000 { · 156 unmodified lines
157157 interrupts = <45>;
158158 clocks = <&clks 79>, <&clks 50>;
159159 clock-names = "ipg", "per";
160− status = "disabled";
161160 };
Documentation/devicetree/bindings/clock/imx27-clock.txt+0−1
@@ -24,5 +24,4 @@ Examples: · 23 unmodified lines
2424 clocks = <&clks IMX27_CLK_UART1_IPG_GATE>,
2525 <&clks IMX27_CLK_PER1_GATE>;
2626 clock-names = "ipg", "per";
27− status = "disabled";
2827 };
Documentation/devicetree/bindings/clock/imx28-clock.txt+0−1
@@ -90,5 +90,4 @@ auart0: serial@8006a000 { · 89 unmodified lines
9090 reg = <0x8006a000 0x2000>;
9191 interrupts = <112 70 71>;
9292 clocks = <&clks 45>;
93− status = "disabled";
9493 };
Documentation/devicetree/bindings/clock/imx31-clock.txt+0−1
@@ -87,5 +87,4 @@ uart1: serial@43f90000 { · 86 unmodified lines
8787 interrupts = <45>;
8888 clocks = <&clks 10>, <&clks 30>;
8989 clock-names = "ipg", "per";
90− status = "disabled";
9190 };
Documentation/devicetree/bindings/clock/imx5-clock.txt+0−1
@@ -25,5 +25,4 @@ can1: can@53fc8000 { · 24 unmodified lines
2525 interrupts = <82>;
2626 clocks = <&clks IMX5_CLK_CAN1_IPG_GATE>, <&clks IMX5_CLK_CAN1_SERIAL_GATE>;
2727 clock-names = "ipg", "per";
28− status = "disabled";
2928 };
Documentation/devicetree/bindings/clock/imx6q-clock.txt+0−1
@@ -27,5 +27,4 @@ uart1: serial@02020000 { · 26 unmodified lines
2727 interrupts = <0 26 0x04>;
2828 clocks = <&clks IMX6QDL_CLK_UART_IPG>, <&clks IMX6QDL_CLK_UART_SERIAL>;
2929 clock-names = "ipg", "per";
30− status = "disabled";
3130 };
Documentation/devicetree/bindings/clock/mt8173-cpu-dvfs.txt+0−83
@@ -1,83 +0,0 @@
1−Device Tree Clock bindins for CPU DVFS of Mediatek MT8173 SoC
2−
3−Required properties:
4−- clocks: A list of phandle + clock-specifier pairs for the clocks listed in clock names.
5−- clock-names: Should contain the following:
6− "cpu" - The multiplexer for clock input of CPU cluster.
7− "intermediate" - A parent of "cpu" clock which is used as "intermediate" clock
8− source (usually MAINPLL) when the original CPU PLL is under
9− transition and not stable yet.
10− Please refer to Documentation/devicetree/bindings/clk/clock-bindings.txt for
11− generic clock consumer properties.
12−- proc-supply: Regulator for Vproc of CPU cluster.
13−
14−Optional properties:
15−- sram-supply: Regulator for Vsram of CPU cluster. When present, the cpufreq driver
16− needs to do "voltage tracking" to step by step scale up/down Vproc and
17− Vsram to fit SoC specific needs. When absent, the voltage scaling
18− flow is handled by hardware, hence no software "voltage tracking" is
19− needed.
20−
21−Example:
22−--------
23− cpu0: cpu@0 {
24− device_type = "cpu";
25− compatible = "arm,cortex-a53";
26− reg = <0x000>;
27− enable-method = "psci";
28− cpu-idle-states = <&CPU_SLEEP_0>;
29− clocks = <&infracfg CLK_INFRA_CA53SEL>,
30− <&apmixedsys CLK_APMIXED_MAINPLL>;
31− clock-names = "cpu", "intermediate";
32− };
33−
34− cpu1: cpu@1 {
35− device_type = "cpu";
36− compatible = "arm,cortex-a53";
37− reg = <0x001>;
38− enable-method = "psci";
39− cpu-idle-states = <&CPU_SLEEP_0>;
40− clocks = <&infracfg CLK_INFRA_CA53SEL>,
41− <&apmixedsys CLK_APMIXED_MAINPLL>;
42− clock-names = "cpu", "intermediate";
43− };
44−
45− cpu2: cpu@100 {
46− device_type = "cpu";
47− compatible = "arm,cortex-a57";
48− reg = <0x100>;
49− enable-method = "psci";
50− cpu-idle-states = <&CPU_SLEEP_0>;
51− clocks = <&infracfg CLK_INFRA_CA57SEL>,
52− <&apmixedsys CLK_APMIXED_MAINPLL>;
53− clock-names = "cpu", "intermediate";
54− };
55−
56− cpu3: cpu@101 {
57− device_type = "cpu";
58− compatible = "arm,cortex-a57";
59− reg = <0x101>;
60− enable-method = "psci";
61− cpu-idle-states = <&CPU_SLEEP_0>;
62− clocks = <&infracfg CLK_INFRA_CA57SEL>,
63− <&apmixedsys CLK_APMIXED_MAINPLL>;
64− clock-names = "cpu", "intermediate";
65− };
66−
67− &cpu0 {
68− proc-supply = <&mt6397_vpca15_reg>;
69− };
70−
71− &cpu1 {
72− proc-supply = <&mt6397_vpca15_reg>;
73− };
74−
75− &cpu2 {
76− proc-supply = <&da9211_vcpu_reg>;
77− sram-supply = <&mt6397_vsramca7_reg>;
78− };
79−
80− &cpu3 {
81− proc-supply = <&da9211_vcpu_reg>;
82− sram-supply = <&mt6397_vsramca7_reg>;
83− };
Documentation/devicetree/bindings/clock/nvidia,tegra124-dfll.txt+0−1
@@ -66,7 +66,6 @@ clock@70110000 { · 65 unmodified lines
6666 #clock-cells = <0>;
6767 clock-output-names = "dfllCPU_out";
6868 vdd-cpu-supply = <&vdd_cpu>;
69− status = "okay";
7069
7170 nvidia,sample-rate = <12500>;
7271 nvidia,droop-ctrl = <0x00000f00>;
Documentation/devicetree/bindings/clock/pxa-clock.txt+0−1
@@ -12,5 +12,4 @@ Examples: · 11 unmodified lines
1212 pxa2xx_clks: pxa2xx_clks@41300004 {
1313 compatible = "marvell,pxa-clocks";
1414 #clock-cells = <1>;
15− status = "okay";
1615 };
Documentation/devicetree/bindings/clock/renesas,cpg-mssr.txt+2−2
@@ -22,6 +22,7 @@ Required Properties: · 21 unmodified lines
2222 - "renesas,r8a7794-cpg-mssr" for the r8a7794 SoC (R-Car E2)
2323 - "renesas,r8a7795-cpg-mssr" for the r8a7795 SoC (R-Car H3)
2424 - "renesas,r8a7796-cpg-mssr" for the r8a7796 SoC (R-Car M3-W)
25+ - "renesas,r8a77995-cpg-mssr" for the r8a77995 SoC (R-Car D3)
2526
2627 - reg: Base address and length of the memory resource used by the CPG/MSSR
2728 block
@@ -30,7 +31,7 @@ Required Properties: · 2 unmodified lines
3031 clock-names
3132 - clock-names: List of external parent clock names. Valid names are:
3233 - "extal" (r8a7743, r8a7745, r8a7790, r8a7791, r8a7792, r8a7793, r8a7794,
33− r8a7795, r8a7796)
34+ r8a7795, r8a7796, r8a77995)
3435 - "extalr" (r8a7795, r8a7796)
3536 - "usb_extal" (r8a7743, r8a7745, r8a7790, r8a7791, r8a7793, r8a7794)
3637
@@ -81,5 +82,4 @@ Examples · 44 unmodified lines
8182 dma-names = "tx", "rx";
8283 power-domains = <&cpg>;
8384 resets = <&cpg 310>;
84− status = "disabled";
8585 };
Documentation/devicetree/bindings/clock/renesas,r8a7778-cpg-clocks.txt+0−1
@@ -44,5 +44,4 @@ Examples · 43 unmodified lines
4444 interrupts = <0 87 IRQ_TYPE_LEVEL_HIGH>;
4545 clocks = <&mstp3_clks R8A7778_CLK_SDHI0>;
4646 power-domains = <&cpg_clocks>;
47− status = "disabled";
4847 };
Documentation/devicetree/bindings/clock/renesas,rcar-usb2-clock-sel.txt+55−0
@@ -0,0 +1,55 @@
1+* Renesas R-Car USB 2.0 clock selector
2+
3+This file provides information on what the device node for the R-Car USB 2.0
4+clock selector.
5+
6+If you connect an external clock to the USB_EXTAL pin only, you should set
7+the clock rate to "usb_extal" node only.
8+If you connect an oscillator to both the USB_XTAL and USB_EXTAL, this module
9+is not needed because this is default setting. (Of course, you can set the
10+clock rates to both "usb_extal" and "usb_xtal" nodes.
11+
12+Case 1: An external clock connects to R-Car SoC
13+ +----------+ +--- R-Car ---------------------+
14+ |External |---|USB_EXTAL ---> all usb channels|
15+ |clock | |USB_XTAL |
16+ +----------+ +-------------------------------+
17+In this case, we need this driver with "usb_extal" clock.
18+
19+Case 2: An oscillator connects to R-Car SoC
20+ +----------+ +--- R-Car ---------------------+
21+ |Oscillator|---|USB_EXTAL -+-> all usb channels|
22+ | |---|USB_XTAL --+ |
23+ +----------+ +-------------------------------+
24+In this case, we don't need this selector.
25+
26+Required properties:
27+- compatible: "renesas,r8a7795-rcar-usb2-clock-sel" if the device is a part of
28+ an R8A7795 SoC.
29+ "renesas,r8a7796-rcar-usb2-clock-sel" if the device if a part of
30+ an R8A7796 SoC.
31+ "renesas,rcar-gen3-usb2-clock-sel" for a generic R-Car Gen3
32+ compatible device.
33+
34+ When compatible with the generic version, nodes must list the
35+ SoC-specific version corresponding to the platform first
36+ followed by the generic version.
37+
38+- reg: offset and length of the USB 2.0 clock selector register block.
39+- clocks: A list of phandles and specifier pairs.
40+- clock-names: Name of the clocks.
41+ - The functional clock must be "ehci_ohci"
42+ - The USB_EXTAL clock pin must be "usb_extal"
43+ - The USB_XTAL clock pin must be "usb_xtal"
44+- #clock-cells: Must be 0
45+
46+Example (R-Car H3):
47+
48+ usb2_clksel: clock-controller@e6590630 {
49+ compatible = "renesas,r8a77950-rcar-usb2-clock-sel",
50+ "renesas,rcar-gen3-usb2-clock-sel";
51+ reg = <0 0xe6590630 0 0x02>;
52+ clocks = <&cpg CPG_MOD 703>, <&usb_extal>, <&usb_xtal>;
53+ clock-names = "ehci_ohci", "usb_extal", "usb_xtal";
54+ #clock-cells = <0>;
55+ };
Documentation/devicetree/bindings/clock/renesas,rz-cpg-clocks.txt+0−1
@@ -50,5 +50,4 @@ Examples · 49 unmodified lines
5050 clocks = <&mstp3_clks R7S72100_CLK_MTU2>;
5151 clock-names = "fck";
5252 power-domains = <&cpg_clocks>;
53− status = "disabled";
5453 };
Documentation/devicetree/bindings/clock/rockchip,rk3128-cru.txt+5−3
@@ -1,12 +1,14 @@
1−* Rockchip RK3128 Clock and Reset Unit
1+* Rockchip RK3126/RK3128 Clock and Reset Unit
22
3−The RK3128 clock controller generates and supplies clock to various
3+The RK3126/RK3128 clock controller generates and supplies clock to various
44 controllers within the SoC and also implements a reset controller for SoC
55 peripherals.
66
77 Required Properties:
88
9−- compatible: should be "rockchip,rk3128-cru"
9+- compatible: should be "rockchip,rk3126-cru" or "rockchip,rk3128-cru"
10+ "rockchip,rk3126-cru" - controller compatible with RK3126 SoC.
11+ "rockchip,rk3128-cru" - controller compatible with RK3128 SoC.
1012 - reg: physical base address of the controller and length of memory mapped
1113 region.
1214 - #clock-cells: should be 1.
Documentation/devicetree/bindings/clock/samsung,s3c2410-clock.txt+0−1
@@ -46,5 +46,4 @@ Example: UART controller node that consumes the clock generated by the clock · 45 unmodified lines
4646 interrupts = <1 23 3 4>, <1 23 4 4>;
4747 clock-names = "uart", "clk_uart_baud2";
4848 clocks = <&clocks PCLK_UART0>, <&clocks PCLK_UART0>;
49− status = "disabled";
5049 };
Documentation/devicetree/bindings/clock/samsung,s3c2412-clock.txt+0−1
@@ -46,5 +46,4 @@ Example: UART controller node that consumes the clock generated by the clock · 45 unmodified lines
4646 clock-names = "uart", "clk_uart_baud2", "clk_uart_baud3";
4747 clocks = <&clocks PCLK_UART0>, <&clocks PCLK_UART0>,
4848 <&clocks SCLK_UART>;
49− status = "disabled";
5049 };
Documentation/devicetree/bindings/clock/samsung,s3c2443-clock.txt+0−1
@@ -52,5 +52,4 @@ Example: UART controller node that consumes the clock generated by the clock · 51 unmodified lines
5252 "clk_uart_baud3";
5353 clocks = <&clocks PCLK_UART0>, <&clocks PCLK_UART0>,
5454 <&clocks SCLK_UART>;
55− status = "disabled";
5655 };
Documentation/devicetree/bindings/clock/samsung,s3c64xx-clock.txt+0−1
@@ -73,5 +73,4 @@ Example: UART controller node that consumes the clock generated by the clock · 72 unmodified lines
7373 "clk_uart_baud3";
7474 clocks = <&clock PCLK_UART0>, <&clocks PCLK_UART0>,
7575 <&clock SCLK_UART>;
76− status = "disabled";
7776 };
Documentation/devicetree/bindings/clock/samsung,s5pv210-clock.txt+0−1
@@ -74,5 +74,4 @@ Example: UART controller node that consumes the clock generated by the clock · 73 unmodified lines
7474 "clk_uart_baud1";
7575 clocks = <&clocks UART0>, <&clocks UART0>,
7676 <&clocks SCLK_UART0>;
77− status = "disabled";
7877 };
Documentation/devicetree/bindings/clock/silabs,si5351.txt+5−1
@@ -12,7 +12,11 @@ generators can be found in [1]. · 11 unmodified lines
1212 ==I2C device node==
1313
1414 Required properties:
15−- compatible: shall be one of "silabs,si5351{a,a-msop,b,c}".
15+- compatible: shall be one of the following:
16+ "silabs,si5351a" - Si5351a, QFN20 package
17+ "silabs,si5351a-msop" - Si5351a, MSOP10 package
18+ "silabs,si5351b" - Si5351b, QFN20 package
19+ "silabs,si5351c" - Si5351c, QFN20 package
1620 - reg: i2c device address, shall be 0x60 or 0x61.
1721 - #clock-cells: from common clock binding; shall be set to 1.
1822 - clocks: from common clock binding; list of parent clock
Documentation/devicetree/bindings/clock/snps,hsdk-pll-clock.txt+28−0
@@ -0,0 +1,28 @@
1+Binding for the HSDK Generic PLL clock
2+
3+This binding uses the common clock binding[1].
4+
5+[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
6+
7+Required properties:
8+- compatible: should be "snps,hsdk-<name>-pll-clock"
9+ "snps,hsdk-core-pll-clock"
10+ "snps,hsdk-gp-pll-clock"
11+ "snps,hsdk-hdmi-pll-clock"
12+- reg : should contain base register location and length.
13+- clocks: shall be the input parent clock phandle for the PLL.
14+- #clock-cells: from common clock binding; Should always be set to 0.
15+
16+Example:
17+ input_clk: input-clk {
18+ clock-frequency = <33333333>;
19+ compatible = "fixed-clock";
20+ #clock-cells = <0>;
21+ };
22+
23+ cpu_clk: cpu-clk@0 {
24+ compatible = "snps,hsdk-core-pll-clock";
25+ reg = <0x00 0x10>;
26+ #clock-cells = <0>;
27+ clocks = <&input_clk>;
28+ };
Documentation/devicetree/bindings/clock/snps,pll-clock.txt+28−0
@@ -0,0 +1,28 @@
1+Binding for the AXS10X Generic PLL clock
2+
3+This binding uses the common clock binding[1].
4+
5+[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
6+
7+Required properties:
8+- compatible: should be "snps,axs10x-<name>-pll-clock"
9+ "snps,axs10x-arc-pll-clock"
10+ "snps,axs10x-pgu-pll-clock"
11+- reg: should always contain 2 pairs address - length: first for PLL config
12+registers and second for corresponding LOCK CGU register.
13+- clocks: shall be the input parent clock phandle for the PLL.
14+- #clock-cells: from common clock binding; Should always be set to 0.
15+
16+Example:
17+ input-clk: input-clk {
18+ clock-frequency = <33333333>;
19+ compatible = "fixed-clock";
20+ #clock-cells = <0>;
21+ };
22+
23+ core-clk: core-clk@80 {
24+ compatible = "snps,axs10x-arc-pll-clock";
25+ reg = <0x80 0x10>, <0x100 0x10>;
26+ #clock-cells = <0>;
27+ clocks = <&input-clk>;
28+ };
Documentation/devicetree/bindings/clock/st,stm32h7-rcc.txt+71−0
@@ -0,0 +1,71 @@
1+STMicroelectronics STM32H7 Reset and Clock Controller
2+=====================================================
3+
4+The RCC IP is both a reset and a clock controller.
5+
6+Please refer to clock-bindings.txt for common clock controller binding usage.
7+Please also refer to reset.txt for common reset controller binding usage.
8+
9+Required properties:
10+- compatible: Should be:
11+ "st,stm32h743-rcc"
12+
13+- reg: should be register base and length as documented in the
14+ datasheet
15+
16+- #reset-cells: 1, see below
17+
18+- #clock-cells : from common clock binding; shall be set to 1
19+
20+- clocks: External oscillator clock phandle
21+ - high speed external clock signal (HSE)
22+ - low speed external clock signal (LSE)
23+ - external I2S clock (I2S_CKIN)
24+
25+Optional properties:
26+- st,syscfg: phandle for pwrcfg, mandatory to disable/enable backup domain
27+ write protection (RTC clock).
28+
29+Example:
30+
31+ rcc: reset-clock-controller@58024400 {
32+ compatible = "st,stm32h743-rcc", "st,stm32-rcc";
33+ reg = <0x58024400 0x400>;
34+ #reset-cells = <1>;
35+ #clock-cells = <1>;
36+ clocks = <&clk_hse>, <&clk_lse>, <&clk_i2s_ckin>;
37+
38+ st,syscfg = <&pwrcfg>;
39+};
40+
41+The peripheral clock consumer should specify the desired clock by
42+having the clock ID in its "clocks" phandle cell.
43+
44+Example:
45+
46+ timer5: timer@40000c00 {
47+ compatible = "st,stm32-timer";
48+ reg = <0x40000c00 0x400>;
49+ interrupts = <50>;
50+ clocks = <&rcc TIM5_CK>;
51+ };
52+
53+Specifying softreset control of devices
54+=======================================
55+
56+Device nodes should specify the reset channel required in their "resets"
57+property, containing a phandle to the reset device node and an index specifying
58+which channel to use.
59+The index is the bit number within the RCC registers bank, starting from RCC
60+base address.
61+It is calculated as: index = register_offset / 4 * 32 + bit_offset.
62+Where bit_offset is the bit offset within the register.
63+
64+For example, for CRC reset:
65+ crc = AHB4RSTR_offset / 4 * 32 + CRCRST_bit_offset = 0x88 / 4 * 32 + 19 = 1107
66+
67+Example:
68+
69+ timer2 {
70+ resets = <&rcc STM32H7_APB1L_RESET(TIM2)>;
71+ };
Documentation/devicetree/bindings/clock/sunxi-ccu.txt+6−0
@@ -3,18 +3,24 @@ Allwinner Clock Control Unit Binding · 2 unmodified lines
33
44 Required properties :
55 - compatible: must contain one of the following compatibles:
6+ - "allwinner,sun4i-a10-ccu"
7+ - "allwinner,sun5i-a10s-ccu"
8+ - "allwinner,sun5i-a13-ccu"
69 - "allwinner,sun6i-a31-ccu"
10+ - "allwinner,sun7i-a20-ccu"
711 - "allwinner,sun8i-a23-ccu"
812 - "allwinner,sun8i-a33-ccu"
913 - "allwinner,sun8i-a83t-ccu"
1014 - "allwinner,sun8i-a83t-r-ccu"
1115 - "allwinner,sun8i-h3-ccu"
1216 - "allwinner,sun8i-h3-r-ccu"
17++ - "allwinner,sun8i-r40-ccu"
1318 - "allwinner,sun8i-v3s-ccu"
1419 - "allwinner,sun9i-a80-ccu"
1520 - "allwinner,sun50i-a64-ccu"
1621 - "allwinner,sun50i-a64-r-ccu"
1722 - "allwinner,sun50i-h5-ccu"
23+ - "nextthing,gr8-ccu"
1824
1925 - reg: Must contain the registers base address and length
2026 - clocks: phandle to the oscillators feeding the CCU. Two are needed:
Documentation/devicetree/bindings/clock/ti,sci-clk.txt+3−4
@@ -14,10 +14,9 @@ Required properties: · 13 unmodified lines
1414 - compatible: Must be "ti,k2g-sci-clk"
1515 - #clock-cells: Shall be 2.
1616 In clock consumers, this cell represents the device ID and clock ID
17− exposed by the PM firmware. The assignments can be found in the header
18− files <dt-bindings/genpd/<soc>.h> (which covers the device IDs) and
19− <dt-bindings/clock/<soc>.h> (which covers the clock IDs), where <soc>
20− is the SoC involved, for example 'k2g'.
17+ exposed by the PM firmware. The list of valid values for the device IDs
18+ and clocks IDs for 66AK2G SoC are documented at
19+ http://processors.wiki.ti.com/index.php/TISCI#66AK2G02_Data
2120
2221 Examples:
2322 --------
Documentation/devicetree/bindings/clock/ti/dra7-atl.txt+0−2
@@ -81,13 +81,11 @@ atl: atl@4843c000 { · 80 unmodified lines
8181 <&atl_clkin2_ck>, <&atl_clkin3_ck>;
8282 clocks = <&atl_gfclk_mux>;
8383 clock-names = "fck";
84− status = "disabled";
8584 };
8685
8786 #include <dt-bindings/clk/ti-dra7-atl.h>
8887
8988 &atl {
90− status = "okay";
9189
9290 atl2 {
9391 bws = <DRA7_ATL_WS_MCASP2_FSX>;
Documentation/devicetree/bindings/clock/uniphier-clock.txt+3−5
@@ -6,7 +6,6 @@ System clock · 5 unmodified lines
66
77 Required properties:
88 - compatible: should be one of the following:
9− "socionext,uniphier-sld3-clock" - for sLD3 SoC.
109 "socionext,uniphier-ld4-clock" - for LD4 SoC.
1110 "socionext,uniphier-pro4-clock" - for Pro4 SoC.
1211 "socionext,uniphier-sld8-clock" - for sLD8 SoC.
@@ -14,6 +13,7 @@ Required properties: · 1 unmodified line
1413 "socionext,uniphier-pxs2-clock" - for PXs2/LD6b SoC.
1514 "socionext,uniphier-ld11-clock" - for LD11 SoC.
1615 "socionext,uniphier-ld20-clock" - for LD20 SoC.
16+ "socionext,uniphier-pxs3-clock" - for PXs3 SoC
1717 - #clock-cells: should be 1.
1818
1919 Example:
@@ -48,7 +48,6 @@ Media I/O (MIO) clock, SD clock · 28 unmodified lines
4848
4949 Required properties:
5050 - compatible: should be one of the following:
51− "socionext,uniphier-sld3-mio-clock" - for sLD3 SoC.
5251 "socionext,uniphier-ld4-mio-clock" - for LD4 SoC.
5352 "socionext,uniphier-pro4-mio-clock" - for Pro4 SoC.
5453 "socionext,uniphier-sld8-mio-clock" - for sLD8 SoC.
@@ -56,6 +55,7 @@ Required properties: · 1 unmodified line
5655 "socionext,uniphier-pxs2-sd-clock" - for PXs2/LD6b SoC.
5756 "socionext,uniphier-ld11-mio-clock" - for LD11 SoC.
5857 "socionext,uniphier-ld20-sd-clock" - for LD20 SoC.
58+ "socionext,uniphier-pxs3-sd-clock" - for PXs3 SoC
5959 - #clock-cells: should be 1.
6060
6161 Example:
@@ -82,11 +82,9 @@ Provided clocks: · 20 unmodified lines
8282 8: USB2 ch0 host
8383 9: USB2 ch1 host
8484 10: USB2 ch2 host
85−11: USB2 ch3 host
8685 12: USB2 ch0 PHY
8786 13: USB2 ch1 PHY
8887 14: USB2 ch2 PHY
89−15: USB2 ch3 PHY
9088
9189
9290 Peripheral clock
@@ -94,7 +92,6 @@ Peripheral clock · 1 unmodified line
9492
9593 Required properties:
9694 - compatible: should be one of the following:
97− "socionext,uniphier-sld3-peri-clock" - for sLD3 SoC.
9895 "socionext,uniphier-ld4-peri-clock" - for LD4 SoC.
9996 "socionext,uniphier-pro4-peri-clock" - for Pro4 SoC.
10097 "socionext,uniphier-sld8-peri-clock" - for sLD8 SoC.
@@ -102,6 +99,7 @@ Required properties: · 1 unmodified line
10299 "socionext,uniphier-pxs2-peri-clock" - for PXs2/LD6b SoC.
103100 "socionext,uniphier-ld11-peri-clock" - for LD11 SoC.
104101 "socionext,uniphier-ld20-peri-clock" - for LD20 SoC.
102+ "socionext,uniphier-pxs3-peri-clock" - for PXs3 SoC
105103 - #clock-cells: should be 1.
106104
107105 Example:
Documentation/devicetree/bindings/clock/zx296702-clk.txt+0−1
@@ -31,5 +31,4 @@ uart0: serial@0x09405000 { · 30 unmodified lines
3131 reg = <0x09405000 0x1000>;
3232 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
3333 clocks = <&lsp1clk ZX296702_UART0_PCLK>;
34− status = "disabled";
3534 };
Documentation/devicetree/bindings/clock/zx296718-clk.txt+0−1
@@ -34,5 +34,4 @@ usbphy0:usb-phy0 { · 33 unmodified lines
3434 #phy-cells = <0>;
3535 clocks = <&topclk USB20_PHY_CLK>;
3636 clock-names = "phyclk";
37− status = "okay";
3837 };
Documentation/devicetree/bindings/cpufreq/cpufreq-mediatek.txt+247−0
@@ -0,0 +1,247 @@
1+Binding for MediaTek's CPUFreq driver
2+=====================================
3+
4+Required properties:
5+- clocks: A list of phandle + clock-specifier pairs for the clocks listed in clock names.
6+- clock-names: Should contain the following:
7+ "cpu" - The multiplexer for clock input of CPU cluster.
8+ "intermediate" - A parent of "cpu" clock which is used as "intermediate" clock
9+ source (usually MAINPLL) when the original CPU PLL is under
10+ transition and not stable yet.
11+ Please refer to Documentation/devicetree/bindings/clk/clock-bindings.txt for
12+ generic clock consumer properties.
13+- operating-points-v2: Please refer to Documentation/devicetree/bindings/opp/opp.txt
14+ for detail.
15+- proc-supply: Regulator for Vproc of CPU cluster.
16+
17+Optional properties:
18+- sram-supply: Regulator for Vsram of CPU cluster. When present, the cpufreq driver
19+ needs to do "voltage tracking" to step by step scale up/down Vproc and
20+ Vsram to fit SoC specific needs. When absent, the voltage scaling
21+ flow is handled by hardware, hence no software "voltage tracking" is
22+ needed.
23+- #cooling-cells:
24+- cooling-min-level:
25+- cooling-max-level:
26+ Please refer to Documentation/devicetree/bindings/thermal/thermal.txt
27+ for detail.
28+
29+Example 1 (MT7623 SoC):
30+
31+ cpu_opp_table: opp_table {
32+ compatible = "operating-points-v2";
33+ opp-shared;
34+
35+ opp-598000000 {
36+ opp-hz = /bits/ 64 <598000000>;
37+ opp-microvolt = <1050000>;
38+ };
39+
40+ opp-747500000 {
41+ opp-hz = /bits/ 64 <747500000>;
42+ opp-microvolt = <1050000>;
43+ };
44+
45+ opp-1040000000 {
46+ opp-hz = /bits/ 64 <1040000000>;
47+ opp-microvolt = <1150000>;
48+ };
49+
50+ opp-1196000000 {
51+ opp-hz = /bits/ 64 <1196000000>;
52+ opp-microvolt = <1200000>;
53+ };
54+
55+ opp-1300000000 {
56+ opp-hz = /bits/ 64 <1300000000>;
57+ opp-microvolt = <1300000>;
58+ };
59+ };
60+
61+ cpu0: cpu@0 {
62+ device_type = "cpu";
63+ compatible = "arm,cortex-a7";
64+ reg = <0x0>;
65+ clocks = <&infracfg CLK_INFRA_CPUSEL>,
66+ <&apmixedsys CLK_APMIXED_MAINPLL>;
67+ clock-names = "cpu", "intermediate";
68+ operating-points-v2 = <&cpu_opp_table>;
69+ #cooling-cells = <2>;
70+ cooling-min-level = <0>;
71+ cooling-max-level = <7>;
72+ };
73+ cpu@1 {
74+ device_type = "cpu";
75+ compatible = "arm,cortex-a7";
76+ reg = <0x1>;
77+ operating-points-v2 = <&cpu_opp_table>;
78+ };
79+ cpu@2 {
80+ device_type = "cpu";
81+ compatible = "arm,cortex-a7";
82+ reg = <0x2>;
83+ operating-points-v2 = <&cpu_opp_table>;
84+ };
85+ cpu@3 {
86+ device_type = "cpu";
87+ compatible = "arm,cortex-a7";
88+ reg = <0x3>;
89+ operating-points-v2 = <&cpu_opp_table>;
90+ };
91+
92+Example 2 (MT8173 SoC):
93+ cpu_opp_table_a: opp_table_a {
94+ compatible = "operating-points-v2";
95+ opp-shared;
96+
97+ opp-507000000 {
98+ opp-hz = /bits/ 64 <507000000>;
99+ opp-microvolt = <859000>;
100+ };
101+
102+ opp-702000000 {
103+ opp-hz = /bits/ 64 <702000000>;
104+ opp-microvolt = <908000>;
105+ };
106+
107+ opp-1001000000 {
108+ opp-hz = /bits/ 64 <1001000000>;
109+ opp-microvolt = <983000>;
110+ };
111+
112+ opp-1105000000 {
113+ opp-hz = /bits/ 64 <1105000000>;
114+ opp-microvolt = <1009000>;
115+ };
116+
117+ opp-1183000000 {
118+ opp-hz = /bits/ 64 <1183000000>;
119+ opp-microvolt = <1028000>;
120+ };
121+
122+ opp-1404000000 {
123+ opp-hz = /bits/ 64 <1404000000>;
124+ opp-microvolt = <1083000>;
125+ };
126+
127+ opp-1508000000 {
128+ opp-hz = /bits/ 64 <1508000000>;
129+ opp-microvolt = <1109000>;
130+ };
131+
132+ opp-1573000000 {
133+ opp-hz = /bits/ 64 <1573000000>;
134+ opp-microvolt = <1125000>;
135+ };
136+ };
137+
138+ cpu_opp_table_b: opp_table_b {
139+ compatible = "operating-points-v2";
140+ opp-shared;
141+
142+ opp-507000000 {
143+ opp-hz = /bits/ 64 <507000000>;
144+ opp-microvolt = <828000>;
145+ };
146+
147+ opp-702000000 {
148+ opp-hz = /bits/ 64 <702000000>;
149+ opp-microvolt = <867000>;
150+ };
151+
152+ opp-1001000000 {
153+ opp-hz = /bits/ 64 <1001000000>;
154+ opp-microvolt = <927000>;
155+ };
156+
157+ opp-1209000000 {
158+ opp-hz = /bits/ 64 <1209000000>;
159+ opp-microvolt = <968000>;
160+ };
161+
162+ opp-1404000000 {
163+ opp-hz = /bits/ 64 <1007000000>;
164+ opp-microvolt = <1028000>;
165+ };
166+
167+ opp-1612000000 {
168+ opp-hz = /bits/ 64 <1612000000>;
169+ opp-microvolt = <1049000>;
170+ };
171+
172+ opp-1807000000 {
173+ opp-hz = /bits/ 64 <1807000000>;
174+ opp-microvolt = <1089000>;
175+ };
176+
177+ opp-1989000000 {
178+ opp-hz = /bits/ 64 <1989000000>;
179+ opp-microvolt = <1125000>;
180+ };
181+ };
182+
183+ cpu0: cpu@0 {
184+ device_type = "cpu";
185+ compatible = "arm,cortex-a53";
186+ reg = <0x000>;
187+ enable-method = "psci";
188+ cpu-idle-states = <&CPU_SLEEP_0>;
189+ clocks = <&infracfg CLK_INFRA_CA53SEL>,
190+ <&apmixedsys CLK_APMIXED_MAINPLL>;
191+ clock-names = "cpu", "intermediate";
192+ operating-points-v2 = <&cpu_opp_table_a>;
193+ };
194+
195+ cpu1: cpu@1 {
196+ device_type = "cpu";
197+ compatible = "arm,cortex-a53";
198+ reg = <0x001>;
199+ enable-method = "psci";
200+ cpu-idle-states = <&CPU_SLEEP_0>;
201+ clocks = <&infracfg CLK_INFRA_CA53SEL>,
202+ <&apmixedsys CLK_APMIXED_MAINPLL>;
203+ clock-names = "cpu", "intermediate";
204+ operating-points-v2 = <&cpu_opp_table_a>;
205+ };
206+
207+ cpu2: cpu@100 {
208+ device_type = "cpu";
209+ compatible = "arm,cortex-a57";
210+ reg = <0x100>;
211+ enable-method = "psci";
212+ cpu-idle-states = <&CPU_SLEEP_0>;
213+ clocks = <&infracfg CLK_INFRA_CA57SEL>,
214+ <&apmixedsys CLK_APMIXED_MAINPLL>;
215+ clock-names = "cpu", "intermediate";
216+ operating-points-v2 = <&cpu_opp_table_b>;
217+ };
218+
219+ cpu3: cpu@101 {
220+ device_type = "cpu";
221+ compatible = "arm,cortex-a57";
222+ reg = <0x101>;
223+ enable-method = "psci";
224+ cpu-idle-states = <&CPU_SLEEP_0>;
225+ clocks = <&infracfg CLK_INFRA_CA57SEL>,
226+ <&apmixedsys CLK_APMIXED_MAINPLL>;
227+ clock-names = "cpu", "intermediate";
228+ operating-points-v2 = <&cpu_opp_table_b>;
229+ };
230+
231+ &cpu0 {
232+ proc-supply = <&mt6397_vpca15_reg>;
233+ };
234+
235+ &cpu1 {
236+ proc-supply = <&mt6397_vpca15_reg>;
237+ };
238+
239+ &cpu2 {
240+ proc-supply = <&da9211_vcpu_reg>;
241+ sram-supply = <&mt6397_vsramca7_reg>;
242+ };
243+
244+ &cpu3 {
245+ proc-supply = <&da9211_vcpu_reg>;
246+ sram-supply = <&mt6397_vsramca7_reg>;
247+ };
Documentation/devicetree/bindings/crypto/artpec6-crypto.txt+16−0
@@ -0,0 +1,16 @@
1+Axis crypto engine with PDMA interface.
2+
3+Required properties:
4+- compatible : Should be one of the following strings:
5+ "axis,artpec6-crypto" for the version in the Axis ARTPEC-6 SoC
6+ "axis,artpec7-crypto" for the version in the Axis ARTPEC-7 SoC.
7+- reg: Base address and size for the PDMA register area.
8+- interrupts: Interrupt handle for the PDMA interrupt line.
9+
10+Example:
11+
12+crypto@f4264000 {
13+ compatible = "axis,artpec6-crypto";
14+ reg = <0xf4264000 0x1000>;
15+ interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
16+};
Documentation/devicetree/bindings/crypto/atmel-crypto.txt+13−0
@@ -66,3 +66,16 @@ sha@f8034000 { · 65 unmodified lines
6666 dmas = <&dma1 2 17>;
6767 dma-names = "tx";
6868 };
69+
70+* Eliptic Curve Cryptography (I2C)
71+
72+Required properties:
73+- compatible : must be "atmel,atecc508a".
74+- reg: I2C bus address of the device.
75+- clock-frequency: must be present in the i2c controller node.
76+
77+Example:
78+atecc508a@C0 {
79+ compatible = "atmel,atecc508a";
80+ reg = <0xC0>;
81+};
Documentation/devicetree/bindings/crypto/fsl-dcp.txt+0−1
@@ -13,5 +13,4 @@ dcp@80028000 { · 12 unmodified lines
1313 compatible = "fsl,imx28-dcp", "fsl,imx23-dcp";
1414 reg = <0x80028000 0x2000>;
1515 interrupts = <52 53>;
16− status = "okay";
1716 };
Documentation/devicetree/bindings/crypto/inside-secure-safexcel.txt+0−1
@@ -23,5 +23,4 @@ Example: · 22 unmodified lines
2323 interrupt-names = "mem", "ring0", "ring1", "ring2", "ring3",
2424 "eip";
2525 clocks = <&cpm_syscon0 1 26>;
26− status = "disabled";
2726 };
Documentation/devicetree/bindings/crypto/marvell-cesa.txt+0−1
@@ -41,5 +41,4 @@ Examples: · 40 unmodified lines
4141 clock-names = "cesa0", "cesa1";
4242 marvell,crypto-srams = <&crypto_sram0>, <&crypto_sram1>;
4343 marvell,crypto-sram-size = <0x600>;
44− status = "okay";
4544 };
Documentation/devicetree/bindings/crypto/mv_cesa.txt+0−1
@@ -29,5 +29,4 @@ Examples: · 28 unmodified lines
2929 interrupts = <22>;
3030 marvell,crypto-srams = <&crypto_sram>;
3131 marvell,crypto-sram-size = <0x600>;
32− status = "okay";
3332 };
Documentation/devicetree/bindings/crypto/rockchip-crypto.txt+0−1
@@ -25,5 +25,4 @@ Examples: · 24 unmodified lines
2525 clock-names = "aclk", "hclk", "sclk", "apb_pclk";
2626 resets = <&cru SRST_CRYPTO>;
2727 reset-names = "crypto-rst";
28− status = "okay";
2928 };
Documentation/devicetree/bindings/crypto/st,stm32-hash.txt+30−0
@@ -0,0 +1,30 @@
1+* STMicroelectronics STM32 HASH
2+
3+Required properties:
4+- compatible: Should contain entries for this and backward compatible
5+ HASH versions:
6+ - "st,stm32f456-hash" for stm32 F456.
7+ - "st,stm32f756-hash" for stm32 F756.
8+- reg: The address and length of the peripheral registers space
9+- interrupts: the interrupt specifier for the HASH
10+- clocks: The input clock of the HASH instance
11+
12+Optional properties:
13+- resets: The input reset of the HASH instance
14+- dmas: DMA specifiers for the HASH. See the DMA client binding,
15+ Documentation/devicetree/bindings/dma/dma.txt
16+- dma-names: DMA request name. Should be "in" if a dma is present.
17+- dma-maxburst: Set number of maximum dma burst supported
18+
19+Example:
20+
21+hash1: hash@50060400 {
22+ compatible = "st,stm32f756-hash";
23+ reg = <0x50060400 0x400>;
24+ interrupts = <80>;
25+ clocks = <&rcc 0 STM32F7_AHB2_CLOCK(HASH)>;
26+ resets = <&rcc STM32F7_AHB2_RESET(HASH)>;
27+ dmas = <&dma2 7 2 0x400 0x0>;
28+ dma-names = "in";
29+ dma-maxburst = <0>;
30+};
Documentation/devicetree/bindings/devfreq/event/rockchip-dfi.txt+0−1
@@ -15,5 +15,4 @@ Example: · 14 unmodified lines
1515 rockchip,pmu = <&pmugrf>;
1616 clocks = <&cru PCLK_DDR_MON>;
1717 clock-names = "pclk_ddr_mon";
18− status = "disabled";
1918 };
Documentation/devicetree/bindings/devfreq/rk3399_dmc.txt+0−1
@@ -205,5 +205,4 @@ Example: · 204 unmodified lines
205205 rockchip,phy_lpddr4_ck_cs_drv = <PHY_DRV_ODT_80>;
206206 rockchip,phy_lpddr4_dq_drv = <PHY_DRV_ODT_80>;
207207 rockchip,phy_lpddr4_odt = <PHY_DRV_ODT_60>;
208− status = "disabled";
209208 };
Documentation/devicetree/bindings/display/atmel,lcdc.txt+0−1
@@ -34,7 +34,6 @@ Example: · 33 unmodified lines
3434 pinctrl-names = "default";
3535 pinctrl-0 = <&pinctrl_fb>;
3636 display = <&display0>;
37− status = "okay";
3837 #address-cells = <1>;
3938 #size-cells = <1>;
4039
Documentation/devicetree/bindings/display/atmel/hlcdc-dc.txt+0−1
@@ -23,7 +23,6 @@ Example: · 22 unmodified lines
2323 interrupts = <36 IRQ_TYPE_LEVEL_HIGH 0>;
2424 clocks = <&lcdc_clk>, <&lcdck>, <&clk32k>;
2525 clock-names = "periph_clk","sys_clk", "slow_clk";
26− status = "disabled";
2726
2827 hlcdc-display-controller {
2928 compatible = "atmel,hlcdc-display-controller";
Documentation/devicetree/bindings/display/bridge/dw_mipi_dsi.txt+32−0
@@ -0,0 +1,32 @@
1+Synopsys DesignWare MIPI DSI host controller
2+============================================
3+
4+This document defines device tree properties for the Synopsys DesignWare MIPI
5+DSI host controller. It doesn't constitue a device tree binding specification
6+by itself but is meant to be referenced by platform-specific device tree
7+bindings.
8+
9+When referenced from platform device tree bindings the properties defined in
10+this document are defined as follows. The platform device tree bindings are
11+responsible for defining whether each optional property is used or not.
12+
13+- reg: Memory mapped base address and length of the DesignWare MIPI DSI
14+ host controller registers. (mandatory)
15+
16+- clocks: References to all the clocks specified in the clock-names property
17+ as specified in [1]. (mandatory)
18+
19+- clock-names:
20+ - "pclk" is the peripheral clock for either AHB and APB. (mandatory)
21+ - "px_clk" is the pixel clock for the DPI/RGB input. (optional)
22+
23+- resets: References to all the resets specified in the reset-names property
24+ as specified in [2]. (optional)
25+
26+- reset-names: string reset name, must be "apb" if used. (optional)
27+
28+- panel or bridge node: see [3]. (mandatory)
29+
30+[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
31+[2] Documentation/devicetree/bindings/reset/reset.txt
32+[3] Documentation/devicetree/bindings/display/mipi-dsi-bus.txt
Documentation/devicetree/bindings/display/bridge/megachips-stdpxxxx-ge-b850v3-fw.txt+0−1
@@ -33,7 +33,6 @@ stdp2690-ge-b850v3-fw required properties: · 32 unmodified lines
3333 Example:
3434
3535 &mux2_i2c2 {
36− status = "okay";
3736 clock-frequency = <100000>;
3837
3938 stdp4028@73 {
Documentation/devicetree/bindings/display/bridge/renesas,dw-hdmi.txt+1−1
@@ -13,6 +13,7 @@ Required properties: · 12 unmodified lines
1313
1414 - compatible : Shall contain one or more of
1515 - "renesas,r8a7795-hdmi" for R8A7795 (R-Car H3) compatible HDMI TX
16+ - "renesas,r8a7796-hdmi" for R8A7796 (R-Car M3-W) compatible HDMI TX
1617 - "renesas,rcar-gen3-hdmi" for the generic R-Car Gen3 compatible HDMI TX
1718
1819 When compatible with generic versions, nodes must list the SoC-specific
@@ -43,7 +44,6 @@ Example: · 24 unmodified lines
4344 clocks = <&cpg CPG_CORE R8A7795_CLK_S0D4>, <&cpg CPG_MOD 729>;
4445 clock-names = "iahb", "isfr";
4546 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
46− status = "disabled";
4747
4848 ports {
4949 #address-cells = <1>;
Documentation/devicetree/bindings/display/exynos/exynos5433-decon.txt+0−12
@@ -25,12 +25,6 @@ Required properties: · 24 unmodified lines
2525 size-cells must 1 and 0, respectively.
2626 - port: contains an endpoint node which is connected to the endpoint in the mic
2727 node. The reg value muset be 0.
28−- i80-if-timings: specify whether the panel which is connected to decon uses
29− i80 lcd interface or mipi video interface. This node contains
30− no timing information as that of fimd does. Because there is
31− no register in decon to specify i80 interface timing value,
32− it is not needed, but make it remain to use same kind of node
33− in fimd and exynos7 decon.
3428
3529 Example:
3630 SoC specific DT entry:
@@ -59,9 +53,3 @@ decon: decon@13800000 { · 22 unmodified lines
5953 };
6054 };
6155 };
62−
63−Board specific DT entry:
64−&decon {
65− i80-if-timings {
66− };
67−};
Documentation/devicetree/bindings/display/fsl,tcon.txt+0−1
@@ -14,5 +14,4 @@ timing-controller@4003d000 { · 13 unmodified lines
1414 reg = <0x4003d000 0x1000>;
1515 clocks = <&clks VF610_CLK_TCON0>;
1616 clock-names = "ipg";
17− status = "okay";
1817 };
Documentation/devicetree/bindings/display/imx/fsl-imx-drm.txt+1−1
@@ -116,7 +116,7 @@ Parallel display support · 115 unmodified lines
116116 Required properties:
117117 - compatible: Should be "fsl,imx-parallel-display"
118118 Optional properties:
119−- interface_pix_fmt: How this display is connected to the
119+- interface-pix-fmt: How this display is connected to the
120120 display interface. Currently supported types: "rgb24", "rgb565", "bgr666"
121121 and "lvds666".
122122 - edid: verbatim EDID data block describing attached display.
Documentation/devicetree/bindings/display/marvell,pxa2xx-lcdc.txt+0−1
@@ -23,7 +23,6 @@ Example: · 22 unmodified lines
2323 reg = <0x44000000 0x10000>;
2424 interrupts = <17>;
2525 clocks = <&clks CLK_LCD>;
26− status = "okay";
2726
2827 port {
2928 lcdc_out: endpoint {
Documentation/devicetree/bindings/display/panel/innolux,p079zca.txt+0−1
@@ -18,6 +18,5 @@ Example: · 17 unmodified lines
1818 power-supply = <...>;
1919 backlight = <&backlight>;
2020 enable-gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>;
21− status = "okay";
2221 };
2322 };
Documentation/devicetree/bindings/display/renesas,du.txt+30−21
@@ -36,8 +36,10 @@ Required Properties: · 35 unmodified lines
3636 When supplied they must be named "dclkin.x" with "x" being the input
3737 clock numerical index.
3838
39− - vsps: A list of phandles to the VSP nodes that handle the memory
40− interfaces for the DU channels.
39+ - vsps: A list of phandle and channel index tuples to the VSPs that handle
40+ the memory interfaces for the DU channels. The phandle identifies the VSP
41+ instance that serves the DU channel, and the channel index identifies the
42+ LIF instance in that VSP.
4143
4244 Required nodes:
4345
@@ -59,24 +61,24 @@ corresponding to each DU output. · 15 unmodified lines
5961 R8A7796 (M3-W) DPAD HDMI LVDS -
6062
6163
62−Example: R8A7790 (R-Car H2) DU
64+Example: R8A7795 (R-Car H3) ES2.0 DU
6365
64− du: du@feb00000 {
65− compatible = "renesas,du-r8a7790";
66− reg = <0 0xfeb00000 0 0x70000>,
67− <0 0xfeb90000 0 0x1c>,
68− <0 0xfeb94000 0 0x1c>;
69− reg-names = "du", "lvds.0", "lvds.1";
70− interrupt-parent = <&gic>;
71− interrupts = <0 256 IRQ_TYPE_LEVEL_HIGH>,
72− <0 268 IRQ_TYPE_LEVEL_HIGH>,
73− <0 269 IRQ_TYPE_LEVEL_HIGH>;
74− clocks = <&mstp7_clks R8A7790_CLK_DU0>,
75− <&mstp7_clks R8A7790_CLK_DU1>,
76− <&mstp7_clks R8A7790_CLK_DU2>,
77− <&mstp7_clks R8A7790_CLK_LVDS0>,
78− <&mstp7_clks R8A7790_CLK_LVDS1>;
79− clock-names = "du.0", "du.1", "du.2", "lvds.0", "lvds.1";
66+ du: display@feb00000 {
67+ compatible = "renesas,du-r8a7795";
68+ reg = <0 0xfeb00000 0 0x80000>,
69+ <0 0xfeb90000 0 0x14>;
70+ reg-names = "du", "lvds.0";
71+ interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>,
72+ <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>,
73+ <GIC_SPI 269 IRQ_TYPE_LEVEL_HIGH>,
74+ <GIC_SPI 270 IRQ_TYPE_LEVEL_HIGH>;
75+ clocks = <&cpg CPG_MOD 724>,
76+ <&cpg CPG_MOD 723>,
77+ <&cpg CPG_MOD 722>,
78+ <&cpg CPG_MOD 721>,
79+ <&cpg CPG_MOD 727>;
80+ clock-names = "du.0", "du.1", "du.2", "du.3", "lvds.0";
81+ vsps = <&vspd0 0>, <&vspd1 0>, <&vspd2 0>, <&vspd0 1>;
8082
8183 ports {
8284 #address-cells = <1>;
@@ -89,12 +91,19 @@ Example: R8A7790 (R-Car H2) DU · 6 unmodified lines
8991 };
9092 port@1 {
9193 reg = <1>;
92− du_out_lvds0: endpoint {
94+ du_out_hdmi0: endpoint {
95+ remote-endpoint = <&dw_hdmi0_in>;
9396 };
9497 };
9598 port@2 {
9699 reg = <2>;
97− du_out_lvds1: endpoint {
100+ du_out_hdmi1: endpoint {
101+ remote-endpoint = <&dw_hdmi1_in>;
102+ };
103+ };
104+ port@3 {
105+ reg = <3>;
106+ du_out_lvds0: endpoint {
98107 };
99108 };
100109 };
Documentation/devicetree/bindings/display/repaper.txt+52−0
@@ -0,0 +1,52 @@
1+Pervasive Displays RePaper branded e-ink displays
2+
3+Required properties:
4+- compatible: "pervasive,e1144cs021" for 1.44" display
5+ "pervasive,e1190cs021" for 1.9" display
6+ "pervasive,e2200cs021" for 2.0" display
7+ "pervasive,e2271cs021" for 2.7" display
8+
9+- panel-on-gpios: Timing controller power control
10+- discharge-gpios: Discharge control
11+- reset-gpios: RESET pin
12+- busy-gpios: BUSY pin
13+
14+Required property for e2271cs021:
15+- border-gpios: Border control
16+
17+The node for this driver must be a child node of a SPI controller, hence
18+all mandatory properties described in ../spi/spi-bus.txt must be specified.
19+
20+Optional property:
21+- pervasive,thermal-zone: name of thermometer's thermal zone
22+
23+Example:
24+
25+ display_temp: lm75@48 {
26+ compatible = "lm75b";
27+ reg = <0x48>;
28+ #thermal-sensor-cells = <0>;
29+ };
30+
31+ thermal-zones {
32+ display {
33+ polling-delay-passive = <0>;
34+ polling-delay = <0>;
35+ thermal-sensors = <&display_temp>;
36+ };
37+ };
38+
39+ papirus27@0{
40+ compatible = "pervasive,e2271cs021";
41+ reg = <0>;
42+
43+ spi-max-frequency = <8000000>;
44+
45+ panel-on-gpios = <&gpio 23 0>;
46+ border-gpios = <&gpio 14 0>;
47+ discharge-gpios = <&gpio 15 0>;
48+ reset-gpios = <&gpio 24 0>;
49+ busy-gpios = <&gpio 25 0>;
50+
51+ pervasive,thermal-zone = "display";
52+ };
Documentation/devicetree/bindings/display/rockchip/analogix_dp-rockchip.txt+0−1
@@ -59,7 +59,6 @@ Example: · 58 unmodified lines
5959 pinctrl-names = "default";
6060 pinctrl-0 = <&edp_hpd>;
6161
62− status = "disabled";
6362
6463 ports {
6564 #address-cells = <1>;
Documentation/devicetree/bindings/display/rockchip/dw_hdmi-rockchip.txt+5−3
@@ -11,7 +11,9 @@ following device-specific properties. · 10 unmodified lines
1111
1212 Required properties:
1313
14−- compatible: Shall contain "rockchip,rk3288-dw-hdmi".
14+- compatible: should be one of the following:
15+ "rockchip,rk3288-dw-hdmi"
16+ "rockchip,rk3399-dw-hdmi"
1517 - reg: See dw_hdmi.txt.
1618 - reg-io-width: See dw_hdmi.txt. Shall be 4.
1719 - interrupts: HDMI interrupt number
@@ -30,7 +32,8 @@ Optional properties · 12 unmodified lines
3032 I2C master controller.
3133 - clock-names: See dw_hdmi.txt. The "cec" clock is optional.
3234 - clock-names: May contain "cec" as defined in dw_hdmi.txt.
33−
35+- clock-names: May contain "grf", power for grf io.
36+- clock-names: May contain "vpll", external clock for some hdmi phy.
3437
3538 Example:
3639
@@ -43,7 +46,6 @@ hdmi: hdmi@ff980000 { · 6 unmodified lines
4346 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
4447 clocks = <&cru PCLK_HDMI_CTRL>, <&cru SCLK_HDMI_HDCP>;
4548 clock-names = "iahb", "isfr";
46− status = "disabled";
4749 ports {
4850 hdmi_in: port {
4951 #address-cells = <1>;
Documentation/devicetree/bindings/display/rockchip/dw_mipi_dsi_rockchip.txt+0−2
@@ -36,7 +36,6 @@ Example: · 35 unmodified lines
3636 resets = <&cru SRST_MIPIDSI0>;
3737 reset-names = "apb";
3838 rockchip,grf = <&grf>;
39− status = "okay";
4039
4140 ports {
4241 #address-cells = <1>;
@@ -65,6 +64,5 @@ Example: · 22 unmodified lines
6564 pinctrl-names = "default";
6665 pinctrl-0 = <&lcd_en>;
6766 backlight = <&backlight>;
68− status = "okay";
6967 };
7068 };
Documentation/devicetree/bindings/display/rockchip/inno_hdmi-rockchip.txt+0−1
@@ -25,7 +25,6 @@ hdmi: hdmi@20034000 { · 24 unmodified lines
2525 clock-names = "pclk";
2626 pinctrl-names = "default";
2727 pinctrl-0 = <&hdmi_ctl>;
28− status = "disabled";
2928
3029 hdmi_in: port {
3130 #address-cells = <1>;
Documentation/devicetree/bindings/display/rockchip/rockchip-vop.txt+4−0
@@ -8,8 +8,12 @@ Required properties: · 7 unmodified lines
88 - compatible: value should be one of the following
99 "rockchip,rk3036-vop";
1010 "rockchip,rk3288-vop";
11+ "rockchip,rk3368-vop";
12+ "rockchip,rk3366-vop";
1113 "rockchip,rk3399-vop-big";
1214 "rockchip,rk3399-vop-lit";
15+ "rockchip,rk3228-vop";
16+ "rockchip,rk3328-vop";
1317
1418 - interrupts: should contain a list of all VOP IP block interrupts in the
1519 order: VSYNC, LCD_SYSTEM. The interrupt specifier
Documentation/devicetree/bindings/display/simple-framebuffer-sunxi.txt+0−1
@@ -28,6 +28,5 @@ chosen { · 27 unmodified lines
2828 allwinner,pipeline = "de_be0-lcd0-hdmi";
2929 clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 43>,
3030 <&ahb_gates 44>;
31− status = "disabled";
3231 };
3332 };
Documentation/devicetree/bindings/display/sitronix,st7586.txt+22−0
@@ -0,0 +1,22 @@
1+Sitronix ST7586 display panel
2+
3+Required properties:
4+- compatible: "lego,ev3-lcd".
5+- a0-gpios: The A0 signal (since this binding is for serial mode, this is
6+ the pin labeled D1 on the controller, not the pin labeled A0)
7+- reset-gpios: Reset pin
8+
9+The node for this driver must be a child node of a SPI controller, hence
10+all mandatory properties described in ../spi/spi-bus.txt must be specified.
11+
12+Optional properties:
13+- rotation: panel rotation in degrees counter clockwise (0,90,180,270)
14+
15+Example:
16+ display@0{
17+ compatible = "lego,ev3-lcd";
18+ reg = <0>;
19+ spi-max-frequency = <10000000>;
20+ a0-gpios = <&gpio 43 GPIO_ACTIVE_HIGH>;
21+ reset-gpios = <&gpio 80 GPIO_ACTIVE_HIGH>;
22+ };
Documentation/devicetree/bindings/display/st,stm32-ltdc.txt+103−2
@@ -1,7 +1,6 @@
11 * STMicroelectronics STM32 lcd-tft display controller
22
33 - ltdc: lcd-tft display controller host
4− must be a sub-node of st-display-subsystem
54 Required properties:
65 - compatible: "st,stm32-ltdc"
76 - reg: Physical base address of the IP registers and length of memory mapped region.
@@ -13,8 +12,40 @@ · 5 unmodified lines
1312 Required nodes:
1413 - Video port for RGB output.
1514
16−Example:
15+* STMicroelectronics STM32 DSI controller specific extensions to Synopsys
16+ DesignWare MIPI DSI host controller
1717
18+The STMicroelectronics STM32 DSI controller uses the Synopsys DesignWare MIPI
19+DSI host controller. For all mandatory properties & nodes, please refer
20+to the related documentation in [5].
21+
22+Mandatory properties specific to STM32 DSI:
23+- #address-cells: Should be <1>.
24+- #size-cells: Should be <0>.
25+- compatible: "st,stm32-dsi".
26+- clock-names:
27+ - phy pll reference clock string name, must be "ref".
28+- resets: see [5].
29+- reset-names: see [5].
30+
31+Mandatory nodes specific to STM32 DSI:
32+- ports: A node containing DSI input & output port nodes with endpoint
33+ definitions as documented in [3] & [4].
34+ - port@0: DSI input port node, connected to the ltdc rgb output port.
35+ - port@1: DSI output port node, connected to a panel or a bridge input port.
36+- panel or bridge node: A node containing the panel or bridge description as
37+ documented in [6].
38+ - port: panel or bridge port node, connected to the DSI output port (port@1).
39+
40+Note: You can find more documentation in the following references
41+[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
42+[2] Documentation/devicetree/bindings/reset/reset.txt
43+[3] Documentation/devicetree/bindings/media/video-interfaces.txt
44+[4] Documentation/devicetree/bindings/graph.txt
45+[5] Documentation/devicetree/bindings/display/bridge/dw_mipi_dsi.txt
46+[6] Documentation/devicetree/bindings/display/mipi-dsi-bus.txt
47+
48+Example 1: RGB panel
1849 / {
1950 ...
2051 soc {
@@ -34,3 +65,73 @@ Example: · 13 unmodified lines
3465 };
3566 };
3667 };
68+
69+Example 2: DSI panel
70+
71+/ {
72+ ...
73+ soc {
74+ ...
75+ ltdc: display-controller@40016800 {
76+ compatible = "st,stm32-ltdc";
77+ reg = <0x40016800 0x200>;
78+ interrupts = <88>, <89>;
79+ resets = <&rcc STM32F4_APB2_RESET(LTDC)>;
80+ clocks = <&rcc 1 CLK_LCD>;
81+ clock-names = "lcd";
82+
83+ port {
84+ ltdc_out_dsi: endpoint {
85+ remote-endpoint = <&dsi_in>;
86+ };
87+ };
88+ };
89+
90+
91+ dsi: dsi@40016c00 {
92+ #address-cells = <1>;
93+ #size-cells = <0>;
94+ compatible = "st,stm32-dsi";
95+ reg = <0x40016c00 0x800>;
96+ clocks = <&rcc 1 CLK_F469_DSI>, <&clk_hse>;
97+ clock-names = "ref", "pclk";
98+ resets = <&rcc STM32F4_APB2_RESET(DSI)>;
99+ reset-names = "apb";
100+
101+ ports {
102+ #address-cells = <1>;
103+ #size-cells = <0>;
104+
105+ port@0 {
106+ reg = <0>;
107+ dsi_in: endpoint {
108+ remote-endpoint = <&ltdc_out_dsi>;
109+ };
110+ };
111+
112+ port@1 {
113+ reg = <1>;
114+ dsi_out: endpoint {
115+ remote-endpoint = <&dsi_in_panel>;
116+ };
117+ };
118+
119+ };
120+
121+ panel-dsi@0 {
122+ reg = <0>; /* dsi virtual channel (0..3) */
123+ compatible = ...;
124+ enable-gpios = ...;
125+
126+ port {
127+ dsi_in_panel: endpoint {
128+ remote-endpoint = <&dsi_out>;
129+ };
130+ };
131+
132+ };
133+
134+ };
135+
136+ };
137+};
Documentation/devicetree/bindings/display/sunxi/sun4i-drm.txt+27−10
@@ -4,15 +4,33 @@ Allwinner A10 Display Pipeline · 3 unmodified lines
44 The Allwinner A10 Display pipeline is composed of several components
55 that are going to be documented below:
66
7−For the input port of all components up to the TCON in the display
8−pipeline, if there are multiple components, the local endpoint IDs
9−must correspond to the index of the upstream block. For example, if
10−the remote endpoint is Frontend 1, then the local endpoint ID must
11−be 1.
12−
13−Conversely, for the output ports of the same group, the remote endpoint
14−ID must be the index of the local hardware block. If the local backend
15−is backend 1, then the remote endpoint ID must be 1.
7+For all connections between components up to the TCONs in the display
8+pipeline, when there are multiple components of the same type at the
9+same depth, the local endpoint ID must be the same as the remote
10+component's index. For example, if the remote endpoint is Frontend 1,
11+then the local endpoint ID must be 1.
12+
13+ Frontend 0 [0] ------- [0] Backend 0 [0] ------- [0] TCON 0
14+ [1] -- -- [1] [1] -- -- [1]
15+ \ / \ /
16+ X X
17+ / \ / \
18+ [0] -- -- [0] [0] -- -- [0]
19+ Frontend 1 [1] ------- [1] Backend 1 [1] ------- [1] TCON 1
20+
21+For a two pipeline system such as the one depicted above, the lines
22+represent the connections between the components, while the numbers
23+within the square brackets corresponds to the ID of the local endpoint.
24+
25+The same rule also applies to DE 2.0 mixer-TCON connections:
26+
27+ Mixer 0 [0] ----------- [0] TCON 0
28+ [1] ---- ---- [1]
29+ \ /
30+ X
31+ / \
32+ [0] ---- ---- [0]
33+ Mixer 1 [1] ----------- [1] TCON 1
1634
1735 HDMI Encoder
1836 ------------
@@ -260,7 +278,6 @@ hdmi: hdmi@01c16000 { · 241 unmodified lines
260278 <&dma SUN4I_DMA_NORMAL 16>,
261279 <&dma SUN4I_DMA_DEDICATED 24>;
262280 dma-names = "ddc-tx", "ddc-rx", "audio-tx";
263− status = "disabled";
264281
265282 ports {
266283 #address-cells = <1>;
Documentation/devicetree/bindings/dma/fsl-edma.txt+0−1
@@ -72,5 +72,4 @@ sai2: sai@40031000 { · 71 unmodified lines
7272 dma-names = "tx", "rx";
7373 dmas = <&edma0 0 21>,
7474 <&edma0 0 20>;
75− status = "disabled";
7675 };
Documentation/devicetree/bindings/dma/mv-xor.txt+0−1
@@ -30,7 +30,6 @@ xor@d0060900 { · 29 unmodified lines
3030 reg = <0xd0060900 0x100
3131 0xd0060b00 0x100>;
3232 clocks = <&coreclk 0>;
33− status = "okay";
3433
3534 xor00 {
3635 interrupts = <51>;
Documentation/devicetree/bindings/dma/qcom_adm.txt+0−1
@@ -48,7 +48,6 @@ Each dmas request consists of 3 cells: · 47 unmodified lines
4848 Example:
4949
5050 spi4: spi@1a280000 {
51− status = "ok";
5251 spi-max-frequency = <50000000>;
5352
5453 pinctrl-0 = <&spi_pins>;
Documentation/devicetree/bindings/dma/renesas,rcar-dmac.txt+1−0
@@ -25,6 +25,7 @@ Required Properties: · 24 unmodified lines
2525 - "renesas,dmac-r8a7794" (R-Car E2)
2626 - "renesas,dmac-r8a7795" (R-Car H3)
2727 - "renesas,dmac-r8a7796" (R-Car M3-W)
28+ - "renesas,dmac-r8a77970" (R-Car V3M)
2829
2930 - reg: base address and length of the registers block for the DMAC
3031
Documentation/devicetree/bindings/dma/renesas,usb-dmac.txt+1−0
@@ -8,6 +8,7 @@ Required Properties: · 7 unmodified lines
88 - "renesas,r8a7793-usb-dmac" (R-Car M2-N)
99 - "renesas,r8a7794-usb-dmac" (R-Car E2)
1010 - "renesas,r8a7795-usb-dmac" (R-Car H3)
11+ - "renesas,r8a7796-usb-dmac" (R-Car M3-W)
1112 - reg: base address and length of the registers block for the DMAC
1213 - interrupts: interrupt specifiers for the DMAC, one for each entry in
1314 interrupt-names.
Documentation/devicetree/bindings/dma/snps-dma.txt+0−1
@@ -63,7 +63,6 @@ Example: · 62 unmodified lines
6363 compatible = "arm,pl011", "arm,primecell";
6464 reg = <0xe0000000 0x1000>;
6565 interrupts = <0 35 0x4>;
66− status = "disabled";
6766 dmas = <&dmahost 12 0 1>,
6867 <&dmahost 13 0 1 0>;
6968 dma-names = "rx", "rx";
Documentation/devicetree/bindings/dma/st_fdma.txt+0−1
@@ -69,7 +69,6 @@ Example: · 68 unmodified lines
6969
7070 sti_uni_player2: sti-uni-player@2 {
7171 compatible = "st,sti-uni-player";
72− status = "disabled";
7372 #sound-dai-cells = <0>;
7473 st,syscfg = <&syscfg_core>;
7574 clocks = <&clk_s_d0_flexgen CLK_PCM_2>;
Documentation/devicetree/bindings/dma/ste-dma40.txt+0−1
@@ -135,5 +135,4 @@ Example: · 134 unmodified lines
135135 <&dma 13 0 0x0>; /* Logical - MemToDev */
136136 dma-names = "rx", "rx";
137137
138− status = "disabled";
139138 };
Documentation/devicetree/bindings/dma/sun4i-dma.txt+0−1
@@ -40,7 +40,6 @@ Example: · 39 unmodified lines
4040 clock-names = "ahb", "mod";
4141 dmas = <&dma 1 29>, <&dma 1 28>;
4242 dma-names = "rx", "tx";
43− status = "disabled";
4443 #address-cells = <1>;
4544 #size-cells = <0>;
4645 };
Documentation/devicetree/bindings/dma/sun6i-dma.txt+1−0
@@ -9,6 +9,7 @@ Required properties: · 8 unmodified lines
99 "allwinner,sun8i-a23-dma"
1010 "allwinner,sun8i-a83t-dma"
1111 "allwinner,sun8i-h3-dma"
12+ "allwinner,sun8i-v3s-dma"
1213 - reg: Should contain the registers base address and length
1314 - interrupts: Should contain a reference to the interrupt used by this device
1415 - clocks: Should contain a reference to the parent AHB clock
Documentation/devicetree/bindings/dma/ti-dma-crossbar.txt+0−1
@@ -62,7 +62,6 @@ uart1: serial@4806a000 { · 61 unmodified lines
6262 interrupts-extended = <&gic GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
6363 ti,hwmods = "uart1";
6464 clock-frequency = <48000000>;
65− status = "disabled";
6665 /* Requesting crossbar input 49 and 50 */
6766 dmas = <&sdma_xbar 49>, <&sdma_xbar 50>;
6867 dma-names = "tx", "rx";
Documentation/devicetree/bindings/dma/ti-edma.txt+90−6
@@ -9,7 +9,12 @@ execute the actual DMA tansfer. · 8 unmodified lines
99 eDMA3 Channel Controller
1010
1111 Required properties:
12−- compatible: "ti,edma3-tpcc" for the channel controller(s)
12+--------------------
13+- compatible: Should be:
14+ - "ti,edma3-tpcc" for the channel controller(s) on OMAP,
15+ AM33xx and AM43xx SoCs.
16+ - "ti,k2g-edma3-tpcc", "ti,edma3-tpcc" for the
17+ channel controller(s) on 66AK2G.
1318 - #dma-cells: Should be set to <2>. The first number is the DMA request
1419 number and the second is the TC the channel is serviced on.
1520 - reg: Memory map of eDMA CC
@@ -19,8 +24,19 @@ Required properties: · 3 unmodified lines
1924 - ti,tptcs: List of TPTCs associated with the eDMA in the following form:
2025 <&tptc_phandle TC_priority_number>. The highest priority is 0.
2126
27+SoC-specific Required properties:
28+--------------------------------
29+The following are mandatory properties for OMAP, AM33xx and AM43xx SoCs only:
30+- ti,hwmods: Name of the hwmods associated to the eDMA CC.
31+
32+The following are mandatory properties for 66AK2G SoCs only:
33+- power-domains:Should contain a phandle to a PM domain provider node
34+ and an args specifier containing the device id
35+ value. This property is as per the binding,
36+ Documentation/devicetree/bindings/soc/ti/sci-pm-domain.txt
37+
2238 Optional properties:
23−- ti,hwmods: Name of the hwmods associated to the eDMA CC
39+-------------------
2440 - ti,edma-memcpy-channels: List of channels allocated to be used for memcpy, iow
2541 these channels will be SW triggered channels. See example.
2642 - ti,edma-reserved-slot-ranges: PaRAM slot ranges which should not be used by
@@ -31,17 +47,34 @@ Optional properties: · 4 unmodified lines
3147 eDMA3 Transfer Controller
3248
3349 Required properties:
34−- compatible: "ti,edma3-tptc" for the transfer controller(s)
50+--------------------
51+- compatible: Should be:
52+ - "ti,edma3-tptc" for the transfer controller(s) on OMAP,
53+ AM33xx and AM43xx SoCs.
54+ - "ti,k2g-edma3-tptc", "ti,edma3-tptc" for the
55+ transfer controller(s) on 66AK2G.
3556 - reg: Memory map of eDMA TC
3657 - interrupts: Interrupt number for TCerrint.
3758
59+SoC-specific Required properties:
60+--------------------------------
61+The following are mandatory properties for OMAP, AM33xx and AM43xx SoCs only:
62+- ti,hwmods: Name of the hwmods associated to the eDMA TC.
63+
64+The following are mandatory properties for 66AK2G SoCs only:
65+- power-domains:Should contain a phandle to a PM domain provider node
66+ and an args specifier containing the device id
67+ value. This property is as per the binding,
68+ Documentation/devicetree/bindings/soc/ti/sci-pm-domain.txt
69+
3870 Optional properties:
39−- ti,hwmods: Name of the hwmods associated to the given eDMA TC
71+-------------------
4072 - interrupt-names: "edma3_tcerrint"
4173
4274 ------------------------------------------------------------------------------
43−Example:
75+Examples:
4476
77+1.
4578 edma: edma@49000000 {
4679 compatible = "ti,edma3-tpcc";
4780 ti,hwmods = "tpcc";
@@ -102,13 +135,64 @@ mcasp0: mcasp@48038000 { · 54 unmodified lines
102135 reg-names = "mpu", "dat";
103136 interrupts = <80>, <81>;
104137 interrupt-names = "tx", "rx";
105− status = "disabled";
106138 /* DMA channels 8 and 9 executed on eDMA TC2 - high priority queue */
107139 dmas = <&edma 8 2>,
108140 <&edma 9 2>;
109141 dma-names = "tx", "rx";
110142 };
111143
144+2.
145+edma1: edma@02728000 {
146+ compatible = "ti,k2g-edma3-tpcc", "ti,edma3-tpcc";
147+ reg = <0x02728000 0x8000>;
148+ reg-names = "edma3_cc";
149+ interrupts = <GIC_SPI 208 IRQ_TYPE_EDGE_RISING>,
150+ <GIC_SPI 219 IRQ_TYPE_EDGE_RISING>,
151+ <GIC_SPI 220 IRQ_TYPE_EDGE_RISING>;
152+ interrupt-names = "edma3_ccint", "emda3_mperr",
153+ "edma3_ccerrint";
154+ dma-requests = <64>;
155+ #dma-cells = <2>;
156+
157+ ti,tptcs = <&edma1_tptc0 7>, <&edma1_tptc1 0>;
158+
159+ /*
160+ * memcpy is disabled, can be enabled with:
161+ * ti,edma-memcpy-channels = <12 13 14 15>;
162+ * for example.
163+ */
164+
165+ power-domains = <&k2g_pds 0x4f>;
166+};
167+
168+edma1_tptc0: tptc@027b0000 {
169+ compatible = "ti,k2g-edma3-tptc", "ti,edma3-tptc";
170+ reg = <0x027b0000 0x400>;
171+ power-domains = <&k2g_pds 0x4f>;
172+};
173+
174+edma1_tptc1: tptc@027b8000 {
175+ compatible = "ti, k2g-edma3-tptc", "ti,edma3-tptc";
176+ reg = <0x027b8000 0x400>;
177+ power-domains = <&k2g_pds 0x4f>;
178+};
179+
180+mmc0: mmc@23000000 {
181+ compatible = "ti,k2g-hsmmc", "ti,omap4-hsmmc";
182+ reg = <0x23000000 0x400>;
183+ interrupts = <GIC_SPI 96 IRQ_TYPE_EDGE_RISING>;
184+ dmas = <&edma1 24 0>, <&edma1 25 0>;
185+ dma-names = "tx", "rx";
186+ bus-width = <4>;
187+ ti,needs-special-reset;
188+ no-1-8-v;
189+ max-frequency = <96000000>;
190+ power-domains = <&k2g_pds 0xb>;
191+ clocks = <&k2g_clks 0xb 1>, <&k2g_clks 0xb 2>;
192+ clock-names = "fck", "mmchsdb_fck";
193+ status = "disabled";
194+};
195+
112196 ------------------------------------------------------------------------------
113197 DEPRECATED binding, new DTS files must use the ti,edma3-tpcc/ti,edma3-tptc
114198 binding.
Documentation/devicetree/bindings/eeprom/eeprom.txt+5−1
@@ -16,8 +16,12 @@ Required properties: · 15 unmodified lines
1616
1717 "renesas,r1ex24002"
1818
19+ The following manufacturers values have been deprecated:
20+ "at", "at24"
21+
1922 If there is no specific driver for <manufacturer>, a generic
20− driver based on <type> is selected. Possible types are:
23+ device with <type> and manufacturer "atmel" should be used.
24+ Possible types are:
2125 "24c00", "24c01", "24c02", "24c04", "24c08", "24c16", "24c32", "24c64",
2226 "24c128", "24c256", "24c512", "24c1024", "spd"
2327
Documentation/devicetree/bindings/extcon/extcon-usbc-cros-ec.txt+24−0
@@ -0,0 +1,24 @@
1+ChromeOS EC USB Type-C cable and accessories detection
2+
3+On ChromeOS systems with USB Type C ports, the ChromeOS Embedded Controller is
4+able to detect the state of external accessories such as display adapters
5+or USB devices when said accessories are attached or detached.
6+
7+The node for this device must be under a cros-ec node like google,cros-ec-spi
8+or google,cros-ec-i2c.
9+
10+Required properties:
11+- compatible: Should be "google,extcon-usbc-cros-ec".
12+- google,usb-port-id: Specifies the USB port ID to use.
13+
14+Example:
15+ cros-ec@0 {
16+ compatible = "google,cros-ec-i2c";
17+
18+ ...
19+
20+ extcon {
21+ compatible = "google,extcon-usbc-cros-ec";
22+ google,usb-port-id = <0>;
23+ };
24+ }
Documentation/devicetree/bindings/fpga/altera-passive-serial.txt+29−0
@@ -0,0 +1,29 @@
1+Altera Passive Serial SPI FPGA Manager
2+
3+Altera FPGAs support a method of loading the bitstream over what is
4+referred to as "passive serial".
5+The passive serial link is not technically SPI, and might require extra
6+circuits in order to play nicely with other SPI slaves on the same bus.
7+
8+See https://www.altera.com/literature/hb/cyc/cyc_c51013.pdf
9+
10+Required properties:
11+- compatible: Must be one of the following:
12+ "altr,fpga-passive-serial",
13+ "altr,fpga-arria10-passive-serial"
14+- reg: SPI chip select of the FPGA
15+- nconfig-gpios: config pin (referred to as nCONFIG in the manual)
16+- nstat-gpios: status pin (referred to as nSTATUS in the manual)
17+
18+Optional properties:
19+- confd-gpios: confd pin (referred to as CONF_DONE in the manual)
20+
21+Example:
22+ fpga: fpga@0 {
23+ compatible = "altr,fpga-passive-serial";
24+ spi-max-frequency = <20000000>;
25+ reg = <0>;
26+ nconfig-gpios = <&gpio4 9 GPIO_ACTIVE_LOW>;
27+ nstat-gpios = <&gpio4 11 GPIO_ACTIVE_LOW>;
28+ confd-gpios = <&gpio4 12 GPIO_ACTIVE_LOW>;
29+ };
Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt+36−0
@@ -0,0 +1,36 @@
1+Xilinx LogiCORE Partial Reconfig Decoupler Softcore
2+
3+The Xilinx LogiCORE Partial Reconfig Decoupler manages one or more
4+decouplers / fpga bridges.
5+The controller can decouple/disable the bridges which prevents signal
6+changes from passing through the bridge. The controller can also
7+couple / enable the bridges which allows traffic to pass through the
8+bridge normally.
9+
10+The Driver supports only MMIO handling. A PR region can have multiple
11+PR Decouplers which can be handled independently or chained via decouple/
12+decouple_status signals.
13+
14+Required properties:
15+- compatible : Should contain "xlnx,pr-decoupler-1.00" followed by
16+ "xlnx,pr-decoupler"
17+- regs : base address and size for decoupler module
18+- clocks : input clock to IP
19+- clock-names : should contain "aclk"
20+
21+Optional properties:
22+- bridge-enable : 0 if driver should disable bridge at startup
23+ 1 if driver should enable bridge at startup
24+ Default is to leave bridge in current state.
25+
26+See Documentation/devicetree/bindings/fpga/fpga-region.txt for generic bindings.
27+
28+Example:
29+ fpga-bridge@100000450 {
30+ compatible = "xlnx,pr-decoupler-1.00",
31+ "xlnx-pr-decoupler";
32+ regs = <0x10000045 0x10>;
33+ clocks = <&clkc 15>;
34+ clock-names = "aclk";
35+ bridge-enable = <0>;
36+ };
Documentation/devicetree/bindings/fpga/xilinx-slave-serial.txt+0−1
@@ -31,7 +31,6 @@ Example for full FPGA configuration: · 30 unmodified lines
3131 cell-index = <1>;
3232 interrupts = <92>;
3333 clocks = <&coreclk 0>;
34− status = "okay";
3534
3635 fpga_mgr_spi: fpga-mgr@0 {
3736 compatible = "xlnx,fpga-slave-serial";
Documentation/devicetree/bindings/gpio/gpio-74x164.txt+3−0
@@ -12,6 +12,9 @@ Required properties: · 11 unmodified lines
1212 1 = active low
1313 - registers-number: Number of daisy-chained shift registers
1414
15+Optional properties:
16+- enable-gpios: GPIO connected to the OE (Output Enable) pin.
17+
1518 Example:
1619
1720 gpio5: gpio5@0 {
Documentation/devicetree/bindings/gpio/gpio-aspeed.txt+1−1
@@ -18,7 +18,7 @@ Required properties: · 17 unmodified lines
1818 Optional properties:
1919
2020 - interrupt-parent : The parent interrupt controller, optional if inherited
21−- clocks : A phandle to the HPLL clock node for debounce timings
21+- clocks : A phandle to the clock to use for debounce timings
2222
2323 The gpio and interrupt properties are further described in their respective
2424 bindings documentation:
Documentation/devicetree/bindings/gpio/gpio-davinci.txt+89−2
@@ -1,7 +1,10 @@
11 Davinci/Keystone GPIO controller bindings
22
33 Required Properties:
4−- compatible: should be "ti,dm6441-gpio", "ti,keystone-gpio"
4+- compatible: should be "ti,dm6441-gpio": for Davinci da850 SoCs
5+ "ti,keystone-gpio": for Keystone 2 66AK2H/K, 66AK2L,
6+ 66AK2E SoCs
7+ "ti,k2g-gpio", "ti,keystone-gpio": for 66AK2G
58
69 - reg: Physical base address of the controller and the size of memory mapped
710 registers.
@@ -20,7 +23,21 @@ Required Properties: · 12 unmodified lines
2023 - ti,ngpio: The number of GPIO pins supported.
2124
2225 - ti,davinci-gpio-unbanked: The number of GPIOs that have an individual interrupt
23− line to processor.
26+ line to processor.
27+
28+- clocks: Should contain the device's input clock, and should be defined as per
29+ the appropriate clock bindings consumer usage in,
30+
31+ Documentation/devicetree/bindings/clock/keystone-gate.txt
32+ for 66AK2HK/66AK2L/66AK2E SoCs or,
33+
34+ Documentation/devicetree/bindings/clock/ti,sci-clk.txt
35+ for 66AK2G SoCs
36+
37+- clock-names: Name should be "gpio";
38+
39+Currently clock-names and clocks are needed for all keystone 2 platforms
40+Davinci platforms do not have DT clocks as of now.
2441
2542 The GPIO controller also acts as an interrupt controller. It uses the default
2643 two cells specifier as described in Documentation/devicetree/bindings/
@@ -60,3 +77,73 @@ leds { · 33 unmodified lines
6077 ...
6178 };
6279 };
80+
81+Example for 66AK2G:
82+
83+gpio0: gpio@2603000 {
84+ compatible = "ti,k2g-gpio", "ti,keystone-gpio";
85+ reg = <0x02603000 0x100>;
86+ gpio-controller;
87+ #gpio-cells = <2>;
88+ interrupts = <GIC_SPI 432 IRQ_TYPE_EDGE_RISING>,
89+ <GIC_SPI 433 IRQ_TYPE_EDGE_RISING>,
90+ <GIC_SPI 434 IRQ_TYPE_EDGE_RISING>,
91+ <GIC_SPI 435 IRQ_TYPE_EDGE_RISING>,
92+ <GIC_SPI 436 IRQ_TYPE_EDGE_RISING>,
93+ <GIC_SPI 437 IRQ_TYPE_EDGE_RISING>,
94+ <GIC_SPI 438 IRQ_TYPE_EDGE_RISING>,
95+ <GIC_SPI 439 IRQ_TYPE_EDGE_RISING>,
96+ <GIC_SPI 440 IRQ_TYPE_EDGE_RISING>;
97+ interrupt-controller;
98+ #interrupt-cells = <2>;
99+ ti,ngpio = <144>;
100+ ti,davinci-gpio-unbanked = <0>;
101+ clocks = <&k2g_clks 0x001b 0x0>;
102+ clock-names = "gpio";
103+};
104+
105+Example for 66AK2HK/66AK2L/66AK2E:
106+
107+gpio0: gpio@260bf00 {
108+ compatible = "ti,keystone-gpio";
109+ reg = <0x0260bf00 0x100>;
110+ gpio-controller;
111+ #gpio-cells = <2>;
112+ /* HW Interrupts mapped to GPIO pins */
113+ interrupts = <GIC_SPI 120 IRQ_TYPE_EDGE_RISING>,
114+ <GIC_SPI 121 IRQ_TYPE_EDGE_RISING>,
115+ <GIC_SPI 122 IRQ_TYPE_EDGE_RISING>,
116+ <GIC_SPI 123 IRQ_TYPE_EDGE_RISING>,
117+ <GIC_SPI 124 IRQ_TYPE_EDGE_RISING>,
118+ <GIC_SPI 125 IRQ_TYPE_EDGE_RISING>,
119+ <GIC_SPI 126 IRQ_TYPE_EDGE_RISING>,
120+ <GIC_SPI 127 IRQ_TYPE_EDGE_RISING>,
121+ <GIC_SPI 128 IRQ_TYPE_EDGE_RISING>,
122+ <GIC_SPI 129 IRQ_TYPE_EDGE_RISING>,
123+ <GIC_SPI 130 IRQ_TYPE_EDGE_RISING>,
124+ <GIC_SPI 131 IRQ_TYPE_EDGE_RISING>,
125+ <GIC_SPI 132 IRQ_TYPE_EDGE_RISING>,
126+ <GIC_SPI 133 IRQ_TYPE_EDGE_RISING>,
127+ <GIC_SPI 134 IRQ_TYPE_EDGE_RISING>,
128+ <GIC_SPI 135 IRQ_TYPE_EDGE_RISING>,
129+ <GIC_SPI 136 IRQ_TYPE_EDGE_RISING>,
130+ <GIC_SPI 137 IRQ_TYPE_EDGE_RISING>,
131+ <GIC_SPI 138 IRQ_TYPE_EDGE_RISING>,
132+ <GIC_SPI 139 IRQ_TYPE_EDGE_RISING>,
133+ <GIC_SPI 140 IRQ_TYPE_EDGE_RISING>,
134+ <GIC_SPI 141 IRQ_TYPE_EDGE_RISING>,
135+ <GIC_SPI 142 IRQ_TYPE_EDGE_RISING>,
136+ <GIC_SPI 143 IRQ_TYPE_EDGE_RISING>,
137+ <GIC_SPI 144 IRQ_TYPE_EDGE_RISING>,
138+ <GIC_SPI 145 IRQ_TYPE_EDGE_RISING>,
139+ <GIC_SPI 146 IRQ_TYPE_EDGE_RISING>,
140+ <GIC_SPI 147 IRQ_TYPE_EDGE_RISING>,
141+ <GIC_SPI 148 IRQ_TYPE_EDGE_RISING>,
142+ <GIC_SPI 149 IRQ_TYPE_EDGE_RISING>,
143+ <GIC_SPI 150 IRQ_TYPE_EDGE_RISING>,
144+ <GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
145+ clocks = <&clkgpio>;
146+ clock-names = "gpio";
147+ ti,ngpio = <32>;
148+ ti,davinci-gpio-unbanked = <32>;
149+};
Documentation/devicetree/bindings/gpio/gpio-mpc8xxx.txt+0−1
@@ -23,7 +23,6 @@ gpio0: gpio@1100 { · 22 unmodified lines
2323 #gpio-cells = <2>;
2424 reg = <0x1100 0x080>;
2525 interrupts = <78 0x8>;
26− status = "okay";
2726 };
2827
2928 Example of gpio-controller node for a ls2080a SoC:
Documentation/devicetree/bindings/gpio/gpio-vf610.txt+3−1
@@ -5,7 +5,9 @@ functionality. Each pair serves 32 GPIOs. The VF610 has 5 instances of · 4 unmodified lines
55 each, and each PORT module has its own interrupt.
66
77 Required properties for GPIO node:
8−- compatible : Should be "fsl,<soc>-gpio", currently "fsl,vf610-gpio"
8+- compatible : Should be "fsl,<soc>-gpio", below is supported list:
9+ "fsl,vf610-gpio"
10+ "fsl,imx7ulp-gpio"
911 - reg : The first reg tuple represents the PORT module, the second tuple
1012 the GPIO module.
1113 - interrupts : Should be the port interrupt shared by all 32 pins.
Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt+12−4
@@ -2,8 +2,9 @@ · 1 unmodified line
22
33 Required Properties:
44
5− - compatible: should contain one of the following.
5+ - compatible: should contain one or more of the following:
66 - "renesas,gpio-r8a7743": for R8A7743 (RZ/G1M) compatible GPIO controller.
7+ - "renesas,gpio-r8a7745": for R8A7745 (RZ/G1E) compatible GPIO controller.
78 - "renesas,gpio-r8a7778": for R8A7778 (R-Mobile M1) compatible GPIO controller.
89 - "renesas,gpio-r8a7779": for R8A7779 (R-Car H1) compatible GPIO controller.
910 - "renesas,gpio-r8a7790": for R8A7790 (R-Car H2) compatible GPIO controller.
@@ -13,7 +14,14 @@ Required Properties: · 3 unmodified lines
1314 - "renesas,gpio-r8a7794": for R8A7794 (R-Car E2) compatible GPIO controller.
1415 - "renesas,gpio-r8a7795": for R8A7795 (R-Car H3) compatible GPIO controller.
1516 - "renesas,gpio-r8a7796": for R8A7796 (R-Car M3-W) compatible GPIO controller.
16− - "renesas,gpio-rcar": for generic R-Car GPIO controller.
17+ - "renesas,rcar-gen1-gpio": for a generic R-Car Gen1 GPIO controller.
18+ - "renesas,rcar-gen2-gpio": for a generic R-Car Gen2 or RZ/G1 GPIO controller.
19+ - "renesas,rcar-gen3-gpio": for a generic R-Car Gen3 GPIO controller.
20+ - "renesas,gpio-rcar": deprecated.
21+
22+ When compatible with the generic version nodes must list the
23+ SoC-specific version corresponding to the platform first followed by
24+ the generic version.
1725
1826 - reg: Base address and length of each memory resource used by the GPIO
1927 controller hardware module.
@@ -43,7 +51,7 @@ interrupt-controller/interrupts.txt. · 23 unmodified lines
4351 Example: R8A7779 (R-Car H1) GPIO controller nodes
4452
4553 gpio0: gpio@ffc40000 {
46− compatible = "renesas,gpio-r8a7779", "renesas,gpio-rcar";
54+ compatible = "renesas,gpio-r8a7779", "renesas,rcar-gen1-gpio";
4755 reg = <0xffc40000 0x2c>;
4856 interrupt-parent = <&gic>;
4957 interrupts = <0 141 0x4>;
@@ -55,7 +63,7 @@ Example: R8A7779 (R-Car H1) GPIO controller nodes · 5 unmodified lines
5563 };
5664 ...
5765 gpio6: gpio@ffc46000 {
58− compatible = "renesas,gpio-r8a7779", "renesas,gpio-rcar";
66+ compatible = "renesas,gpio-r8a7779", "renesas,rcar-gen1-gpio";
5967 reg = <0xffc46000 0x2c>;
6068 interrupt-parent = <&gic>;
6169 interrupts = <0 147 0x4>;
Documentation/devicetree/bindings/gpio/spear_spics.txt+0−1
@@ -42,7 +42,6 @@ spics: spics@e0700000{ · 41 unmodified lines
4242
4343
4444 spi0: spi@e0100000 {
45− status = "okay";
4645 num-cs = <3>;
4746 cs-gpios = <&gpio1 7 0>, <&spics 0>,
4847 <&spics 1>;
Documentation/devicetree/bindings/gpu/arm,mali-midgard.txt+1−0
@@ -17,6 +17,7 @@ Required properties: · 16 unmodified lines
1717 * which must be preceded by one of the following vendor specifics:
1818 + "amlogic,meson-gxm-mali"
1919 + "rockchip,rk3288-mali"
20+ + "rockchip,rk3399-mali"
2021
2122 - reg : Physical base address of the device and length of the register area.
2223
Documentation/devicetree/bindings/gpu/arm,mali-utgard.txt+5−0
@@ -10,6 +10,7 @@ Required properties: · 9 unmodified lines
1010 * And, optionally, one of the vendor specific compatible:
1111 + allwinner,sun4i-a10-mali
1212 + allwinner,sun7i-a20-mali
13+ + allwinner,sun50i-h5-mali
1314 + amlogic,meson-gxbb-mali
1415 + amlogic,meson-gxl-mali
1516 + stericsson,db8500-mali
@@ -58,6 +59,10 @@ to specify one more vendor-specific compatible, among: · 42 unmodified lines
5859 Required properties:
5960 * resets: phandle to the reset line for the GPU
6061
62+ - allwinner,sun50i-h5-mali
63+ Required properties:
64+ * resets: phandle to the reset line for the GPU
65+
6166 - stericsson,db8500-mali
6267 Required properties:
6368 * interrupt-names and interrupts:
Documentation/devicetree/bindings/gpu/nvidia,gk20a.txt+0−3
@@ -51,7 +51,6 @@ Example for GK20A: · 50 unmodified lines
5151 resets = <&tegra_car 184>;
5252 reset-names = "gpu";
5353 iommus = <&mc TEGRA_SWGROUP_GPU>;
54− status = "disabled";
5554 };
5655
5756 Example for GM20B:
@@ -70,7 +69,6 @@ Example for GM20B: · 12 unmodified lines
7069 resets = <&tegra_car 184>;
7170 reset-names = "gpu";
7271 iommus = <&mc TEGRA_SWGROUP_GPU>;
73− status = "disabled";
7472 };
7573
7674 Example for GP10B:
@@ -89,5 +87,4 @@ Example for GP10B: · 12 unmodified lines
8987 reset-names = "gpu";
9088 power-domains = <&bpmp TEGRA186_POWER_DOMAIN_GPU>;
9189 iommus = <&smmu TEGRA186_SID_GPU>;
92− status = "disabled";
9390 };
Documentation/devicetree/bindings/gpu/samsung-g2d.txt+0−1
@@ -24,5 +24,4 @@ Example: · 23 unmodified lines
2424 interrupts = <0 89 0>;
2525 clocks = <&clock 177>, <&clock 277>;
2626 clock-names = "sclk_fimg2d", "fimg2d";
27− status = "disabled";
2827 };
Documentation/devicetree/bindings/hsi/omap-ssi.txt+0−1
@@ -92,6 +92,5 @@ ssi-controller@48058000 { · 91 unmodified lines
9292 interrupts = <69>,
9393 <70>;
9494
95− status = "disabled"; /* second port is not used on N900 */
9695 }
9796 }
Documentation/devicetree/bindings/hwmon/aspeed-pwm-tacho.txt+9−0
@@ -11,6 +11,8 @@ Required properties for pwm-tacho node: · 10 unmodified lines
1111
1212 - #size-cells : should be 1.
1313
14+- #cooling-cells: should be 2.
15+
1416 - reg : address and length of the register set for the device.
1517
1618 - pinctrl-names : a pinctrl state named "default" must be defined.
@@ -28,12 +30,17 @@ fan subnode format: · 11 unmodified lines
2830 Under fan subnode there can upto 8 child nodes, with each child node
2931 representing a fan. If there are 8 fans each fan can have one PWM port and
3032 one/two Fan tach inputs.
33+For PWM port can be configured cooling-levels to create cooling device.
34+Cooling device could be bound to a thermal zone for the thermal control.
3135
3236 Required properties for each child node:
3337 - reg : should specify PWM source port.
3438 integer value in the range 0 to 7 with 0 indicating PWM port A and
3539 7 indicating PWM port H.
3640
41+- cooling-levels: PWM duty cycle values in a range from 0 to 255
42+ which correspond to thermal cooling states.
43+
3744 - aspeed,fan-tach-ch : should specify the Fan tach input channel.
3845 integer value in the range 0 through 15, with 0 indicating
3946 Fan tach channel 0 and 15 indicating Fan tach channel 15.
@@ -50,6 +57,7 @@ pwm_tacho_fixed_clk: fixedclk { · 10 unmodified lines
5057 pwm_tacho: pwmtachocontroller@1e786000 {
5158 #address-cells = <1>;
5259 #size-cells = <1>;
60+ #cooling-cells = <2>;
5361 reg = <0x1E786000 0x1000>;
5462 compatible = "aspeed,ast2500-pwm-tacho";
5563 clocks = <&pwm_tacho_fixed_clk>;
@@ -58,6 +66,7 @@ pwm_tacho: pwmtachocontroller@1e786000 { · 2 unmodified lines
5866
5967 fan@0 {
6068 reg = <0x00>;
69+ cooling-levels = /bits/ 8 <125 151 177 203 229 255>;
6170 aspeed,fan-tach-ch = /bits/ 8 <0x00>;
6271 };
6372
Documentation/devicetree/bindings/hwmon/ibm,cffps1.txt+21−0
@@ -0,0 +1,21 @@
1+Device-tree bindings for IBM Common Form Factor Power Supply Version 1
2+----------------------------------------------------------------------
3+
4+Required properties:
5+ - compatible = "ibm,cffps1";
6+ - reg = < I2C bus address >; : Address of the power supply on the
7+ I2C bus.
8+
9+Example:
10+
11+ i2c-bus@100 {
12+ #address-cells = <1>;
13+ #size-cells = <0>;
14+ #interrupt-cells = <1>;
15+ < more properties >
16+
17+ power-supply@68 {
18+ compatible = "ibm,cffps1";
19+ reg = <0x68>;
20+ };
21+ };
Documentation/devicetree/bindings/hwmon/ltq-cputemp.txt+10−0
@@ -0,0 +1,10 @@
1+Lantiq cpu temperatur sensor
2+
3+Requires node properties:
4+- compatible value :
5+ "lantiq,cputemp"
6+
7+Example:
8+ cputemp@0 {
9+ compatible = "lantiq,cputemp";
10+ };
Documentation/devicetree/bindings/i2c/i2c-altera.txt+39−0
@@ -0,0 +1,39 @@
1+* Altera I2C Controller
2+* This is Altera's synthesizable logic block I2C Controller for use
3+* in Altera's FPGAs.
4+
5+Required properties :
6+ - compatible : should be "altr,softip-i2c-v1.0"
7+ - reg : Offset and length of the register set for the device
8+ - interrupts : <IRQ> where IRQ is the interrupt number.
9+ - clocks : phandle to input clock.
10+ - #address-cells = <1>;
11+ - #size-cells = <0>;
12+
13+Recommended properties :
14+ - clock-frequency : desired I2C bus clock frequency in Hz.
15+
16+Optional properties :
17+ - fifo-size : Size of the RX and TX FIFOs in bytes.
18+ - Child nodes conforming to i2c bus binding
19+
20+Example :
21+
22+ i2c@100080000 {
23+ compatible = "altr,softip-i2c-v1.0";
24+ reg = <0x00000001 0x00080000 0x00000040>;
25+ interrupt-parent = <&intc>;
26+ interrupts = <0 43 4>;
27+ clocks = <&clk_0>;
28+ clock-frequency = <100000>;
29+ #address-cells = <1>;
30+ #size-cells = <0>;
31+ fifo-size = <4>;
32+
33+ eeprom@51 {
34+ compatible = "atmel,24c32";
35+ reg = <0x51>;
36+ pagesize = <32>;
37+ };
38+ };
39+
Documentation/devicetree/bindings/i2c/i2c-cbus-gpio.txt+2−2
@@ -20,8 +20,8 @@ i2c@0 { · 19 unmodified lines
2020 #address-cells = <1>;
2121 #size-cells = <0>;
2222
23− retu-mfd: retu@1 {
24− compatible = "retu-mfd";
23+ retu: retu@1 {
24+ compatible = "nokia,retu";
2525 reg = <0x1>;
2626 };
2727 };
Documentation/devicetree/bindings/i2c/i2c-demux-pinctrl.txt+0−1
@@ -102,7 +102,6 @@ And for clarification, here are the snipplets for the i2c-parents: · 101 unmodified lines
102102 #address-cells = <1>;
103103 #size-cells = <0>;
104104 compatible = "i2c-gpio";
105− status = "disabled";
106105 gpios = <&gpio5 6 GPIO_ACTIVE_HIGH /* sda */
107106 &gpio5 5 GPIO_ACTIVE_HIGH /* scl */
108107 >;
Documentation/devicetree/bindings/i2c/i2c-efm32.txt+0−1
@@ -22,7 +22,6 @@ Example: · 21 unmodified lines
2222 interrupts = <9>;
2323 clocks = <&cmu clk_HFPERCLKI2C0>;
2424 clock-frequency = <100000>;
25− status = "ok";
2625 energymicro,location = <3>;
2726
2827 eeprom@50 {
Documentation/devicetree/bindings/i2c/i2c-mtk.txt+8−7
@@ -1,14 +1,15 @@
1−* Mediatek's I2C controller
1+* MediaTek's I2C controller
22
3−The Mediatek's I2C controller is used to interface with I2C devices.
3+The MediaTek's I2C controller is used to interface with I2C devices.
44
55 Required properties:
66 - compatible: value should be either of the following.
7− "mediatek,mt2701-i2c", "mediatek,mt6577-i2c": for Mediatek mt2701
8− "mediatek,mt6577-i2c": for i2c compatible with mt6577.
9− "mediatek,mt6589-i2c": for i2c compatible with mt6589.
10− "mediatek,mt7623-i2c", "mediatek,mt6577-i2c": for i2c compatible with mt7623.
11− "mediatek,mt8173-i2c": for i2c compatible with mt8173.
7+ "mediatek,mt2701-i2c", "mediatek,mt6577-i2c": for MediaTek MT2701
8+ "mediatek,mt6577-i2c": for MediaTek MT6577
9+ "mediatek,mt6589-i2c": for MediaTek MT6589
10+ "mediatek,mt7622-i2c": for MediaTek MT7622
11+ "mediatek,mt7623-i2c", "mediatek,mt6577-i2c": for MediaTek MT7623
12+ "mediatek,mt8173-i2c": for MediaTek MT8173
1213 - reg: physical base address of the controller and dma base, length of memory
1314 mapped region.
1415 - interrupts: interrupt number to the cpu.
Documentation/devicetree/bindings/i2c/i2c-rcar.txt+4−1
@@ -2,6 +2,8 @@ I2C for R-Car platforms · 1 unmodified line
22
33 Required properties:
44 - compatible:
5+ "renesas,i2c-r8a7743" if the device is a part of a R8A7743 SoC.
6+ "renesas,i2c-r8a7745" if the device is a part of a R8A7745 SoC.
57 "renesas,i2c-r8a7778" if the device is a part of a R8A7778 SoC.
68 "renesas,i2c-r8a7779" if the device is a part of a R8A7779 SoC.
79 "renesas,i2c-r8a7790" if the device is a part of a R8A7790 SoC.
@@ -12,7 +14,8 @@ Required properties: · 4 unmodified lines
1214 "renesas,i2c-r8a7795" if the device is a part of a R8A7795 SoC.
1315 "renesas,i2c-r8a7796" if the device is a part of a R8A7796 SoC.
1416 "renesas,rcar-gen1-i2c" for a generic R-Car Gen1 compatible device.
15− "renesas,rcar-gen2-i2c" for a generic R-Car Gen2 compatible device.
17+ "renesas,rcar-gen2-i2c" for a generic R-Car Gen2 or RZ/G1 compatible
18+ device.
1619 "renesas,rcar-gen3-i2c" for a generic R-Car Gen3 compatible device.
1720 "renesas,i2c-rcar" (deprecated)
1821
Documentation/devicetree/bindings/i2c/i2c-rk3x.txt+1−0
@@ -7,6 +7,7 @@ Required properties : · 6 unmodified lines
77
88 - reg : Offset and length of the register set for the device
99 - compatible: should be one of the following:
10+ - "rockchip,rv1108-i2c": for rv1108
1011 - "rockchip,rk3066-i2c": for rk3066
1112 - "rockchip,rk3188-i2c": for rk3188
1213 - "rockchip,rk3228-i2c": for rk3228
Documentation/devicetree/bindings/i2c/i2c-sh_mobile.txt+4−1
@@ -4,6 +4,8 @@ Required properties: · 3 unmodified lines
44 - compatible :
55 - "renesas,iic-r8a73a4" (R-Mobile APE6)
66 - "renesas,iic-r8a7740" (R-Mobile A1)
7+ - "renesas,iic-r8a7743" (RZ/G1M)
8+ - "renesas,iic-r8a7745" (RZ/G1E)
79 - "renesas,iic-r8a7790" (R-Car H2)
810 - "renesas,iic-r8a7791" (R-Car M2-W)
911 - "renesas,iic-r8a7792" (R-Car V2H)
@@ -12,7 +14,8 @@ Required properties: · 2 unmodified lines
1214 - "renesas,iic-r8a7795" (R-Car H3)
1315 - "renesas,iic-r8a7796" (R-Car M3-W)
1416 - "renesas,iic-sh73a0" (SH-Mobile AG5)
15− - "renesas,rcar-gen2-iic" (generic R-Car Gen2 compatible device)
17+ - "renesas,rcar-gen2-iic" (generic R-Car Gen2 or RZ/G1
18+ compatible device)
1619 - "renesas,rcar-gen3-iic" (generic R-Car Gen3 compatible device)
1720 - "renesas,rmobile-iic" (generic device)
1821
Documentation/devicetree/bindings/i2c/i2c-sprd.txt+31−0
@@ -0,0 +1,31 @@
1+I2C for Spreadtrum platforms
2+
3+Required properties:
4+- compatible: Should be "sprd,sc9860-i2c".
5+- reg: Specify the physical base address of the controller and length
6+ of memory mapped region.
7+- interrupts: Should contain I2C interrupt.
8+- clock-names: Should contain following entries:
9+ "i2c" for I2C clock,
10+ "source" for I2C source (parent) clock,
11+ "enable" for I2C module enable clock.
12+- clocks: Should contain a clock specifier for each entry in clock-names.
13+- clock-frequency: Constains desired I2C bus clock frequency in Hz.
14+- #address-cells: Should be 1 to describe address cells for I2C device address.
15+- #size-cells: Should be 0 means no size cell for I2C device address.
16+
17+Optional properties:
18+- Child nodes conforming to I2C bus binding
19+
20+Examples:
21+i2c0: i2c@70500000 {
22+ compatible = "sprd,sc9860-i2c";
23+ reg = <0 0x70500000 0 0x1000>;
24+ interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
25+ clock-names = "i2c", "source", "enable";
26+ clocks = <&clk_i2c3>, <&ext_26m>, <&clk_ap_apb_gates 11>;
27+ clock-frequency = <400000>;
28+ #address-cells = <1>;
29+ #size-cells = <0>;
30+};
31+
Documentation/devicetree/bindings/i2c/i2c-stm32.txt+26−3
@@ -1,7 +1,9 @@
11 * I2C controller embedded in STMicroelectronics STM32 I2C platform
22
33 Required properties :
4−- compatible : Must be "st,stm32f4-i2c"
4+- compatible : Must be one of the following
5+ - "st,stm32f4-i2c"
6+ - "st,stm32f7-i2c"
57 - reg : Offset and length of the register set for the device
68 - interrupts : Must contain the interrupt id for I2C event and then the
79 interrupt id for I2C error.
@@ -14,8 +16,16 @@ Required properties : · 6 unmodified lines
1416
1517 Optional properties :
1618 - clock-frequency : Desired I2C bus clock frequency in Hz. If not specified,
17− the default 100 kHz frequency will be used. As only Normal and Fast modes
18− are supported, possible values are 100000 and 400000.
19+ the default 100 kHz frequency will be used.
20+ For STM32F4 SoC Standard-mode and Fast-mode are supported, possible values are
21+ 100000 and 400000.
22+ For STM32F7 SoC, Standard-mode, Fast-mode and Fast-mode Plus are supported,
23+ possible values are 100000, 400000 and 1000000.
24+- i2c-scl-rising-time-ns : Only for STM32F7, I2C SCL Rising time for the board
25+ (default: 25)
26+- i2c-scl-falling-time-ns : Only for STM32F7, I2C SCL Falling time for the board
27+ (default: 10)
28+ I2C Timings are derived from these 2 values
1929
2030 Example :
2131
@@ -31,3 +41,16 @@ Example : · 9 unmodified lines
3141 pinctrl-0 = <&i2c1_sda_pin>, <&i2c1_scl_pin>;
3242 pinctrl-names = "default";
3343 };
44+
45+ i2c@40005400 {
46+ compatible = "st,stm32f7-i2c";
47+ #address-cells = <1>;
48+ #size-cells = <0>;
49+ reg = <0x40005400 0x400>;
50+ interrupts = <31>,
51+ <32>;
52+ resets = <&rcc STM32F7_APB1_RESET(I2C1)>;
53+ clocks = <&rcc 1 CLK_I2C1>;
54+ pinctrl-0 = <&i2c1_sda_pin>, <&i2c1_scl_pin>;
55+ pinctrl-names = "default";
56+ };
Documentation/devicetree/bindings/i2c/nvidia,tegra20-i2c.txt+0−1
@@ -71,5 +71,4 @@ Example: · 70 unmodified lines
7171 reset-names = "i2c";
7272 dmas = <&apbdma 16>, <&apbdma 16>;
7373 dma-names = "rx", "tx";
74− status = "disabled";
7574 };
Documentation/devicetree/bindings/iio/adc/at91-sama5d2_adc.txt+6−0
@@ -11,6 +11,11 @@ Required properties: · 10 unmodified lines
1111 - atmel,min-sample-rate-hz: Minimum sampling rate, it depends on SoC.
1212 - atmel,max-sample-rate-hz: Maximum sampling rate, it depends on SoC.
1313 - atmel,startup-time-ms: Startup time expressed in ms, it depends on SoC.
14+ - atmel,trigger-edge-type: One of possible edge types for the ADTRG hardware
15+ trigger pin. When the specific edge type is detected, the conversion will
16+ start. Possible values are rising, falling, or both.
17+ This property uses the IRQ edge types values: IRQ_TYPE_EDGE_RISING ,
18+ IRQ_TYPE_EDGE_FALLING or IRQ_TYPE_EDGE_BOTH
1419
1520 Example:
1621
@@ -25,4 +30,5 @@ adc: adc@fc030000 { · 8 unmodified lines
2530 atmel,startup-time-ms = <4>;
2631 vddana-supply = <&vdd_3v3_lp_reg>;
2732 vref-supply = <&vdd_3v3_lp_reg>;
33+ atmel,trigger-edge-type = <IRQ_TYPE_EDGE_BOTH>;
2834 }
Documentation/devicetree/bindings/iio/adc/brcm,iproc-static-adc.txt+0−1
@@ -37,5 +37,4 @@ For example: · 36 unmodified lines
3737 clocks = <&asiu_clks BCM_CYGNUS_ASIU_ADC_CLK>;
3838 clock-names = "tsc_clk";
3939 interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>;
40− status = "disabled";
4140 };
Documentation/devicetree/bindings/iio/adc/lpc1850-adc.txt+0−1
@@ -17,5 +17,4 @@ adc0: adc@400e3000 { · 16 unmodified lines
1717 clocks = <&ccu1 CLK_APB3_ADC0>;
1818 vref-supply = <&reg_vdda>;
1919 resets = <&rgu 40>;
20− status = "disabled";
2120 };
Documentation/devicetree/bindings/iio/adc/mt6577_auxadc.txt+1−0
@@ -12,6 +12,7 @@ for the Thermal Controller which holds a phandle to the AUXADC. · 11 unmodified lines
1212 Required properties:
1313 - compatible: Should be one of:
1414 - "mediatek,mt2701-auxadc": For MT2701 family of SoCs
15+ - "mediatek,mt7622-auxadc": For MT7622 family of SoCs
1516 - "mediatek,mt8173-auxadc": For MT8173 family of SoCs
1617 - reg: Address range of the AUXADC unit.
1718 - clocks: Should contain a clock specifier for each entry in clock-names
Documentation/devicetree/bindings/iio/adc/rockchip-saradc.txt+1−0
@@ -6,6 +6,7 @@ Required properties: · 5 unmodified lines
66 - "rockchip,rk3066-tsadc": for rk3036
77 - "rockchip,rk3328-saradc", "rockchip,rk3399-saradc": for rk3328
88 - "rockchip,rk3399-saradc": for rk3399
9+ - "rockchip,rv1108-saradc", "rockchip,rk3399-saradc": for rv1108
910
1011 - reg: physical base address of the controller and length of memory mapped
1112 region.
Documentation/devicetree/bindings/iio/adc/st,stm32-adc.txt+5−0
@@ -74,6 +74,11 @@ Optional properties: · 73 unmodified lines
7474 * can be 6, 8, 10 or 12 on stm32f4
7575 * can be 8, 10, 12, 14 or 16 on stm32h7
7676 Default is maximum resolution if unset.
77+- st,min-sample-time-nsecs: Minimum sampling time in nanoseconds.
78+ Depending on hardware (board) e.g. high/low analog input source impedance,
79+ fine tune of ADC sampling time may be recommended.
80+ This can be either one value or an array that matches 'st,adc-channels' list,
81+ to set sample time resp. for all channels, or independently for each channel.
7782
7883 Example:
7984 adc: adc@40012000 {
Documentation/devicetree/bindings/iio/counter/stm32-lptimer-cnt.txt+27−0
@@ -0,0 +1,27 @@
1+STMicroelectronics STM32 Low-Power Timer quadrature encoder and counter
2+
3+STM32 Low-Power Timer provides several counter modes. It can be used as:
4+- quadrature encoder to detect angular position and direction of rotary
5+ elements, from IN1 and IN2 input signals.
6+- simple counter from IN1 input signal.
7+
8+Must be a sub-node of an STM32 Low-Power Timer device tree node.
9+See ../mfd/stm32-lptimer.txt for details about the parent node.
10+
11+Required properties:
12+- compatible: Must be "st,stm32-lptimer-counter".
13+- pinctrl-names: Set to "default".
14+- pinctrl-0: List of phandles pointing to pin configuration nodes,
15+ to set IN1/IN2 pins in mode of operation for Low-Power
16+ Timer input on external pin.
17+
18+Example:
19+ timer@40002400 {
20+ compatible = "st,stm32-lptimer";
21+ ...
22+ counter {
23+ compatible = "st,stm32-lptimer-counter";
24+ pinctrl-names = "default";
25+ pinctrl-0 = <&lptim1_in_pins>;
26+ };
27+ };
Documentation/devicetree/bindings/iio/dac/lpc1850-dac.txt+0−1
@@ -16,5 +16,4 @@ dac: dac@400e1000 { · 15 unmodified lines
1616 clocks = <&ccu1 CLK_APB3_DAC>;
1717 vref-supply = <&reg_vdda>;
1818 resets = <&rgu 42>;
19− status = "disabled";
2019 };
Documentation/devicetree/bindings/iio/dac/st,stm32-dac.txt+3−1
@@ -10,7 +10,9 @@ current. · 9 unmodified lines
1010 Contents of a stm32 dac root node:
1111 -----------------------------------
1212 Required properties:
13−- compatible: Must be "st,stm32h7-dac-core".
13+- compatible: Should be one of:
14+ "st,stm32f4-dac-core"
15+ "st,stm32h7-dac-core"
1416 - reg: Offset and length of the device's register set.
1517 - clocks: Must contain an entry for pclk (which feeds the peripheral bus
1618 interface)
Documentation/devicetree/bindings/iio/humidity/hdc100x.txt+17−0
@@ -0,0 +1,17 @@
1+* HDC100x temperature + humidity sensors
2+
3+Required properties:
4+ - compatible: Should contain one of the following:
5+ ti,hdc1000
6+ ti,hdc1008
7+ ti,hdc1010
8+ ti,hdc1050
9+ ti,hdc1080
10+ - reg: i2c address of the sensor
11+
12+Example:
13+
14+hdc100x@40 {
15+ compatible = "ti,hdc1000";
16+ reg = <0x40>;
17+};
Documentation/devicetree/bindings/iio/humidity/hts221.txt+10−1
@@ -5,9 +5,18 @@ Required properties: · 4 unmodified lines
55 - reg: i2c address of the sensor / spi cs line
66
77 Optional properties:
8+- drive-open-drain: the interrupt/data ready line will be configured
9+ as open drain, which is useful if several sensors share the same
10+ interrupt line. This is a boolean property.
11+ If the requested interrupt is configured as IRQ_TYPE_LEVEL_HIGH or
12+ IRQ_TYPE_EDGE_RISING a pull-down resistor is needed to drive the line
13+ when it is not active, whereas a pull-up one is needed when interrupt
14+ line is configured as IRQ_TYPE_LEVEL_LOW or IRQ_TYPE_EDGE_FALLING.
15+ Refer to pinctrl/pinctrl-bindings.txt for the property description.
816 - interrupt-parent: should be the phandle for the interrupt controller
917 - interrupts: interrupt mapping for IRQ. It should be configured with
10− flags IRQ_TYPE_LEVEL_HIGH or IRQ_TYPE_EDGE_RISING.
18+ flags IRQ_TYPE_LEVEL_HIGH, IRQ_TYPE_EDGE_RISING, IRQ_TYPE_LEVEL_LOW or
19+ IRQ_TYPE_EDGE_FALLING.
1120
1221 Refer to interrupt-controller/interrupts.txt for generic interrupt
1322 client node bindings.
Documentation/devicetree/bindings/iio/humidity/htu21.txt+13−0
@@ -0,0 +1,13 @@
1+*HTU21 - Measurement-Specialties htu21 temperature & humidity sensor and humidity part of MS8607 sensor
2+
3+Required properties:
4+
5+ - compatible: should be "meas,htu21" or "meas,ms8607-humidity"
6+ - reg: I2C address of the sensor
7+
8+Example:
9+
10+htu21@40 {
11+ compatible = "meas,htu21";
12+ reg = <0x40>;
13+};
Documentation/devicetree/bindings/iio/imu/st_lsm6dsx.txt+8−0
@@ -11,6 +11,14 @@ Required properties: · 10 unmodified lines
1111 Optional properties:
1212 - st,drdy-int-pin: the pin on the package that will be used to signal
1313 "data ready" (valid values: 1 or 2).
14+- drive-open-drain: the interrupt/data ready line will be configured
15+ as open drain, which is useful if several sensors share the same
16+ interrupt line. This is a boolean property.
17+ (This binding is taken from pinctrl/pinctrl-bindings.txt)
18+ If the requested interrupt is configured as IRQ_TYPE_LEVEL_HIGH or
19+ IRQ_TYPE_EDGE_RISING a pull-down resistor is needed to drive the line
20+ when it is not active, whereas a pull-up one is needed when interrupt
21+ line is configured as IRQ_TYPE_LEVEL_LOW or IRQ_TYPE_EDGE_FALLING.
1422 - interrupt-parent: should be the phandle for the interrupt controller
1523 - interrupts: interrupt mapping for IRQ. It should be configured with
1624 flags IRQ_TYPE_LEVEL_HIGH, IRQ_TYPE_EDGE_RISING, IRQ_TYPE_LEVEL_LOW or
Documentation/devicetree/bindings/iio/pressure/ms5637.txt+17−0
@@ -0,0 +1,17 @@
1+* MS5637 - Measurement-Specialties MS5637, MS5805, MS5837 and MS8607 pressure & temperature sensor
2+
3+Required properties:
4+
5+ -compatible: should be one of the following
6+ meas,ms5637
7+ meas,ms5805
8+ meas,ms5837
9+ meas,ms8607-temppressure
10+ -reg: I2C address of the sensor
11+
12+Example:
13+
14+ms5637@76 {
15+ compatible = "meas,ms5637";
16+ reg = <0x76>;
17+};
Documentation/devicetree/bindings/iio/st-sensors.txt+3−0
@@ -45,6 +45,7 @@ Accelerometers: · 44 unmodified lines
4545 - st,lis2dh12-accel
4646 - st,h3lis331dl-accel
4747 - st,lng2dm-accel
48+- st,lis3l02dq
4849
4950 Gyroscopes:
5051 - st,l3g4200d-gyro
@@ -52,6 +53,7 @@ Gyroscopes: · 1 unmodified line
5253 - st,lsm330dl-gyro
5354 - st,lsm330dlc-gyro
5455 - st,l3gd20-gyro
56+- st,l3gd20h-gyro
5557 - st,l3g4is-gyro
5658 - st,lsm330-gyro
5759 - st,lsm9ds0-gyro
@@ -62,6 +64,7 @@ Magnetometers: · 4 unmodified lines
6264 - st,lsm303dlhc-magn
6365 - st,lsm303dlm-magn
6466 - st,lis3mdl-magn
67+- st,lis2mdl
6568
6669 Pressure sensors:
6770 - st,lps001wp-press
Documentation/devicetree/bindings/iio/temperature/tsys01.txt+19−0
@@ -0,0 +1,19 @@
1+* TSYS01 - Measurement Specialties temperature sensor
2+
3+Required properties:
4+
5+ - compatible: should be "meas,tsys01"
6+ - reg: I2C address of the sensor (changeable via CSB pin)
7+
8+ ------------------------
9+ | CSB | Device Address |
10+ ------------------------
11+ 1 0x76
12+ 0 0x77
13+
14+Example:
15+
16+tsys01@76 {
17+ compatible = "meas,tsys01";
18+ reg = <0x76>;
19+};
Documentation/devicetree/bindings/iio/timer/stm32-lptimer-trigger.txt+23−0
@@ -0,0 +1,23 @@
1+STMicroelectronics STM32 Low-Power Timer Trigger
2+
3+STM32 Low-Power Timer provides trigger source (LPTIM output) that can be used
4+by STM32 internal ADC and/or DAC.
5+
6+Must be a sub-node of an STM32 Low-Power Timer device tree node.
7+See ../mfd/stm32-lptimer.txt for details about the parent node.
8+
9+Required properties:
10+- compatible: Must be "st,stm32-lptimer-trigger".
11+- reg: Identify trigger hardware block. Must be 0, 1 or 2
12+ respectively for lptimer1, lptimer2 or lptimer3
13+ trigger output.
14+
15+Example:
16+ timer@40002400 {
17+ compatible = "st,stm32-lptimer";
18+ ...
19+ trigger@0 {
20+ compatible = "st,stm32-lptimer-trigger";
21+ reg = <0>;
22+ };
23+ };
Documentation/devicetree/bindings/iio/timer/stm32-timer-trigger.txt+4−2
@@ -4,7 +4,9 @@ Must be a sub-node of an STM32 Timers device tree node. · 3 unmodified lines
44 See ../mfd/stm32-timers.txt for details about the parent node.
55
66 Required parameters:
7−- compatible: Must be "st,stm32-timer-trigger".
7+- compatible: Must be one of:
8+ "st,stm32-timer-trigger"
9+ "st,stm32h7-timer-trigger"
810 - reg: Identify trigger hardware block.
911
1012 Example:
@@ -14,7 +16,7 @@ Example: · 3 unmodified lines
1416 compatible = "st,stm32-timers";
1517 reg = <0x40010000 0x400>;
1618 clocks = <&rcc 0 160>;
17− clock-names = "clk_int";
19+ clock-names = "int";
1820
1921 timer@0 {
2022 compatible = "st,stm32-timer-trigger";
Documentation/devicetree/bindings/input/atmel,maxtouch.txt+2−0
@@ -22,6 +22,8 @@ Optional properties for main touchpad device: · 21 unmodified lines
2222 experiment to determine which bit corresponds to which input. Use
2323 KEY_RESERVED for unused padding values.
2424
25+- reset-gpios: GPIO specifier for the touchscreen's reset pin (active low)
26+
2527 Example:
2628
2729 touch@4b {
Documentation/devicetree/bindings/input/brcm,bcm-keypad.txt+0−1
@@ -72,7 +72,6 @@ Example: · 71 unmodified lines
7272 /* Required Board specific properties */
7373 keypad,num-rows = <5>;
7474 keypad,num-columns = <5>;
75− status = "okay";
7675
7776 linux,keymap = <MATRIX_KEY(0x00, 0x02, KEY_F) /* key_forward */
7877 MATRIX_KEY(0x00, 0x03, KEY_HOME) /* key_home */
Documentation/devicetree/bindings/input/pwm-vibrator.txt+66−0
@@ -0,0 +1,66 @@
1+* PWM vibrator device tree bindings
2+
3+Registers a PWM device as vibrator. It is expected, that the vibrator's
4+strength increases based on the duty cycle of the enable PWM channel
5+(100% duty cycle meaning strongest vibration, 0% meaning no vibration).
6+
7+The binding supports an optional direction PWM channel, that can be
8+driven at fixed duty cycle. If available this is can be used to increase
9+the vibration effect of some devices.
10+
11+Required properties:
12+- compatible: should contain "pwm-vibrator"
13+- pwm-names: Should contain "enable" and optionally "direction"
14+- pwms: Should contain a PWM handle for each entry in pwm-names
15+
16+Optional properties:
17+- vcc-supply: Phandle for the regulator supplying power
18+- direction-duty-cycle-ns: Duty cycle of the direction PWM channel in
19+ nanoseconds, defaults to 50% of the channel's
20+ period.
21+
22+Example from Motorola Droid 4:
23+
24+&omap4_pmx_core {
25+ vibrator_direction_pin: pinmux_vibrator_direction_pin {
26+ pinctrl-single,pins = <
27+ OMAP4_IOPAD(0x1ce, PIN_OUTPUT | MUX_MODE1) /* dmtimer8_pwm_evt (gpio_27) */
28+ >;
29+ };
30+
31+ vibrator_enable_pin: pinmux_vibrator_enable_pin {
32+ pinctrl-single,pins = <
33+ OMAP4_IOPAD(0X1d0, PIN_OUTPUT | MUX_MODE1) /* dmtimer9_pwm_evt (gpio_28) */
34+ >;
35+ };
36+};
37+
38+/ {
39+ pwm8: dmtimer-pwm {
40+ pinctrl-names = "default";
41+ pinctrl-0 = <&vibrator_direction_pin>;
42+
43+ compatible = "ti,omap-dmtimer-pwm";
44+ #pwm-cells = <3>;
45+ ti,timers = <&timer8>;
46+ ti,clock-source = <0x01>;
47+ };
48+
49+ pwm9: dmtimer-pwm {
50+ pinctrl-names = "default";
51+ pinctrl-0 = <&vibrator_enable_pin>;
52+
53+ compatible = "ti,omap-dmtimer-pwm";
54+ #pwm-cells = <3>;
55+ ti,timers = <&timer9>;
56+ ti,clock-source = <0x01>;
57+ };
58+
59+ vibrator {
60+ compatible = "pwm-vibrator";
61+ pwms = <&pwm8 0 1000000000 0>,
62+ <&pwm9 0 1000000000 0>;
63+ pwm-names = "enable", "direction";
64+ direction-duty-cycle-ns = <1000000000>;
65+ };
66+};
Documentation/devicetree/bindings/input/ti,drv260x.txt+1−1
@@ -43,7 +43,7 @@ haptics: haptics@5a { · 42 unmodified lines
4343 mode = <DRV260X_LRA_MODE>;
4444 library-sel = <DRV260X_LIB_LRA>;
4545 vib-rated-mv = <3200>;
46− vib-overdriver-mv = <3200>;
46+ vib-overdrive-mv = <3200>;
4747 }
4848
4949 For more product information please see the link below:
Documentation/devicetree/bindings/input/touchscreen/colibri-vf50-ts.txt+0−1
@@ -32,5 +32,4 @@ Example: · 31 unmodified lines
3232 pinctrl-1 = <&pinctrl_touchctrl_default>;
3333 pinctrl-2 = <&pinctrl_touchctrl_gpios>;
3434 vf50-ts-min-pressure = <200>;
35− status = "disabled";
3635 };
Documentation/devicetree/bindings/input/touchscreen/imx6ul_tsc.txt+0−1
@@ -35,5 +35,4 @@ Example: · 34 unmodified lines
3535 measure-delay-time = <0xfff>;
3636 pre-charge-time = <0xffff>;
3737 touchscreen-average-samples = <32>;
38− status = "okay";
3938 };
Documentation/devicetree/bindings/interrupt-controller/fsl,ls-scfg-msi.txt+5−3
@@ -4,8 +4,10 @@ Required properties: · 3 unmodified lines
44
55 - compatible: should be "fsl,<soc-name>-msi" to identify
66 Layerscape PCIe MSI controller block such as:
7− "fsl,1s1021a-msi"
8− "fsl,1s1043a-msi"
7+ "fsl,ls1021a-msi"
8+ "fsl,ls1043a-msi"
9+ "fsl,ls1046a-msi"
10+ "fsl,ls1043a-v1.1-msi"
911 - msi-controller: indicates that this is a PCIe MSI controller node
1012 - reg: physical base address of the controller and length of memory mapped.
1113 - interrupts: an interrupt to the parent interrupt controller.
@@ -23,7 +25,7 @@ MSI controller node · 11 unmodified lines
2325 Examples:
2426
2527 msi1: msi-controller@1571000 {
26− compatible = "fsl,1s1043a-msi";
28+ compatible = "fsl,ls1043a-msi";
2729 reg = <0x0 0x1571000 0x0 0x8>,
2830 msi-controller;
2931 interrupts = <0 116 0x4>;
Documentation/devicetree/bindings/interrupt-controller/mediatek,sysirq.txt+1−0
@@ -17,6 +17,7 @@ Required properties: · 16 unmodified lines
1717 "mediatek,mt6582-sysirq", "mediatek,mt6577-sysirq": for MT6582
1818 "mediatek,mt6580-sysirq", "mediatek,mt6577-sysirq": for MT6580
1919 "mediatek,mt6577-sysirq": for MT6577
20+ "mediatek,mt2712-sysirq", "mediatek,mt6577-sysirq": for MT2712
2021 "mediatek,mt2701-sysirq", "mediatek,mt6577-sysirq": for MT2701
2122 - interrupt-controller : Identifies the node as an interrupt controller
2223 - #interrupt-cells : Use the same format as specified by GIC in arm,gic.txt.
Documentation/devicetree/bindings/interrupt-controller/socionext,uniphier-aidet.txt+32−0
@@ -0,0 +1,32 @@
1+UniPhier AIDET
2+
3+UniPhier AIDET (ARM Interrupt Detector) is an add-on block for ARM GIC (Generic
4+Interrupt Controller). GIC itself can handle only high level and rising edge
5+interrupts. The AIDET provides logic inverter to support low level and falling
6+edge interrupts.
7+
8+Required properties:
9+- compatible: Should be one of the following:
10+ "socionext,uniphier-ld4-aidet" - for LD4 SoC
11+ "socionext,uniphier-pro4-aidet" - for Pro4 SoC
12+ "socionext,uniphier-sld8-aidet" - for sLD8 SoC
13+ "socionext,uniphier-pro5-aidet" - for Pro5 SoC
14+ "socionext,uniphier-pxs2-aidet" - for PXs2/LD6b SoC
15+ "socionext,uniphier-ld11-aidet" - for LD11 SoC
16+ "socionext,uniphier-ld20-aidet" - for LD20 SoC
17+ "socionext,uniphier-pxs3-aidet" - for PXs3 SoC
18+- reg: Specifies offset and length of the register set for the device.
19+- interrupt-controller: Identifies the node as an interrupt controller
20+- #interrupt-cells : Specifies the number of cells needed to encode an interrupt
21+ source. The value should be 2. The first cell defines the interrupt number
22+ (corresponds to the SPI interrupt number of GIC). The second cell specifies
23+ the trigger type as defined in interrupts.txt in this directory.
24+
25+Example:
26+
27+ aidet: aidet@5fc20000 {
28+ compatible = "socionext,uniphier-pro4-aidet";
29+ reg = <0x5fc20000 0x200>;
30+ interrupt-controller;
31+ #interrupt-cells = <2>;
32+ };
Documentation/devicetree/bindings/iommu/qcom,iommu.txt+121−0
@@ -0,0 +1,121 @@
1+* QCOM IOMMU v1 Implementation
2+
3+Qualcomm "B" family devices which are not compatible with arm-smmu have
4+a similar looking IOMMU but without access to the global register space,
5+and optionally requiring additional configuration to route context irqs
6+to non-secure vs secure interrupt line.
7+
8+** Required properties:
9+
10+- compatible : Should be one of:
11+
12+ "qcom,msm8916-iommu"
13+
14+ Followed by "qcom,msm-iommu-v1".
15+
16+- clock-names : Should be a pair of "iface" (required for IOMMUs
17+ register group access) and "bus" (required for
18+ the IOMMUs underlying bus access).
19+
20+- clocks : Phandles for respective clocks described by
21+ clock-names.
22+
23+- #address-cells : must be 1.
24+
25+- #size-cells : must be 1.
26+
27+- #iommu-cells : Must be 1. Index identifies the context-bank #.
28+
29+- ranges : Base address and size of the iommu context banks.
30+
31+- qcom,iommu-secure-id : secure-id.
32+
33+- List of sub-nodes, one per translation context bank. Each sub-node
34+ has the following required properties:
35+
36+ - compatible : Should be one of:
37+ - "qcom,msm-iommu-v1-ns" : non-secure context bank
38+ - "qcom,msm-iommu-v1-sec" : secure context bank
39+ - reg : Base address and size of context bank within the iommu
40+ - interrupts : The context fault irq.
41+
42+** Optional properties:
43+
44+- reg : Base address and size of the SMMU local base, should
45+ be only specified if the iommu requires configuration
46+ for routing of context bank irq's to secure vs non-
47+ secure lines. (Ie. if the iommu contains secure
48+ context banks)
49+
50+
51+** Examples:
52+
53+ apps_iommu: iommu@1e20000 {
54+ #address-cells = <1>;
55+ #size-cells = <1>;
56+ #iommu-cells = <1>;
57+ compatible = "qcom,msm8916-iommu", "qcom,msm-iommu-v1";
58+ ranges = <0 0x1e20000 0x40000>;
59+ reg = <0x1ef0000 0x3000>;
60+ clocks = <&gcc GCC_SMMU_CFG_CLK>,
61+ <&gcc GCC_APSS_TCU_CLK>;
62+ clock-names = "iface", "bus";
63+ qcom,iommu-secure-id = <17>;
64+
65+ // mdp_0:
66+ iommu-ctx@4000 {
67+ compatible = "qcom,msm-iommu-v1-ns";
68+ reg = <0x4000 0x1000>;
69+ interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
70+ };
71+
72+ // venus_ns:
73+ iommu-ctx@5000 {
74+ compatible = "qcom,msm-iommu-v1-sec";
75+ reg = <0x5000 0x1000>;
76+ interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
77+ };
78+ };
79+
80+ gpu_iommu: iommu@1f08000 {
81+ #address-cells = <1>;
82+ #size-cells = <1>;
83+ #iommu-cells = <1>;
84+ compatible = "qcom,msm8916-iommu", "qcom,msm-iommu-v1";
85+ ranges = <0 0x1f08000 0x10000>;
86+ clocks = <&gcc GCC_SMMU_CFG_CLK>,
87+ <&gcc GCC_GFX_TCU_CLK>;
88+ clock-names = "iface", "bus";
89+ qcom,iommu-secure-id = <18>;
90+
91+ // gfx3d_user:
92+ iommu-ctx@1000 {
93+ compatible = "qcom,msm-iommu-v1-ns";
94+ reg = <0x1000 0x1000>;
95+ interrupts = <GIC_SPI 241 IRQ_TYPE_LEVEL_HIGH>;
96+ };
97+
98+ // gfx3d_priv:
99+ iommu-ctx@2000 {
100+ compatible = "qcom,msm-iommu-v1-ns";
101+ reg = <0x2000 0x1000>;
102+ interrupts = <GIC_SPI 242 IRQ_TYPE_LEVEL_HIGH>;
103+ };
104+ };
105+
106+ ...
107+
108+ venus: video-codec@1d00000 {
109+ ...
110+ iommus = <&apps_iommu 5>;
111+ };
112+
113+ mdp: mdp@1a01000 {
114+ ...
115+ iommus = <&apps_iommu 4>;
116+ };
117+
118+ gpu@01c00000 {
119+ ...
120+ iommus = <&gpu_iommu 1>, <&gpu_iommu 2>;
121+ };
Documentation/devicetree/bindings/iommu/rockchip,iommu.txt+5−0
@@ -15,6 +15,11 @@ Required properties: · 14 unmodified lines
1515 to associate with its master device. See:
1616 Documentation/devicetree/bindings/iommu/iommu.txt
1717
18+Optional properties:
19+- rockchip,disable-mmu-reset : Don't use the mmu reset operation.
20+ Some mmu instances may produce unexpected results
21+ when the reset operation is used.
22+
1823 Example:
1924
2025 vopl_mmu: iommu@ff940300 {
Documentation/devicetree/bindings/leds/leds-gpio.txt+3−0
@@ -18,6 +18,9 @@ LED sub-node properties: · 17 unmodified lines
1818 see Documentation/devicetree/bindings/leds/common.txt
1919 - retain-state-suspended: (optional) The suspend state can be retained.Such
2020 as charge-led gpio.
21+- retain-state-shutdown: (optional) Retain the state of the LED on shutdown.
22+ Useful in BMC systems, for example when the BMC is rebooted while the host
23+ remains up.
2124 - panic-indicator : (optional)
2225 see Documentation/devicetree/bindings/leds/common.txt
2326
Documentation/devicetree/bindings/leds/leds-pca955x.txt+88−0
@@ -0,0 +1,88 @@
1+* NXP - pca955x LED driver
2+
3+The PCA955x family of chips are I2C LED blinkers whose pins not used
4+to control LEDs can be used as general purpose I/Os. The GPIO pins can
5+be input or output, and output pins can also be pulse-width controlled.
6+
7+Required properties:
8+- compatible : should be one of :
9+ "nxp,pca9550"
10+ "nxp,pca9551"
11+ "nxp,pca9552"
12+ "nxp,pca9553"
13+- #address-cells: must be 1
14+- #size-cells: must be 0
15+- reg: I2C slave address. depends on the model.
16+
17+Optional properties:
18+- gpio-controller: allows pins to be used as GPIOs.
19+- #gpio-cells: must be 2.
20+- gpio-line-names: define the names of the GPIO lines
21+
22+LED sub-node properties:
23+- reg : number of LED line.
24+ from 0 to 1 for the pca9550
25+ from 0 to 7 for the pca9551
26+ from 0 to 15 for the pca9552
27+ from 0 to 3 for the pca9553
28+- type: (optional) either
29+ PCA9532_TYPE_NONE
30+ PCA9532_TYPE_LED
31+ PCA9532_TYPE_GPIO
32+ see dt-bindings/leds/leds-pca955x.h (default to LED)
33+- label : (optional)
34+ see Documentation/devicetree/bindings/leds/common.txt
35+- linux,default-trigger : (optional)
36+ see Documentation/devicetree/bindings/leds/common.txt
37+
38+Examples:
39+
40+pca9552: pca9552@60 {
41+ compatible = "nxp,pca9552";
42+ #address-cells = <1>;
43+ #size-cells = <0>;
44+ reg = <0x60>;
45+
46+ gpio-controller;
47+ #gpio-cells = <2>;
48+ gpio-line-names = "GPIO12", "GPIO13", "GPIO14", "GPIO15";
49+
50+ gpio@12 {
51+ reg = <12>;
52+ type = <PCA955X_TYPE_GPIO>;
53+ };
54+ gpio@13 {
55+ reg = <13>;
56+ type = <PCA955X_TYPE_GPIO>;
57+ };
58+ gpio@14 {
59+ reg = <14>;
60+ type = <PCA955X_TYPE_GPIO>;
61+ };
62+ gpio@15 {
63+ reg = <15>;
64+ type = <PCA955X_TYPE_GPIO>;
65+ };
66+
67+ led@0 {
68+ label = "red:power";
69+ linux,default-trigger = "default-on";
70+ reg = <0>;
71+ type = <PCA955X_TYPE_LED>;
72+ };
73+ led@1 {
74+ label = "green:power";
75+ reg = <1>;
76+ type = <PCA955X_TYPE_LED>;
77+ };
78+ led@2 {
79+ label = "pca9552:yellow";
80+ reg = <2>;
81+ type = <PCA955X_TYPE_LED>;
82+ };
83+ led@3 {
84+ label = "pca9552:white";
85+ reg = <3>;
86+ type = <PCA955X_TYPE_LED>;
87+ };
88+};
Documentation/devicetree/bindings/media/pxa-camera.txt+0−1
@@ -24,7 +24,6 @@ Example: · 23 unmodified lines
2424 clock-frequency = <50000000>;
2525 clock-output-names = "qci_mclk";
2626
27− status = "okay";
2827
2928 port {
3029 #address-cells = <1>;
Documentation/devicetree/bindings/media/s5p-cec.txt+0−1
@@ -33,5 +33,4 @@ hdmicec: cec@100B0000 { · 32 unmodified lines
3333 hdmi-phandle = <&hdmi>;
3434 pinctrl-names = "default";
3535 pinctrl-0 = <&hdmi_cec>;
36− status = "okay";
3736 };
Documentation/devicetree/bindings/media/samsung-fimc.txt+0−2
@@ -166,7 +166,6 @@ Example: · 165 unmodified lines
166166 clock-output-names = "cam_a_clkout", "cam_b_clkout";
167167 pinctrl-names = "default";
168168 pinctrl-0 = <&cam_port_a_clk_active>;
169− status = "okay";
170169 #address-cells = <1>;
171170 #size-cells = <1>;
172171
@@ -189,7 +188,6 @@ Example: · 16 unmodified lines
189188 compatible = "samsung,exynos4210-fimc";
190189 reg = <0x11800000 0x1000>;
191190 interrupts = <0 85 0>;
192− status = "okay";
193191 };
194192
195193 csis_0: csis@11880000 {
Documentation/devicetree/bindings/media/stih407-c8sectpfe.txt+0−1
@@ -52,7 +52,6 @@ Example: · 51 unmodified lines
5252
5353 c8sectpfe@08a20000 {
5454 compatible = "st,stih407-c8sectpfe";
55− status = "okay";
5655 reg = <0x08a20000 0x10000>, <0x08a00000 0x4000>;
5756 reg-names = "stfe", "stfe-ram";
5857 interrupts = <GIC_SPI 34 IRQ_TYPE_NONE>, <GIC_SPI 35 IRQ_TYPE_NONE>;
Documentation/devicetree/bindings/media/ti,da850-vpif.txt+0−1
@@ -59,7 +59,6 @@ I2C-connected TVP5147 decoder: · 58 unmodified lines
5959 tvp5147@5d {
6060 compatible = "ti,tvp5147";
6161 reg = <0x5d>;
62− status = "okay";
6362
6463 port {
6564 composite_in: endpoint {
Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.txt+15−0
@@ -15,6 +15,9 @@ Required properties: · 14 unmodified lines
1515 the register.
1616 - "smi" : It's the clock for transfer data and command.
1717
18+Required property for mt2701:
19+- mediatek,larb-id :the hardware id of this larb.
20+
1821 Example:
1922 larb1: larb@16010000 {
2023 compatible = "mediatek,mt8173-smi-larb";
@@ -25,3 +28,15 @@ Example: · 4 unmodified lines
2528 <&vdecsys CLK_VDEC_LARB_CKEN>;
2629 clock-names = "apb", "smi";
2730 };
31+
32+Example for mt2701:
33+ larb0: larb@14010000 {
34+ compatible = "mediatek,mt2701-smi-larb";
35+ reg = <0 0x14010000 0 0x1000>;
36+ mediatek,smi = <&smi_common>;
37+ mediatek,larb-id = <0>;
38+ clocks = <&mmsys CLK_MM_SMI_LARB0>,
39+ <&mmsys CLK_MM_SMI_LARB0>;
40+ clock-names = "apb", "smi";
41+ power-domains = <&scpsys MT2701_POWER_DOMAIN_DISP>;
42+ };
Documentation/devicetree/bindings/memory-controllers/mvebu-devbus.txt+0−1
@@ -130,7 +130,6 @@ The reg property implicitly specifies the chip select as this: · 129 unmodified lines
130130 Example:
131131
132132 devbus-bootcs@d0010400 {
133− status = "okay";
134133 ranges = <0 0xf0000000 0x1000000>; /* @addr 0xf0000000, size 0x1000000 */
135134 #address-cells = <1>;
136135 #size-cells = <1>;
Documentation/devicetree/bindings/mfd/act8945a.txt+0−2
@@ -12,7 +12,6 @@ Example: · 11 unmodified lines
1212 pmic@5b {
1313 compatible = "active-semi,act8945a";
1414 reg = <0x5b>;
15− status = "okay";
1615
1716 active-semi,vsel-high;
1817
@@ -79,6 +78,5 @@ Example: · 60 unmodified lines
7978 active-semi,input-voltage-threshold-microvolt = <6600>;
8079 active-semi,precondition-timeout = <40>;
8180 active-semi,total-timeout = <3>;
82− status = "okay";
8381 };
8482 };
Documentation/devicetree/bindings/mfd/atmel-hlcdc.txt+0−1
@@ -25,7 +25,6 @@ Example: · 24 unmodified lines
2525 clocks = <&lcdc_clk>, <&lcdck>, <&clk32k>;
2626 clock-names = "periph_clk","sys_clk", "slow_clk";
2727 interrupts = <36 IRQ_TYPE_LEVEL_HIGH 0>;
28− status = "disabled";
2928
3029 hlcdc-display-controller {
3130 compatible = "atmel,hlcdc-display-controller";
Documentation/devicetree/bindings/mfd/atmel-smc.txt+1−0
@@ -8,6 +8,7 @@ Required properties: · 7 unmodified lines
88 - compatible: Should be one of the following
99 "atmel,at91sam9260-smc", "syscon"
1010 "atmel,sama5d3-smc", "syscon"
11+ "atmel,sama5d2-smc", "syscon"
1112 - reg: Contains offset/length value of the SMC memory
1213 region.
1314
Documentation/devicetree/bindings/mfd/axp20x.txt+45−5
@@ -7,7 +7,14 @@ axp209 (X-Powers) · 6 unmodified lines
77 axp221 (X-Powers)
88 axp223 (X-Powers)
99 axp803 (X-Powers)
10+axp806 (X-Powers)
1011 axp809 (X-Powers)
12+axp813 (X-Powers)
13+
14+The AXP813 is 2 chips packaged into 1. The 2 chips do not share anything
15+other than the packaging. Pins are routed separately. As such they should
16+be treated as separate entities. The other half is an AC100 RTC/codec
17+combo chip. Please see ./ac100.txt for its bindings.
1118
1219 Required properties:
1320 - compatible: should be one of:
@@ -19,6 +26,7 @@ Required properties: · 5 unmodified lines
1926 * "x-powers,axp803"
2027 * "x-powers,axp806"
2128 * "x-powers,axp809"
29+ * "x-powers,axp813"
2230 - reg: The I2C slave address or RSB hardware address for the AXP chip
2331 - interrupt-parent: The parent interrupt controller
2432 - interrupts: SoC NMI / GPIO interrupt connected to the PMIC's IRQ pin
@@ -28,12 +36,14 @@ Required properties: · 3 unmodified lines
2836 Optional properties:
2937 - x-powers,dcdc-freq: defines the work frequency of DC-DC in KHz
3038 AXP152/20X: range: 750-1875, Default: 1.5 MHz
31− AXP22X/80X: range: 1800-4050, Default: 3 MHz
39+ AXP22X/8XX: range: 1800-4050, Default: 3 MHz
3240
33−- x-powers,drive-vbus-en: axp221 / axp223 only boolean, set this when the
34− N_VBUSEN pin is used as an output pin to control an external
35− regulator to drive the OTG VBus, rather then as an input pin
36− which signals whether the board is driving OTG VBus or not.
41+- x-powers,drive-vbus-en: boolean, set this when the N_VBUSEN pin is
42+ used as an output pin to control an external
43+ regulator to drive the OTG VBus, rather then
44+ as an input pin which signals whether the
45+ board is driving OTG VBus or not.
46+ (axp221 / axp223 / axp813 only)
3747
3848 - x-powers,master-mode: Boolean (axp806 only). Set this when the PMIC is
3949 wired for master mode. The default is slave mode.
@@ -171,6 +181,36 @@ LDO_IO1 : LDO : ips-supply : GPIO 1 · 131 unmodified lines
171181 RTC_LDO : LDO : ips-supply : always on
172182 SW : On/Off Switch : swin-supply
173183
184+AXP813 regulators, type, and corresponding input supply names:
185+
186+Regulator Type Supply Name Notes
187+--------- ---- ----------- -----
188+DCDC1 : DC-DC buck : vin1-supply
189+DCDC2 : DC-DC buck : vin2-supply : poly-phase capable
190+DCDC3 : DC-DC buck : vin3-supply : poly-phase capable
191+DCDC4 : DC-DC buck : vin4-supply
192+DCDC5 : DC-DC buck : vin5-supply : poly-phase capable
193+DCDC6 : DC-DC buck : vin6-supply : poly-phase capable
194+DCDC7 : DC-DC buck : vin7-supply
195+ALDO1 : LDO : aldoin-supply : shared supply
196+ALDO2 : LDO : aldoin-supply : shared supply
197+ALDO3 : LDO : aldoin-supply : shared supply
198+DLDO1 : LDO : dldoin-supply : shared supply
199+DLDO2 : LDO : dldoin-supply : shared supply
200+DLDO3 : LDO : dldoin-supply : shared supply
201+DLDO4 : LDO : dldoin-supply : shared supply
202+ELDO1 : LDO : eldoin-supply : shared supply
203+ELDO2 : LDO : eldoin-supply : shared supply
204+ELDO3 : LDO : eldoin-supply : shared supply
205+FLDO1 : LDO : fldoin-supply : shared supply
206+FLDO2 : LDO : fldoin-supply : shared supply
207+FLDO3 : LDO : fldoin-supply : shared supply
208+LDO_IO0 : LDO : ips-supply : GPIO 0
209+LDO_IO1 : LDO : ips-supply : GPIO 1
210+RTC_LDO : LDO : ips-supply : always on
211+SW : On/Off Switch : swin-supply
212+DRIVEVBUS : Enable output : drivevbus-supply : external regulator
213+
174214 Example:
175215
176216 axp209: pmic@34 {
Documentation/devicetree/bindings/mfd/bd9571mwv.txt+49−0
@@ -0,0 +1,49 @@
1+* ROHM BD9571MWV Power Management Integrated Circuit (PMIC) bindings
2+
3+Required properties:
4+ - compatible : Should be "rohm,bd9571mwv".
5+ - reg : I2C slave address.
6+ - interrupt-parent : Phandle to the parent interrupt controller.
7+ - interrupts : The interrupt line the device is connected to.
8+ - interrupt-controller : Marks the device node as an interrupt controller.
9+ - #interrupt-cells : The number of cells to describe an IRQ, should be 2.
10+ The first cell is the IRQ number.
11+ The second cell is the flags, encoded as trigger
12+ masks from ../interrupt-controller/interrupts.txt.
13+ - gpio-controller : Marks the device node as a GPIO Controller.
14+ - #gpio-cells : Should be two. The first cell is the pin number and
15+ the second cell is used to specify flags.
16+ See ../gpio/gpio.txt for more information.
17+ - regulators: : List of child nodes that specify the regulator
18+ initialization data. Child nodes must be named
19+ after their hardware counterparts:
20+ - vd09
21+ - vd18
22+ - vd25
23+ - vd33
24+ - dvfs
25+ Each child node is defined using the standard
26+ binding for regulators.
27+
28+Example:
29+
30+ pmic: pmic@30 {
31+ compatible = "rohm,bd9571mwv";
32+ reg = <0x30>;
33+ interrupt-parent = <&gpio2>;
34+ interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
35+ interrupt-controller;
36+ #interrupt-cells = <2>;
37+ gpio-controller;
38+ #gpio-cells = <2>;
39+
40+ regulators {
41+ dvfs: dvfs {
42+ regulator-name = "dvfs";
43+ regulator-min-microvolt = <750000>;
44+ regulator-max-microvolt = <1030000>;
45+ regulator-boot-on;
46+ regulator-always-on;
47+ };
48+ };
49+ };
Documentation/devicetree/bindings/mfd/da9052-i2c.txt+8−1
@@ -4,6 +4,14 @@ Required properties: · 3 unmodified lines
44 - compatible : Should be "dlg,da9052", "dlg,da9053-aa",
55 "dlg,da9053-ab", or "dlg,da9053-bb"
66
7+Optional properties:
8+- dlg,tsi-as-adc : Boolean, if set the X+, X-, Y+, Y- touchscreen
9+ input lines are used as general purpose analogue
10+ input.
11+- tsiref-supply: Phandle to the regulator, which provides the reference
12+ voltage for the TSIREF pin. Must be provided when the
13+ touchscreen pins are used for ADC purposes.
14+
715 Sub-nodes:
816 - regulators : Contain the regulator nodes. The DA9052/53 regulators are
917 bound using their names as listed below:
@@ -29,7 +37,6 @@ Sub-nodes: · 19 unmodified lines
2937 Examples:
3038
3139 i2c@63fc8000 { /* I2C1 */
32− status = "okay";
3340
3441 pmic: dialog@48 {
3542 compatible = "dlg,da9053-aa";
Documentation/devicetree/bindings/mfd/mc13xxx.txt+0−1
@@ -116,7 +116,6 @@ ecspi@70010000 { /* ECSPI1 */ · 115 unmodified lines
116116 fsl,spi-num-chipselects = <2>;
117117 cs-gpios = <&gpio4 24 0>, /* GPIO4_24 */
118118 <&gpio4 25 0>; /* GPIO4_25 */
119− status = "okay";
120119
121120 pmic: mc13892@0 {
122121 #address-cells = <1>;
Documentation/devicetree/bindings/mfd/mxs-lradc.txt+0−2
@@ -26,7 +26,6 @@ Example for i.MX23 SoC: · 25 unmodified lines
2626 compatible = "fsl,imx23-lradc";
2727 reg = <0x80050000 0x2000>;
2828 interrupts = <36 37 38 39 40 41 42 43 44>;
29− status = "okay";
3029 fsl,lradc-touchscreen-wires = <4>;
3130 fsl,ave-ctrl = <4>;
3231 fsl,ave-delay = <2>;
@@ -39,7 +38,6 @@ Example for i.MX28 SoC: · 6 unmodified lines
3938 compatible = "fsl,imx28-lradc";
4039 reg = <0x80050000 0x2000>;
4140 interrupts = <10 14 15 16 17 18 19 20 21 22 23 24 25>;
42− status = "okay";
4341 fsl,lradc-touchscreen-wires = <5>;
4442 fsl,ave-ctrl = <4>;
4543 fsl,ave-delay = <2>;
Documentation/devicetree/bindings/mfd/retu.txt+25−0
@@ -0,0 +1,25 @@
1+* Device tree bindings for Nokia Retu and Tahvo multi-function device
2+
3+Retu and Tahvo are a multi-function devices found on Nokia Internet
4+Tablets (770, N800 and N810). The Retu chip provides watchdog timer
5+and power button control functionalities while Tahvo chip provides
6+USB transceiver functionality.
7+
8+Required properties:
9+- compatible: "nokia,retu" or "nokia,tahvo"
10+- reg: Specifies the CBUS slave address of the ASIC chip
11+- interrupts: The interrupt line the device is connected to
12+- interrupt-parent: The parent interrupt controller
13+
14+Example:
15+
16+cbus0 {
17+ compatible = "i2c-cbus-gpio";
18+ ...
19+ retu: retu@1 {
20+ compatible = "nokia,retu";
21+ interrupt-parent = <&gpio4>;
22+ interrupts = <12 IRQ_TYPE_EDGE_RISING>;
23+ reg = <0x1>;
24+ };
25+};
Documentation/devicetree/bindings/mfd/rk808.txt+21−1
@@ -1,11 +1,14 @@
11 RK8XX Power Management Integrated Circuit
22
33 The rk8xx family current members:
4+rk805
45 rk808
56 rk818
67
78 Required properties:
8−- compatible: "rockchip,rk808", "rockchip,rk818"
9+- compatible: "rockchip,rk805"
10+- compatible: "rockchip,rk808"
11+- compatible: "rockchip,rk818"
912 - reg: I2C slave address
1013 - interrupt-parent: The parent interrupt controller.
1114 - interrupts: the interrupt outputs of the controller.
@@ -18,6 +21,14 @@ Optional properties: · 6 unmodified lines
1821 - rockchip,system-power-controller: Telling whether or not this pmic is controlling
1922 the system power.
2023
24+Optional RK805 properties:
25+- vcc1-supply: The input supply for DCDC_REG1
26+- vcc2-supply: The input supply for DCDC_REG2
27+- vcc3-supply: The input supply for DCDC_REG3
28+- vcc4-supply: The input supply for DCDC_REG4
29+- vcc5-supply: The input supply for LDO_REG1 and LDO_REG2
30+- vcc6-supply: The input supply for LDO_REG3
31+
2132 Optional RK808 properties:
2233 - vcc1-supply: The input supply for DCDC_REG1
2334 - vcc2-supply: The input supply for DCDC_REG2
@@ -56,6 +67,15 @@ by a child node of the 'regulators' node. · 32 unmodified lines
5667 /* standard regulator bindings here */
5768 };
5869
70+Following regulators of the RK805 PMIC regulators are supported. Note that
71+the 'n' in regulator name, as in DCDC_REGn or LDOn, represents the DCDC or LDO
72+number as described in RK805 datasheet.
73+
74+ - DCDC_REGn
75+ - valid values for n are 1 to 4.
76+ - LDO_REGn
77+ - valid values for n are 1 to 3
78+
5979 Following regulators of the RK808 PMIC block are supported. Note that
6080 the 'n' in regulator name, as in DCDC_REGn or LDOn, represents the DCDC or LDO
6181 number as described in RK808 datasheet.
Documentation/devicetree/bindings/mfd/samsung,exynos5433-lpass.txt+0−2
@@ -57,7 +57,6 @@ audio-subsystem { · 56 unmodified lines
5757 clock-names = "iis", "i2s_opclk0", "i2s_opclk1";
5858 pinctrl-names = "default";
5959 pinctrl-0 = <&i2s0_bus>;
60− status = "disabled";
6160 };
6261
6362 serial_3: serial@11460000 {
@@ -69,6 +68,5 @@ audio-subsystem { · 5 unmodified lines
6968 clock-names = "uart", "clk_uart_baud0";
7069 pinctrl-names = "default";
7170 pinctrl-0 = <&uart_aud_bus>;
72− status = "disabled";
7371 };
7472 };
Documentation/devicetree/bindings/mfd/stm32-lptimer.txt+48−0
@@ -0,0 +1,48 @@
1+STMicroelectronics STM32 Low-Power Timer
2+
3+The STM32 Low-Power Timer (LPTIM) is a 16-bit timer that provides several
4+functions:
5+- PWM output (with programmable prescaler, configurable polarity)
6+- Quadrature encoder, counter
7+- Trigger source for STM32 ADC/DAC (LPTIM_OUT)
8+
9+Required properties:
10+- compatible: Must be "st,stm32-lptimer".
11+- reg: Offset and length of the device's register set.
12+- clocks: Phandle to the clock used by the LP Timer module.
13+- clock-names: Must be "mux".
14+- #address-cells: Should be '<1>'.
15+- #size-cells: Should be '<0>'.
16+
17+Optional subnodes:
18+- pwm: See ../pwm/pwm-stm32-lp.txt
19+- counter: See ../iio/timer/stm32-lptimer-cnt.txt
20+- trigger: See ../iio/timer/stm32-lptimer-trigger.txt
21+
22+Example:
23+
24+ timer@40002400 {
25+ compatible = "st,stm32-lptimer";
26+ reg = <0x40002400 0x400>;
27+ clocks = <&timer_clk>;
28+ clock-names = "mux";
29+ #address-cells = <1>;
30+ #size-cells = <0>;
31+
32+ pwm {
33+ compatible = "st,stm32-pwm-lp";
34+ pinctrl-names = "default";
35+ pinctrl-0 = <&lppwm1_pins>;
36+ };
37+
38+ trigger@0 {
39+ compatible = "st,stm32-lptimer-trigger";
40+ reg = <0>;
41+ };
42+
43+ counter {
44+ compatible = "st,stm32-lptimer-counter";
45+ pinctrl-names = "default";
46+ pinctrl-0 = <&lptim1_in_pins>;
47+ };
48+ };
Documentation/devicetree/bindings/mfd/tps6105x.txt+17−0
@@ -0,0 +1,17 @@
1+* Device tree bindings for TI TPS61050/61052 Boost Converters
2+
3+The TP61050/TPS61052 is a high-power "white LED driver". The
4+device provides LED, GPIO and regulator functionalities.
5+
6+Required properties:
7+- compatible: "ti,tps61050" or "ti,tps61052"
8+- reg: Specifies the I2C slave address
9+
10+Example:
11+
12+i2c0 {
13+ tps61052@33 {
14+ compatible = "ti,tps61052";
15+ reg = <0x33>;
16+ };
17+};
Documentation/devicetree/bindings/mfd/wm831x.txt+1−0
@@ -31,6 +31,7 @@ Required properties: · 30 unmodified lines
3131 ../interrupt-controller/interrupts.txt
3232
3333 Optional sub-nodes:
34+ - phys : Contains a phandle to the USB PHY.
3435 - regulators : Contains sub-nodes for each of the regulators supplied by
3536 the device. The regulators are bound using their names listed below:
3637
Documentation/devicetree/bindings/mfd/zii,rave-sp.txt+39−0
@@ -0,0 +1,39 @@
1+Zodiac Inflight Innovations RAVE Supervisory Processor
2+
3+RAVE Supervisory Processor communicates with SoC over UART. It is
4+expected that its Device Tree node is specified as a child of a node
5+corresponding to UART controller used for communication.
6+
7+Required parent device properties:
8+
9+ - compatible: Should be one of:
10+ - "zii,rave-sp-niu"
11+ - "zii,rave-sp-mezz"
12+ - "zii,rave-sp-esb"
13+ - "zii,rave-sp-rdu1"
14+ - "zii,rave-sp-rdu2"
15+
16+ - current-speed: Should be set to baud rate SP device is using
17+
18+RAVE SP consists of the following sub-devices:
19+
20+Device Description
21+------ -----------
22+rave-sp-wdt : Watchdog
23+rave-sp-nvmem : Interface to onborad EEPROM
24+rave-sp-backlight : Display backlight
25+rave-sp-hwmon : Interface to onboard hardware sensors
26+rave-sp-leds : Interface to onboard LEDs
27+rave-sp-input : Interface to onboard power button
28+
29+Example of usage:
30+
31+ rdu {
32+ compatible = "zii,rave-sp-rdu2";
33+ current-speed = <1000000>;
34+
35+ watchdog {
36+ compatible = "zii,rave-sp-watchdog";
37+ };
38+ };
39+
Documentation/devicetree/bindings/mips/lantiq/fpi-bus.txt+31−0
@@ -0,0 +1,31 @@
1+Lantiq XWAY SoC FPI BUS binding
2+============================
3+
4+
5+-------------------------------------------------------------------------------
6+Required properties:
7+- compatible : Should be one of
8+ "lantiq,xrx200-fpi"
9+- reg : The address and length of the XBAR
10+ configuration register.
11+ Address and length of the FPI bus itself.
12+- lantiq,rcu : A phandle to the RCU syscon
13+- lantiq,offset-endianness : Offset of the endianness configuration
14+ register
15+
16+-------------------------------------------------------------------------------
17+Example for the FPI on the xrx200 SoCs:
18+ fpi@10000000 {
19+ compatible = "lantiq,xrx200-fpi";
20+ ranges = <0x0 0x10000000 0xf000000>;
21+ reg = <0x1f400000 0x1000>,
22+ <0x10000000 0xf000000>;
23+ lantiq,rcu = <&rcu0>;
24+ lantiq,offset-endianness = <0x4c>;
25+ #address-cells = <1>;
26+ #size-cells = <1>;
27+
28+ gptu@e100a00 {
29+ ......
30+ };
31+ };
Documentation/devicetree/bindings/mips/lantiq/rcu-gphy.txt+36−0
@@ -0,0 +1,36 @@
1+Lantiq XWAY SoC GPHY binding
2+============================
3+
4+This binding describes a software-defined ethernet PHY, provided by the RCU
5+module on newer Lantiq XWAY SoCs (xRX200 and newer).
6+
7+-------------------------------------------------------------------------------
8+Required properties:
9+- compatible : Should be one of
10+ "lantiq,xrx200a1x-gphy"
11+ "lantiq,xrx200a2x-gphy"
12+ "lantiq,xrx300-gphy"
13+ "lantiq,xrx330-gphy"
14+- reg : Addrress of the GPHY FW load address register
15+- resets : Must reference the RCU GPHY reset bit
16+- reset-names : One entry, value must be "gphy" or optional "gphy2"
17+- clocks : A reference to the (PMU) GPHY clock gate
18+
19+Optional properties:
20+- lantiq,gphy-mode : GPHY_MODE_GE (default) or GPHY_MODE_FE as defined in
21+ <dt-bindings/mips/lantiq_xway_gphy.h>
22+
23+
24+-------------------------------------------------------------------------------
25+Example for the GPHys on the xRX200 SoCs:
26+
27+#include <dt-bindings/mips/lantiq_rcu_gphy.h>
28+ gphy0: gphy@20 {
29+ compatible = "lantiq,xrx200a2x-gphy";
30+ reg = <0x20 0x4>;
31+
32+ resets = <&reset0 31 30>, <&reset1 7 7>;
33+ reset-names = "gphy", "gphy2";
34+ clocks = <&pmu0 XRX200_PMU_GATE_GPHY>;
35+ lantiq,gphy-mode = <GPHY_MODE_GE>;
36+ };
Documentation/devicetree/bindings/mips/lantiq/rcu.txt+89−0
@@ -0,0 +1,89 @@
1+Lantiq XWAY SoC RCU binding
2+===========================
3+
4+This binding describes the RCU (reset controller unit) multifunction device,
5+where each sub-device has it's own set of registers.
6+
7+The RCU register range is used for multiple purposes. Mostly one device
8+uses one or multiple register exclusively, but for some registers some
9+bits are for one driver and some other bits are for a different driver.
10+With this patch all accesses to the RCU registers will go through
11+syscon.
12+
13+
14+-------------------------------------------------------------------------------
15+Required properties:
16+- compatible : The first and second values must be:
17+ "lantiq,xrx200-rcu", "simple-mfd", "syscon"
18+- reg : The address and length of the system control registers
19+
20+
21+-------------------------------------------------------------------------------
22+Example of the RCU bindings on a xRX200 SoC:
23+ rcu0: rcu@203000 {
24+ compatible = "lantiq,xrx200-rcu", "simple-mfd", "syscon";
25+ reg = <0x203000 0x100>;
26+ ranges = <0x0 0x203000 0x100>;
27+ big-endian;
28+
29+ gphy0: gphy@20 {
30+ compatible = "lantiq,xrx200a2x-gphy";
31+ reg = <0x20 0x4>;
32+
33+ resets = <&reset0 31 30>, <&reset1 7 7>;
34+ reset-names = "gphy", "gphy2";
35+ lantiq,gphy-mode = <GPHY_MODE_GE>;
36+ };
37+
38+ gphy1: gphy@68 {
39+ compatible = "lantiq,xrx200a2x-gphy";
40+ reg = <0x68 0x4>;
41+
42+ resets = <&reset0 29 28>, <&reset1 6 6>;
43+ reset-names = "gphy", "gphy2";
44+ lantiq,gphy-mode = <GPHY_MODE_GE>;
45+ };
46+
47+ reset0: reset-controller@10 {
48+ compatible = "lantiq,xrx200-reset";
49+ reg = <0x10 4>, <0x14 4>;
50+
51+ #reset-cells = <2>;
52+ };
53+
54+ reset1: reset-controller@48 {
55+ compatible = "lantiq,xrx200-reset";
56+ reg = <0x48 4>, <0x24 4>;
57+
58+ #reset-cells = <2>;
59+ };
60+
61+ usb_phy0: usb2-phy@18 {
62+ compatible = "lantiq,xrx200-usb2-phy";
63+ reg = <0x18 4>, <0x38 4>;
64+ status = "disabled";
65+
66+ resets = <&reset1 4 4>, <&reset0 4 4>;
67+ reset-names = "phy", "ctrl";
68+ #phy-cells = <0>;
69+ };
70+
71+ usb_phy1: usb2-phy@34 {
72+ compatible = "lantiq,xrx200-usb2-phy";
73+ reg = <0x34 4>, <0x3C 4>;
74+ status = "disabled";
75+
76+ resets = <&reset1 5 4>, <&reset0 4 4>;
77+ reset-names = "phy", "ctrl";
78+ #phy-cells = <0>;
79+ };
80+
81+ reboot@10 {
82+ compatible = "syscon-reboot";
83+ reg = <0x10 4>;
84+
85+ regmap = <&rcu0>;
86+ offset = <0x10>;
87+ mask = <0x40000000>;
88+ };
89+ };
Documentation/devicetree/bindings/mips/ni.txt+7−0
@@ -0,0 +1,7 @@
1+National Instruments MIPS platforms
2+
3+required root node properties:
4+ - compatible: must be "ni,169445"
5+
6+CPU Nodes
7+ - compatible: must be "mti,mips14KEc"
Documentation/devicetree/bindings/mips/ralink.txt+1−0
@@ -15,3 +15,4 @@ value must be one of the following values: · 14 unmodified lines
1515 ralink,rt5350-soc
1616 ralink,mt7620a-soc
1717 ralink,mt7620n-soc
18+ ralink,mt7628a-soc
Documentation/devicetree/bindings/misc/atmel-ssc.txt+0−1
@@ -47,5 +47,4 @@ ssc0: ssc@f0010000 { · 46 unmodified lines
4747 dma-names = "tx", "rx";
4848 pinctrl-names = "default";
4949 pinctrl-0 = <&pinctrl_ssc0_tx &pinctrl_ssc0_rx>;
50− status = "disabled";
5150 };
Documentation/devicetree/bindings/mmc/arasan,sdhci.txt+0−1
@@ -74,5 +74,4 @@ Example: · 73 unmodified lines
7474 phys = <&emmc_phy>;
7575 phy-names = "phy_arasan";
7676 #clock-cells = <0>;
77− status = "disabled";
7877 };
Documentation/devicetree/bindings/mmc/davinci_mmc.txt+0−1
@@ -24,7 +24,6 @@ mmc0: mmc@1c40000 { · 23 unmodified lines
2424 compatible = "ti,da830-mmc",
2525 reg = <0x40000 0x1000>;
2626 interrupts = <16>;
27− status = "okay";
2827 bus-width = <4>;
2928 max-frequency = <50000000>;
3029 dmas = <&edma 16
Documentation/devicetree/bindings/mmc/fsl-imx-mmc.txt+0−1
@@ -20,5 +20,4 @@ sdhci1: sdhci@10014000 { · 19 unmodified lines
2020 dma-names = "rx-tx";
2121 bus-width = <4>;
2222 cd-gpios = <&gpio3 29>;
23− status = "okay";
2423 };
Documentation/devicetree/bindings/mmc/mmc-card.txt+0−1
@@ -21,7 +21,6 @@ Example: · 20 unmodified lines
2121 vmmc-supply = <&reg_vcc3v3>;
2222 bus-width = <8>;
2323 non-removable;
24− status = "okay";
2524
2625 mmccard: mmccard@0 {
2726 reg = <0>;
Documentation/devicetree/bindings/mmc/mmc.txt+0−1
@@ -153,7 +153,6 @@ mmc3: mmc@01c12000 { · 152 unmodified lines
153153 bus-width = <4>;
154154 non-removable;
155155 mmc-pwrseq = <&sdhci0_pwrseq>
156− status = "okay";
157156
158157 brcmf: bcrmf@1 {
159158 reg = <1>;
Documentation/devicetree/bindings/mmc/orion-sdio.txt+0−1
@@ -13,5 +13,4 @@ Example: · 12 unmodified lines
1313 reg = <0xd00d4000 0x200>;
1414 interrupts = <54>;
1515 clocks = <&gateclk 17>;
16− status = "disabled";
1716 };
Documentation/devicetree/bindings/mmc/renesas,mmcif.txt+3−1
@@ -11,6 +11,8 @@ Required properties: · 10 unmodified lines
1111 - "renesas,mmcif-r7s72100" for the MMCIF found in r7s72100 SoCs
1212 - "renesas,mmcif-r8a73a4" for the MMCIF found in r8a73a4 SoCs
1313 - "renesas,mmcif-r8a7740" for the MMCIF found in r8a7740 SoCs
14+ - "renesas,mmcif-r8a7743" for the MMCIF found in r8a7743 SoCs
15+ - "renesas,mmcif-r8a7745" for the MMCIF found in r8a7745 SoCs
1416 - "renesas,mmcif-r8a7778" for the MMCIF found in r8a7778 SoCs
1517 - "renesas,mmcif-r8a7790" for the MMCIF found in r8a7790 SoCs
1618 - "renesas,mmcif-r8a7791" for the MMCIF found in r8a7791 SoCs
@@ -21,7 +23,7 @@ Required properties: · 4 unmodified lines
2123 - interrupts: Some SoCs have only 1 shared interrupt, while others have either
2224 2 or 3 individual interrupts (error, int, card detect). Below is the number
2325 of interrupts for each SoC:
24− 1: r8a73a4, r8a7778, r8a7790, r8a7791, r8a7793, r8a7794
26+ 1: r8a73a4, r8a7743, r8a7745, r8a7778, r8a7790, r8a7791, r8a7793, r8a7794
2527 2: r8a7740, sh73a0
2628 3: r7s72100
2729
Documentation/devicetree/bindings/mmc/rockchip-dw-mshc.txt+1−0
@@ -15,6 +15,7 @@ Required Properties: · 14 unmodified lines
1515 - "rockchip,rk3288-dw-mshc": for Rockchip RK3288
1616 - "rockchip,rv1108-dw-mshc", "rockchip,rk3288-dw-mshc": for Rockchip RV1108
1717 - "rockchip,rk3036-dw-mshc", "rockchip,rk3288-dw-mshc": for Rockchip RK3036
18+ - "rockchip,rk3228-dw-mshc", "rockchip,rk3288-dw-mshc": for Rockchip RK322x
1819 - "rockchip,rk3328-dw-mshc", "rockchip,rk3288-dw-mshc": for Rockchip RK3328
1920 - "rockchip,rk3368-dw-mshc", "rockchip,rk3288-dw-mshc": for Rockchip RK3368
2021 - "rockchip,rk3399-dw-mshc", "rockchip,rk3288-dw-mshc": for Rockchip RK3399
Documentation/devicetree/bindings/mmc/sdhci-st.txt+0−3
@@ -63,7 +63,6 @@ Example: · 62 unmodified lines
6363
6464 mmc0: sdhci@fe81e000 {
6565 compatible = "st,sdhci";
66− status = "disabled";
6766 reg = <0xfe81e000 0x1000>;
6867 interrupts = <GIC_SPI 127 IRQ_TYPE_NONE>;
6968 interrupt-names = "mmcirq";
@@ -77,7 +76,6 @@ mmc0: sdhci@fe81e000 { · 7 unmodified lines
7776
7877 mmc1: sdhci@09080000 {
7978 compatible = "st,sdhci-stih407", "st,sdhci";
80− status = "disabled";
8179 reg = <0x09080000 0x7ff>;
8280 reg-names = "mmc";
8381 interrupts = <GIC_SPI 90 IRQ_TYPE_NONE>;
@@ -94,7 +92,6 @@ mmc1: sdhci@09080000 { · 10 unmodified lines
9492
9593 mmc0: sdhci@09060000 {
9694 compatible = "st,sdhci-stih407", "st,sdhci";
97− status = "disabled";
9895 reg = <0x09060000 0x7ff>, <0x9061008 0x20>;
9996 reg-names = "mmc", "top-mmc-delay";
10097 interrupts = <GIC_SPI 92 IRQ_TYPE_NONE>;
Documentation/devicetree/bindings/mmc/sunxi-mmc.txt+1−0
@@ -12,6 +12,7 @@ Required properties: · 11 unmodified lines
1212 * "allwinner,sun4i-a10-mmc"
1313 * "allwinner,sun5i-a13-mmc"
1414 * "allwinner,sun7i-a20-mmc"
15+ * "allwinner,sun8i-a83t-emmc"
1516 * "allwinner,sun9i-a80-mmc"
1617 * "allwinner,sun50i-a64-emmc"
1718 * "allwinner,sun50i-a64-mmc"
Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt+37−15
@@ -1,33 +1,55 @@
1−* TI Highspeed MMC host controller for OMAP
1+* TI Highspeed MMC host controller for OMAP and 66AK2G family.
22
3−The Highspeed MMC Host Controller on TI OMAP family
3+The Highspeed MMC Host Controller on TI OMAP and 66AK2G family
44 provides an interface for MMC, SD, and SDIO types of memory cards.
55
66 This file documents differences between the core properties described
77 by mmc.txt and the properties used by the omap_hsmmc driver.
88
99 Required properties:
10+--------------------
1011 - compatible:
1112 Should be "ti,omap2-hsmmc", for OMAP2 controllers
1213 Should be "ti,omap3-hsmmc", for OMAP3 controllers
1314 Should be "ti,omap3-pre-es3-hsmmc" for OMAP3 controllers pre ES3.0
1415 Should be "ti,omap4-hsmmc", for OMAP4 controllers
1516 Should be "ti,am33xx-hsmmc", for AM335x controllers
16−- ti,hwmods: Must be "mmc<n>", n is controller instance starting 1
17+ Should be "ti,k2g-hsmmc", "ti,omap4-hsmmc" for 66AK2G controllers.
18+
19+SoC specific required properties:
20+---------------------------------
21+The following are mandatory properties for OMAPs, AM33xx and AM43xx SoCs only:
22+- ti,hwmods: Must be "mmc<n>", n is controller instance starting 1.
23+
24+The following are mandatory properties for 66AK2G SoCs only:
25+- power-domains:Should contain a phandle to a PM domain provider node
26+ and an args specifier containing the MMC device id
27+ value. This property is as per the binding,
28+ Documentation/devicetree/bindings/soc/ti/sci-pm-domain.txt
29+- clocks: Must contain an entry for each entry in clock-names. Should
30+ be defined as per the he appropriate clock bindings consumer
31+ usage in Documentation/devicetree/bindings/clock/ti,sci-clk.txt
32+- clock-names: Shall be "fck" for the functional clock,
33+ and "mmchsdb_fck" for the debounce clock.
34+
1735
1836 Optional properties:
19−ti,dual-volt: boolean, supports dual voltage cards
20−<supply-name>-supply: phandle to the regulator device tree node
21−"supply-name" examples are "vmmc", "vmmc_aux"(deprecated)/"vqmmc" etc
22−ti,non-removable: non-removable slot (like eMMC)
23−ti,needs-special-reset: Requires a special softreset sequence
24−ti,needs-special-hs-handling: HSMMC IP needs special setting for handling High Speed
25−dmas: List of DMA specifiers with the controller specific format
26−as described in the generic DMA client binding. A tx and rx
27−specifier is required.
28−dma-names: List of DMA request names. These strings correspond
29−1:1 with the DMA specifiers listed in dmas. The string naming is
30−to be "rx" and "tx" for RX and TX DMA requests, respectively.
37+--------------------
38+- ti,dual-volt: boolean, supports dual voltage cards
39+- <supply-name>-supply: phandle to the regulator device tree node
40+ "supply-name" examples are "vmmc",
41+ "vmmc_aux"(deprecated)/"vqmmc" etc
42+- ti,non-removable: non-removable slot (like eMMC)
43+- ti,needs-special-reset: Requires a special softreset sequence
44+- ti,needs-special-hs-handling: HSMMC IP needs special setting
45+ for handling High Speed
46+- dmas: List of DMA specifiers with the controller specific
47+ format as described in the generic DMA client
48+ binding. A tx and rx specifier is required.
49+- dma-names: List of DMA request names. These strings correspond
50+ 1:1 with the DMA specifiers listed in dmas.
51+ The string naming is to be "rx" and "tx" for
52+ RX and TX DMA requests, respectively.
3153
3254 Examples:
3355
Documentation/devicetree/bindings/mmc/tmio_mmc.txt+4−4
@@ -15,6 +15,8 @@ Required properties: · 14 unmodified lines
1515 "renesas,sdhi-r7s72100" - SDHI IP on R7S72100 SoC
1616 "renesas,sdhi-r8a73a4" - SDHI IP on R8A73A4 SoC
1717 "renesas,sdhi-r8a7740" - SDHI IP on R8A7740 SoC
18+ "renesas,sdhi-r8a7743" - SDHI IP on R8A7743 SoC
19+ "renesas,sdhi-r8a7745" - SDHI IP on R8A7745 SoC
1820 "renesas,sdhi-r8a7778" - SDHI IP on R8A7778 SoC
1921 "renesas,sdhi-r8a7779" - SDHI IP on R8A7779 SoC
2022 "renesas,sdhi-r8a7790" - SDHI IP on R8A7790 SoC
@@ -33,10 +35,8 @@ Required properties: · 12 unmodified lines
3335 If 2 clocks are specified by the hardware, you must name them as
3436 "core" and "cd". If the controller only has 1 clock, naming is not
3537 required.
36− Below is the number clocks for each supported SoC:
37− 1: SH73A0, R8A73A4, R8A7740, R8A7778, R8A7779, R8A7790
38− R8A7791, R8A7792, R8A7793, R8A7794, R8A7795, R8A7796
39− 2: R7S72100
38+ Devices which have more than 1 clock are listed below:
39+ 2: R7S72100
4040
4141 Optional properties:
4242 - toshiba,mmc-wrprotect-disable: write-protect detection is unavailable
Documentation/devicetree/bindings/mmc/zx-dw-mshc.txt+0−1
@@ -28,5 +28,4 @@ Example: · 27 unmodified lines
2828 max-frequency = <50000000>;
2929 cap-sdio-irq;
3030 cap-sd-highspeed;
31− status = "disabled";
3231 };
Documentation/devicetree/bindings/mtd/atmel-quadspi.txt+0−1
@@ -24,7 +24,6 @@ spi@f0020000 { · 23 unmodified lines
2424 #size-cells = <0>;
2525 pinctrl-names = "default";
2626 pinctrl-0 = <&pinctrl_spi0_default>;
27− status = "okay";
2827
2928 m25p80@0 {
3029 ...
Documentation/devicetree/bindings/mtd/mtk-quadspi.txt+0−1
@@ -37,7 +37,6 @@ nor_flash: spi@1100d000 { · 36 unmodified lines
3737 clock-names = "spi", "sf";
3838 #address-cells = <1>;
3939 #size-cells = <0>;
40− status = "disabled";
4140
4241 flash@0 {
4342 compatible = "jedec,spi-nor";
Documentation/devicetree/bindings/mtd/qcom_nandc.txt+59−6
@@ -1,11 +1,20 @@
11 * Qualcomm NAND controller
22
33 Required properties:
4−- compatible: should be "qcom,ipq806x-nand"
4+- compatible: must be one of the following:
5+ * "qcom,ipq806x-nand" - for EBI2 NAND controller being used in IPQ806x
6+ SoC and it uses ADM DMA
7+ * "qcom,ipq4019-nand" - for QPIC NAND controller v1.4.0 being used in
8+ IPQ4019 SoC and it uses BAM DMA
9+ * "qcom,ipq8074-nand" - for QPIC NAND controller v1.5.0 being used in
10+ IPQ8074 SoC and it uses BAM DMA
11+
512 - reg: MMIO address range
613 - clocks: must contain core clock and always on clock
714 - clock-names: must contain "core" for the core clock and "aon" for the
815 always on clock
16+
17+EBI2 specific properties:
918 - dmas: DMA specifier, consisting of a phandle to the ADM DMA
1019 controller node and the channel number to be used for
1120 NAND. Refer to dma.txt and qcom_adm.txt for more details
@@ -16,6 +25,12 @@ Required properties: · 4 unmodified lines
1625 - qcom,data-crci: must contain the ADM data type CRCI block instance
1726 number specified for the NAND controller on the given
1827 platform
28+
29+QPIC specific properties:
30+- dmas: DMA specifier, consisting of a phandle to the BAM DMA
31+ and the channel number to be used for NAND. Refer to
32+ dma.txt, qcom_bam_dma.txt for more details
33+- dma-names: must contain all 3 channel names : "tx", "rx", "cmd"
1934 - #address-cells: <1> - subnodes give the chip-select number
2035 - #size-cells: <0>
2136
@@ -26,7 +41,6 @@ chip-selects which (may) contain NAND flash chips. Their properties are as · 4 unmodified lines
2641 follows.
2742
2843 Required properties:
29−- compatible: should contain "qcom,nandcs"
3044 - reg: a single integer representing the chip-select
3145 number (e.g., 0, 1, 2, etc.)
3246 - #address-cells: see partition.txt
@@ -43,8 +57,8 @@ partition.txt for more detail. · 10 unmodified lines
4357
4458 Example:
4559
46−nand@1ac00000 {
47− compatible = "qcom,ebi2-nandc";
60+nand-controller@1ac00000 {
61+ compatible = "qcom,ipq806x-nand";
4862 reg = <0x1ac00000 0x800>;
4963
5064 clocks = <&gcc EBI2_CLK>,
@@ -59,8 +73,7 @@ nand@1ac00000 { · 8 unmodified lines
5973 #address-cells = <1>;
6074 #size-cells = <0>;
6175
62− nandcs@0 {
63− compatible = "qcom,nandcs";
76+ nand@0 {
6477 reg = <0>;
6578
6679 nand-ecc-strength = <4>;
@@ -84,3 +97,43 @@ nand@1ac00000 { · 17 unmodified lines
8497 };
8598 };
8699 };
100+
101+nand-controller@79b0000 {
102+ compatible = "qcom,ipq4019-nand";
103+ reg = <0x79b0000 0x1000>;
104+
105+ clocks = <&gcc GCC_QPIC_CLK>,
106+ <&gcc GCC_QPIC_AHB_CLK>;
107+ clock-names = "core", "aon";
108+
109+ dmas = <&qpicbam 0>,
110+ <&qpicbam 1>,
111+ <&qpicbam 2>;
112+ dma-names = "tx", "rx", "cmd";
113+
114+ #address-cells = <1>;
115+ #size-cells = <0>;
116+
117+ nand@0 {
118+ reg = <0>;
119+ nand-ecc-strength = <4>;
120+ nand-ecc-step-size = <512>;
121+ nand-bus-width = <8>;
122+
123+ partitions {
124+ compatible = "fixed-partitions";
125+ #address-cells = <1>;
126+ #size-cells = <1>;
127+
128+ partition@0 {
129+ label = "boot-nand";
130+ reg = <0 0x58a0000>;
131+ };
132+
133+ partition@58a0000 {
134+ label = "fs-nand";
135+ reg = <0x58a0000 0x4000000>;
136+ };
137+ };
138+ };
139+};
Documentation/devicetree/bindings/mtd/st-fsm.txt+0−1
@@ -21,6 +21,5 @@ Example: · 20 unmodified lines
2121 st,syscfg = <&syscfg_rear>;
2222 st,boot-device-reg = <0x958>;
2323 st,boot-device-spi = <0x1a>;
24− status = "okay";
2524 };
2625
Documentation/devicetree/bindings/mtd/sunxi-nand.txt+0−1
@@ -41,7 +41,6 @@ nfc: nand@01c03000 { · 40 unmodified lines
4141 #size-cells = <0>;
4242 pinctrl-names = "default";
4343 pinctrl-0 = <&nand_pins_a &nand_cs0_pins_a &nand_rb0_pins_a>;
44− status = "okay";
4544
4645 nand@0 {
4746 reg = <0>;
Documentation/devicetree/bindings/net/anarion-gmac.txt+25−0
@@ -0,0 +1,25 @@
1+* Adaptrum Anarion ethernet controller
2+
3+This device is a platform glue layer for stmmac.
4+Please see stmmac.txt for the other unchanged properties.
5+
6+Required properties:
7+ - compatible: Should be "adaptrum,anarion-gmac", "snps,dwmac"
8+ - phy-mode: Should be "rgmii". Other modes are not currently supported.
9+
10+
11+Examples:
12+
13+ gmac1: ethernet@f2014000 {
14+ compatible = "adaptrum,anarion-gmac", "snps,dwmac";
15+ reg = <0xf2014000 0x4000>, <0xf2018100 8>;
16+
17+ interrupt-parent = <&core_intc>;
18+ interrupts = <21>;
19+ interrupt-names = "macirq";
20+
21+ clocks = <&core_clk>;
22+ clock-names = "stmmaceth";
23+
24+ phy-mode = "rgmii";
25+ };
Documentation/devicetree/bindings/net/brcm,amac.txt+0−1
@@ -27,5 +27,4 @@ amac0: ethernet@18022000 { · 26 unmodified lines
2727 <0x18110000 0x1000>;
2828 reg-names = "amac_base", "idm_base";
2929 interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
30− status = "disabled";
3130 };
Documentation/devicetree/bindings/net/broadcom-bluetooth.txt+35−0
@@ -0,0 +1,35 @@
1+Broadcom Bluetooth Chips
2+---------------------
3+
4+This documents the binding structure and common properties for serial
5+attached Broadcom devices.
6+
7+Serial attached Broadcom devices shall be a child node of the host UART
8+device the slave device is attached to.
9+
10+Required properties:
11+
12+ - compatible: should contain one of the following:
13+ * "brcm,bcm43438-bt"
14+
15+Optional properties:
16+
17+ - max-speed: see Documentation/devicetree/bindings/serial/slave-device.txt
18+ - shutdown-gpios: GPIO specifier, used to enable the BT module
19+ - device-wakeup-gpios: GPIO specifier, used to wakeup the controller
20+ - host-wakeup-gpios: GPIO specifier, used to wakeup the host processor
21+ - clocks: clock specifier if external clock provided to the controller
22+ - clock-names: should be "extclk"
23+
24+
25+Example:
26+
27+&uart2 {
28+ pinctrl-names = "default";
29+ pinctrl-0 = <&uart2_pins>;
30+
31+ bluetooth {
32+ compatible = "brcm,bcm43438-bt";
33+ max-speed = <921600>;
34+ };
35+};
Documentation/devicetree/bindings/net/btusb.txt+0−1
@@ -29,7 +29,6 @@ Example: · 28 unmodified lines
2929 Following example uses irq pin number 3 of gpio0 for out of band wake-on-bt:
3030
3131 &usb_host1_ehci {
32− status = "okay";
3332 #address-cells = <1>;
3433 #size-cells = <0>;
3534
Documentation/devicetree/bindings/net/can/c_can.txt+12−1
@@ -11,9 +11,20 @@ Required properties: · 10 unmodified lines
1111 - interrupts : property with a value describing the interrupt
1212 number
1313
14−Optional properties:
14+The following are mandatory properties for DRA7x, AM33xx and AM43xx SoCs only:
1515 - ti,hwmods : Must be "d_can<n>" or "c_can<n>", n being the
1616 instance number
17+
18+The following are mandatory properties for Keystone 2 66AK2G SoCs only:
19+- power-domains : Should contain a phandle to a PM domain provider node
20+ and an args specifier containing the DCAN device id
21+ value. This property is as per the binding,
22+ Documentation/devicetree/bindings/soc/ti/sci-pm-domain.txt
23+- clocks : CAN functional clock phandle. This property is as per the
24+ binding,
25+ Documentation/devicetree/bindings/clock/ti,sci-clk.txt
26+
27+Optional properties:
1728 - syscon-raminit : Handle to system control region that contains the
1829 RAMINIT register, register offset to the RAMINIT
1930 register and the CAN instance number (0 offset).
Documentation/devicetree/bindings/net/can/m_can.txt+0−1
@@ -56,7 +56,6 @@ m_can1: can@020e8000 { · 55 unmodified lines
5656 <&clks IMX6SX_CLK_CANFD>;
5757 clock-names = "hclk", "cclk";
5858 bosch,mram-cfg = <0x0 0 0 32 0 0 0 1>;
59− status = "disabled";
6059 };
6160
6261 Board dts:
Documentation/devicetree/bindings/net/dsa/ksz.txt+0−2
@@ -24,7 +24,6 @@ Ethernet switch connected via SPI to the host, CPU port wired to eth0: · 23 unmodified lines
2424 pinctrl-0 = <&pinctrl_spi_ksz>;
2525 cs-gpios = <&pioC 25 0>;
2626 id = <1>;
27− status = "okay";
2827
2928 ksz9477: ksz9477@0 {
3029 compatible = "microchip,ksz9477";
@@ -34,7 +33,6 @@ Ethernet switch connected via SPI to the host, CPU port wired to eth0: · 3 unmodified lines
3433 spi-cpha;
3534 spi-cpol;
3635
37− status = "okay";
3836 ports {
3937 #address-cells = <1>;
4038 #size-cells = <0>;
Documentation/devicetree/bindings/net/dsa/lan9303.txt+0−3
@@ -27,7 +27,6 @@ Example: · 26 unmodified lines
2727 I2C managed mode:
2828
2929 master: masterdevice@X {
30− status = "okay";
3130
3231 fixed-link { /* RMII fixed link to LAN9303 */
3332 speed = <100>;
@@ -38,7 +37,6 @@ I2C managed mode: · 4 unmodified lines
3837 switch: switch@a {
3938 compatible = "smsc,lan9303-i2c";
4039 reg = <0xa>;
41− status = "okay";
4240 reset-gpios = <&gpio7 6 GPIO_ACTIVE_LOW>;
4341 reset-duration = <200>;
4442
@@ -67,7 +65,6 @@ I2C managed mode: · 22 unmodified lines
6765 MDIO managed mode:
6866
6967 master: masterdevice@X {
70− status = "okay";
7168 phy-handle = <&switch>;
7269
7370 mdio {
Documentation/devicetree/bindings/net/dwmac-sun8i.txt+0−84
@@ -1,84 +0,0 @@
1−* Allwinner sun8i GMAC ethernet controller
2−
3−This device is a platform glue layer for stmmac.
4−Please see stmmac.txt for the other unchanged properties.
5−
6−Required properties:
7−- compatible: should be one of the following string:
8− "allwinner,sun8i-a83t-emac"
9− "allwinner,sun8i-h3-emac"
10− "allwinner,sun8i-v3s-emac"
11− "allwinner,sun50i-a64-emac"
12−- reg: address and length of the register for the device.
13−- interrupts: interrupt for the device
14−- interrupt-names: should be "macirq"
15−- clocks: A phandle to the reference clock for this device
16−- clock-names: should be "stmmaceth"
17−- resets: A phandle to the reset control for this device
18−- reset-names: should be "stmmaceth"
19−- phy-mode: See ethernet.txt
20−- phy-handle: See ethernet.txt
21−- #address-cells: shall be 1
22−- #size-cells: shall be 0
23−- syscon: A phandle to the syscon of the SoC with one of the following
24− compatible string:
25− - allwinner,sun8i-h3-system-controller
26− - allwinner,sun8i-v3s-system-controller
27− - allwinner,sun50i-a64-system-controller
28− - allwinner,sun8i-a83t-system-controller
29−
30−Optional properties:
31−- allwinner,tx-delay-ps: TX clock delay chain value in ps. Range value is 0-700. Default is 0)
32−- allwinner,rx-delay-ps: RX clock delay chain value in ps. Range value is 0-3100. Default is 0)
33−Both delay properties need to be a multiple of 100. They control the delay for
34−external PHY.
35−
36−Optional properties for the following compatibles:
37− - "allwinner,sun8i-h3-emac",
38− - "allwinner,sun8i-v3s-emac":
39−- allwinner,leds-active-low: EPHY LEDs are active low
40−
41−Required child node of emac:
42−- mdio bus node: should be named mdio
43−
44−Required properties of the mdio node:
45−- #address-cells: shall be 1
46−- #size-cells: shall be 0
47−
48−The device node referenced by "phy" or "phy-handle" should be a child node
49−of the mdio node. See phy.txt for the generic PHY bindings.
50−
51−Required properties of the phy node with the following compatibles:
52− - "allwinner,sun8i-h3-emac",
53− - "allwinner,sun8i-v3s-emac":
54−- clocks: a phandle to the reference clock for the EPHY
55−- resets: a phandle to the reset control for the EPHY
56−
57−Example:
58−
59−emac: ethernet@1c0b000 {
60− compatible = "allwinner,sun8i-h3-emac";
61− syscon = <&syscon>;
62− reg = <0x01c0b000 0x104>;
63− interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
64− interrupt-names = "macirq";
65− resets = <&ccu RST_BUS_EMAC>;
66− reset-names = "stmmaceth";
67− clocks = <&ccu CLK_BUS_EMAC>;
68− clock-names = "stmmaceth";
69− #address-cells = <1>;
70− #size-cells = <0>;
71−
72− phy-handle = <&int_mii_phy>;
73− phy-mode = "mii";
74− allwinner,leds-active-low;
75− mdio: mdio {
76− #address-cells = <1>;
77− #size-cells = <0>;
78− int_mii_phy: ethernet-phy@1 {
79− reg = <1>;
80− clocks = <&ccu CLK_BUS_EPHY>;
81− resets = <&ccu RST_BUS_EPHY>;
82− };
83− };
84−};
Documentation/devicetree/bindings/net/ethernet.txt+4−0
@@ -1,5 +1,9 @@
11 The following properties are common to the Ethernet controllers:
22
3+NOTE: All 'phy*' properties documented below are Ethernet specific. For the
4+generic PHY 'phys' property, see
5+Documentation/devicetree/bindings/phy/phy-bindings.txt.
6+
37 - local-mac-address: array of 6 bytes, specifies the MAC address that was
48 assigned to the network device;
59 - mac-address: array of 6 bytes, specifies the MAC address that was last used by
Documentation/devicetree/bindings/net/ftgmac100.txt+0−1
@@ -30,6 +30,5 @@ Example: · 29 unmodified lines
3030 compatible = "aspeed,ast2500-mac", "faraday,ftgmac100";
3131 reg = <0x1e660000 0x180>;
3232 interrupts = <2>;
33− status = "okay";
3433 use-ncsi;
3534 };
Documentation/devicetree/bindings/net/marvell-armada-370-neta.txt+0−1
@@ -41,7 +41,6 @@ ethernet@70000 { · 40 unmodified lines
4141 interrupts = <8>;
4242 clocks = <&gate_clk 4>;
4343 tx-csum-limit = <9800>
44− status = "okay";
4544 phy = <&phy0>;
4645 phy-mode = "rgmii-id";
4746 buffer-manager = <&bm>;
Documentation/devicetree/bindings/net/marvell-bt-8xxx.txt+0−2
@@ -44,7 +44,6 @@ Example for SDIO device follows (calibration data is also available in · 43 unmodified lines
4444 below example).
4545
4646 &mmc3 {
47− status = "okay";
4847 vmmc-supply = <&wlan_en_reg>;
4948 bus-width = <4>;
5049 cap-power-off-card;
@@ -70,7 +69,6 @@ below example). · 19 unmodified lines
7069 Example for USB device:
7170
7271 &usb_host1_ohci {
73− status = "okay";
7472 #address-cells = <1>;
7573 #size-cells = <0>;
7674
Documentation/devicetree/bindings/net/marvell-neta-bm.txt+0−2
@@ -31,7 +31,6 @@ bm: bm@c8000 { · 30 unmodified lines
3131 reg = <0xc8000 0xac>;
3232 clocks = <&gateclk 13>;
3333 internal-mem = <&bm_bppi>;
34− status = "okay";
3534 pool2,capacity = <4096>;
3635 pool1,pkt-size = <512>;
3736 };
@@ -45,5 +44,4 @@ bm_bppi: bm-bppi { · 7 unmodified lines
4544 #address-cells = <1>;
4645 #size-cells = <1>;
4746 clocks = <&gateclk 13>;
48− status = "okay";
4947 };
Documentation/devicetree/bindings/net/marvell-pp2.txt+26−6
@@ -41,6 +41,11 @@ Optional properties (port): · 40 unmodified lines
4141 - marvell,loopback: port is loopback mode
4242 - phy: a phandle to a phy node defining the PHY address (as the reg
4343 property, a single integer).
44+- interrupt-names: if more than a single interrupt for rx is given, must
45+ be the name associated to the interrupts listed. Valid
46+ names are: "tx-cpu0", "tx-cpu1", "tx-cpu2", "tx-cpu3",
47+ "rx-shared", "link".
48+- marvell,system-controller: a phandle to the system controller.
4449
4550 Example for marvell,armada-375-pp2:
4651
@@ -52,12 +57,10 @@ ethernet@f0000 { · 5 unmodified lines
5257 <0xc5000 0x100>;
5358 clocks = <&gateclk 3>, <&gateclk 19>;
5459 clock-names = "pp_clk", "gop_clk";
55− status = "okay";
5660
5761 eth0: eth0@c4000 {
5862 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
5963 port-id = <0>;
60− status = "okay";
6164 phy = <&phy0>;
6265 phy-mode = "gmii";
6366 };
@@ -65,7 +68,6 @@ ethernet@f0000 { · 1 unmodified line
6568 eth1: eth1@c5000 {
6669 interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
6770 port-id = <1>;
68− status = "okay";
6971 phy = <&phy3>;
7072 phy-mode = "gmii";
7173 };
@@ -80,19 +82,37 @@ cpm_ethernet: ethernet@0 { · 8 unmodified lines
8082 clock-names = "pp_clk", "gop_clk", "gp_clk";
8183
8284 eth0: eth0 {
83− interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
85+ interrupts = <ICU_GRP_NSR 39 IRQ_TYPE_LEVEL_HIGH>,
86+ <ICU_GRP_NSR 43 IRQ_TYPE_LEVEL_HIGH>,
87+ <ICU_GRP_NSR 47 IRQ_TYPE_LEVEL_HIGH>,
88+ <ICU_GRP_NSR 51 IRQ_TYPE_LEVEL_HIGH>,
89+ <ICU_GRP_NSR 55 IRQ_TYPE_LEVEL_HIGH>;
90+ interrupt-names = "tx-cpu0", "tx-cpu1", "tx-cpu2",
91+ "tx-cpu3", "rx-shared";
8492 port-id = <0>;
8593 gop-port-id = <0>;
8694 };
8795
8896 eth1: eth1 {
89− interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
97+ interrupts = <ICU_GRP_NSR 40 IRQ_TYPE_LEVEL_HIGH>,
98+ <ICU_GRP_NSR 44 IRQ_TYPE_LEVEL_HIGH>,
99+ <ICU_GRP_NSR 48 IRQ_TYPE_LEVEL_HIGH>,
100+ <ICU_GRP_NSR 52 IRQ_TYPE_LEVEL_HIGH>,
101+ <ICU_GRP_NSR 56 IRQ_TYPE_LEVEL_HIGH>;
102+ interrupt-names = "tx-cpu0", "tx-cpu1", "tx-cpu2",
103+ "tx-cpu3", "rx-shared";
90104 port-id = <1>;
91105 gop-port-id = <2>;
92106 };
93107
94108 eth2: eth2 {
95− interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
109+ interrupts = <ICU_GRP_NSR 41 IRQ_TYPE_LEVEL_HIGH>,
110+ <ICU_GRP_NSR 45 IRQ_TYPE_LEVEL_HIGH>,
111+ <ICU_GRP_NSR 49 IRQ_TYPE_LEVEL_HIGH>,
112+ <ICU_GRP_NSR 53 IRQ_TYPE_LEVEL_HIGH>,
113+ <ICU_GRP_NSR 57 IRQ_TYPE_LEVEL_HIGH>;
114+ interrupt-names = "tx-cpu0", "tx-cpu1", "tx-cpu2",
115+ "tx-cpu3", "rx-shared";
96116 port-id = <2>;
97117 gop-port-id = <3>;
98118 };
Documentation/devicetree/bindings/net/mediatek-net.txt+13−5
@@ -7,24 +7,32 @@ have dual GMAC each represented by a child node.. · 6 unmodified lines
77 * Ethernet controller node
88
99 Required properties:
10−- compatible: Should be "mediatek,mt2701-eth"
10+- compatible: Should be
11+ "mediatek,mt2701-eth": for MT2701 SoC
12+ "mediatek,mt7623-eth", "mediatek,mt2701-eth": for MT7623 SoC
13+ "mediatek,mt7622-eth": for MT7622 SoC
1114 - reg: Address and length of the register set for the device
1215 - interrupts: Should contain the three frame engines interrupts in numeric
1316 order. These are fe_int0, fe_int1 and fe_int2.
1417 - clocks: the clock used by the core
1518 - clock-names: the names of the clock listed in the clocks property. These are
16− "ethif", "esw", "gp2", "gp1"
19+ "ethif", "esw", "gp2", "gp1" : For MT2701 and MT7623 SoC
20+ "ethif", "esw", "gp0", "gp1", "gp2", "sgmii_tx250m", "sgmii_rx250m",
21+ "sgmii_cdr_ref", "sgmii_cdr_fb", "sgmii_ck", "eth2pll" : For MT7622 SoC
1722 - power-domains: phandle to the power domain that the ethernet is part of
18−- resets: Should contain a phandle to the ethsys reset signal
19−- reset-names: Should contain the reset signal name "eth"
23+- resets: Should contain phandles to the ethsys reset signals
24+- reset-names: Should contain the names of reset signal listed in the resets
25+ property
26+ These are "fe", "gmac" and "ppe"
2027 - mediatek,ethsys: phandle to the syscon node that handles the port setup
28+- mediatek,sgmiisys: phandle to the syscon node that handles the SGMII setup
29+ which is required for those SoCs equipped with SGMII such as MT7622 SoC.
2130 - mediatek,pctl: phandle to the syscon node that handles the ports slew rate
2231 and driver current
2332
2433 Optional properties:
2534 - interrupt-parent: Should be the phandle for the interrupt controller
2635 that services interrupts for this device
27−
2836 * Ethernet MAC node
2937
3038 Required properties:
Documentation/devicetree/bindings/net/meson-dwmac.txt+0−1
@@ -66,5 +66,4 @@ Example for GXBB: · 65 unmodified lines
6666 <&clkc CLKID_MPLL2>;
6767 clock-names = "stmmaceth", "clkin0", "clkin1";
6868 phy-mode = "rgmii";
69− status = "disabled";
7069 };
Documentation/devicetree/bindings/net/micrel-ksz90x1.txt+0−1
@@ -69,7 +69,6 @@ Examples: · 68 unmodified lines
6969 };
7070 };
7171 ethernet@70000 {
72− status = "okay";
7372 phy = <&phy0>;
7473 phy-mode = "rgmii-id";
7574 };
Documentation/devicetree/bindings/net/microchip,enc28j60.txt+0−1
@@ -33,7 +33,6 @@ Example (for NXP i.MX28 with pin control stuff for GPIO irq): · 32 unmodified lines
3333 compatible = "fsl,imx28-spi";
3434 pinctrl-names = "default";
3535 pinctrl-0 = <&spi2_pins_b &spi2_sck_cfg>;
36− status = "okay";
3736
3837 enc28j60: ethernet@0 {
3938 compatible = "microchip,enc28j60";
Documentation/devicetree/bindings/net/nfc/nfcmrvl.txt+0−2
@@ -25,7 +25,6 @@ Optional I2C-based chip specific properties: · 24 unmodified lines
2525 Example (for ARM-based BeagleBoard Black with 88W8887 on UART5):
2626
2727 &uart5 {
28− status = "okay";
2928
3029 nfcmrvluart: nfcmrvluart@5 {
3130 compatible = "marvell,nfc-uart";
@@ -41,7 +40,6 @@ Example (for ARM-based BeagleBoard Black with 88W8887 on UART5): · 9 unmodified lines
4140 Example (for ARM-based BeagleBoard Black with 88W8887 on I2C1):
4241
4342 &i2c1 {
44− status = "okay";
4543 clock-frequency = <400000>;
4644
4745 nfcmrvli2c0: i2c@1 {
Documentation/devicetree/bindings/net/nfc/nxp-nci.txt+0−1
@@ -17,7 +17,6 @@ Example (for ARM-based BeagleBone with NPC100 NFC controller on I2C2): · 16 unmodified lines
1717
1818 &i2c2 {
1919
20− status = "okay";
2120
2221 npc100: npc100@29 {
2322
Documentation/devicetree/bindings/net/nfc/pn533-i2c.txt+0−1
@@ -15,7 +15,6 @@ Example (for ARM-based BeagleBone with PN532 on I2C2): · 14 unmodified lines
1515
1616 &i2c2 {
1717
18− status = "okay";
1918
2019 pn532: pn532@24 {
2120
Documentation/devicetree/bindings/net/nfc/pn544.txt+0−1
@@ -17,7 +17,6 @@ Example (for ARM-based BeagleBone with PN544 on I2C2): · 16 unmodified lines
1717
1818 &i2c2 {
1919
20− status = "okay";
2120
2221 pn544: pn544@28 {
2322
Documentation/devicetree/bindings/net/nfc/s3fwrn5.txt+0−1
@@ -12,7 +12,6 @@ Required properties: · 11 unmodified lines
1212 Example:
1313
1414 &hsi2c_4 {
15− status = "okay";
1615 s3fwrn5@27 {
1716 compatible = "samsung,s3fwrn5-i2c";
1817
Documentation/devicetree/bindings/net/nfc/st-nci-i2c.txt+0−1
@@ -20,7 +20,6 @@ Example (for ARM-based BeagleBoard xM with ST21NFCB on I2C2): · 19 unmodified lines
2020
2121 &i2c2 {
2222
23− status = "okay";
2423
2524 st21nfcb: st21nfcb@8 {
2625
Documentation/devicetree/bindings/net/nfc/st-nci-spi.txt+0−1
@@ -19,7 +19,6 @@ Example (for ARM-based BeagleBoard xM with ST21NFCB on SPI4): · 18 unmodified lines
1919
2020 &mcspi4 {
2121
22− status = "okay";
2322
2423 st21nfcb: st21nfcb@0 {
2524
Documentation/devicetree/bindings/net/nfc/st21nfca.txt+0−1
@@ -20,7 +20,6 @@ Example (for ARM-based BeagleBoard xM with ST21NFCA on I2C2): · 19 unmodified lines
2020
2121 &i2c2 {
2222
23− status = "okay";
2423
2524 st21nfca: st21nfca@1 {
2625
Documentation/devicetree/bindings/net/nfc/st95hf.txt+0−2
@@ -35,12 +35,10 @@ spi@9840000 { · 34 unmodified lines
3535 #address-cells = <1>;
3636 #size-cells = <0>;
3737 cs-gpios = <&pio0 4>;
38− status = "okay";
3938
4039 st95hf@0{
4140 reg = <0>;
4241 compatible = "st,st95hf";
43− status = "okay";
4442 spi-max-frequency = <1000000>;
4543 enable-gpio = <&pio4 0>;
4644 interrupt-parent = <&pio0>;
Documentation/devicetree/bindings/net/nfc/trf7970a.txt+0−2
@@ -23,7 +23,6 @@ Optional SoC Specific Properties: · 22 unmodified lines
2323 Example (for ARM-based BeagleBone with TRF7970A on SPI1):
2424
2525 &spi1 {
26− status = "okay";
2726
2827 nfc@0 {
2928 compatible = "ti,trf7970a";
@@ -41,6 +40,5 @@ Example (for ARM-based BeagleBone with TRF7970A on SPI1): · 11 unmodified lines
4140 irq-status-read-quirk;
4241 en2-rf-quirk;
4342 clock-frequency = <27120000>;
44− status = "okay";
4543 };
4644 };
Documentation/devicetree/bindings/net/oxnas-dwmac.txt+0−1
@@ -35,5 +35,4 @@ etha: ethernet@40400000 { · 34 unmodified lines
3535 /* Regmap for sys registers */
3636 oxsemi,sys-ctrl = <&sys>;
3737
38− status = "disabled";
3938 };
Documentation/devicetree/bindings/net/phy.txt+8−7
@@ -2,11 +2,7 @@ PHY nodes · 1 unmodified line
22
33 Required properties:
44
5− - interrupts : <a b> where a is the interrupt number and b is a
6− field that represents an encoding of the sense and level
7− information for the interrupt. This should be encoded based on
8− the information in section 2) depending on the type of interrupt
9− controller you have.
5+ - interrupts : interrupt specifier for the sole interrupt.
106 - interrupt-parent : the phandle for the interrupt controller that
117 services interrupts for this device.
128 - reg : The ID number for the phy, usually a small integer
@@ -52,11 +48,16 @@ Optional Properties: · 39 unmodified lines
5248 Mark the corresponding energy efficient ethernet mode as broken and
5349 request the ethernet to stop advertising it.
5450
51+- phy-is-integrated: If set, indicates that the PHY is integrated into the same
52+ physical package as the Ethernet MAC. If needed, muxers should be configured
53+ to ensure the integrated PHY is used. The absence of this property indicates
54+ the muxers should be configured so that the external PHY is used.
55+
5556 Example:
5657
5758 ethernet-phy@0 {
5859 compatible = "ethernet-phy-id0141.0e90", "ethernet-phy-ieee802.3-c22";
59− interrupt-parent = <40000>;
60− interrupts = <35 1>;
60+ interrupt-parent = <&PIC>;
61+ interrupts = <35 IRQ_TYPE_EDGE_RISING>;
6162 reg = <0>;
6263 };
Documentation/devicetree/bindings/net/qca,qca7000.txt+0−2
@@ -41,7 +41,6 @@ ssp2: spi@80014000 { · 40 unmodified lines
4141 compatible = "fsl,imx28-spi";
4242 pinctrl-names = "default";
4343 pinctrl-0 = <&spi2_pins_a>;
44− status = "okay";
4544
4645 qca7000: ethernet@0 {
4746 compatible = "qca,qca7000";
@@ -78,7 +77,6 @@ auart0: serial@8006a000 { · 30 unmodified lines
7877 reg = <0x8006a000 0x2000>;
7978 pinctrl-names = "default";
8079 pinctrl-0 = <&auart0_2pins_a>;
81− status = "okay";
8280
8381 qca7000: ethernet {
8482 compatible = "qca,qca7000";
Documentation/devicetree/bindings/net/renesas,ravb.txt+18−12
@@ -4,19 +4,25 @@ This file provides information on what the device node for the Ethernet AVB · 3 unmodified lines
44 interface contains.
55
66 Required properties:
7−- compatible: "renesas,etheravb-r8a7790" if the device is a part of R8A7790 SoC.
8− "renesas,etheravb-r8a7791" if the device is a part of R8A7791 SoC.
9− "renesas,etheravb-r8a7792" if the device is a part of R8A7792 SoC.
10− "renesas,etheravb-r8a7793" if the device is a part of R8A7793 SoC.
11− "renesas,etheravb-r8a7794" if the device is a part of R8A7794 SoC.
12− "renesas,etheravb-r8a7795" if the device is a part of R8A7795 SoC.
13− "renesas,etheravb-r8a7796" if the device is a part of R8A7796 SoC.
14− "renesas,etheravb-rcar-gen2" for generic R-Car Gen 2 compatible interface.
15− "renesas,etheravb-rcar-gen3" for generic R-Car Gen 3 compatible interface.
7+- compatible: Must contain one or more of the following:
8+ - "renesas,etheravb-r8a7743" for the R8A7743 SoC.
9+ - "renesas,etheravb-r8a7745" for the R8A7745 SoC.
10+ - "renesas,etheravb-r8a7790" for the R8A7790 SoC.
11+ - "renesas,etheravb-r8a7791" for the R8A7791 SoC.
12+ - "renesas,etheravb-r8a7792" for the R8A7792 SoC.
13+ - "renesas,etheravb-r8a7793" for the R8A7793 SoC.
14+ - "renesas,etheravb-r8a7794" for the R8A7794 SoC.
15+ - "renesas,etheravb-rcar-gen2" as a fallback for the above
16+ R-Car Gen2 and RZ/G1 devices.
1617
17− When compatible with the generic version, nodes must list the
18− SoC-specific version corresponding to the platform first
19− followed by the generic version.
18+ - "renesas,etheravb-r8a7795" for the R8A7795 SoC.
19+ - "renesas,etheravb-r8a7796" for the R8A7796 SoC.
20+ - "renesas,etheravb-rcar-gen3" as a fallback for the above
21+ R-Car Gen3 devices.
22+
23+ When compatible with the generic version, nodes must list the
24+ SoC-specific version corresponding to the platform first followed by
25+ the generic version.
2026
2127 - reg: offset and length of (1) the register block and (2) the stream buffer.
2228 - interrupts: A list of interrupt-specifiers, one for each entry in
Documentation/devicetree/bindings/net/rockchip-dwmac.txt+1−1
@@ -10,6 +10,7 @@ Required properties: · 9 unmodified lines
1010 "rockchip,rk3366-gmac": found on RK3366 SoCs
1111 "rockchip,rk3368-gmac": found on RK3368 SoCs
1212 "rockchip,rk3399-gmac": found on RK3399 SoCs
13+ "rockchip,rv1108-gmac": found on RV1108 SoCs
1314 - reg: addresses and length of the register sets for the device.
1415 - interrupts: Should contain the GMAC interrupts.
1516 - interrupt-names: Should contain the interrupt names "macirq".
@@ -70,5 +71,4 @@ gmac: ethernet@ff290000 { · 54 unmodified lines
7071 tx_delay = <0x30>;
7172 rx_delay = <0x10>;
7273
73− status = "ok";
7474 };
Documentation/devicetree/bindings/net/sff,sfp.txt+76−0
@@ -0,0 +1,76 @@
1+Small Form Factor (SFF) Committee Small Form-factor Pluggable (SFP)
2+Transceiver
3+
4+Required properties:
5+
6+- compatible : must be "sff,sfp"
7+
8+Optional Properties:
9+
10+- i2c-bus : phandle of an I2C bus controller for the SFP two wire serial
11+ interface
12+
13+- mod-def0-gpios : GPIO phandle and a specifier of the MOD-DEF0 (AKA Mod_ABS)
14+ module presence input gpio signal, active (module absent) high
15+
16+- los-gpios : GPIO phandle and a specifier of the Receiver Loss of Signal
17+ Indication input gpio signal, active (signal lost) high
18+
19+- tx-fault-gpios : GPIO phandle and a specifier of the Module Transmitter
20+ Fault input gpio signal, active (fault condition) high
21+
22+- tx-disable-gpios : GPIO phandle and a specifier of the Transmitter Disable
23+ output gpio signal, active (Tx disable) high
24+
25+- rate-select0-gpios : GPIO phandle and a specifier of the Rx Signaling Rate
26+ Select (AKA RS0) output gpio signal, low: low Rx rate, high: high Rx rate
27+
28+- rate-select1-gpios : GPIO phandle and a specifier of the Tx Signaling Rate
29+ Select (AKA RS1) output gpio signal (SFP+ only), low: low Tx rate, high:
30+ high Tx rate
31+
32+Example #1: Direct serdes to SFP connection
33+
34+sfp_eth3: sfp-eth3 {
35+ compatible = "sff,sfp";
36+ i2c-bus = <&sfp_1g_i2c>;
37+ los-gpios = <&cpm_gpio2 22 GPIO_ACTIVE_HIGH>;
38+ mod-def0-gpios = <&cpm_gpio2 21 GPIO_ACTIVE_LOW>;
39+ pinctrl-names = "default";
40+ pinctrl-0 = <&cpm_sfp_1g_pins &cps_sfp_1g_pins>;
41+ tx-disable-gpios = <&cps_gpio1 24 GPIO_ACTIVE_HIGH>;
42+ tx-fault-gpios = <&cpm_gpio2 19 GPIO_ACTIVE_HIGH>;
43+};
44+
45+&cps_emac3 {
46+ phy-names = "comphy";
47+ phys = <&cps_comphy5 0>;
48+ sfp = <&sfp_eth3>;
49+};
50+
51+Example #2: Serdes to PHY to SFP connection
52+
53+sfp_eth0: sfp-eth0 {
54+ compatible = "sff,sfp";
55+ i2c-bus = <&sfpp0_i2c>;
56+ los-gpios = <&cps_gpio1 28 GPIO_ACTIVE_HIGH>;
57+ mod-def0-gpios = <&cps_gpio1 27 GPIO_ACTIVE_LOW>;
58+ pinctrl-names = "default";
59+ pinctrl-0 = <&cps_sfpp0_pins>;
60+ tx-disable-gpios = <&cps_gpio1 29 GPIO_ACTIVE_HIGH>;
61+ tx-fault-gpios = <&cps_gpio1 26 GPIO_ACTIVE_HIGH>;
62+};
63+
64+p0_phy: ethernet-phy@0 {
65+ compatible = "ethernet-phy-ieee802.3-c45";
66+ pinctrl-names = "default";
67+ pinctrl-0 = <&cpm_phy0_pins &cps_phy0_pins>;
68+ reg = <0>;
69+ interrupt = <&cpm_gpio2 18 IRQ_TYPE_EDGE_FALLING>;
70+ sfp = <&sfp_eth0>;
71+};
72+
73+&cpm_eth0 {
74+ phy = <&p0_phy>;
75+ phy-mode = "10gbase-kr";
76+};
Documentation/devicetree/bindings/net/smsc-lan87xx.txt+0−1
@@ -15,7 +15,6 @@ smsc phy with disabled energy detect mode on an am335x based board. · 14 unmodified lines
1515 pinctrl-names = "default", "sleep";
1616 pinctrl-0 = <&davinci_mdio_default>;
1717 pinctrl-1 = <&davinci_mdio_sleep>;
18− status = "okay";
1918
2019 ethernetphy0: ethernet-phy@0 {
2120 reg = <0>;
Documentation/devicetree/bindings/net/socfpga-dwmac.txt+0−1
@@ -40,7 +40,6 @@ gmii_to_sgmii_converter: phy@0x100000240 { · 39 unmodified lines
4040 gmac0: ethernet@ff700000 {
4141 compatible = "altr,socfpga-stmmac", "snps,dwmac-3.70a", "snps,dwmac";
4242 altr,sysmgr-syscon = <&sysmgr 0x60 0>;
43− status = "disabled";
4443 reg = <0xff700000 0x2000>;
4544 interrupts = <0 115 4>;
4645 interrupt-names = "macirq";
Documentation/devicetree/bindings/net/sti-dwmac.txt+0−1
@@ -34,7 +34,6 @@ Example: · 33 unmodified lines
3434
3535 ethernet0: dwmac@9630000 {
3636 device_type = "network";
37− status = "disabled";
3837 compatible = "st,stih407-dwmac", "snps,dwmac", "snps,dwmac-3.710";
3938 reg = <0x9630000 0x8000>;
4039 reg-names = "stmmaceth";
Documentation/devicetree/bindings/net/stm32-dwmac.txt+0−1
@@ -18,7 +18,6 @@ Example: · 17 unmodified lines
1818
1919 ethernet@40028000 {
2020 compatible = "st,stm32-dwmac", "snps,dwmac-3.50a";
21− status = "disabled";
2221 reg = <0x40028000 0x8000>;
2322 reg-names = "stmmaceth";
2423 interrupts = <0 61 0>, <0 62 0>;
Documentation/devicetree/bindings/net/wireless/brcm,bcm43xx-fmac.txt+0−1
@@ -29,7 +29,6 @@ mmc3: mmc@01c12000 { · 28 unmodified lines
2929 vmmc-supply = <&reg_vmmc3>;
3030 bus-width = <4>;
3131 non-removable;
32− status = "okay";
3332
3433 brcmf: wifi@1 {
3534 reg = <1>;
Documentation/devicetree/bindings/net/wireless/esp,esp8089.txt+0−1
@@ -21,7 +21,6 @@ Example: · 20 unmodified lines
2121 mmc-pwrseq = <&wifi_pwrseq>;
2222 bus-width = <4>;
2323 non-removable;
24− status = "okay";
2524
2625 esp8089: sdio_wifi@1 {
2726 compatible = "esp,esp8089";
Documentation/devicetree/bindings/net/wireless/marvell-8xxx.txt+0−1
@@ -48,7 +48,6 @@ IRQ pin 38 is used as system wakeup source interrupt. wakeup pin 3 is configured · 47 unmodified lines
4848 so that firmware can wakeup host using this device side pin.
4949
5050 &mmc3 {
51− status = "okay";
5251 vmmc-supply = <&wlan_en_reg>;
5352 mmc-pwrseq = <&wifi_pwrseq>;
5453 bus-width = <4>;
Documentation/devicetree/bindings/net/wireless/ti,wlcore.txt+0−1
@@ -31,7 +31,6 @@ clock, new bindings (for parsing the clock nodes) have to be added. · 30 unmodified lines
3131 Example:
3232
3333 &mmc3 {
34− status = "okay";
3534 vmmc-supply = <&wlan_en_reg>;
3635 bus-width = <4>;
3736 cap-power-off-card;
Documentation/devicetree/bindings/net/xilinx_axienet.txt+55−0
@@ -0,0 +1,55 @@
1+XILINX AXI ETHERNET Device Tree Bindings
2+--------------------------------------------------------
3+
4+Also called AXI 1G/2.5G Ethernet Subsystem, the xilinx axi ethernet IP core
5+provides connectivity to an external ethernet PHY supporting different
6+interfaces: MII, GMII, RGMII, SGMII, 1000BaseX. It also includes two
7+segments of memory for buffering TX and RX, as well as the capability of
8+offloading TX/RX checksum calculation off the processor.
9+
10+Management configuration is done through the AXI interface, while payload is
11+sent and received through means of an AXI DMA controller. This driver
12+includes the DMA driver code, so this driver is incompatible with AXI DMA
13+driver.
14+
15+For more details about mdio please refer phy.txt file in the same directory.
16+
17+Required properties:
18+- compatible : Must be one of "xlnx,axi-ethernet-1.00.a",
19+ "xlnx,axi-ethernet-1.01.a", "xlnx,axi-ethernet-2.01.a"
20+- reg : Address and length of the IO space.
21+- interrupts : Should be a list of two interrupt, TX and RX.
22+- phy-handle : Should point to the external phy device.
23+ See ethernet.txt file in the same directory.
24+- xlnx,rxmem : Set to allocated memory buffer for Rx/Tx in the hardware
25+
26+Optional properties:
27+- phy-mode : See ethernet.txt
28+- xlnx,phy-type : Deprecated, do not use, but still accepted in preference
29+ to phy-mode.
30+- xlnx,txcsum : 0 or empty for disabling TX checksum offload,
31+ 1 to enable partial TX checksum offload,
32+ 2 to enable full TX checksum offload
33+- xlnx,rxcsum : Same values as xlnx,txcsum but for RX checksum offload
34+
35+Example:
36+ axi_ethernet_eth: ethernet@40c00000 {
37+ compatible = "xlnx,axi-ethernet-1.00.a";
38+ device_type = "network";
39+ interrupt-parent = <&microblaze_0_axi_intc>;
40+ interrupts = <2 0>;
41+ phy-mode = "mii";
42+ reg = <0x40c00000 0x40000>;
43+ xlnx,rxcsum = <0x2>;
44+ xlnx,rxmem = <0x800>;
45+ xlnx,txcsum = <0x2>;
46+ phy-handle = <&phy0>;
47+ axi_ethernetlite_0_mdio: mdio {
48+ #address-cells = <1>;
49+ #size-cells = <0>;
50+ phy0: phy@0 {
51+ device_type = "ethernet-phy";
52+ reg = <1>;
53+ };
54+ };
55+ };
Documentation/devicetree/bindings/nvmem/mtk-efuse.txt+4−1
@@ -3,7 +3,10 @@ · 2 unmodified lines
33 This binding is intended to represent MTK-EFUSE which is found in most Mediatek SOCs.
44
55 Required properties:
6−- compatible: should be "mediatek,mt8173-efuse" or "mediatek,efuse"
6+- compatible: should be
7+ "mediatek,mt7622-efuse", "mediatek,efuse": for MT7622
8+ "mediatek,mt7623-efuse", "mediatek,efuse": for MT7623
9+ "mediatek,mt8173-efuse" or "mediatek,efuse": for MT8173
710 - reg: Should contain registers location and length
811
912 = Data cells =
Documentation/devicetree/bindings/nvmem/mxs-ocotp.txt+0−1
@@ -21,5 +21,4 @@ Example for i.MX28: · 20 unmodified lines
2121 #size-cells = <1>;
2222 reg = <0x8002c000 0x2000>;
2323 clocks = <&clks 25>;
24− status = "okay";
2524 };
Documentation/devicetree/bindings/opp/opp.txt+0−1
@@ -464,7 +464,6 @@ Example 5: opp-supported-hw · 463 unmodified lines
464464
465465 opp_table {
466466 compatible = "operating-points-v2";
467− status = "okay";
468467 opp-shared;
469468
470469 opp-600000000 {
Documentation/devicetree/bindings/pci/83xx-512x-pci.txt+3−3
@@ -1,11 +1,11 @@
11 * Freescale 83xx and 512x PCI bridges
22
3−Freescale 83xx and 512x SOCs include the same pci bridge core.
3+Freescale 83xx and 512x SOCs include the same PCI bridge core.
44
55 83xx/512x specific notes:
66 - reg: should contain two address length tuples
7− The first is for the internal pci bridge registers
8− The second is for the pci config space access registers
7+ The first is for the internal PCI bridge registers
8+ The second is for the PCI config space access registers
99
1010 Example (MPC8313ERDB)
1111 pci0: pci@e0008500 {
Documentation/devicetree/bindings/pci/aardvark-pci.txt+0−1
@@ -33,7 +33,6 @@ Example: · 32 unmodified lines
3333 pcie0: pcie@d0070000 {
3434 compatible = "marvell,armada-3700-pcie";
3535 device_type = "pci";
36− status = "disabled";
3736 reg = <0 0xd0070000 0 0x20000>;
3837 #address-cells = <3>;
3938 #size-cells = <2>;
Documentation/devicetree/bindings/pci/altera-pcie.txt+9−9
@@ -7,21 +7,21 @@ Required properties: · 6 unmodified lines
77 "Txs": TX slave port region
88 "Cra": Control register access region
99 - interrupt-parent: interrupt source phandle.
10−- interrupts: specifies the interrupt source of the parent interrupt controller.
11− The format of the interrupt specifier depends on the parent interrupt
12− controller.
10+- interrupts: specifies the interrupt source of the parent interrupt
11+ controller. The format of the interrupt specifier depends
12+ on the parent interrupt controller.
1313 - device_type: must be "pci"
1414 - #address-cells: set to <3>
15−- #size-cells: set to <2>
15+- #size-cells: set to <2>
1616 - #interrupt-cells: set to <1>
17−- ranges: describes the translation of addresses for root ports and standard
18− PCI regions.
17+- ranges: describes the translation of addresses for root ports and
18+ standard PCI regions.
1919 - interrupt-map-mask and interrupt-map: standard PCI properties to define the
2020 mapping of the PCIe interface to interrupt numbers.
2121
2222 Optional properties:
23−- msi-parent: Link to the hardware entity that serves as the MSI controller for this PCIe
24− controller.
23+- msi-parent: Link to the hardware entity that serves as the MSI controller
24+ for this PCIe controller.
2525 - bus-range: PCI bus numbers covered
2626
2727 Example
@@ -45,5 +45,5 @@ Example · 17 unmodified lines
4545 <0 0 0 3 &pcie_0 3>,
4646 <0 0 0 4 &pcie_0 4>;
4747 ranges = <0x82000000 0x00000000 0x00000000 0xc0000000 0x00000000 0x10000000
48− 0x82000000 0x00000000 0x10000000 0xd0000000 0x00000000 0x10000000>;
48+ 0x82000000 0x00000000 0x10000000 0xd0000000 0x00000000 0x10000000>;
4949 };
Documentation/devicetree/bindings/pci/axis,artpec6-pcie.txt+1−1
@@ -6,7 +6,7 @@ and thus inherits all the common properties defined in designware-pcie.txt. · 5 unmodified lines
66 Required properties:
77 - compatible: "axis,artpec6-pcie", "snps,dw-pcie"
88 - reg: base addresses and lengths of the PCIe controller (DBI),
9− the phy controller, and configuration address space.
9+ the PHY controller, and configuration address space.
1010 - reg-names: Must include the following entries:
1111 - "dbi"
1212 - "phy"
Documentation/devicetree/bindings/pci/designware-pcie.txt+11−13
@@ -1,4 +1,4 @@
1−* Synopsys Designware PCIe interface
1+* Synopsys DesignWare PCIe interface
22
33 Required properties:
44 - compatible: should contain "snps,dw-pcie" to identify the core.
@@ -17,29 +17,27 @@ RC mode: · 12 unmodified lines
1717 properties to define the mapping of the PCIe interface to interrupt
1818 numbers.
1919 EP mode:
20−- num-ib-windows: number of inbound address translation
21− windows
22−- num-ob-windows: number of outbound address translation
23− windows
20+- num-ib-windows: number of inbound address translation windows
21+- num-ob-windows: number of outbound address translation windows
2422
2523 Optional properties:
2624 - num-lanes: number of lanes to use (this property should be specified unless
2725 the link is brought already up in BIOS)
28−- reset-gpio: gpio pin number of power good signal
26+- reset-gpio: GPIO pin number of power good signal
2927 - clocks: Must contain an entry for each entry in clock-names.
3028 See ../clocks/clock-bindings.txt for details.
3129 - clock-names: Must include the following entries:
3230 - "pcie"
3331 - "pcie_bus"
3432 RC mode:
35−- num-viewport: number of view ports configured in
36− hardware. If a platform does not specify it, the driver assumes 2.
37−- bus-range: PCI bus numbers covered (it is recommended
38− for new devicetrees to specify this property, to keep backwards
39− compatibility a range of 0x00-0xff is assumed if not present)
33+- num-viewport: number of view ports configured in hardware. If a platform
34+ does not specify it, the driver assumes 2.
35+- bus-range: PCI bus numbers covered (it is recommended for new devicetrees
36+ to specify this property, to keep backwards compatibility a range of
37+ 0x00-0xff is assumed if not present)
38+
4039 EP mode:
41−- max-functions: maximum number of functions that can be
42− configured
40+- max-functions: maximum number of functions that can be configured
4341
4442 Example configuration:
4543
Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.txt+1−1
@@ -1,6 +1,6 @@
11 * Freescale i.MX6 PCIe interface
22
3−This PCIe host controller is based on the Synopsis Designware PCIe IP
3+This PCIe host controller is based on the Synopsys DesignWare PCIe IP
44 and thus inherits all the common properties defined in designware-pcie.txt.
55
66 Required properties:
Documentation/devicetree/bindings/pci/hisilicon-pcie.txt+2−4
@@ -1,7 +1,7 @@
11 HiSilicon Hip05 and Hip06 PCIe host bridge DT description
22
3−HiSilicon PCIe host controller is based on Designware PCI core.
4−It shares common functions with PCIe Designware core driver and inherits
3+HiSilicon PCIe host controller is based on the Synopsys DesignWare PCI core.
4+It shares common functions with the PCIe DesignWare core driver and inherits
55 common properties defined in
66 Documentation/devicetree/bindings/pci/designware-pci.txt.
77
@@ -40,7 +40,6 @@ Hip05 Example (note that Hip06 is the same except compatible): · 32 unmodified lines
4040 0x0 0 0 2 &mbigen_pcie 2 11
4141 0x0 0 0 3 &mbigen_pcie 3 12
4242 0x0 0 0 4 &mbigen_pcie 4 13>;
43− status = "ok";
4443 };
4544
4645 HiSilicon Hip06/Hip07 PCIe host bridge DT (almost-ECAM) description.
@@ -83,5 +82,4 @@ Example: · 36 unmodified lines
8382 0x0 0 0 2 &mbigen_pcie0 650 4
8483 0x0 0 0 3 &mbigen_pcie0 650 4
8584 0x0 0 0 4 &mbigen_pcie0 650 4>;
86− status = "ok";
8785 };
Documentation/devicetree/bindings/pci/kirin-pcie.txt+4−4
@@ -1,8 +1,8 @@
11 HiSilicon Kirin SoCs PCIe host DT description
22
3−Kirin PCIe host controller is based on Designware PCI core.
4−It shares common functions with PCIe Designware core driver
5−and inherits common properties defined in
3+Kirin PCIe host controller is based on the Synopsys DesignWare PCI core.
4+It shares common functions with the PCIe DesignWare core driver and
5+inherits common properties defined in
66 Documentation/devicetree/bindings/pci/designware-pci.txt.
77
88 Additional properties are described here:
@@ -16,7 +16,7 @@ Required properties · 7 unmodified lines
1616 "apb": apb Ctrl register defined by Kirin;
1717 "phy": apb PHY register defined by Kirin;
1818 "config": PCIe configuration space registers.
19−- reset-gpios: The gpio to generate PCIe perst assert and deassert signal.
19+- reset-gpios: The GPIO to generate PCIe PERST# assert and deassert signal.
2020
2121 Optional properties:
2222
Documentation/devicetree/bindings/pci/layerscape-pci.txt+3−1
@@ -15,8 +15,10 @@ Required properties: · 14 unmodified lines
1515 - compatible: should contain the platform identifier such as:
1616 "fsl,ls1021a-pcie", "snps,dw-pcie"
1717 "fsl,ls2080a-pcie", "fsl,ls2085a-pcie", "snps,dw-pcie"
18+ "fsl,ls2088a-pcie"
19+ "fsl,ls1088a-pcie"
1820 "fsl,ls1046a-pcie"
19−- reg: base addresses and lengths of the PCIe controller
21+- reg: base addresses and lengths of the PCIe controller register blocks.
2022 - interrupts: A list of interrupt outputs of the controller. Must contain an
2123 entry for each entry in the interrupt-names property.
2224 - interrupt-names: Must include the following entries:
Documentation/devicetree/bindings/pci/mediatek,mt7623-pcie.txt+0−130
@@ -1,130 +0,0 @@
1−MediaTek Gen2 PCIe controller which is available on MT7623 series SoCs
2−
3−PCIe subsys supports single root complex (RC) with 3 Root Ports. Each root
4−ports supports a Gen2 1-lane Link and has PIPE interface to PHY.
5−
6−Required properties:
7−- compatible: Should contain "mediatek,mt7623-pcie".
8−- device_type: Must be "pci"
9−- reg: Base addresses and lengths of the PCIe controller.
10−- #address-cells: Address representation for root ports (must be 3)
11−- #size-cells: Size representation for root ports (must be 2)
12−- #interrupt-cells: Size representation for interrupts (must be 1)
13−- interrupt-map-mask and interrupt-map: Standard PCI IRQ mapping properties
14− Please refer to the standard PCI bus binding document for a more detailed
15− explanation.
16−- clocks: Must contain an entry for each entry in clock-names.
17− See ../clocks/clock-bindings.txt for details.
18−- clock-names: Must include the following entries:
19− - free_ck :for reference clock of PCIe subsys
20− - sys_ck0 :for clock of Port0
21− - sys_ck1 :for clock of Port1
22− - sys_ck2 :for clock of Port2
23−- resets: Must contain an entry for each entry in reset-names.
24− See ../reset/reset.txt for details.
25−- reset-names: Must include the following entries:
26− - pcie-rst0 :port0 reset
27− - pcie-rst1 :port1 reset
28− - pcie-rst2 :port2 reset
29−- phys: List of PHY specifiers (used by generic PHY framework).
30−- phy-names : Must be "pcie-phy0", "pcie-phy1", "pcie-phyN".. based on the
31− number of PHYs as specified in *phys* property.
32−- power-domains: A phandle and power domain specifier pair to the power domain
33− which is responsible for collapsing and restoring power to the peripheral.
34−- bus-range: Range of bus numbers associated with this controller.
35−- ranges: Ranges for the PCI memory and I/O regions.
36−
37−In addition, the device tree node must have sub-nodes describing each
38−PCIe port interface, having the following mandatory properties:
39−
40−Required properties:
41−- device_type: Must be "pci"
42−- reg: Only the first four bytes are used to refer to the correct bus number
43− and device number.
44−- #address-cells: Must be 3
45−- #size-cells: Must be 2
46−- #interrupt-cells: Must be 1
47−- interrupt-map-mask and interrupt-map: Standard PCI IRQ mapping properties
48− Please refer to the standard PCI bus binding document for a more detailed
49− explanation.
50−- ranges: Sub-ranges distributed from the PCIe controller node. An empty
51− property is sufficient.
52−- num-lanes: Number of lanes to use for this port.
53−
54−Examples:
55−
56− hifsys: syscon@1a000000 {
57− compatible = "mediatek,mt7623-hifsys",
58− "mediatek,mt2701-hifsys",
59− "syscon";
60− reg = <0 0x1a000000 0 0x1000>;
61− #clock-cells = <1>;
62− #reset-cells = <1>;
63− };
64−
65− pcie: pcie-controller@1a140000 {
66− compatible = "mediatek,mt7623-pcie";
67− device_type = "pci";
68− reg = <0 0x1a140000 0 0x1000>, /* PCIe shared registers */
69− <0 0x1a142000 0 0x1000>, /* Port0 registers */
70− <0 0x1a143000 0 0x1000>, /* Port1 registers */
71− <0 0x1a144000 0 0x1000>; /* Port2 registers */
72− #address-cells = <3>;
73− #size-cells = <2>;
74− #interrupt-cells = <1>;
75− interrupt-map-mask = <0xf800 0 0 0>;
76− interrupt-map = <0x0000 0 0 0 &sysirq GIC_SPI 193 IRQ_TYPE_LEVEL_LOW>,
77− <0x0800 0 0 0 &sysirq GIC_SPI 194 IRQ_TYPE_LEVEL_LOW>,
78− <0x1000 0 0 0 &sysirq GIC_SPI 195 IRQ_TYPE_LEVEL_LOW>;
79− clocks = <&topckgen CLK_TOP_ETHIF_SEL>,
80− <&hifsys CLK_HIFSYS_PCIE0>,
81− <&hifsys CLK_HIFSYS_PCIE1>,
82− <&hifsys CLK_HIFSYS_PCIE2>;
83− clock-names = "free_ck", "sys_ck0", "sys_ck1", "sys_ck2";
84− resets = <&hifsys MT2701_HIFSYS_PCIE0_RST>,
85− <&hifsys MT2701_HIFSYS_PCIE1_RST>,
86− <&hifsys MT2701_HIFSYS_PCIE2_RST>;
87− reset-names = "pcie-rst0", "pcie-rst1", "pcie-rst2";
88− phys = <&pcie0_phy>, <&pcie1_phy>, <&pcie2_phy>;
89− phy-names = "pcie-phy0", "pcie-phy1", "pcie-phy2";
90− power-domains = <&scpsys MT2701_POWER_DOMAIN_HIF>;
91− bus-range = <0x00 0xff>;
92− ranges = <0x81000000 0 0x1a160000 0 0x1a160000 0 0x00010000 /* I/O space */
93− 0x83000000 0 0x60000000 0 0x60000000 0 0x10000000>; /* memory space */
94−
95− pcie@0,0 {
96− device_type = "pci";
97− reg = <0x0000 0 0 0 0>;
98− #address-cells = <3>;
99− #size-cells = <2>;
100− #interrupt-cells = <1>;
101− interrupt-map-mask = <0 0 0 0>;
102− interrupt-map = <0 0 0 0 &sysirq GIC_SPI 193 IRQ_TYPE_LEVEL_LOW>;
103− ranges;
104− num-lanes = <1>;
105− };
106−
107− pcie@1,0 {
108− device_type = "pci";
109− reg = <0x0800 0 0 0 0>;
110− #address-cells = <3>;
111− #size-cells = <2>;
112− #interrupt-cells = <1>;
113− interrupt-map-mask = <0 0 0 0>;
114− interrupt-map = <0 0 0 0 &sysirq GIC_SPI 194 IRQ_TYPE_LEVEL_LOW>;
115− ranges;
116− num-lanes = <1>;
117− };
118−
119− pcie@2,0 {
120− device_type = "pci";
121− reg = <0x1000 0 0 0 0>;
122− #address-cells = <3>;
123− #size-cells = <2>;
124− #interrupt-cells = <1>;
125− interrupt-map-mask = <0 0 0 0>;
126− interrupt-map = <0 0 0 0 &sysirq GIC_SPI 195 IRQ_TYPE_LEVEL_LOW>;
127− ranges;
128− num-lanes = <1>;
129− };
130− };
Documentation/devicetree/bindings/pci/mediatek-pcie.txt+284−0
@@ -0,0 +1,284 @@
1+MediaTek Gen2 PCIe controller
2+
3+Required properties:
4+- compatible: Should contain one of the following strings:
5+ "mediatek,mt2701-pcie"
6+ "mediatek,mt2712-pcie"
7+ "mediatek,mt7622-pcie"
8+ "mediatek,mt7623-pcie"
9+- device_type: Must be "pci"
10+- reg: Base addresses and lengths of the PCIe subsys and root ports.
11+- reg-names: Names of the above areas to use during resource lookup.
12+- #address-cells: Address representation for root ports (must be 3)
13+- #size-cells: Size representation for root ports (must be 2)
14+- clocks: Must contain an entry for each entry in clock-names.
15+ See ../clocks/clock-bindings.txt for details.
16+- clock-names:
17+ Mandatory entries:
18+ - sys_ckN :transaction layer and data link layer clock
19+ Required entries for MT2701/MT7623:
20+ - free_ck :for reference clock of PCIe subsys
21+ Required entries for MT2712/MT7622:
22+ - ahb_ckN :AHB slave interface operating clock for CSR access and RC
23+ initiated MMIO access
24+ Required entries for MT7622:
25+ - axi_ckN :application layer MMIO channel operating clock
26+ - aux_ckN :pe2_mac_bridge and pe2_mac_core operating clock when
27+ pcie_mac_ck/pcie_pipe_ck is turned off
28+ - obff_ckN :OBFF functional block operating clock
29+ - pipe_ckN :LTSSM and PHY/MAC layer operating clock
30+ where N starting from 0 to one less than the number of root ports.
31+- phys: List of PHY specifiers (used by generic PHY framework).
32+- phy-names : Must be "pcie-phy0", "pcie-phy1", "pcie-phyN".. based on the
33+ number of PHYs as specified in *phys* property.
34+- power-domains: A phandle and power domain specifier pair to the power domain
35+ which is responsible for collapsing and restoring power to the peripheral.
36+- bus-range: Range of bus numbers associated with this controller.
37+- ranges: Ranges for the PCI memory and I/O regions.
38+
39+Required properties for MT7623/MT2701:
40+- #interrupt-cells: Size representation for interrupts (must be 1)
41+- interrupt-map-mask and interrupt-map: Standard PCI IRQ mapping properties
42+ Please refer to the standard PCI bus binding document for a more detailed
43+ explanation.
44+- resets: Must contain an entry for each entry in reset-names.
45+ See ../reset/reset.txt for details.
46+- reset-names: Must be "pcie-rst0", "pcie-rst1", "pcie-rstN".. based on the
47+ number of root ports.
48+
49+Required properties for MT2712/MT7622:
50+-interrupts: A list of interrupt outputs of the controller, must have one
51+ entry for each PCIe port
52+
53+In addition, the device tree node must have sub-nodes describing each
54+PCIe port interface, having the following mandatory properties:
55+
56+Required properties:
57+- device_type: Must be "pci"
58+- reg: Only the first four bytes are used to refer to the correct bus number
59+ and device number.
60+- #address-cells: Must be 3
61+- #size-cells: Must be 2
62+- #interrupt-cells: Must be 1
63+- interrupt-map-mask and interrupt-map: Standard PCI IRQ mapping properties
64+ Please refer to the standard PCI bus binding document for a more detailed
65+ explanation.
66+- ranges: Sub-ranges distributed from the PCIe controller node. An empty
67+ property is sufficient.
68+- num-lanes: Number of lanes to use for this port.
69+
70+Examples for MT7623:
71+
72+ hifsys: syscon@1a000000 {
73+ compatible = "mediatek,mt7623-hifsys",
74+ "mediatek,mt2701-hifsys",
75+ "syscon";
76+ reg = <0 0x1a000000 0 0x1000>;
77+ #clock-cells = <1>;
78+ #reset-cells = <1>;
79+ };
80+
81+ pcie: pcie-controller@1a140000 {
82+ compatible = "mediatek,mt7623-pcie";
83+ device_type = "pci";
84+ reg = <0 0x1a140000 0 0x1000>, /* PCIe shared registers */
85+ <0 0x1a142000 0 0x1000>, /* Port0 registers */
86+ <0 0x1a143000 0 0x1000>, /* Port1 registers */
87+ <0 0x1a144000 0 0x1000>; /* Port2 registers */
88+ reg-names = "subsys", "port0", "port1", "port2";
89+ #address-cells = <3>;
90+ #size-cells = <2>;
91+ #interrupt-cells = <1>;
92+ interrupt-map-mask = <0xf800 0 0 0>;
93+ interrupt-map = <0x0000 0 0 0 &sysirq GIC_SPI 193 IRQ_TYPE_LEVEL_LOW>,
94+ <0x0800 0 0 0 &sysirq GIC_SPI 194 IRQ_TYPE_LEVEL_LOW>,
95+ <0x1000 0 0 0 &sysirq GIC_SPI 195 IRQ_TYPE_LEVEL_LOW>;
96+ clocks = <&topckgen CLK_TOP_ETHIF_SEL>,
97+ <&hifsys CLK_HIFSYS_PCIE0>,
98+ <&hifsys CLK_HIFSYS_PCIE1>,
99+ <&hifsys CLK_HIFSYS_PCIE2>;
100+ clock-names = "free_ck", "sys_ck0", "sys_ck1", "sys_ck2";
101+ resets = <&hifsys MT2701_HIFSYS_PCIE0_RST>,
102+ <&hifsys MT2701_HIFSYS_PCIE1_RST>,
103+ <&hifsys MT2701_HIFSYS_PCIE2_RST>;
104+ reset-names = "pcie-rst0", "pcie-rst1", "pcie-rst2";
105+ phys = <&pcie0_phy PHY_TYPE_PCIE>, <&pcie1_phy PHY_TYPE_PCIE>,
106+ <&pcie2_phy PHY_TYPE_PCIE>;
107+ phy-names = "pcie-phy0", "pcie-phy1", "pcie-phy2";
108+ power-domains = <&scpsys MT2701_POWER_DOMAIN_HIF>;
109+ bus-range = <0x00 0xff>;
110+ ranges = <0x81000000 0 0x1a160000 0 0x1a160000 0 0x00010000 /* I/O space */
111+ 0x83000000 0 0x60000000 0 0x60000000 0 0x10000000>; /* memory space */
112+
113+ pcie@0,0 {
114+ device_type = "pci";
115+ reg = <0x0000 0 0 0 0>;
116+ #address-cells = <3>;
117+ #size-cells = <2>;
118+ #interrupt-cells = <1>;
119+ interrupt-map-mask = <0 0 0 0>;
120+ interrupt-map = <0 0 0 0 &sysirq GIC_SPI 193 IRQ_TYPE_LEVEL_LOW>;
121+ ranges;
122+ num-lanes = <1>;
123+ };
124+
125+ pcie@1,0 {
126+ device_type = "pci";
127+ reg = <0x0800 0 0 0 0>;
128+ #address-cells = <3>;
129+ #size-cells = <2>;
130+ #interrupt-cells = <1>;
131+ interrupt-map-mask = <0 0 0 0>;
132+ interrupt-map = <0 0 0 0 &sysirq GIC_SPI 194 IRQ_TYPE_LEVEL_LOW>;
133+ ranges;
134+ num-lanes = <1>;
135+ };
136+
137+ pcie@2,0 {
138+ device_type = "pci";
139+ reg = <0x1000 0 0 0 0>;
140+ #address-cells = <3>;
141+ #size-cells = <2>;
142+ #interrupt-cells = <1>;
143+ interrupt-map-mask = <0 0 0 0>;
144+ interrupt-map = <0 0 0 0 &sysirq GIC_SPI 195 IRQ_TYPE_LEVEL_LOW>;
145+ ranges;
146+ num-lanes = <1>;
147+ };
148+ };
149+
150+Examples for MT2712:
151+ pcie: pcie@11700000 {
152+ compatible = "mediatek,mt2712-pcie";
153+ device_type = "pci";
154+ reg = <0 0x11700000 0 0x1000>,
155+ <0 0x112ff000 0 0x1000>;
156+ reg-names = "port0", "port1";
157+ #address-cells = <3>;
158+ #size-cells = <2>;
159+ interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
160+ <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
161+ clocks = <&topckgen CLK_TOP_PE2_MAC_P0_SEL>,
162+ <&topckgen CLK_TOP_PE2_MAC_P1_SEL>,
163+ <&pericfg CLK_PERI_PCIE0>,
164+ <&pericfg CLK_PERI_PCIE1>;
165+ clock-names = "sys_ck0", "sys_ck1", "ahb_ck0", "ahb_ck1";
166+ phys = <&pcie0_phy PHY_TYPE_PCIE>, <&pcie1_phy PHY_TYPE_PCIE>;
167+ phy-names = "pcie-phy0", "pcie-phy1";
168+ bus-range = <0x00 0xff>;
169+ ranges = <0x82000000 0 0x20000000 0x0 0x20000000 0 0x10000000>;
170+
171+ pcie0: pcie@0,0 {
172+ device_type = "pci";
173+ reg = <0x0000 0 0 0 0>;
174+ #address-cells = <3>;
175+ #size-cells = <2>;
176+ #interrupt-cells = <1>;
177+ ranges;
178+ num-lanes = <1>;
179+ interrupt-map-mask = <0 0 0 7>;
180+ interrupt-map = <0 0 0 1 &pcie_intc0 0>,
181+ <0 0 0 2 &pcie_intc0 1>,
182+ <0 0 0 3 &pcie_intc0 2>,
183+ <0 0 0 4 &pcie_intc0 3>;
184+ pcie_intc0: interrupt-controller {
185+ interrupt-controller;
186+ #address-cells = <0>;
187+ #interrupt-cells = <1>;
188+ };
189+ };
190+
191+ pcie1: pcie@1,0 {
192+ device_type = "pci";
193+ reg = <0x0800 0 0 0 0>;
194+ #address-cells = <3>;
195+ #size-cells = <2>;
196+ #interrupt-cells = <1>;
197+ ranges;
198+ num-lanes = <1>;
199+ interrupt-map-mask = <0 0 0 7>;
200+ interrupt-map = <0 0 0 1 &pcie_intc1 0>,
201+ <0 0 0 2 &pcie_intc1 1>,
202+ <0 0 0 3 &pcie_intc1 2>,
203+ <0 0 0 4 &pcie_intc1 3>;
204+ pcie_intc1: interrupt-controller {
205+ interrupt-controller;
206+ #address-cells = <0>;
207+ #interrupt-cells = <1>;
208+ };
209+ };
210+ };
211+
212+Examples for MT7622:
213+ pcie: pcie@1a140000 {
214+ compatible = "mediatek,mt7622-pcie";
215+ device_type = "pci";
216+ reg = <0 0x1a140000 0 0x1000>,
217+ <0 0x1a143000 0 0x1000>,
218+ <0 0x1a145000 0 0x1000>;
219+ reg-names = "subsys", "port0", "port1";
220+ #address-cells = <3>;
221+ #size-cells = <2>;
222+ interrupts = <GIC_SPI 228 IRQ_TYPE_LEVEL_LOW>,
223+ <GIC_SPI 229 IRQ_TYPE_LEVEL_LOW>;
224+ clocks = <&pciesys CLK_PCIE_P0_MAC_EN>,
225+ <&pciesys CLK_PCIE_P1_MAC_EN>,
226+ <&pciesys CLK_PCIE_P0_AHB_EN>,
227+ <&pciesys CLK_PCIE_P1_AHB_EN>,
228+ <&pciesys CLK_PCIE_P0_AUX_EN>,
229+ <&pciesys CLK_PCIE_P1_AUX_EN>,
230+ <&pciesys CLK_PCIE_P0_AXI_EN>,
231+ <&pciesys CLK_PCIE_P1_AXI_EN>,
232+ <&pciesys CLK_PCIE_P0_OBFF_EN>,
233+ <&pciesys CLK_PCIE_P1_OBFF_EN>,
234+ <&pciesys CLK_PCIE_P0_PIPE_EN>,
235+ <&pciesys CLK_PCIE_P1_PIPE_EN>;
236+ clock-names = "sys_ck0", "sys_ck1", "ahb_ck0", "ahb_ck1",
237+ "aux_ck0", "aux_ck1", "axi_ck0", "axi_ck1",
238+ "obff_ck0", "obff_ck1", "pipe_ck0", "pipe_ck1";
239+ phys = <&pcie0_phy PHY_TYPE_PCIE>, <&pcie1_phy PHY_TYPE_PCIE>;
240+ phy-names = "pcie-phy0", "pcie-phy1";
241+ power-domains = <&scpsys MT7622_POWER_DOMAIN_HIF0>;
242+ bus-range = <0x00 0xff>;
243+ ranges = <0x82000000 0 0x20000000 0x0 0x20000000 0 0x10000000>;
244+
245+ pcie0: pcie@0,0 {
246+ device_type = "pci";
247+ reg = <0x0000 0 0 0 0>;
248+ #address-cells = <3>;
249+ #size-cells = <2>;
250+ #interrupt-cells = <1>;
251+ ranges;
252+ num-lanes = <1>;
253+ interrupt-map-mask = <0 0 0 7>;
254+ interrupt-map = <0 0 0 1 &pcie_intc0 0>,
255+ <0 0 0 2 &pcie_intc0 1>,
256+ <0 0 0 3 &pcie_intc0 2>,
257+ <0 0 0 4 &pcie_intc0 3>;
258+ pcie_intc0: interrupt-controller {
259+ interrupt-controller;
260+ #address-cells = <0>;
261+ #interrupt-cells = <1>;
262+ };
263+ };
264+
265+ pcie1: pcie@1,0 {
266+ device_type = "pci";
267+ reg = <0x0800 0 0 0 0>;
268+ #address-cells = <3>;
269+ #size-cells = <2>;
270+ #interrupt-cells = <1>;
271+ ranges;
272+ num-lanes = <1>;
273+ interrupt-map-mask = <0 0 0 7>;
274+ interrupt-map = <0 0 0 1 &pcie_intc1 0>,
275+ <0 0 0 2 &pcie_intc1 1>,
276+ <0 0 0 3 &pcie_intc1 2>,
277+ <0 0 0 4 &pcie_intc1 3>;
278+ pcie_intc1: interrupt-controller {
279+ interrupt-controller;
280+ #address-cells = <0>;
281+ #interrupt-cells = <1>;
282+ };
283+ };
284+ };
Documentation/devicetree/bindings/pci/mvebu-pci.txt+2−13
@@ -77,7 +77,7 @@ and the following optional properties: · 76 unmodified lines
7777 - marvell,pcie-lane: the physical PCIe lane number, for ports having
7878 multiple lanes. If this property is not found, we assume that the
7979 value is 0.
80−- reset-gpios: optional gpio to PERST#
80+- reset-gpios: optional GPIO to PERST#
8181 - reset-delay-us: delay in us to wait after reset de-assertion, if not
8282 specified will default to 100ms, as required by the PCIe specification.
8383
@@ -85,7 +85,6 @@ Example: · 1 unmodified line
8585
8686 pcie-controller {
8787 compatible = "marvell,armada-xp-pcie";
88− status = "disabled";
8988 device_type = "pci";
9089
9190 #address-cells = <3>;
@@ -147,7 +146,6 @@ pcie-controller { · 55 unmodified lines
147146 /* wait 20ms for device settle after reset deassertion */
148147 reset-delay-us = <20000>;
149148 clocks = <&gateclk 5>;
150− status = "disabled";
151149 };
152150
153151 pcie@2,0 {
@@ -164,7 +162,6 @@ pcie-controller { · 10 unmodified lines
164162 marvell,pcie-port = <0>;
165163 marvell,pcie-lane = <1>;
166164 clocks = <&gateclk 6>;
167− status = "disabled";
168165 };
169166
170167 pcie@3,0 {
@@ -181,7 +178,6 @@ pcie-controller { · 10 unmodified lines
181178 marvell,pcie-port = <0>;
182179 marvell,pcie-lane = <2>;
183180 clocks = <&gateclk 7>;
184− status = "disabled";
185181 };
186182
187183 pcie@4,0 {
@@ -198,7 +194,6 @@ pcie-controller { · 10 unmodified lines
198194 marvell,pcie-port = <0>;
199195 marvell,pcie-lane = <3>;
200196 clocks = <&gateclk 8>;
201− status = "disabled";
202197 };
203198
204199 pcie@5,0 {
@@ -215,7 +210,6 @@ pcie-controller { · 10 unmodified lines
215210 marvell,pcie-port = <1>;
216211 marvell,pcie-lane = <0>;
217212 clocks = <&gateclk 9>;
218− status = "disabled";
219213 };
220214
221215 pcie@6,0 {
@@ -232,7 +226,6 @@ pcie-controller { · 10 unmodified lines
232226 marvell,pcie-port = <1>;
233227 marvell,pcie-lane = <1>;
234228 clocks = <&gateclk 10>;
235− status = "disabled";
236229 };
237230
238231 pcie@7,0 {
@@ -249,7 +242,6 @@ pcie-controller { · 10 unmodified lines
249242 marvell,pcie-port = <1>;
250243 marvell,pcie-lane = <2>;
251244 clocks = <&gateclk 11>;
252− status = "disabled";
253245 };
254246
255247 pcie@8,0 {
@@ -266,7 +258,6 @@ pcie-controller { · 10 unmodified lines
266258 marvell,pcie-port = <1>;
267259 marvell,pcie-lane = <3>;
268260 clocks = <&gateclk 12>;
269− status = "disabled";
270261 };
271262
272263 pcie@9,0 {
@@ -283,10 +274,9 @@ pcie-controller { · 10 unmodified lines
283274 marvell,pcie-port = <2>;
284275 marvell,pcie-lane = <0>;
285276 clocks = <&gateclk 26>;
286− status = "disabled";
287277 };
288278
289− pcie@10,0 {
279+ pcie@a,0 {
290280 device_type = "pci";
291281 assigned-addresses = <0x82005000 0 0x82000 0 0x2000>;
292282 reg = <0x5000 0 0 0 0>;
@@ -300,6 +290,5 @@ pcie-controller { · 7 unmodified lines
300290 marvell,pcie-port = <3>;
301291 marvell,pcie-lane = <0>;
302292 clocks = <&gateclk 27>;
303− status = "disabled";
304293 };
305294 };
Documentation/devicetree/bindings/pci/pci-armada8k.txt+1−2
@@ -1,6 +1,6 @@
11 * Marvell Armada 7K/8K PCIe interface
22
3−This PCIe host controller is based on the Synopsis Designware PCIe IP
3+This PCIe host controller is based on the Synopsys DesignWare PCIe IP
44 and thus inherits all the common properties defined in designware-pcie.txt.
55
66 Required properties:
@@ -34,5 +34,4 @@ Example: · 27 unmodified lines
3434 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
3535 num-lanes = <1>;
3636 clocks = <&cpm_syscon0 1 13>;
37− status = "disabled";
3837 };
Documentation/devicetree/bindings/pci/pci-keystone.txt+7−8
@@ -1,12 +1,12 @@
11 TI Keystone PCIe interface
22
3−Keystone PCI host Controller is based on Designware PCI h/w version 3.65.
4−It shares common functions with PCIe Designware core driver and inherit
5−common properties defined in
3+Keystone PCI host Controller is based on the Synopsys DesignWare PCI
4+hardware version 3.65. It shares common functions with the PCIe DesignWare
5+core driver and inherits common properties defined in
66 Documentation/devicetree/bindings/pci/designware-pci.txt
77
88 Please refer to Documentation/devicetree/bindings/pci/designware-pci.txt
9−for the details of Designware DT bindings. Additional properties are
9+for the details of DesignWare DT bindings. Additional properties are
1010 described here as well as properties that are not applicable.
1111
1212 Required Properties:-
@@ -52,13 +52,12 @@ pcie_intc: Interrupt controller device node for Legacy IRQ chip · 39 unmodified lines
5252 };
5353
5454 Optional properties:-
55− phys: phandle to Generic Keystone SerDes phy for PCI
56− phy-names: name of the Generic Keystine SerDes phy for PCI
55+ phys: phandle to generic Keystone SerDes PHY for PCI
56+ phy-names: name of the generic Keystone SerDes PHY for PCI
5757 - If boot loader already does PCI link establishment, then phys and
5858 phy-names shouldn't be present.
5959 interrupts: platform interrupt for error interrupts.
6060
61−Designware DT Properties not applicable for Keystone PCI
61+DesignWare DT Properties not applicable for Keystone PCI
6262
6363 1. pcie_bus clock-names not used. Instead, a phandle to phys is used.
64−
Documentation/devicetree/bindings/pci/pci-rcar-gen2.txt+5−2
@@ -6,11 +6,14 @@ AHB. There is one bridge instance per USB port connected to the internal · 5 unmodified lines
66 OHCI and EHCI controllers.
77
88 Required properties:
9−- compatible: "renesas,pci-r8a7790" for the R8A7790 SoC;
9+- compatible: "renesas,pci-r8a7743" for the R8A7743 SoC;
10+ "renesas,pci-r8a7745" for the R8A7745 SoC;
11+ "renesas,pci-r8a7790" for the R8A7790 SoC;
1012 "renesas,pci-r8a7791" for the R8A7791 SoC;
1113 "renesas,pci-r8a7793" for the R8A7793 SoC;
1214 "renesas,pci-r8a7794" for the R8A7794 SoC;
13− "renesas,pci-rcar-gen2" for a generic R-Car Gen2 compatible device
15+ "renesas,pci-rcar-gen2" for a generic R-Car Gen2 or
16+ RZ/G1 compatible device.
1417
1518
1619 When compatible with the generic version, nodes must list the
Documentation/devicetree/bindings/pci/pci.txt+2−2
@@ -1,12 +1,12 @@
11 PCI bus bridges have standardized Device Tree bindings:
22
33 PCI Bus Binding to: IEEE Std 1275-1994
4−http://www.firmware.org/1275/bindings/pci/pci2_1.pdf
4+http://www.devicetree.org/open-firmware/bindings/pci/pci2_1.pdf
55
66 And for the interrupt mapping part:
77
88 Open Firmware Recommended Practice: Interrupt Mapping
9−http://www.firmware.org/1275/practice/imap/imap0_9d.pdf
9+http://www.devicetree.org/open-firmware/practice/imap/imap0_9d.pdf
1010
1111 Additionally to the properties specified in the above standards a host bridge
1212 driver implementation may support the following properties:
Documentation/devicetree/bindings/pci/qcom,pcie.txt+25−2
@@ -9,6 +9,7 @@ · 8 unmodified lines
99 - "qcom,pcie-apq8084" for apq8084
1010 - "qcom,pcie-msm8996" for msm8996 or apq8096
1111 - "qcom,pcie-ipq4019" for ipq4019
12+ - "qcom,pcie-ipq8074" for ipq8074
1213
1314 - reg:
1415 Usage: required
@@ -20,7 +21,7 @@ · 5 unmodified lines
2021 Value type: <stringlist>
2122 Definition: Must include the following entries
2223 - "parf" Qualcomm specific registers
23− - "dbi" Designware PCIe registers
24+ - "dbi" DesignWare PCIe registers
2425 - "elbi" External local bus interface registers
2526 - "config" PCIe configuration space
2627
@@ -105,6 +106,16 @@ · 78 unmodified lines
105106 - "bus_master" Master AXI clock
106107 - "bus_slave" Slave AXI clock
107108
109+- clock-names:
110+ Usage: required for ipq8074
111+ Value type: <stringlist>
112+ Definition: Should contain the following entries
113+ - "iface" PCIe to SysNOC BIU clock
114+ - "axi_m" AXI Master clock
115+ - "axi_s" AXI Slave clock
116+ - "ahb" AHB clock
117+ - "aux" Auxiliary clock
118+
108119 - resets:
109120 Usage: required
110121 Value type: <prop-encoded-array>
@@ -144,6 +155,18 @@ · 33 unmodified lines
144155 - "ahb" AHB reset
145156 - "phy_ahb" PHY AHB reset
146157
158+- reset-names:
159+ Usage: required for ipq8074
160+ Value type: <stringlist>
161+ Definition: Should contain the following entries
162+ - "pipe" PIPE reset
163+ - "sleep" Sleep reset
164+ - "sticky" Core Sticky reset
165+ - "axi_m" AXI Master reset
166+ - "axi_s" AXI Slave reset
167+ - "ahb" AHB Reset
168+ - "axi_m_sticky" AXI Master Sticky reset
169+
147170 - power-domains:
148171 Usage: required for apq8084 and msm8996/apq8096
149172 Value type: <prop-encoded-array>
@@ -180,7 +203,7 @@ · 30 unmodified lines
180203 - <name>-gpios:
181204 Usage: optional
182205 Value type: <prop-encoded-array>
183− Definition: List of phandle and gpio specifier pairs. Should contain
206+ Definition: List of phandle and GPIO specifier pairs. Should contain
184207 - "perst-gpios" PCIe endpoint reset signal line
185208 - "wake-gpios" PCIe endpoint wake signal line
186209
Documentation/devicetree/bindings/pci/ralink,rt3883-pci.txt+1−1
@@ -71,7 +71,7 @@ · 70 unmodified lines
7171 - interrupt-map: standard PCI properties to define the mapping of the
7272 PCI interface to interrupt numbers.
7373
74− The PCI host bridge node migh have additional sub-nodes representing
74+ The PCI host bridge node might have additional sub-nodes representing
7575 the onboard PCI devices/PCI slots. Each such sub-node must have the
7676 following mandatory properties:
7777
Documentation/devicetree/bindings/pci/rcar-pci.txt+3−5
@@ -14,7 +14,7 @@ compatible: "renesas,pcie-r8a7779" for the R8A7779 SoC; · 13 unmodified lines
1414 SoC-specific version corresponding to the platform first
1515 followed by the generic version.
1616
17−- reg: base address and length of the pcie controller registers.
17+- reg: base address and length of the PCIe controller registers.
1818 - #address-cells: set to <3>
1919 - #size-cells: set to <2>
2020 - bus-range: PCI bus numbers covered
@@ -25,15 +25,14 @@ compatible: "renesas,pcie-r8a7779" for the R8A7779 SoC; · 4 unmodified lines
2525 source for hardware related interrupts (e.g. link speed change).
2626 - #interrupt-cells: set to <1>
2727 - interrupt-map-mask and interrupt-map: standard PCI properties
28− to define the mapping of the PCIe interface to interrupt
29− numbers.
28+ to define the mapping of the PCIe interface to interrupt numbers.
3029 - clocks: from common clock binding: clock specifiers for the PCIe controller
3130 and PCIe bus clocks.
3231 - clock-names: from common clock binding: should be "pcie" and "pcie_bus".
3332
3433 Example:
3534
36−SoC specific DT Entry:
35+SoC-specific DT Entry:
3736
3837 pcie: pcie@fe000000 {
3938 compatible = "renesas,pcie-r8a7791", "renesas,pcie-rcar-gen2";
@@ -54,5 +53,4 @@ SoC specific DT Entry: · 14 unmodified lines
5453 interrupt-map = <0 0 0 0 &gic 0 116 4>;
5554 clocks = <&mstp3_clks R8A7791_CLK_PCIE>, <&pcie_bus_clk>;
5655 clock-names = "pcie", "pcie_bus";
57− status = "disabled";
5856 };
Documentation/devicetree/bindings/pci/rockchip-pcie.txt+25−3
@@ -19,8 +19,6 @@ Required properties: · 18 unmodified lines
1919 - "pm"
2020 - msi-map: Maps a Requester ID to an MSI controller and associated
2121 msi-specifier data. See ./pci-msi.txt
22−- phys: From PHY bindings: Phandle for the Generic PHY for PCIe.
23−- phy-names: MUST be "pcie-phy".
2422 - interrupts: Three interrupt entries must be specified.
2523 - interrupt-names: Must include the following names
2624 - "sys"
@@ -42,11 +40,24 @@ Required properties: · 15 unmodified lines
4240 interrupt source. The value must be 1.
4341 - interrupt-map-mask and interrupt-map: standard PCI properties
4442
43+Required properties for legacy PHY model (deprecated):
44+- phys: From PHY bindings: Phandle for the Generic PHY for PCIe.
45+- phy-names: MUST be "pcie-phy".
46+
47+Required properties for per-lane PHY model (preferred):
48+- phys: Must contain an phandle to a PHY for each entry in phy-names.
49+- phy-names: Must include 4 entries for all 4 lanes even if some of
50+ them won't be used for your cases. Entries are of the form "pcie-phy-N":
51+ where N ranges from 0 to 3.
52+ (see example below and you MUST also refer to ../phy/rockchip-pcie-phy.txt
53+ for changing the #phy-cells of phy node to support it)
54+
4555 Optional Property:
4656 - aspm-no-l0s: RC won't support ASPM L0s. This property is needed if
4757 using 24MHz OSC for RC's PHY.
48−- ep-gpios: contain the entry for pre-reset gpio
58+- ep-gpios: contain the entry for pre-reset GPIO
4959 - num-lanes: number of lanes to use
60+- vpcie12v-supply: The phandle to the 12v regulator to use for PCIe.
5061 - vpcie3v3-supply: The phandle to the 3.3v regulator to use for PCIe.
5162 - vpcie1v8-supply: The phandle to the 1.8v regulator to use for PCIe.
5263 - vpcie0v9-supply: The phandle to the 0.9v regulator to use for PCIe.
@@ -95,6 +106,7 @@ pcie0: pcie@f8000000 { · 42 unmodified lines
95106 <&cru SRST_PCIE_PM>, <&cru SRST_P_PCIE>, <&cru SRST_A_PCIE>;
96107 reset-names = "core", "mgmt", "mgmt-sticky", "pipe",
97108 "pm", "pclk", "aclk";
109+ /* deprecated legacy PHY model */
98110 phys = <&pcie_phy>;
99111 phy-names = "pcie-phy";
100112 pinctrl-names = "default";
@@ -111,3 +123,13 @@ pcie0: pcie@f8000000 { · 10 unmodified lines
111123 #interrupt-cells = <1>;
112124 };
113125 };
126+
127+pcie0: pcie@f8000000 {
128+ ...
129+
130+ /* preferred per-lane PHY model */
131+ phys = <&pcie_phy 0>, <&pcie_phy 1>, <&pcie_phy 2>, <&pcie_phy 3>;
132+ phy-names = "pcie-phy-0", "pcie-phy-1", "pcie-phy-2", "pcie-phy-3";
133+
134+ ...
135+};
Documentation/devicetree/bindings/pci/samsung,exynos5440-pcie.txt+11−11
@@ -1,29 +1,29 @@
11 * Samsung Exynos 5440 PCIe interface
22
3−This PCIe host controller is based on the Synopsis Designware PCIe IP
3+This PCIe host controller is based on the Synopsys DesignWare PCIe IP
44 and thus inherits all the common properties defined in designware-pcie.txt.
55
66 Required properties:
77 - compatible: "samsung,exynos5440-pcie"
8−- reg: base addresses and lengths of the pcie controller,
9− the phy controller, additional register for the phy controller.
10− (Registers for the phy controller are DEPRECATED.
8+- reg: base addresses and lengths of the PCIe controller,
9+ the PHY controller, additional register for the PHY controller.
10+ (Registers for the PHY controller are DEPRECATED.
1111 Use the PHY framework.)
1212 - reg-names : First name should be set to "elbi".
13− And use the "config" instead of getting the confgiruation address space
13+ And use the "config" instead of getting the configuration address space
1414 from "ranges".
15− NOTE: When use the "config" property, reg-names must be set.
15+ NOTE: When using the "config" property, reg-names must be set.
1616 - interrupts: A list of interrupt outputs for level interrupt,
1717 pulse interrupt, special interrupt.
18−- phys: From PHY binding. Phandle for the Generic PHY.
18+- phys: From PHY binding. Phandle for the generic PHY.
1919 Refer to Documentation/devicetree/bindings/phy/samsung-phy.txt
2020
21−Other common properties refer to
22− Documentation/devicetree/binding/pci/designware-pcie.txt
21+For other common properties, refer to
22+ Documentation/devicetree/bindings/pci/designware-pcie.txt
2323
2424 Example:
2525
26−SoC specific DT Entry:
26+SoC-specific DT Entry:
2727
2828 pcie@290000 {
2929 compatible = "samsung,exynos5440-pcie", "snps,dw-pcie";
@@ -83,7 +83,7 @@ With using PHY framework: · 53 unmodified lines
8383 ...
8484 };
8585
86−Board specific DT Entry:
86+Board-specific DT Entry:
8787
8888 pcie@290000 {
8989 reset-gpio = <&pin_ctrl 5 0>;
Documentation/devicetree/bindings/pci/spear13xx-pcie.txt+3−3
@@ -1,12 +1,12 @@
11 SPEAr13XX PCIe DT detail:
22 ================================
33
4−SPEAr13XX uses synopsis designware PCIe controller and ST MiPHY as phy
4+SPEAr13XX uses the Synopsys DesignWare PCIe controller and ST MiPHY as PHY
55 controller.
66
77 Required properties:
8−- compatible : should be "st,spear1340-pcie", "snps,dw-pcie".
9−- phys : phandle to phy node associated with pcie controller
8+- compatible : should be "st,spear1340-pcie", "snps,dw-pcie".
9+- phys : phandle to PHY node associated with PCIe controller
1010 - phy-names : must be "pcie-phy"
1111 - All other definitions as per generic PCI bindings
1212
Documentation/devicetree/bindings/pci/ti-pci.txt+4−4
@@ -1,6 +1,6 @@
11 TI PCI Controllers
22
3−PCIe Designware Controller
3+PCIe DesignWare Controller
44 - compatible: Should be "ti,dra7-pcie" for RC
55 Should be "ti,dra7-pcie-ep" for EP
66 - phys : list of PHY specifiers (used by generic PHY framework)
@@ -13,7 +13,7 @@ PCIe Designware Controller · 6 unmodified lines
1313 HOST MODE
1414 =========
1515 - reg : Two register ranges as listed in the reg-names property
16− - reg-names : The first entry must be "ti-conf" for the TI specific registers
16+ - reg-names : The first entry must be "ti-conf" for the TI-specific registers
1717 The second entry must be "rc-dbics" for the DesignWare PCIe
1818 registers
1919 The third entry must be "config" for the PCIe configuration space
@@ -30,7 +30,7 @@ HOST MODE · 10 unmodified lines
3030 DEVICE MODE
3131 ===========
3232 - reg : Four register ranges as listed in the reg-names property
33− - reg-names : "ti-conf" for the TI specific registers
33+ - reg-names : "ti-conf" for the TI-specific registers
3434 "ep_dbics" for the standard configuration registers as
3535 they are locally accessed within the DIF CS space
3636 "ep_dbics2" for the standard configuration registers as
@@ -46,7 +46,7 @@ DEVICE MODE · 9 unmodified lines
4646 access.
4747
4848 Optional Property:
49− - gpios : Should be added if a gpio line is required to drive PERST# line
49+ - gpios : Should be added if a GPIO line is required to drive PERST# line
5050
5151 NOTE: Two DT nodes may be added for each PCI controller; one for host
5252 mode and another for device mode. So in order for PCI to
Documentation/devicetree/bindings/pci/versatile.txt+1−1
@@ -5,7 +5,7 @@ PCI host controller found on the ARM Versatile PB board's FPGA. · 4 unmodified lines
55 Required properties:
66 - compatible: should contain "arm,versatile-pci" to identify the Versatile PCI
77 controller.
8−- reg: base addresses and lengths of the pci controller. There must be 3
8+- reg: base addresses and lengths of the PCI controller. There must be 3
99 entries:
1010 - Versatile-specific registers
1111 - Self Config space
Documentation/devicetree/bindings/pci/xgene-pci-msi.txt+3−3
@@ -4,7 +4,7 @@ Required properties: · 3 unmodified lines
44
55 - compatible: should be "apm,xgene1-msi" to identify
66 X-Gene v1 PCIe MSI controller block.
7−- msi-controller: indicates that this is X-Gene v1 PCIe MSI controller node
7+- msi-controller: indicates that this is an X-Gene v1 PCIe MSI controller node
88 - reg: physical base address (0x79000000) and length (0x900000) for controller
99 registers. These registers include the MSI termination address and data
1010 registers as well as the MSI interrupt status registers.
@@ -13,7 +13,8 @@ Required properties: · 2 unmodified lines
1313 interrupt number 0x10 to 0x1f.
1414 - interrupt-names: not required
1515
16−Each PCIe node needs to have property msi-parent that points to msi controller node
16+Each PCIe node needs to have property msi-parent that points to an MSI
17+controller node
1718
1819 Examples:
1920
@@ -44,7 +45,6 @@ SoC DTSI: · 24 unmodified lines
4445
4546 + PCIe controller node with msi-parent property pointing to MSI node:
4647 pcie0: pcie@1f2b0000 {
47− status = "disabled";
4848 device_type = "pci";
4949 compatible = "apm,xgene-storm-pcie", "apm,xgene-pcie";
5050 #interrupt-cells = <1>;
Documentation/devicetree/bindings/pci/xgene-pci.txt+4−4
@@ -8,7 +8,7 @@ Required properties: · 7 unmodified lines
88 property.
99 - reg-names: Must include the following entries:
1010 "csr": controller configuration registers.
11− "cfg": pcie configuration space registers.
11+ "cfg": PCIe configuration space registers.
1212 - #address-cells: set to <3>
1313 - #size-cells: set to <2>
1414 - ranges: ranges for the outbound memory, I/O regions.
@@ -21,11 +21,11 @@ Required properties: · 6 unmodified lines
2121
2222 Optional properties:
2323 - status: Either "ok" or "disabled".
24−- dma-coherent: Present if dma operations are coherent
24+- dma-coherent: Present if DMA operations are coherent
2525
2626 Example:
2727
28−SoC specific DT Entry:
28+SoC-specific DT Entry:
2929
3030 pcie0: pcie@1f2b0000 {
3131 status = "disabled";
@@ -51,7 +51,7 @@ SoC specific DT Entry: · 19 unmodified lines
5151 };
5252
5353
54−Board specific DT Entry:
54+Board-specific DT Entry:
5555 &pcie0 {
5656 status = "ok";
5757 };
Documentation/devicetree/bindings/pci/xilinx-nwl-pcie.txt+4−3
@@ -15,9 +15,9 @@ Required properties: · 14 unmodified lines
1515 - device_type: must be "pci"
1616 - interrupts: Should contain NWL PCIe interrupt
1717 - interrupt-names: Must include the following entries:
18− "msi1, msi0": interrupt asserted when MSI is received
18+ "msi1, msi0": interrupt asserted when an MSI is received
1919 "intx": interrupt asserted when a legacy interrupt is received
20− "misc": interrupt asserted when miscellaneous is received
20+ "misc": interrupt asserted when miscellaneous interrupt is received
2121 - interrupt-map-mask and interrupt-map: standard PCI properties to define the
2222 mapping of the PCI interface to interrupt numbers.
2323 - ranges: ranges for the PCI memory regions (I/O space region is not
@@ -26,7 +26,8 @@ Required properties: · 2 unmodified lines
2626 detailed explanation
2727 - msi-controller: indicates that this is MSI controller node
2828 - msi-parent: MSI parent of the root complex itself
29−- legacy-interrupt-controller: Interrupt controller device node for Legacy interrupts
29+- legacy-interrupt-controller: Interrupt controller device node for Legacy
30+ interrupts
3031 - interrupt-controller: identifies the node as an interrupt controller
3132 - #interrupt-cells: should be set to 1
3233 - #address-cells: specifies the number of cells needed to encode an
Documentation/devicetree/bindings/phy/apm-xgene-phy.txt+0−3
@@ -61,19 +61,16 @@ Example: · 60 unmodified lines
6161 compatible = "apm,xgene-phy";
6262 reg = <0x0 0x1f21a000 0x0 0x100>;
6363 #phy-cells = <1>;
64− status = "disabled";
6564 };
6665
6766 phy2: phy@1f22a000 {
6867 compatible = "apm,xgene-phy";
6968 reg = <0x0 0x1f22a000 0x0 0x100>;
7069 #phy-cells = <1>;
71− status = "ok";
7270 };
7371
7472 phy3: phy@1f23a000 {
7573 compatible = "apm,xgene-phy";
7674 reg = <0x0 0x1f23a000 0x0 0x100>;
7775 #phy-cells = <1>;
78− status = "ok";
7976 };
Documentation/devicetree/bindings/phy/keystone-usb-phy.txt+0−1
@@ -16,5 +16,4 @@ usb_phy: usb_phy@2620738 { · 15 unmodified lines
1616 #address-cells = <1>;
1717 #size-cells = <1>;
1818 reg = <0x2620738 32>;
19− status = "disabled";
2019 };
Documentation/devicetree/bindings/phy/phy-bindings.txt+3−1
@@ -34,7 +34,9 @@ PHY user node · 33 unmodified lines
3434 =============
3535
3636 Required Properties:
37−phys : the phandle for the PHY device (used by the PHY subsystem)
37+phys : the phandle for the PHY device (used by the PHY subsystem; not to be
38+ confused with the Ethernet specific 'phy' and 'phy-handle' properties,
39+ see Documentation/devicetree/bindings/net/ethernet.txt for these)
3840 phy-names : the names of the PHY corresponding to the PHYs present in the
3941 *phys* phandle
4042
Documentation/devicetree/bindings/phy/phy-lantiq-rcu-usb2.txt+40−0
@@ -0,0 +1,40 @@
1+Lantiq XWAY SoC RCU USB 1.1/2.0 PHY binding
2+===========================================
3+
4+This binding describes the USB PHY hardware provided by the RCU module on the
5+Lantiq XWAY SoCs.
6+
7+This node has to be a sub node of the Lantiq RCU block.
8+
9+-------------------------------------------------------------------------------
10+Required properties (controller (parent) node):
11+- compatible : Should be one of
12+ "lantiq,ase-usb2-phy"
13+ "lantiq,danube-usb2-phy"
14+ "lantiq,xrx100-usb2-phy"
15+ "lantiq,xrx200-usb2-phy"
16+ "lantiq,xrx300-usb2-phy"
17+- reg : Defines the following sets of registers in the parent
18+ syscon device
19+ - Offset of the USB PHY configuration register
20+ - Offset of the USB Analog configuration
21+ register (only for xrx200 and xrx200)
22+- clocks : References to the (PMU) "phy" clk gate.
23+- clock-names : Must be "phy"
24+- resets : References to the RCU USB configuration reset bits.
25+- reset-names : Must be one of the following:
26+ "phy" (optional)
27+ "ctrl" (shared)
28+
29+-------------------------------------------------------------------------------
30+Example for the USB PHYs on an xRX200 SoC:
31+ usb_phy0: usb2-phy@18 {
32+ compatible = "lantiq,xrx200-usb2-phy";
33+ reg = <0x18 4>, <0x38 4>;
34+
35+ clocks = <&pmu PMU_GATE_USB0_PHY>;
36+ clock-names = "phy";
37+ resets = <&reset1 4 4>, <&reset0 4 4>;
38+ reset-names = "phy", "ctrl";
39+ #phy-cells = <0>;
40+ };
Documentation/devicetree/bindings/phy/phy-mtk-tphy.txtrenamed from Documentation/devicetree/bindings/phy/phy-mt65xx-usb.txt+12−9
@@ -1,13 +1,18 @@
1−mt65xx USB3.0 PHY binding
1+MediaTek T-PHY binding
22 --------------------------
33
4−This binding describes a usb3.0 phy for mt65xx platforms of Medaitek SoC.
4+T-phy controller supports physical layer functionality for a number of
5+controllers on MediaTek SoCs, such as, USB2.0, USB3.0, PCIe, and SATA.
56
67 Required properties (controller (parent) node):
78 - compatible : should be one of
8− "mediatek,mt2701-u3phy"
9− "mediatek,mt2712-u3phy"
10− "mediatek,mt8173-u3phy"
9+ "mediatek,generic-tphy-v1"
10+ "mediatek,generic-tphy-v2"
11+ "mediatek,mt2701-u3phy" (deprecated)
12+ "mediatek,mt2712-u3phy" (deprecated)
13+ "mediatek,mt8173-u3phy";
14+ make use of "mediatek,generic-tphy-v1" on mt2701 instead and
15+ "mediatek,generic-tphy-v2" on mt2712 instead.
1116 - clocks : (deprecated, use port's clocks instead) a list of phandle +
1217 clock-specifier pairs, one for each entry in clock-names
1318 - clock-names : (deprecated, use port's one instead) must contain
@@ -35,6 +40,8 @@ Required properties (port (child) node): · 21 unmodified lines
3540 cell after port phandle is phy type from:
3641 - PHY_TYPE_USB2
3742 - PHY_TYPE_USB3
43+ - PHY_TYPE_PCIE
44+ - PHY_TYPE_SATA
3845
3946 Example:
4047
@@ -44,14 +51,12 @@ u3phy: usb-phy@11290000 { · 3 unmodified lines
4451 #address-cells = <2>;
4552 #size-cells = <2>;
4653 ranges;
47− status = "okay";
4854
4955 u2port0: usb-phy@11290800 {
5056 reg = <0 0x11290800 0 0x100>;
5157 clocks = <&apmixedsys CLK_APMIXED_REF2USB_TX>;
5258 clock-names = "ref";
5359 #phy-cells = <1>;
54− status = "okay";
5560 };
5661
5762 u3port0: usb-phy@11290900 {
@@ -59,7 +64,6 @@ u3phy: usb-phy@11290000 { · 1 unmodified line
5964 clocks = <&clk26m>;
6065 clock-names = "ref";
6166 #phy-cells = <1>;
62− status = "okay";
6367 };
6468
6569 u2port1: usb-phy@11291000 {
@@ -67,7 +71,6 @@ u3phy: usb-phy@11290000 { · 1 unmodified line
6771 clocks = <&apmixedsys CLK_APMIXED_REF2USB_TX>;
6872 clock-names = "ref";
6973 #phy-cells = <1>;
70− status = "okay";
7174 };
7275 };
7376
Documentation/devicetree/bindings/phy/phy-mvebu-comphy.txt+43−0
@@ -0,0 +1,43 @@
1+mvebu comphy driver
2+-------------------
3+
4+A comphy controller can be found on Marvell Armada 7k/8k on the CP110. It
5+provides a number of shared PHYs used by various interfaces (network, sata,
6+usb, PCIe...).
7+
8+Required properties:
9+
10+- compatible: should be "marvell,comphy-cp110"
11+- reg: should contain the comphy register location and length.
12+- marvell,system-controller: should contain a phandle to the
13+ system controller node.
14+- #address-cells: should be 1.
15+- #size-cells: should be 0.
16+
17+A sub-node is required for each comphy lane provided by the comphy.
18+
19+Required properties (child nodes):
20+
21+- reg: comphy lane number.
22+- #phy-cells : from the generic phy bindings, must be 1. Defines the
23+ input port to use for a given comphy lane.
24+
25+Example:
26+
27+ cpm_comphy: phy@120000 {
28+ compatible = "marvell,comphy-cp110";
29+ reg = <0x120000 0x6000>;
30+ marvell,system-controller = <&cpm_syscon0>;
31+ #address-cells = <1>;
32+ #size-cells = <0>;
33+
34+ cpm_comphy0: phy@0 {
35+ reg = <0>;
36+ #phy-cells = <1>;
37+ };
38+
39+ cpm_comphy1: phy@1 {
40+ reg = <1>;
41+ #phy-cells = <1>;
42+ };
43+ };
Documentation/devicetree/bindings/phy/phy-mvebu.txt+0−1
@@ -18,7 +18,6 @@ Example: · 17 unmodified lines
1818 clocks = <&gate_clk 15>;
1919 clock-names = "sata";
2020 #phy-cells = <0>;
21− status = "ok";
2221 };
2322
2423 Armada 375 USB cluster
Documentation/devicetree/bindings/phy/phy-rockchip-inno-usb2.txt+10−3
@@ -6,6 +6,7 @@ Required properties (phy (parent) node): · 5 unmodified lines
66 * "rockchip,rk3328-usb2phy"
77 * "rockchip,rk3366-usb2phy"
88 * "rockchip,rk3399-usb2phy"
9+ * "rockchip,rv1108-usb2phy"
910 - reg : the address offset of grf for usb-phy configuration.
1011 - #clock-cells : should be 0.
1112 - clock-output-names : specify the 480m output clock name.
@@ -18,6 +19,10 @@ Optional properties: · 6 unmodified lines
1819 usb-phy output 480m and xin24m.
1920 Refer to clk/clock-bindings.txt for generic clock
2021 consumer properties.
22+ - rockchip,usbgrf : phandle to the syscon managing the "usb general
23+ register files". When set driver will request its
24+ phandle as one companion-grf for some special SoCs
25+ (e.g RV1108).
2126
2227 Required nodes : a sub-node is required for each port the phy provides.
2328 The sub-node name is used to identify host or otg port,
@@ -28,10 +33,14 @@ Required nodes : a sub-node is required for each port the phy provides. · 4 unmodified lines
2833 Required properties (port (child) node):
2934 - #phy-cells : must be 0. See ./phy-bindings.txt for details.
3035 - interrupts : specify an interrupt for each entry in interrupt-names.
31− - interrupt-names : a list which shall be the following entries:
36+ - interrupt-names : a list which should be one of the following cases:
37+ Regular case:
3238 * "otg-id" : for the otg id interrupt.
3339 * "otg-bvalid" : for the otg vbus interrupt.
3440 * "linestate" : for the host/otg linestate interrupt.
41+ Some SoCs use one interrupt with the above muxed together, so for these
42+ * "otg-mux" : otg-port interrupt, which mux otg-id/otg-bvalid/linestate
43+ to one.
3544
3645 Optional properties:
3746 - phy-supply : phandle to a regulator that provides power to VBUS.
@@ -58,14 +67,12 @@ grf: syscon@ff770000 { · 20 unmodified lines
5867 <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>,
5968 <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
6069 interrupt-names = "otg-id", "otg-bvalid", "linestate";
61− status = "okay";
6270 };
6371
6472 u2phy_host: host-port {
6573 #phy-cells = <0>;
6674 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
6775 interrupt-names = "linestate";
68− status = "okay";
6976 };
7077 };
7178 };
Documentation/devicetree/bindings/phy/qcom-dwc3-usb-phy.txt+0−2
@@ -25,7 +25,6 @@ Example: · 24 unmodified lines
2525 clock-names = "ref";
2626 #phy-cells = <0>;
2727
28− status = "ok";
2928 };
3029
3130 phy@100f8830 {
@@ -35,5 +34,4 @@ Example: · 3 unmodified lines
3534 clock-names = "ref";
3635 #phy-cells = <0>;
3736
38− status = "ok";
3937 };
Documentation/devicetree/bindings/phy/qcom-qmp-phy.txt+11−0
@@ -6,6 +6,7 @@ controllers on Qualcomm chipsets, such as, PCIe, UFS, and USB. · 5 unmodified lines
66
77 Required properties:
88 - compatible: compatible list, contains:
9+ "qcom,ipq8074-qmp-pcie-phy" for PCIe phy on IPQ8074
910 "qcom,msm8996-qmp-pcie-phy" for 14nm PCIe phy on msm8996,
1011 "qcom,msm8996-qmp-usb3-phy" for 14nm USB3 phy on msm8996.
1112
@@ -38,6 +39,8 @@ Required properties: · 26 unmodified lines
3839 "phy", "common", "cfg".
3940 For "qcom,msm8996-qmp-usb3-phy" must contain
4041 "phy", "common".
42+ For "qcom,ipq8074-qmp-pcie-phy" must contain:
43+ "phy", "common".
4144
4245 - vdda-phy-supply: Phandle to a regulator supply to PHY core block.
4346 - vdda-pll-supply: Phandle to 1.8V regulator supply to PHY refclk pll block.
@@ -60,6 +63,13 @@ Required properties for child node: · 16 unmodified lines
6063 one for each entry in clock-names.
6164 - clock-names: Must contain following for pcie and usb qmp phys:
6265 "pipe<lane-number>" for pipe clock specific to each lane.
66+ - clock-output-names: Name of the PHY clock that will be the parent for
67+ the above pipe clock.
68+
69+ For "qcom,ipq8074-qmp-pcie-phy":
70+ - "pcie20_phy0_pipe_clk" Pipe Clock parent
71+ (or)
72+ "pcie20_phy1_pipe_clk"
6373
6474 - resets: a list of phandles and reset controller specifier pairs,
6575 one for each entry in reset-names.
@@ -96,6 +106,7 @@ Example: · 30 unmodified lines
96106
97107 clocks = <&gcc GCC_PCIE_0_PIPE_CLK>;
98108 clock-names = "pipe0";
109+ clock-output-names = "pcie_0_pipe_clk_src";
99110 resets = <&gcc GCC_PCIE_0_PHY_BCR>;
100111 reset-names = "lane0";
101112 };
Documentation/devicetree/bindings/phy/ralink-usb-phy.txt+23−0
@@ -0,0 +1,23 @@
1+Mediatek/Ralink USB PHY
2+
3+Required properties:
4+ - compatible: "ralink,rt3352-usbphy"
5+ "mediatek,mt7620-usbphy"
6+ "mediatek,mt7628-usbphy"
7+ - reg: required for "mediatek,mt7628-usbphy", unused otherwise
8+ - #phy-cells: should be 0
9+ - ralink,sysctl: a phandle to a ralink syscon register region
10+ - resets: the two reset controllers for host and device
11+ - reset-names: the names of the 2 reset controllers
12+
13+Example:
14+
15+usbphy: phy {
16+ compatible = "mediatek,mt7628-usbphy";
17+ reg = <0x10120000 0x1000>;
18+ #phy-cells = <0>;
19+
20+ ralink,sysctl = <&sysc>;
21+ resets = <&rstctrl 22 &rstctrl 25>;
22+ reset-names = "host", "device";
23+};
Documentation/devicetree/bindings/phy/rockchip-pcie-phy.txt+6−1
@@ -3,7 +3,6 @@ Rockchip PCIE PHY · 2 unmodified lines
33
44 Required properties:
55 - compatible: rockchip,rk3399-pcie-phy
6− - #phy-cells: must be 0
76 - clocks: Must contain an entry in clock-names.
87 See ../clocks/clock-bindings.txt for details.
98 - clock-names: Must be "refclk"
@@ -11,6 +10,12 @@ Required properties: · 1 unmodified line
1110 See ../reset/reset.txt for details.
1211 - reset-names: Must be "phy"
1312
13+Required properties for legacy PHY mode (deprecated):
14+ - #phy-cells: must be 0
15+
16+Required properties for per-lane PHY mode (preferred):
17+ - #phy-cells: must be 1
18+
1419 Example:
1520
1621 grf: syscon@ff770000 {
Documentation/devicetree/bindings/phy/samsung-phy.txt+0−1
@@ -82,7 +82,6 @@ usbphy: phy@125b0000 { · 81 unmodified lines
8282 reg = <0x125b0000 0x100>;
8383 clocks = <&clock 305>, <&clock 2>;
8484 clock-names = "phy", "ref";
85− status = "okay";
8685 #phy-cells = <1>;
8786 samsung,sysreg-phandle = <&sys_reg>;
8887 samsung,pmureg-phandle = <&pmu_reg>;
Documentation/devicetree/bindings/phy/sun4i-usb-phy.txt+8−2
@@ -9,6 +9,7 @@ Required properties: · 8 unmodified lines
99 * allwinner,sun7i-a20-usb-phy
1010 * allwinner,sun8i-a23-usb-phy
1111 * allwinner,sun8i-a33-usb-phy
12+ * allwinner,sun8i-a83t-usb-phy
1213 * allwinner,sun8i-h3-usb-phy
1314 * allwinner,sun8i-v3s-usb-phy
1415 * allwinner,sun50i-a64-usb-phy
@@ -17,18 +18,22 @@ Required properties: · 2 unmodified lines
1718 * "phy_ctrl"
1819 * "pmu0" for H3, V3s and A64
1920 * "pmu1"
20− * "pmu2" for sun4i, sun6i or sun7i
21+ * "pmu2" for sun4i, sun6i, sun7i, sun8i-a83t or sun8i-h3
22+ * "pmu3" for sun8i-h3
2123 - #phy-cells : from the generic phy bindings, must be 1
2224 - clocks : phandle + clock specifier for the phy clocks
2325 - clock-names :
2426 * "usb_phy" for sun4i, sun5i or sun7i
2527 * "usb0_phy", "usb1_phy" and "usb2_phy" for sun6i
2628 * "usb0_phy", "usb1_phy" for sun8i
29+ * "usb0_phy", "usb1_phy", "usb2_phy" and "usb2_hsic_12M" for sun8i-a83t
30+ * "usb0_phy", "usb1_phy", "usb2_phy" and "usb3_phy" for sun8i-h3
2731 - resets : a list of phandle + reset specifier pairs
2832 - reset-names :
2933 * "usb0_reset"
3034 * "usb1_reset"
31− * "usb2_reset" for sun4i, sun6i or sun7i
35+ * "usb2_reset" for sun4i, sun6i, sun7i, sun8i-a83t or sun8i-h3
36+ * "usb3_reset" for sun8i-h3
3237
3338 Optional properties:
3439 - usb0_id_det-gpios : gpio phandle for reading the otg id pin value
@@ -37,6 +42,7 @@ Optional properties: · 2 unmodified lines
3742 - usb0_vbus-supply : regulator phandle for controller usb0 vbus
3843 - usb1_vbus-supply : regulator phandle for controller usb1 vbus
3944 - usb2_vbus-supply : regulator phandle for controller usb2 vbus
45+- usb3_vbus-supply : regulator phandle for controller usb3 vbus
4046
4147 Example:
4248 usbphy: phy@0x01c13400 {
Documentation/devicetree/bindings/phy/sun9i-usb-phy.txt+0−1
@@ -33,6 +33,5 @@ Example: · 32 unmodified lines
3333 clock-names = "hsic_480M", "hsic_12M", "phy";
3434 resets = <&usb_phy_clk 18>, <&usb_phy_clk 19>;
3535 reset-names = "hsic", "phy";
36− status = "disabled";
3736 #phy-cells = <0>;
3837 };
Documentation/devicetree/bindings/pinctrl/atmel,at91-pinctrl.txt+0−1
@@ -148,5 +148,4 @@ dbgu: serial@fffff200 { · 147 unmodified lines
148148 interrupts = <1 4 7>;
149149 pinctrl-names = "default";
150150 pinctrl-0 = <&pinctrl_dbgu>;
151− status = "disabled";
152151 };
Documentation/devicetree/bindings/pinctrl/cortina,gemini-pinctrl.txt+59−0
@@ -0,0 +1,59 @@
1+Cortina Systems Gemini pin controller
2+
3+This pin controller is found in the Cortina Systems Gemini SoC family,
4+see further arm/gemini.txt. It is a purely group-based multiplexing pin
5+controller.
6+
7+The pin controller node must be a subnode of the system controller node.
8+
9+Required properties:
10+- compatible: "cortina,gemini-pinctrl"
11+
12+Subnodes of the pin controller contain pin control multiplexing set-up.
13+Please refer to pinctrl-bindings.txt for generic pin multiplexing nodes.
14+
15+Example:
16+
17+
18+syscon {
19+ compatible = "cortina,gemini-syscon";
20+ ...
21+ pinctrl {
22+ compatible = "cortina,gemini-pinctrl";
23+ pinctrl-names = "default";
24+ pinctrl-0 = <&dram_default_pins>, <&system_default_pins>,
25+ <&vcontrol_default_pins>;
26+
27+ dram_default_pins: pinctrl-dram {
28+ mux {
29+ function = "dram";
30+ groups = "dramgrp";
31+ };
32+ };
33+ rtc_default_pins: pinctrl-rtc {
34+ mux {
35+ function = "rtc";
36+ groups = "rtcgrp";
37+ };
38+ };
39+ power_default_pins: pinctrl-power {
40+ mux {
41+ function = "power";
42+ groups = "powergrp";
43+ };
44+ };
45+ system_default_pins: pinctrl-system {
46+ mux {
47+ function = "system";
48+ groups = "systemgrp";
49+ };
50+ };
51+ (...)
52+ uart_default_pins: pinctrl-uart {
53+ mux {
54+ function = "uart";
55+ groups = "uartrxtxgrp";
56+ };
57+ };
58+ };
59+};
Documentation/devicetree/bindings/pinctrl/fsl,imx-pinctrl.txt+0−1
@@ -61,7 +61,6 @@ Examples: · 60 unmodified lines
6161 usdhc@0219c000 { /* uSDHC4 */
6262 non-removable;
6363 vmmc-supply = <&reg_3p3v>;
64− status = "okay";
6564 pinctrl-names = "default";
6665 pinctrl-0 = <&pinctrl_usdhc4_1>;
6766 };
Documentation/devicetree/bindings/pinctrl/fsl,imx7d-pinctrl.txt+0−1
@@ -61,7 +61,6 @@ iomuxc-lpsr controller and SDA pad from iomuxc controller as: · 60 unmodified lines
6161 i2c1: i2c@30a20000 {
6262 pinctrl-names = "default";
6363 pinctrl-0 = <&pinctrl_i2c1_1 &pinctrl_i2c1_2>;
64− status = "okay";
6564 };
6665
6766 iomuxc-lpsr@302c0000 {
Documentation/devicetree/bindings/pinctrl/fsl,imx7ulp-pinctrl.txt+61−0
@@ -0,0 +1,61 @@
1+* Freescale i.MX7ULP IOMUX Controller
2+
3+i.MX 7ULP has three IOMUXC instances: IOMUXC0 for M4 ports, IOMUXC1 for A7
4+ports and IOMUXC DDR for DDR interface.
5+
6+Note:
7+This binding doc is only for the IOMUXC1 support in A7 Domain and it only
8+supports generic pin config.
9+
10+Please also refer pinctrl-bindings.txt in this directory for generic pinctrl
11+binding.
12+
13+=== Pin Controller Node ===
14+
15+Required properties:
16+- compatible: "fsl,imx7ulp-iomuxc1"
17+- reg: Should contain the base physical address and size of the iomuxc
18+ registers.
19+
20+=== Pin Configuration Node ===
21+- pinmux: One integers array, represents a group of pins mux setting.
22+ The format is pinmux = <PIN_FUNC_ID>, PIN_FUNC_ID is a pin working on
23+ a specific function.
24+
25+ NOTE: i.MX7ULP PIN_FUNC_ID consists of 4 integers as it shares one mux
26+ and config register as follows:
27+ <mux_conf_reg input_reg mux_mode input_val>
28+
29+ Refer to imx7ulp-pinfunc.h in in device tree source folder for all
30+ available imx7ulp PIN_FUNC_ID.
31+
32+Optional Properties:
33+- drive-strength Integer. Controls Drive Strength
34+ 0: Standard
35+ 1: Hi Driver
36+- drive-push-pull Bool. Enable Pin Push-pull
37+- drive-open-drain Bool. Enable Pin Open-drian
38+- slew-rate: Integer. Controls Slew Rate
39+ 0: Standard
40+ 1: Slow
41+- bias-disable: Bool. Pull disabled
42+- bias-pull-down: Bool. Pull down on pin
43+- bias-pull-up: Bool. Pull up on pin
44+
45+Examples:
46+#include "imx7ulp-pinfunc.h"
47+
48+/* Pin Controller Node */
49+iomuxc1: iomuxc@40ac0000 {
50+ compatible = "fsl,imx7ulp-iomuxc1";
51+ reg = <0x40ac0000 0x1000>;
52+
53+ /* Pin Configuration Node */
54+ pinctrl_lpuart4: lpuart4grp {
55+ pinmux = <
56+ IMX7ULP_PAD_PTC3__LPUART4_RX
57+ IMX7ULP_PAD_PTC2__LPUART4_TX
58+ >;
59+ bias-pull-up;
60+ };
61+};
Documentation/devicetree/bindings/pinctrl/nvidia,tegra124-dpaux-padctl.txt+0−1
@@ -56,5 +56,4 @@ Example: · 55 unmodified lines
5656 pinctrl-0 = <&state_dpaux_i2c>;
5757 pinctrl-1 = <&state_dpaux_off>;
5858 pinctrl-names = "default", "idle";
59− status = "disabled";
6059 };
Documentation/devicetree/bindings/pinctrl/oxnas,pinctrl.txt+0−1
@@ -50,7 +50,6 @@ uart2: serial@900000 { · 49 unmodified lines
5050 reg-io-width = <1>;
5151 current-speed = <115200>;
5252 no-loopback-test;
53− status = "disabled";
5453 resets = <&reset 22>;
5554 pinctrl-names = "default";
5655 pinctrl-0 = <&pinctrl_uart2>;
Documentation/devicetree/bindings/pinctrl/pinctrl-aspeed.txt+5−3
@@ -69,8 +69,9 @@ PWM1 PWM2 PWM3 PWM4 PWM5 PWM6 PWM7 RGMII1 RGMII2 RMII1 RMII2 ROM16 ROM8 ROMCS1 · 68 unmodified lines
6969 ROMCS2 ROMCS3 ROMCS4 RXD1 RXD2 RXD3 RXD4 SALT1 SALT2 SALT3 SALT4 SD1 SD2 SGPMCK
7070 SGPMI SGPMLD SGPMO SGPSCK SGPSI0 SGPSI1 SGPSLD SIOONCTRL SIOPBI SIOPBO SIOPWREQ
7171 SIOPWRGD SIOS3 SIOS5 SIOSCI SPI1 SPI1DEBUG SPI1PASSTHRU SPICS1 TIMER3 TIMER4
72−TIMER5 TIMER6 TIMER7 TIMER8 TXD1 TXD2 TXD3 TXD4 UART6 USBCKI VGABIOS_ROM VGAHS
73−VGAVS VPI18 VPI24 VPI30 VPO12 VPO24 WDTRST1 WDTRST2
72+TIMER5 TIMER6 TIMER7 TIMER8 TXD1 TXD2 TXD3 TXD4 UART6 USB11D1 USB11H2 USB2D1
73+USB2H1 USBCKI VGABIOS_ROM VGAHS VGAVS VPI18 VPI24 VPI30 VPO12 VPO24 WDTRST1
74+WDTRST2
7475
7576 aspeed,ast2500-pinctrl, aspeed,g5-pinctrl:
7677
@@ -86,7 +87,8 @@ SALT11 SALT12 SALT13 SALT14 SALT2 SALT3 SALT4 SALT5 SALT6 SALT7 SALT8 SALT9 · 9 unmodified lines
8687 SCL1 SCL2 SD1 SD2 SDA1 SDA2 SGPS1 SGPS2 SIOONCTRL SIOPBI SIOPBO SIOPWREQ
8788 SIOPWRGD SIOS3 SIOS5 SIOSCI SPI1 SPI1CS1 SPI1DEBUG SPI1PASSTHRU SPI2CK SPI2CS0
8889 SPI2CS1 SPI2MISO SPI2MOSI TIMER3 TIMER4 TIMER5 TIMER6 TIMER7 TIMER8 TXD1 TXD2
89−TXD3 TXD4 UART6 USBCKI VGABIOSROM VGAHS VGAVS VPI24 VPO WDTRST1 WDTRST2
90+TXD3 TXD4 UART6 USB11BHID USB2AD USB2AH USB2BD USB2BH USBCKI VGABIOSROM VGAHS
91+VGAVS VPI24 VPO WDTRST1 WDTRST2
9092
9193 Examples
9294 ========
Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt+2−0
@@ -268,6 +268,8 @@ output-enable - enable output on a pin without actively driving it · 267 unmodified lines
268268 (such as enabling an output buffer)
269269 output-low - set the pin to output mode with low level
270270 output-high - set the pin to output mode with high level
271+sleep-hardware-state - indicate this is sleep related state which will be programmed
272+ into the registers for the sleep state.
271273 slew-rate - set the slew rate
272274
273275 For example:
Documentation/devicetree/bindings/pinctrl/pinctrl-mt65xx.txt+1−0
@@ -5,6 +5,7 @@ The Mediatek's Pin controller is used to control SoC pins. · 4 unmodified lines
55 Required properties:
66 - compatible: value should be one of the following.
77 "mediatek,mt2701-pinctrl", compatible with mt2701 pinctrl.
8+ "mediatek,mt2712-pinctrl", compatible with mt2712 pinctrl.
89 "mediatek,mt6397-pinctrl", compatible with mt6397 pinctrl.
910 "mediatek,mt7623-pinctrl", compatible with mt7623 pinctrl.
1011 "mediatek,mt8127-pinctrl", compatible with mt8127 pinctrl.
Documentation/devicetree/bindings/pinctrl/pinctrl-rk805.txt+63−0
@@ -0,0 +1,63 @@
1+Pincontrol driver for RK805 Power management IC.
2+
3+RK805 has 2 pins which can be configured as GPIO output only.
4+
5+Please refer file <devicetree/bindings/pinctrl/pinctrl-bindings.txt>
6+for details of the common pinctrl bindings used by client devices,
7+including the meaning of the phrase "pin configuration node".
8+
9+Optional Pinmux properties:
10+--------------------------
11+Following properties are required if default setting of pins are required
12+at boot.
13+- pinctrl-names: A pinctrl state named per <pinctrl-binding.txt>.
14+- pinctrl[0...n]: Properties to contain the phandle for pinctrl states per
15+ <pinctrl-binding.txt>.
16+
17+The pin configurations are defined as child of the pinctrl states node. Each
18+sub-node have following properties:
19+
20+Required properties:
21+------------------
22+- #gpio-cells: Should be two. The first cell is the pin number and the
23+ second is the GPIO flags.
24+
25+- gpio-controller: Marks the device node as a GPIO controller.
26+
27+- pins: List of pins. Valid values of pins properties are: gpio0, gpio1.
28+
29+First 2 properties must be added in the RK805 PMIC node, documented in
30+Documentation/devicetree/bindings/mfd/rk808.txt
31+
32+Optional properties:
33+-------------------
34+Following are optional properties defined as pinmux DT binding document
35+<pinctrl-bindings.txt>. Absence of properties will leave the configuration
36+on default.
37+ function,
38+ output-low,
39+ output-high.
40+
41+Valid values for function properties are: gpio.
42+
43+Theres is also not customised properties for any GPIO.
44+
45+Example:
46+--------
47+rk805: rk805@18 {
48+ compatible = "rockchip,rk805";
49+ ...
50+ gpio-controller;
51+ #gpio-cells = <2>;
52+
53+ pinctrl-names = "default";
54+ pinctrl-0 = <&pmic_int_l>, <&rk805_default>;
55+
56+ rk805_default: pinmux {
57+ gpio01 {
58+ pins = "gpio0", "gpio1";
59+ function = "gpio";
60+ output-high;
61+ };
62+ };
63+};
Documentation/devicetree/bindings/pinctrl/pinctrl-zx.txt+0−1
@@ -81,5 +81,4 @@ pmm: pin-controller@1462000 { · 80 unmodified lines
8181 &vga {
8282 pinctrl-names = "default";
8383 pinctrl-0 = <&vga_pins>;
84− status = "okay";
8584 };
Documentation/devicetree/bindings/pinctrl/qcom,apq8064-pinctrl.txt+2−1
@@ -46,7 +46,8 @@ Valid values for pins are: · 45 unmodified lines
4646 gpio0-gpio89
4747
4848 Valid values for function are:
49− cam_mclk, codec_mic_i2s, codec_spkr_i2s, gpio, gsbi1, gsbi2, gsbi3, gsbi4,
49+ cam_mclk, codec_mic_i2s, codec_spkr_i2s, gp_clk_0a, gp_clk_0b, gp_clk_1a,
50+ gp_clk_1b, gp_clk_2a, gp_clk_2b, gpio, gsbi1, gsbi2, gsbi3, gsbi4,
5051 gsbi4_cam_i2c, gsbi5, gsbi5_spi_cs1, gsbi5_spi_cs2, gsbi5_spi_cs3, gsbi6,
5152 gsbi6_spi_cs1, gsbi6_spi_cs2, gsbi6_spi_cs3, gsbi7, gsbi7_spi_cs1,
5253 gsbi7_spi_cs2, gsbi7_spi_cs3, gsbi_cam_i2c, hdmi, mi2s, riva_bt, riva_fm,
Documentation/devicetree/bindings/pinctrl/qcom,ipq4019-pinctrl.txt+5−1
@@ -50,7 +50,11 @@ Valid values for qcom,pins are: · 49 unmodified lines
5050 Supports mux, bias and drive-strength
5151
5252 Valid values for qcom,function are:
53−gpio, blsp_uart1, blsp_i2c0, blsp_i2c1, blsp_uart0, blsp_spi1, blsp_spi0
53+aud_pin, audio_pwm, blsp_i2c0, blsp_i2c1, blsp_spi0, blsp_spi1, blsp_uart0,
54+blsp_uart1, chip_rst, gpio, i2s_rx, i2s_spdif_in, i2s_spdif_out, i2s_td, i2s_tx,
55+jtag, led0, led1, led2, led3, led4, led5, led6, led7, led8, led9, led10, led11,
56+mdc, mdio, pcie, pmu, prng_rosc, qpic, rgmii, rmii, sdio, smart0, smart1,
57+smart2, smart3, tm, wifi0, wifi1
5458
5559 Example:
5660
Documentation/devicetree/bindings/pinctrl/qcom,pmic-gpio.txt+25−1
@@ -16,6 +16,7 @@ PMIC's from Qualcomm. · 15 unmodified lines
1616 "qcom,pm8941-gpio"
1717 "qcom,pm8994-gpio"
1818 "qcom,pma8084-gpio"
19+ "qcom,pmi8994-gpio"
1920
2021 And must contain either "qcom,spmi-gpio" or "qcom,ssbi-gpio"
2122 if the device is on an spmi bus or an ssbi bus respectively
@@ -85,6 +86,7 @@ to specify in a pin configuration subnode: · 63 unmodified lines
8586 gpio1-gpio36 for pm8941
8687 gpio1-gpio22 for pm8994
8788 gpio1-gpio22 for pma8084
89+ gpio1-gpio10 for pmi8994
8890
8991 - function:
9092 Usage: required
@@ -98,7 +100,10 @@ to specify in a pin configuration subnode: · 7 unmodified lines
98100 "dtest1",
99101 "dtest2",
100102 "dtest3",
101− "dtest4"
103+ "dtest4",
104+ And following values are supported by LV/MV GPIO subtypes:
105+ "func3",
106+ "func4"
102107
103108 - bias-disable:
104109 Usage: optional
@@ -183,6 +188,25 @@ to specify in a pin configuration subnode: · 78 unmodified lines
183188 Value type: <none>
184189 Definition: The specified pins are configured in open-source mode.
185190
191+- qcom,analog-pass:
192+ Usage: optional
193+ Value type: <none>
194+ Definition: The specified pins are configured in analog-pass-through mode.
195+
196+- qcom,atest:
197+ Usage: optional
198+ Value type: <u32>
199+ Definition: Selects ATEST rail to route to GPIO when it's configured
200+ in analog-pass-through mode.
201+ Valid values are 1-4 corresponding to ATEST1 to ATEST4.
202+
203+- qcom,dtest-buffer:
204+ Usage: optional
205+ Value type: <u32>
206+ Definition: Selects DTEST rail to route to GPIO when it's configured
207+ as digital input.
208+ Valid values are 1-4 corresponding to DTEST1 to DTEST4.
209+
186210 Example:
187211
188212 pm8921_gpio: gpio@150 {
Documentation/devicetree/bindings/pinctrl/renesas,pfc-pinctrl.txt+2−2
@@ -24,6 +24,7 @@ Required Properties: · 23 unmodified lines
2424 - "renesas,pfc-r8a7794": for R8A7794 (R-Car E2) compatible pin-controller.
2525 - "renesas,pfc-r8a7795": for R8A7795 (R-Car H3) compatible pin-controller.
2626 - "renesas,pfc-r8a7796": for R8A7796 (R-Car M3-W) compatible pin-controller.
27+ - "renesas,pfc-r8a77995": for R8A77995 (R-Car D3) compatible pin-controller.
2728 - "renesas,pfc-sh73a0": for SH73A0 (SH-Mobile AG5) compatible pin-controller.
2829
2930 - reg: Base address and length of each memory resource used by the pin
@@ -111,7 +112,7 @@ Examples · 81 unmodified lines
111112
112113 Example 1: SH73A0 (SH-Mobile AG5) pin controller node
113114
114− pfc: pfc@e6050000 {
115+ pfc: pin-controller@e6050000 {
115116 compatible = "renesas,pfc-sh73a0";
116117 reg = <0xe6050000 0x8000>,
117118 <0xe605801c 0x1c>;
@@ -172,5 +173,4 @@ Example 4: KZM-A9-GT (SH-Mobile AG5) default pin state for the MMCIF device · 54 unmodified lines
172173
173174 bus-width = <8>;
174175 vmmc-supply = <&reg_1p8v>;
175− status = "okay";
176176 };
Documentation/devicetree/bindings/pinctrl/rockchip,pinctrl.txt+1−1
@@ -24,6 +24,7 @@ Required properties for iomux controller: · 23 unmodified lines
2424 "rockchip,rk2928-pinctrl": for Rockchip RK2928
2525 "rockchip,rk3066a-pinctrl": for Rockchip RK3066a
2626 "rockchip,rk3066b-pinctrl": for Rockchip RK3066b
27+ "rockchip,rk3128-pinctrl": for Rockchip RK3128
2728 "rockchip,rk3188-pinctrl": for Rockchip RK3188
2829 "rockchip,rk3228-pinctrl": for Rockchip RK3228
2930 "rockchip,rk3288-pinctrl": for Rockchip RK3288
@@ -120,7 +121,6 @@ uart2: serial@20064000 { · 90 unmodified lines
120121 reg-shift = <2>;
121122 reg-io-width = <1>;
122123 clocks = <&mux_uart2>;
123− status = "okay";
124124
125125 pinctrl-names = "default";
126126 pinctrl-0 = <&uart2_xfer>;
Documentation/devicetree/bindings/pinctrl/sprd,pinctrl.txt+83−0
@@ -0,0 +1,83 @@
1+* Spreadtrum Pin Controller
2+
3+The Spreadtrum pin controller are organized in 3 blocks (types).
4+
5+The first block comprises some global control registers, and each
6+register contains several bit fields with one bit or several bits
7+to configure for some global common configuration, such as domain
8+pad driving level, system control select and so on ("domain pad
9+driving level": One pin can output 3.0v or 1.8v, depending on the
10+related domain pad driving selection, if the related domain pad
11+slect 3.0v, then the pin can output 3.0v. "system control" is used
12+to choose one function (like: UART0) for which system, since we
13+have several systems (AP/CP/CM4) on one SoC.).
14+
15+There are too much various configuration that we can not list all
16+of them, so we can not make every Spreadtrum-special configuration
17+as one generic configuration, and maybe it will add more strange
18+global configuration in future. Then we add one "sprd,control" to
19+set these various global control configuration, and we need use
20+magic number for this property.
21+
22+Moreover we recognise every fields comprising one bit or several
23+bits in one global control register as one pin, thus we should
24+record every pin's bit offset, bit width and register offset to
25+configure this field (pin).
26+
27+The second block comprises some common registers which have unified
28+register definition, and each register described one pin is used
29+to configure the pin sleep mode, function select and sleep related
30+configuration.
31+
32+Now we have 4 systems for sleep mode on SC9860 SoC: AP system,
33+PUBCP system, TGLDSP system and AGDSP system. And the pin sleep
34+related configuration are:
35+- input-enable
36+- input-disable
37+- output-high
38+- output-low
39+- bias-pull-up
40+- bias-pull-down
41+
42+In some situation we need set the pin sleep mode and pin sleep related
43+configuration, to set the pin sleep related configuration automatically
44+by hardware when the system specified by sleep mode goes into deep
45+sleep mode. For example, if we set the pin sleep mode as PUBCP_SLEEP
46+and set the pin sleep related configuration as "input-enable", which
47+means when PUBCP system goes into deep sleep mode, this pin will be set
48+input enable automatically.
49+
50+Moreover we can not use the "sleep" state, since some systems (like:
51+PUBCP system) do not run linux kernel OS (only AP system run linux
52+kernel on SC9860 platform), then we can not select "sleep" state
53+when the PUBCP system goes into deep sleep mode. Thus we introduce
54+"sprd,sleep-mode" property to set pin sleep mode.
55+
56+The last block comprises some misc registers which also have unified
57+register definition, and each register described one pin is used to
58+configure drive strength, pull up/down and so on. Especially for pull
59+up, we have two kind pull up resistor: 20K and 4.7K.
60+
61+Required properties for Spreadtrum pin controller:
62+- compatible: "sprd,<soc>-pinctrl"
63+ Please refer to each sprd,<soc>-pinctrl.txt binding doc for supported SoCs.
64+- reg: The register address of pin controller device.
65+- pins : An array of pin names.
66+
67+Optional properties:
68+- function: Specified the function name.
69+- drive-strength: Drive strength in mA.
70+- input-schmitt-disable: Enable schmitt-trigger mode.
71+- input-schmitt-enable: Disable schmitt-trigger mode.
72+- bias-disable: Disable pin bias.
73+- bias-pull-down: Pull down on pin.
74+- bias-pull-up: Pull up on pin.
75+- input-enable: Enable pin input.
76+- input-disable: Enable pin output.
77+- output-high: Set the pin as an output level high.
78+- output-low: Set the pin as an output level low.
79+- sleep-hardware-state: Indicate these configs in this state are sleep related.
80+- sprd,control: Control values referring to databook for global control pins.
81+- sprd,sleep-mode: Sleep mode selection.
82+
83+Please refer to each sprd,<soc>-pinctrl.txt binding doc for supported values.
Documentation/devicetree/bindings/pinctrl/sprd,sc9860-pinctrl.txt+70−0
@@ -0,0 +1,70 @@
1+* Spreadtrum SC9860 Pin Controller
2+
3+Please refer to sprd,pinctrl.txt in this directory for common binding part
4+and usage.
5+
6+Required properties:
7+- compatible: Must be "sprd,sc9860-pinctrl".
8+- reg: The register address of pin controller device.
9+- pins : An array of strings, each string containing the name of a pin.
10+
11+Optional properties:
12+- function: A string containing the name of the function, values must be
13+ one of: "func1", "func2", "func3" and "func4".
14+- drive-strength: Drive strength in mA. Supported values: 2, 4, 6, 8, 10,
15+ 12, 14, 16, 20, 21, 24, 25, 27, 29, 31 and 33.
16+- input-schmitt-disable: Enable schmitt-trigger mode.
17+- input-schmitt-enable: Disable schmitt-trigger mode.
18+- bias-disable: Disable pin bias.
19+- bias-pull-down: Pull down on pin.
20+- bias-pull-up: Pull up on pin. Supported values: 20000 for pull-up resistor
21+ is 20K and 4700 for pull-up resistor is 4.7K.
22+- input-enable: Enable pin input.
23+- input-disable: Enable pin output.
24+- output-high: Set the pin as an output level high.
25+- output-low: Set the pin as an output level low.
26+- sleep-hardware-state: Indicate these configs in this state are sleep related.
27+- sprd,control: Control values referring to databook for global control pins.
28+- sprd,sleep-mode: Choose the pin sleep mode, and supported values are:
29+ AP_SLEEP, PUBCP_SLEEP, TGLDSP_SLEEP and AGDSP_SLEEP.
30+
31+Pin sleep mode definition:
32+enum pin_sleep_mode {
33+ AP_SLEEP = BIT(0),
34+ PUBCP_SLEEP = BIT(1),
35+ TGLDSP_SLEEP = BIT(2),
36+ AGDSP_SLEEP = BIT(3),
37+};
38+
39+Example:
40+pin_controller: pinctrl@402a0000 {
41+ compatible = "sprd,sc9860-pinctrl";
42+ reg = <0x402a0000 0x10000>;
43+
44+ grp1: sd0 {
45+ pins = "SC9860_VIO_SD2_IRTE", "SC9860_VIO_SD0_IRTE";
46+ sprd,control = <0x1>;
47+ };
48+
49+ grp2: rfctl_33 {
50+ pins = "SC9860_RFCTL33";
51+ function = "func2";
52+ sprd,sleep-mode = <AP_SLEEP | PUBCP_SLEEP>;
53+ grp2_sleep_mode: rfctl_33_sleep {
54+ pins = "SC9860_RFCTL33";
55+ sleep-hardware-state;
56+ output-low;
57+ }
58+ };
59+
60+ grp3: rfctl_misc_20 {
61+ pins = "SC9860_RFCTL20_MISC";
62+ drive-strength = <10>;
63+ bias-pull-up = <4700>;
64+ grp3_sleep_mode: rfctl_misc_sleep {
65+ pins = "SC9860_RFCTL20_MISC";
66+ sleep-hardware-state;
67+ bias-pull-up;
68+ }
69+ };
70+};
Documentation/devicetree/bindings/pinctrl/st,stm32-pinctrl.txt+0−1
@@ -180,5 +180,4 @@ pin-controller { · 179 unmodified lines
180180 &usart1 {
181181 pinctrl-0 = <&usart1_pins_a>;
182182 pinctrl-names = "default";
183− status = "okay";
184183 };
Documentation/devicetree/bindings/power/power-controller.txt+0−1
@@ -13,6 +13,5 @@ Example: · 12 unmodified lines
1313
1414 act8846: act8846@5 {
1515 compatible = "active-semi,act8846";
16− status = "okay";
1716 system-power-controller;
1817 }
Documentation/devicetree/bindings/power/renesas,apmu.txt+2−1
@@ -1,12 +1,13 @@
11 DT bindings for the Renesas Advanced Power Management Unit
22
3−Renesas R-Car line of SoCs utilize one or more APMU hardware units
3+Renesas R-Car and RZ/G1 SoCs utilize one or more APMU hardware units
44 for CPU core power domain control including SMP boot and CPU Hotplug.
55
66 Required properties:
77
88 - compatible: Should be "renesas,<soctype>-apmu", "renesas,apmu" as fallback.
99 Examples with soctypes are:
10+ - "renesas,r8a7743-apmu" (RZ/G1M)
1011 - "renesas,r8a7790-apmu" (R-Car H2)
1112 - "renesas,r8a7791-apmu" (R-Car M2-W)
1213 - "renesas,r8a7792-apmu" (R-Car V2H)
Documentation/devicetree/bindings/power/renesas,rcar-sysc.txt+1−0
@@ -17,6 +17,7 @@ Required properties: · 16 unmodified lines
1717 - "renesas,r8a7794-sysc" (R-Car E2)
1818 - "renesas,r8a7795-sysc" (R-Car H3)
1919 - "renesas,r8a7796-sysc" (R-Car M3-W)
20+ - "renesas,r8a77995-sysc" (R-Car D3)
2021 - reg: Address start and address range for the device.
2122 - #power-domain-cells: Must be 1.
2223
Documentation/devicetree/bindings/power/reset/st-reset.txt+0−1
@@ -8,5 +8,4 @@ Example node: · 7 unmodified lines
88 restart {
99 compatible = "st,stih407-restart";
1010 st,syscfg = <&syscfg_sbc_reg>;
11− status = "okay";
1211 };
Documentation/devicetree/bindings/power/rockchip-io-domain.txt+2−0
@@ -39,6 +39,8 @@ Required properties: · 38 unmodified lines
3939 - "rockchip,rk3368-pmu-io-voltage-domain" for rk3368 pmu-domains
4040 - "rockchip,rk3399-io-voltage-domain" for rk3399
4141 - "rockchip,rk3399-pmu-io-voltage-domain" for rk3399 pmu-domains
42+ - "rockchip,rv1108-io-voltage-domain" for rv1108
43+ - "rockchip,rv1108-pmu-io-voltage-domain" for rv1108 pmu-domains
4244
4345 Deprecated properties:
4446 - rockchip,grf: phandle to the syscon managing the "general register files"
Documentation/devicetree/bindings/power/supply/act8945a-charger.txt+0−2
@@ -29,7 +29,6 @@ Example: · 28 unmodified lines
2929 pmic@5b {
3030 compatible = "active-semi,act8945a";
3131 reg = <0x5b>;
32− status = "okay";
3332
3433 charger {
3534 compatible = "active-semi,act8945a-charger";
@@ -43,6 +42,5 @@ Example: · 7 unmodified lines
4342 active-semi,input-voltage-threshold-microvolt = <6600>;
4443 active-semi,precondition-timeout = <40>;
4544 active-semi,total-timeout = <3>;
46− status = "okay";
4745 };
4846 };
Documentation/devicetree/bindings/power/supply/bq24190.txt+51−0
@@ -0,0 +1,51 @@
1+TI BQ24190 Li-Ion Battery Charger
2+
3+Required properties:
4+- compatible: contains one of the following:
5+ * "ti,bq24190"
6+ * "ti,bq24192i"
7+- reg: integer, I2C address of the charger.
8+- interrupts[-extended]: configuration for charger INT pin.
9+
10+Optional properties:
11+- monitored-battery: phandle of battery characteristics devicetree node
12+ The charger uses the following battery properties:
13+ + precharge-current-microamp: maximum charge current during precharge
14+ phase (typically 20% of battery capacity).
15+ + charge-term-current-microamp: a charge cycle terminates when the
16+ battery voltage is above recharge threshold, and the current is below
17+ this setting (typically 10% of battery capacity).
18+ See also Documentation/devicetree/bindings/power/supply/battery.txt
19+- ti,system-minimum-microvolt: when power is connected and the battery is below
20+ minimum system voltage, the system will be regulated above this setting.
21+
22+Notes:
23+- Some circuit boards wire the chip's "OTG" pin high (enabling 500mA default
24+ charge current on USB SDP ports, among other features). To simulate this on
25+ boards that wire the pin to a GPIO, set a gpio-hog.
26+
27+Example:
28+
29+ bat: battery {
30+ compatible = "simple-battery";
31+ precharge-current-microamp = <256000>;
32+ charge-term-current-microamp = <128000>;
33+ // etc.
34+ };
35+
36+ bq24190: charger@6a {
37+ compatible = "ti,bq24190";
38+ reg = <0x6a>;
39+ interrupts-extended = <&gpiochip 10 IRQ_TYPE_EDGE_FALLING>;
40+ monitored-battery = <&bat>;
41+ ti,system-minimum-microvolt = <3200000>;
42+ };
43+
44+ &twl_gpio {
45+ otg {
46+ gpio-hog;
47+ gpios = <6 0>;
48+ output-high;
49+ line-name = "otg-gpio";
50+ };
51+ };
Documentation/devicetree/bindings/power/supply/ltc2941.txt+8−7
@@ -1,13 +1,14 @@
1−binding for LTC2941 and LTC2943 battery gauges
1+binding for LTC2941, LTC2942, LTC2943 and LTC2944 battery gauges
22
3−Both the LTC2941 and LTC2943 measure battery capacity.
4−The LTC2943 is compatible with the LTC2941, it adds voltage and
5−temperature monitoring, and uses a slightly different conversion
6−formula for the charge counter.
3+All chips measure battery capacity.
4+The LTC2942 is pin compatible with the LTC2941, it adds voltage and
5+temperature monitoring, and is runtime detected. LTC2943 and LTC2944
6+is software compatible, uses a slightly different conversion formula
7+for the charge counter and adds voltage, current and temperature monitoring.
78
89 Required properties:
9−- compatible: Should contain "lltc,ltc2941" or "lltc,ltc2943" which also
10− indicates the type of I2C chip attached.
10+- compatible: Should contain "lltc,ltc2941", "lltc,ltc2942", "lltc,ltc2943"
11+ or "lltc,ltc2944" which also indicates the type of I2C chip attached.
1112 - reg: The 7-bit I2C address.
1213 - lltc,resistor-sense: The sense resistor value in milli-ohms. Can be a 32-bit
1314 negative value when the battery has been connected to the wrong end of the
Documentation/devicetree/bindings/power/supply/max8903-charger.txt+0−1
@@ -21,5 +21,4 @@ Example: · 20 unmodified lines
2121 flt-gpios = <&gpio2 2 GPIO_ACTIVE_LOW>;
2222 chg-gpios = <&gpio3 15 GPIO_ACTIVE_LOW>;
2323 cen-gpios = <&gpio2 5 GPIO_ACTIVE_LOW>;
24− status = "okay";
2524 };
Documentation/devicetree/bindings/power/supply/maxim,max14656.txt+0−1
@@ -12,7 +12,6 @@ Example: · 11 unmodified lines
1212 clock-frequency = <50000>;
1313 pinctrl-names = "default";
1414 pinctrl-0 = <&pinctrl_i2c2>;
15− status = "okay";
1615
1716 max14656@35 {
1817 compatible = "maxim,max14656";
Documentation/devicetree/bindings/power/wakeup-source.txt+4−5
@@ -20,13 +20,12 @@ List of legacy properties and respective binding document · 19 unmodified lines
2020 1. "enable-sdio-wakeup" Documentation/devicetree/bindings/mmc/mmc.txt
2121 2. "gpio-key,wakeup" Documentation/devicetree/bindings/input/gpio-keys{,-polled}.txt
2222 3. "has-tpo" Documentation/devicetree/bindings/rtc/rtc-opal.txt
23−4. "isil,irq2-can-wakeup-machine" Documentation/devicetree/bindings/rtc/isil,isl12057.txt
24−5. "linux,wakeup" Documentation/devicetree/bindings/input/gpio-matrix-keypad.txt
23+4. "linux,wakeup" Documentation/devicetree/bindings/input/gpio-matrix-keypad.txt
2524 Documentation/devicetree/bindings/mfd/tc3589x.txt
2625 Documentation/devicetree/bindings/input/ads7846.txt
27−6. "linux,keypad-wakeup" Documentation/devicetree/bindings/input/qcom,pm8xxx-keypad.txt
28−7. "linux,input-wakeup" Documentation/devicetree/bindings/input/samsung-keypad.txt
29−8. "nvidia,wakeup-source" Documentation/devicetree/bindings/input/nvidia,tegra20-kbc.txt
26+5. "linux,keypad-wakeup" Documentation/devicetree/bindings/input/qcom,pm8xxx-keypad.txt
27+6. "linux,input-wakeup" Documentation/devicetree/bindings/input/samsung-keypad.txt
28+7. "nvidia,wakeup-source" Documentation/devicetree/bindings/input/nvidia,tegra20-kbc.txt
3029
3130 Examples
3231 --------
Documentation/devicetree/bindings/powerpc/ibm,vas.txt+22−0
@@ -0,0 +1,22 @@
1+* IBM Powerpc Virtual Accelerator Switchboard (VAS)
2+
3+VAS is a hardware mechanism that allows kernel subsystems and user processes
4+to directly submit compression and other requests to Nest accelerators (NX)
5+or other coprocessors functions.
6+
7+Required properties:
8+- compatible : should be "ibm,vas".
9+- ibm,vas-id : A unique identifier for each instance of VAS in the system
10+- reg : Should contain 4 pairs of 64-bit fields specifying the Hypervisor
11+ window context start and length, OS/User window context start and length,
12+ "Paste address" start and length, "Paste window id" start bit and number
13+ of bits)
14+
15+Example:
16+
17+ vas@6019100000000 {
18+ compatible = "ibm,vas", "ibm,power9-vas";
19+ reg = <0x6019100000000 0x2000000 0x6019000000000 0x100000000 0x8000000000000 0x100000000 0x20 0x10>;
20+ name = "vas";
21+ ibm,vas-id = <0x1>;
22+ };
Documentation/devicetree/bindings/powerpc/opal/sensor-groups.txt+27−0
@@ -0,0 +1,27 @@
1+IBM OPAL Sensor Groups Binding
2+-------------------------------
3+
4+Node: /ibm,opal/sensor-groups
5+
6+Description: Contains sensor groups available in the Powernv P9
7+servers. Each child node indicates a sensor group.
8+
9+- compatible : Should be "ibm,opal-sensor-group"
10+
11+Each child node contains below properties:
12+
13+- type : String to indicate the type of sensor-group
14+
15+- sensor-group-id: Abstract unique identifier provided by firmware of
16+ type <u32> which is used for sensor-group
17+ operations like clearing the min/max history of all
18+ sensors belonging to the group.
19+
20+- ibm,chip-id : Chip ID
21+
22+- sensors : Phandle array of child nodes of /ibm,opal/sensor/
23+ belonging to this group
24+
25+- ops : Array of opal-call numbers indicating available operations on
26+ sensor groups like clearing min/max, enabling/disabling sensor
27+ group.
Documentation/devicetree/bindings/pps/pps-gpio.txt+6−2
@@ -13,8 +13,12 @@ Optional properties: · 12 unmodified lines
1313
1414 Example:
1515 pps {
16− compatible = "pps-gpio";
17− gpios = <&gpio2 6 0>;
16+ pinctrl-names = "default";
17+ pinctrl-0 = <&pinctrl_pps>;
1818
19+ gpios = <&gpio1 26 GPIO_ACTIVE_HIGH>;
1920 assert-falling-edge;
21+
22+ compatible = "pps-gpio";
23+ status = "okay";
2024 };
Documentation/devicetree/bindings/ptp/brcm,ptp-dte.txt+0−1
@@ -16,5 +16,4 @@ Example: · 15 unmodified lines
1616 ptp: ptp-dte@180af650 {
1717 compatible = "brcm,iproc-ptp-dte", "brcm,ptp-dte";
1818 reg = <0x180af650 0x10>;
19− status = "okay";
2019 };
Documentation/devicetree/bindings/pwm/pwm-bcm2835.txt+2−2
@@ -6,7 +6,7 @@ Required properties: · 5 unmodified lines
66 - clocks: This clock defines the base clock frequency of the PWM hardware
77 system, the period and the duty_cycle of the PWM signal is a multiple of
88 the base period.
9−- #pwm-cells: Should be 2. See pwm.txt in this directory for a description of
9+- #pwm-cells: Should be 3. See pwm.txt in this directory for a description of
1010 the cells format.
1111
1212 Examples:
@@ -15,7 +15,7 @@ pwm@2020c000 { · 2 unmodified lines
1515 compatible = "brcm,bcm2835-pwm";
1616 reg = <0x2020c000 0x28>;
1717 clocks = <&clk_pwm>;
18− #pwm-cells = <2>;
18+ #pwm-cells = <3>;
1919 };
2020
2121 clocks {
Documentation/devicetree/bindings/pwm/pwm-mediatek.txt+5−1
@@ -2,6 +2,8 @@ MediaTek PWM controller · 1 unmodified line
22
33 Required properties:
44 - compatible: should be "mediatek,<name>-pwm":
5+ - "mediatek,mt2712-pwm": found on mt2712 SoC.
6+ - "mediatek,mt7622-pwm": found on mt7622 SoC.
57 - "mediatek,mt7623-pwm": found on mt7623 SoC.
68 - reg: physical base address and length of the controller's registers.
79 - #pwm-cells: must be 2. See pwm.txt in this directory for a description of
@@ -10,7 +12,9 @@ Required properties: · 2 unmodified lines
1012 - clock-names: must contain the following:
1113 - "top": the top clock generator
1214 - "main": clock used by the PWM core
13− - "pwm1-5": the five per PWM clocks
15+ - "pwm1-8": the eight per PWM clocks for mt2712
16+ - "pwm1-6": the six per PWM clocks for mt7622
17+ - "pwm1-5": the five per PWM clocks for mt7623
1418 - pinctrl-names: Must contain a "default" entry.
1519 - pinctrl-0: One property must exist for each entry in pinctrl-names.
1620 See pinctrl/pinctrl-bindings.txt for details of the property values.
Documentation/devicetree/bindings/pwm/pwm-meson.txt+0−1
@@ -19,7 +19,6 @@ Example: · 18 unmodified lines
1919 compatible = "amlogic,meson-gxbb-pwm";
2020 reg = <0x0 0x08550 0x0 0x10>;
2121 #pwm-cells = <3>;
22− status = "disabled";
2322 clocks = <&xtal>, <&xtal>;
2423 clock-names = "clkin0", "clkin1";
2524 }
Documentation/devicetree/bindings/pwm/pwm-rockchip.txt+9−2
@@ -3,10 +3,17 @@ Rockchip PWM controller · 2 unmodified lines
33 Required properties:
44 - compatible: should be "rockchip,<name>-pwm"
55 "rockchip,rk2928-pwm": found on RK29XX,RK3066 and RK3188 SoCs
6− "rockchip,rk3288-pwm": found on RK3288 SoC
6+ "rockchip,rk3288-pwm": found on RK3288 SOC
7+ "rockchip,rv1108-pwm", "rockchip,rk3288-pwm": found on RV1108 SoC
78 "rockchip,vop-pwm": found integrated in VOP on RK3288 SoC
89 - reg: physical base address and length of the controller's registers
9− - clocks: phandle and clock specifier of the PWM reference clock
10+ - clocks: See ../clock/clock-bindings.txt
11+ - For older hardware (rk2928, rk3066, rk3188, rk3228, rk3288, rk3399):
12+ - There is one clock that's used both to derive the functional clock
13+ for the device and as the bus clock.
14+ - For newer hardware (rk3328 and future socs): specified by name
15+ - "pwm": This is used to derive the functional clock.
16+ - "pclk": This is the APB bus clock.
1017 - #pwm-cells: must be 2 (rk2928) or 3 (rk3288). See pwm.txt in this directory
1118 for a description of the cell format.
1219
Documentation/devicetree/bindings/pwm/pwm-stm32-lp.txt+24−0
@@ -0,0 +1,24 @@
1+STMicroelectronics STM32 Low-Power Timer PWM
2+
3+STM32 Low-Power Timer provides single channel PWM.
4+
5+Must be a sub-node of an STM32 Low-Power Timer device tree node.
6+See ../mfd/stm32-lptimer.txt for details about the parent node.
7+
8+Required parameters:
9+- compatible: Must be "st,stm32-pwm-lp".
10+
11+Optional properties:
12+- pinctrl-names: Set to "default".
13+- pinctrl-0: Phandle pointing to pin configuration node for PWM.
14+
15+Example:
16+ timer@40002400 {
17+ compatible = "st,stm32-lptimer";
18+ ...
19+ pwm {
20+ compatible = "st,stm32-pwm-lp";
21+ pinctrl-names = "default";
22+ pinctrl-0 = <&lppwm1_pins>;
23+ };
24+ };
Documentation/devicetree/bindings/pwm/pwm-sun4i.txt+0−1
@@ -19,5 +19,4 @@ Example: · 18 unmodified lines
1919 reg = <0x01c20e00 0xc>;
2020 clocks = <&osc24M>;
2121 #pwm-cells = <3>;
22− status = "disabled";
2322 };
Documentation/devicetree/bindings/pwm/pwm-tiecap.txt+1−0
@@ -6,6 +6,7 @@ Required properties: · 5 unmodified lines
66 for am4372 - compatible = "ti,am4372-ecap", "ti,am3352-ecap", "ti,am33xx-ecap";
77 for da850 - compatible = "ti,da850-ecap", "ti,am3352-ecap", "ti,am33xx-ecap";
88 for dra746 - compatible = "ti,dra746-ecap", "ti,am3352-ecap";
9+ for 66ak2g - compatible = "ti,k2g-ecap", "ti,am3352-ecap";
910 - #pwm-cells: should be 3. See pwm.txt in this directory for a description of
1011 the cells format. The PWM channel index ranges from 0 to 4. The only third
1112 cell flag supported by this binding is PWM_POLARITY_INVERTED.
Documentation/devicetree/bindings/pwm/pwm-tipwmss.txt+0−2
@@ -26,7 +26,6 @@ epwmss0: epwmss@48300000 { /* PWMSS for am33xx */ · 25 unmodified lines
2626 ti,hwmods = "epwmss0";
2727 #address-cells = <1>;
2828 #size-cells = <1>;
29− status = "disabled";
3029 ranges = <0x48300100 0x48300100 0x80 /* ECAP */
3130 0x48300180 0x48300180 0x80 /* EQEP */
3231 0x48300200 0x48300200 0x80>; /* EHRPWM */
@@ -40,7 +39,6 @@ epwmss0: epwmss@48300000 { /* PWMSS for am4372 */ · 7 unmodified lines
4039 ti,hwmods = "epwmss0";
4140 #address-cells = <1>;
4241 #size-cells = <1>;
43− status = "disabled";
4442 ranges = <0x48300100 0x48300100 0x80 /* ECAP */
4543 0x48300180 0x48300180 0x80 /* EQEP */
4644 0x48300200 0x48300200 0x80>; /* EHRPWM */
Documentation/devicetree/bindings/pwm/pwm-zx.txt+22−0
@@ -0,0 +1,22 @@
1+ZTE ZX PWM controller
2+
3+Required properties:
4+ - compatible: Should be "zte,zx296718-pwm".
5+ - reg: Physical base address and length of the controller's registers.
6+ - clocks : The phandle and specifier referencing the controller's clocks.
7+ - clock-names: "pclk" for PCLK, "wclk" for WCLK to the PWM controller. The
8+ PCLK is for register access, while WCLK is the reference clock for
9+ calculating period and duty cycles.
10+ - #pwm-cells: Should be 3. See pwm.txt in this directory for a description of
11+ the cells format.
12+
13+Example:
14+
15+ pwm: pwm@1439000 {
16+ compatible = "zte,zx296718-pwm";
17+ reg = <0x1439000 0x1000>;
18+ clocks = <&lsp1crm LSP1_PWM_PCLK>,
19+ <&lsp1crm LSP1_PWM_WCLK>;
20+ clock-names = "pclk", "wclk";
21+ #pwm-cells = <3>;
22+ };
Documentation/devicetree/bindings/pwm/renesas,tpu-pwm.txt+0−1
@@ -6,7 +6,6 @@ Required Properties: · 5 unmodified lines
66 - "renesas,tpu-r8a73a4": for R8A77A4 (R-Mobile APE6) compatible PWM controller.
77 - "renesas,tpu-r8a7740": for R8A7740 (R-Mobile A1) compatible PWM controller.
88 - "renesas,tpu-r8a7790": for R8A7790 (R-Car H2) compatible PWM controller.
9− - "renesas,tpu-sh7372": for SH7372 (SH-Mobile AP4) compatible PWM controller.
109 - "renesas,tpu": for generic R-Car TPU PWM controller.
1110
1211 - reg: Base address and length of each memory resource used by the PWM
Documentation/devicetree/bindings/regulator/act8865-regulator.txt+0−1
@@ -52,7 +52,6 @@ Example: · 51 unmodified lines
5252 compatible = "active-semi,act8865";
5353 reg = <0x5b>;
5454 active-semi,vsel-high;
55− status = "disabled";
5655
5756 regulators {
5857 vcc_1v8_reg: DCDC_REG1 {
Documentation/devicetree/bindings/regulator/act8945a-regulator.txt+0−1
@@ -23,7 +23,6 @@ Example: · 22 unmodified lines
2323 pmic@5b {
2424 compatible = "active-semi,act8945a";
2525 reg = <0x5b>;
26− status = "okay";
2726
2827 active-semi,vsel-high;
2928
Documentation/devicetree/bindings/regulator/mt6311-regulator.txt+1−1
@@ -1,4 +1,4 @@
1−Mediatek MT6311 Regulator Driver
1+Mediatek MT6311 Regulator
22
33 Required properties:
44 - compatible: "mediatek,mt6311-regulator"
Documentation/devicetree/bindings/regulator/mt6323-regulator.txt+1−1
@@ -1,4 +1,4 @@
1−Mediatek MT6323 Regulator Driver
1+Mediatek MT6323 Regulator
22
33 All voltage regulators are defined as subnodes of the regulators node. A list
44 of regulators provided by this controller are defined as subnodes of the
Documentation/devicetree/bindings/regulator/mt6380-regulator.txt+89−0
@@ -0,0 +1,89 @@
1+MediaTek MT6380 Regulator
2+
3+All voltage regulators provided by the MT6380 PMIC are described as the
4+subnodes of the MT6380 regulators node. Each regulator is named according
5+to its regulator type, buck-<name> and ldo-<name>. The definition for each
6+of these nodes is defined using the standard binding for regulators at
7+Documentation/devicetree/bindings/regulator/regulator.txt.
8+
9+The valid names for regulators are:
10+BUCK:
11+ buck-core1, buck-vcore, buck-vrf
12+LDO:
13+ ldo-vm ,ldo-va , ldo-vphy, ldo-vddr, ldo-vt
14+
15+Example:
16+
17+ regulators {
18+ compatible = "mediatek,mt6380-regulator";
19+
20+ mt6380_vcpu_reg: buck-vcore1 {
21+ regulator-name = "vcore1";
22+ regulator-min-microvolt = < 600000>;
23+ regulator-max-microvolt = <1393750>;
24+ regulator-ramp-delay = <6250>;
25+ regulator-always-on;
26+ regulator-boot-on;
27+ };
28+
29+ mt6380_vcore_reg: buck-vcore {
30+ regulator-name = "vcore";
31+ regulator-min-microvolt = <600000>;
32+ regulator-max-microvolt = <1393750>;
33+ regulator-ramp-delay = <6250>;
34+ };
35+
36+ mt6380_vrf_reg: buck-vrf {
37+ regulator-name = "vrf";
38+ regulator-min-microvolt = <1200000>;
39+ regulator-max-microvolt = <1575000>;
40+ regulator-ramp-delay = <0>;
41+ regulator-always-on;
42+ regulator-boot-on;
43+ };
44+
45+ mt6380_vm_reg: ldo-vm {
46+ regulator-name = "vm";
47+ regulator-min-microvolt = <1050000>;
48+ regulator-max-microvolt = <1400000>;
49+ regulator-ramp-delay = <0>;
50+ regulator-always-on;
51+ regulator-boot-on;
52+ };
53+
54+ mt6380_va_reg: ldo-va {
55+ regulator-name = "va";
56+ regulator-min-microvolt = <2200000>;
57+ regulator-max-microvolt = <3300000>;
58+ regulator-ramp-delay = <0>;
59+ regulator-always-on;
60+ regulator-boot-on;
61+ };
62+
63+ mt6380_vphy_reg: ldo-vphy {
64+ regulator-name = "vphy";
65+ regulator-min-microvolt = <1800000>;
66+ regulator-max-microvolt = <1800000>;
67+ regulator-ramp-delay = <0>;
68+ regulator-always-on;
69+ regulator-boot-on;
70+ };
71+
72+ mt6380_vddr_reg: ldo-vddr {
73+ regulator-name = "vddr";
74+ regulator-min-microvolt = <1240000>;
75+ regulator-max-microvolt = <1840000>;
76+ regulator-ramp-delay = <0>;
77+ regulator-always-on;
78+ regulator-boot-on;
79+ };
80+
81+ mt6380_vt_reg: ldo-vt {
82+ regulator-name = "vt";
83+ regulator-min-microvolt = <2200000>;
84+ regulator-max-microvolt = <3300000>;
85+ regulator-ramp-delay = <0>;
86+ regulator-always-on;
87+ regulator-boot-on;
88+ };
89+ };
Documentation/devicetree/bindings/regulator/mt6397-regulator.txt+1−1
@@ -1,4 +1,4 @@
1−Mediatek MT6397 Regulator Driver
1+Mediatek MT6397 Regulator
22
33 Required properties:
44 - compatible: "mediatek,mt6397-regulator"
Documentation/devicetree/bindings/regulator/pwm-regulator.txt+1−1
@@ -71,7 +71,7 @@ Continuous Voltage With Enable GPIO Example: · 70 unmodified lines
7171 * Inverted PWM logic, and the duty cycle range is limited
7272 * to 30%-70%.
7373 */
74− pwm-dutycycle-range <700 300>; /* */
74+ pwm-dutycycle-range = <700 300>; /* */
7575 };
7676
7777 Voltage Table Example:
Documentation/devicetree/bindings/regulator/st,stm32-vrefbuf.txt+20−0
@@ -0,0 +1,20 @@
1+STM32 VREFBUF - Voltage reference buffer
2+
3+Some STM32 devices embed a voltage reference buffer which can be used as
4+voltage reference for ADCs, DACs and also as voltage reference for external
5+components through the dedicated VREF+ pin.
6+
7+Required properties:
8+- compatible: Must be "st,stm32-vrefbuf".
9+- reg: Offset and length of VREFBUF register set.
10+- clocks: Must contain an entry for peripheral clock.
11+
12+Example:
13+ vrefbuf: regulator@58003C00 {
14+ compatible = "st,stm32-vrefbuf";
15+ reg = <0x58003C00 0x8>;
16+ clocks = <&rcc VREF_CK>;
17+ regulator-min-microvolt = <1500000>;
18+ regulator-max-microvolt = <2500000>;
19+ vdda-supply = <&vdda>;
20+ };
Documentation/devicetree/bindings/remoteproc/imx-rproc.txt+33−0
@@ -0,0 +1,33 @@
1+NXP iMX6SX/iMX7D Co-Processor Bindings
2+----------------------------------------
3+
4+This binding provides support for ARM Cortex M4 Co-processor found on some
5+NXP iMX SoCs.
6+
7+Required properties:
8+- compatible Should be one of:
9+ "fsl,imx7d-cm4"
10+ "fsl,imx6sx-cm4"
11+- clocks Clock for co-processor (See: ../clock/clock-bindings.txt)
12+- syscon Phandle to syscon block which provide access to
13+ System Reset Controller
14+
15+Optional properties:
16+- memory-region list of phandels to the reserved memory regions.
17+ (See: ../reserved-memory/reserved-memory.txt)
18+
19+Example:
20+ m4_reserved_sysmem1: cm4@80000000 {
21+ reg = <0x80000000 0x80000>;
22+ };
23+
24+ m4_reserved_sysmem2: cm4@81000000 {
25+ reg = <0x81000000 0x80000>;
26+ };
27+
28+ imx7d-cm4 {
29+ compatible = "fsl,imx7d-cm4";
30+ memory-region = <&m4_reserved_sysmem1>, <&m4_reserved_sysmem2>;
31+ syscon = <&src>;
32+ clocks = <&clks IMX7D_ARM_M4_ROOT_CLK>;
33+ };
Documentation/devicetree/bindings/remoteproc/qcom,adsp.txt+4−3
@@ -63,9 +63,10 @@ on the Qualcomm ADSP Hexagon core. · 62 unmodified lines
6363
6464
6565 = SUBNODES
66−The adsp node may have an subnode named "smd-edge" that describes the SMD edge,
67−channels and devices related to the ADSP. See ../soc/qcom/qcom,smd.txt for
68−details on how to describe the SMD edge.
66+The adsp node may have an subnode named either "smd-edge" or "glink-edge" that
67+describes the communication edge, channels and devices related to the ADSP.
68+See ../soc/qcom/qcom,smd.txt and ../soc/qcom/qcom,glink.txt for details on how
69+to describe these.
6970
7071
7172 = EXAMPLE
Documentation/devicetree/bindings/remoteproc/qcom,q6v5.txt+5−0
@@ -90,6 +90,11 @@ the memory regions used by the Hexagon firmware. Each sub-node must contain: · 89 unmodified lines
9090 Value type: <phandle>
9191 Definition: reference to the reserved-memory for the region
9292
93+The Hexagon node may also have an subnode named either "smd-edge" or
94+"glink-edge" that describes the communication edge, channels and devices
95+related to the Hexagon. See ../soc/qcom/qcom,smd.txt and
96+../soc/qcom/qcom,glink.txt for details on how to describe these.
97+
9398 = EXAMPLE
9499 The following example describes the resources needed to boot control the
95100 Hexagon, as it is found on MSM8974 boards.
Documentation/devicetree/bindings/remoteproc/ti,davinci-rproc.txt+86−0
@@ -0,0 +1,86 @@
1+TI Davinci DSP devices
2+=======================
3+
4+Binding status: Unstable - Subject to changes for DT representation of clocks
5+ and resets
6+
7+The TI Davinci family of SoCs usually contains a TI DSP Core sub-system that
8+is used to offload some of the processor-intensive tasks or algorithms, for
9+achieving various system level goals.
10+
11+The processor cores in the sub-system usually contain additional sub-modules
12+like L1 and/or L2 caches/SRAMs, an Interrupt Controller, an external memory
13+controller, a dedicated local power/sleep controller etc. The DSP processor
14+core used in Davinci SoCs is usually a C674x DSP CPU.
15+
16+DSP Device Node:
17+================
18+Each DSP Core sub-system is represented as a single DT node.
19+
20+Required properties:
21+--------------------
22+The following are the mandatory properties:
23+
24+- compatible: Should be one of the following,
25+ "ti,da850-dsp" for DSPs on OMAP-L138 SoCs
26+
27+- reg: Should contain an entry for each value in 'reg-names'.
28+ Each entry should have the memory region's start address
29+ and the size of the region, the representation matching
30+ the parent node's '#address-cells' and '#size-cells' values.
31+
32+- reg-names: Should contain strings with the following names, each
33+ representing a specific internal memory region or a
34+ specific register space,
35+ "l2sram", "l1pram", "l1dram", "host1cfg", "chipsig_base"
36+
37+- interrupts: Should contain the interrupt number used to receive the
38+ interrupts from the DSP. The value should follow the
39+ interrupt-specifier format as dictated by the
40+ 'interrupt-parent' node.
41+
42+- memory-region: phandle to the reserved memory node to be associated
43+ with the remoteproc device. The reserved memory node
44+ can be a CMA memory node, and should be defined as
45+ per the bindings in
46+ Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt
47+
48+Optional properties:
49+--------------------
50+- interrupt-parent: phandle to the interrupt controller node. This property
51+ is needed if the device node hierarchy doesn't have an
52+ interrupt controller.
53+
54+
55+Example:
56+--------
57+
58+ /* DSP Reserved Memory node */
59+ reserved-memory {
60+ #address-cells = <1>;
61+ #size-cells = <1>;
62+ ranges;
63+
64+ dsp_memory_region: dsp-memory@c3000000 {
65+ compatible = "shared-dma-pool";
66+ reg = <0xc3000000 0x1000000>;
67+ reusable;
68+ };
69+ };
70+
71+ /* DSP node */
72+ {
73+ dsp: dsp@11800000 {
74+ compatible = "ti,da850-dsp";
75+ reg = <0x11800000 0x40000>,
76+ <0x11e00000 0x8000>,
77+ <0x11f00000 0x8000>,
78+ <0x01c14044 0x4>,
79+ <0x01c14174 0x8>;
80+ reg-names = "l2sram", "l1pram", "l1dram", "host1cfg",
81+ "chipsig";
82+ interrupt-parent = <&intc>;
83+ interrupts = <28>;
84+ memory-region = <&dsp_memory_region>;
85+ };
86+ };
Documentation/devicetree/bindings/remoteproc/ti,keystone-rproc.txt+64−9
@@ -26,6 +26,7 @@ The following are the mandatory properties: · 25 unmodified lines
2626 "ti,k2hk-dsp" for DSPs on Keystone 2 66AK2H/K SoCs
2727 "ti,k2l-dsp" for DSPs on Keystone 2 66AK2L SoCs
2828 "ti,k2e-dsp" for DSPs on Keystone 2 66AK2E SoCs
29+ "ti,k2g-dsp" for DSPs on Keystone 2 66AK2G SoCs
2930
3031 - reg: Should contain an entry for each value in 'reg-names'.
3132 Each entry should have the memory region's start address
@@ -37,20 +38,18 @@ The following are the mandatory properties: · 5 unmodified lines
3738 should be defined in this order,
3839 "l2sram", "l1pram", "l1dram"
3940
40−- clocks: Should contain the device's input clock, and should be
41− defined as per the bindings in,
42− Documentation/devicetree/bindings/clock/keystone-gate.txt
43−
4441 - ti,syscon-dev: Should be a pair of the phandle to the Keystone Device
4542 State Control node, and the register offset of the DSP
4643 boot address register within that node's address space.
4744
4845 - resets: Should contain the phandle to the reset controller node
4946 managing the resets for this device, and a reset
50− specifier. Please refer to the following reset bindings
51− for the reset argument specifier as per SoC,
47+ specifier. Please refer to either of the following reset
48+ bindings for the reset argument specifier as per SoC,
5249 Documentation/devicetree/bindings/reset/ti-syscon-reset.txt
53− for 66AK2HK/66AK2L/66AK2E SoCs
50+ for 66AK2HK/66AK2L/66AK2E SoCs or,
51+ Documentation/devicetree/bindings/reset/ti,sci-reset.txt
52+ for 66AK2G SoCs
5453
5554 - interrupt-parent: Should contain a phandle to the Keystone 2 IRQ controller
5655 IP node that is used by the ARM CorePac processor to
@@ -75,6 +74,22 @@ The following are the mandatory properties: · 18 unmodified lines
7574 The gpio device to be used is as per the bindings in,
7675 Documentation/devicetree/bindings/gpio/gpio-dsp-keystone.txt
7776
77+SoC-specific Required properties:
78+---------------------------------
79+The following are mandatory properties for Keystone 2 66AK2HK, 66AK2L and 66AK2E
80+SoCs only:
81+
82+- clocks: Should contain the device's input clock, and should be
83+ defined as per the bindings in,
84+ Documentation/devicetree/bindings/clock/keystone-gate.txt
85+
86+The following are mandatory properties for Keystone 2 66AK2G SoCs only:
87+
88+- power-domains: Should contain a phandle to a PM domain provider node
89+ and an args specifier containing the DSP device id
90+ value. This property is as per the binding,
91+ Documentation/devicetree/bindings/soc/ti/sci-pm-domain.txt
92+
7893 Optional properties:
7994 --------------------
8095
@@ -85,8 +100,10 @@ Optional properties: · 4 unmodified lines
85100 Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt
86101
87102
88−Example:
89−--------
103+Examples:
104+---------
105+
106+1.
90107 /* 66AK2H/K DSP aliases */
91108 aliases {
92109 rproc0 = &dsp0;
@@ -131,3 +148,41 @@ Example: · 38 unmodified lines
131148 };
132149
133150 };
151+
152+2.
153+ /* 66AK2G DSP alias */
154+ aliases {
155+ rproc0 = &dsp0;
156+ };
157+
158+ /* 66AK2G DSP memory node */
159+ reserved-memory {
160+ #address-cells = <2>;
161+ #size-cells = <2>;
162+ ranges;
163+
164+ dsp_common_memory: dsp-common-memory@81f800000 {
165+ compatible = "shared-dma-pool";
166+ reg = <0x00000008 0x1f800000 0x00000000 0x800000>;
167+ reusable;
168+ };
169+ };
170+
171+ /* 66AK2G DSP node */
172+ soc {
173+ dsp0: dsp@10800000 {
174+ compatible = "ti,k2g-dsp";
175+ reg = <0x10800000 0x00100000>,
176+ <0x10e00000 0x00008000>,
177+ <0x10f00000 0x00008000>;
178+ reg-names = "l2sram", "l1pram", "l1dram";
179+ power-domains = <&k2g_pds 0x0046>;
180+ ti,syscon-dev = <&devctrl 0x40>;
181+ resets = <&k2g_reset 0x0046 0x1>;
182+ interrupt-parent = <&kirq0>;
183+ interrupts = <0 8>;
184+ interrupt-names = "vring", "exception";
185+ kick-gpios = <&dspgpio0 27 0>;
186+ memory-region = <&dsp_common_memory>;
187+ };
188+ };
Documentation/devicetree/bindings/reset/lantiq,reset.txt+30−0
@@ -0,0 +1,30 @@
1+Lantiq XWAY SoC RCU reset controller binding
2+============================================
3+
4+This binding describes a reset-controller found on the RCU module on Lantiq
5+XWAY SoCs.
6+
7+This node has to be a sub node of the Lantiq RCU block.
8+
9+-------------------------------------------------------------------------------
10+Required properties:
11+- compatible : Should be one of
12+ "lantiq,danube-reset"
13+ "lantiq,xrx200-reset"
14+- reg : Defines the following sets of registers in the parent
15+ syscon device
16+ - Offset of the reset set register
17+ - Offset of the reset status register
18+- #reset-cells : Specifies the number of cells needed to encode the
19+ reset line, should be 2.
20+ The first cell takes the reset set bit and the
21+ second cell takes the status bit.
22+
23+-------------------------------------------------------------------------------
24+Example for the reset-controllers on the xRX200 SoCs:
25+ reset0: reset-controller@10 {
26+ compatible = "lantiq,xrx200-reset";
27+ reg <0x10 0x04>, <0x14 0x04>;
28+
29+ #reset-cells = <2>;
30+ };
Documentation/devicetree/bindings/reset/nxp,lpc1850-rgu.txt+0−1
@@ -80,5 +80,4 @@ mac: ethernet@40010000 { · 79 unmodified lines
8080 clock-names = "stmmaceth";
8181 resets = <&rgu 22>;
8282 reset-names = "stmmaceth";
83− status = "disabled";
8483 };
Documentation/devicetree/bindings/reset/renesas,rst.txt+1−0
@@ -26,6 +26,7 @@ Required properties: · 25 unmodified lines
2626 - "renesas,r8a7794-rst" (R-Car E2)
2727 - "renesas,r8a7795-rst" (R-Car H3)
2828 - "renesas,r8a7796-rst" (R-Car M3-W)
29+ - "renesas,r8a77995-rst" (R-Car D3)
2930 - reg: Address start and address range for the device.
3031
3132
Documentation/devicetree/bindings/reset/uniphier-reset.txt+25−2
@@ -6,7 +6,6 @@ System reset · 5 unmodified lines
66
77 Required properties:
88 - compatible: should be one of the following:
9− "socionext,uniphier-sld3-reset" - for sLD3 SoC
109 "socionext,uniphier-ld4-reset" - for LD4 SoC
1110 "socionext,uniphier-pro4-reset" - for Pro4 SoC
1211 "socionext,uniphier-sld8-reset" - for sLD8 SoC
@@ -37,7 +36,6 @@ Media I/O (MIO) reset, SD reset · 24 unmodified lines
3736
3837 Required properties:
3938 - compatible: should be one of the following:
40− "socionext,uniphier-sld3-mio-reset" - for sLD3 SoC
4139 "socionext,uniphier-ld4-mio-reset" - for LD4 SoC
4240 "socionext,uniphier-pro4-mio-reset" - for Pro4 SoC
4341 "socionext,uniphier-sld8-mio-reset" - for sLD8 SoC
@@ -92,3 +90,28 @@ Example: · 48 unmodified lines
9290
9391 other nodes ...
9492 };
93+
94+
95+Analog signal amplifier reset
96+-----------------------------
97+
98+Required properties:
99+- compatible: should be one of the following:
100+ "socionext,uniphier-ld11-adamv-reset" - for LD11 SoC
101+ "socionext,uniphier-ld20-adamv-reset" - for LD20 SoC
102+- #reset-cells: should be 1.
103+
104+Example:
105+
106+ adamv@57920000 {
107+ compatible = "socionext,uniphier-ld11-adamv",
108+ "simple-mfd", "syscon";
109+ reg = <0x57920000 0x1000>;
110+
111+ adamv_rst: reset {
112+ compatible = "socionext,uniphier-ld11-adamv-reset";
113+ #reset-cells = <1>;
114+ };
115+
116+ other nodes ...
117+ };
Documentation/devicetree/bindings/rng/imx-rngc.txt+21−0
@@ -0,0 +1,21 @@
1+Freescale RNGC (Random Number Generator Version C)
2+
3+The driver also supports version B, which is mostly compatible
4+to version C.
5+
6+Required properties:
7+- compatible : should be one of
8+ "fsl,imx25-rngb"
9+ "fsl,imx35-rngc"
10+- reg : offset and length of the register set of this block
11+- interrupts : the interrupt number for the RNGC block
12+- clocks : the RNGC clk source
13+
14+Example:
15+
16+rng@53fb0000 {
17+ compatible = "fsl,imx25-rngb";
18+ reg = <0x53fb0000 0x4000>;
19+ interrupts = <22>;
20+ clocks = <&trng_clk>;
21+};
Documentation/devicetree/bindings/rtc/google,goldfish-rtc.txt+17−0
@@ -0,0 +1,17 @@
1+Android Goldfish RTC
2+
3+Android Goldfish RTC device used by Android emulator.
4+
5+Required properties:
6+
7+- compatible : should contain "google,goldfish-rtc"
8+- reg : <registers mapping>
9+- interrupts : <interrupt mapping>
10+
11+Example:
12+
13+ goldfish_timer@9020000 {
14+ compatible = "google,goldfish-rtc";
15+ reg = <0x9020000 0x1000>;
16+ interrupts = <0x3>;
17+ };
Documentation/devicetree/bindings/rtc/isil,isl12057.txt+0−1
@@ -24,7 +24,6 @@ Optional properties: · 23 unmodified lines
2424
2525 - "wakeup-source": mark the chip as a wakeup source, independently of
2626 the availability of an IRQ line connected to the SoC.
27− (Legacy property supported: "isil,irq2-can-wakeup-machine")
2827
2928 - "interrupt-parent", "interrupts": for passing the interrupt line
3029 of the SoC connected to IRQ#2 of the RTC chip.
Documentation/devicetree/bindings/rtc/realtek,rtd119x.txt+16−0
@@ -0,0 +1,16 @@
1+Realtek RTD129x Real-Time Clock
2+===============================
3+
4+Required properties:
5+- compatible : Should be "realtek,rtd1295-rtc"
6+- reg : Specifies the physical base address and size
7+- clocks : Specifies the clock gate
8+
9+
10+Example:
11+
12+ rtc@9801b600 {
13+ compatible = "realtek,rtd1295-clk";
14+ reg = <0x9801b600 0x100>;
15+ clocks = <&clkc RTD1295_CLK_EN_MISC_RTC>;
16+ };
Documentation/devicetree/bindings/rtc/st,stm32-rtc.txt+0−1
@@ -45,5 +45,4 @@ Example: · 44 unmodified lines
4545 interrupts = <17 1>;
4646 interrupt-names = "alarm";
4747 st,syscfg = <&pwrcfg>;
48− status = "disabled";
4948 };
Documentation/devicetree/bindings/rtc/sun6i-rtc.txt+2−2
@@ -10,7 +10,7 @@ Required properties: · 9 unmodified lines
1010
1111 Required properties for new device trees
1212 - clocks : phandle to the 32kHz external oscillator
13−- clock-output-names : name of the LOSC clock created
13+- clock-output-names : names of the LOSC and its external output clocks created
1414 - #clock-cells : must be equals to 1. The RTC provides two clocks: the
1515 LOSC and its external output, with index 0 and 1
1616 respectively.
@@ -21,7 +21,7 @@ rtc: rtc@01f00000 { · 4 unmodified lines
2121 compatible = "allwinner,sun6i-a31-rtc";
2222 reg = <0x01f00000 0x54>;
2323 interrupts = <0 40 4>, <0 41 4>;
24− clock-output-names = "osc32k";
24+ clock-output-names = "osc32k", "osc32k-out";
2525 clocks = <&ext_osc32k>;
2626 #clock-cells = <1>;
2727 };
Documentation/devicetree/bindings/scsi/hisilicon-sas.txt+0−1
@@ -85,5 +85,4 @@ Example: · 84 unmodified lines
8585 <366 1>,<367 1>/* cq30-31 */
8686 <376 4>,/* fatal ecc */
8787 <381 4>;/* fatal axi */
88− status = "disabled";
8988 };
Documentation/devicetree/bindings/security/tpm/st33zp24-i2c.txt+0−1
@@ -19,7 +19,6 @@ Example (for ARM-based BeagleBoard xM with ST33ZP24 on I2C2): · 18 unmodified lines
1919
2020 &i2c2 {
2121
22− status = "okay";
2322
2423 st33zp24: st33zp24@13 {
2524
Documentation/devicetree/bindings/security/tpm/st33zp24-spi.txt+0−1
@@ -18,7 +18,6 @@ Example (for ARM-based BeagleBoard xM with ST33ZP24 on SPI4): · 17 unmodified lines
1818
1919 &mcspi4 {
2020
21− status = "okay";
2221
2322 st33zp24@0 {
2423
Documentation/devicetree/bindings/security/tpm/tpm-i2c.txt+6−1
@@ -8,6 +8,12 @@ Required properties: · 7 unmodified lines
88 the firmware event log
99 - linux,sml-size : size of the memory allocated for the firmware event log
1010
11+Optional properties:
12+
13+- powered-while-suspended: present when the TPM is left powered on between
14+ suspend and resume (makes the suspend/resume
15+ callbacks do nothing).
16+
1117 Example (for OpenPower Systems with Nuvoton TPM 2.0 on I2C)
1218 ----------------------------------------------------------
1319
@@ -17,5 +23,4 @@ tpm@57 { · 3 unmodified lines
1723 compatible = "nuvoton,npct650", "nuvoton,npct601";
1824 linux,sml-base = <0x7f 0xfd450000>;
1925 linux,sml-size = <0x10000>;
20− status = "okay";
2126 };
Documentation/devicetree/bindings/security/tpm/tpm_tis_spi.txt+0−1
@@ -13,7 +13,6 @@ Example (for ARM-based BeagleBoard xM with TPM_TIS on SPI4): · 12 unmodified lines
1313
1414 &mcspi4 {
1515
16− status = "okay";
1716
1817 tpm_tis@0 {
1918
Documentation/devicetree/bindings/serial/8250.txt+2−0
@@ -14,6 +14,8 @@ Required properties: · 13 unmodified lines
1414 tegra132, or tegra210.
1515 - "nxp,lpc3220-uart"
1616 - "ralink,rt2880-uart"
17+ - For MediaTek BTIF, must contain '"mediatek,<chip>-btif",
18+ "mediatek,mtk-btif"' where <chip> is mt7622, mt7623.
1719 - "altr,16550-FIFO32"
1820 - "altr,16550-FIFO64"
1921 - "altr,16550-FIFO128"
Documentation/devicetree/bindings/serial/arc-uart.txt+0−1
@@ -15,7 +15,6 @@ arcuart0: serial@c0fc1000 { · 14 unmodified lines
1515 interrupts = <5>;
1616 clock-frequency = <80000000>;
1717 current-speed = <115200>;
18− status = "okay";
1918 };
2019
2120 Note: Each port should have an alias correctly numbered in "aliases" node.
Documentation/devicetree/bindings/serial/axis,etraxfs-uart.txt+0−1
@@ -15,7 +15,6 @@ serial@b00260000 { · 14 unmodified lines
1515 compatible = "axis,etraxfs-uart";
1616 reg = <0xb0026000 0x1000>;
1717 interrupts = <68>;
18− status = "disabled";
1918 dtr-gpios = <&sysgpio 0 GPIO_ACTIVE_LOW>;
2019 dsr-gpios = <&sysgpio 1 GPIO_ACTIVE_LOW>;
2120 rng-gpios = <&sysgpio 2 GPIO_ACTIVE_LOW>;
Documentation/devicetree/bindings/serial/mtk-uart.txt+1−0
@@ -3,6 +3,7 @@ · 2 unmodified lines
33 Required properties:
44 - compatible should contain:
55 * "mediatek,mt2701-uart" for MT2701 compatible UARTS
6+ * "mediatek,mt2712-uart" for MT2712 compatible UARTS
67 * "mediatek,mt6580-uart" for MT6580 compatible UARTS
78 * "mediatek,mt6582-uart" for MT6582 compatible UARTS
89 * "mediatek,mt6589-uart" for MT6589 compatible UARTS
Documentation/devicetree/bindings/serial/nvidia,tegra20-hsuart.txt+0−1
@@ -33,5 +33,4 @@ serial@70006000 { · 32 unmodified lines
3333 reset-names = "serial";
3434 dmas = <&apbdma 8>, <&apbdma 8>;
3535 dma-names = "rx", "tx";
36− status = "disabled";
3736 };
Documentation/devicetree/bindings/serial/qcom,msm-uartdm.txt+0−3
@@ -72,13 +72,10 @@ Examples: · 71 unmodified lines
7272 };
7373
7474 uarta: serial@12490000 {
75− status = "ok";
7675 };
7776
7877 uartb: serial@16340000 {
79− status = "ok";
8078 };
8179
8280 uartc: serial@1a240000 {
83− status = "ok";
8481 };
Documentation/devicetree/bindings/serial/renesas,sci-serial.txt+2−0
@@ -41,6 +41,8 @@ Required properties: · 40 unmodified lines
4141 - "renesas,hscif-r8a7795" for R8A7795 (R-Car H3) HSCIF compatible UART.
4242 - "renesas,scif-r8a7796" for R8A7796 (R-Car M3-W) SCIF compatible UART.
4343 - "renesas,hscif-r8a7796" for R8A7796 (R-Car M3-W) HSCIF compatible UART.
44+ - "renesas,scif-r8a77995" for R8A77995 (R-Car D3) SCIF compatible UART.
45+ - "renesas,hscif-r8a77995" for R8A77995 (R-Car D3) HSCIF compatible UART.
4446 - "renesas,scifa-sh73a0" for SH73A0 (SH-Mobile AG5) SCIFA compatible UART.
4547 - "renesas,scifb-sh73a0" for SH73A0 (SH-Mobile AG5) SCIFB compatible UART.
4648 - "renesas,rcar-gen1-scif" for R-Car Gen1 SCIF compatible UART,
Documentation/devicetree/bindings/serial/rs485.txt+2−3
@@ -5,14 +5,13 @@ the built-in half-duplex mode. · 4 unmodified lines
55 The properties described hereafter shall be given to a half-duplex capable
66 UART node.
77
8−Required properties:
8+Optional properties:
99 - rs485-rts-delay: prop-encoded-array <a b> where:
1010 * a is the delay between rts signal and beginning of data sent in milliseconds.
1111 it corresponds to the delay before sending data.
1212 * b is the delay between end of data sent and rts signal in milliseconds
1313 it corresponds to the delay after sending data and actual release of the line.
14−
15−Optional properties:
14+ If this property is not specified, <0 0> is assumed.
1615 - linux,rs485-enabled-at-boot-time: empty property telling to enable the rs485
1716 feature at boot time. It can be disabled later with proper ioctl.
1817 - rs485-rx-during-tx: empty property that enables the receiving of data even
Documentation/devicetree/bindings/serial/serial.txt+0−2
@@ -43,7 +43,6 @@ Examples: · 42 unmodified lines
4343 rng-gpios = <&gpio2 25 GPIO_ACTIVE_LOW>;
4444 cts-gpios = <&gpio0 12 GPIO_ACTIVE_LOW>;
4545 rts-gpios = <&gpio0 13 GPIO_ACTIVE_LOW>;
46− status = "okay";
4746 };
4847
4948 scifa4: serial@e6c80000 {
@@ -54,5 +53,4 @@ Examples: · 4 unmodified lines
5453 clock-names = "fck";
5554 power-domains = <&pd_a3sp>;
5655 uart-has-rtscts;
57− status = "okay";
5856 };
Documentation/devicetree/bindings/serial/st,stm32-usart.txt+12−5
@@ -1,12 +1,19 @@
11 * STMicroelectronics STM32 USART
22
33 Required properties:
4−- compatible: Can be either "st,stm32-usart", "st,stm32-uart",
5−"st,stm32f7-usart" or "st,stm32f7-uart" depending on whether
6−the device supports synchronous mode and is compatible with
7−stm32(f4) or stm32f7.
4+- compatible: can be either:
5+ - "st,stm32-usart",
6+ - "st,stm32-uart",
7+ - "st,stm32f7-usart",
8+ - "st,stm32f7-uart",
9+ - "st,stm32h7-usart"
10+ - "st,stm32h7-uart".
11+ depending on whether the device supports synchronous mode
12+ and is compatible with stm32(f4), stm32f7 or stm32h7.
813 - reg: The address and length of the peripheral registers space
9−- interrupts: The interrupt line of the USART instance
14+- interrupts:
15+ - The interrupt line for the USART instance,
16+ - An optional wake-up interrupt.
1017 - clocks: The input clock of the USART instance
1118
1219 Optional properties:
Documentation/devicetree/bindings/serio/allwinner,sun4i-ps2.txt+0−1
@@ -19,5 +19,4 @@ Example: · 18 unmodified lines
1919 reg = <0x01c2a000 0x400>;
2020 interrupts = <0 62 4>;
2121 clocks = <&apb1_gates 6>;
22− status = "disabled";
2322 };
Documentation/devicetree/bindings/serio/ps2-gpio.txt+23−0
@@ -0,0 +1,23 @@
1+Device-Tree binding for ps/2 gpio device
2+
3+Required properties:
4+ - compatible = "ps2-gpio"
5+ - data-gpios: the data pin
6+ - clk-gpios: the clock pin
7+ - interrupts: Should trigger on the falling edge of the clock line.
8+
9+Optional properties:
10+ - write-enable: Indicates whether write function is provided
11+ to serio device. Possibly providing the write fn will not work, because
12+ of the tough timing requirements.
13+
14+Example nodes:
15+
16+ps2@0 {
17+ compatible = "ps2-gpio";
18+ interrupt-parent = <&gpio>;
19+ interrupts = <23 IRQ_TYPE_EDGE_FALLING>;
20+ data-gpios = <&gpio 24 GPIO_ACTIVE_HIGH>;
21+ clk-gpios = <&gpio 23 GPIO_ACTIVE_HIGH>;
22+ write-enable;
23+};
Documentation/devicetree/bindings/soc/mediatek/scpsys.txt+3−0
@@ -12,11 +12,13 @@ power/power_domain.txt. It provides the power domains defined in · 11 unmodified lines
1212 - include/dt-bindings/power/mt8173-power.h
1313 - include/dt-bindings/power/mt6797-power.h
1414 - include/dt-bindings/power/mt2701-power.h
15+- include/dt-bindings/power/mt7622-power.h
1516
1617 Required properties:
1718 - compatible: Should be one of:
1819 - "mediatek,mt2701-scpsys"
1920 - "mediatek,mt6797-scpsys"
21+ - "mediatek,mt7622-scpsys"
2022 - "mediatek,mt8173-scpsys"
2123 - #power-domain-cells: Must be 1
2224 - reg: Address range of the SCPSYS unit
@@ -26,6 +28,7 @@ Required properties: · 3 unmodified lines
2628 enabled before enabling certain power domains.
2729 Required clocks for MT2701: "mm", "mfg", "ethif"
2830 Required clocks for MT6797: "mm", "mfg", "vdec"
31+ Required clocks for MT7622: "hif_sel"
2932 Required clocks for MT8173: "mm", "mfg", "venc", "venc_lt"
3033
3134 Optional properties:
Documentation/devicetree/bindings/soc/qcom/qcom,glink.txt+7−6
@@ -1,11 +1,12 @@
1−Qualcomm RPM GLINK binding
1+Qualcomm GLINK edge binding
22
3−This binding describes the Qualcomm RPM GLINK, a fifo based mechanism for
4−communication with the Resource Power Management system on various Qualcomm
5−platforms.
3+This binding describes a Qualcomm GLINK edge, a fifo based mechanism for
4+communication between subsystem-pairs on various Qualcomm platforms. Two types
5+of edges can be described by the binding; the GLINK RPM edge and a SMEM based
6+edge.
67
78 - compatible:
8− Usage: required
9+ Usage: required for glink-rpm
910 Value type: <stringlist>
1011 Definition: must be "qcom,glink-rpm"
1112
@@ -16,7 +17,7 @@ platforms. · 4 unmodified lines
1617 signal this processor about communication related events
1718
1819 - qcom,rpm-msg-ram:
19− Usage: required
20+ Usage: required for glink-rpm
2021 Value type: <prop-encoded-array>
2122 Definition: handle to RPM message memory resource
2223
Documentation/devicetree/bindings/soc/qcom/qcom,gsbi.txt+0−1
@@ -78,7 +78,6 @@ Example for APQ8064: · 77 unmodified lines
7878 interrupts = <0 152 0x0>;
7979 clocks = <&gcc GSBI4_UART_CLK>, <&gcc GSBI4_H_CLK>;
8080 clock-names = "core", "iface";
81− status = "ok";
8281 };
8382 };
8483
Documentation/devicetree/bindings/soc/rockchip/grf.txt+3−0
@@ -21,6 +21,7 @@ Required Properties: · 20 unmodified lines
2121 - "rockchip,rk3328-grf", "syscon": for rk3328
2222 - "rockchip,rk3368-grf", "syscon": for rk3368
2323 - "rockchip,rk3399-grf", "syscon": for rk3399
24+ - "rockchip,rv1108-grf", "syscon": for rv1108
2425 - compatible: PMUGRF should be one of the following:
2526 - "rockchip,rk3368-pmugrf", "syscon": for rk3368
2627 - "rockchip,rk3399-pmugrf", "syscon": for rk3399
@@ -28,6 +29,8 @@ Required Properties: · 1 unmodified line
2829 - "rockchip,rk3288-sgrf", "syscon": for rk3288
2930 - compatible: USB2PHYGRF should be one of the followings
3031 - "rockchip,rk3328-usb2phy-grf", "syscon": for rk3328
32+- compatible: USBGRF should be one of the following
33+ - "rockchip,rv1108-usbgrf", "syscon": for rv1108
3134 - reg: physical base address of the controller and length of memory mapped
3235 region.
3336
Documentation/devicetree/bindings/soc/rockchip/power_domain.txt+3−0
@@ -7,6 +7,7 @@ Required properties for power domain controller: · 6 unmodified lines
77 - compatible: Should be one of the following.
88 "rockchip,rk3288-power-controller" - for RK3288 SoCs.
99 "rockchip,rk3328-power-controller" - for RK3328 SoCs.
10+ "rockchip,rk3366-power-controller" - for RK3366 SoCs.
1011 "rockchip,rk3368-power-controller" - for RK3368 SoCs.
1112 "rockchip,rk3399-power-controller" - for RK3399 SoCs.
1213 - #power-domain-cells: Number of cells in a power-domain specifier.
@@ -18,6 +19,7 @@ Required properties for power domain sub nodes: · 5 unmodified lines
1819 - reg: index of the power domain, should use macros in:
1920 "include/dt-bindings/power/rk3288-power.h" - for RK3288 type power domain.
2021 "include/dt-bindings/power/rk3328-power.h" - for RK3328 type power domain.
22+ "include/dt-bindings/power/rk3366-power.h" - for RK3366 type power domain.
2123 "include/dt-bindings/power/rk3368-power.h" - for RK3368 type power domain.
2224 "include/dt-bindings/power/rk3399-power.h" - for RK3399 type power domain.
2325 - clocks (optional): phandles to clocks which need to be enabled while power domain
@@ -93,6 +95,7 @@ power domain to use. · 69 unmodified lines
9395 The index should use macros in:
9496 "include/dt-bindings/power/rk3288-power.h" - for rk3288 type power domain.
9597 "include/dt-bindings/power/rk3328-power.h" - for rk3328 type power domain.
98+ "include/dt-bindings/power/rk3366-power.h" - for rk3366 type power domain.
9699 "include/dt-bindings/power/rk3368-power.h" - for rk3368 type power domain.
97100 "include/dt-bindings/power/rk3399-power.h" - for rk3399 type power domain.
98101
Documentation/devicetree/bindings/soc/ti/sci-pm-domain.txt+3−2
@@ -46,12 +46,13 @@ Required Properties: · 45 unmodified lines
4646 - power-domains: phandle pointing to the corresponding PM domain node
4747 and an ID representing the device.
4848
49−See dt-bindings/genpd/k2g.h for the list of valid identifiers for k2g.
49+See http://processors.wiki.ti.com/index.php/TISCI#66AK2G02_Data for the list
50+of valid identifiers for k2g.
5051
5152 Example (K2G):
5253 --------------------
5354 uart0: serial@02530c00 {
5455 compatible = "ns16550a";
5556 ...
56− power-domains = <&k2g_pds K2G_DEV_UART0>;
57+ power-domains = <&k2g_pds 0x002c>;
5758 };
Documentation/devicetree/bindings/sound/armada-370db-audio.txt+0−1
@@ -23,5 +23,4 @@ Example: · 22 unmodified lines
2323 compatible = "marvell,a370db-audio";
2424 marvell,audio-controller = <&audio_controller>;
2525 marvell,audio-codec = <&audio_codec &spdif_out &spdif_in>;
26− status = "okay";
2726 };
Documentation/devicetree/bindings/sound/atmel-classd.txt+3−6
@@ -13,13 +13,11 @@ Required properties: · 12 unmodified lines
1313 Must be "tx".
1414 - clock-names
1515 Tuple listing input clock names.
16− Required elements: "pclk", "gclk" and "aclk".
16+ Required elements: "pclk" and "gclk".
1717 - clocks
1818 Please refer to clock-bindings.txt.
1919 - assigned-clocks
2020 Should be <&classd_gclk>.
21−- assigned-clock-parents
22− Should be <&audio_pll_pmc>.
2321
2422 Optional properties:
2523 - pinctrl-names, pinctrl-0
@@ -45,10 +43,9 @@ classd: classd@fc048000 { · 19 unmodified lines
4543 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1)
4644 | AT91_XDMAC_DT_PERID(47))>;
4745 dma-names = "tx";
48− clocks = <&classd_clk>, <&classd_gclk>, <&audio_pll_pmc>;
49− clock-names = "pclk", "gclk", "aclk";
46+ clocks = <&classd_clk>, <&classd_gclk>;
47+ clock-names = "pclk", "gclk";
5048 assigned-clocks = <&classd_gclk>;
51− assigned-clock-parents = <&audio_pll_pmc>;
5249
5350 pinctrl-names = "default";
5451 pinctrl-0 = <&pinctrl_classd_default>;
Documentation/devicetree/bindings/sound/axentia,tse850-pcm5142.txt+0−1
@@ -45,7 +45,6 @@ Example: · 44 unmodified lines
4545 &ssc0 {
4646 #sound-dai-cells = <0>;
4747
48− status = "okay";
4948 };
5049
5150 &i2c {
Documentation/devicetree/bindings/sound/brcm,cygnus-audio.txt+0−4
@@ -47,21 +47,17 @@ Example: · 46 unmodified lines
4747
4848 ssp0: ssp_port@0 {
4949 reg = <0>;
50− status = "okay";
5150 };
5251
5352 ssp1: ssp_port@1 {
5453 reg = <1>;
55− status = "disabled";
5654 };
5755
5856 ssp2: ssp_port@2 {
5957 reg = <2>;
60− status = "disabled";
6158 };
6259
6360 spdif: spdif_port@3 {
6461 reg = <3>;
65− status = "disabled";
6662 };
6763 };
Documentation/devicetree/bindings/sound/cs43130.txt+67−0
@@ -0,0 +1,67 @@
1+CS43130 DAC
2+
3+Required properties:
4+
5+ - compatible : "cirrus,cs43130", "cirrus,cs4399", "cirrus,cs43131",
6+ "cirrus,cs43198"
7+
8+ - reg : the I2C address of the device for I2C
9+
10+ - VA-supply, VP-supply, VL-supply, VCP-supply, VD-supply:
11+ power supplies for the device, as covered in
12+ Documentation/devicetree/bindings/regulator/regulator.txt.
13+
14+
15+Optional properties:
16+
17+ - reset-gpios : Active low GPIO used to reset the device
18+
19+ - cirrus,xtal-ibias:
20+ When external MCLK is generated by external crystal
21+ oscillator, CS43130 can be used to provide bias current
22+ for external crystal. Amount of bias current sent is
23+ set as:
24+ 1 = 7.5uA
25+ 2 = 12.5uA
26+ 3 = 15uA
27+
28+ - cirrus,dc-measure:
29+ Boolean, define to enable headphone DC impedance measurement.
30+
31+ - cirrus,ac-measure:
32+ Boolean, define to enable headphone AC impedance measurement.
33+ DC impedance must also be enabled for AC impedance measurement.
34+
35+ - cirrus,dc-threshold:
36+ Define 2 DC impedance thresholds in ohms for HP output control.
37+ Default values are 50 and 120 Ohms.
38+
39+ - cirrus,ac-freq:
40+ Define the frequencies at which to measure HP AC impedance.
41+ Only used if "cirrus,dc-measure" is defined.
42+ Exactly 10 frequencies must be defined.
43+ If this properties is undefined, by default,
44+ following frequencies are used:
45+ <24 43 93 200 431 928 2000 4309 9283 20000>
46+ The above frequencies are logarithmically equally spaced.
47+ Log base is 10.
48+
49+Example:
50+
51+cs43130: audio-codec@30 {
52+ compatible = "cirrus,cs43130";
53+ reg = <0x30>;
54+ reset-gpios = <&axi_gpio 54 0>;
55+ VA-supply = <&dummy_vreg>;
56+ VP-supply = <&dummy_vreg>;
57+ VL-supply = <&dummy_vreg>;
58+ VCP-supply = <&dummy_vreg>;
59+ VD-supply = <&dummy_vreg>;
60+ cirrus,xtal-ibias = <2>;
61+ interrupt-parent = <&gpio0>;
62+ interrupts = <55 8>;
63+ cirrus,dc-measure;
64+ cirrus,ac-measure;
65+ cirrus,dc-threshold = /bits/ 16 <20 100>;
66+ cirrus,ac-freq = /bits/ 16 <24 43 93 200 431 928 2000 4309 9283 20000>;
67+};
Documentation/devicetree/bindings/sound/davinci-mcbsp.txt+0−1
@@ -47,5 +47,4 @@ mcbsp0: mcbsp@1d10000 { · 46 unmodified lines
4747 dmas = <&edma0 3 1
4848 &edma0 2 1>;
4949 dma-names = "tx", "rx";
50− status = "okay";
5150 };
Documentation/devicetree/bindings/sound/dmic.txt+16−0
@@ -0,0 +1,16 @@
1+Device-Tree bindings for Digital microphone (DMIC) codec
2+
3+This device support generic PDM digital microphone.
4+
5+Required properties:
6+ - compatible: should be "dmic-codec".
7+
8+Optional properties:
9+ - dmicen-gpios: GPIO specifier for dmic to control start and stop
10+
11+Example node:
12+
13+ dmic_codec: dmic@0 {
14+ compatible = "dmic-codec";
15+ dmicen-gpios = <&gpio4 3 GPIO_ACTIVE_HIGH>;
16+ };
Documentation/devicetree/bindings/sound/fsl,asrc.txt+0−1
@@ -61,5 +61,4 @@ asrc: asrc@02034000 { · 60 unmodified lines
6161 "txa", "txb", "txc";
6262 fsl,asrc-rate = <48000>;
6363 fsl,asrc-width = <16>;
64− status = "okay";
6564 };
Documentation/devicetree/bindings/sound/fsl,esai.txt+0−1
@@ -59,5 +59,4 @@ esai: esai@02024000 { · 58 unmodified lines
5959 fsl,fifo-depth = <128>;
6060 fsl,esai-synchronous;
6161 big-endian;
62− status = "disabled";
6362 };
Documentation/devicetree/bindings/sound/fsl,spdif.txt+0−1
@@ -59,5 +59,4 @@ spdif: spdif@02004000 { · 58 unmodified lines
5959 "rxtx7";
6060
6161 big-endian;
62− status = "okay";
6362 };
Documentation/devicetree/bindings/sound/hdmi.txt+0−1
@@ -13,5 +13,4 @@ Example node: · 12 unmodified lines
1313
1414 hdmi_audio: hdmi_audio@0 {
1515 compatible = "linux,hdmi-audio";
16− status = "okay";
1716 };
Documentation/devicetree/bindings/sound/mt2701-afe-pcm.txt+3−1
@@ -3,7 +3,8 @@ Mediatek AFE PCM controller for mt2701 · 2 unmodified lines
33 Required properties:
44 - compatible = "mediatek,mt2701-audio";
55 - reg: register location and size
6−- interrupts: Should contain AFE interrupt
6+- interrupts: should contain AFE and ASYS interrupts
7+- interrupt-names: should be "afe" and "asys"
78 - power-domains: should define the power domain
89 - clock-names: should have these clock names:
910 "infra_sys_audio_clk",
@@ -59,6 +60,7 @@ Example: · 49 unmodified lines
5960 <0 0x112A0000 0 0x20000>;
6061 interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_LOW>,
6162 <GIC_SPI 132 IRQ_TYPE_LEVEL_LOW>;
63+ interrupt-names = "afe", "asys";
6264 power-domains = <&scpsys MT2701_POWER_DOMAIN_IFR_MSC>;
6365 clocks = <&infracfg CLK_INFRA_AUDIO>,
6466 <&topckgen CLK_TOP_AUD_MUX1_SEL>,
Documentation/devicetree/bindings/sound/qcom,msm8916-wcd-analog.txt+17−1
@@ -31,8 +31,22 @@ Required properties · 30 unmodified lines
3131 - vdd-cdc-io-supply: phandle to VDD_CDC_IO regulator DT node.
3232 - vdd-cdc-tx-rx-cx-supply: phandle to VDD_CDC_TX/RX/CX regulator DT node.
3333 - vdd-micbias-supply: phandle of VDD_MICBIAS supply's regulator DT node.
34−
3534 Optional Properties:
35+ - qcom,mbhc-vthreshold-low: Array of 5 threshold voltages in mV for 5 buttons
36+ detection on headset when the mbhc is powered up
37+ by internal current source, this is a low power.
38+ - qcom,mbhc-vthreshold-high: Array of 5 thresold voltages in mV for 5 buttons
39+ detection on headset when mbhc is powered up
40+ from micbias.
41+- qcom,micbias-lvl: Voltage (mV) for Mic Bias
42+- qcom,hphl-jack-type-normally-open: boolean, present if hphl pin on jack is a
43+ NO (Normally Open). If not specified, then
44+ its assumed that hphl pin on jack is NC
45+ (Normally Closed).
46+- qcom,gnd-jack-type-normally-open: boolean, present if gnd pin on jack is
47+ NO (Normally Open). If not specified, then
48+ its assumed that gnd pin on jack is NC
49+ (Normally Closed).
3650 - qcom,micbias1-ext-cap: boolean, present if micbias1 has external capacitor
3751 connected.
3852 - qcom,micbias2-ext-cap: boolean, present if micbias2 has external capacitor
@@ -48,6 +62,8 @@ spmi_bus { · 9 unmodified lines
4862 reg-names = "pmic-codec-core";
4963 clocks = <&gcc GCC_CODEC_DIGCODEC_CLK>;
5064 clock-names = "mclk";
65+ qcom,mbhc-vthreshold-low = <75 150 237 450 500>;
66+ qcom,mbhc-vthreshold-high = <75 150 237 450 500>;
5167 interrupt-parent = <&spmi_bus>;
5268 interrupts = <0x1 0xf0 0x0 IRQ_TYPE_NONE>,
5369 <0x1 0xf0 0x1 IRQ_TYPE_NONE>,
Documentation/devicetree/bindings/sound/renesas,rsnd.txt+34−36
@@ -199,10 +199,10 @@ Ex) · 198 unmodified lines
199199 sound {
200200 compatible = "simple-scu-audio-card";
201201 ...
202− simple-audio-card,cpu@0 {
202+ simple-audio-card,cpu-0 {
203203 sound-dai = <&rcar_sound 0>;
204204 };
205− simple-audio-card,cpu@1 {
205+ simple-audio-card,cpu-1 {
206206 sound-dai = <&rcar_sound 1>;
207207 };
208208 simple-audio-card,codec {
@@ -441,79 +441,79 @@ rcar_sound: sound@ec500000 { · 232 unmodified lines
441441 "clk_a", "clk_b", "clk_c", "clk_i";
442442
443443 rcar_sound,dvc {
444− dvc0: dvc@0 {
444+ dvc0: dvc-0 {
445445 dmas = <&audma0 0xbc>;
446446 dma-names = "tx";
447447 };
448− dvc1: dvc@1 {
448+ dvc1: dvc-1 {
449449 dmas = <&audma0 0xbe>;
450450 dma-names = "tx";
451451 };
452452 };
453453
454454 rcar_sound,mix {
455− mix0: mix@0 { };
456− mix1: mix@1 { };
455+ mix0: mix-0 { };
456+ mix1: mix-1 { };
457457 };
458458
459459 rcar_sound,ctu {
460− ctu00: ctu@0 { };
461− ctu01: ctu@1 { };
462− ctu02: ctu@2 { };
463− ctu03: ctu@3 { };
464− ctu10: ctu@4 { };
465− ctu11: ctu@5 { };
466− ctu12: ctu@6 { };
467− ctu13: ctu@7 { };
460+ ctu00: ctu-0 { };
461+ ctu01: ctu-1 { };
462+ ctu02: ctu-2 { };
463+ ctu03: ctu-3 { };
464+ ctu10: ctu-4 { };
465+ ctu11: ctu-5 { };
466+ ctu12: ctu-6 { };
467+ ctu13: ctu-7 { };
468468 };
469469
470470 rcar_sound,src {
471− src0: src@0 {
471+ src0: src-0 {
472472 interrupts = <0 352 IRQ_TYPE_LEVEL_HIGH>;
473473 dmas = <&audma0 0x85>, <&audma1 0x9a>;
474474 dma-names = "rx", "tx";
475475 };
476− src1: src@1 {
476+ src1: src-1 {
477477 interrupts = <0 353 IRQ_TYPE_LEVEL_HIGH>;
478478 dmas = <&audma0 0x87>, <&audma1 0x9c>;
479479 dma-names = "rx", "tx";
480480 };
481− src2: src@2 {
481+ src2: src-2 {
482482 interrupts = <0 354 IRQ_TYPE_LEVEL_HIGH>;
483483 dmas = <&audma0 0x89>, <&audma1 0x9e>;
484484 dma-names = "rx", "tx";
485485 };
486− src3: src@3 {
486+ src3: src-3 {
487487 interrupts = <0 355 IRQ_TYPE_LEVEL_HIGH>;
488488 dmas = <&audma0 0x8b>, <&audma1 0xa0>;
489489 dma-names = "rx", "tx";
490490 };
491− src4: src@4 {
491+ src4: src-4 {
492492 interrupts = <0 356 IRQ_TYPE_LEVEL_HIGH>;
493493 dmas = <&audma0 0x8d>, <&audma1 0xb0>;
494494 dma-names = "rx", "tx";
495495 };
496− src5: src@5 {
496+ src5: src-5 {
497497 interrupts = <0 357 IRQ_TYPE_LEVEL_HIGH>;
498498 dmas = <&audma0 0x8f>, <&audma1 0xb2>;
499499 dma-names = "rx", "tx";
500500 };
501− src6: src@6 {
501+ src6: src-6 {
502502 interrupts = <0 358 IRQ_TYPE_LEVEL_HIGH>;
503503 dmas = <&audma0 0x91>, <&audma1 0xb4>;
504504 dma-names = "rx", "tx";
505505 };
506− src7: src@7 {
506+ src7: src-7 {
507507 interrupts = <0 359 IRQ_TYPE_LEVEL_HIGH>;
508508 dmas = <&audma0 0x93>, <&audma1 0xb6>;
509509 dma-names = "rx", "tx";
510510 };
511− src8: src@8 {
511+ src8: src-8 {
512512 interrupts = <0 360 IRQ_TYPE_LEVEL_HIGH>;
513513 dmas = <&audma0 0x95>, <&audma1 0xb8>;
514514 dma-names = "rx", "tx";
515515 };
516− src9: src@9 {
516+ src9: src-9 {
517517 interrupts = <0 361 IRQ_TYPE_LEVEL_HIGH>;
518518 dmas = <&audma0 0x97>, <&audma1 0xba>;
519519 dma-names = "rx", "tx";
@@ -521,52 +521,52 @@ rcar_sound: sound@ec500000 { · 1 unmodified line
521521 };
522522
523523 rcar_sound,ssi {
524− ssi0: ssi@0 {
524+ ssi0: ssi-0 {
525525 interrupts = <0 370 IRQ_TYPE_LEVEL_HIGH>;
526526 dmas = <&audma0 0x01>, <&audma1 0x02>, <&audma0 0x15>, <&audma1 0x16>;
527527 dma-names = "rx", "tx", "rxu", "txu";
528528 };
529− ssi1: ssi@1 {
529+ ssi1: ssi-1 {
530530 interrupts = <0 371 IRQ_TYPE_LEVEL_HIGH>;
531531 dmas = <&audma0 0x03>, <&audma1 0x04>, <&audma0 0x49>, <&audma1 0x4a>;
532532 dma-names = "rx", "tx", "rxu", "txu";
533533 };
534− ssi2: ssi@2 {
534+ ssi2: ssi-2 {
535535 interrupts = <0 372 IRQ_TYPE_LEVEL_HIGH>;
536536 dmas = <&audma0 0x05>, <&audma1 0x06>, <&audma0 0x63>, <&audma1 0x64>;
537537 dma-names = "rx", "tx", "rxu", "txu";
538538 };
539− ssi3: ssi@3 {
539+ ssi3: ssi-3 {
540540 interrupts = <0 373 IRQ_TYPE_LEVEL_HIGH>;
541541 dmas = <&audma0 0x07>, <&audma1 0x08>, <&audma0 0x6f>, <&audma1 0x70>;
542542 dma-names = "rx", "tx", "rxu", "txu";
543543 };
544− ssi4: ssi@4 {
544+ ssi4: ssi-4 {
545545 interrupts = <0 374 IRQ_TYPE_LEVEL_HIGH>;
546546 dmas = <&audma0 0x09>, <&audma1 0x0a>, <&audma0 0x71>, <&audma1 0x72>;
547547 dma-names = "rx", "tx", "rxu", "txu";
548548 };
549− ssi5: ssi@5 {
549+ ssi5: ssi-5 {
550550 interrupts = <0 375 IRQ_TYPE_LEVEL_HIGH>;
551551 dmas = <&audma0 0x0b>, <&audma1 0x0c>, <&audma0 0x73>, <&audma1 0x74>;
552552 dma-names = "rx", "tx", "rxu", "txu";
553553 };
554− ssi6: ssi@6 {
554+ ssi6: ssi-6 {
555555 interrupts = <0 376 IRQ_TYPE_LEVEL_HIGH>;
556556 dmas = <&audma0 0x0d>, <&audma1 0x0e>, <&audma0 0x75>, <&audma1 0x76>;
557557 dma-names = "rx", "tx", "rxu", "txu";
558558 };
559− ssi7: ssi@7 {
559+ ssi7: ssi-7 {
560560 interrupts = <0 377 IRQ_TYPE_LEVEL_HIGH>;
561561 dmas = <&audma0 0x0f>, <&audma1 0x10>, <&audma0 0x79>, <&audma1 0x7a>;
562562 dma-names = "rx", "tx", "rxu", "txu";
563563 };
564− ssi8: ssi@8 {
564+ ssi8: ssi-8 {
565565 interrupts = <0 378 IRQ_TYPE_LEVEL_HIGH>;
566566 dmas = <&audma0 0x11>, <&audma1 0x12>, <&audma0 0x7b>, <&audma1 0x7c>;
567567 dma-names = "rx", "tx", "rxu", "txu";
568568 };
569− ssi9: ssi@9 {
569+ ssi9: ssi-9 {
570570 interrupts = <0 379 IRQ_TYPE_LEVEL_HIGH>;
571571 dmas = <&audma0 0x13>, <&audma1 0x14>, <&audma0 0x7d>, <&audma1 0x7e>;
572572 dma-names = "rx", "tx", "rxu", "txu";
@@ -621,7 +621,6 @@ Example: simple sound card · 48 unmodified lines
621621 /* Single DAI */
622622 #sound-dai-cells = <0>;
623623
624− status = "okay";
625624
626625 rcar_sound,dai {
627626 dai0 {
@@ -667,7 +666,6 @@ Example: simple sound card for Multi channel · 39 unmodified lines
667666 /* Single DAI */
668667 #sound-dai-cells = <0>;
669668
670− status = "okay";
671669
672670 rcar_sound,dai {
673671 dai0 {
Documentation/devicetree/bindings/sound/rockchip,pdm.txt+5−3
@@ -29,11 +29,13 @@ pdm: pdm@ff040000 { · 28 unmodified lines
2929 dma-names = "rx";
3030 pinctrl-names = "default", "sleep";
3131 pinctrl-0 = <&pdmm0_clk
32− &pdmm0_fsync
3332 &pdmm0_sdi0
3433 &pdmm0_sdi1
3534 &pdmm0_sdi2
3635 &pdmm0_sdi3>;
37− pinctrl-1 = <&pdmm0_sleep>;
38− status = "disabled";
36+ pinctrl-1 = <&pdmm0_clk_sleep
37+ &pdmm0_sdi0_sleep
38+ &pdmm0_sdi1_sleep
39+ &pdmm0_sdi2_sleep
40+ &pdmm0_sdi3_sleep>;
3941 };
Documentation/devicetree/bindings/sound/rockchip,rk3399-gru-sound.txt+1−1
@@ -4,7 +4,7 @@ Required properties: · 3 unmodified lines
44 - compatible: "rockchip,rk3399-gru-sound"
55 - rockchip,cpu: The phandle of the Rockchip I2S controller that's
66 connected to the codecs
7−- rockchip,codec: The phandle of the MAX98357A/RT5514/DA7219 codecs
7+- rockchip,codec: The phandle of the audio codecs
88
99 Optional properties:
1010 - dmic-wakeup-delay-ms : specify delay time (ms) for DMIC ready.
Documentation/devicetree/bindings/sound/rockchip-i2s.txt+4−0
@@ -7,8 +7,12 @@ Required properties: · 6 unmodified lines
77
88 - compatible: should be one of the following:
99 - "rockchip,rk3066-i2s": for rk3066
10+ - "rockchip,rk3036-i2s", "rockchip,rk3066-i2s": for rk3036
1011 - "rockchip,rk3188-i2s", "rockchip,rk3066-i2s": for rk3188
12+ - "rockchip,rk3228-i2s", "rockchip,rk3066-i2s": for rk3228
1113 - "rockchip,rk3288-i2s", "rockchip,rk3066-i2s": for rk3288
14+ - "rockchip,rk3328-i2s", "rockchip,rk3066-i2s": for rk3328
15+ - "rockchip,rk3366-i2s", "rockchip,rk3066-i2s": for rk3366
1216 - "rockchip,rk3368-i2s", "rockchip,rk3066-i2s": for rk3368
1317 - "rockchip,rk3399-i2s", "rockchip,rk3066-i2s": for rk3399
1418 - reg: physical base address of the controller and length of memory mapped
Documentation/devicetree/bindings/sound/rockchip-spdif.txt+0−1
@@ -41,6 +41,5 @@ spdif: spdif@0x1011e000 { · 40 unmodified lines
4141 dma-names = "tx";
4242 clock-names = "hclk", "mclk";
4343 clocks = <&cru HCLK_SPDIF>, <&cru SCLK_SPDIF>;
44− status = "disabled";
4544 #sound-dai-cells = <0>;
4645 };
Documentation/devicetree/bindings/sound/rt274.txt+33−0
@@ -0,0 +1,33 @@
1+RT274 audio CODEC
2+
3+This device supports I2C only.
4+
5+Required properties:
6+
7+- compatible : "realtek,rt274".
8+
9+- reg : The I2C address of the device.
10+
11+Optional properties:
12+
13+- interrupts : The CODEC's interrupt output.
14+
15+
16+Pins on the device (for linking into audio routes) for RT274:
17+
18+ * DMIC1 Pin
19+ * DMIC2 Pin
20+ * MIC
21+ * LINE1
22+ * LINE2
23+ * HPO Pin
24+ * SPDIF
25+ * LINE3
26+
27+Example:
28+
29+codec: rt274@1c {
30+ compatible = "realtek,rt274";
31+ reg = <0x1c>;
32+ interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
33+};
Documentation/devicetree/bindings/sound/rt5663.txt+8−0
@@ -12,6 +12,14 @@ Required properties: · 11 unmodified lines
1212
1313 Optional properties:
1414
15+- "realtek,dc_offset_l_manual"
16+- "realtek,dc_offset_r_manual"
17+- "realtek,dc_offset_l_manual_mic"
18+- "realtek,dc_offset_r_manual_mic"
19+ Based on the different PCB layout, add the manual offset value to
20+ compensate the DC offset for each L and R channel, and they are different
21+ between headphone and headset.
22+
1523 Pins on the device (for linking into audio routes) for RT5663:
1624
1725 * IN1P
Documentation/devicetree/bindings/sound/samsung,odroid.txt+0−6
@@ -7,9 +7,6 @@ Required properties: · 6 unmodified lines
77 - model - the user-visible name of this sound complex
88 - clocks - should contain entries matching clock names in the clock-names
99 property
10− - clock-names - should contain following entries:
11− - "epll" - indicating the EPLL output clock
12− - "i2s_rclk" - indicating the RCLK (root) clock of the I2S0 controller
1310 - samsung,audio-widgets - this property specifies off-codec audio elements
1411 like headphones or speakers, for details see widgets.txt
1512 - samsung,audio-routing - a list of the connections between audio
@@ -46,9 +43,6 @@ sound { · 30 unmodified lines
4643 "IN1", "Mic Jack",
4744 "Mic Jack", "MICBIAS";
4845
49− clocks = <&clock CLK_FOUT_EPLL>, <&i2s0 CLK_I2S_RCLK_SRC>;
50− clock-names = "epll", "sclk_i2s";
51−
5246 cpu {
5347 sound-dai = <&i2s0 0>;
5448 };
Documentation/devicetree/bindings/sound/simple-card.txt+3−0
@@ -86,6 +86,9 @@ Optional CPU/CODEC subnodes properties: · 85 unmodified lines
8686 in dai startup() and disabled with
8787 clk_disable_unprepare() in dai
8888 shutdown().
89+- system-clock-direction-out : specifies clock direction as 'out' on
90+ initialization. It is useful for some aCPUs with
91+ fixed clocks.
8992
9093 Example 1 - single DAI link:
9194
Documentation/devicetree/bindings/sound/simple-scu-card.txt+1−0
@@ -24,6 +24,7 @@ Optional subnode properties: · 23 unmodified lines
2424 - simple-audio-card,convert-rate : platform specified sampling rate convert
2525 - simple-audio-card,convert-channels : platform specified converted channel size (2 - 8 ch)
2626 - simple-audio-card,prefix : see routing
27+- simple-audio-card,widgets : Please refer to widgets.txt.
2728 - simple-audio-card,routing : A list of the connections between audio components.
2829 Each entry is a pair of strings, the first being the connection's sink,
2930 the second being the connection's source. Valid names for sources.
Documentation/devicetree/bindings/sound/st,sti-asoc-card.txt+0−5
@@ -53,7 +53,6 @@ Example: · 52 unmodified lines
5353
5454 sti_uni_player1: sti-uni-player@0x8D81000 {
5555 compatible = "st,stih407-uni-player-hdmi";
56− status = "okay";
5756 #sound-dai-cells = <0>;
5857 st,syscfg = <&syscfg_core>;
5958 clocks = <&clk_s_d0_flexgen CLK_PCM_1>;
@@ -66,7 +65,6 @@ Example: · 6 unmodified lines
6665
6766 sti_uni_player2: sti-uni-player@0x8D82000 {
6867 compatible = "st,stih407-uni-player-pcm-out";
69− status = "okay";
7068 #sound-dai-cells = <0>;
7169 st,syscfg = <&syscfg_core>;
7270 clocks = <&clk_s_d0_flexgen CLK_PCM_2>;
@@ -78,7 +76,6 @@ Example: · 5 unmodified lines
7876
7977 sti_uni_player3: sti-uni-player@0x8D85000 {
8078 compatible = "st,stih407-uni-player-spdif";
81− status = "okay";
8279 #sound-dai-cells = <0>;
8380 st,syscfg = <&syscfg_core>;
8481 clocks = <&clk_s_d0_flexgen CLK_SPDIFF>;
@@ -90,7 +87,6 @@ Example: · 5 unmodified lines
9087
9188 sti_uni_reader1: sti-uni-reader@0x8D84000 {
9289 compatible = "st,stih407-uni-reader-hdmi";
93− status = "disabled";
9490 #sound-dai-cells = <0>;
9591 st,syscfg = <&syscfg_core>;
9692 reg = <0x8D84000 0x158>;
@@ -125,7 +121,6 @@ Example of audio card declaration: · 28 unmodified lines
125121 sound {
126122 compatible = "simple-audio-card";
127123 simple-audio-card,name = "sti audio card";
128− status = "okay";
129124
130125 simple-audio-card,dai-link@0 {
131126 /* DAC */
Documentation/devicetree/bindings/sound/sun4i-i2s.txt+2−0
@@ -8,6 +8,7 @@ Required properties: · 7 unmodified lines
88 - compatible: should be one of the following:
99 - "allwinner,sun4i-a10-i2s"
1010 - "allwinner,sun6i-a31-i2s"
11+ - "allwinner,sun8i-h3-i2s"
1112 - reg: physical base address of the controller and length of memory mapped
1213 region.
1314 - interrupts: should contain the I2S interrupt.
@@ -22,6 +23,7 @@ Required properties: · 8 unmodified lines
2223
2324 Required properties for the following compatibles:
2425 - "allwinner,sun6i-a31-i2s"
26+ - "allwinner,sun8i-h3-i2s"
2527 - resets: phandle to the reset line for this codec
2628
2729 Example:
Documentation/devicetree/bindings/sound/sunxi,sun4i-spdif.txt+0−1
@@ -39,5 +39,4 @@ spdif: spdif@01c21000 { · 38 unmodified lines
3939 clock-names = "apb", "spdif";
4040 dmas = <&dma 0 2>, <&dma 0 2>;
4141 dma-names = "rx", "tx";
42− status = "okay";
4342 };
Documentation/devicetree/bindings/sound/tas5720.txt+0−1
@@ -17,7 +17,6 @@ Required properties: · 16 unmodified lines
1717 Example:
1818
1919 tas5720: tas5720@6c {
20− status = "okay";
2120 compatible = "ti,tas5720";
2221 reg = <0x6c>;
2322 dvdd-supply = <&vdd_3v3_reg>;
Documentation/devicetree/bindings/sound/tlv320aic32x4.txt+12−1
@@ -3,7 +3,9 @@ Texas Instruments - tlv320aic32x4 Codec module · 2 unmodified lines
33 The tlv320aic32x4 serial control bus communicates through I2C protocols
44
55 Required properties:
6− - compatible: Should be "ti,tlv320aic32x4"
6+ - compatible - "string" - One of:
7+ "ti,tlv320aic32x4" TLV320AIC3204
8+ "ti,tlv320aic32x6" TLV320AIC3206, TLV320AIC3256
79 - reg: I2C slave address
810 - supply-*: Required supply regulators are:
911 "iov" - digital IO power supply
@@ -18,6 +20,8 @@ Optional properties: · 8 unmodified lines
1820 - reset-gpios: Reset-GPIO phandle with args as described in gpio/gpio.txt
1921 - clocks/clock-names: Clock named 'mclk' for the master clock of the codec.
2022 See clock/clock-bindings.txt for information about the detailed format.
23+ - aic32x4-gpio-func - <array of 5 int>
24+ - Types are defined in include/sound/tlv320aic32x4.h
2125
2226
2327 Example:
@@ -27,4 +31,11 @@ codec: tlv320aic32x4@18 { · 3 unmodified lines
2731 reg = <0x18>;
2832 clocks = <&clks 201>;
2933 clock-names = "mclk";
34+ aic32x4-gpio-func= <
35+ 0xff /* AIC32X4_MFPX_DEFAULT_VALUE */
36+ 0xff /* AIC32X4_MFPX_DEFAULT_VALUE */
37+ 0x04 /* MFP3 AIC32X4_MFP3_GPIO_ENABLED */
38+ 0xff /* AIC32X4_MFPX_DEFAULT_VALUE */
39+ 0x08 /* MFP5 AIC32X4_MFP5_GPIO_INPUT */
40+ >;
3041 };
Documentation/devicetree/bindings/sound/tlv320aic3x.txt+5−0
@@ -26,6 +26,11 @@ Optional properties: · 25 unmodified lines
2626 3 - MICBIAS output is connected to AVDD,
2727 If this node is not mentioned or if the value is incorrect, then MicBias
2828 is powered down.
29+- ai3x-ocmv - Output Common-Mode Voltage selection:
30+ 0 - 1.35V,
31+ 1 - 1.5V,
32+ 2 - 1.65V,
33+ 3 - 1.8V
2934 - AVDD-supply, IOVDD-supply, DRVDD-supply, DVDD-supply : power supplies for the
3035 device as covered in Documentation/devicetree/bindings/regulator/regulator.txt
3136
Documentation/devicetree/bindings/sound/wm8524.txt+16−0
@@ -0,0 +1,16 @@
1+WM8524 audio CODEC
2+
3+This device does not use I2C or SPI but a simple Hardware Control Interface.
4+
5+Required properties:
6+
7+ - compatible : "wlf,wm8524"
8+
9+ - wlf,mute-gpios: a GPIO spec for the MUTE pin.
10+
11+Example:
12+
13+codec: wm8524@0 {
14+ compatible = "wlf,wm8524";
15+ wlf,mute-gpios = <&gpio1 8 GPIO_ACTIVE_LOW>;
16+};
Documentation/devicetree/bindings/sound/zte,zx-i2s.txt+0−1
@@ -27,7 +27,6 @@ Example: · 26 unmodified lines
2727 interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
2828 dmas = <&dma 5>, <&dma 6>;
2929 dma-names = "tx", "rx";
30− status = "okay";
3130 };
3231
3332 sound {
Documentation/devicetree/bindings/sound/zte,zx-spdif.txt+0−1
@@ -24,5 +24,4 @@ Example: · 23 unmodified lines
2424 interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
2525 dmas = <&dma 4>;
2626 dma-names = "tx";
27− status = "okay";
2827 };
Documentation/devicetree/bindings/spi/efm32-spi.txt+0−2
@@ -28,7 +28,6 @@ spi1: spi@0x4000c400 { /* USART1 */ · 27 unmodified lines
2828 clocks = <&cmu 20>;
2929 cs-gpios = <&gpio 51 1>; // D3
3030 energymicro,location = <1>;
31− status = "ok";
3231
3332 ks8851@0 {
3433 compatible = "ks8851";
@@ -36,6 +35,5 @@ spi1: spi@0x4000c400 { /* USART1 */ · 1 unmodified line
3635 reg = <0>;
3736 interrupt-parent = <&boardfpga>;
3837 interrupts = <4>;
39− status = "ok";
4038 };
4139 };
Documentation/devicetree/bindings/spi/fsl-imx-cspi.txt+1−0
@@ -9,6 +9,7 @@ Required properties: · 8 unmodified lines
99 - "fsl,imx31-cspi" for SPI compatible with the one integrated on i.MX31
1010 - "fsl,imx35-cspi" for SPI compatible with the one integrated on i.MX35
1111 - "fsl,imx51-ecspi" for SPI compatible with the one integrated on i.MX51
12+ - "fsl,imx53-ecspi" for SPI compatible with the one integrated on i.MX53 and later Soc
1213 - reg : Offset and length of the register set for the device
1314 - interrupts : Should contain CSPI/eCSPI interrupt
1415 - cs-gpios : Specifies the gpio pins to be used for chipselects.
Documentation/devicetree/bindings/spi/nvidia,tegra114-spi.txt+0−1
@@ -38,5 +38,4 @@ spi@7000d600 { · 37 unmodified lines
3838 reset-names = "spi";
3939 dmas = <&apbdma 16>, <&apbdma 16>;
4040 dma-names = "rx", "tx";
41− status = "disabled";
4241 };
Documentation/devicetree/bindings/spi/nvidia,tegra20-sflash.txt+0−1
@@ -34,5 +34,4 @@ spi@7000c380 { · 33 unmodified lines
3434 reset-names = "spi";
3535 dmas = <&apbdma 11>, <&apbdma 11>;
3636 dma-names = "rx", "tx";
37− status = "disabled";
3837 };
Documentation/devicetree/bindings/spi/nvidia,tegra20-slink.txt+0−1
@@ -34,5 +34,4 @@ spi@7000d600 { · 33 unmodified lines
3434 reset-names = "spi";
3535 dmas = <&apbdma 16>, <&apbdma 16>;
3636 dma-names = "rx", "tx";
37− status = "disabled";
3837 };
Documentation/devicetree/bindings/spi/sh-hspi.txt+0−1
@@ -24,6 +24,5 @@ Example: · 23 unmodified lines
2424 interrupts = <0 63 IRQ_TYPE_LEVEL_HIGH>;
2525 #address-cells = <1>;
2626 #size-cells = <0>;
27− status = "disabled";
2827 };
2928
Documentation/devicetree/bindings/spi/sh-msiof.txt+1−1
@@ -6,6 +6,7 @@ Required properties: · 5 unmodified lines
66 "renesas,msiof-r8a7792" (R-Car V2H)
77 "renesas,msiof-r8a7793" (R-Car M2-N)
88 "renesas,msiof-r8a7794" (R-Car E2)
9+ "renesas,msiof-r8a7795" (R-Car H3)
910 "renesas,msiof-r8a7796" (R-Car M3-W)
1011 "renesas,msiof-sh73a0" (SH-Mobile AG5)
1112 "renesas,sh-mobile-msiof" (generic SH-Mobile compatibile device)
@@ -78,5 +79,4 @@ Example: · 66 unmodified lines
7879 dma-names = "tx", "rx";
7980 #address-cells = <1>;
8081 #size-cells = <0>;
81− status = "disabled";
8282 };
Documentation/devicetree/bindings/spi/spi-clps711x.txt+0−1
@@ -23,7 +23,6 @@ spi@80000500 { · 22 unmodified lines
2323 reg = <0x80000500 0x4>;
2424 interrupts = <15>;
2525 clocks = <&clks CLPS711X_CLK_SPI>;
26− status = "disabled";
2726 };
2827
2928 syscon3: syscon@80002200 {
Documentation/devicetree/bindings/spi/spi-fsl-dspi.txt+0−1
@@ -39,7 +39,6 @@ dspi0@4002c000 { · 38 unmodified lines
3939 pinctrl-names = "default";
4040 pinctrl-0 = <&pinctrl_dspi0_1>;
4141 big-endian;
42− status = "okay";
4342
4443 sflash: at26df081a@0 {
4544 #address-cells = <1>;
Documentation/devicetree/bindings/spi/spi-mt65xx.txt+0−1
@@ -57,5 +57,4 @@ spi: spi@1100a000 { · 56 unmodified lines
5757 clock-names = "parent-clk", "sel-clk", "spi-clk";
5858 cs-gpios = <&pio 105 GPIO_ACTIVE_LOW>, <&pio 72 GPIO_ACTIVE_LOW>;
5959 mediatek,pad-select = <1>, <0>;
60− status = "disabled";
6160 };
Documentation/devicetree/bindings/spi/spi-orion.txt+0−2
@@ -29,7 +29,6 @@ Example: · 28 unmodified lines
2929 cell-index = <0>;
3030 reg = <0x10600 0x28>;
3131 interrupts = <23>;
32− status = "disabled";
3332 };
3433
3534 Example with SPI direct mode support (optionally):
@@ -48,7 +47,6 @@ Example with SPI direct mode support (optionally): · 12 unmodified lines
4847 <MBUS_ID(0x01, 0x9f) 0 0xffffffff>, /* CS6 */
4948 <MBUS_ID(0x01, 0xdf) 0 0xffffffff>; /* CS7 */
5049 interrupts = <23>;
51− status = "disabled";
5250 };
5351
5452 To enable the direct mode, the board specific 'ranges' property in the
Documentation/devicetree/bindings/spi/spi-rockchip.txt+1−0
@@ -6,6 +6,7 @@ and display controllers using the SPI communication interface. · 5 unmodified lines
66 Required Properties:
77
88 - compatible: should be one of the following.
9+ "rockchip,rv1108-spi" for rv1108 SoCs.
910 "rockchip,rk3036-spi" for rk3036 SoCS.
1011 "rockchip,rk3066-spi" for rk3066 SoCs.
1112 "rockchip,rk3188-spi" for rk3188 SoCs.
Documentation/devicetree/bindings/spi/spi-sun4i.txt+0−1
@@ -18,7 +18,6 @@ spi1: spi@01c06000 { · 17 unmodified lines
1818 interrupts = <11>;
1919 clocks = <&ahb_gates 21>, <&spi1_clk>;
2020 clock-names = "ahb", "mod";
21− status = "disabled";
2221 #address-cells = <1>;
2322 #size-cells = <0>;
2423 };
Documentation/devicetree/bindings/spi/spi-sun6i.txt+0−1
@@ -39,7 +39,6 @@ spi0: spi@01c68000 { · 38 unmodified lines
3939 pinctrl-names = "default";
4040 pinctrl-0 = <&spi0_pins>;
4141 resets = <&ccu RST_BUS_SPI0>;
42− status = "disabled";
4342 #address-cells = <1>;
4443 #size-cells = <0>;
4544 };
Documentation/devicetree/bindings/spi/spi_atmel.txt+0−1
@@ -26,7 +26,6 @@ spi1: spi@fffcc000 { · 25 unmodified lines
2626 clock-names = "spi_clk";
2727 cs-gpios = <&pioB 3 0>;
2828 atmel,fifo-size = <32>;
29− status = "okay";
3029
3130 mmc-slot@0 {
3231 compatible = "mmc-spi-slot";
Documentation/devicetree/bindings/sram/renesas,smp-sram.txt+27−0
@@ -0,0 +1,27 @@
1+* Renesas SMP SRAM
2+
3+Renesas R-Car Gen2 and RZ/G1 SoCs need a small piece of SRAM for the jump stub
4+for secondary CPU bringup and CPU hotplug.
5+This memory is reserved by adding a child node to a "mmio-sram" node, cfr.
6+Documentation/devicetree/bindings/sram/sram.txt.
7+
8+Required child node properties:
9+ - compatible: Must be "renesas,smp-sram",
10+ - reg: Address and length of the reserved SRAM.
11+ The full physical (bus) address must be aligned to a 256 KiB boundary.
12+
13+
14+Example:
15+
16+ icram1: sram@e63c0000 {
17+ compatible = "mmio-sram";
18+ reg = <0 0xe63c0000 0 0x1000>;
19+ #address-cells = <1>;
20+ #size-cells = <1>;
21+ ranges = <0 0 0xe63c0000 0x1000>;
22+
23+ smp-sram@0 {
24+ compatible = "renesas,smp-sram";
25+ reg = <0 0x10>;
26+ };
27+ };
Documentation/devicetree/bindings/sram/sunxi-sram.txt+7−3
@@ -9,7 +9,9 @@ Controller Node · 8 unmodified lines
99 ---------------
1010
1111 Required properties:
12−- compatible : "allwinner,sun4i-a10-sram-controller"
12+- compatible : should be:
13+ - "allwinner,sun4i-a10-sram-controller"
14+ - "allwinner,sun50i-a64-sram-controller"
1315 - reg : sram controller register offset + length
1416
1517 SRAM nodes
@@ -22,10 +24,13 @@ Each SRAM will have SRAM sections that are going to be handled by the · 6 unmodified lines
2224 SRAM controller as subnodes. These sections are represented following
2325 once again the representation described in the mmio-sram binding.
2426
25−The valid sections compatible are:
27+The valid sections compatible for A10 are:
2628 - allwinner,sun4i-a10-sram-a3-a4
2729 - allwinner,sun4i-a10-sram-d
2830
31+The valid sections compatible for A64 are:
32+ - allwinner,sun50i-a64-sram-c
33+
2934 Devices using SRAM sections
3035 ---------------------------
3136
@@ -59,7 +64,6 @@ sram-controller@01c00000 { · 27 unmodified lines
5964 emac_sram: sram-section@8000 {
6065 compatible = "allwinner,sun4i-a10-sram-a3-a4";
6166 reg = <0x8000 0x4000>;
62− status = "disabled";
6367 };
6468 };
6569 };
Documentation/devicetree/bindings/thermal/armada-thermal.txt+0−1
@@ -20,5 +20,4 @@ Example: · 19 unmodified lines
2020 compatible = "marvell,armada370-thermal";
2121 reg = <0xd0018300 0x4
2222 0xd0018304 0x4>;
23− status = "okay";
2423 };
Documentation/devicetree/bindings/thermal/exynos-thermal.txt+0−1
@@ -77,7 +77,6 @@ Example 1): · 76 unmodified lines
7777 interrupts = <2 4>;
7878 clocks = <&clock 383>;
7979 clock-names = "tmu_apbif";
80− status = "disabled";
8180 vtmu-supply = <&tmu_regulator_node>;
8281 #include "exynos4412-tmu-sensor-conf.dtsi"
8382 };
Documentation/devicetree/bindings/thermal/mediatek-thermal.txt+1−0
@@ -11,6 +11,7 @@ Required properties: · 10 unmodified lines
1111 - compatible:
1212 - "mediatek,mt8173-thermal" : For MT8173 family of SoCs
1313 - "mediatek,mt2701-thermal" : For MT2701 family of SoCs
14+ - "mediatek,mt2712-thermal" : For MT2712 family of SoCs
1415 - reg: Address range of the thermal controller
1516 - interrupts: IRQ for the thermal controller
1617 - clocks, clock-names: Clocks needed for the thermal controller. required
Documentation/devicetree/bindings/thermal/rcar-gen3-thermal.txt+0−1
@@ -36,7 +36,6 @@ Example: · 35 unmodified lines
3636 clocks = <&cpg CPG_MOD 522>;
3737 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
3838 #thermal-sensor-cells = <1>;
39− status = "okay";
4039 };
4140
4241 thermal-zones {
Documentation/devicetree/bindings/thermal/rockchip-thermal.txt+1−0
@@ -4,6 +4,7 @@ Required properties: · 3 unmodified lines
44 - compatible : should be "rockchip,<name>-tsadc"
55 "rockchip,rk3228-tsadc": found on RK3228 SoCs
66 "rockchip,rk3288-tsadc": found on RK3288 SoCs
7+ "rockchip,rk3328-tsadc": found on RK3328 SoCs
78 "rockchip,rk3368-tsadc": found on RK3368 SoCs
89 "rockchip,rk3399-tsadc": found on RK3399 SoCs
910 - reg : physical base address of the controller and length of memory mapped
Documentation/devicetree/bindings/thermal/uniphier-thermal.txt+64−0
@@ -0,0 +1,64 @@
1+* UniPhier Thermal bindings
2+
3+This describes the devicetree bindings for thermal monitor supported by
4+PVT(Process, Voltage and Temperature) monitoring unit implemented on Socionext
5+UniPhier SoCs.
6+
7+Required properties:
8+- compatible :
9+ - "socionext,uniphier-pxs2-thermal" : For UniPhier PXs2 SoC
10+ - "socionext,uniphier-ld20-thermal" : For UniPhier LD20 SoC
11+- interrupts : IRQ for the temperature alarm
12+- #thermal-sensor-cells : Should be 0. See ./thermal.txt for details.
13+
14+Optional properties:
15+- socionext,tmod-calibration: A pair of calibrated values referred from PVT,
16+ in case that the values aren't set on SoC,
17+ like a reference board.
18+
19+Example:
20+
21+ sysctrl@61840000 {
22+ compatible = "socionext,uniphier-ld20-sysctrl",
23+ "simple-mfd", "syscon";
24+ reg = <0x61840000 0x10000>;
25+ ...
26+ pvtctl: pvtctl {
27+ compatible = "socionext,uniphier-ld20-thermal";
28+ interrupts = <0 3 1>;
29+ #thermal-sensor-cells = <0>;
30+ };
31+ ...
32+ };
33+
34+ thermal-zones {
35+ cpu_thermal {
36+ polling-delay-passive = <250>; /* 250ms */
37+ polling-delay = <1000>; /* 1000ms */
38+ thermal-sensors = <&pvtctl>;
39+
40+ trips {
41+ cpu_crit: cpu_crit {
42+ temperature = <110000>; /* 110C */
43+ hysteresis = <2000>;
44+ type = "critical";
45+ };
46+ cpu_alert: cpu_alert {
47+ temperature = <100000>; /* 100C */
48+ hysteresis = <2000>;
49+ type = "passive";
50+ };
51+ };
52+
53+ cooling-maps {
54+ map0 {
55+ trip = <&cpu_alert>;
56+ cooling-device = <&cpu0 (-1) (-1)>;
57+ };
58+ map1 {
59+ trip = <&cpu_alert>;
60+ cooling-device = <&cpu2 (-1) (-1)>;
61+ };
62+ };
63+ };
64+ };
Documentation/devicetree/bindings/timer/nxp,tpm-timer.txt+28−0
@@ -0,0 +1,28 @@
1+NXP Low Power Timer/Pulse Width Modulation Module (TPM)
2+
3+The Timer/PWM Module (TPM) supports input capture, output compare,
4+and the generation of PWM signals to control electric motor and power
5+management applications. The counter, compare and capture registers
6+are clocked by an asynchronous clock that can remain enabled in low
7+power modes. TPM can support global counter bus where one TPM drives
8+the counter bus for the others, provided bit width is the same.
9+
10+Required properties:
11+
12+- compatible : should be "fsl,imx7ulp-tpm"
13+- reg : Specifies base physical address and size of the register sets
14+ for the clock event device and clock source device.
15+- interrupts : Should be the clock event device interrupt.
16+- clocks : The clocks provided by the SoC to drive the timer, must contain
17+ an entry for each entry in clock-names.
18+- clock-names : Must include the following entries: "igp" and "per".
19+
20+Example:
21+tpm5: tpm@40260000 {
22+ compatible = "fsl,imx7ulp-tpm";
23+ reg = <0x40260000 0x1000>;
24+ interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
25+ clocks = <&clks IMX7ULP_CLK_NIC1_BUS_DIV>,
26+ <&clks IMX7ULP_CLK_LPTPM5>;
27+ clock-names = "ipg", "per";
28+};
Documentation/devicetree/bindings/timer/renesas,cmt.txt+32−41
@@ -12,46 +12,29 @@ datasheets. · 11 unmodified lines
1212 Required Properties:
1313
1414 - compatible: must contain one or more of the following:
15− - "renesas,cmt-32-r8a7740" for the r8a7740 32-bit CMT
16− (CMT0)
17− - "renesas,cmt-32-sh7372" for the sh7372 32-bit CMT
18− (CMT0)
19− - "renesas,cmt-32-sh73a0" for the sh73a0 32-bit CMT
20− (CMT0)
21− - "renesas,cmt-32" for all 32-bit CMT without fast clock support
22− (CMT0 on sh7372, sh73a0 and r8a7740)
23− This is a fallback for the above renesas,cmt-32-* entries.
24−
25− - "renesas,cmt-32-fast-r8a7740" for the r8a7740 32-bit CMT with fast
26− clock support (CMT[234])
27− - "renesas,cmt-32-fast-sh7372" for the sh7372 32-bit CMT with fast
28− clock support (CMT[234])
29− - "renesas,cmt-32-fast-sh73a0" for the sh73A0 32-bit CMT with fast
30− clock support (CMT[234])
31− - "renesas,cmt-32-fast" for all 32-bit CMT with fast clock support
32− (CMT[234] on sh7372, sh73a0 and r8a7740)
33− This is a fallback for the above renesas,cmt-32-fast-* entries.
34−
35− - "renesas,cmt-48-sh7372" for the sh7372 48-bit CMT
36− (CMT1)
3715 - "renesas,cmt-48-sh73a0" for the sh73A0 48-bit CMT
3816 (CMT1)
3917 - "renesas,cmt-48-r8a7740" for the r8a7740 48-bit CMT
4018 (CMT1)
4119 - "renesas,cmt-48" for all non-second generation 48-bit CMT
42− (CMT1 on sh7372, sh73a0 and r8a7740)
20+ (CMT1 on sh73a0 and r8a7740)
4321 This is a fallback for the above renesas,cmt-48-* entries.
4422
45− - "renesas,cmt-48-r8a73a4" for the r8a73a4 48-bit CMT
46− (CMT[01])
47− - "renesas,cmt-48-r8a7790" for the r8a7790 48-bit CMT
48− (CMT[01])
49− - "renesas,cmt-48-r8a7791" for the r8a7791 48-bit CMT
50− (CMT[01])
51− - "renesas,cmt-48-gen2" for all second generation 48-bit CMT
52− (CMT[01] on r8a73a4, r8a7790 and r8a7791)
53− This is a fallback for the renesas,cmt-48-r8a73a4,
54− renesas,cmt-48-r8a7790 and renesas,cmt-48-r8a7791 entries.
23+ - "renesas,cmt0-r8a73a4" for the 32-bit CMT0 device included in r8a73a4.
24+ - "renesas,cmt1-r8a73a4" for the 48-bit CMT1 device included in r8a73a4.
25+ - "renesas,cmt0-r8a7790" for the 32-bit CMT0 device included in r8a7790.
26+ - "renesas,cmt1-r8a7790" for the 48-bit CMT1 device included in r8a7790.
27+ - "renesas,cmt0-r8a7791" for the 32-bit CMT0 device included in r8a7791.
28+ - "renesas,cmt1-r8a7791" for the 48-bit CMT1 device included in r8a7791.
29+ - "renesas,cmt0-r8a7793" for the 32-bit CMT0 device included in r8a7793.
30+ - "renesas,cmt1-r8a7793" for the 48-bit CMT1 device included in r8a7793.
31+ - "renesas,cmt0-r8a7794" for the 32-bit CMT0 device included in r8a7794.
32+ - "renesas,cmt1-r8a7794" for the 48-bit CMT1 device included in r8a7794.
33+
34+ - "renesas,rcar-gen2-cmt0" for 32-bit CMT0 devices included in R-Car Gen2.
35+ - "renesas,rcar-gen2-cmt1" for 48-bit CMT1 devices included in R-Car Gen2.
36+ These are fallbacks for r8a73a4 and all the R-Car Gen2
37+ entries listed above.
5538
5639 - reg: base address and length of the registers block for the timer module.
5740 - interrupts: interrupt-specifier for the timer, one per channel.
@@ -59,21 +42,29 @@ Required Properties: · 1 unmodified line
5942 in clock-names.
6043 - clock-names: must contain "fck" for the functional clock.
6144
62− - renesas,channels-mask: bitmask of the available channels.
6345
64−
65−Example: R8A7790 (R-Car H2) CMT0 node
66−
67− CMT0 on R8A7790 implements hardware channels 5 and 6 only and names
68− them channels 0 and 1 in the documentation.
46+Example: R8A7790 (R-Car H2) CMT0 and CMT1 nodes
6947
7048 cmt0: timer@ffca0000 {
71− compatible = "renesas,cmt-48-r8a7790", "renesas,cmt-48-gen2";
49+ compatible = "renesas,cmt0-r8a7790", "renesas,rcar-gen2-cmt0";
7250 reg = <0 0xffca0000 0 0x1004>;
7351 interrupts = <0 142 IRQ_TYPE_LEVEL_HIGH>,
7452 <0 142 IRQ_TYPE_LEVEL_HIGH>;
7553 clocks = <&mstp1_clks R8A7790_CLK_CMT0>;
7654 clock-names = "fck";
55+ };
7756
78− renesas,channels-mask = <0x60>;
57+ cmt1: timer@e6130000 {
58+ compatible = "renesas,cmt1-r8a7790", "renesas,rcar-gen2-cmt1";
59+ reg = <0 0xe6130000 0 0x1004>;
60+ interrupts = <0 120 IRQ_TYPE_LEVEL_HIGH>,
61+ <0 121 IRQ_TYPE_LEVEL_HIGH>,
62+ <0 122 IRQ_TYPE_LEVEL_HIGH>,
63+ <0 123 IRQ_TYPE_LEVEL_HIGH>,
64+ <0 124 IRQ_TYPE_LEVEL_HIGH>,
65+ <0 125 IRQ_TYPE_LEVEL_HIGH>,
66+ <0 126 IRQ_TYPE_LEVEL_HIGH>,
67+ <0 127 IRQ_TYPE_LEVEL_HIGH>;
68+ clocks = <&mstp3_clks R8A7790_CLK_CMT1>;
69+ clock-names = "fck";
7970 };
Documentation/devicetree/bindings/trivial-devices.txt+14−0
@@ -21,6 +21,16 @@ 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
2434 at,24c08 i2c serial eeprom (24cxx)
2535 atmel,at97sc3204t i2c trusted platform module (TPM)
2636 capella,cm32181 CM32181: Ambient Light Sensor
@@ -36,7 +46,9 @@ dallas,ds1775 Tiny Digital Thermometer and Thermostat · 9 unmodified lines
3646 dallas,ds3232 Extremely Accurate I²C RTC with Integrated Crystal and SRAM
3747 dallas,ds4510 CPU Supervisor with Nonvolatile Memory and Programmable I/O
3848 dallas,ds75 Digital Thermometer and Thermostat
49+devantech,srf02 Devantech SRF02 ultrasonic ranger in I2C mode
3950 devantech,srf08 Devantech SRF08 ultrasonic ranger
51+devantech,srf10 Devantech SRF10 ultrasonic ranger
4052 dlg,da9053 DA9053: flexible system level PMIC with multicore support
4153 dlg,da9063 DA9063: system PMIC for quad-core application processors
4254 domintech,dmard09 DMARD09: 3-axis Accelerometer
@@ -54,6 +66,7 @@ fsl,sgtl5000 SGTL5000: Ultra Low-Power Audio Codec · 11 unmodified lines
5466 gmt,g751 G751: Digital Temperature Sensor and Thermal Watchdog with Two-Wire Interface
5567 infineon,slb9635tt Infineon SLB9635 (Soft-) I2C TPM (old protocol, max 100khz)
5668 infineon,slb9645tt Infineon SLB9645 I2C TPM (new protocol, max 400khz)
69+isil,isl1208 Intersil ISL1208 Low Power RTC with Battery Backed SRAM
5770 isil,isl29028 Intersil ISL29028 Ambient Light and Proximity Sensor
5871 isil,isl29030 Intersil ISL29030 Ambient Light and Proximity Sensor
5972 maxim,ds1050 5 Bit Programmable, Pulse-Width Modulator
@@ -168,6 +181,7 @@ st,m41t80 M41T80 - SERIAL ACCESS RTC WITH ALARMS · 108 unmodified lines
168181 taos,tsl2550 Ambient Light Sensor with SMBUS/Two Wire Serial Interface
169182 ti,ads7828 8-Channels, 12-bit ADC
170183 ti,ads7830 8-Channels, 8-bit ADC
184+ti,amc6821 Temperature Monitoring and Fan Control
171185 ti,tsc2003 I2C Touch-Screen Controller
172186 ti,tmp102 Low Power Digital Temperature Sensor with SMBUS/Two Wire Serial Interface
173187 ti,tmp103 Low Power Digital Temperature Sensor with SMBUS/Two Wire Serial Interface
Documentation/devicetree/bindings/unittest.txt+0−5
@@ -10,7 +10,6 @@ All other properties are optional. · 9 unmodified lines
1010 Example:
1111 unittest {
1212 compatible = "unittest";
13− status = "okay";
1413 };
1514
1615 2) OF unittest i2c adapter platform device
@@ -25,7 +24,6 @@ Children nodes contain unittest i2c devices. · 8 unmodified lines
2524 Example:
2625 unittest-i2c-bus {
2726 compatible = "unittest-i2c-bus";
28− status = "okay";
2927 };
3028
3129 3) OF unittest i2c device
@@ -40,7 +38,6 @@ All other properties are optional · 8 unmodified lines
4038 Example:
4139 unittest-i2c-dev {
4240 compatible = "unittest-i2c-dev";
43− status = "okay";
4441 };
4542
4643 4) OF unittest i2c mux device
@@ -55,7 +52,6 @@ Children nodes contain unittest i2c bus nodes per channel. · 8 unmodified lines
5552 Example:
5653 unittest-i2c-mux {
5754 compatible = "unittest-i2c-mux";
58− status = "okay";
5955 #address-cells = <1>;
6056 #size-cells = <0>;
6157 channel-0 {
@@ -65,7 +61,6 @@ Example: · 3 unmodified lines
6561 i2c-dev {
6662 reg = <8>;
6763 compatible = "unittest-i2c-dev";
68− status = "okay";
6964 };
7065 };
7166 };
Documentation/devicetree/bindings/usb/allwinner,sun4i-a10-musb.txt+0−1
@@ -25,5 +25,4 @@ Example: · 24 unmodified lines
2525 phys = <&usbphy 0>;
2626 phy-names = "usb";
2727 extcon = <&usbphy 0>;
28− status = "disabled";
2928 };
Documentation/devicetree/bindings/usb/am33xx-usb.txt+2−2
@@ -4,9 +4,9 @@ · 3 unmodified lines
44 - reg: offset and length of the usbss register sets
55 - ti,hwmods : must be "usb_otg_hs"
66
7−The glue layer contains multiple child nodes. It is required the have
7+The glue layer contains multiple child nodes. It is required to have
88 at least a control module node, USB node and a PHY node. The second USB
9−node and its PHY node is optional. The DMA node is also optional.
9+node and its PHY node are optional. The DMA node is also optional.
1010
1111 Reset module
1212 ~~~~~~~~~~~~
Documentation/devicetree/bindings/usb/brcm,bdc.txt+29−0
@@ -0,0 +1,29 @@
1+Broadcom USB Device Controller (BDC)
2+====================================
3+
4+Required properties:
5+
6+- compatible: must be one of:
7+ "brcm,bdc-v0.16"
8+ "brcm,bdc"
9+- reg: the base register address and length
10+- interrupts: the interrupt line for this controller
11+
12+Optional properties:
13+
14+On Broadcom STB platforms, these properties are required:
15+
16+- phys: phandle to one or two USB PHY blocks
17+ NOTE: Some SoC's have a single phy and some have
18+ USB 2.0 and USB 3.0 phys
19+- clocks: phandle to the functional clock of this block
20+
21+Example:
22+
23+ bdc@f0b02000 {
24+ compatible = "brcm,bdc-v0.16";
25+ reg = <0xf0b02000 0xfc4>;
26+ interrupts = <0x0 0x60 0x0>;
27+ phys = <&usbphy_0 0x0>;
28+ clocks = <&sw_usbd>;
29+ };
Documentation/devicetree/bindings/usb/da8xx-usb.txt+0−2
@@ -42,7 +42,6 @@ Example: · 41 unmodified lines
4242 usb_phy: usb-phy {
4343 compatible = "ti,da830-usb-phy";
4444 #phy-cells = <0>;
45− status = "okay";
4645 };
4746 usb0: usb@200000 {
4847 compatible = "ti,da830-musb";
@@ -66,7 +65,6 @@ Example: · 17 unmodified lines
6665 "rx1", "rx2", "rx3", "rx4",
6766 "tx1", "tx2", "tx3", "tx4";
6867
69− status = "okay";
7068
7169 cppi41dma: dma-controller@201000 {
7270 compatible = "ti,da830-cppi41";
Documentation/devicetree/bindings/usb/dwc3-st.txt+0−1
@@ -42,7 +42,6 @@ or "device". · 41 unmodified lines
4242 Example:
4343
4444 st_dwc3: dwc3@8f94000 {
45− status = "disabled";
4645 compatible = "st,stih407-dwc3";
4746 reg = <0x08f94000 0x1000>, <0x110 0x4>;
4847 reg-names = "reg-glue", "syscfg-reg";
Documentation/devicetree/bindings/usb/dwc3-xilinx.txt+0−1
@@ -18,7 +18,6 @@ Example device node: · 17 unmodified lines
1818 usb@0 {
1919 #address-cells = <0x2>;
2020 #size-cells = <0x1>;
21− status = "okay";
2221 compatible = "xlnx,zynqmp-dwc3";
2322 clock-names = "bus_clk" "ref_clk";
2423 clocks = <&clk125>, <&clk125>;
Documentation/devicetree/bindings/usb/ehci-st.txt+0−1
@@ -31,7 +31,6 @@ Example: · 30 unmodified lines
3131 clocks = <&clk_s_a1_ls 0>;
3232 phys = <&usb2_phy>;
3333 phy-names = "usb";
34− status = "okay";
3534
3635 resets = <&powerdown STIH416_USB1_POWERDOWN>,
3736 <&softreset STIH416_USB1_SOFTRESET>;
Documentation/devicetree/bindings/usb/exynos-usb.txt+0−2
@@ -40,7 +40,6 @@ Example: · 39 unmodified lines
4040 port@0 {
4141 reg = <0>;
4242 phys = <&usb2phy 1>;
43− status = "disabled";
4443 };
4544 };
4645
@@ -75,7 +74,6 @@ Example: · 28 unmodified lines
7574 port@0 {
7675 reg = <0>;
7776 phys = <&usb2phy 1>;
78− status = "disabled";
7977 };
8078
8179 };
Documentation/devicetree/bindings/usb/fcs,fusb302.txt+29−0
@@ -0,0 +1,29 @@
1+Fairchild FUSB302 Type-C Port controllers
2+
3+Required properties :
4+- compatible : "fcs,fusb302"
5+- reg : I2C slave address
6+- interrupts : Interrupt specifier
7+
8+Optional properties :
9+- fcs,max-sink-microvolt : Maximum voltage to negotiate when configured as sink
10+- fcs,max-sink-microamp : Maximum current to negotiate when configured as sink
11+- fcs,max-sink-microwatt : Maximum power to negotiate when configured as sink
12+ If this is less then max-sink-microvolt *
13+ max-sink-microamp then the configured current will
14+ be clamped.
15+- fcs,operating-sink-microwatt :
16+ Minimum amount of power accepted from a sink
17+ when negotiating
18+
19+Example:
20+
21+fusb302: typec-portc@54 {
22+ compatible = "fcs,fusb302";
23+ reg = <0x54>;
24+ interrupt-parent = <&nmi_intc>;
25+ interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
26+ fcs,max-sink-microvolt = <12000000>;
27+ fcs,max-sink-microamp = <3000000>;
28+ fcs,max-sink-microwatt = <36000000>;
29+};
Documentation/devicetree/bindings/usb/isp1301.txt+0−1
@@ -21,5 +21,4 @@ Example: · 20 unmodified lines
2121 interrupt-parent = <&mic>;
2222 interrupts = <0x3d 0>, <0x3e 0>, <0x3c 0>, <0x3a 0>;
2323 transceiver = <&isp1301>;
24− status = "okay";
2524 };
Documentation/devicetree/bindings/usb/keystone-usb.txt+15−3
@@ -12,8 +12,21 @@ Required properties: · 11 unmodified lines
1212 MPU.
1313 - ranges: allows valid 1:1 translation between child's address space and
1414 parent's address space.
15− - clocks: Clock IDs array as required by the controller.
16− - clock-names: names of clocks correseponding to IDs in the clock property.
15+
16+SoC-specific Required Properties:
17+The following are mandatory properties for Keystone 2 66AK2HK, 66AK2L and 66AK2E
18+SoCs only:
19+
20+- clocks: Clock ID for USB functional clock.
21+- clock-names: Must be "usb".
22+
23+
24+The following are mandatory properties for Keystone 2 66AK2G SoCs only:
25+
26+- power-domains: Should contain a phandle to a PM domain provider node
27+ and an args specifier containing the USB device id
28+ value. This property is as per the binding,
29+ Documentation/devicetree/bindings/soc/ti/sci-pm-domain.txt
1730
1831 Sub-nodes:
1932 The dwc3 core should be added as subnode to Keystone DWC3 glue.
@@ -31,7 +44,6 @@ Example: · 11 unmodified lines
3144 clock-names = "usb";
3245 interrupts = <GIC_SPI 393 IRQ_TYPE_EDGE_RISING>;
3346 ranges;
34− status = "disabled";
3547
3648 dwc3@2690000 {
3749 compatible = "synopsys,dwc3";
Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.txtrenamed from Documentation/devicetree/bindings/usb/mt8173-xhci.txt+11−3
@@ -11,7 +11,11 @@ into two parts. · 10 unmodified lines
1111 ------------------------------------------------------------------------
1212
1313 Required properties:
14− - compatible : should contain "mediatek,mt8173-xhci"
14+ - compatible : should be "mediatek,<soc-model>-xhci", "mediatek,mtk-xhci",
15+ soc-model is the name of SoC, such as mt8173, mt2712 etc, when using
16+ "mediatek,mtk-xhci" compatible string, you need SoC specific ones in
17+ addition, one of:
18+ - "mediatek,mt8173-xhci"
1519 - reg : specifies physical base address and size of the registers
1620 - reg-names: should be "mac" for xHCI MAC and "ippc" for IP port control
1721 - interrupts : interrupt used by the controller
@@ -68,10 +72,14 @@ usb30: usb@11270000 { · 50 unmodified lines
6872
6973 In the case, xhci is added as subnode to mtu3. An example and the DT binding
7074 details of mtu3 can be found in:
71−Documentation/devicetree/bindings/usb/mt8173-mtu3.txt
75+Documentation/devicetree/bindings/usb/mediatek,mtu3.txt
7276
7377 Required properties:
74− - compatible : should contain "mediatek,mt8173-xhci"
78+ - compatible : should be "mediatek,<soc-model>-xhci", "mediatek,mtk-xhci",
79+ soc-model is the name of SoC, such as mt8173, mt2712 etc, when using
80+ "mediatek,mtk-xhci" compatible string, you need SoC specific ones in
81+ addition, one of:
82+ - "mediatek,mt8173-xhci"
7583 - reg : specifies physical base address and size of the registers
7684 - reg-names: should be "mac" for xHCI MAC
7785 - interrupts : interrupt used by the host controller
Documentation/devicetree/bindings/usb/mediatek,mtu3.txtrenamed from Documentation/devicetree/bindings/usb/mt8173-mtu3.txt+6−4
@@ -1,7 +1,11 @@
11 The device node for Mediatek USB3.0 DRD controller
22
33 Required properties:
4− - compatible : should be "mediatek,mt8173-mtu3"
4+ - compatible : should be "mediatek,<soc-model>-mtu3", "mediatek,mtu3",
5+ soc-model is the name of SoC, such as mt8173, mt2712 etc,
6+ when using "mediatek,mtu3" compatible string, you need SoC specific
7+ ones in addition, one of:
8+ - "mediatek,mt8173-mtu3"
59 - reg : specifies physical base address and size of the registers
610 - reg-names: should be "mac" for device IP and "ippc" for IP port control
711 - interrupts : interrupt used by the device IP
@@ -44,7 +48,7 @@ Optional properties: · 36 unmodified lines
4448 Sub-nodes:
4549 The xhci should be added as subnode to mtu3 as shown in the following example
4650 if host mode is enabled. The DT binding details of xhci can be found in:
47−Documentation/devicetree/bindings/usb/mt8173-xhci.txt
51+Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.txt
4852
4953 Example:
5054 ssusb: usb@11271000 {
@@ -71,7 +75,6 @@ ssusb: usb@11271000 { · 20 unmodified lines
7175 #address-cells = <2>;
7276 #size-cells = <2>;
7377 ranges;
74− status = "disabled";
7578
7679 usb_host: xhci@11270000 {
7780 compatible = "mediatek,mt8173-xhci";
@@ -82,6 +85,5 @@ ssusb: usb@11271000 { · 4 unmodified lines
8285 clocks = <&topckgen CLK_TOP_USB30_SEL>, <&clk26m>;
8386 clock-names = "sys_ck", "ref_ck";
8487 vusb33-supply = <&mt6397_vusb_reg>;
85− status = "disabled";
8688 };
8789 };
Documentation/devicetree/bindings/usb/ohci-st.txt+0−1
@@ -29,7 +29,6 @@ Example: · 28 unmodified lines
2929 clock-names = "ic", "clk48";
3030 phys = <&usb2_phy>;
3131 phy-names = "usb";
32− status = "okay";
3332
3433 resets = <&powerdown STIH416_USB0_POWERDOWN>,
3534 <&softreset STIH416_USB0_SOFTRESET>;
Documentation/devicetree/bindings/usb/qcom,dwc3.txt+0−3
@@ -29,7 +29,6 @@ Example device nodes: · 28 unmodified lines
2929 clock-names = "ref";
3030 #phy-cells = <0>;
3131
32− status = "ok";
3332 };
3433
3534 ss_phy: phy@100f8830 {
@@ -39,7 +38,6 @@ Example device nodes: · 3 unmodified lines
3938 clock-names = "ref";
4039 #phy-cells = <0>;
4140
42− status = "ok";
4341 };
4442
4543 usb3_0: usb30@0 {
@@ -51,7 +49,6 @@ Example device nodes: · 5 unmodified lines
5149
5250 ranges;
5351
54− status = "ok";
5552
5653 dwc3@10000000 {
5754 compatible = "snps,dwc3";
Documentation/devicetree/bindings/usb/renesas_usb3.txt+13−3
@@ -3,20 +3,30 @@ Renesas Electronics USB3.0 Peripheral driver · 2 unmodified lines
33 Required properties:
44 - compatible: Must contain one of the following:
55 - "renesas,r8a7795-usb3-peri"
6+ - "renesas,r8a7796-usb3-peri"
7+ - "renesas,rcar-gen3-usb3-peri" for a generic R-Car Gen3 compatible
8+ device
9+
10+ When compatible with the generic version, nodes must list the
11+ SoC-specific version corresponding to the platform first
12+ followed by the generic version.
13+
614 - reg: Base address and length of the register for the USB3.0 Peripheral
715 - interrupts: Interrupt specifier for the USB3.0 Peripheral
816 - clocks: clock phandle and specifier pair
917
10−Example:
18+Example of R-Car H3 ES1.x:
1119 usb3_peri0: usb@ee020000 {
12− compatible = "renesas,r8a7795-usb3-peri";
20+ compatible = "renesas,r8a7795-usb3-peri",
21+ "renesas,rcar-gen3-usb3-peri";
1322 reg = <0 0xee020000 0 0x400>;
1423 interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
1524 clocks = <&cpg CPG_MOD 328>;
1625 };
1726
1827 usb3_peri1: usb@ee060000 {
19− compatible = "renesas,r8a7795-usb3-peri";
28+ compatible = "renesas,r8a7795-usb3-peri",
29+ "renesas,rcar-gen3-usb3-peri";
2030 reg = <0 0xee060000 0 0x400>;
2131 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
2232 clocks = <&cpg CPG_MOD 327>;
Documentation/devicetree/bindings/usb/rockchip,dwc3.txt+0−4
@@ -29,13 +29,11 @@ Example device nodes: · 28 unmodified lines
2929 #address-cells = <2>;
3030 #size-cells = <2>;
3131 ranges;
32− status = "disabled";
3332 usbdrd_dwc3_0: dwc3@fe800000 {
3433 compatible = "snps,dwc3";
3534 reg = <0x0 0xfe800000 0x0 0x100000>;
3635 interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
3736 dr_mode = "otg";
38− status = "disabled";
3937 };
4038 };
4139
@@ -48,12 +46,10 @@ Example device nodes: · 6 unmodified lines
4846 #address-cells = <2>;
4947 #size-cells = <2>;
5048 ranges;
51− status = "disabled";
5249 usbdrd_dwc3_1: dwc3@fe900000 {
5350 compatible = "snps,dwc3";
5451 reg = <0x0 0xfe900000 0x0 0x100000>;
5552 interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
5653 dr_mode = "otg";
57− status = "disabled";
5854 };
5955 };
Documentation/devicetree/bindings/usb/usb-device.txt+1−2
@@ -2,7 +2,7 @@ Generic USB Device Properties · 1 unmodified line
22
33 Usually, we only use device tree for hard wired USB device.
44 The reference binding doc is from:
5−http://www.firmware.org/1275/bindings/usb/usb-1_0.ps
5+http://www.devicetree.org/open-firmware/bindings/usb/usb-1_0.ps
66
77 Required properties:
88 - compatible: usbVID,PID. The textual representation of VID, PID shall
@@ -16,7 +16,6 @@ Required properties: · 7 unmodified lines
1616 Example:
1717
1818 &usb1 {
19− status = "okay";
2019
2120 #address-cells = <1>;
2221 #size-cells = <0>;
Documentation/devicetree/bindings/vendor-prefixes.txt+10−2
@@ -3,12 +3,13 @@ Device tree binding vendor prefix registry. Keep list in alphabetical order. · 2 unmodified lines
33 This isn't an exhaustive list, but you should add new prefixes to it before
44 using them to avoid name-space collisions.
55
6−abcn Abracon Corporation
76 abilis Abilis Systems
7+abracon Abracon Corporation
88 actions Actions Semiconductor Co., Ltd.
99 active-semi Active-Semi International Inc
1010 ad Avionic Design GmbH
1111 adapteva Adapteva, Inc.
12+adaptrum Adaptrum, Inc.
1213 adh AD Holdings Plc.
1314 adi Analog Devices, Inc.
1415 advantech Advantech Corporation
@@ -47,6 +48,7 @@ avic Shanghai AVIC Optoelectronics Co., Ltd. · 32 unmodified lines
4748 axentia Axentia Technologies AB
4849 axis Axis Communications AB
4950 bananapi BIPAI KEJI LIMITED
51+bhf Beckhoff Automation GmbH & Co. KG
5052 boe BOE Technology Group Co., Ltd.
5153 bosch Bosch Sensortec GmbH
5254 boundary Boundary Devices Inc.
@@ -176,6 +178,7 @@ kosagi Sutajio Ko-Usagi PTE Ltd. · 123 unmodified lines
176178 kyo Kyocera Corporation
177179 lacie LaCie
178180 lantiq Lantiq Semiconductor
181+lattice Lattice Semiconductor
179182 lego LEGO Systems A/S
180183 lenovo Lenovo Group Ltd.
181184 lg LG Corporation
@@ -196,6 +199,7 @@ mediatek MediaTek Inc. · 14 unmodified lines
196199 megachips MegaChips
197200 melexis Melexis N.V.
198201 melfas MELFAS Inc.
202+mellanox Mellanox Technologies
199203 memsic MEMSIC Inc.
200204 merrii Merrii Technology Co., Ltd.
201205 micrel Micrel Inc.
@@ -207,7 +211,7 @@ miramems MiraMEMS Sensing Technology Co., Ltd. · 5 unmodified lines
207211 mitsubishi Mitsubishi Electric Corporation
208212 mosaixtech Mosaix Technologies, Inc.
209213 motorola Motorola, Inc.
210−moxa Moxa
214+moxa Moxa Inc.
211215 mpl MPL AG
212216 mqmaker mqmaker Inc.
213217 msi Micro-Star International Co. Ltd.
@@ -250,6 +254,7 @@ oxsemi Oxford Semiconductor, Ltd. · 36 unmodified lines
250254 panasonic Panasonic Corporation
251255 parade Parade Technologies Inc.
252256 pericom Pericom Technology Inc.
257+pervasive Pervasive Displays, Inc.
253258 phytec PHYTEC Messtechnik GmbH
254259 picochip Picochip Ltd
255260 pine64 Pine64
@@ -288,6 +293,7 @@ schindler Schindler · 32 unmodified lines
288293 seagate Seagate Technology PLC
289294 semtech Semtech Corporation
290295 sensirion Sensirion AG
296+sff Small Form Factor Committee
291297 sgx SGX Sensortech
292298 sharp Sharp Corporation
293299 si-en Si-En Technology Ltd.
@@ -342,6 +348,7 @@ tpo TPO · 48 unmodified lines
342348 tronfy Tronfy
343349 tronsmart Tronsmart
344350 truly Truly Semiconductors Limited
351+tsd Theobroma Systems Design und Consulting GmbH
345352 tyan Tyan Computer Corporation
346353 ucrobotics uCRobotics
347354 udoo Udoo
@@ -354,6 +361,7 @@ variscite Variscite Ltd. · 6 unmodified lines
354361 via VIA Technologies, Inc.
355362 virtio Virtual I/O Device Specification, developed by the OASIS consortium
356363 vivante Vivante Corporation
364+vocore VoCore Studio
357365 voipac Voipac Technologies s.r.o.
358366 wd Western Digital Corp.
359367 wetek WeTek Electronics, limited.
Documentation/devicetree/bindings/w1/fsl-imx-owire.txt+0−1
@@ -15,5 +15,4 @@ owire: owire@63fa4000 { · 14 unmodified lines
1515 compatible = "fsl,imx53-owire", "fsl,imx21-owire";
1616 reg = <0x63fa4000 0x4000>;
1717 clocks = <&clks 159>;
18− status = "disabled";
1918 };
Documentation/devicetree/bindings/watchdog/aspeed-wdt.txt+40−0
@@ -8,9 +8,49 @@ Required properties: · 7 unmodified lines
88 - reg: physical base address of the controller and length of memory mapped
99 region
1010
11+Optional properties:
12+
13+ - aspeed,reset-type = "cpu|soc|system|none"
14+
15+ Reset behavior - Whenever a timeout occurs the watchdog can be programmed
16+ to generate one of three different, mutually exclusive, types of resets.
17+
18+ Type "none" can be specified to indicate that no resets are to be done.
19+ This is useful in situations where another watchdog engine on chip is
20+ to perform the reset.
21+
22+ If 'aspeed,reset-type=' is not specfied the default is to enable system
23+ reset.
24+
25+ Reset types:
26+
27+ - cpu: Reset CPU on watchdog timeout
28+
29+ - soc: Reset 'System on Chip' on watchdog timeout
30+
31+ - system: Reset system on watchdog timeout
32+
33+ - none: No reset is performed on timeout. Assumes another watchdog
34+ engine is responsible for this.
35+
36+ - aspeed,alt-boot: If property is present then boot from alternate block.
37+ - aspeed,external-signal: If property is present then signal is sent to
38+ external reset counter (only WDT1 and WDT2). If not
39+ specified no external signal is sent.
40+ - aspeed,ext-pulse-duration: External signal pulse duration in microseconds
41+
42+Optional properties for AST2500-compatible watchdogs:
43+ - aspeed,ext-push-pull: If aspeed,external-signal is present, set the pin's
44+ drive type to push-pull. The default is open-drain.
45+ - aspeed,ext-active-high: If aspeed,external-signal is present and and the pin
46+ is configured as push-pull, then set the pulse
47+ polarity to active-high. The default is active-low.
48+
1149 Example:
1250
1351 wdt1: watchdog@1e785000 {
1452 compatible = "aspeed,ast2400-wdt";
1553 reg = <0x1e785000 0x1c>;
54+ aspeed,reset-type = "system";
55+ aspeed,external-signal;
1656 };
Documentation/devicetree/bindings/watchdog/atmel-sama5d4-wdt.txt+0−1
@@ -31,5 +31,4 @@ Example: · 30 unmodified lines
3131 atmel,watchdog-type = "hardware";
3232 atmel,dbg-halt;
3333 atmel,idle-halt;
34− status = "okay";
3534 };
Documentation/devicetree/bindings/watchdog/atmel-wdt.txt+0−1
@@ -48,5 +48,4 @@ Example: · 47 unmodified lines
4848 atmel,idle-halt;
4949 atmel,max-heartbeat-sec = <16>;
5050 atmel,min-heartbeat-sec = <0>;
51− status = "okay";
5251 };
Documentation/devicetree/bindings/watchdog/lantiq-wdt.txt+24−0
@@ -0,0 +1,24 @@
1+Lantiq WTD watchdog binding
2+============================
3+
4+This describes the binding of the Lantiq watchdog driver.
5+
6+-------------------------------------------------------------------------------
7+Required properties:
8+- compatible : Should be one of
9+ "lantiq,wdt"
10+ "lantiq,xrx100-wdt"
11+ "lantiq,xrx200-wdt", "lantiq,xrx100-wdt"
12+ "lantiq,falcon-wdt"
13+- reg : Address of the watchdog block
14+- lantiq,rcu : A phandle to the RCU syscon (required for
15+ "lantiq,falcon-wdt" and "lantiq,xrx100-wdt")
16+
17+-------------------------------------------------------------------------------
18+Example for the watchdog on the xRX200 SoCs:
19+ watchdog@803f0 {
20+ compatible = "lantiq,xrx200-wdt", "lantiq,xrx100-wdt";
21+ reg = <0x803f0 0x10>;
22+
23+ lantiq,rcu = <&rcu0>;
24+ };
Documentation/devicetree/bindings/watchdog/marvel.txt+0−1
@@ -41,6 +41,5 @@ Example: · 40 unmodified lines
4141 reg = <0x20300 0x28>, <0x20108 0x4>;
4242 interrupts = <3>;
4343 timeout-sec = <10>;
44− status = "okay";
4544 clocks = <&gate_clk 7>;
4645 };
Documentation/devicetree/bindings/watchdog/meson-wdt.txt+5−1
@@ -2,7 +2,11 @@ Meson SoCs Watchdog timer · 1 unmodified line
22
33 Required properties:
44
5−- compatible : should be "amlogic,meson6-wdt" or "amlogic,meson8b-wdt"
5+- compatible : depending on the SoC this should be one of:
6+ "amlogic,meson6-wdt" on Meson6 SoCs
7+ "amlogic,meson8-wdt" and "amlogic,meson6-wdt" on Meson8 SoCs
8+ "amlogic,meson8b-wdt" on Meson8b SoCs
9+ "amlogic,meson8m2-wdt" and "amlogic,meson8b-wdt" on Meson8m2 SoCs
610 - reg : Specifies base physical address and size of the registers.
711
812 Example:
Documentation/devicetree/bindings/watchdog/mtk-wdt.txt+5−3
@@ -3,9 +3,11 @@ Mediatek SoCs Watchdog timer · 2 unmodified lines
33 Required properties:
44
55 - compatible should contain:
6− * "mediatek,mt2701-wdt" for MT2701 compatible watchdog timers
7− * "mediatek,mt6589-wdt" for all compatible watchdog timers (MT2701,
8− MT6589)
6+ "mediatek,mt2701-wdt", "mediatek,mt6589-wdt": for MT2701
7+ "mediatek,mt6589-wdt": for MT6589
8+ "mediatek,mt6797-wdt", "mediatek,mt6589-wdt": for MT6797
9+ "mediatek,mt7622-wdt", "mediatek,mt6589-wdt": for MT7622
10+ "mediatek,mt7623-wdt", "mediatek,mt6589-wdt": for MT7623
911
1012 - reg : Specifies base physical address and size of the registers.
1113
Documentation/devicetree/bindings/watchdog/renesas-wdt.txt+1−0
@@ -6,6 +6,7 @@ Required properties: · 5 unmodified lines
66 Examples with soctypes are:
77 - "renesas,r8a7795-wdt" (R-Car H3)
88 - "renesas,r8a7796-wdt" (R-Car M3-W)
9+ - "renesas,r8a77995-wdt" (R-Car D3)
910 - "renesas,r7s72100-wdt" (RZ/A1)
1011
1112 When compatible with the generic version, nodes must list the SoC-specific
Documentation/devicetree/bindings/xilinx.txt+2−0
@@ -281,6 +281,8 @@ · 280 unmodified lines
281281 capabilities of the underlying ICAP hardware
282282 differ between different families. May be
283283 'virtex2p', 'virtex4', or 'virtex5'.
284+ - compatible : should contain "xlnx,xps-hwicap-1.00.a" or
285+ "xlnx,opb-hwicap-1.00.b".
284286
285287 vi) Xilinx Uart 16550
286288
Documentation/devicetree/booting-without-of.txt+1−1
@@ -1282,7 +1282,7 @@ hierarchy and routing of interrupts in the hardware. · 1281 unmodified lines
12821282 The interrupt tree model is fully described in the
12831283 document "Open Firmware Recommended Practice: Interrupt
12841284 Mapping Version 0.9". The document is available at:
1285−<http://www.openfirmware.org/ofwg/practice/>
1285+<http://www.devicetree.org/open-firmware/practice/>
12861286
12871287 1) interrupts property
12881288 ----------------------
Documentation/dmaengine/provider.txt+7−7
@@ -181,13 +181,6 @@ Currently, the types available are: · 180 unmodified lines
181181 - Used by the client drivers to register a callback that will be
182182 called on a regular basis through the DMA controller interrupt
183183
184− * DMA_SG
185− - The device supports memory to memory scatter-gather
186− transfers.
187− - Even though a plain memcpy can look like a particular case of a
188− scatter-gather transfer, with a single chunk to transfer, it's a
189− distinct transaction type in the mem2mem transfers case
190−
191184 * DMA_PRIVATE
192185 - The devices only supports slave transfers, and as such isn't
193186 available for async transfers.
@@ -395,6 +388,13 @@ where to put them) · 201 unmodified lines
395388 when DMA_CTRL_REUSE is already set
396389 - Terminating the channel
397390
391+ * DMA_PREP_CMD
392+ - If set, the client driver tells DMA controller that passed data in DMA
393+ API is command data.
394+ - Interpretation of command data is DMA controller specific. It can be
395+ used for issuing commands to other peripherals/register reads/register
396+ writes for which the descriptor should be in different format from
397+ normal data descriptors.
398398
399399 General Design Notes
400400 --------------------
Documentation/doc-guide/sphinx.rst+106−1
@@ -19,6 +19,110 @@ Finally, there are thousands of plain text documentation files scattered around · 18 unmodified lines
1919 ``Documentation``. Some of these will likely be converted to reStructuredText
2020 over time, but the bulk of them will remain in plain text.
2121
22+.. _sphinx_install:
23+
24+Sphinx Install
25+==============
26+
27+The ReST markups currently used by the Documentation/ files are meant to be
28+built with ``Sphinx`` version 1.3 or upper. If you're desiring to build
29+PDF outputs, it is recommended to use version 1.4.6 or upper.
30+
31+There's a script that checks for the Spinx requirements. Please see
32+:ref:`sphinx-pre-install` for further details.
33+
34+Most distributions are shipped with Sphinx, but its toolchain is fragile,
35+and it is not uncommon that upgrading it or some other Python packages
36+on your machine would cause the documentation build to break.
37+
38+A way to get rid of that is to use a different version than the one shipped
39+on your distributions. In order to do that, it is recommended to install
40+Sphinx inside a virtual environment, using ``virtualenv-3``
41+or ``virtualenv``, depending on how your distribution packaged Python 3.
42+
43+.. note::
44+
45+ #) Sphinx versions below 1.5 don't work properly with Python's
46+ docutils version 0.13.1 or upper. So, if you're willing to use
47+ those versions, you should run ``pip install 'docutils==0.12'``.
48+
49+ #) It is recommended to use the RTD theme for html output. Depending
50+ on the Sphinx version, it should be installed in separate,
51+ with ``pip install sphinx_rtd_theme``.
52+
53+ #) Some ReST pages contain math expressions. Due to the way Sphinx work,
54+ those expressions are written using LaTeX notation. It needs texlive
55+ installed with amdfonts and amsmath in order to evaluate them.
56+
57+In summary, if you want to install Sphinx version 1.4.9, you should do::
58+
59+ $ virtualenv sphinx_1.4
60+ $ . sphinx_1.4/bin/activate
61+ (sphinx_1.4) $ pip install -r Documentation/sphinx/requirements.txt
62+
63+After running ``. sphinx_1.4/bin/activate``, the prompt will change,
64+in order to indicate that you're using the new environment. If you
65+open a new shell, you need to rerun this command to enter again at
66+the virtual environment before building the documentation.
67+
68+Image output
69+------------
70+
71+The kernel documentation build system contains an extension that
72+handles images on both GraphViz and SVG formats (see
73+:ref:`sphinx_kfigure`).
74+
75+For it to work, you need to install both GraphViz and ImageMagick
76+packages. If those packages are not installed, the build system will
77+still build the documentation, but won't include any images at the
78+output.
79+
80+PDF and LaTeX builds
81+--------------------
82+
83+Such builds are currently supported only with Sphinx versions 1.4 and upper.
84+
85+For PDF and LaTeX output, you'll also need ``XeLaTeX`` version 3.14159265.
86+
87+Depending on the distribution, you may also need to install a series of
88+``texlive`` packages that provide the minimal set of functionalities
89+required for ``XeLaTeX`` to work.
90+
91+.. _sphinx-pre-install:
92+
93+Checking for Sphinx dependencies
94+--------------------------------
95+
96+There's a script that automatically check for Sphinx dependencies. If it can
97+recognize your distribution, it will also give a hint about the install
98+command line options for your distro::
99+
100+ $ ./scripts/sphinx-pre-install
101+ Checking if the needed tools for Fedora release 26 (Twenty Six) are available
102+ Warning: better to also install "texlive-luatex85".
103+ You should run:
104+
105+ sudo dnf install -y texlive-luatex85
106+ /usr/bin/virtualenv sphinx_1.4
107+ . sphinx_1.4/bin/activate
108+ pip install -r Documentation/sphinx/requirements.txt
109+
110+ Can't build as 1 mandatory dependency is missing at ./scripts/sphinx-pre-install line 468.
111+
112+By default, it checks all the requirements for both html and PDF, including
113+the requirements for images, math expressions and LaTeX build, and assumes
114+that a virtual Python environment will be used. The ones needed for html
115+builds are assumed to be mandatory; the others to be optional.
116+
117+It supports two optional parameters:
118+
119+``--no-pdf``
120+ Disable checks for PDF;
121+
122+``--no-virtualenv``
123+ Use OS packaging for Sphinx instead of Python virtual environment.
124+
125+
22126 Sphinx Build
23127 ============
24128
@@ -118,7 +222,7 @@ Here are some specific guidelines for the kernel documentation: · 93 unmodified lines
118222 the C domain
119223 ------------
120224
121−The `Sphinx C Domain`_ (name c) is suited for documentation of C API. E.g. a
225+The **Sphinx C Domain** (name c) is suited for documentation of C API. E.g. a
122226 function prototype:
123227
124228 .. code-block:: rst
@@ -229,6 +333,7 @@ Rendered as: · 104 unmodified lines
229333
230334 - column 3
231335
336+.. _sphinx_kfigure:
232337
233338 Figures & Images
234339 ================
Documentation/dontdiff+0−1
@@ -259,5 +259,4 @@ wakeup.bin · 258 unmodified lines
259259 wakeup.elf
260260 wakeup.lds
261261 zImage*
262−zconf.hash.c
263262 zoffset.h
Documentation/driver-api/basics.rst+1−4
@@ -4,7 +4,7 @@ Driver Basics · 3 unmodified lines
44 Driver Entry and Exit points
55 ----------------------------
66
7−.. kernel-doc:: include/linux/init.h
7+.. kernel-doc:: include/linux/module.h
88 :internal:
99
1010 Driver device table
@@ -103,9 +103,6 @@ Kernel utility functions · 92 unmodified lines
103103 .. kernel-doc:: kernel/panic.c
104104 :export:
105105
106−.. kernel-doc:: kernel/sys.c
107− :export:
108−
109106 .. kernel-doc:: kernel/rcu/tree.c
110107 :export:
111108
Documentation/driver-api/dma-buf.rst+0−3
@@ -139,9 +139,6 @@ DMA Fences · 138 unmodified lines
139139 Seqno Hardware Fences
140140 ~~~~~~~~~~~~~~~~~~~~~
141141
142−.. kernel-doc:: drivers/dma-buf/seqno-fence.c
143− :export:
144−
145142 .. kernel-doc:: include/linux/seqno-fence.h
146143 :internal:
147144
Documentation/driver-api/firmware/request_firmware.rst+0−11
@@ -44,17 +44,6 @@ request_firmware_nowait · 43 unmodified lines
4444 .. kernel-doc:: drivers/base/firmware_class.c
4545 :functions: request_firmware_nowait
4646
47−Considerations for suspend and resume
48−=====================================
49−
50−During suspend and resume only the built-in firmware and the firmware cache
51−elements of the firmware API can be used. This is managed by fw_pm_notify().
52−
53−fw_pm_notify
54−------------
55−.. kernel-doc:: drivers/base/firmware_class.c
56− :functions: fw_pm_notify
57−
5847 request firmware API expected driver use
5948 ========================================
6049
Documentation/driver-api/gpio.rst+45−0
@@ -0,0 +1,45 @@
1+===================================
2+General Purpose Input/Output (GPIO)
3+===================================
4+
5+Core
6+====
7+
8+.. kernel-doc:: include/linux/gpio/driver.h
9+ :internal:
10+
11+.. kernel-doc:: drivers/gpio/gpiolib.c
12+ :export:
13+
14+Legacy API
15+==========
16+
17+The functions listed in this section are deprecated. The GPIO descriptor based
18+API described above should be used in new code.
19+
20+.. kernel-doc:: drivers/gpio/gpiolib-legacy.c
21+ :export:
22+
23+ACPI support
24+============
25+
26+.. kernel-doc:: drivers/gpio/gpiolib-acpi.c
27+ :export:
28+
29+Device tree support
30+===================
31+
32+.. kernel-doc:: drivers/gpio/gpiolib-of.c
33+ :export:
34+
35+Device-managed API
36+==================
37+
38+.. kernel-doc:: drivers/gpio/devres.c
39+ :export:
40+
41+sysfs helpers
42+=============
43+
44+.. kernel-doc:: drivers/gpio/gpiolib-sysfs.c
45+ :export:
Documentation/driver-api/index.rst+1−0
@@ -44,6 +44,7 @@ available subsections can be seen below. · 43 unmodified lines
4444 uio-howto
4545 firmware/index
4646 pinctl
47+ gpio
4748 misc_devices
4849
4950 .. only:: subproject and html
Documentation/driver-api/miscellaneous.rst+0−1
@@ -47,4 +47,3 @@ used by one consumer at a time. · 46 unmodified lines
4747
4848 .. kernel-doc:: drivers/pwm/core.c
4949 :export:
50−
Documentation/driver-api/mtdnand.rst+4−4
@@ -516,7 +516,7 @@ mirrored table is performed. · 515 unmodified lines
516516
517517 The most important field in the nand_bbt_descr structure is the
518518 options field. The options define most of the table properties. Use the
519−predefined constants from nand.h to define the options.
519+predefined constants from rawnand.h to define the options.
520520
521521 - Number of bits per block
522522
@@ -843,7 +843,7 @@ Chip option constants · 320 unmodified lines
843843 Constants for chip id table
844844 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
845845
846−These constants are defined in nand.h. They are OR-ed together to
846+These constants are defined in rawnand.h. They are OR-ed together to
847847 describe the chip functionality::
848848
849849 /* Buswitdh is 16 bit */
@@ -865,7 +865,7 @@ describe the chip functionality:: · 15 unmodified lines
865865 Constants for runtime options
866866 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
867867
868−These constants are defined in nand.h. They are OR-ed together to
868+These constants are defined in rawnand.h. They are OR-ed together to
869869 describe the functionality::
870870
871871 /* The hw ecc generator provides a syndrome instead a ecc value on read
@@ -956,7 +956,7 @@ developer. Each struct member has a short description which is marked · 84 unmodified lines
956956 with an [XXX] identifier. See the chapter "Documentation hints" for an
957957 explanation.
958958
959−.. kernel-doc:: include/linux/mtd/nand.h
959+.. kernel-doc:: include/linux/mtd/rawnand.h
960960 :internal:
961961
962962 Public Functions Provided
Documentation/driver-api/pm/devices.rst+1−1
@@ -675,7 +675,7 @@ sub-domain of the parent domain. · 674 unmodified lines
675675
676676 Support for power domains is provided through the :c:member:`pm_domain` field of
677677 |struct device|. This field is a pointer to an object of type
678−|struct dev_pm_domain|, defined in :file:`include/linux/pm.h``, providing a set
678+|struct dev_pm_domain|, defined in :file:`include/linux/pm.h`, providing a set
679679 of power management callbacks analogous to the subsystem-level and device driver
680680 callbacks that are executed for the given device during all power transitions,
681681 instead of the respective subsystem-level callbacks. Specifically, if a
Documentation/driver-api/s390-drivers.rst+1−1
@@ -75,7 +75,7 @@ The channel-measurement facility provides a means to collect measurement · 74 unmodified lines
7575 data which is made available by the channel subsystem for each channel
7676 attached device.
7777
78−.. kernel-doc:: arch/s390/include/asm/cmb.h
78+.. kernel-doc:: arch/s390/include/uapi/asm/cmb.h
7979 :internal:
8080
8181 .. kernel-doc:: drivers/s390/cio/cmf.c
Documentation/driver-api/scsi.rst+0−8
@@ -224,14 +224,6 @@ mid to lowlevel SCSI driver interface · 223 unmodified lines
224224 .. kernel-doc:: drivers/scsi/hosts.c
225225 :export:
226226
227−drivers/scsi/constants.c
228−~~~~~~~~~~~~~~~~~~~~~~~~
229−
230−mid to lowlevel SCSI driver interface
231−
232−.. kernel-doc:: drivers/scsi/constants.c
233− :export:
234−
235227 Transport classes
236228 -----------------
237229
Documentation/driver-model/devres.txt+1−0
@@ -312,6 +312,7 @@ IRQ · 311 unmodified lines
312312 devm_irq_alloc_descs_from()
313313 devm_irq_alloc_generic_chip()
314314 devm_irq_setup_generic_chip()
315+ devm_irq_sim_init()
315316
316317 LED
317318 devm_led_classdev_register()
Documentation/errseq.rst+149−0
@@ -0,0 +1,149 @@
1+The errseq_t datatype
2+=====================
3+An errseq_t is a way of recording errors in one place, and allowing any
4+number of "subscribers" to tell whether it has changed since a previous
5+point where it was sampled.
6+
7+The initial use case for this is tracking errors for file
8+synchronization syscalls (fsync, fdatasync, msync and sync_file_range),
9+but it may be usable in other situations.
10+
11+It's implemented as an unsigned 32-bit value. The low order bits are
12+designated to hold an error code (between 1 and MAX_ERRNO). The upper bits
13+are used as a counter. This is done with atomics instead of locking so that
14+these functions can be called from any context.
15+
16+Note that there is a risk of collisions if new errors are being recorded
17+frequently, since we have so few bits to use as a counter.
18+
19+To mitigate this, the bit between the error value and counter is used as
20+a flag to tell whether the value has been sampled since a new value was
21+recorded. That allows us to avoid bumping the counter if no one has
22+sampled it since the last time an error was recorded.
23+
24+Thus we end up with a value that looks something like this::
25+
26+ bit: 31..13 12 11..0
27+ +-----------------+----+----------------+
28+ | counter | SF | errno |
29+ +-----------------+----+----------------+
30+
31+The general idea is for "watchers" to sample an errseq_t value and keep
32+it as a running cursor. That value can later be used to tell whether
33+any new errors have occurred since that sampling was done, and atomically
34+record the state at the time that it was checked. This allows us to
35+record errors in one place, and then have a number of "watchers" that
36+can tell whether the value has changed since they last checked it.
37+
38+A new errseq_t should always be zeroed out. An errseq_t value of all zeroes
39+is the special (but common) case where there has never been an error. An all
40+zero value thus serves as the "epoch" if one wishes to know whether there
41+has ever been an error set since it was first initialized.
42+
43+API usage
44+=========
45+Let me tell you a story about a worker drone. Now, he's a good worker
46+overall, but the company is a little...management heavy. He has to
47+report to 77 supervisors today, and tomorrow the "big boss" is coming in
48+from out of town and he's sure to test the poor fellow too.
49+
50+They're all handing him work to do -- so much he can't keep track of who
51+handed him what, but that's not really a big problem. The supervisors
52+just want to know when he's finished all of the work they've handed him so
53+far and whether he made any mistakes since they last asked.
54+
55+He might have made the mistake on work they didn't actually hand him,
56+but he can't keep track of things at that level of detail, all he can
57+remember is the most recent mistake that he made.
58+
59+Here's our worker_drone representation::
60+
61+ struct worker_drone {
62+ errseq_t wd_err; /* for recording errors */
63+ };
64+
65+Every day, the worker_drone starts out with a blank slate::
66+
67+ struct worker_drone wd;
68+
69+ wd.wd_err = (errseq_t)0;
70+
71+The supervisors come in and get an initial read for the day. They
72+don't care about anything that happened before their watch begins::
73+
74+ struct supervisor {
75+ errseq_t s_wd_err; /* private "cursor" for wd_err */
76+ spinlock_t s_wd_err_lock; /* protects s_wd_err */
77+ }
78+
79+ struct supervisor su;
80+
81+ su.s_wd_err = errseq_sample(&wd.wd_err);
82+ spin_lock_init(&su.s_wd_err_lock);
83+
84+Now they start handing him tasks to do. Every few minutes they ask him to
85+finish up all of the work they've handed him so far. Then they ask him
86+whether he made any mistakes on any of it::
87+
88+ spin_lock(&su.su_wd_err_lock);
89+ err = errseq_check_and_advance(&wd.wd_err, &su.s_wd_err);
90+ spin_unlock(&su.su_wd_err_lock);
91+
92+Up to this point, that just keeps returning 0.
93+
94+Now, the owners of this company are quite miserly and have given him
95+substandard equipment with which to do his job. Occasionally it
96+glitches and he makes a mistake. He sighs a heavy sigh, and marks it
97+down::
98+
99+ errseq_set(&wd.wd_err, -EIO);
100+
101+...and then gets back to work. The supervisors eventually poll again
102+and they each get the error when they next check. Subsequent calls will
103+return 0, until another error is recorded, at which point it's reported
104+to each of them once.
105+
106+Note that the supervisors can't tell how many mistakes he made, only
107+whether one was made since they last checked, and the latest value
108+recorded.
109+
110+Occasionally the big boss comes in for a spot check and asks the worker
111+to do a one-off job for him. He's not really watching the worker
112+full-time like the supervisors, but he does need to know whether a
113+mistake occurred while his job was processing.
114+
115+He can just sample the current errseq_t in the worker, and then use that
116+to tell whether an error has occurred later::
117+
118+ errseq_t since = errseq_sample(&wd.wd_err);
119+ /* submit some work and wait for it to complete */
120+ err = errseq_check(&wd.wd_err, since);
121+
122+Since he's just going to discard "since" after that point, he doesn't
123+need to advance it here. He also doesn't need any locking since it's
124+not usable by anyone else.
125+
126+Serializing errseq_t cursor updates
127+===================================
128+Note that the errseq_t API does not protect the errseq_t cursor during a
129+check_and_advance_operation. Only the canonical error code is handled
130+atomically. In a situation where more than one task might be using the
131+same errseq_t cursor at the same time, it's important to serialize
132+updates to that cursor.
133+
134+If that's not done, then it's possible for the cursor to go backward
135+in which case the same error could be reported more than once.
136+
137+Because of this, it's often advantageous to first do an errseq_check to
138+see if anything has changed, and only later do an
139+errseq_check_and_advance after taking the lock. e.g.::
140+
141+ if (errseq_check(&wd.wd_err, READ_ONCE(su.s_wd_err)) {
142+ /* su.s_wd_err is protected by s_wd_err_lock */
143+ spin_lock(&su.s_wd_err_lock);
144+ err = errseq_check_and_advance(&wd.wd_err, &su.s_wd_err);
145+ spin_unlock(&su.s_wd_err_lock);
146+ }
147+
148+That avoids the spinlock in the common case where nothing has changed
149+since the last time it was checked.
Documentation/fb/efifb.txt+6−0
@@ -27,5 +27,11 @@ You have to add the following kernel parameters in your elilo.conf: · 26 unmodified lines
2727 Macbook Pro 17", iMac 20" :
2828 video=efifb:i20
2929
30+Accepted options:
31+
32+nowc Don't map the framebuffer write combined. This can be used
33+ to workaround side-effects and slowdowns on other CPU cores
34+ when large amounts of console data are written.
35+
3036 --
3137 Edgar Hucek <gimli@dark-green.com>
Documentation/fb/fbcon.txt+7−0
@@ -148,6 +148,13 @@ C. Boot options · 147 unmodified lines
148148 Actually, the underlying fb driver is totally ignorant of console
149149 rotation.
150150
151+5. fbcon=margin:<color>
152+
153+ This option specifies the color of the margins. The margins are the
154+ leftover area at the right and the bottom of the screen that are not
155+ used by text. By default, this area will be black. The 'color' value
156+ is an integer number that depends on the framebuffer driver being used.
157+
151158 C. Attaching, Detaching and Unloading
152159
153160 Before going on how to attach, detach and unload the framebuffer console, an
Documentation/features/core/tracehook/arch-support.txt+1−1
@@ -25,7 +25,7 @@ · 24 unmodified lines
2525 | mn10300: | ok |
2626 | nios2: | ok |
2727 | openrisc: | ok |
28− | parisc: | TODO |
28+ | parisc: | ok |
2929 | powerpc: | ok |
3030 | s390: | ok |
3131 | score: | TODO |
Documentation/filesystems/Locking+1−1
@@ -22,7 +22,7 @@ prototypes: · 21 unmodified lines
2222 struct vfsmount *(*d_automount)(struct path *path);
2323 int (*d_manage)(const struct path *, bool);
2424 struct dentry *(*d_real)(struct dentry *, const struct inode *,
25− unsigned int);
25+ unsigned int, unsigned int);
2626
2727 locking rules:
2828 rename_lock ->d_lock may block rcu-walk
Documentation/filesystems/caching/netfs-api.txt+0−2
@@ -151,8 +151,6 @@ To define an object, a structure of the following type should be filled out: · 150 unmodified lines
151151 void (*mark_pages_cached)(void *cookie_netfs_data,
152152 struct address_space *mapping,
153153 struct pagevec *cached_pvec);
154−
155− void (*now_uncached)(void *cookie_netfs_data);
156154 };
157155
158156 This has the following fields:
Documentation/filesystems/cifs/AUTHORS+5−0
@@ -41,6 +41,11 @@ Igor Mammedov (DFS support) · 40 unmodified lines
4141 Jeff Layton (many, many fixes, as well as great work on the cifs Kerberos code)
4242 Scott Lovenberg
4343 Pavel Shilovsky (for great work adding SMB2 support, and various SMB3 features)
44+Aurelien Aptel (for DFS SMB3 work and some key bug fixes)
45+Ronnie Sahlberg (for SMB3 xattr work and bug fixes)
46+Shirish Pargaonkar (for many ACL patches over the years)
47+Sachin Prabhu (many bug fixes, including for reconnect, copy offload and security)
48+
4449
4550 Test case and Bug Report contributors
4651 -------------------------------------
Documentation/filesystems/cifs/README+38−43
@@ -1,10 +1,14 @@
1−The CIFS VFS support for Linux supports many advanced network filesystem
2−features such as hierarchical dfs like namespace, hardlinks, locking and more.
1+This module supports the SMB3 family of advanced network protocols (as well
2+as older dialects, originally called "CIFS" or SMB1).
3+
4+The CIFS VFS module for Linux supports many advanced network filesystem
5+features such as hierarchical DFS like namespace, hardlinks, locking and more.
36 It was designed to comply with the SNIA CIFS Technical Reference (which
47 supersedes the 1992 X/Open SMB Standard) as well as to perform best practice
58 practical interoperability with Windows 2000, Windows XP, Samba and equivalent
69 servers. This code was developed in participation with the Protocol Freedom
7−Information Foundation.
10+Information Foundation. CIFS and now SMB3 has now become a defacto
11+standard for interoperating between Macs and Windows and major NAS appliances.
812
913 Please see
1014 http://protocolfreedom.org/ and
@@ -15,30 +19,11 @@ for more details. · 4 unmodified lines
1519 For questions or bug reports please contact:
1620 sfrench@samba.org (sfrench@us.ibm.com)
1721
22+See the project page at: https://wiki.samba.org/index.php/LinuxCIFS_utils
23+
1824 Build instructions:
1925 ==================
20−For Linux 2.4:
21−1) Get the kernel source (e.g.from http://www.kernel.org)
22−and download the cifs vfs source (see the project page
23−at http://us1.samba.org/samba/Linux_CIFS_client.html)
24−and change directory into the top of the kernel directory
25−then patch the kernel (e.g. "patch -p1 < cifs_24.patch")
26−to add the cifs vfs to your kernel configure options if
27−it has not already been added (e.g. current SuSE and UL
28−users do not need to apply the cifs_24.patch since the cifs vfs is
29−already in the kernel configure menu) and then
30−mkdir linux/fs/cifs and then copy the current cifs vfs files from
31−the cifs download to your kernel build directory e.g.
32−
33− cp <cifs_download_dir>/fs/cifs/* to <kernel_download_dir>/fs/cifs
34−
35−2) make menuconfig (or make xconfig)
36−3) select cifs from within the network filesystem choices
37−4) save and exit
38−5) make dep
39−6) make modules (or "make" if CIFS VFS not to be built as a module)
40−
41−For Linux 2.6:
26+For Linux:
4227 1) Download the kernel (e.g. from http://www.kernel.org)
4328 and change directory into the top of the kernel directory tree
4429 (e.g. /usr/src/linux-2.5.73)
@@ -61,16 +46,13 @@ would simply type "make install"). · 16 unmodified lines
6146 If you do not have the utility mount.cifs (in the Samba 3.0 source tree and on
6247 the CIFS VFS web site) copy it to the same directory in which mount.smbfs and
6348 similar files reside (usually /sbin). Although the helper software is not
64−required, mount.cifs is recommended. Eventually the Samba 3.0 utility program
65−"net" may also be helpful since it may someday provide easier mount syntax for
66−users who are used to Windows e.g.
67− net use <mount point> <UNC name or cifs URL>
49+required, mount.cifs is recommended. Most distros include a "cifs-utils"
50+package that includes this utility so it is recommended to install this.
51+
6852 Note that running the Winbind pam/nss module (logon service) on all of your
6953 Linux clients is useful in mapping Uids and Gids consistently across the
7054 domain to the proper network user. The mount.cifs mount helper can be
71−trivially built from Samba 3.0 or later source e.g. by executing:
72−
73− gcc samba/source/client/mount.cifs.c -o mount.cifs
55+found at cifs-utils.git on git.samba.org
7456
7557 If cifs is built as a module, then the size and number of network buffers
7658 and maximum number of simultaneous requests to one server can be configured.
@@ -79,6 +61,18 @@ Changing these from their defaults is not recommended. By executing modinfo · 2 unmodified lines
7961 on kernel/fs/cifs/cifs.ko the list of configuration changes that can be made
8062 at module initialization time (by running insmod cifs.ko) can be seen.
8163
64+Recommendations
65+===============
66+To improve security the SMB2.1 dialect or later (usually will get SMB3) is now
67+the new default. To use old dialects (e.g. to mount Windows XP) use "vers=1.0"
68+on mount (or vers=2.0 for Windows Vista). Note that the CIFS (vers=1.0) is
69+much older and less secure than the default dialect SMB3 which includes
70+many advanced security features such as downgrade attack detection
71+and encrypted shares and stronger signing and authentication algorithms.
72+There are additional mount options that may be helpful for SMB3 to get
73+improved POSIX behavior (NB: can use vers=3.0 to force only SMB3, never 2.1):
74+ "mfsymlinks" and "cifsacl" and "idsfromsid"
75+
8276 Allowing User Mounts
8377 ====================
8478 To permit users to mount and unmount over directories they own is possible
@@ -98,9 +92,7 @@ and execution of suid programs on the remote target would be enabled · 13 unmodified lines
9892 by default. This can be changed, as with nfs and other filesystems,
9993 by simply specifying "nosuid" among the mount options. For user mounts
10094 though to be able to pass the suid flag to mount requires rebuilding
101−mount.cifs with the following flag:
102−
103− gcc samba/source/client/mount.cifs.c -DCIFS_ALLOW_USR_SUID -o mount.cifs
95+mount.cifs with the following flag: CIFS_ALLOW_USR_SUID
10496
10597 There is a corresponding manual page for cifs mounting in the Samba 3.0 and
10698 later source tree in docs/manpages/mount.cifs.8
@@ -189,18 +181,18 @@ applications running on the same server as Samba. · 82 unmodified lines
189181 Use instructions:
190182 ================
191183 Once the CIFS VFS support is built into the kernel or installed as a module
192−(cifs.o), you can use mount syntax like the following to access Samba or Windows
193−servers:
184+(cifs.ko), you can use mount syntax like the following to access Samba or
185+Mac or Windows servers:
194186
195− mount -t cifs //9.53.216.11/e$ /mnt -o user=myname,pass=mypassword
187+ mount -t cifs //9.53.216.11/e$ /mnt -o username=myname,password=mypassword
196188
197189 Before -o the option -v may be specified to make the mount.cifs
198190 mount helper display the mount steps more verbosely.
199191 After -o the following commonly used cifs vfs specific options
200192 are supported:
201193
202− user=<username>
203− pass=<password>
194+ username=<username>
195+ password=<password>
204196 domain=<domain name>
205197
206198 Other cifs mount options are described below. Use of TCP names (in addition to
@@ -246,13 +238,16 @@ the Server's registry. Samba starting with version 3.10 will allow such · 39 unmodified lines
246238 filenames (ie those which contain valid Linux characters, which normally
247239 would be forbidden for Windows/CIFS semantics) as long as the server is
248240 configured for Unix Extensions (and the client has not disabled
249−/proc/fs/cifs/LinuxExtensionsEnabled).
250−
241+/proc/fs/cifs/LinuxExtensionsEnabled). In addition the mount option
242+"mapposix" can be used on CIFS (vers=1.0) to force the mapping of
243+illegal Windows/NTFS/SMB characters to a remap range (this mount parm
244+is the default for SMB3). This remap ("mapposix") range is also
245+compatible with Mac (and "Services for Mac" on some older Windows).
251246
252247 CIFS VFS Mount Options
253248 ======================
254249 A partial list of the supported mount options follows:
255− user The user name to use when trying to establish
250+ username The user name to use when trying to establish
256251 the CIFS session.
257252 password The user password. If the mount helper is
258253 installed, the user will be prompted for password
Documentation/filesystems/cifs/TODO+34−38
@@ -1,4 +1,4 @@
1−Version 2.03 August 1, 2014
1+Version 2.04 September 13, 2017
22
33 A Partial List of Missing Features
44 ==================================
@@ -8,73 +8,69 @@ for visible, important contributions to this module. Here · 3 unmodified lines
88 is a partial list of the known problems and missing features:
99
1010 a) SMB3 (and SMB3.02) missing optional features:
11− - RDMA
11+ - RDMA (started)
1212 - multichannel (started)
1313 - directory leases (improved metadata caching)
1414 - T10 copy offload (copy chunk is only mechanism supported)
15− - encrypted shares
1615
1716 b) improved sparse file support
1817
1918 c) Directory entry caching relies on a 1 second timer, rather than
20−using FindNotify or equivalent. - (started)
19+using Directory Leases
2120
2221 d) quota support (needs minor kernel change since quota calls
2322 to make it to network filesystems or deviceless filesystems)
2423
25−e) improve support for very old servers (OS/2 and Win9x for example)
26−Including support for changing the time remotely (utimes command).
24+e) Better optimize open to reduce redundant opens (using reference
25+counts more) and to improve use of compounding in SMB3 to reduce
26+number of roundtrips.
2727
28−f) hook lower into the sockets api (as NFS/SunRPC does) to avoid the
29−extra copy in/out of the socket buffers in some cases.
30−
31−g) Better optimize open (and pathbased setfilesize) to reduce the
32−oplock breaks coming from windows srv. Piggyback identical file
33−opens on top of each other by incrementing reference count rather
34−than resending (helps reduce server resource utilization and avoid
35−spurious oplock breaks).
36−
37−h) Add support for storing symlink info to Windows servers
38−in the Extended Attribute format their SFU clients would recognize.
39−
40−i) Finish inotify support so kde and gnome file list windows
28+f) Finish inotify support so kde and gnome file list windows
4129 will autorefresh (partially complete by Asser). Needs minor kernel
4230 vfs change to support removing D_NOTIFY on a file.
4331
44−j) Add GUI tool to configure /proc/fs/cifs settings and for display of
32+g) Add GUI tool to configure /proc/fs/cifs settings and for display of
4533 the CIFS statistics (started)
4634
47−k) implement support for security and trusted categories of xattrs
35+h) implement support for security and trusted categories of xattrs
4836 (requires minor protocol extension) to enable better support for SELINUX
4937
50−l) Implement O_DIRECT flag on open (already supported on mount)
38+i) Implement O_DIRECT flag on open (already supported on mount)
5139
52−m) Create UID mapping facility so server UIDs can be mapped on a per
40+j) Create UID mapping facility so server UIDs can be mapped on a per
5341 mount or a per server basis to client UIDs or nobody if no mapping
54−exists. This is helpful when Unix extensions are negotiated to
55−allow better permission checking when UIDs differ on the server
56−and client. Add new protocol request to the CIFS protocol
57−standard for asking the server for the corresponding name of a
58−particular uid.
42+exists. Also better integration with winbind for resolving SID owners
43+
44+k) Add tools to take advantage of more smb3 specific ioctls and features
45+
46+l) encrypted file support
47+
48+m) improved stats gathering, tools (perhaps integration with nfsometer?)
5949
60−n) DOS attrs - returned as pseudo-xattr in Samba format (check VFAT and NTFS for this too)
50+n) allow setting more NTFS/SMB3 file attributes remotely (currently limited to compressed
51+file attribute via chflags) and improve user space tools for managing and
52+viewing them.
6153
62−o) mount check for unmatched uids
54+o) mount helper GUI (to simplify the various configuration options on mount)
6355
64−p) Add support for new vfs entry point for fallocate
56+p) autonegotiation of dialects (offering more than one dialect ie SMB3.02,
57+SMB3, SMB2.1 not just SMB3).
6558
66−q) Add tools to take advantage of cifs/smb3 specific ioctls and features
67−such as "CopyChunk" (fast server side file copy)
59+q) Allow mount.cifs to be more verbose in reporting errors with dialect
60+or unsupported feature errors.
6861
69−r) encrypted file support
62+r) updating cifs documentation, and user guid.
7063
71−s) improved stats gathering, tools (perhaps integration with nfsometer?)
64+s) Addressing bugs found by running a broader set of xfstests in standard
65+file system xfstest suite.
7266
73−t) allow setting more NTFS/SMB3 file attributes remotely (currently limited to compressed
74−file attribute via chflags)
67+t) split cifs and smb3 support into separate modules so legacy (and less
68+secure) CIFS dialect can be disabled in environments that don't need it
69+and simplify the code.
7570
76−u) mount helper GUI (to simplify the various configuration options on mount)
71+u) Finish up SMB3.1.1 dialect support
7772
73+v) POSIX Extensions for SMB3.1.1
7874
7975 KNOWN BUGS
8076 ====================================
Documentation/filesystems/cifs/cifs.txt+14−10
@@ -1,24 +1,28 @@
1− This is the client VFS module for the Common Internet File System
2− (CIFS) protocol which is the successor to the Server Message Block
1+ This is the client VFS module for the SMB3 NAS protocol as well
2+ older dialects such as the Common Internet File System (CIFS)
3+ protocol which was the successor to the Server Message Block
34 (SMB) protocol, the native file sharing mechanism for most early
45 PC operating systems. New and improved versions of CIFS are now
56 called SMB2 and SMB3. These dialects are also supported by the
67 CIFS VFS module. CIFS is fully supported by network
7− file servers such as Windows 2000, 2003, 2008 and 2012
8+ file servers such as Windows 2000, 2003, 2008, 2012 and 2016
89 as well by Samba (which provides excellent CIFS
9− server support for Linux and many other operating systems), so
10+ server support for Linux and many other operating systems), Apple
11+ systems, as well as most Network Attached Storage vendors, so
1012 this network filesystem client can mount to a wide variety of
1113 servers.
1214
1315 The intent of this module is to provide the most advanced network
14− file system function for CIFS compliant servers, including better
15− POSIX compliance, secure per-user session establishment, high
16− performance safe distributed caching (oplock), optional packet
16+ file system function for SMB3 compliant servers, including advanced
17+ security features, excellent parallelized high performance i/o, better
18+ POSIX compliance, secure per-user session establishment, encryption,
19+ high performance safe distributed caching (leases/oplocks), optional packet
1720 signing, large files, Unicode support and other internationalization
1821 improvements. Since both Samba server and this filesystem client support
19− the CIFS Unix extensions, the combination can provide a reasonable
20− alternative to NFSv4 for fileserving in some Linux to Linux environments,
21− not just in Linux to Windows environments.
22+ the CIFS Unix extensions (and in the future SMB3 POSIX extensions),
23+ the combination can provide a reasonable alternative to other network and
24+ cluster file systems for fileserving in some Linux to Linux environments,
25+ not just in Linux to Windows (or Linux to Mac) environments.
2226
2327 This filesystem has an mount utility (mount.cifs) that can be obtained from
2428
Documentation/filesystems/dax.txt+2−3
@@ -63,9 +63,8 @@ Filesystem support consists of · 62 unmodified lines
6363 - implementing an mmap file operation for DAX files which sets the
6464 VM_MIXEDMAP and VM_HUGEPAGE flags on the VMA, and setting the vm_ops to
6565 include handlers for fault, pmd_fault, page_mkwrite, pfn_mkwrite. These
66− handlers should probably call dax_iomap_fault() (for fault and page_mkwrite
67− handlers), dax_iomap_pmd_fault(), dax_pfn_mkwrite() passing the appropriate
68− iomap operations.
66+ handlers should probably call dax_iomap_fault() passing the appropriate
67+ fault size and iomap operations.
6968 - calling iomap_zero_range() passing appropriate iomap operations instead of
7069 block_truncate_page() for DAX files
7170 - ensuring that there is sufficient locking between reads, writes,
Documentation/filesystems/f2fs.txt+19−0
@@ -164,6 +164,16 @@ io_bits=%u Set the bit size of write IO requests. It should be set · 163 unmodified lines
164164 with "mode=lfs".
165165 usrquota Enable plain user disk quota accounting.
166166 grpquota Enable plain group disk quota accounting.
167+prjquota Enable plain project quota accounting.
168+usrjquota=<file> Appoint specified file and type during mount, so that quota
169+grpjquota=<file> information can be properly updated during recovery flow,
170+prjjquota=<file> <quota file>: must be in root directory;
171+jqfmt=<quota type> <quota type>: [vfsold,vfsv0,vfsv1].
172+offusrjquota Turn off user journelled quota.
173+offgrpjquota Turn off group journelled quota.
174+offprjjquota Turn off project journelled quota.
175+quota Enable plain user disk quota accounting.
176+noquota Disable all plain disk quota option.
167177
168178 ================================================================================
169179 DEBUGFS ENTRIES
@@ -209,6 +219,15 @@ Files in /sys/fs/f2fs/<devname> · 39 unmodified lines
209219 gc_idle = 1 will select the Cost Benefit approach
210220 & setting gc_idle = 2 will select the greedy approach.
211221
222+ gc_urgent This parameter controls triggering background GCs
223+ urgently or not. Setting gc_urgent = 0 [default]
224+ makes back to default behavior, while if it is set
225+ to 1, background thread starts to do GC by given
226+ gc_urgent_sleep_time interval.
227+
228+ gc_urgent_sleep_time This parameter controls sleep time for gc_urgent.
229+ 500 ms is set by default. See above gc_urgent.
230+
212231 reclaim_segments This parameter controls the number of prefree
213232 segments to be reclaimed. If the number of prefree
214233 segments is larger than the number of segments
Documentation/filesystems/orangefs.txt+4−10
@@ -45,14 +45,11 @@ upstream version of the kernel client. · 44 unmodified lines
4545 BUILDING THE USERSPACE FILESYSTEM ON A SINGLE SERVER
4646 ====================================================
4747
48−When Orangefs is upstream, "--with-kernel" shouldn't be needed, but
49−until then the path to where the kernel with the Orangefs kernel client
50−patch was built is needed to ensure that pvfs2-client-core (the bridge
51−between kernel space and user space) will build properly. You can omit
52−--prefix if you don't care that things are sprinkled around in
53−/usr/local.
48+You can omit --prefix if you don't care that things are sprinkled around in
49+/usr/local. As of version 2.9.6, Orangefs uses Berkeley DB by default, we
50+will probably be changing the default to lmdb soon.
5451
55−./configure --prefix=/opt/ofs --with-kernel=/path/to/orangefs/kernel
52+./configure --prefix=/opt/ofs --with-db-backend=lmdb
5653
5754 make
5855
@@ -82,9 +79,6 @@ prove things are working with: · 23 unmodified lines
8279
8380 /opt/osf/bin/pvfs2-ls /mymountpoint
8481
85−You might not want to enforce selinux, it doesn't seem to matter by
86−linux 3.11...
87−
8882 If stuff seems to be working, turn on the client core:
8983 /opt/osf/sbin/pvfs2-client -p /opt/osf/sbin/pvfs2-client-core
9084
Documentation/filesystems/porting+1−1
@@ -228,7 +228,7 @@ anything from oops to silent memory corruption. · 227 unmodified lines
228228 ---
229229 [mandatory]
230230
231− FS_NOMOUNT is gone. If you use it - just set MS_NOUSER in flags
231+ FS_NOMOUNT is gone. If you use it - just set SB_NOUSER in flags
232232 (see rootfs for one kind of solution and bdev/socket/pipe for another).
233233
234234 ---
Documentation/filesystems/vfs.txt+2−4
@@ -829,9 +829,7 @@ struct address_space_operations { · 828 unmodified lines
829829 swap_activate: Called when swapon is used on a file to allocate
830830 space if necessary and pin the block lookup information in
831831 memory. A return value of zero indicates success,
832− in which case this file can be used to back swapspace. The
833− swapspace operations will be proxied to this address space's
834− ->swap_{out,in} methods.
832+ in which case this file can be used to back swapspace.
835833
836834 swap_deactivate: Called during swapoff on files where swap_activate
837835 was successful.
@@ -990,7 +988,7 @@ struct dentry_operations { · 152 unmodified lines
990988 struct vfsmount *(*d_automount)(struct path *);
991989 int (*d_manage)(const struct path *, bool);
992990 struct dentry *(*d_real)(struct dentry *, const struct inode *,
993− unsigned int);
991+ unsigned int, unsigned int);
994992 };
995993
996994 d_revalidate: called when the VFS needs to revalidate a dentry. This
Documentation/gpio/drivers-on-gpio.txt+5−0
@@ -84,6 +84,11 @@ hardware descriptions such as device tree or ACPI: · 83 unmodified lines
8484 NAND flash MTD subsystem and provides chip access and partition parsing like
8585 any other NAND driving hardware.
8686
87+- ps2-gpio: drivers/input/serio/ps2-gpio.c is used to drive a PS/2 (IBM) serio
88+ bus, data and clock line, by bit banging two GPIO lines. It will appear as
89+ any other serio bus to the system and makes it possible to connect drivers
90+ for e.g. keyboards and other PS/2 protocol based devices.
91+
8792 Apart from this there are special GPIO drivers in subsystems like MMC/SD to
8893 read card detect and write protect GPIO lines, and in the TTY serial subsystem
8994 to emulate MCTRL (modem control) signals CTS/RTS by using two GPIO lines. The
Documentation/gpio/gpio-legacy.txt+1−1
@@ -459,7 +459,7 @@ pin controller? · 458 unmodified lines
459459
460460 This is done by registering "ranges" of pins, which are essentially
461461 cross-reference tables. These are described in
462−Documentation/pinctrl.txt
462+Documentation/driver-api/pinctl.rst
463463
464464 While the pin allocation is totally managed by the pinctrl subsystem,
465465 gpio (under gpiolib) is still maintained by gpio drivers. It may happen
Documentation/gpu/drm-internals.rst+2−0
@@ -201,6 +201,8 @@ drivers. · 200 unmodified lines
201201 Open/Close, File Operations and IOCTLs
202202 ======================================
203203
204+.. _drm_driver_fops:
205+
204206 File Operations
205207 ---------------
206208
Documentation/gpu/drm-kms-helpers.rst+9−0
@@ -296,3 +296,12 @@ Auxiliary Modeset Helpers · 295 unmodified lines
296296
297297 .. kernel-doc:: drivers/gpu/drm/drm_modeset_helper.c
298298 :export:
299+
300+Framebuffer GEM Helper Reference
301+================================
302+
303+.. kernel-doc:: drivers/gpu/drm/drm_gem_framebuffer_helper.c
304+ :doc: overview
305+
306+.. kernel-doc:: drivers/gpu/drm/drm_gem_framebuffer_helper.c
307+ :export:
Documentation/gpu/drm-kms.rst+2−57
@@ -523,9 +523,6 @@ Color Management Properties · 522 unmodified lines
523523 .. kernel-doc:: drivers/gpu/drm/drm_color_mgmt.c
524524 :doc: overview
525525
526−.. kernel-doc:: include/drm/drm_color_mgmt.h
527− :internal:
528−
529526 .. kernel-doc:: drivers/gpu/drm/drm_color_mgmt.c
530527 :export:
531528
@@ -554,60 +551,8 @@ various modules/drivers. · 22 unmodified lines
554551 Vertical Blanking
555552 =================
556553
557−Vertical blanking plays a major role in graphics rendering. To achieve
558−tear-free display, users must synchronize page flips and/or rendering to
559−vertical blanking. The DRM API offers ioctls to perform page flips
560−synchronized to vertical blanking and wait for vertical blanking.
561−
562−The DRM core handles most of the vertical blanking management logic,
563−which involves filtering out spurious interrupts, keeping race-free
564−blanking counters, coping with counter wrap-around and resets and
565−keeping use counts. It relies on the driver to generate vertical
566−blanking interrupts and optionally provide a hardware vertical blanking
567−counter. Drivers must implement the following operations.
568−
569−- int (\*enable_vblank) (struct drm_device \*dev, int crtc); void
570− (\*disable_vblank) (struct drm_device \*dev, int crtc);
571− Enable or disable vertical blanking interrupts for the given CRTC.
572−
573−- u32 (\*get_vblank_counter) (struct drm_device \*dev, int crtc);
574− Retrieve the value of the vertical blanking counter for the given
575− CRTC. If the hardware maintains a vertical blanking counter its value
576− should be returned. Otherwise drivers can use the
577− :c:func:`drm_vblank_count()` helper function to handle this
578− operation.
579−
580−Drivers must initialize the vertical blanking handling core with a call
581−to :c:func:`drm_vblank_init()` in their load operation.
582−
583−Vertical blanking interrupts can be enabled by the DRM core or by
584−drivers themselves (for instance to handle page flipping operations).
585−The DRM core maintains a vertical blanking use count to ensure that the
586−interrupts are not disabled while a user still needs them. To increment
587−the use count, drivers call :c:func:`drm_vblank_get()`. Upon
588−return vertical blanking interrupts are guaranteed to be enabled.
589−
590−To decrement the use count drivers call
591−:c:func:`drm_vblank_put()`. Only when the use count drops to zero
592−will the DRM core disable the vertical blanking interrupts after a delay
593−by scheduling a timer. The delay is accessible through the
594−vblankoffdelay module parameter or the ``drm_vblank_offdelay`` global
595−variable and expressed in milliseconds. Its default value is 5000 ms.
596−Zero means never disable, and a negative value means disable
597−immediately. Drivers may override the behaviour by setting the
598−:c:type:`struct drm_device <drm_device>`
599−vblank_disable_immediate flag, which when set causes vblank interrupts
600−to be disabled immediately regardless of the drm_vblank_offdelay
601−value. The flag should only be set if there's a properly working
602−hardware vblank counter present.
603−
604−When a vertical blanking interrupt occurs drivers only need to call the
605−:c:func:`drm_handle_vblank()` function to account for the
606−interrupt.
607−
608−Resources allocated by :c:func:`drm_vblank_init()` must be freed
609−with a call to :c:func:`drm_vblank_cleanup()` in the driver unload
610−operation handler.
554+.. kernel-doc:: drivers/gpu/drm/drm_vblank.c
555+ :doc: vblank handling
611556
612557 Vertical Blanking and Interrupt Handling Functions Reference
613558 ------------------------------------------------------------
Documentation/gpu/drm-mm.rst+2−2
@@ -191,7 +191,7 @@ acquired and release by :c:func:`calling drm_gem_object_get()` and · 190 unmodified lines
191191 holding the lock.
192192
193193 When the last reference to a GEM object is released the GEM core calls
194−the :c:type:`struct drm_driver <drm_driver>` gem_free_object
194+the :c:type:`struct drm_driver <drm_driver>` gem_free_object_unlocked
195195 operation. That operation is mandatory for GEM-enabled drivers and must
196196 free the GEM object and all associated resources.
197197
@@ -492,7 +492,7 @@ DRM Sync Objects · 294 unmodified lines
492492 :doc: Overview
493493
494494 .. kernel-doc:: include/drm/drm_syncobj.h
495− :export:
495+ :internal:
496496
497497 .. kernel-doc:: drivers/gpu/drm/drm_syncobj.c
498498 :export:
Documentation/gpu/drm-uapi.rst+2−0
@@ -160,6 +160,8 @@ other hand, a driver requires shared state between clients which is · 159 unmodified lines
160160 visible to user-space and accessible beyond open-file boundaries, they
161161 cannot support render nodes.
162162
163+.. _drm_driver_ioctl:
164+
163165 IOCTL Support on Device Nodes
164166 =============================
165167
Documentation/gpu/i915.rst+17−1
@@ -417,6 +417,10 @@ integrate with drm/i915 and to handle the `DRM_I915_PERF_OPEN` ioctl. · 416 unmodified lines
417417 :functions: i915_perf_open_ioctl
418418 .. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
419419 :functions: i915_perf_release
420+.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
421+ :functions: i915_perf_add_config_ioctl
422+.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
423+ :functions: i915_perf_remove_config_ioctl
420424
421425 i915 Perf Stream
422426 ----------------
@@ -477,4 +481,16 @@ specific details than found in the more high-level sections. · 54 unmodified lines
477481 .. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
478482 :internal:
479483
480−.. WARNING: DOCPROC directive not supported: !Cdrivers/gpu/drm/i915/i915_irq.c
484+Style
485+=====
486+
487+The drm/i915 driver codebase has some style rules in addition to (and, in some
488+cases, deviating from) the kernel coding style.
489+
490+Register macro definition style
491+-------------------------------
492+
493+The style guide for ``i915_reg.h``.
494+
495+.. kernel-doc:: drivers/gpu/drm/i915/i915_reg.h
496+ :doc: The i915 register macro definition style guide
Documentation/gpu/todo.rst+2−2
@@ -108,8 +108,8 @@ This would be especially useful for tinydrm: · 107 unmodified lines
108108 crtc state, clear that to the max values, x/y = 0 and w/h = MAX_INT, in
109109 __drm_atomic_helper_crtc_duplicate_state().
110110
111−- Move tinydrm_merge_clips into drm_framebuffer.c, dropping the tinydrm_
112− prefix ofc and using drm_fb_. drm_framebuffer.c makes sense since this
111+- Move tinydrm_merge_clips into drm_framebuffer.c, dropping the tinydrm\_
112+ prefix ofc and using drm_fb\_. drm_framebuffer.c makes sense since this
113113 is a function useful to implement the fb->dirty function.
114114
115115 - Create a new drm_fb_dirty function which does essentially what e.g.
Documentation/hwmon/ftsteutates+4−0
@@ -18,6 +18,10 @@ enhancements. It can monitor up to 4 voltages, 16 temperatures and · 17 unmodified lines
1818 8 fans. It also contains an integrated watchdog which is currently
1919 implemented in this driver.
2020
21+To clear a temperature or fan alarm, execute the following command with the
22+correct path to the alarm file:
23+ echo 0 >XXXX_alarm
24+
2125 Specification of the chip can be found here:
2226 ftp://ftp.ts.fujitsu.com/pub/Mainboard-OEM-Sales/Services/Software&Tools/Linux_SystemMonitoring&Watchdog&GPIO/BMC-Teutates_Specification_V1.21.pdf
2327 ftp://ftp.ts.fujitsu.com/pub/Mainboard-OEM-Sales/Services/Software&Tools/Linux_SystemMonitoring&Watchdog&GPIO/Fujitsu_mainboards-1-Sensors_HowTo-en-US.pdf
Documentation/hwmon/ibm-cffps+54−0
@@ -0,0 +1,54 @@
1+Kernel driver ibm-cffps
2+=======================
3+
4+Supported chips:
5+ * IBM Common Form Factor power supply
6+
7+Author: Eddie James <eajames@us.ibm.com>
8+
9+Description
10+-----------
11+
12+This driver supports IBM Common Form Factor (CFF) power supplies. This driver
13+is a client to the core PMBus driver.
14+
15+Usage Notes
16+-----------
17+
18+This driver does not auto-detect devices. You will have to instantiate the
19+devices explicitly. Please see Documentation/i2c/instantiating-devices for
20+details.
21+
22+Sysfs entries
23+-------------
24+
25+The following attributes are supported:
26+
27+curr1_alarm Output current over-current alarm.
28+curr1_input Measured output current in mA.
29+curr1_label "iout1"
30+
31+fan1_alarm Fan 1 warning.
32+fan1_fault Fan 1 fault.
33+fan1_input Fan 1 speed in RPM.
34+fan2_alarm Fan 2 warning.
35+fan2_fault Fan 2 fault.
36+fan2_input Fan 2 speed in RPM.
37+
38+in1_alarm Input voltage under-voltage alarm.
39+in1_input Measured input voltage in mV.
40+in1_label "vin"
41+in2_alarm Output voltage over-voltage alarm.
42+in2_input Measured output voltage in mV.
43+in2_label "vout1"
44+
45+power1_alarm Input fault or alarm.
46+power1_input Measured input power in uW.
47+power1_label "pin"
48+
49+temp1_alarm PSU inlet ambient temperature over-temperature alarm.
50+temp1_input Measured PSU inlet ambient temp in millidegrees C.
51+temp2_alarm Secondary rectifier temp over-temperature alarm.
52+temp2_input Measured secondary rectifier temp in millidegrees C.
53+temp3_alarm ORing FET temperature over-temperature alarm.
54+temp3_input Measured ORing FET temperature in millidegrees C.
Documentation/hwmon/lm25066+7−2
@@ -29,6 +29,11 @@ Supported chips: · 28 unmodified lines
2929 Addresses scanned: -
3030 Datasheet:
3131 http://www.national.com/pf/LM/LM5066.html
32+ * Texas Instruments LM5066I
33+ Prefix: 'lm5066i'
34+ Addresses scanned: -
35+ Datasheet:
36+ http://www.ti.com/product/LM5066I
3237
3338 Author: Guenter Roeck <linux@roeck-us.net>
3439
@@ -37,8 +42,8 @@ Description · 2 unmodified lines
3742 -----------
3843
3944 This driver supports hardware monitoring for National Semiconductor / TI LM25056,
40−LM25063, LM25066, LM5064, and LM5066 Power Management, Monitoring, Control, and
41−Protection ICs.
45+LM25063, LM25066, LM5064, and LM5066/LM5066I Power Management, Monitoring,
46+Control, and Protection ICs.
4247
4348 The driver is a client driver to the core PMBus driver. Please see
4449 Documentation/hwmon/pmbus for details on PMBus client drivers.
Documentation/i2c/i2c-topology+6−0
@@ -42,6 +42,10 @@ i2c-arb-gpio-challenge Parent-locked · 41 unmodified lines
4242 i2c-mux-gpio Normally parent-locked, mux-locked iff
4343 all involved gpio pins are controlled by the
4444 same i2c root adapter that they mux.
45+i2c-mux-gpmux Normally parent-locked, mux-locked iff
46+ specified in device-tree.
47+i2c-mux-ltc4306 Mux-locked
48+i2c-mux-mlxcpld Parent-locked
4549 i2c-mux-pca9541 Parent-locked
4650 i2c-mux-pca954x Parent-locked
4751 i2c-mux-pinctrl Normally parent-locked, mux-locked iff
@@ -50,9 +54,11 @@ i2c-mux-pinctrl Normally parent-locked, mux-locked iff · 2 unmodified lines
5054 i2c-mux-reg Parent-locked
5155
5256 In drivers/iio/
57+gyro/mpu3050 Mux-locked
5358 imu/inv_mpu6050/ Mux-locked
5459
5560 In drivers/media/
61+dvb-frontends/lgdt3306a Mux-locked
5662 dvb-frontends/m88ds3103 Parent-locked
5763 dvb-frontends/rtl2830 Parent-locked
5864 dvb-frontends/rtl2832 Mux-locked
Documentation/iio/ep93xx_adc.txt+29−0
@@ -0,0 +1,29 @@
1+Cirrus Logic EP93xx ADC driver.
2+
3+1. Overview
4+
5+The driver is intended to work on both low-end (EP9301, EP9302) devices with
6+5-channel ADC and high-end (EP9307, EP9312, EP9315) devices with 10-channel
7+touchscreen/ADC module.
8+
9+2. Channel numbering
10+
11+Numbering scheme for channels 0..4 is defined in EP9301 and EP9302 datasheets.
12+EP9307, EP9312 and EP9312 have 3 channels more (total 8), but the numbering is
13+not defined. So the last three are numbered randomly, let's say.
14+
15+Assuming ep93xx_adc is IIO device0, you'd find the following entries under
16+/sys/bus/iio/devices/iio:device0/:
17+
18+ +-----------------+---------------+
19+ | sysfs entry | ball/pin name |
20+ +-----------------+---------------+
21+ | in_voltage0_raw | YM |
22+ | in_voltage1_raw | SXP |
23+ | in_voltage2_raw | SXM |
24+ | in_voltage3_raw | SYP |
25+ | in_voltage4_raw | SYM |
26+ | in_voltage5_raw | XP |
27+ | in_voltage6_raw | XM |
28+ | in_voltage7_raw | YP |
29+ +-----------------+---------------+
Documentation/infiniband/tag_matching.txt+64−0
@@ -0,0 +1,64 @@
1+Tag matching logic
2+
3+The MPI standard defines a set of rules, known as tag-matching, for matching
4+source send operations to destination receives. The following parameters must
5+match the following source and destination parameters:
6+* Communicator
7+* User tag - wild card may be specified by the receiver
8+* Source rank – wild car may be specified by the receiver
9+* Destination rank – wild
10+The ordering rules require that when more than one pair of send and receive
11+message envelopes may match, the pair that includes the earliest posted-send
12+and the earliest posted-receive is the pair that must be used to satisfy the
13+matching operation. However, this doesn’t imply that tags are consumed in
14+the order they are created, e.g., a later generated tag may be consumed, if
15+earlier tags can’t be used to satisfy the matching rules.
16+
17+When a message is sent from the sender to the receiver, the communication
18+library may attempt to process the operation either after or before the
19+corresponding matching receive is posted. If a matching receive is posted,
20+this is an expected message, otherwise it is called an unexpected message.
21+Implementations frequently use different matching schemes for these two
22+different matching instances.
23+
24+To keep MPI library memory footprint down, MPI implementations typically use
25+two different protocols for this purpose:
26+
27+1. The Eager protocol- the complete message is sent when the send is
28+processed by the sender. A completion send is received in the send_cq
29+notifying that the buffer can be reused.
30+
31+2. The Rendezvous Protocol - the sender sends the tag-matching header,
32+and perhaps a portion of data when first notifying the receiver. When the
33+corresponding buffer is posted, the responder will use the information from
34+the header to initiate an RDMA READ operation directly to the matching buffer.
35+A fin message needs to be received in order for the buffer to be reused.
36+
37+Tag matching implementation
38+
39+There are two types of matching objects used, the posted receive list and the
40+unexpected message list. The application posts receive buffers through calls
41+to the MPI receive routines in the posted receive list and posts send messages
42+using the MPI send routines. The head of the posted receive list may be
43+maintained by the hardware, with the software expected to shadow this list.
44+
45+When send is initiated and arrives at the receive side, if there is no
46+pre-posted receive for this arriving message, it is passed to the software and
47+placed in the unexpected message list. Otherwise the match is processed,
48+including rendezvous processing, if appropriate, delivering the data to the
49+specified receive buffer. This allows overlapping receive-side MPI tag
50+matching with computation.
51+
52+When a receive-message is posted, the communication library will first check
53+the software unexpected message list for a matching receive. If a match is
54+found, data is delivered to the user buffer, using a software controlled
55+protocol. The UCX implementation uses either an eager or rendezvous protocol,
56+depending on data size. If no match is found, the entire pre-posted receive
57+list is maintained by the hardware, and there is space to add one more
58+pre-posted receive to this list, this receive is passed to the hardware.
59+Software is expected to shadow this list, to help with processing MPI cancel
60+operations. In addition, because hardware and software are not expected to be
61+tightly synchronized with respect to the tag-matching operation, this shadow
62+list is used to detect the case that a pre-posted receive is passed to the
63+hardware, as the matching unexpected message is being passed from the hardware
64+to the software.
Documentation/input/input.rst+1−1
@@ -109,7 +109,7 @@ evdev nodes are created with minors starting with 256. · 108 unmodified lines
109109 keyboard
110110 ~~~~~~~~
111111
112−``keyboard`` is in-kernel input handler ad is a part of VT code. It
112+``keyboard`` is in-kernel input handler and is a part of VT code. It
113113 consumes keyboard keystrokes and handles user input for VT consoles.
114114
115115 mousedev
Documentation/input/joydev/index.rst+0−1
@@ -12,7 +12,6 @@ Linux Joystick support · 11 unmodified lines
1212
1313 .. toctree::
1414 :maxdepth: 3
15− :numbered:
1615
1716 joystick
1817 joystick-api
Documentation/kbuild/makefiles.txt+3−3
@@ -297,9 +297,9 @@ more details, with real examples. · 296 unmodified lines
297297 ccflags-y specifies options for compiling with $(CC).
298298
299299 Example:
300− # drivers/acpi/Makefile
301− ccflags-y := -Os
302− ccflags-$(CONFIG_ACPI_DEBUG) += -DACPI_DEBUG_OUTPUT
300+ # drivers/acpi/acpica/Makefile
301+ ccflags-y := -Os -D_LINUX -DBUILDING_ACPICA
302+ ccflags-$(CONFIG_ACPI_DEBUG) += -DACPI_DEBUG_OUTPUT
303303
304304 This variable is necessary because the top Makefile owns the
305305 variable $(KBUILD_CFLAGS) and uses it for compilation flags for the
Documentation/laptops/thinkpad-acpi.txt+7−2
@@ -121,8 +121,9 @@ space, for 2.6.23+ this is /sys/devices/platform/thinkpad_acpi/. · 120 unmodified lines
121121 Sysfs device attributes for the sensors and fan are on the
122122 thinkpad_hwmon device's sysfs attribute space, but you should locate it
123123 looking for a hwmon device with the name attribute of "thinkpad", or
124−better yet, through libsensors.
125−
124+better yet, through libsensors. For 4.14+ sysfs attributes were moved to the
125+hwmon device (/sys/bus/platform/devices/thinkpad_hwmon/hwmon/hwmon? or
126+/sys/class/hwmon/hwmon?).
126127
127128 Driver version
128129 --------------
@@ -1478,3 +1479,7 @@ Sysfs interface changelog: · 1349 unmodified lines
14781479 0x020700: Support for mute-only mixers.
14791480 Volume control in read-only mode by default.
14801481 Marker for ALSA mixer support.
1482+
1483+0x030000: Thermal and fan sysfs attributes were moved to the hwmon
1484+ device instead of being attached to the backing platform
1485+ device.
Documentation/locking/crossrelease.txt+874−0
@@ -0,0 +1,874 @@
1+Crossrelease
2+============
3+
4+Started by Byungchul Park <byungchul.park@lge.com>
5+
6+Contents:
7+
8+ (*) Background
9+
10+ - What causes deadlock
11+ - How lockdep works
12+
13+ (*) Limitation
14+
15+ - Limit lockdep
16+ - Pros from the limitation
17+ - Cons from the limitation
18+ - Relax the limitation
19+
20+ (*) Crossrelease
21+
22+ - Introduce crossrelease
23+ - Introduce commit
24+
25+ (*) Implementation
26+
27+ - Data structures
28+ - How crossrelease works
29+
30+ (*) Optimizations
31+
32+ - Avoid duplication
33+ - Lockless for hot paths
34+
35+ (*) APPENDIX A: What lockdep does to work aggresively
36+
37+ (*) APPENDIX B: How to avoid adding false dependencies
38+
39+
40+==========
41+Background
42+==========
43+
44+What causes deadlock
45+--------------------
46+
47+A deadlock occurs when a context is waiting for an event to happen,
48+which is impossible because another (or the) context who can trigger the
49+event is also waiting for another (or the) event to happen, which is
50+also impossible due to the same reason.
51+
52+For example:
53+
54+ A context going to trigger event C is waiting for event A to happen.
55+ A context going to trigger event A is waiting for event B to happen.
56+ A context going to trigger event B is waiting for event C to happen.
57+
58+A deadlock occurs when these three wait operations run at the same time,
59+because event C cannot be triggered if event A does not happen, which in
60+turn cannot be triggered if event B does not happen, which in turn
61+cannot be triggered if event C does not happen. After all, no event can
62+be triggered since any of them never meets its condition to wake up.
63+
64+A dependency might exist between two waiters and a deadlock might happen
65+due to an incorrect releationship between dependencies. Thus, we must
66+define what a dependency is first. A dependency exists between them if:
67+
68+ 1. There are two waiters waiting for each event at a given time.
69+ 2. The only way to wake up each waiter is to trigger its event.
70+ 3. Whether one can be woken up depends on whether the other can.
71+
72+Each wait in the example creates its dependency like:
73+
74+ Event C depends on event A.
75+ Event A depends on event B.
76+ Event B depends on event C.
77+
78+ NOTE: Precisely speaking, a dependency is one between whether a
79+ waiter for an event can be woken up and whether another waiter for
80+ another event can be woken up. However from now on, we will describe
81+ a dependency as if it's one between an event and another event for
82+ simplicity.
83+
84+And they form circular dependencies like:
85+
86+ -> C -> A -> B -
87+ / \
88+ \ /
89+ ----------------
90+
91+ where 'A -> B' means that event A depends on event B.
92+
93+Such circular dependencies lead to a deadlock since no waiter can meet
94+its condition to wake up as described.
95+
96+CONCLUSION
97+
98+Circular dependencies cause a deadlock.
99+
100+
101+How lockdep works
102+-----------------
103+
104+Lockdep tries to detect a deadlock by checking dependencies created by
105+lock operations, acquire and release. Waiting for a lock corresponds to
106+waiting for an event, and releasing a lock corresponds to triggering an
107+event in the previous section.
108+
109+In short, lockdep does:
110+
111+ 1. Detect a new dependency.
112+ 2. Add the dependency into a global graph.
113+ 3. Check if that makes dependencies circular.
114+ 4. Report a deadlock or its possibility if so.
115+
116+For example, consider a graph built by lockdep that looks like:
117+
118+ A -> B -
119+ \
120+ -> E
121+ /
122+ C -> D -
123+
124+ where A, B,..., E are different lock classes.
125+
126+Lockdep will add a dependency into the graph on detection of a new
127+dependency. For example, it will add a dependency 'E -> C' when a new
128+dependency between lock E and lock C is detected. Then the graph will be:
129+
130+ A -> B -
131+ \
132+ -> E -
133+ / \
134+ -> C -> D - \
135+ / /
136+ \ /
137+ ------------------
138+
139+ where A, B,..., E are different lock classes.
140+
141+This graph contains a subgraph which demonstrates circular dependencies:
142+
143+ -> E -
144+ / \
145+ -> C -> D - \
146+ / /
147+ \ /
148+ ------------------
149+
150+ where C, D and E are different lock classes.
151+
152+This is the condition under which a deadlock might occur. Lockdep
153+reports it on detection after adding a new dependency. This is the way
154+how lockdep works.
155+
156+CONCLUSION
157+
158+Lockdep detects a deadlock or its possibility by checking if circular
159+dependencies were created after adding each new dependency.
160+
161+
162+==========
163+Limitation
164+==========
165+
166+Limit lockdep
167+-------------
168+
169+Limiting lockdep to work on only typical locks e.g. spin locks and
170+mutexes, which are released within the acquire context, the
171+implementation becomes simple but its capacity for detection becomes
172+limited. Let's check pros and cons in next section.
173+
174+
175+Pros from the limitation
176+------------------------
177+
178+Given the limitation, when acquiring a lock, locks in a held_locks
179+cannot be released if the context cannot acquire it so has to wait to
180+acquire it, which means all waiters for the locks in the held_locks are
181+stuck. It's an exact case to create dependencies between each lock in
182+the held_locks and the lock to acquire.
183+
184+For example:
185+
186+ CONTEXT X
187+ ---------
188+ acquire A
189+ acquire B /* Add a dependency 'A -> B' */
190+ release B
191+ release A
192+
193+ where A and B are different lock classes.
194+
195+When acquiring lock A, the held_locks of CONTEXT X is empty thus no
196+dependency is added. But when acquiring lock B, lockdep detects and adds
197+a new dependency 'A -> B' between lock A in the held_locks and lock B.
198+They can be simply added whenever acquiring each lock.
199+
200+And data required by lockdep exists in a local structure, held_locks
201+embedded in task_struct. Forcing to access the data within the context,
202+lockdep can avoid racy problems without explicit locks while handling
203+the local data.
204+
205+Lastly, lockdep only needs to keep locks currently being held, to build
206+a dependency graph. However, relaxing the limitation, it needs to keep
207+even locks already released, because a decision whether they created
208+dependencies might be long-deferred.
209+
210+To sum up, we can expect several advantages from the limitation:
211+
212+ 1. Lockdep can easily identify a dependency when acquiring a lock.
213+ 2. Races are avoidable while accessing local locks in a held_locks.
214+ 3. Lockdep only needs to keep locks currently being held.
215+
216+CONCLUSION
217+
218+Given the limitation, the implementation becomes simple and efficient.
219+
220+
221+Cons from the limitation
222+------------------------
223+
224+Given the limitation, lockdep is applicable only to typical locks. For
225+example, page locks for page access or completions for synchronization
226+cannot work with lockdep.
227+
228+Can we detect deadlocks below, under the limitation?
229+
230+Example 1:
231+
232+ CONTEXT X CONTEXT Y CONTEXT Z
233+ --------- --------- ----------
234+ mutex_lock A
235+ lock_page B
236+ lock_page B
237+ mutex_lock A /* DEADLOCK */
238+ unlock_page B held by X
239+ unlock_page B
240+ mutex_unlock A
241+ mutex_unlock A
242+
243+ where A and B are different lock classes.
244+
245+No, we cannot.
246+
247+Example 2:
248+
249+ CONTEXT X CONTEXT Y
250+ --------- ---------
251+ mutex_lock A
252+ mutex_lock A
253+ wait_for_complete B /* DEADLOCK */
254+ complete B
255+ mutex_unlock A
256+ mutex_unlock A
257+
258+ where A is a lock class and B is a completion variable.
259+
260+No, we cannot.
261+
262+CONCLUSION
263+
264+Given the limitation, lockdep cannot detect a deadlock or its
265+possibility caused by page locks or completions.
266+
267+
268+Relax the limitation
269+--------------------
270+
271+Under the limitation, things to create dependencies are limited to
272+typical locks. However, synchronization primitives like page locks and
273+completions, which are allowed to be released in any context, also
274+create dependencies and can cause a deadlock. So lockdep should track
275+these locks to do a better job. We have to relax the limitation for
276+these locks to work with lockdep.
277+
278+Detecting dependencies is very important for lockdep to work because
279+adding a dependency means adding an opportunity to check whether it
280+causes a deadlock. The more lockdep adds dependencies, the more it
281+thoroughly works. Thus Lockdep has to do its best to detect and add as
282+many true dependencies into a graph as possible.
283+
284+For example, considering only typical locks, lockdep builds a graph like:
285+
286+ A -> B -
287+ \
288+ -> E
289+ /
290+ C -> D -
291+
292+ where A, B,..., E are different lock classes.
293+
294+On the other hand, under the relaxation, additional dependencies might
295+be created and added. Assuming additional 'FX -> C' and 'E -> GX' are
296+added thanks to the relaxation, the graph will be:
297+
298+ A -> B -
299+ \
300+ -> E -> GX
301+ /
302+ FX -> C -> D -
303+
304+ where A, B,..., E, FX and GX are different lock classes, and a suffix
305+ 'X' is added on non-typical locks.
306+
307+The latter graph gives us more chances to check circular dependencies
308+than the former. However, it might suffer performance degradation since
309+relaxing the limitation, with which design and implementation of lockdep
310+can be efficient, might introduce inefficiency inevitably. So lockdep
311+should provide two options, strong detection and efficient detection.
312+
313+Choosing efficient detection:
314+
315+ Lockdep works with only locks restricted to be released within the
316+ acquire context. However, lockdep works efficiently.
317+
318+Choosing strong detection:
319+
320+ Lockdep works with all synchronization primitives. However, lockdep
321+ suffers performance degradation.
322+
323+CONCLUSION
324+
325+Relaxing the limitation, lockdep can add additional dependencies giving
326+additional opportunities to check circular dependencies.
327+
328+
329+============
330+Crossrelease
331+============
332+
333+Introduce crossrelease
334+----------------------
335+
336+In order to allow lockdep to handle additional dependencies by what
337+might be released in any context, namely 'crosslock', we have to be able
338+to identify those created by crosslocks. The proposed 'crossrelease'
339+feature provoides a way to do that.
340+
341+Crossrelease feature has to do:
342+
343+ 1. Identify dependencies created by crosslocks.
344+ 2. Add the dependencies into a dependency graph.
345+
346+That's all. Once a meaningful dependency is added into graph, then
347+lockdep would work with the graph as it did. The most important thing
348+crossrelease feature has to do is to correctly identify and add true
349+dependencies into the global graph.
350+
351+A dependency e.g. 'A -> B' can be identified only in the A's release
352+context because a decision required to identify the dependency can be
353+made only in the release context. That is to decide whether A can be
354+released so that a waiter for A can be woken up. It cannot be made in
355+other than the A's release context.
356+
357+It's no matter for typical locks because each acquire context is same as
358+its release context, thus lockdep can decide whether a lock can be
359+released in the acquire context. However for crosslocks, lockdep cannot
360+make the decision in the acquire context but has to wait until the
361+release context is identified.
362+
363+Therefore, deadlocks by crosslocks cannot be detected just when it
364+happens, because those cannot be identified until the crosslocks are
365+released. However, deadlock possibilities can be detected and it's very
366+worth. See 'APPENDIX A' section to check why.
367+
368+CONCLUSION
369+
370+Using crossrelease feature, lockdep can work with what might be released
371+in any context, namely crosslock.
372+
373+
374+Introduce commit
375+----------------
376+
377+Since crossrelease defers the work adding true dependencies of
378+crosslocks until they are actually released, crossrelease has to queue
379+all acquisitions which might create dependencies with the crosslocks.
380+Then it identifies dependencies using the queued data in batches at a
381+proper time. We call it 'commit'.
382+
383+There are four types of dependencies:
384+
385+1. TT type: 'typical lock A -> typical lock B'
386+
387+ Just when acquiring B, lockdep can see it's in the A's release
388+ context. So the dependency between A and B can be identified
389+ immediately. Commit is unnecessary.
390+
391+2. TC type: 'typical lock A -> crosslock BX'
392+
393+ Just when acquiring BX, lockdep can see it's in the A's release
394+ context. So the dependency between A and BX can be identified
395+ immediately. Commit is unnecessary, too.
396+
397+3. CT type: 'crosslock AX -> typical lock B'
398+
399+ When acquiring B, lockdep cannot identify the dependency because
400+ there's no way to know if it's in the AX's release context. It has
401+ to wait until the decision can be made. Commit is necessary.
402+
403+4. CC type: 'crosslock AX -> crosslock BX'
404+
405+ When acquiring BX, lockdep cannot identify the dependency because
406+ there's no way to know if it's in the AX's release context. It has
407+ to wait until the decision can be made. Commit is necessary.
408+ But, handling CC type is not implemented yet. It's a future work.
409+
410+Lockdep can work without commit for typical locks, but commit step is
411+necessary once crosslocks are involved. Introducing commit, lockdep
412+performs three steps. What lockdep does in each step is:
413+
414+1. Acquisition: For typical locks, lockdep does what it originally did
415+ and queues the lock so that CT type dependencies can be checked using
416+ it at the commit step. For crosslocks, it saves data which will be
417+ used at the commit step and increases a reference count for it.
418+
419+2. Commit: No action is reauired for typical locks. For crosslocks,
420+ lockdep adds CT type dependencies using the data saved at the
421+ acquisition step.
422+
423+3. Release: No changes are required for typical locks. When a crosslock
424+ is released, it decreases a reference count for it.
425+
426+CONCLUSION
427+
428+Crossrelease introduces commit step to handle dependencies of crosslocks
429+in batches at a proper time.
430+
431+
432+==============
433+Implementation
434+==============
435+
436+Data structures
437+---------------
438+
439+Crossrelease introduces two main data structures.
440+
441+1. hist_lock
442+
443+ This is an array embedded in task_struct, for keeping lock history so
444+ that dependencies can be added using them at the commit step. Since
445+ it's local data, it can be accessed locklessly in the owner context.
446+ The array is filled at the acquisition step and consumed at the
447+ commit step. And it's managed in circular manner.
448+
449+2. cross_lock
450+
451+ One per lockdep_map exists. This is for keeping data of crosslocks
452+ and used at the commit step.
453+
454+
455+How crossrelease works
456+----------------------
457+
458+It's the key of how crossrelease works, to defer necessary works to an
459+appropriate point in time and perform in at once at the commit step.
460+Let's take a look with examples step by step, starting from how lockdep
461+works without crossrelease for typical locks.
462+
463+ acquire A /* Push A onto held_locks */
464+ acquire B /* Push B onto held_locks and add 'A -> B' */
465+ acquire C /* Push C onto held_locks and add 'B -> C' */
466+ release C /* Pop C from held_locks */
467+ release B /* Pop B from held_locks */
468+ release A /* Pop A from held_locks */
469+
470+ where A, B and C are different lock classes.
471+
472+ NOTE: This document assumes that readers already understand how
473+ lockdep works without crossrelease thus omits details. But there's
474+ one thing to note. Lockdep pretends to pop a lock from held_locks
475+ when releasing it. But it's subtly different from the original pop
476+ operation because lockdep allows other than the top to be poped.
477+
478+In this case, lockdep adds 'the top of held_locks -> the lock to acquire'
479+dependency every time acquiring a lock.
480+
481+After adding 'A -> B', a dependency graph will be:
482+
483+ A -> B
484+
485+ where A and B are different lock classes.
486+
487+And after adding 'B -> C', the graph will be:
488+
489+ A -> B -> C
490+
491+ where A, B and C are different lock classes.
492+
493+Let's performs commit step even for typical locks to add dependencies.
494+Of course, commit step is not necessary for them, however, it would work
495+well because this is a more general way.
496+
497+ acquire A
498+ /*
499+ * Queue A into hist_locks
500+ *
501+ * In hist_locks: A
502+ * In graph: Empty
503+ */
504+
505+ acquire B
506+ /*
507+ * Queue B into hist_locks
508+ *
509+ * In hist_locks: A, B
510+ * In graph: Empty
511+ */
512+
513+ acquire C
514+ /*
515+ * Queue C into hist_locks
516+ *
517+ * In hist_locks: A, B, C
518+ * In graph: Empty
519+ */
520+
521+ commit C
522+ /*
523+ * Add 'C -> ?'
524+ * Answer the following to decide '?'
525+ * What has been queued since acquire C: Nothing
526+ *
527+ * In hist_locks: A, B, C
528+ * In graph: Empty
529+ */
530+
531+ release C
532+
533+ commit B
534+ /*
535+ * Add 'B -> ?'
536+ * Answer the following to decide '?'
537+ * What has been queued since acquire B: C
538+ *
539+ * In hist_locks: A, B, C
540+ * In graph: 'B -> C'
541+ */
542+
543+ release B
544+
545+ commit A
546+ /*
547+ * Add 'A -> ?'
548+ * Answer the following to decide '?'
549+ * What has been queued since acquire A: B, C
550+ *
551+ * In hist_locks: A, B, C
552+ * In graph: 'B -> C', 'A -> B', 'A -> C'
553+ */
554+
555+ release A
556+
557+ where A, B and C are different lock classes.
558+
559+In this case, dependencies are added at the commit step as described.
560+
561+After commits for A, B and C, the graph will be:
562+
563+ A -> B -> C
564+
565+ where A, B and C are different lock classes.
566+
567+ NOTE: A dependency 'A -> C' is optimized out.
568+
569+We can see the former graph built without commit step is same as the
570+latter graph built using commit steps. Of course the former way leads to
571+earlier finish for building the graph, which means we can detect a
572+deadlock or its possibility sooner. So the former way would be prefered
573+when possible. But we cannot avoid using the latter way for crosslocks.
574+
575+Let's look at how commit steps work for crosslocks. In this case, the
576+commit step is performed only on crosslock AX as real. And it assumes
577+that the AX release context is different from the AX acquire context.
578+
579+ BX RELEASE CONTEXT BX ACQUIRE CONTEXT
580+ ------------------ ------------------
581+ acquire A
582+ /*
583+ * Push A onto held_locks
584+ * Queue A into hist_locks
585+ *
586+ * In held_locks: A
587+ * In hist_locks: A
588+ * In graph: Empty
589+ */
590+
591+ acquire BX
592+ /*
593+ * Add 'the top of held_locks -> BX'
594+ *
595+ * In held_locks: A
596+ * In hist_locks: A
597+ * In graph: 'A -> BX'
598+ */
599+
600+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
601+ It must be guaranteed that the following operations are seen after
602+ acquiring BX globally. It can be done by things like barrier.
603+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
604+
605+ acquire C
606+ /*
607+ * Push C onto held_locks
608+ * Queue C into hist_locks
609+ *
610+ * In held_locks: C
611+ * In hist_locks: C
612+ * In graph: 'A -> BX'
613+ */
614+
615+ release C
616+ /*
617+ * Pop C from held_locks
618+ *
619+ * In held_locks: Empty
620+ * In hist_locks: C
621+ * In graph: 'A -> BX'
622+ */
623+ acquire D
624+ /*
625+ * Push D onto held_locks
626+ * Queue D into hist_locks
627+ * Add 'the top of held_locks -> D'
628+ *
629+ * In held_locks: A, D
630+ * In hist_locks: A, D
631+ * In graph: 'A -> BX', 'A -> D'
632+ */
633+ acquire E
634+ /*
635+ * Push E onto held_locks
636+ * Queue E into hist_locks
637+ *
638+ * In held_locks: E
639+ * In hist_locks: C, E
640+ * In graph: 'A -> BX', 'A -> D'
641+ */
642+
643+ release E
644+ /*
645+ * Pop E from held_locks
646+ *
647+ * In held_locks: Empty
648+ * In hist_locks: D, E
649+ * In graph: 'A -> BX', 'A -> D'
650+ */
651+ release D
652+ /*
653+ * Pop D from held_locks
654+ *
655+ * In held_locks: A
656+ * In hist_locks: A, D
657+ * In graph: 'A -> BX', 'A -> D'
658+ */
659+ commit BX
660+ /*
661+ * Add 'BX -> ?'
662+ * What has been queued since acquire BX: C, E
663+ *
664+ * In held_locks: Empty
665+ * In hist_locks: D, E
666+ * In graph: 'A -> BX', 'A -> D',
667+ * 'BX -> C', 'BX -> E'
668+ */
669+
670+ release BX
671+ /*
672+ * In held_locks: Empty
673+ * In hist_locks: D, E
674+ * In graph: 'A -> BX', 'A -> D',
675+ * 'BX -> C', 'BX -> E'
676+ */
677+ release A
678+ /*
679+ * Pop A from held_locks
680+ *
681+ * In held_locks: Empty
682+ * In hist_locks: A, D
683+ * In graph: 'A -> BX', 'A -> D',
684+ * 'BX -> C', 'BX -> E'
685+ */
686+
687+ where A, BX, C,..., E are different lock classes, and a suffix 'X' is
688+ added on crosslocks.
689+
690+Crossrelease considers all acquisitions after acqiuring BX are
691+candidates which might create dependencies with BX. True dependencies
692+will be determined when identifying the release context of BX. Meanwhile,
693+all typical locks are queued so that they can be used at the commit step.
694+And then two dependencies 'BX -> C' and 'BX -> E' are added at the
695+commit step when identifying the release context.
696+
697+The final graph will be, with crossrelease:
698+
699+ -> C
700+ /
701+ -> BX -
702+ / \
703+ A - -> E
704+ \
705+ -> D
706+
707+ where A, BX, C,..., E are different lock classes, and a suffix 'X' is
708+ added on crosslocks.
709+
710+However, the final graph will be, without crossrelease:
711+
712+ A -> D
713+
714+ where A and D are different lock classes.
715+
716+The former graph has three more dependencies, 'A -> BX', 'BX -> C' and
717+'BX -> E' giving additional opportunities to check if they cause
718+deadlocks. This way lockdep can detect a deadlock or its possibility
719+caused by crosslocks.
720+
721+CONCLUSION
722+
723+We checked how crossrelease works with several examples.
724+
725+
726+=============
727+Optimizations
728+=============
729+
730+Avoid duplication
731+-----------------
732+
733+Crossrelease feature uses a cache like what lockdep already uses for
734+dependency chains, but this time it's for caching CT type dependencies.
735+Once that dependency is cached, the same will never be added again.
736+
737+
738+Lockless for hot paths
739+----------------------
740+
741+To keep all locks for later use at the commit step, crossrelease adopts
742+a local array embedded in task_struct, which makes access to the data
743+lockless by forcing it to happen only within the owner context. It's
744+like how lockdep handles held_locks. Lockless implmentation is important
745+since typical locks are very frequently acquired and released.
746+
747+
748+=================================================
749+APPENDIX A: What lockdep does to work aggresively
750+=================================================
751+
752+A deadlock actually occurs when all wait operations creating circular
753+dependencies run at the same time. Even though they don't, a potential
754+deadlock exists if the problematic dependencies exist. Thus it's
755+meaningful to detect not only an actual deadlock but also its potential
756+possibility. The latter is rather valuable. When a deadlock occurs
757+actually, we can identify what happens in the system by some means or
758+other even without lockdep. However, there's no way to detect possiblity
759+without lockdep unless the whole code is parsed in head. It's terrible.
760+Lockdep does the both, and crossrelease only focuses on the latter.
761+
762+Whether or not a deadlock actually occurs depends on several factors.
763+For example, what order contexts are switched in is a factor. Assuming
764+circular dependencies exist, a deadlock would occur when contexts are
765+switched so that all wait operations creating the dependencies run
766+simultaneously. Thus to detect a deadlock possibility even in the case
767+that it has not occured yet, lockdep should consider all possible
768+combinations of dependencies, trying to:
769+
770+1. Use a global dependency graph.
771+
772+ Lockdep combines all dependencies into one global graph and uses them,
773+ regardless of which context generates them or what order contexts are
774+ switched in. Aggregated dependencies are only considered so they are
775+ prone to be circular if a problem exists.
776+
777+2. Check dependencies between classes instead of instances.
778+
779+ What actually causes a deadlock are instances of lock. However,
780+ lockdep checks dependencies between classes instead of instances.
781+ This way lockdep can detect a deadlock which has not happened but
782+ might happen in future by others but the same class.
783+
784+3. Assume all acquisitions lead to waiting.
785+
786+ Although locks might be acquired without waiting which is essential
787+ to create dependencies, lockdep assumes all acquisitions lead to
788+ waiting since it might be true some time or another.
789+
790+CONCLUSION
791+
792+Lockdep detects not only an actual deadlock but also its possibility,
793+and the latter is more valuable.
794+
795+
796+==================================================
797+APPENDIX B: How to avoid adding false dependencies
798+==================================================
799+
800+Remind what a dependency is. A dependency exists if:
801+
802+ 1. There are two waiters waiting for each event at a given time.
803+ 2. The only way to wake up each waiter is to trigger its event.
804+ 3. Whether one can be woken up depends on whether the other can.
805+
806+For example:
807+
808+ acquire A
809+ acquire B /* A dependency 'A -> B' exists */
810+ release B
811+ release A
812+
813+ where A and B are different lock classes.
814+
815+A depedency 'A -> B' exists since:
816+
817+ 1. A waiter for A and a waiter for B might exist when acquiring B.
818+ 2. Only way to wake up each is to release what it waits for.
819+ 3. Whether the waiter for A can be woken up depends on whether the
820+ other can. IOW, TASK X cannot release A if it fails to acquire B.
821+
822+For another example:
823+
824+ TASK X TASK Y
825+ ------ ------
826+ acquire AX
827+ acquire B /* A dependency 'AX -> B' exists */
828+ release B
829+ release AX held by Y
830+
831+ where AX and B are different lock classes, and a suffix 'X' is added
832+ on crosslocks.
833+
834+Even in this case involving crosslocks, the same rule can be applied. A
835+depedency 'AX -> B' exists since:
836+
837+ 1. A waiter for AX and a waiter for B might exist when acquiring B.
838+ 2. Only way to wake up each is to release what it waits for.
839+ 3. Whether the waiter for AX can be woken up depends on whether the
840+ other can. IOW, TASK X cannot release AX if it fails to acquire B.
841+
842+Let's take a look at more complicated example:
843+
844+ TASK X TASK Y
845+ ------ ------
846+ acquire B
847+ release B
848+ fork Y
849+ acquire AX
850+ acquire C /* A dependency 'AX -> C' exists */
851+ release C
852+ release AX held by Y
853+
854+ where AX, B and C are different lock classes, and a suffix 'X' is
855+ added on crosslocks.
856+
857+Does a dependency 'AX -> B' exist? Nope.
858+
859+Two waiters are essential to create a dependency. However, waiters for
860+AX and B to create 'AX -> B' cannot exist at the same time in this
861+example. Thus the dependency 'AX -> B' cannot be created.
862+
863+It would be ideal if the full set of true ones can be considered. But
864+we can ensure nothing but what actually happened. Relying on what
865+actually happens at runtime, we can anyway add only true ones, though
866+they might be a subset of true ones. It's similar to how lockdep works
867+for typical locks. There might be more true dependencies than what
868+lockdep has detected in runtime. Lockdep has no choice but to rely on
869+what actually happens. Crossrelease also relies on it.
870+
871+CONCLUSION
872+
873+Relying on what actually happens, lockdep can avoid adding false
874+dependencies.
Documentation/locking/rt-mutex-design.txt+105−327
@@ -97,9 +97,9 @@ waiter - A waiter is a struct that is stored on the stack of a blocked · 96 unmodified lines
9797 a process being blocked on the mutex, it is fine to allocate
9898 the waiter on the process's stack (local variable). This
9999 structure holds a pointer to the task, as well as the mutex that
100− the task is blocked on. It also has the plist node structures to
101− place the task in the waiter_list of a mutex as well as the
102− pi_list of a mutex owner task (described below).
100+ the task is blocked on. It also has rbtree node structures to
101+ place the task in the waiters rbtree of a mutex as well as the
102+ pi_waiters rbtree of a mutex owner task (described below).
103103
104104 waiter is sometimes used in reference to the task that is waiting
105105 on a mutex. This is the same as waiter->task.
@@ -179,53 +179,34 @@ again. · 73 unmodified lines
179179 |
180180 F->L5-+
181181
182+If process G has the highest priority in the chain, then all the tasks up
183+the chain (A and B in this example), must have their priorities increased
184+to that of G.
182185
183−Plist
184−-----
185−
186−Before I go further and talk about how the PI chain is stored through lists
187−on both mutexes and processes, I'll explain the plist. This is similar to
188−the struct list_head functionality that is already in the kernel.
189−The implementation of plist is out of scope for this document, but it is
190−very important to understand what it does.
191−
192−There are a few differences between plist and list, the most important one
193−being that plist is a priority sorted linked list. This means that the
194−priorities of the plist are sorted, such that it takes O(1) to retrieve the
195−highest priority item in the list. Obviously this is useful to store processes
196−based on their priorities.
197−
198−Another difference, which is important for implementation, is that, unlike
199−list, the head of the list is a different element than the nodes of a list.
200−So the head of the list is declared as struct plist_head and nodes that will
201−be added to the list are declared as struct plist_node.
202−
203−
204−Mutex Waiter List
186+Mutex Waiters Tree
205187 -----------------
206188
207−Every mutex keeps track of all the waiters that are blocked on itself. The mutex
208−has a plist to store these waiters by priority. This list is protected by
209−a spin lock that is located in the struct of the mutex. This lock is called
210−wait_lock. Since the modification of the waiter list is never done in
211−interrupt context, the wait_lock can be taken without disabling interrupts.
189+Every mutex keeps track of all the waiters that are blocked on itself. The
190+mutex has a rbtree to store these waiters by priority. This tree is protected
191+by a spin lock that is located in the struct of the mutex. This lock is called
192+wait_lock.
212193
213194
214−Task PI List
195+Task PI Tree
215196 ------------
216197
217−To keep track of the PI chains, each process has its own PI list. This is
218−a list of all top waiters of the mutexes that are owned by the process.
219−Note that this list only holds the top waiters and not all waiters that are
198+To keep track of the PI chains, each process has its own PI rbtree. This is
199+a tree of all top waiters of the mutexes that are owned by the process.
200+Note that this tree only holds the top waiters and not all waiters that are
220201 blocked on mutexes owned by the process.
221202
222−The top of the task's PI list is always the highest priority task that
203+The top of the task's PI tree is always the highest priority task that
223204 is waiting on a mutex that is owned by the task. So if the task has
224205 inherited a priority, it will always be the priority of the task that is
225−at the top of this list.
206+at the top of this tree.
226207
227−This list is stored in the task structure of a process as a plist called
228−pi_list. This list is protected by a spin lock also in the task structure,
208+This tree is stored in the task structure of a process as a rbtree called
209+pi_waiters. It is protected by a spin lock also in the task structure,
229210 called pi_lock. This lock may also be taken in interrupt context, so when
230211 locking the pi_lock, interrupts must be disabled.
231212
@@ -312,15 +293,12 @@ Mutex owner and flags · 80 unmodified lines
312293
313294 The mutex structure contains a pointer to the owner of the mutex. If the
314295 mutex is not owned, this owner is set to NULL. Since all architectures
315−have the task structure on at least a four byte alignment (and if this is
316−not true, the rtmutex.c code will be broken!), this allows for the two
317−least significant bits to be used as flags. This part is also described
318−in Documentation/rt-mutex.txt, but will also be briefly described here.
319−
320−Bit 0 is used as the "Pending Owner" flag. This is described later.
321−Bit 1 is used as the "Has Waiters" flags. This is also described later
322− in more detail, but is set whenever there are waiters on a mutex.
296+have the task structure on at least a two byte alignment (and if this is
297+not true, the rtmutex.c code will be broken!), this allows for the least
298+significant bit to be used as a flag. Bit 0 is used as the "Has Waiters"
299+flag. It's set whenever there are waiters on a mutex.
323300
301+See Documentation/locking/rt-mutex.txt for further details.
324302
325303 cmpxchg Tricks
326304 --------------
@@ -359,40 +337,31 @@ Priority adjustments · 32 unmodified lines
359337 --------------------
360338
361339 The implementation of the PI code in rtmutex.c has several places that a
362−process must adjust its priority. With the help of the pi_list of a
340+process must adjust its priority. With the help of the pi_waiters of a
363341 process this is rather easy to know what needs to be adjusted.
364342
365−The functions implementing the task adjustments are rt_mutex_adjust_prio,
366−__rt_mutex_adjust_prio (same as the former, but expects the task pi_lock
367−to already be taken), rt_mutex_getprio, and rt_mutex_setprio.
343+The functions implementing the task adjustments are rt_mutex_adjust_prio
344+and rt_mutex_setprio. rt_mutex_setprio is only used in rt_mutex_adjust_prio.
368345
369−rt_mutex_getprio and rt_mutex_setprio are only used in __rt_mutex_adjust_prio.
346+rt_mutex_adjust_prio examines the priority of the task, and the highest
347+priority process that is waiting any of mutexes owned by the task. Since
348+the pi_waiters of a task holds an order by priority of all the top waiters
349+of all the mutexes that the task owns, we simply need to compare the top
350+pi waiter to its own normal/deadline priority and take the higher one.
351+Then rt_mutex_setprio is called to adjust the priority of the task to the
352+new priority. Note that rt_mutex_setprio is defined in kernel/sched/core.c
353+to implement the actual change in priority.
370354
371−rt_mutex_getprio returns the priority that the task should have. Either the
372−task's own normal priority, or if a process of a higher priority is waiting on
373−a mutex owned by the task, then that higher priority should be returned.
374−Since the pi_list of a task holds an order by priority list of all the top
375−waiters of all the mutexes that the task owns, rt_mutex_getprio simply needs
376−to compare the top pi waiter to its own normal priority, and return the higher
377−priority back.
355+(Note: For the "prio" field in task_struct, the lower the number, the
356+ higher the priority. A "prio" of 5 is of higher priority than a
357+ "prio" of 10.)
378358
379−(Note: if looking at the code, you will notice that the lower number of
380− prio is returned. This is because the prio field in the task structure
381− is an inverse order of the actual priority. So a "prio" of 5 is
382− of higher priority than a "prio" of 10.)
383−
384−__rt_mutex_adjust_prio examines the result of rt_mutex_getprio, and if the
385−result does not equal the task's current priority, then rt_mutex_setprio
386−is called to adjust the priority of the task to the new priority.
387−Note that rt_mutex_setprio is defined in kernel/sched/core.c to implement the
388−actual change in priority.
389−
390−It is interesting to note that __rt_mutex_adjust_prio can either increase
359+It is interesting to note that rt_mutex_adjust_prio can either increase
391360 or decrease the priority of the task. In the case that a higher priority
392−process has just blocked on a mutex owned by the task, __rt_mutex_adjust_prio
361+process has just blocked on a mutex owned by the task, rt_mutex_adjust_prio
393362 would increase/boost the task's priority. But if a higher priority task
394363 were for some reason to leave the mutex (timeout or signal), this same function
395−would decrease/unboost the priority of the task. That is because the pi_list
364+would decrease/unboost the priority of the task. That is because the pi_waiters
396365 always contains the highest priority task that is waiting on a mutex owned
397366 by the task, so we only need to compare the priority of that top pi waiter
398367 to the normal priority of the given task.
@@ -412,9 +381,10 @@ priorities. · 13 unmodified lines
412381
413382 rt_mutex_adjust_prio_chain is called with a task to be checked for PI
414383 (de)boosting (the owner of a mutex that a process is blocking on), a flag to
415−check for deadlocking, the mutex that the task owns, and a pointer to a waiter
384+check for deadlocking, the mutex that the task owns, a pointer to a waiter
416385 that is the process's waiter struct that is blocked on the mutex (although this
417−parameter may be NULL for deboosting).
386+parameter may be NULL for deboosting), a pointer to the mutex on which the task
387+is blocked, and a top_task as the top waiter of the mutex.
418388
419389 For this explanation, I will not mention deadlock detection. This explanation
420390 will try to stay at a high level.
@@ -424,133 +394,14 @@ that the state of the owner and lock can change when entered into this function. · 3 unmodified lines
424394
425395 Before this function is called, the task has already had rt_mutex_adjust_prio
426396 performed on it. This means that the task is set to the priority that it
427−should be at, but the plist nodes of the task's waiter have not been updated
428−with the new priorities, and that this task may not be in the proper locations
429−in the pi_lists and wait_lists that the task is blocked on. This function
397+should be at, but the rbtree nodes of the task's waiter have not been updated
398+with the new priorities, and this task may not be in the proper locations
399+in the pi_waiters and waiters trees that the task is blocked on. This function
430400 solves all that.
431401
432−A loop is entered, where task is the owner to be checked for PI changes that
433−was passed by parameter (for the first iteration). The pi_lock of this task is
434−taken to prevent any more changes to the pi_list of the task. This also
435−prevents new tasks from completing the blocking on a mutex that is owned by this
436−task.
437−
438−If the task is not blocked on a mutex then the loop is exited. We are at
439−the top of the PI chain.
440−
441−A check is now done to see if the original waiter (the process that is blocked
442−on the current mutex) is the top pi waiter of the task. That is, is this
443−waiter on the top of the task's pi_list. If it is not, it either means that
444−there is another process higher in priority that is blocked on one of the
445−mutexes that the task owns, or that the waiter has just woken up via a signal
446−or timeout and has left the PI chain. In either case, the loop is exited, since
447−we don't need to do any more changes to the priority of the current task, or any
448−task that owns a mutex that this current task is waiting on. A priority chain
449−walk is only needed when a new top pi waiter is made to a task.
450−
451−The next check sees if the task's waiter plist node has the priority equal to
452−the priority the task is set at. If they are equal, then we are done with
453−the loop. Remember that the function started with the priority of the
454−task adjusted, but the plist nodes that hold the task in other processes
455−pi_lists have not been adjusted.
456−
457−Next, we look at the mutex that the task is blocked on. The mutex's wait_lock
458−is taken. This is done by a spin_trylock, because the locking order of the
459−pi_lock and wait_lock goes in the opposite direction. If we fail to grab the
460−lock, the pi_lock is released, and we restart the loop.
461−
462−Now that we have both the pi_lock of the task as well as the wait_lock of
463−the mutex the task is blocked on, we update the task's waiter's plist node
464−that is located on the mutex's wait_list.
465−
466−Now we release the pi_lock of the task.
467−
468−Next the owner of the mutex has its pi_lock taken, so we can update the
469−task's entry in the owner's pi_list. If the task is the highest priority
470−process on the mutex's wait_list, then we remove the previous top waiter
471−from the owner's pi_list, and replace it with the task.
472−
473−Note: It is possible that the task was the current top waiter on the mutex,
474− in which case the task is not yet on the pi_list of the waiter. This
475− is OK, since plist_del does nothing if the plist node is not on any
476− list.
477−
478−If the task was not the top waiter of the mutex, but it was before we
479−did the priority updates, that means we are deboosting/lowering the
480−task. In this case, the task is removed from the pi_list of the owner,
481−and the new top waiter is added.
482−
483−Lastly, we unlock both the pi_lock of the task, as well as the mutex's
484−wait_lock, and continue the loop again. On the next iteration of the
485−loop, the previous owner of the mutex will be the task that will be
486−processed.
487−
488−Note: One might think that the owner of this mutex might have changed
489− since we just grab the mutex's wait_lock. And one could be right.
490− The important thing to remember is that the owner could not have
491− become the task that is being processed in the PI chain, since
492− we have taken that task's pi_lock at the beginning of the loop.
493− So as long as there is an owner of this mutex that is not the same
494− process as the tasked being worked on, we are OK.
495−
496− Looking closely at the code, one might be confused. The check for the
497− end of the PI chain is when the task isn't blocked on anything or the
498− task's waiter structure "task" element is NULL. This check is
499− protected only by the task's pi_lock. But the code to unlock the mutex
500− sets the task's waiter structure "task" element to NULL with only
501− the protection of the mutex's wait_lock, which was not taken yet.
502− Isn't this a race condition if the task becomes the new owner?
503−
504− The answer is No! The trick is the spin_trylock of the mutex's
505− wait_lock. If we fail that lock, we release the pi_lock of the
506− task and continue the loop, doing the end of PI chain check again.
507−
508− In the code to release the lock, the wait_lock of the mutex is held
509− the entire time, and it is not let go when we grab the pi_lock of the
510− new owner of the mutex. So if the switch of a new owner were to happen
511− after the check for end of the PI chain and the grabbing of the
512− wait_lock, the unlocking code would spin on the new owner's pi_lock
513− but never give up the wait_lock. So the PI chain loop is guaranteed to
514− fail the spin_trylock on the wait_lock, release the pi_lock, and
515− try again.
516−
517− If you don't quite understand the above, that's OK. You don't have to,
518− unless you really want to make a proof out of it ;)
519−
520−
521−Pending Owners and Lock stealing
522−--------------------------------
523−
524−One of the flags in the owner field of the mutex structure is "Pending Owner".
525−What this means is that an owner was chosen by the process releasing the
526−mutex, but that owner has yet to wake up and actually take the mutex.
527−
528−Why is this important? Why can't we just give the mutex to another process
529−and be done with it?
530−
531−The PI code is to help with real-time processes, and to let the highest
532−priority process run as long as possible with little latencies and delays.
533−If a high priority process owns a mutex that a lower priority process is
534−blocked on, when the mutex is released it would be given to the lower priority
535−process. What if the higher priority process wants to take that mutex again.
536−The high priority process would fail to take that mutex that it just gave up
537−and it would need to boost the lower priority process to run with full
538−latency of that critical section (since the low priority process just entered
539−it).
540−
541−There's no reason a high priority process that gives up a mutex should be
542−penalized if it tries to take that mutex again. If the new owner of the
543−mutex has not woken up yet, there's no reason that the higher priority process
544−could not take that mutex away.
545−
546−To solve this, we introduced Pending Ownership and Lock Stealing. When a
547−new process is given a mutex that it was blocked on, it is only given
548−pending ownership. This means that it's the new owner, unless a higher
549−priority process comes in and tries to grab that mutex. If a higher priority
550−process does come along and wants that mutex, we let the higher priority
551−process "steal" the mutex from the pending owner (only if it is still pending)
552−and continue with the mutex.
553−
402+The main operation of this function is summarized by Thomas Gleixner in
403+rtmutex.c. See the 'Chain walk basics and protection scope' comment for further
404+details.
554405
555406 Taking of a mutex (The walk through)
556407 ------------------------------------
@@ -563,14 +414,14 @@ done when we have CMPXCHG enabled (otherwise the fast taking automatically · 6 unmodified lines
563414 fails). Only when the owner field of the mutex is NULL can the lock be
564415 taken with the CMPXCHG and nothing else needs to be done.
565416
566−If there is contention on the lock, whether it is owned or pending owner
567−we go about the slow path (rt_mutex_slowlock).
417+If there is contention on the lock, we go about the slow path
418+(rt_mutex_slowlock).
568419
569420 The slow path function is where the task's waiter structure is created on
570421 the stack. This is because the waiter structure is only needed for the
571422 scope of this function. The waiter structure holds the nodes to store
572−the task on the wait_list of the mutex, and if need be, the pi_list of
573−the owner.
423+the task on the waiters tree of the mutex, and if need be, the pi_waiters
424+tree of the owner.
574425
575426 The wait_lock of the mutex is taken since the slow path of unlocking the
576427 mutex also takes this lock.
@@ -581,102 +432,45 @@ contention). · 4 unmodified lines
581432
582433 try_to_take_rt_mutex is used every time the task tries to grab a mutex in the
583434 slow path. The first thing that is done here is an atomic setting of
584−the "Has Waiters" flag of the mutex's owner field. Yes, this could really
585−be false, because if the mutex has no owner, there are no waiters and
586−the current task also won't have any waiters. But we don't have the lock
587−yet, so we assume we are going to be a waiter. The reason for this is to
588−play nice for those architectures that do have CMPXCHG. By setting this flag
589−now, the owner of the mutex can't release the mutex without going into the
590−slow unlock path, and it would then need to grab the wait_lock, which this
591−code currently holds. So setting the "Has Waiters" flag forces the owner
592−to synchronize with this code.
593−
594−Now that we know that we can't have any races with the owner releasing the
595−mutex, we check to see if we can take the ownership. This is done if the
596−mutex doesn't have a owner, or if we can steal the mutex from a pending
597−owner. Let's look at the situations we have here.
598−
599− 1) Has owner that is pending
600− ----------------------------
601−
602− The mutex has a owner, but it hasn't woken up and the mutex flag
603− "Pending Owner" is set. The first check is to see if the owner isn't the
604− current task. This is because this function is also used for the pending
605− owner to grab the mutex. When a pending owner wakes up, it checks to see
606− if it can take the mutex, and this is done if the owner is already set to
607− itself. If so, we succeed and leave the function, clearing the "Pending
608− Owner" bit.
609−
610− If the pending owner is not current, we check to see if the current priority is
611− higher than the pending owner. If not, we fail the function and return.
612−
613− There's also something special about a pending owner. That is a pending owner
614− is never blocked on a mutex. So there is no PI chain to worry about. It also
615− means that if the mutex doesn't have any waiters, there's no accounting needed
616− to update the pending owner's pi_list, since we only worry about processes
617− blocked on the current mutex.
618−
619− If there are waiters on this mutex, and we just stole the ownership, we need
620− to take the top waiter, remove it from the pi_list of the pending owner, and
621− add it to the current pi_list. Note that at this moment, the pending owner
622− is no longer on the list of waiters. This is fine, since the pending owner
623− would add itself back when it realizes that it had the ownership stolen
624− from itself. When the pending owner tries to grab the mutex, it will fail
625− in try_to_take_rt_mutex if the owner field points to another process.
626−
627− 2) No owner
628− -----------
629−
630− If there is no owner (or we successfully stole the lock), we set the owner
631− of the mutex to current, and set the flag of "Has Waiters" if the current
632− mutex actually has waiters, or we clear the flag if it doesn't. See, it was
633− OK that we set that flag early, since now it is cleared.
634−
635− 3) Failed to grab ownership
636− ---------------------------
637−
638− The most interesting case is when we fail to take ownership. This means that
639− there exists an owner, or there's a pending owner with equal or higher
640− priority than the current task.
641−
642−We'll continue on the failed case.
643−
644−If the mutex has a timeout, we set up a timer to go off to break us out
645−of this mutex if we failed to get it after a specified amount of time.
646−
647−Now we enter a loop that will continue to try to take ownership of the mutex, or
648−fail from a timeout or signal.
649−
650−Once again we try to take the mutex. This will usually fail the first time
651−in the loop, since it had just failed to get the mutex. But the second time
652−in the loop, this would likely succeed, since the task would likely be
653−the pending owner.
654−
655−If the mutex is TASK_INTERRUPTIBLE a check for signals and timeout is done
656−here.
657−
658−The waiter structure has a "task" field that points to the task that is blocked
659−on the mutex. This field can be NULL the first time it goes through the loop
660−or if the task is a pending owner and had its mutex stolen. If the "task"
661−field is NULL then we need to set up the accounting for it.
435+the "Has Waiters" flag of the mutex's owner field. By setting this flag
436+now, the current owner of the mutex being contended for can't release the mutex
437+without going into the slow unlock path, and it would then need to grab the
438+wait_lock, which this code currently holds. So setting the "Has Waiters" flag
439+forces the current owner to synchronize with this code.
440+
441+The lock is taken if the following are true:
442+ 1) The lock has no owner
443+ 2) The current task is the highest priority against all other
444+ waiters of the lock
445+
446+If the task succeeds to acquire the lock, then the task is set as the
447+owner of the lock, and if the lock still has waiters, the top_waiter
448+(highest priority task waiting on the lock) is added to this task's
449+pi_waiters tree.
450+
451+If the lock is not taken by try_to_take_rt_mutex(), then the
452+task_blocks_on_rt_mutex() function is called. This will add the task to
453+the lock's waiter tree and propagate the pi chain of the lock as well
454+as the lock's owner's pi_waiters tree. This is described in the next
455+section.
662456
663457 Task blocks on mutex
664458 --------------------
665459
666460 The accounting of a mutex and process is done with the waiter structure of
667461 the process. The "task" field is set to the process, and the "lock" field
668−to the mutex. The plist nodes are initialized to the processes current
669−priority.
462+to the mutex. The rbtree node of waiter are initialized to the processes
463+current priority.
670464
671465 Since the wait_lock was taken at the entry of the slow lock, we can safely
672−add the waiter to the wait_list. If the current process is the highest
673−priority process currently waiting on this mutex, then we remove the
674−previous top waiter process (if it exists) from the pi_list of the owner,
675−and add the current process to that list. Since the pi_list of the owner
466+add the waiter to the task waiter tree. If the current process is the
467+highest priority process currently waiting on this mutex, then we remove the
468+previous top waiter process (if it exists) from the pi_waiters of the owner,
469+and add the current process to that tree. Since the pi_waiter of the owner
676470 has changed, we call rt_mutex_adjust_prio on the owner to see if the owner
677471 should adjust its priority accordingly.
678472
679−If the owner is also blocked on a lock, and had its pi_list changed
473+If the owner is also blocked on a lock, and had its pi_waiters changed
680474 (or deadlock checking is on), we unlock the wait_lock of the mutex and go ahead
681475 and run rt_mutex_adjust_prio_chain on the owner, as described earlier.
682476
@@ -686,30 +480,23 @@ mutex (waiter "task" field is not NULL), then we go to sleep (call schedule). · 3 unmodified lines
686480 Waking up in the loop
687481 ---------------------
688482
689−The schedule can then wake up for a few reasons.
690− 1) we were given pending ownership of the mutex.
691− 2) we received a signal and was TASK_INTERRUPTIBLE
692− 3) we had a timeout and was TASK_INTERRUPTIBLE
483+The task can then wake up for a couple of reasons:
484+ 1) The previous lock owner released the lock, and the task now is top_waiter
485+ 2) we received a signal or timeout
693486
694−In any of these cases, we continue the loop and once again try to grab the
695−ownership of the mutex. If we succeed, we exit the loop, otherwise we continue
696−and on signal and timeout, will exit the loop, or if we had the mutex stolen
697−we just simply add ourselves back on the lists and go back to sleep.
487+In both cases, the task will try again to acquire the lock. If it
488+does, then it will take itself off the waiters tree and set itself back
489+to the TASK_RUNNING state.
698490
699−Note: For various reasons, because of timeout and signals, the steal mutex
700− algorithm needs to be careful. This is because the current process is
701− still on the wait_list. And because of dynamic changing of priorities,
702− especially on SCHED_OTHER tasks, the current process can be the
703− highest priority task on the wait_list.
704−
705−Failed to get mutex on Timeout or Signal
706−----------------------------------------
491+In first case, if the lock was acquired by another task before this task
492+could get the lock, then it will go back to sleep and wait to be woken again.
707493
708−If a timeout or signal occurred, the waiter's "task" field would not be
709−NULL and the task needs to be taken off the wait_list of the mutex and perhaps
710−pi_list of the owner. If this process was a high priority process, then
711−the rt_mutex_adjust_prio_chain needs to be executed again on the owner,
712−but this time it will be lowering the priorities.
494+The second case is only applicable for tasks that are grabbing a mutex
495+that can wake up before getting the lock, either due to a signal or
496+a timeout (i.e. rt_mutex_timed_futex_lock()). When woken, it will try to
497+take the lock again, if it succeeds, then the task will return with the
498+lock held, otherwise it will return with -EINTR if the task was woken
499+by a signal, or -ETIMEDOUT if it timed out.
713500
714501
715502 Unlocking the Mutex
@@ -739,25 +526,12 @@ owner still needs to make this check. If there are no waiters then the mutex · 23 unmodified lines
739526 owner field is set to NULL, the wait_lock is released and nothing more is
740527 needed.
741528
742−If there are waiters, then we need to wake one up and give that waiter
743−pending ownership.
529+If there are waiters, then we need to wake one up.
744530
745531 On the wake up code, the pi_lock of the current owner is taken. The top
746−waiter of the lock is found and removed from the wait_list of the mutex
747−as well as the pi_list of the current owner. The task field of the new
748−pending owner's waiter structure is set to NULL, and the owner field of the
749−mutex is set to the new owner with the "Pending Owner" bit set, as well
750−as the "Has Waiters" bit if there still are other processes blocked on the
751−mutex.
752−
753−The pi_lock of the previous owner is released, and the new pending owner's
754−pi_lock is taken. Remember that this is the trick to prevent the race
755−condition in rt_mutex_adjust_prio_chain from adding itself as a waiter
756−on the mutex.
757−
758−We now clear the "pi_blocked_on" field of the new pending owner, and if
759−the mutex still has waiters pending, we add the new top waiter to the pi_list
760−of the pending owner.
532+waiter of the lock is found and removed from the waiters tree of the mutex
533+as well as the pi_waiters tree of the current owner. The "Has Waiters" bit is
534+marked to prevent lower priority tasks from stealing the lock.
761535
762536 Finally we unlock the pi_lock of the pending owner and wake it up.
763537
@@ -772,10 +546,14 @@ Credits · 8 unmodified lines
772546 -------
773547
774548 Author: Steven Rostedt <rostedt@goodmis.org>
549+Updated: Alex Shi <alex.shi@linaro.org> - 7/6/2017
775550
776−Reviewers: Ingo Molnar, Thomas Gleixner, Thomas Duetsch, and Randy Dunlap
551+Original Reviewers: Ingo Molnar, Thomas Gleixner, Thomas Duetsch, and
552+ Randy Dunlap
553+Update (7/6/2017) Reviewers: Steven Rostedt and Sebastian Siewior
777554
778555 Updates
779556 -------
780557
781558 This document was originally written for 2.6.17-rc3-mm1
559+was updated on 4.12
Documentation/locking/rt-mutex.txt+26−32
@@ -28,14 +28,13 @@ magic bullet for poorly designed applications, but it allows · 27 unmodified lines
2828 well-designed applications to use userspace locks in critical parts of
2929 an high priority thread, without losing determinism.
3030
31−The enqueueing of the waiters into the rtmutex waiter list is done in
31+The enqueueing of the waiters into the rtmutex waiter tree is done in
3232 priority order. For same priorities FIFO order is chosen. For each
3333 rtmutex, only the top priority waiter is enqueued into the owner's
34−priority waiters list. This list too queues in priority order. Whenever
34+priority waiters tree. This tree too queues in priority order. Whenever
3535 the top priority waiter of a task changes (for example it timed out or
36−got a signal), the priority of the owner task is readjusted. [The
37−priority enqueueing is handled by "plists", see include/linux/plist.h
38−for more details.]
36+got a signal), the priority of the owner task is readjusted. The
37+priority enqueueing is handled by "pi_waiters".
3938
4039 RT-mutexes are optimized for fastpath operations and have no internal
4140 locking overhead when locking an uncontended mutex or unlocking a mutex
@@ -46,34 +45,29 @@ is used] · 4 unmodified lines
4645 The state of the rt-mutex is tracked via the owner field of the rt-mutex
4746 structure:
4847
49−rt_mutex->owner holds the task_struct pointer of the owner. Bit 0 and 1
50−are used to keep track of the "owner is pending" and "rtmutex has
51−waiters" state.
48+lock->owner holds the task_struct pointer of the owner. Bit 0 is used to
49+keep track of the "lock has waiters" state.
5250
53− owner bit1 bit0
54− NULL 0 0 mutex is free (fast acquire possible)
55− NULL 0 1 invalid state
56− NULL 1 0 Transitional state*
57− NULL 1 1 invalid state
58− taskpointer 0 0 mutex is held (fast release possible)
59− taskpointer 0 1 task is pending owner
60− taskpointer 1 0 mutex is held and has waiters
61− taskpointer 1 1 task is pending owner and mutex has waiters
51+ owner bit0
52+ NULL 0 lock is free (fast acquire possible)
53+ NULL 1 lock is free and has waiters and the top waiter
54+ is going to take the lock*
55+ taskpointer 0 lock is held (fast release possible)
56+ taskpointer 1 lock is held and has waiters**
6257
63−Pending-ownership handling is a performance optimization:
64−pending-ownership is assigned to the first (highest priority) waiter of
65−the mutex, when the mutex is released. The thread is woken up and once
66−it starts executing it can acquire the mutex. Until the mutex is taken
67−by it (bit 0 is cleared) a competing higher priority thread can "steal"
68−the mutex which puts the woken up thread back on the waiters list.
58+The fast atomic compare exchange based acquire and release is only
59+possible when bit 0 of lock->owner is 0.
6960
70−The pending-ownership optimization is especially important for the
71−uninterrupted workflow of high-prio tasks which repeatedly
72−takes/releases locks that have lower-prio waiters. Without this
73−optimization the higher-prio thread would ping-pong to the lower-prio
74−task [because at unlock time we always assign a new owner].
61+(*) It also can be a transitional state when grabbing the lock
62+with ->wait_lock is held. To prevent any fast path cmpxchg to the lock,
63+we need to set the bit0 before looking at the lock, and the owner may be
64+NULL in this small time, hence this can be a transitional state.
7565
76−(*) The "mutex has waiters" bit gets set to take the lock. If the lock
77−doesn't already have an owner, this bit is quickly cleared if there are
78−no waiters. So this is a transitional state to synchronize with looking
79−at the owner field of the mutex and the mutex owner releasing the lock.
66+(**) There is a small time when bit 0 is set but there are no
67+waiters. This can happen when grabbing the lock in the slow path.
68+To prevent a cmpxchg of the owner releasing the lock, we need to
69+set this bit before looking at the lock.
70+
71+BTW, there is still technically a "Pending Owner", it's just not called
72+that anymore. The pending owner happens to be the top_waiter of a lock
73+that has no owner and has been woken up to grab the lock.
Documentation/memory-barriers.txt+32−110
@@ -498,11 +498,11 @@ And a couple of implicit varieties: · 497 unmodified lines
498498 This means that ACQUIRE acts as a minimal "acquire" operation and
499499 RELEASE acts as a minimal "release" operation.
500500
501−A subset of the atomic operations described in core-api/atomic_ops.rst have
502−ACQUIRE and RELEASE variants in addition to fully-ordered and relaxed (no
503−barrier semantics) definitions. For compound atomics performing both a load
504−and a store, ACQUIRE semantics apply only to the load and RELEASE semantics
505−apply only to the store portion of the operation.
501+A subset of the atomic operations described in atomic_t.txt have ACQUIRE and
502+RELEASE variants in addition to fully-ordered and relaxed (no barrier
503+semantics) definitions. For compound atomics performing both a load and a
504+store, ACQUIRE semantics apply only to the load and RELEASE semantics apply
505+only to the store portion of the operation.
506506
507507 Memory barriers are only required where there's a possibility of interaction
508508 between two CPUs or between a CPU and a device. If it can be guaranteed that
@@ -594,7 +594,24 @@ between the address load and the data load: · 85 unmodified lines
594594 This enforces the occurrence of one of the two implications, and prevents the
595595 third possibility from arising.
596596
597−A data-dependency barrier must also order against dependent writes:
597+
598+[!] Note that this extremely counterintuitive situation arises most easily on
599+machines with split caches, so that, for example, one cache bank processes
600+even-numbered cache lines and the other bank processes odd-numbered cache
601+lines. The pointer P might be stored in an odd-numbered cache line, and the
602+variable B might be stored in an even-numbered cache line. Then, if the
603+even-numbered bank of the reading CPU's cache is extremely busy while the
604+odd-numbered bank is idle, one can see the new value of the pointer P (&B),
605+but the old value of the variable B (2).
606+
607+
608+A data-dependency barrier is not required to order dependent writes
609+because the CPUs that the Linux kernel supports don't do writes
610+until they are certain (1) that the write will actually happen, (2)
611+of the location of the write, and (3) of the value to be written.
612+But please carefully read the "CONTROL DEPENDENCIES" section and the
613+Documentation/RCU/rcu_dereference.txt file: The compiler can and does
614+break dependencies in a great many highly creative ways.
598615
599616 CPU 1 CPU 2
600617 =============== ===============
@@ -603,29 +620,19 @@ A data-dependency barrier must also order against dependent writes: · 2 unmodified lines
603620 <write barrier>
604621 WRITE_ONCE(P, &B);
605622 Q = READ_ONCE(P);
606− <data dependency barrier>
607− *Q = 5;
623+ WRITE_ONCE(*Q, 5);
608624
609−The data-dependency barrier must order the read into Q with the store
610−into *Q. This prohibits this outcome:
625+Therefore, no data-dependency barrier is required to order the read into
626+Q with the store into *Q. In other words, this outcome is prohibited,
627+even without a data-dependency barrier:
611628
612629 (Q == &B) && (B == 4)
613630
614631 Please note that this pattern should be rare. After all, the whole point
615632 of dependency ordering is to -prevent- writes to the data structure, along
616633 with the expensive cache misses associated with those writes. This pattern
617−can be used to record rare error conditions and the like, and the ordering
618−prevents such records from being lost.
619−
620−
621−[!] Note that this extremely counterintuitive situation arises most easily on
622−machines with split caches, so that, for example, one cache bank processes
623−even-numbered cache lines and the other bank processes odd-numbered cache
624−lines. The pointer P might be stored in an odd-numbered cache line, and the
625−variable B might be stored in an even-numbered cache line. Then, if the
626−even-numbered bank of the reading CPU's cache is extremely busy while the
627−odd-numbered bank is idle, one can see the new value of the pointer P (&B),
628−but the old value of the variable B (2).
634+can be used to record rare error conditions and the like, and the CPUs'
635+naturally occurring ordering prevents such records from being lost.
629636
630637
631638 The data dependency barrier is very important to the RCU system,
@@ -1876,8 +1883,7 @@ There are some more advanced barrier functions: · 1244 unmodified lines
18761883 This makes sure that the death mark on the object is perceived to be set
18771884 *before* the reference counter is decremented.
18781885
1879− See Documentation/core-api/atomic_ops.rst for more information. See the
1880− "Atomic operations" subsection for information on where to use these.
1886+ See Documentation/atomic_{t,bitops}.txt for more information.
18811887
18821888
18831889 (*) lockless_dereference();
@@ -1982,10 +1988,7 @@ for each construct. These operations all imply certain barriers: · 98 unmodified lines
19821988 ACQUIRE operation has completed.
19831989
19841990 Memory operations issued before the ACQUIRE may be completed after
1985− the ACQUIRE operation has completed. An smp_mb__before_spinlock(),
1986− combined with a following ACQUIRE, orders prior stores against
1987− subsequent loads and stores. Note that this is weaker than smp_mb()!
1988− The smp_mb__before_spinlock() primitive is free on many architectures.
1991+ the ACQUIRE operation has completed.
19891992
19901993 (2) RELEASE operation implication:
19911994
@@ -2503,88 +2506,7 @@ operations are noted specially as some of them imply full memory barriers and · 511 unmodified lines
25032506 some don't, but they're very heavily relied on as a group throughout the
25042507 kernel.
25052508
2506−Any atomic operation that modifies some state in memory and returns information
2507−about the state (old or new) implies an SMP-conditional general memory barrier
2508−(smp_mb()) on each side of the actual operation (with the exception of
2509−explicit lock operations, described later). These include:
2510−
2511− xchg();
2512− atomic_xchg(); atomic_long_xchg();
2513− atomic_inc_return(); atomic_long_inc_return();
2514− atomic_dec_return(); atomic_long_dec_return();
2515− atomic_add_return(); atomic_long_add_return();
2516− atomic_sub_return(); atomic_long_sub_return();
2517− atomic_inc_and_test(); atomic_long_inc_and_test();
2518− atomic_dec_and_test(); atomic_long_dec_and_test();
2519− atomic_sub_and_test(); atomic_long_sub_and_test();
2520− atomic_add_negative(); atomic_long_add_negative();
2521− test_and_set_bit();
2522− test_and_clear_bit();
2523− test_and_change_bit();
2524−
2525− /* when succeeds */
2526− cmpxchg();
2527− atomic_cmpxchg(); atomic_long_cmpxchg();
2528− atomic_add_unless(); atomic_long_add_unless();
2529−
2530−These are used for such things as implementing ACQUIRE-class and RELEASE-class
2531−operations and adjusting reference counters towards object destruction, and as
2532−such the implicit memory barrier effects are necessary.
2533−
2534−
2535−The following operations are potential problems as they do _not_ imply memory
2536−barriers, but might be used for implementing such things as RELEASE-class
2537−operations:
2538−
2539− atomic_set();
2540− set_bit();
2541− clear_bit();
2542− change_bit();
2543−
2544−With these the appropriate explicit memory barrier should be used if necessary
2545−(smp_mb__before_atomic() for instance).
2546−
2547−
2548−The following also do _not_ imply memory barriers, and so may require explicit
2549−memory barriers under some circumstances (smp_mb__before_atomic() for
2550−instance):
2551−
2552− atomic_add();
2553− atomic_sub();
2554− atomic_inc();
2555− atomic_dec();
2556−
2557−If they're used for statistics generation, then they probably don't need memory
2558−barriers, unless there's a coupling between statistical data.
2559−
2560−If they're used for reference counting on an object to control its lifetime,
2561−they probably don't need memory barriers because either the reference count
2562−will be adjusted inside a locked section, or the caller will already hold
2563−sufficient references to make the lock, and thus a memory barrier unnecessary.
2564−
2565−If they're used for constructing a lock of some description, then they probably
2566−do need memory barriers as a lock primitive generally has to do things in a
2567−specific order.
2568−
2569−Basically, each usage case has to be carefully considered as to whether memory
2570−barriers are needed or not.
2571−
2572−The following operations are special locking primitives:
2573−
2574− test_and_set_bit_lock();
2575− clear_bit_unlock();
2576− __clear_bit_unlock();
2577−
2578−These implement ACQUIRE-class and RELEASE-class operations. These should be
2579−used in preference to other operations when implementing locking primitives,
2580−because their implementations can be optimised on many architectures.
2581−
2582−[!] Note that special memory barrier primitives are available for these
2583−situations because on some CPUs the atomic instructions used imply full memory
2584−barriers, and so barrier instructions are superfluous in conjunction with them,
2585−and in such cases the special barrier primitives will be no-ops.
2586−
2587−See Documentation/core-api/atomic_ops.rst for more information.
2509+See Documentation/atomic_t.txt for more information.
25882510
25892511
25902512 ACCESSING DEVICES
Documentation/networking/00-INDEX+0−2
@@ -30,8 +30,6 @@ atm.txt · 29 unmodified lines
3030 - info on where to get ATM programs and support for Linux.
3131 ax25.txt
3232 - info on using AX.25 and NET/ROM code for Linux
33−batman-adv.txt
34− - B.A.T.M.A.N routing protocol on top of layer 2 Ethernet Frames.
3533 baycom.txt
3634 - info on the driver for Baycom style amateur radio modems
3735 bonding.txt
Documentation/networking/batman-adv.rst+220−0
@@ -0,0 +1,220 @@
1+==========
2+batman-adv
3+==========
4+
5+Batman advanced is a new approach to wireless networking which does no longer
6+operate on the IP basis. Unlike the batman daemon, which exchanges information
7+using UDP packets and sets routing tables, batman-advanced operates on ISO/OSI
8+Layer 2 only and uses and routes (or better: bridges) Ethernet Frames. It
9+emulates a virtual network switch of all nodes participating. Therefore all
10+nodes appear to be link local, thus all higher operating protocols won't be
11+affected by any changes within the network. You can run almost any protocol
12+above batman advanced, prominent examples are: IPv4, IPv6, DHCP, IPX.
13+
14+Batman advanced was implemented as a Linux kernel driver to reduce the overhead
15+to a minimum. It does not depend on any (other) network driver, and can be used
16+on wifi as well as ethernet lan, vpn, etc ... (anything with ethernet-style
17+layer 2).
18+
19+
20+Configuration
21+=============
22+
23+Load the batman-adv module into your kernel::
24+
25+ $ insmod batman-adv.ko
26+
27+The module is now waiting for activation. You must add some interfaces on which
28+batman can operate. After loading the module batman advanced will scan your
29+systems interfaces to search for compatible interfaces. Once found, it will
30+create subfolders in the ``/sys`` directories of each supported interface,
31+e.g.::
32+
33+ $ ls /sys/class/net/eth0/batman_adv/
34+ elp_interval iface_status mesh_iface throughput_override
35+
36+If an interface does not have the ``batman_adv`` subfolder, it probably is not
37+supported. Not supported interfaces are: loopback, non-ethernet and batman's
38+own interfaces.
39+
40+Note: After the module was loaded it will continuously watch for new
41+interfaces to verify the compatibility. There is no need to reload the module
42+if you plug your USB wifi adapter into your machine after batman advanced was
43+initially loaded.
44+
45+The batman-adv soft-interface can be created using the iproute2 tool ``ip``::
46+
47+ $ ip link add name bat0 type batadv
48+
49+To activate a given interface simply attach it to the ``bat0`` interface::
50+
51+ $ ip link set dev eth0 master bat0
52+
53+Repeat this step for all interfaces you wish to add. Now batman starts
54+using/broadcasting on this/these interface(s).
55+
56+By reading the "iface_status" file you can check its status::
57+
58+ $ cat /sys/class/net/eth0/batman_adv/iface_status
59+ active
60+
61+To deactivate an interface you have to detach it from the "bat0" interface::
62+
63+ $ ip link set dev eth0 nomaster
64+
65+
66+All mesh wide settings can be found in batman's own interface folder::
67+
68+ $ ls /sys/class/net/bat0/mesh/
69+ aggregated_ogms fragmentation isolation_mark routing_algo
70+ ap_isolation gw_bandwidth log_level vlan0
71+ bonding gw_mode multicast_mode
72+ bridge_loop_avoidance gw_sel_class network_coding
73+ distributed_arp_table hop_penalty orig_interval
74+
75+There is a special folder for debugging information::
76+
77+ $ ls /sys/kernel/debug/batman_adv/bat0/
78+ bla_backbone_table log neighbors transtable_local
79+ bla_claim_table mcast_flags originators
80+ dat_cache nc socket
81+ gateways nc_nodes transtable_global
82+
83+Some of the files contain all sort of status information regarding the mesh
84+network. For example, you can view the table of originators (mesh
85+participants) with::
86+
87+ $ cat /sys/kernel/debug/batman_adv/bat0/originators
88+
89+Other files allow to change batman's behaviour to better fit your requirements.
90+For instance, you can check the current originator interval (value in
91+milliseconds which determines how often batman sends its broadcast packets)::
92+
93+ $ cat /sys/class/net/bat0/mesh/orig_interval
94+ 1000
95+
96+and also change its value::
97+
98+ $ echo 3000 > /sys/class/net/bat0/mesh/orig_interval
99+
100+In very mobile scenarios, you might want to adjust the originator interval to a
101+lower value. This will make the mesh more responsive to topology changes, but
102+will also increase the overhead.
103+
104+
105+Usage
106+=====
107+
108+To make use of your newly created mesh, batman advanced provides a new
109+interface "bat0" which you should use from this point on. All interfaces added
110+to batman advanced are not relevant any longer because batman handles them for
111+you. Basically, one "hands over" the data by using the batman interface and
112+batman will make sure it reaches its destination.
113+
114+The "bat0" interface can be used like any other regular interface. It needs an
115+IP address which can be either statically configured or dynamically (by using
116+DHCP or similar services)::
117+
118+ NodeA: ip link set up dev bat0
119+ NodeA: ip addr add 192.168.0.1/24 dev bat0
120+
121+ NodeB: ip link set up dev bat0
122+ NodeB: ip addr add 192.168.0.2/24 dev bat0
123+ NodeB: ping 192.168.0.1
124+
125+Note: In order to avoid problems remove all IP addresses previously assigned to
126+interfaces now used by batman advanced, e.g.::
127+
128+ $ ip addr flush dev eth0
129+
130+
131+Logging/Debugging
132+=================
133+
134+All error messages, warnings and information messages are sent to the kernel
135+log. Depending on your operating system distribution this can be read in one of
136+a number of ways. Try using the commands: ``dmesg``, ``logread``, or looking in
137+the files ``/var/log/kern.log`` or ``/var/log/syslog``. All batman-adv messages
138+are prefixed with "batman-adv:" So to see just these messages try::
139+
140+ $ dmesg | grep batman-adv
141+
142+When investigating problems with your mesh network, it is sometimes necessary to
143+see more detail debug messages. This must be enabled when compiling the
144+batman-adv module. When building batman-adv as part of kernel, use "make
145+menuconfig" and enable the option ``B.A.T.M.A.N. debugging``
146+(``CONFIG_BATMAN_ADV_DEBUG=y``).
147+
148+Those additional debug messages can be accessed using a special file in
149+debugfs::
150+
151+ $ cat /sys/kernel/debug/batman_adv/bat0/log
152+
153+The additional debug output is by default disabled. It can be enabled during
154+run time. Following log_levels are defined:
155+
156+.. flat-table::
157+
158+ * - 0
159+ - All debug output disabled
160+ * - 1
161+ - Enable messages related to routing / flooding / broadcasting
162+ * - 2
163+ - Enable messages related to route added / changed / deleted
164+ * - 4
165+ - Enable messages related to translation table operations
166+ * - 8
167+ - Enable messages related to bridge loop avoidance
168+ * - 16
169+ - Enable messages related to DAT, ARP snooping and parsing
170+ * - 32
171+ - Enable messages related to network coding
172+ * - 64
173+ - Enable messages related to multicast
174+ * - 128
175+ - Enable messages related to throughput meter
176+ * - 255
177+ - Enable all messages
178+
179+The debug output can be changed at runtime using the file
180+``/sys/class/net/bat0/mesh/log_level``. e.g.::
181+
182+ $ echo 6 > /sys/class/net/bat0/mesh/log_level
183+
184+will enable debug messages for when routes change.
185+
186+Counters for different types of packets entering and leaving the batman-adv
187+module are available through ethtool::
188+
189+ $ ethtool --statistics bat0
190+
191+
192+batctl
193+======
194+
195+As batman advanced operates on layer 2, all hosts participating in the virtual
196+switch are completely transparent for all protocols above layer 2. Therefore
197+the common diagnosis tools do not work as expected. To overcome these problems,
198+batctl was created. At the moment the batctl contains ping, traceroute, tcpdump
199+and interfaces to the kernel module settings.
200+
201+For more information, please see the manpage (``man batctl``).
202+
203+batctl is available on https://www.open-mesh.org/
204+
205+
206+Contact
207+=======
208+
209+Please send us comments, experiences, questions, anything :)
210+
211+IRC:
212+ #batman on irc.freenode.org
213+Mailing-list:
214+ b.a.t.m.a.n@open-mesh.org (optional subscription at
215+ https://lists.open-mesh.org/mm/listinfo/b.a.t.m.a.n)
216+
217+You can also contact the Authors:
218+
219+* Marek Lindner <mareklindner@neomailbox.ch>
220+* Simon Wunderlich <sw@simonwunderlich.de>
Documentation/networking/batman-adv.txt+0−215
@@ -1,215 +0,0 @@
1−BATMAN-ADV
2−----------
3−
4−Batman advanced is a new approach to wireless networking which
5−does no longer operate on the IP basis. Unlike the batman daemon,
6−which exchanges information using UDP packets and sets routing
7−tables, batman-advanced operates on ISO/OSI Layer 2 only and uses
8−and routes (or better: bridges) Ethernet Frames. It emulates a
9−virtual network switch of all nodes participating. Therefore all
10−nodes appear to be link local, thus all higher operating proto-
11−cols won't be affected by any changes within the network. You can
12−run almost any protocol above batman advanced, prominent examples
13−are: IPv4, IPv6, DHCP, IPX.
14−
15−Batman advanced was implemented as a Linux kernel driver to re-
16−duce the overhead to a minimum. It does not depend on any (other)
17−network driver, and can be used on wifi as well as ethernet lan,
18−vpn, etc ... (anything with ethernet-style layer 2).
19−
20−
21−CONFIGURATION
22−-------------
23−
24−Load the batman-adv module into your kernel:
25−
26−# insmod batman-adv.ko
27−
28−The module is now waiting for activation. You must add some in-
29−terfaces on which batman can operate. After loading the module
30−batman advanced will scan your systems interfaces to search for
31−compatible interfaces. Once found, it will create subfolders in
32−the /sys directories of each supported interface, e.g.
33−
34−# ls /sys/class/net/eth0/batman_adv/
35−# elp_interval iface_status mesh_iface throughput_override
36−
37−If an interface does not have the "batman_adv" subfolder it prob-
38−ably is not supported. Not supported interfaces are: loopback,
39−non-ethernet and batman's own interfaces.
40−
41−Note: After the module was loaded it will continuously watch for
42−new interfaces to verify the compatibility. There is no need to
43−reload the module if you plug your USB wifi adapter into your ma-
44−chine after batman advanced was initially loaded.
45−
46−The batman-adv soft-interface can be created using the iproute2
47−tool "ip"
48−
49−# ip link add name bat0 type batadv
50−
51−To activate a given interface simply attach it to the "bat0"
52−interface
53−
54−# ip link set dev eth0 master bat0
55−
56−Repeat this step for all interfaces you wish to add. Now batman
57−starts using/broadcasting on this/these interface(s).
58−
59−By reading the "iface_status" file you can check its status:
60−
61−# cat /sys/class/net/eth0/batman_adv/iface_status
62−# active
63−
64−To deactivate an interface you have to detach it from the
65−"bat0" interface:
66−
67−# ip link set dev eth0 nomaster
68−
69−
70−All mesh wide settings can be found in batman's own interface
71−folder:
72−
73−# ls /sys/class/net/bat0/mesh/
74−# aggregated_ogms fragmentation isolation_mark routing_algo
75−# ap_isolation gw_bandwidth log_level vlan0
76−# bonding gw_mode multicast_mode
77−# bridge_loop_avoidance gw_sel_class network_coding
78−# distributed_arp_table hop_penalty orig_interval
79−
80−There is a special folder for debugging information:
81−
82−# ls /sys/kernel/debug/batman_adv/bat0/
83−# bla_backbone_table log neighbors transtable_local
84−# bla_claim_table mcast_flags originators
85−# dat_cache nc socket
86−# gateways nc_nodes transtable_global
87−
88−Some of the files contain all sort of status information regard-
89−ing the mesh network. For example, you can view the table of
90−originators (mesh participants) with:
91−
92−# cat /sys/kernel/debug/batman_adv/bat0/originators
93−
94−Other files allow to change batman's behaviour to better fit your
95−requirements. For instance, you can check the current originator
96−interval (value in milliseconds which determines how often batman
97−sends its broadcast packets):
98−
99−# cat /sys/class/net/bat0/mesh/orig_interval
100−# 1000
101−
102−and also change its value:
103−
104−# echo 3000 > /sys/class/net/bat0/mesh/orig_interval
105−
106−In very mobile scenarios, you might want to adjust the originator
107−interval to a lower value. This will make the mesh more respon-
108−sive to topology changes, but will also increase the overhead.
109−
110−
111−USAGE
112−-----
113−
114−To make use of your newly created mesh, batman advanced provides
115−a new interface "bat0" which you should use from this point on.
116−All interfaces added to batman advanced are not relevant any
117−longer because batman handles them for you. Basically, one "hands
118−over" the data by using the batman interface and batman will make
119−sure it reaches its destination.
120−
121−The "bat0" interface can be used like any other regular inter-
122−face. It needs an IP address which can be either statically con-
123−figured or dynamically (by using DHCP or similar services):
124−
125−# NodeA: ip link set up dev bat0
126−# NodeA: ip addr add 192.168.0.1/24 dev bat0
127−
128−# NodeB: ip link set up dev bat0
129−# NodeB: ip addr add 192.168.0.2/24 dev bat0
130−# NodeB: ping 192.168.0.1
131−
132−Note: In order to avoid problems remove all IP addresses previ-
133−ously assigned to interfaces now used by batman advanced, e.g.
134−
135−# ip addr flush dev eth0
136−
137−
138−LOGGING/DEBUGGING
139−-----------------
140−
141−All error messages, warnings and information messages are sent to
142−the kernel log. Depending on your operating system distribution
143−this can be read in one of a number of ways. Try using the com-
144−mands: dmesg, logread, or looking in the files /var/log/kern.log
145−or /var/log/syslog. All batman-adv messages are prefixed with
146−"batman-adv:" So to see just these messages try
147−
148−# dmesg | grep batman-adv
149−
150−When investigating problems with your mesh network it is some-
151−times necessary to see more detail debug messages. This must be
152−enabled when compiling the batman-adv module. When building bat-
153−man-adv as part of kernel, use "make menuconfig" and enable the
154−option "B.A.T.M.A.N. debugging".
155−
156−Those additional debug messages can be accessed using a special
157−file in debugfs
158−
159−# cat /sys/kernel/debug/batman_adv/bat0/log
160−
161−The additional debug output is by default disabled. It can be en-
162−abled during run time. Following log_levels are defined:
163−
164− 0 - All debug output disabled
165− 1 - Enable messages related to routing / flooding / broadcasting
166− 2 - Enable messages related to route added / changed / deleted
167− 4 - Enable messages related to translation table operations
168− 8 - Enable messages related to bridge loop avoidance
169− 16 - Enable messages related to DAT, ARP snooping and parsing
170− 32 - Enable messages related to network coding
171− 64 - Enable messages related to multicast
172−128 - Enable messages related to throughput meter
173−255 - Enable all messages
174−
175−The debug output can be changed at runtime using the file
176−/sys/class/net/bat0/mesh/log_level. e.g.
177−
178−# echo 6 > /sys/class/net/bat0/mesh/log_level
179−
180−will enable debug messages for when routes change.
181−
182−Counters for different types of packets entering and leaving the
183−batman-adv module are available through ethtool:
184−
185−# ethtool --statistics bat0
186−
187−
188−BATCTL
189−------
190−
191−As batman advanced operates on layer 2 all hosts participating in
192−the virtual switch are completely transparent for all protocols
193−above layer 2. Therefore the common diagnosis tools do not work
194−as expected. To overcome these problems batctl was created. At
195−the moment the batctl contains ping, traceroute, tcpdump and
196−interfaces to the kernel module settings.
197−
198−For more information, please see the manpage (man batctl).
199−
200−batctl is available on https://www.open-mesh.org/
201−
202−
203−CONTACT
204−-------
205−
206−Please send us comments, experiences, questions, anything :)
207−
208−IRC: #batman on irc.freenode.org
209−Mailing-list: b.a.t.m.a.n@open-mesh.org (optional subscription
210− at https://lists.open-mesh.org/mm/listinfo/b.a.t.m.a.n)
211−
212−You can also contact the Authors:
213−
214−Marek Lindner <mareklindner@neomailbox.ch>
215−Simon Wunderlich <sw@simonwunderlich.de>
Documentation/networking/dpaa.txt+67−1
@@ -13,6 +13,7 @@ Contents · 12 unmodified lines
1313 - Configuring DPAA Ethernet in your kernel
1414 - DPAA Ethernet Frame Processing
1515 - DPAA Ethernet Features
16+ - DPAA IRQ Affinity and Receive Side Scaling
1617 - Debugging
1718
1819 DPAA Ethernet Overview
@@ -147,7 +148,10 @@ gradually. · 128 unmodified lines
147148
148149 The driver has Rx and Tx checksum offloading for UDP and TCP. Currently the Rx
149150 checksum offload feature is enabled by default and cannot be controlled through
150−ethtool.
151+ethtool. Also, rx-flow-hash and rx-hashing was added. The addition of RSS
152+provides a big performance boost for the forwarding scenarios, allowing
153+different traffic flows received by one interface to be processed by different
154+CPUs in parallel.
151155
152156 The driver has support for multiple prioritized Tx traffic classes. Priorities
153157 range from 0 (lowest) to 3 (highest). These are mapped to HW workqueues with
@@ -166,6 +170,68 @@ classes as follows: · 12 unmodified lines
166170 tc qdisc add dev <int> root handle 1: \
167171 mqprio num_tc 4 map 0 0 0 0 1 1 1 1 2 2 2 2 3 3 3 3 hw 1
168172
173+DPAA IRQ Affinity and Receive Side Scaling
174+==========================================
175+
176+Traffic coming on the DPAA Rx queues or on the DPAA Tx confirmation
177+queues is seen by the CPU as ingress traffic on a certain portal.
178+The DPAA QMan portal interrupts are affined each to a certain CPU.
179+The same portal interrupt services all the QMan portal consumers.
180+
181+By default the DPAA Ethernet driver enables RSS, making use of the
182+DPAA FMan Parser and Keygen blocks to distribute traffic on 128
183+hardware frame queues using a hash on IP v4/v6 source and destination
184+and L4 source and destination ports, in present in the received frame.
185+When RSS is disabled, all traffic received by a certain interface is
186+received on the default Rx frame queue. The default DPAA Rx frame
187+queues are configured to put the received traffic into a pool channel
188+that allows any available CPU portal to dequeue the ingress traffic.
189+The default frame queues have the HOLDACTIVE option set, ensuring that
190+traffic bursts from a certain queue are serviced by the same CPU.
191+This ensures a very low rate of frame reordering. A drawback of this
192+is that only one CPU at a time can service the traffic received by a
193+certain interface when RSS is not enabled.
194+
195+To implement RSS, the DPAA Ethernet driver allocates an extra set of
196+128 Rx frame queues that are configured to dedicated channels, in a
197+round-robin manner. The mapping of the frame queues to CPUs is now
198+hardcoded, there is no indirection table to move traffic for a certain
199+FQ (hash result) to another CPU. The ingress traffic arriving on one
200+of these frame queues will arrive at the same portal and will always
201+be processed by the same CPU. This ensures intra-flow order preservation
202+and workload distribution for multiple traffic flows.
203+
204+RSS can be turned off for a certain interface using ethtool, i.e.
205+
206+ # ethtool -N fm1-mac9 rx-flow-hash tcp4 ""
207+
208+To turn it back on, one needs to set rx-flow-hash for tcp4/6 or udp4/6:
209+
210+ # ethtool -N fm1-mac9 rx-flow-hash udp4 sfdn
211+
212+There is no independent control for individual protocols, any command
213+run for one of tcp4|udp4|ah4|esp4|sctp4|tcp6|udp6|ah6|esp6|sctp6 is
214+going to control the rx-flow-hashing for all protocols on that interface.
215+
216+Besides using the FMan Keygen computed hash for spreading traffic on the
217+128 Rx FQs, the DPAA Ethernet driver also sets the skb hash value when
218+the NETIF_F_RXHASH feature is on (active by default). This can be turned
219+on or off through ethtool, i.e.:
220+
221+ # ethtool -K fm1-mac9 rx-hashing off
222+ # ethtool -k fm1-mac9 | grep hash
223+ receive-hashing: off
224+ # ethtool -K fm1-mac9 rx-hashing on
225+ Actual changes:
226+ receive-hashing: on
227+ # ethtool -k fm1-mac9 | grep hash
228+ receive-hashing: on
229+
230+Please note that Rx hashing depends upon the rx-flow-hashing being on
231+for that interface - turning off rx-flow-hashing will also disable the
232+rx-hashing (without ethtool reporting it as off as that depends on the
233+NETIF_F_RXHASH feature flag).
234+
169235 Debugging
170236 =========
171237
Documentation/networking/filter.txt+112−22
@@ -45,7 +45,7 @@ in many more places. There's xt_bpf for netfilter, cls_bpf in the kernel · 44 unmodified lines
4545 qdisc layer, SECCOMP-BPF (SECure COMPuting [1]), and lots of other places
4646 such as team driver, PTP code, etc where BPF is being used.
4747
48− [1] Documentation/prctl/seccomp_filter.txt
48+ [1] Documentation/userspace-api/seccomp_filter.rst
4949
5050 Original BPF paper:
5151
@@ -337,7 +337,7 @@ Examples for low-level BPF: · 285 unmodified lines
337337 jeq #14, good /* __NR_rt_sigprocmask */
338338 jeq #13, good /* __NR_rt_sigaction */
339339 jeq #35, good /* __NR_nanosleep */
340− bad: ret #0 /* SECCOMP_RET_KILL */
340+ bad: ret #0 /* SECCOMP_RET_KILL_THREAD */
341341 good: ret #0x7fff0000 /* SECCOMP_RET_ALLOW */
342342
343343 The above example code can be placed into a file (here called "foo"), and
@@ -596,8 +596,8 @@ skb pointer). All constraints and restrictions from bpf_check_classic() apply · 252 unmodified lines
596596 before a conversion to the new layout is being done behind the scenes!
597597
598598 Currently, the classic BPF format is being used for JITing on most 32-bit
599−architectures, whereas x86-64, aarch64, s390x, powerpc64, sparc64 perform JIT
600−compilation from eBPF instruction set.
599+architectures, whereas x86-64, aarch64, s390x, powerpc64, sparc64, arm32 perform
600+JIT compilation from eBPF instruction set.
601601
602602 Some core changes of the new internal format:
603603
@@ -793,7 +793,7 @@ Some core changes of the new internal format: · 189 unmodified lines
793793 bpf_exit
794794
795795 After the call the registers R1-R5 contain junk values and cannot be read.
796− In the future an eBPF verifier can be used to validate internal BPF programs.
796+ An in-kernel eBPF verifier is used to validate internal BPF programs.
797797
798798 Also in the new design, eBPF is limited to 4096 insns, which means that any
799799 program will terminate quickly and will only call a fixed number of kernel
@@ -906,6 +906,10 @@ If BPF_CLASS(code) == BPF_JMP, BPF_OP(code) is one of: · 106 unmodified lines
906906 BPF_JSGE 0x70 /* eBPF only: signed '>=' */
907907 BPF_CALL 0x80 /* eBPF only: function call */
908908 BPF_EXIT 0x90 /* eBPF only: function return */
909+ BPF_JLT 0xa0 /* eBPF only: unsigned '<' */
910+ BPF_JLE 0xb0 /* eBPF only: unsigned '<=' */
911+ BPF_JSLT 0xc0 /* eBPF only: signed '<' */
912+ BPF_JSLE 0xd0 /* eBPF only: signed '<=' */
909913
910914 So BPF_ADD | BPF_X | BPF_ALU means 32-bit addition in both classic BPF
911915 and eBPF. There are only two registers in classic BPF, so it means A += X.
@@ -1017,7 +1021,7 @@ At the start of the program the register R1 contains a pointer to context · 105 unmodified lines
10171021 and has type PTR_TO_CTX.
10181022 If verifier sees an insn that does R2=R1, then R2 has now type
10191023 PTR_TO_CTX as well and can be used on the right hand side of expression.
1020−If R1=PTR_TO_CTX and insn is R2=R1+R1, then R2=UNKNOWN_VALUE,
1024+If R1=PTR_TO_CTX and insn is R2=R1+R1, then R2=SCALAR_VALUE,
10211025 since addition of two valid pointers makes invalid pointer.
10221026 (In 'secure' mode verifier will reject any type of pointer arithmetic to make
10231027 sure that kernel addresses don't leak to unprivileged users)
@@ -1039,7 +1043,7 @@ is a correct program. If there was R1 instead of R6, it would have · 15 unmodified lines
10391043 been rejected.
10401044
10411045 load/store instructions are allowed only with registers of valid types, which
1042−are PTR_TO_CTX, PTR_TO_MAP, FRAME_PTR. They are bounds and alignment checked.
1046+are PTR_TO_CTX, PTR_TO_MAP, PTR_TO_STACK. They are bounds and alignment checked.
10431047 For example:
10441048 bpf_mov R1 = 1
10451049 bpf_mov R2 = 2
@@ -1058,7 +1062,7 @@ intends to load a word from address R6 + 8 and store it into R0 · 12 unmodified lines
10581062 If R6=PTR_TO_CTX, via is_valid_access() callback the verifier will know
10591063 that offset 8 of size 4 bytes can be accessed for reading, otherwise
10601064 the verifier will reject the program.
1061−If R6=FRAME_PTR, then access should be aligned and be within
1065+If R6=PTR_TO_STACK, then access should be aligned and be within
10621066 stack bounds, which are [-MAX_BPF_STACK, 0). In this example offset is 8,
10631067 so it will fail verification, since it's out of bounds.
10641068
@@ -1069,7 +1073,7 @@ For example: · 4 unmodified lines
10691073 bpf_ld R0 = *(u32 *)(R10 - 4)
10701074 bpf_exit
10711075 is invalid program.
1072−Though R10 is correct read-only register and has type FRAME_PTR
1076+Though R10 is correct read-only register and has type PTR_TO_STACK
10731077 and R10 - 4 is within stack bounds, there were no stores into that location.
10741078
10751079 Pointer register spill/fill is tracked as well, since four (R6-R9)
@@ -1094,6 +1098,71 @@ all use cases. · 18 unmodified lines
10941098
10951099 See details of eBPF verifier in kernel/bpf/verifier.c
10961100
1101+Register value tracking
1102+-----------------------
1103+In order to determine the safety of an eBPF program, the verifier must track
1104+the range of possible values in each register and also in each stack slot.
1105+This is done with 'struct bpf_reg_state', defined in include/linux/
1106+bpf_verifier.h, which unifies tracking of scalar and pointer values. Each
1107+register state has a type, which is either NOT_INIT (the register has not been
1108+written to), SCALAR_VALUE (some value which is not usable as a pointer), or a
1109+pointer type. The types of pointers describe their base, as follows:
1110+ PTR_TO_CTX Pointer to bpf_context.
1111+ CONST_PTR_TO_MAP Pointer to struct bpf_map. "Const" because arithmetic
1112+ on these pointers is forbidden.
1113+ PTR_TO_MAP_VALUE Pointer to the value stored in a map element.
1114+ PTR_TO_MAP_VALUE_OR_NULL
1115+ Either a pointer to a map value, or NULL; map accesses
1116+ (see section 'eBPF maps', below) return this type,
1117+ which becomes a PTR_TO_MAP_VALUE when checked != NULL.
1118+ Arithmetic on these pointers is forbidden.
1119+ PTR_TO_STACK Frame pointer.
1120+ PTR_TO_PACKET skb->data.
1121+ PTR_TO_PACKET_END skb->data + headlen; arithmetic forbidden.
1122+However, a pointer may be offset from this base (as a result of pointer
1123+arithmetic), and this is tracked in two parts: the 'fixed offset' and 'variable
1124+offset'. The former is used when an exactly-known value (e.g. an immediate
1125+operand) is added to a pointer, while the latter is used for values which are
1126+not exactly known. The variable offset is also used in SCALAR_VALUEs, to track
1127+the range of possible values in the register.
1128+The verifier's knowledge about the variable offset consists of:
1129+* minimum and maximum values as unsigned
1130+* minimum and maximum values as signed
1131+* knowledge of the values of individual bits, in the form of a 'tnum': a u64
1132+'mask' and a u64 'value'. 1s in the mask represent bits whose value is unknown;
1133+1s in the value represent bits known to be 1. Bits known to be 0 have 0 in both
1134+mask and value; no bit should ever be 1 in both. For example, if a byte is read
1135+into a register from memory, the register's top 56 bits are known zero, while
1136+the low 8 are unknown - which is represented as the tnum (0x0; 0xff). If we
1137+then OR this with 0x40, we get (0x40; 0xcf), then if we add 1 we get (0x0;
1138+0x1ff), because of potential carries.
1139+Besides arithmetic, the register state can also be updated by conditional
1140+branches. For instance, if a SCALAR_VALUE is compared > 8, in the 'true' branch
1141+it will have a umin_value (unsigned minimum value) of 9, whereas in the 'false'
1142+branch it will have a umax_value of 8. A signed compare (with BPF_JSGT or
1143+BPF_JSGE) would instead update the signed minimum/maximum values. Information
1144+from the signed and unsigned bounds can be combined; for instance if a value is
1145+first tested < 8 and then tested s> 4, the verifier will conclude that the value
1146+is also > 4 and s< 8, since the bounds prevent crossing the sign boundary.
1147+PTR_TO_PACKETs with a variable offset part have an 'id', which is common to all
1148+pointers sharing that same variable offset. This is important for packet range
1149+checks: after adding some variable to a packet pointer, if you then copy it to
1150+another register and (say) add a constant 4, both registers will share the same
1151+'id' but one will have a fixed offset of +4. Then if it is bounds-checked and
1152+found to be less than a PTR_TO_PACKET_END, the other register is now known to
1153+have a safe range of at least 4 bytes. See 'Direct packet access', below, for
1154+more on PTR_TO_PACKET ranges.
1155+The 'id' field is also used on PTR_TO_MAP_VALUE_OR_NULL, common to all copies of
1156+the pointer returned from a map lookup. This means that when one copy is
1157+checked and found to be non-NULL, all copies can become PTR_TO_MAP_VALUEs.
1158+As well as range-checking, the tracked information is also used for enforcing
1159+alignment of pointer accesses. For instance, on most systems the packet pointer
1160+is 2 bytes after a 4-byte alignment. If a program adds 14 bytes to that to jump
1161+over the Ethernet header, then reads IHL and addes (IHL * 4), the resulting
1162+pointer will have a variable offset known to be 4n+2 for some n, so adding the 2
1163+bytes (NET_IP_ALIGN) gives a 4-byte alignment and so word-sized accesses through
1164+that pointer are safe.
1165+
10971166 Direct packet access
10981167 --------------------
10991168 In cls_bpf and act_bpf programs the verifier allows direct access to the packet
@@ -1121,7 +1190,7 @@ it now points to 'skb->data + 14' and accessible range is [R5, R5 + 14 - 14) · 21 unmodified lines
11211190 which is zero bytes.
11221191
11231192 More complex packet access may look like:
1124− R0=imm1 R1=ctx R3=pkt(id=0,off=0,r=14) R4=pkt_end R5=pkt(id=0,off=14,r=14) R10=fp
1193+ R0=inv1 R1=ctx R3=pkt(id=0,off=0,r=14) R4=pkt_end R5=pkt(id=0,off=14,r=14) R10=fp
11251194 6: r0 = *(u8 *)(r3 +7) /* load 7th byte from the packet */
11261195 7: r4 = *(u8 *)(r3 +12)
11271196 8: r4 *= 14
@@ -1135,26 +1204,31 @@ More complex packet access may look like: · 7 unmodified lines
11351204 16: r2 += 8
11361205 17: r1 = *(u32 *)(r1 +80) /* load skb->data_end */
11371206 18: if r2 > r1 goto pc+2
1138− R0=inv56 R1=pkt_end R2=pkt(id=2,off=8,r=8) R3=pkt(id=2,off=0,r=8) R4=inv52 R5=pkt(id=0,off=14,r=14) R10=fp
1207+ R0=inv(id=0,umax_value=255,var_off=(0x0; 0xff)) R1=pkt_end R2=pkt(id=2,off=8,r=8) R3=pkt(id=2,off=0,r=8) R4=inv(id=0,umax_value=3570,var_off=(0x0; 0xfffe)) R5=pkt(id=0,off=14,r=14) R10=fp
11391208 19: r1 = *(u8 *)(r3 +4)
11401209 The state of the register R3 is R3=pkt(id=2,off=0,r=8)
11411210 id=2 means that two 'r3 += rX' instructions were seen, so r3 points to some
11421211 offset within a packet and since the program author did
11431212 'if (r3 + 8 > r1) goto err' at insn #18, the safe range is [R3, R3 + 8).
1144−The verifier only allows 'add' operation on packet registers. Any other
1145−operation will set the register state to 'unknown_value' and it won't be
1213+The verifier only allows 'add'/'sub' operations on packet registers. Any other
1214+operation will set the register state to 'SCALAR_VALUE' and it won't be
11461215 available for direct packet access.
11471216 Operation 'r3 += rX' may overflow and become less than original skb->data,
1148−therefore the verifier has to prevent that. So it tracks the number of
1149−upper zero bits in all 'uknown_value' registers, so when it sees
1150−'r3 += rX' instruction and rX is more than 16-bit value, it will error as:
1151−"cannot add integer value with N upper zero bits to ptr_to_packet"
1217+therefore the verifier has to prevent that. So when it sees 'r3 += rX'
1218+instruction and rX is more than 16-bit value, any subsequent bounds-check of r3
1219+against skb->data_end will not give us 'range' information, so attempts to read
1220+through the pointer will give "invalid access to packet" error.
11521221 Ex. after insn 'r4 = *(u8 *)(r3 +12)' (insn #7 above) the state of r4 is
1153−R4=inv56 which means that upper 56 bits on the register are guaranteed
1154−to be zero. After insn 'r4 *= 14' the state becomes R4=inv52, since
1155−multiplying 8-bit value by constant 14 will keep upper 52 bits as zero.
1156−Similarly 'r2 >>= 48' will make R2=inv48, since the shift is not sign
1157−extending. This logic is implemented in evaluate_reg_alu() function.
1222+R4=inv(id=0,umax_value=255,var_off=(0x0; 0xff)) which means that upper 56 bits
1223+of the register are guaranteed to be zero, and nothing is known about the lower
1224+8 bits. After insn 'r4 *= 14' the state becomes
1225+R4=inv(id=0,umax_value=3570,var_off=(0x0; 0xfffe)), since multiplying an 8-bit
1226+value by constant 14 will keep upper 52 bits as zero, also the least significant
1227+bit will be zero as 14 is even. Similarly 'r2 >>= 48' will make
1228+R2=inv(id=0,umax_value=65535,var_off=(0x0; 0xffff)), since the shift is not sign
1229+extending. This logic is implemented in adjust_reg_min_max_vals() function,
1230+which calls adjust_ptr_min_max_vals() for adding pointer to scalar (or vice
1231+versa) and adjust_scalar_min_max_vals() for operations on two scalars.
11581232
11591233 The end result is that bpf program author can access packet directly
11601234 using normal C code as:
@@ -1214,6 +1288,22 @@ The map is defined by: · 53 unmodified lines
12141288 . key size in bytes
12151289 . value size in bytes
12161290
1291+Pruning
1292+-------
1293+The verifier does not actually walk all possible paths through the program. For
1294+each new branch to analyse, the verifier looks at all the states it's previously
1295+been in when at this instruction. If any of them contain the current state as a
1296+subset, the branch is 'pruned' - that is, the fact that the previous state was
1297+accepted implies the current state would be as well. For instance, if in the
1298+previous state, r1 held a packet-pointer, and in the current state, r1 holds a
1299+packet-pointer with a range as long or longer and at least as strict an
1300+alignment, then r1 is safe. Similarly, if r2 was NOT_INIT before then it can't
1301+have been used by any path from that point, so any value in r2 (including
1302+another NOT_INIT) is safe. The implementation is in the function regsafe().
1303+Pruning considers not only the registers but also the stack (and any spilled
1304+registers it may hold). They must all be safe for the branch to be pruned.
1305+This is implemented in states_equal().
1306+
12171307 Understanding eBPF verifier messages
12181308 ------------------------------------
12191309
Documentation/networking/hinic.txt+125−0
@@ -0,0 +1,125 @@
1+Linux Kernel Driver for Huawei Intelligent NIC(HiNIC) family
2+============================================================
3+
4+Overview:
5+=========
6+HiNIC is a network interface card for the Data Center Area.
7+
8+The driver supports a range of link-speed devices (10GbE, 25GbE, 40GbE, etc.).
9+The driver supports also a negotiated and extendable feature set.
10+
11+Some HiNIC devices support SR-IOV. This driver is used for Physical Function
12+(PF).
13+
14+HiNIC devices support MSI-X interrupt vector for each Tx/Rx queue and
15+adaptive interrupt moderation.
16+
17+HiNIC devices support also various offload features such as checksum offload,
18+TCP Transmit Segmentation Offload(TSO), Receive-Side Scaling(RSS) and
19+LRO(Large Receive Offload).
20+
21+
22+Supported PCI vendor ID/device IDs:
23+===================================
24+
25+19e5:1822 - HiNIC PF
26+
27+
28+Driver Architecture and Source Code:
29+====================================
30+
31+hinic_dev - Implement a Logical Network device that is independent from
32+specific HW details about HW data structure formats.
33+
34+hinic_hwdev - Implement the HW details of the device and include the components
35+for accessing the PCI NIC.
36+
37+hinic_hwdev contains the following components:
38+===============================================
39+
40+HW Interface:
41+=============
42+
43+The interface for accessing the pci device (DMA memory and PCI BARs).
44+(hinic_hw_if.c, hinic_hw_if.h)
45+
46+Configuration Status Registers Area that describes the HW Registers on the
47+configuration and status BAR0. (hinic_hw_csr.h)
48+
49+MGMT components:
50+================
51+
52+Asynchronous Event Queues(AEQs) - The event queues for receiving messages from
53+the MGMT modules on the cards. (hinic_hw_eqs.c, hinic_hw_eqs.h)
54+
55+Application Programmable Interface commands(API CMD) - Interface for sending
56+MGMT commands to the card. (hinic_hw_api_cmd.c, hinic_hw_api_cmd.h)
57+
58+Management (MGMT) - the PF to MGMT channel that uses API CMD for sending MGMT
59+commands to the card and receives notifications from the MGMT modules on the
60+card by AEQs. Also set the addresses of the IO CMDQs in HW.
61+(hinic_hw_mgmt.c, hinic_hw_mgmt.h)
62+
63+IO components:
64+==============
65+
66+Completion Event Queues(CEQs) - The completion Event Queues that describe IO
67+tasks that are finished. (hinic_hw_eqs.c, hinic_hw_eqs.h)
68+
69+Work Queues(WQ) - Contain the memory and operations for use by CMD queues and
70+the Queue Pairs. The WQ is a Memory Block in a Page. The Block contains
71+pointers to Memory Areas that are the Memory for the Work Queue Elements(WQEs).
72+(hinic_hw_wq.c, hinic_hw_wq.h)
73+
74+Command Queues(CMDQ) - The queues for sending commands for IO management and is
75+used to set the QPs addresses in HW. The commands completion events are
76+accumulated on the CEQ that is configured to receive the CMDQ completion events.
77+(hinic_hw_cmdq.c, hinic_hw_cmdq.h)
78+
79+Queue Pairs(QPs) - The HW Receive and Send queues for Receiving and Transmitting
80+Data. (hinic_hw_qp.c, hinic_hw_qp.h, hinic_hw_qp_ctxt.h)
81+
82+IO - de/constructs all the IO components. (hinic_hw_io.c, hinic_hw_io.h)
83+
84+HW device:
85+==========
86+
87+HW device - de/constructs the HW Interface, the MGMT components on the
88+initialization of the driver and the IO components on the case of Interface
89+UP/DOWN Events. (hinic_hw_dev.c, hinic_hw_dev.h)
90+
91+
92+hinic_dev contains the following components:
93+===============================================
94+
95+PCI ID table - Contains the supported PCI Vendor/Device IDs.
96+(hinic_pci_tbl.h)
97+
98+Port Commands - Send commands to the HW device for port management
99+(MAC, Vlan, MTU, ...). (hinic_port.c, hinic_port.h)
100+
101+Tx Queues - Logical Tx Queues that use the HW Send Queues for transmit.
102+The Logical Tx queue is not dependent on the format of the HW Send Queue.
103+(hinic_tx.c, hinic_tx.h)
104+
105+Rx Queues - Logical Rx Queues that use the HW Receive Queues for receive.
106+The Logical Rx queue is not dependent on the format of the HW Receive Queue.
107+(hinic_rx.c, hinic_rx.h)
108+
109+hinic_dev - de/constructs the Logical Tx and Rx Queues.
110+(hinic_main.c, hinic_dev.h)
111+
112+
113+Miscellaneous:
114+=============
115+
116+Common functions that are used by HW and Logical Device.
117+(hinic_common.c, hinic_common.h)
118+
119+
120+Support
121+=======
122+
123+If an issue is identified with the released source code on the supported kernel
124+with a supported adapter, email the specific information related to the issue to
125+aviad.krawczyk@huawei.com.
Documentation/networking/ieee802154.txt+8−8
@@ -84,17 +84,17 @@ Device drivers API · 83 unmodified lines
8484 ==================
8585
8686 The include/net/mac802154.h defines following functions:
87− - struct ieee802154_dev *ieee802154_alloc_device
88− (size_t priv_size, struct ieee802154_ops *ops):
89− allocation of IEEE 802.15.4 compatible device
87+ - struct ieee802154_hw *
88+ ieee802154_alloc_hw(size_t priv_data_len, const struct ieee802154_ops *ops):
89+ allocation of IEEE 802.15.4 compatible hardware device
9090
91− - void ieee802154_free_device(struct ieee802154_dev *dev):
92− freeing allocated device
91+ - void ieee802154_free_hw(struct ieee802154_hw *hw):
92+ freeing allocated hardware device
9393
94− - int ieee802154_register_device(struct ieee802154_dev *dev):
95− register PHY in the system
94+ - int ieee802154_register_hw(struct ieee802154_hw *hw):
95+ register PHY which is the allocated hardware device, in the system
9696
97− - void ieee802154_unregister_device(struct ieee802154_dev *dev):
97+ - void ieee802154_unregister_hw(struct ieee802154_hw *hw):
9898 freeing registered PHY
9999
100100 Moreover IEEE 802.15.4 device operations structure should be filled.
Documentation/networking/index.rst+1−0
@@ -6,6 +6,7 @@ Contents: · 5 unmodified lines
66 .. toctree::
77 :maxdepth: 2
88
9+ batman-adv
910 kapi
1011 z8530book
1112
Documentation/networking/ip-sysctl.txt+31−16
@@ -109,7 +109,10 @@ neigh/default/unres_qlen_bytes - INTEGER · 108 unmodified lines
109109 queued for each unresolved address by other network layers.
110110 (added in linux 3.3)
111111 Setting negative value is meaningless and will return error.
112− Default: 65536 Bytes(64KB)
112+ Default: SK_WMEM_MAX, (same as net.core.wmem_default).
113+ Exact value depends on architecture and kernel options,
114+ but should be enough to allow queuing 256 packets
115+ of medium size.
113116
114117 neigh/default/unres_qlen - INTEGER
115118 The maximum number of packets which may be queued for each
@@ -119,7 +122,7 @@ neigh/default/unres_qlen - INTEGER · 3 unmodified lines
119122 unexpected packet loss. The current default value is calculated
120123 according to default value of unres_qlen_bytes and true size of
121124 packet.
122− Default: 31
125+ Default: 101
123126
124127 mtu_expires - INTEGER
125128 Time, in seconds, that cached PMTU information is kept.
@@ -353,12 +356,7 @@ tcp_l3mdev_accept - BOOLEAN · 227 unmodified lines
353356 compiled with CONFIG_NET_L3_MASTER_DEV.
354357
355358 tcp_low_latency - BOOLEAN
356− If set, the TCP stack makes decisions that prefer lower
357− latency as opposed to higher throughput. By default, this
358− option is not set meaning that higher throughput is preferred.
359− An example of an application where this default should be
360− changed would be a Beowulf compute cluster.
361− Default: 0
359+ This is a legacy option, it has no effect anymore.
362360
363361 tcp_max_orphans - INTEGER
364362 Maximal number of TCP sockets not attached to any user file handle,
@@ -1291,8 +1289,7 @@ tag - INTEGER · 926 unmodified lines
12911289 xfrm4_gc_thresh - INTEGER
12921290 The threshold at which we will start garbage collecting for IPv4
12931291 destination cache entries. At twice this value the system will
1294− refuse new allocations. The value must be set below the flowcache
1295− limit (4096 * number of online cpus) to take effect.
1292+ refuse new allocations.
12961293
12971294 igmp_link_local_mcast_reports - BOOLEAN
12981295 Enable IGMP reports for link local multicast groups in the
@@ -1356,6 +1353,15 @@ flowlabel_state_ranges - BOOLEAN · 57 unmodified lines
13561353 FALSE: disabled
13571354 Default: true
13581355
1356+flowlabel_reflect - BOOLEAN
1357+ Automatically reflect the flow label. Needed for Path MTU
1358+ Discovery to work with Equal Cost Multipath Routing in anycast
1359+ environments. See RFC 7690 and:
1360+ https://tools.ietf.org/html/draft-wang-6man-flow-label-reflection-01
1361+ TRUE: enabled
1362+ FALSE: disabled
1363+ Default: FALSE
1364+
13591365 anycast_src_echo_reply - BOOLEAN
13601366 Controls the use of anycast addresses as source addresses for ICMPv6
13611367 echo reply
@@ -1674,6 +1680,9 @@ accept_dad - INTEGER · 312 unmodified lines
16741680 2: Enable DAD, and disable IPv6 operation if MAC-based duplicate
16751681 link-local address has been found.
16761682
1683+ DAD operation and mode on a given interface will be selected according
1684+ to the maximum value of conf/{all,interface}/accept_dad.
1685+
16771686 force_tllao - BOOLEAN
16781687 Enable sending the target link-layer address option even when
16791688 responding to a unicast neighbor solicitation.
@@ -1721,16 +1730,23 @@ suppress_frag_ndisc - INTEGER · 41 unmodified lines
17211730
17221731 optimistic_dad - BOOLEAN
17231732 Whether to perform Optimistic Duplicate Address Detection (RFC 4429).
1724− 0: disabled (default)
1725− 1: enabled
1733+ 0: disabled (default)
1734+ 1: enabled
1735+
1736+ Optimistic Duplicate Address Detection for the interface will be enabled
1737+ if at least one of conf/{all,interface}/optimistic_dad is set to 1,
1738+ it will be disabled otherwise.
17261739
17271740 use_optimistic - BOOLEAN
17281741 If enabled, do not classify optimistic addresses as deprecated during
17291742 source address selection. Preferred addresses will still be chosen
17301743 before optimistic addresses, subject to other ranking in the source
17311744 address selection algorithm.
1732− 0: disabled (default)
1733− 1: enabled
1745+ 0: disabled (default)
1746+ 1: enabled
1747+
1748+ This will be enabled if at least one of
1749+ conf/{all,interface}/use_optimistic is set to 1, disabled otherwise.
17341750
17351751 stable_secret - IPv6 address
17361752 This IPv6 address will be used as a secret to generate IPv6
@@ -1778,8 +1794,7 @@ ratelimit - INTEGER · 41 unmodified lines
17781794 xfrm6_gc_thresh - INTEGER
17791795 The threshold at which we will start garbage collecting for IPv6
17801796 destination cache entries. At twice this value the system will
1781− refuse new allocations. The value must be set below the flowcache
1782− limit (4096 * number of online cpus) to take effect.
1797+ refuse new allocations.
17831798
17841799
17851800 IPv6 Update by:
Documentation/networking/msg_zerocopy.rst+257−0
@@ -0,0 +1,257 @@
1+
2+============
3+MSG_ZEROCOPY
4+============
5+
6+Intro
7+=====
8+
9+The MSG_ZEROCOPY flag enables copy avoidance for socket send calls.
10+The feature is currently implemented for TCP sockets.
11+
12+
13+Opportunity and Caveats
14+-----------------------
15+
16+Copying large buffers between user process and kernel can be
17+expensive. Linux supports various interfaces that eschew copying,
18+such as sendpage and splice. The MSG_ZEROCOPY flag extends the
19+underlying copy avoidance mechanism to common socket send calls.
20+
21+Copy avoidance is not a free lunch. As implemented, with page pinning,
22+it replaces per byte copy cost with page accounting and completion
23+notification overhead. As a result, MSG_ZEROCOPY is generally only
24+effective at writes over around 10 KB.
25+
26+Page pinning also changes system call semantics. It temporarily shares
27+the buffer between process and network stack. Unlike with copying, the
28+process cannot immediately overwrite the buffer after system call
29+return without possibly modifying the data in flight. Kernel integrity
30+is not affected, but a buggy program can possibly corrupt its own data
31+stream.
32+
33+The kernel returns a notification when it is safe to modify data.
34+Converting an existing application to MSG_ZEROCOPY is not always as
35+trivial as just passing the flag, then.
36+
37+
38+More Info
39+---------
40+
41+Much of this document was derived from a longer paper presented at
42+netdev 2.1. For more in-depth information see that paper and talk,
43+the excellent reporting over at LWN.net or read the original code.
44+
45+ paper, slides, video
46+ https://netdevconf.org/2.1/session.html?debruijn
47+
48+ LWN article
49+ https://lwn.net/Articles/726917/
50+
51+ patchset
52+ [PATCH net-next v4 0/9] socket sendmsg MSG_ZEROCOPY
53+ http://lkml.kernel.org/r/20170803202945.70750-1-willemdebruijn.kernel@gmail.com
54+
55+
56+Interface
57+=========
58+
59+Passing the MSG_ZEROCOPY flag is the most obvious step to enable copy
60+avoidance, but not the only one.
61+
62+Socket Setup
63+------------
64+
65+The kernel is permissive when applications pass undefined flags to the
66+send system call. By default it simply ignores these. To avoid enabling
67+copy avoidance mode for legacy processes that accidentally already pass
68+this flag, a process must first signal intent by setting a socket option:
69+
70+::
71+
72+ if (setsockopt(fd, SOL_SOCKET, SO_ZEROCOPY, &one, sizeof(one)))
73+ error(1, errno, "setsockopt zerocopy");
74+
75+
76+Transmission
77+------------
78+
79+The change to send (or sendto, sendmsg, sendmmsg) itself is trivial.
80+Pass the new flag.
81+
82+::
83+
84+ ret = send(fd, buf, sizeof(buf), MSG_ZEROCOPY);
85+
86+A zerocopy failure will return -1 with errno ENOBUFS. This happens if
87+the socket option was not set, the socket exceeds its optmem limit or
88+the user exceeds its ulimit on locked pages.
89+
90+
91+Mixing copy avoidance and copying
92+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
93+
94+Many workloads have a mixture of large and small buffers. Because copy
95+avoidance is more expensive than copying for small packets, the
96+feature is implemented as a flag. It is safe to mix calls with the flag
97+with those without.
98+
99+
100+Notifications
101+-------------
102+
103+The kernel has to notify the process when it is safe to reuse a
104+previously passed buffer. It queues completion notifications on the
105+socket error queue, akin to the transmit timestamping interface.
106+
107+The notification itself is a simple scalar value. Each socket
108+maintains an internal unsigned 32-bit counter. Each send call with
109+MSG_ZEROCOPY that successfully sends data increments the counter. The
110+counter is not incremented on failure or if called with length zero.
111+The counter counts system call invocations, not bytes. It wraps after
112+UINT_MAX calls.
113+
114+
115+Notification Reception
116+~~~~~~~~~~~~~~~~~~~~~~
117+
118+The below snippet demonstrates the API. In the simplest case, each
119+send syscall is followed by a poll and recvmsg on the error queue.
120+
121+Reading from the error queue is always a non-blocking operation. The
122+poll call is there to block until an error is outstanding. It will set
123+POLLERR in its output flags. That flag does not have to be set in the
124+events field. Errors are signaled unconditionally.
125+
126+::
127+
128+ pfd.fd = fd;
129+ pfd.events = 0;
130+ if (poll(&pfd, 1, -1) != 1 || pfd.revents & POLLERR == 0)
131+ error(1, errno, "poll");
132+
133+ ret = recvmsg(fd, &msg, MSG_ERRQUEUE);
134+ if (ret == -1)
135+ error(1, errno, "recvmsg");
136+
137+ read_notification(msg);
138+
139+The example is for demonstration purpose only. In practice, it is more
140+efficient to not wait for notifications, but read without blocking
141+every couple of send calls.
142+
143+Notifications can be processed out of order with other operations on
144+the socket. A socket that has an error queued would normally block
145+other operations until the error is read. Zerocopy notifications have
146+a zero error code, however, to not block send and recv calls.
147+
148+
149+Notification Batching
150+~~~~~~~~~~~~~~~~~~~~~
151+
152+Multiple outstanding packets can be read at once using the recvmmsg
153+call. This is often not needed. In each message the kernel returns not
154+a single value, but a range. It coalesces consecutive notifications
155+while one is outstanding for reception on the error queue.
156+
157+When a new notification is about to be queued, it checks whether the
158+new value extends the range of the notification at the tail of the
159+queue. If so, it drops the new notification packet and instead increases
160+the range upper value of the outstanding notification.
161+
162+For protocols that acknowledge data in-order, like TCP, each
163+notification can be squashed into the previous one, so that no more
164+than one notification is outstanding at any one point.
165+
166+Ordered delivery is the common case, but not guaranteed. Notifications
167+may arrive out of order on retransmission and socket teardown.
168+
169+
170+Notification Parsing
171+~~~~~~~~~~~~~~~~~~~~
172+
173+The below snippet demonstrates how to parse the control message: the
174+read_notification() call in the previous snippet. A notification
175+is encoded in the standard error format, sock_extended_err.
176+
177+The level and type fields in the control data are protocol family
178+specific, IP_RECVERR or IPV6_RECVERR.
179+
180+Error origin is the new type SO_EE_ORIGIN_ZEROCOPY. ee_errno is zero,
181+as explained before, to avoid blocking read and write system calls on
182+the socket.
183+
184+The 32-bit notification range is encoded as [ee_info, ee_data]. This
185+range is inclusive. Other fields in the struct must be treated as
186+undefined, bar for ee_code, as discussed below.
187+
188+::
189+
190+ struct sock_extended_err *serr;
191+ struct cmsghdr *cm;
192+
193+ cm = CMSG_FIRSTHDR(msg);
194+ if (cm->cmsg_level != SOL_IP &&
195+ cm->cmsg_type != IP_RECVERR)
196+ error(1, 0, "cmsg");
197+
198+ serr = (void *) CMSG_DATA(cm);
199+ if (serr->ee_errno != 0 ||
200+ serr->ee_origin != SO_EE_ORIGIN_ZEROCOPY)
201+ error(1, 0, "serr");
202+
203+ printf("completed: %u..%u\n", serr->ee_info, serr->ee_data);
204+
205+
206+Deferred copies
207+~~~~~~~~~~~~~~~
208+
209+Passing flag MSG_ZEROCOPY is a hint to the kernel to apply copy
210+avoidance, and a contract that the kernel will queue a completion
211+notification. It is not a guarantee that the copy is elided.
212+
213+Copy avoidance is not always feasible. Devices that do not support
214+scatter-gather I/O cannot send packets made up of kernel generated
215+protocol headers plus zerocopy user data. A packet may need to be
216+converted to a private copy of data deep in the stack, say to compute
217+a checksum.
218+
219+In all these cases, the kernel returns a completion notification when
220+it releases its hold on the shared pages. That notification may arrive
221+before the (copied) data is fully transmitted. A zerocopy completion
222+notification is not a transmit completion notification, therefore.
223+
224+Deferred copies can be more expensive than a copy immediately in the
225+system call, if the data is no longer warm in the cache. The process
226+also incurs notification processing cost for no benefit. For this
227+reason, the kernel signals if data was completed with a copy, by
228+setting flag SO_EE_CODE_ZEROCOPY_COPIED in field ee_code on return.
229+A process may use this signal to stop passing flag MSG_ZEROCOPY on
230+subsequent requests on the same socket.
231+
232+
233+Implementation
234+==============
235+
236+Loopback
237+--------
238+
239+Data sent to local sockets can be queued indefinitely if the receive
240+process does not read its socket. Unbound notification latency is not
241+acceptable. For this reason all packets generated with MSG_ZEROCOPY
242+that are looped to a local socket will incur a deferred copy. This
243+includes looping onto packet sockets (e.g., tcpdump) and tun devices.
244+
245+
246+Testing
247+=======
248+
249+More realistic example code can be found in the kernel source under
250+tools/testing/selftests/net/msg_zerocopy.c.
251+
252+Be cognizant of the loopback constraint. The test can be run between
253+a pair of hosts. But if run between a local pair of processes, for
254+instance when run with msg_zerocopy.sh between a veth pair across
255+namespaces, the test will not show any improvement. For testing, the
256+loopback restriction can be temporarily relaxed by making
257+skb_orphan_frags_rx identical to skb_orphan_frags.
Documentation/networking/netdev-FAQ.txt+8−0
@@ -111,6 +111,14 @@ A: Generally speaking, the patches get triaged quickly (in less than 48h). · 110 unmodified lines
111111 patch is a good way to ensure your patch is ignored or pushed to
112112 the bottom of the priority list.
113113
114+Q: I submitted multiple versions of the patch series, should I directly update
115+ patchwork for the previous versions of these patch series?
116+
117+A: No, please don't interfere with the patch status on patchwork, leave it to
118+ the maintainer to figure out what is the most recent and current version that
119+ should be applied. If there is any doubt, the maintainer will reply and ask
120+ what should be done.
121+
114122 Q: How can I tell what patches are queued up for backporting to the
115123 various stable releases?
116124
Documentation/networking/netvsc.txt+75−0
@@ -0,0 +1,75 @@
1+Hyper-V network driver
2+======================
3+
4+Compatibility
5+=============
6+
7+This driver is compatible with Windows Server 2012 R2, 2016 and
8+Windows 10.
9+
10+Features
11+========
12+
13+ Checksum offload
14+ ----------------
15+ The netvsc driver supports checksum offload as long as the
16+ Hyper-V host version does. Windows Server 2016 and Azure
17+ support checksum offload for TCP and UDP for both IPv4 and
18+ IPv6. Windows Server 2012 only supports checksum offload for TCP.
19+
20+ Receive Side Scaling
21+ --------------------
22+ Hyper-V supports receive side scaling. For TCP, packets are
23+ distributed among available queues based on IP address and port
24+ number.
25+
26+ For UDP, we can switch UDP hash level between L3 and L4 by ethtool
27+ command. UDP over IPv4 and v6 can be set differently. The default
28+ hash level is L4. We currently only allow switching TX hash level
29+ from within the guests.
30+
31+ On Azure, fragmented UDP packets have high loss rate with L4
32+ hashing. Using L3 hashing is recommended in this case.
33+
34+ For example, for UDP over IPv4 on eth0:
35+ To include UDP port numbers in hashing:
36+ ethtool -N eth0 rx-flow-hash udp4 sdfn
37+ To exclude UDP port numbers in hashing:
38+ ethtool -N eth0 rx-flow-hash udp4 sd
39+ To show UDP hash level:
40+ ethtool -n eth0 rx-flow-hash udp4
41+
42+ Generic Receive Offload, aka GRO
43+ --------------------------------
44+ The driver supports GRO and it is enabled by default. GRO coalesces
45+ like packets and significantly reduces CPU usage under heavy Rx
46+ load.
47+
48+ SR-IOV support
49+ --------------
50+ Hyper-V supports SR-IOV as a hardware acceleration option. If SR-IOV
51+ is enabled in both the vSwitch and the guest configuration, then the
52+ Virtual Function (VF) device is passed to the guest as a PCI
53+ device. In this case, both a synthetic (netvsc) and VF device are
54+ visible in the guest OS and both NIC's have the same MAC address.
55+
56+ The VF is enslaved by netvsc device. The netvsc driver will transparently
57+ switch the data path to the VF when it is available and up.
58+ Network state (addresses, firewall, etc) should be applied only to the
59+ netvsc device; the slave device should not be accessed directly in
60+ most cases. The exceptions are if some special queue discipline or
61+ flow direction is desired, these should be applied directly to the
62+ VF slave device.
63+
64+ Receive Buffer
65+ --------------
66+ Packets are received into a receive area which is created when device
67+ is probed. The receive area is broken into MTU sized chunks and each may
68+ contain one or more packets. The number of receive sections may be changed
69+ via ethtool Rx ring parameters.
70+
71+ There is a similar send buffer which is used to aggregate packets for sending.
72+ The send area is broken into chunks of 6144 bytes, each of section may
73+ contain one or more packets. The send buffer is an optimization, the driver
74+ will use slower method to handle very large packets or if the send buffer
75+ area is exhausted.
Documentation/networking/nf_conntrack-sysctl.txt+0−11
@@ -96,17 +96,6 @@ nf_conntrack_max - INTEGER · 95 unmodified lines
9696 Size of connection tracking table. Default value is
9797 nf_conntrack_buckets value * 4.
9898
99−nf_conntrack_default_on - BOOLEAN
100− 0 - don't register conntrack in new net namespaces
101− 1 - register conntrack in new net namespaces (default)
102−
103− This controls wheter newly created network namespaces have connection
104− tracking enabled by default. It will be enabled automatically
105− regardless of this setting if the new net namespace requires
106− connection tracking, e.g. when NAT rules are created.
107− This setting is only visible in initial user namespace, it has no
108− effect on existing namespaces.
109−
11099 nf_conntrack_tcp_be_liberal - BOOLEAN
111100 0 - disabled (default)
112101 not 0 - enabled
Documentation/networking/rmnet.txt+82−0
@@ -0,0 +1,82 @@
1+1. Introduction
2+
3+rmnet driver is used for supporting the Multiplexing and aggregation
4+Protocol (MAP). This protocol is used by all recent chipsets using Qualcomm
5+Technologies, Inc. modems.
6+
7+This driver can be used to register onto any physical network device in
8+IP mode. Physical transports include USB, HSIC, PCIe and IP accelerator.
9+
10+Multiplexing allows for creation of logical netdevices (rmnet devices) to
11+handle multiple private data networks (PDN) like a default internet, tethering,
12+multimedia messaging service (MMS) or IP media subsystem (IMS). Hardware sends
13+packets with MAP headers to rmnet. Based on the multiplexer id, rmnet
14+routes to the appropriate PDN after removing the MAP header.
15+
16+Aggregation is required to achieve high data rates. This involves hardware
17+sending aggregated bunch of MAP frames. rmnet driver will de-aggregate
18+these MAP frames and send them to appropriate PDN's.
19+
20+2. Packet format
21+
22+a. MAP packet (data / control)
23+
24+MAP header has the same endianness of the IP packet.
25+
26+Packet format -
27+
28+Bit 0 1 2-7 8 - 15 16 - 31
29+Function Command / Data Reserved Pad Multiplexer ID Payload length
30+Bit 32 - x
31+Function Raw Bytes
32+
33+Command (1)/ Data (0) bit value is to indicate if the packet is a MAP command
34+or data packet. Control packet is used for transport level flow control. Data
35+packets are standard IP packets.
36+
37+Reserved bits are usually zeroed out and to be ignored by receiver.
38+
39+Padding is number of bytes to be added for 4 byte alignment if required by
40+hardware.
41+
42+Multiplexer ID is to indicate the PDN on which data has to be sent.
43+
44+Payload length includes the padding length but does not include MAP header
45+length.
46+
47+b. MAP packet (command specific)
48+
49+Bit 0 1 2-7 8 - 15 16 - 31
50+Function Command Reserved Pad Multiplexer ID Payload length
51+Bit 32 - 39 40 - 45 46 - 47 48 - 63
52+Function Command name Reserved Command Type Reserved
53+Bit 64 - 95
54+Function Transaction ID
55+Bit 96 - 127
56+Function Command data
57+
58+Command 1 indicates disabling flow while 2 is enabling flow
59+
60+Command types -
61+0 for MAP command request
62+1 is to acknowledge the receipt of a command
63+2 is for unsupported commands
64+3 is for error during processing of commands
65+
66+c. Aggregation
67+
68+Aggregation is multiple MAP packets (can be data or command) delivered to
69+rmnet in a single linear skb. rmnet will process the individual
70+packets and either ACK the MAP command or deliver the IP packet to the
71+network stack as needed
72+
73+MAP header|IP Packet|Optional padding|MAP header|IP Packet|Optional padding....
74+MAP header|IP Packet|Optional padding|MAP header|Command Packet|Optional pad...
75+
76+3. Userspace configuration
77+
78+rmnet userspace configuration is done through netlink library librmnetctl
79+and command line utility rmnetcli. Utility is hosted in codeaurora forum git.
80+The driver uses rtnl_link_ops for communication.
81+
82+https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/dataservices/tree/rmnetctl
Documentation/networking/rxrpc.txt+56−1
@@ -818,10 +818,15 @@ The kernel interface functions are as follows: · 817 unmodified lines
818818
819819 (*) Send data through a call.
820820
821+ typedef void (*rxrpc_notify_end_tx_t)(struct sock *sk,
822+ unsigned long user_call_ID,
823+ struct sk_buff *skb);
824+
821825 int rxrpc_kernel_send_data(struct socket *sock,
822826 struct rxrpc_call *call,
823827 struct msghdr *msg,
824− size_t len);
828+ size_t len,
829+ rxrpc_notify_end_tx_t notify_end_rx);
825830
826831 This is used to supply either the request part of a client call or the
827832 reply part of a server call. msg.msg_iovlen and msg.msg_iov specify the
@@ -832,6 +837,11 @@ The kernel interface functions are as follows: · 4 unmodified lines
832837 The msg must not specify a destination address, control data or any flags
833838 other than MSG_MORE. len is the total amount of data to transmit.
834839
840+ notify_end_rx can be NULL or it can be used to specify a function to be
841+ called when the call changes state to end the Tx phase. This function is
842+ called with the call-state spinlock held to prevent any reply or final ACK
843+ from being delivered first.
844+
835845 (*) Receive data from a call.
836846
837847 int rxrpc_kernel_recv_data(struct socket *sock,
@@ -965,6 +975,51 @@ The kernel interface functions are as follows: · 127 unmodified lines
965975 size should be set when the call is begun. tx_total_len may not be less
966976 than zero.
967977
978+ (*) Check to see the completion state of a call so that the caller can assess
979+ whether it needs to be retried.
980+
981+ enum rxrpc_call_completion {
982+ RXRPC_CALL_SUCCEEDED,
983+ RXRPC_CALL_REMOTELY_ABORTED,
984+ RXRPC_CALL_LOCALLY_ABORTED,
985+ RXRPC_CALL_LOCAL_ERROR,
986+ RXRPC_CALL_NETWORK_ERROR,
987+ };
988+
989+ int rxrpc_kernel_check_call(struct socket *sock, struct rxrpc_call *call,
990+ enum rxrpc_call_completion *_compl,
991+ u32 *_abort_code);
992+
993+ On return, -EINPROGRESS will be returned if the call is still ongoing; if
994+ it is finished, *_compl will be set to indicate the manner of completion,
995+ *_abort_code will be set to any abort code that occurred. 0 will be
996+ returned on a successful completion, -ECONNABORTED will be returned if the
997+ client failed due to a remote abort and anything else will return an
998+ appropriate error code.
999+
1000+ The caller should look at this information to decide if it's worth
1001+ retrying the call.
1002+
1003+ (*) Retry a client call.
1004+
1005+ int rxrpc_kernel_retry_call(struct socket *sock,
1006+ struct rxrpc_call *call,
1007+ struct sockaddr_rxrpc *srx,
1008+ struct key *key);
1009+
1010+ This attempts to partially reinitialise a call and submit it again whilst
1011+ reusing the original call's Tx queue to avoid the need to repackage and
1012+ re-encrypt the data to be sent. call indicates the call to retry, srx the
1013+ new address to send it to and key the encryption key to use for signing or
1014+ encrypting the packets.
1015+
1016+ For this to work, the first Tx data packet must still be in the transmit
1017+ queue, and currently this is only permitted for local and network errors
1018+ and the call must not have been aborted. Any partially constructed Tx
1019+ packet is left as is and can continue being filled afterwards.
1020+
1021+ It returns 0 if the call was requeued and an error otherwise.
1022+
9681023
9691024 =======================
9701025 CONFIGURABLE PARAMETERS
Documentation/networking/strparser.txt+140−69
@@ -1,45 +1,107 @@
1−Stream Parser
2−-------------
1+Stream Parser (strparser)
2+
3+Introduction
4+============
35
46 The stream parser (strparser) is a utility that parses messages of an
5−application layer protocol running over a TCP connection. The stream
7+application layer protocol running over a data stream. The stream
68 parser works in conjunction with an upper layer in the kernel to provide
79 kernel support for application layer messages. For instance, Kernel
810 Connection Multiplexor (KCM) uses the Stream Parser to parse messages
911 using a BPF program.
1012
13+The strparser works in one of two modes: receive callback or general
14+mode.
15+
16+In receive callback mode, the strparser is called from the data_ready
17+callback of a TCP socket. Messages are parsed and delivered as they are
18+received on the socket.
19+
20+In general mode, a sequence of skbs are fed to strparser from an
21+outside source. Message are parsed and delivered as the sequence is
22+processed. This modes allows strparser to be applied to arbitrary
23+streams of data.
24+
1125 Interface
12−---------
26+=========
1327
1428 The API includes a context structure, a set of callbacks, utility
15−functions, and a data_ready function. The callbacks include
16−a parse_msg function that is called to perform parsing (e.g.
17−BPF parsing in case of KCM), and a rcv_msg function that is called
18−when a full message has been completed.
29+functions, and a data_ready function for receive callback mode. The
30+callbacks include a parse_msg function that is called to perform
31+parsing (e.g. BPF parsing in case of KCM), and a rcv_msg function
32+that is called when a full message has been completed.
33+
34+Functions
35+=========
36+
37+strp_init(struct strparser *strp, struct sock *sk,
38+ const struct strp_callbacks *cb)
39+
40+ Called to initialize a stream parser. strp is a struct of type
41+ strparser that is allocated by the upper layer. sk is the TCP
42+ socket associated with the stream parser for use with receive
43+ callback mode; in general mode this is set to NULL. Callbacks
44+ are called by the stream parser (the callbacks are listed below).
45+
46+void strp_pause(struct strparser *strp)
47+
48+ Temporarily pause a stream parser. Message parsing is suspended
49+ and no new messages are delivered to the upper layer.
50+
51+void strp_pause(struct strparser *strp)
52+
53+ Unpause a paused stream parser.
54+
55+void strp_stop(struct strparser *strp);
56+
57+ strp_stop is called to completely stop stream parser operations.
58+ This is called internally when the stream parser encounters an
59+ error, and it is called from the upper layer to stop parsing
60+ operations.
61+
62+void strp_done(struct strparser *strp);
63+
64+ strp_done is called to release any resources held by the stream
65+ parser instance. This must be called after the stream processor
66+ has been stopped.
1967
20−A stream parser can be instantiated for a TCP connection. This is done
21−by:
68+int strp_process(struct strparser *strp, struct sk_buff *orig_skb,
69+ unsigned int orig_offset, size_t orig_len,
70+ size_t max_msg_size, long timeo)
2271
23−strp_init(struct strparser *strp, struct sock *csk,
24− struct strp_callbacks *cb)
72+ strp_process is called in general mode for a stream parser to
73+ parse an sk_buff. The number of bytes processed or a negative
74+ error number is returned. Note that strp_process does not
75+ consume the sk_buff. max_msg_size is maximum size the stream
76+ parser will parse. timeo is timeout for completing a message.
2577
26−strp is a struct of type strparser that is allocated by the upper layer.
27−csk is the TCP socket associated with the stream parser. Callbacks are
28−called by the stream parser.
78+void strp_data_ready(struct strparser *strp);
79+
80+ The upper layer calls strp_tcp_data_ready when data is ready on
81+ the lower socket for strparser to process. This should be called
82+ from a data_ready callback that is set on the socket. Note that
83+ maximum messages size is the limit of the receive socket
84+ buffer and message timeout is the receive timeout for the socket.
85+
86+void strp_check_rcv(struct strparser *strp);
87+
88+ strp_check_rcv is called to check for new messages on the socket.
89+ This is normally called at initialization of a stream parser
90+ instance or after strp_unpause.
2991
3092 Callbacks
31−---------
93+=========
3294
33−There are four callbacks:
95+There are six callbacks:
3496
3597 int (*parse_msg)(struct strparser *strp, struct sk_buff *skb);
3698
3799 parse_msg is called to determine the length of the next message
38100 in the stream. The upper layer must implement this function. It
39101 should parse the sk_buff as containing the headers for the
40− next application layer messages in the stream.
102+ next application layer message in the stream.
41103
42− The skb->cb in the input skb is a struct strp_rx_msg. Only
104+ The skb->cb in the input skb is a struct strp_msg. Only
43105 the offset field is relevant in parse_msg and gives the offset
44106 where the message starts in the skb.
45107
@@ -50,26 +112,41 @@ int (*parse_msg)(struct strparser *strp, struct sk_buff *skb); · 4 unmodified lines
50112 -ESTRPIPE : current message should not be processed by the
51113 kernel, return control of the socket to userspace which
52114 can proceed to read the messages itself
53− other < 0 : Error is parsing, give control back to userspace
115+ other < 0 : Error in parsing, give control back to userspace
54116 assuming that synchronization is lost and the stream
55117 is unrecoverable (application expected to close TCP socket)
56118
57119 In the case that an error is returned (return value is less than
58− zero) the stream parser will set the error on TCP socket and wake
59− it up. If parse_msg returned -ESTRPIPE and the stream parser had
60− previously read some bytes for the current message, then the error
61− set on the attached socket is ENODATA since the stream is
62− unrecoverable in that case.
120+ zero) and the parser is in receive callback mode, then it will set
121+ the error on TCP socket and wake it up. If parse_msg returned
122+ -ESTRPIPE and the stream parser had previously read some bytes for
123+ the current message, then the error set on the attached socket is
124+ ENODATA since the stream is unrecoverable in that case.
125+
126+void (*lock)(struct strparser *strp)
127+
128+ The lock callback is called to lock the strp structure when
129+ the strparser is performing an asynchronous operation (such as
130+ processing a timeout). In receive callback mode the default
131+ function is to lock_sock for the associated socket. In general
132+ mode the callback must be set appropriately.
133+
134+void (*unlock)(struct strparser *strp)
135+
136+ The unlock callback is called to release the lock obtained
137+ by the lock callback. In receive callback mode the default
138+ function is release_sock for the associated socket. In general
139+ mode the callback must be set appropriately.
63140
64141 void (*rcv_msg)(struct strparser *strp, struct sk_buff *skb);
65142
66143 rcv_msg is called when a full message has been received and
67144 is queued. The callee must consume the sk_buff; it can
68145 call strp_pause to prevent any further messages from being
69− received in rcv_msg (see strp_pause below). This callback
146+ received in rcv_msg (see strp_pause above). This callback
70147 must be set.
71148
72− The skb->cb in the input skb is a struct strp_rx_msg. This
149+ The skb->cb in the input skb is a struct strp_msg. This
73150 struct contains two fields: offset and full_len. Offset is
74151 where the message starts in the skb, and full_len is the
75152 the length of the message. skb->len - offset may be greater
@@ -78,59 +155,53 @@ void (*rcv_msg)(struct strparser *strp, struct sk_buff *skb); · 2 unmodified lines
78155 int (*read_sock_done)(struct strparser *strp, int err);
79156
80157 read_sock_done is called when the stream parser is done reading
81− the TCP socket. The stream parser may read multiple messages
82− in a loop and this function allows cleanup to occur when existing
83− the loop. If the callback is not set (NULL in strp_init) a
84− default function is used.
158+ the TCP socket in receive callback mode. The stream parser may
159+ read multiple messages in a loop and this function allows cleanup
160+ to occur when exiting the loop. If the callback is not set (NULL
161+ in strp_init) a default function is used.
85162
86163 void (*abort_parser)(struct strparser *strp, int err);
87164
88165 This function is called when stream parser encounters an error
89− in parsing. The default function stops the stream parser for the
90− TCP socket and sets the error in the socket. The default function
91− can be changed by setting the callback to non-NULL in strp_init.
166+ in parsing. The default function stops the stream parser and
167+ sets the error in the socket if the parser is in receive callback
168+ mode. The default function can be changed by setting the callback
169+ to non-NULL in strp_init.
92170
93−Functions
94−---------
171+Statistics
172+==========
95173
96−The upper layer calls strp_tcp_data_ready when data is ready on the lower
97−socket for strparser to process. This should be called from a data_ready
98−callback that is set on the socket.
174+Various counters are kept for each stream parser instance. These are in
175+the strp_stats structure. strp_aggr_stats is a convenience structure for
176+accumulating statistics for multiple stream parser instances.
177+save_strp_stats and aggregate_strp_stats are helper functions to save
178+and aggregate statistics.
99179
100−strp_stop is called to completely stop stream parser operations. This
101−is called internally when the stream parser encounters an error, and
102−it is called from the upper layer when unattaching a TCP socket.
180+Message assembly limits
181+=======================
103182
104−strp_done is called to unattach the stream parser from the TCP socket.
105−This must be called after the stream processor has be stopped.
183+The stream parser provide mechanisms to limit the resources consumed by
184+message assembly.
106185
107−strp_check_rcv is called to check for new messages on the socket. This
108−is normally called at initialization of the a stream parser instance
109−of after strp_unpause.
186+A timer is set when assembly starts for a new message. In receive
187+callback mode the message timeout is taken from rcvtime for the
188+associated TCP socket. In general mode, the timeout is passed as an
189+argument in strp_process. If the timer fires before assembly completes
190+the stream parser is aborted and the ETIMEDOUT error is set on the TCP
191+socket if in receive callback mode.
110192
111−Statistics
112−----------
193+In receive callback mode, message length is limited to the receive
194+buffer size of the associated TCP socket. If the length returned by
195+parse_msg is greater than the socket buffer size then the stream parser
196+is aborted with EMSGSIZE error set on the TCP socket. Note that this
197+makes the maximum size of receive skbuffs for a socket with a stream
198+parser to be 2*sk_rcvbuf of the TCP socket.
113199
114−Various counters are kept for each stream parser for a TCP socket.
115−These are in the strp_stats structure. strp_aggr_stats is a convenience
116−structure for accumulating statistics for multiple stream parser
117−instances. save_strp_stats and aggregate_strp_stats are helper functions
118−to save and aggregate statistics.
200+In general mode the message length limit is passed in as an argument
201+to strp_process.
119202
120−Message assembly limits
121−-----------------------
203+Author
204+======
122205
123−The stream parser provide mechanisms to limit the resources consumed by
124−message assembly.
206+Tom Herbert (tom@quantonium.net)
125207
126−A timer is set when assembly starts for a new message. The message
127−timeout is taken from rcvtime for the associated TCP socket. If the
128−timer fires before assembly completes the stream parser is aborted
129−and the ETIMEDOUT error is set on the TCP socket.
130−
131−Message length is limited to the receive buffer size of the associated
132−TCP socket. If the length returned by parse_msg is greater than
133−the socket buffer size then the stream parser is aborted with
134−EMSGSIZE error set on the TCP socket. Note that this makes the
135−maximum size of receive skbuffs for a socket with a stream parser
136−to be 2*sk_rcvbuf of the TCP socket.
Documentation/networking/switchdev.txt+36−36
@@ -13,42 +13,42 @@ an example setup using a data-center-class switch ASIC chip. Other setups · 12 unmodified lines
1313 with SR-IOV or soft switches, such as OVS, are possible.
1414
1515
16−                             User-space tools
17−
18−       user space                   |
19−      +-------------------------------------------------------------------+
20−       kernel                       | Netlink
21−                                    |
22−                     +--------------+-------------------------------+
23−                     |         Network stack                        |
24−                     |           (Linux)                            |
25−                     |                                              |
26−                     +----------------------------------------------+
16+ User-space tools
17+
18+ user space |
19+ +-------------------------------------------------------------------+
20+ kernel | Netlink
21+ |
22+ +--------------+-------------------------------+
23+ | Network stack |
24+ | (Linux) |
25+ | |
26+ +----------------------------------------------+
2727
2828 sw1p2 sw1p4 sw1p6
29−                      sw1p1  + sw1p3 +  sw1p5 +         eth1
30−                        +    |    +    |    +    |            +
31−                        |    |    |    |    |    |            |
32−                     +--+----+----+----+-+--+----+---+  +-----+-----+
33−                     |         Switch driver         |  |    mgmt   |
34−                     |        (this document)        |  |   driver  |
35−                     |                               |  |           |
36−                     +--------------+----------------+  +-----------+
37−                                    |
38−       kernel                       | HW bus (eg PCI)
39−      +-------------------------------------------------------------------+
40−       hardware                     |
41−                     +--------------+---+------------+
42−                     |         Switch device (sw1)   |
43−                     |  +----+                       +--------+
44−                     |  |    v offloaded data path   | mgmt port
45−                     |  |    |                       |
46−                     +--|----|----+----+----+----+---+
47−                        |    |    |    |    |    |
48−                        +    +    +    +    +    +
49−                       p1   p2   p3   p4   p5   p6
50−
51−                             front-panel ports
29+ sw1p1 + sw1p3 + sw1p5 + eth1
30+ + | + | + | +
31+ | | | | | | |
32+ +--+----+----+----+----+----+---+ +-----+-----+
33+ | Switch driver | | mgmt |
34+ | (this document) | | driver |
35+ | | | |
36+ +--------------+----------------+ +-----------+
37+ |
38+ kernel | HW bus (eg PCI)
39+ +-------------------------------------------------------------------+
40+ hardware |
41+ +--------------+----------------+
42+ | Switch device (sw1) |
43+ | +----+ +--------+
44+ | | v offloaded data path | mgmt port
45+ | | | |
46+ +--|----|----+----+----+----+---+
47+ | | | | | |
48+ + + + + + +
49+ p1 p2 p3 p4 p5 p6
50+
51+ front-panel ports
5252
5353
5454 Fig 1.
@@ -228,7 +228,7 @@ Learning on the device port should be enabled, as well as learning_sync: · 173 unmodified lines
228228 bridge link set dev DEV learning on self
229229 bridge link set dev DEV learning_sync on self
230230
231−Learning_sync attribute enables syncing of the learned/forgotton FDB entry to
231+Learning_sync attribute enables syncing of the learned/forgotten FDB entry to
232232 the bridge's FDB. It's possible, but not optimal, to enable learning on the
233233 device port and on the bridge port, and disable learning_sync.
234234
@@ -245,7 +245,7 @@ the responsibility of the port driver/device to age out these entries. If the · 10 unmodified lines
245245 port device supports ageing, when the FDB entry expires, it will notify the
246246 driver which in turn will notify the bridge with SWITCHDEV_FDB_DEL. If the
247247 device does not support ageing, the driver can simulate ageing using a
248−garbage collection timer to monitor FBD entries. Expired entries will be
248+garbage collection timer to monitor FDB entries. Expired entries will be
249249 notified to the bridge using SWITCHDEV_FDB_DEL. See rocker driver for
250250 example of driver running ageing timer.
251251
Documentation/nvmem/nvmem.txt+1−1
@@ -112,7 +112,7 @@ take nvmem_device as parameter. · 111 unmodified lines
112112 5. Releasing a reference to the NVMEM
113113 =====================================
114114
115−When a consumers no longer needs the NVMEM, it has to release the reference
115+When a consumer no longer needs the NVMEM, it has to release the reference
116116 to the NVMEM it has obtained using the APIs mentioned in the above section.
117117 The NVMEM framework provides 2 APIs to release a reference to the NVMEM.
118118
Documentation/power/states.txt+0−125
@@ -1,125 +0,0 @@
1−System Power Management Sleep States
2−
3−(C) 2014 Intel Corp., Rafael J. Wysocki <rafael.j.wysocki@intel.com>
4−
5−The kernel supports up to four system sleep states generically, although three
6−of them depend on the platform support code to implement the low-level details
7−for each state.
8−
9−The states are represented by strings that can be read or written to the
10−/sys/power/state file. Those strings may be "mem", "standby", "freeze" and
11−"disk", where the last three always represent Power-On Suspend (if supported),
12−Suspend-To-Idle and hibernation (Suspend-To-Disk), respectively.
13−
14−The meaning of the "mem" string is controlled by the /sys/power/mem_sleep file.
15−It contains strings representing the available modes of system suspend that may
16−be triggered by writing "mem" to /sys/power/state. These modes are "s2idle"
17−(Suspend-To-Idle), "shallow" (Power-On Suspend) and "deep" (Suspend-To-RAM).
18−The "s2idle" mode is always available, while the other ones are only available
19−if supported by the platform (if not supported, the strings representing them
20−are not present in /sys/power/mem_sleep). The string representing the suspend
21−mode to be used subsequently is enclosed in square brackets. Writing one of
22−the other strings present in /sys/power/mem_sleep to it causes the suspend mode
23−to be used subsequently to change to the one represented by that string.
24−
25−Consequently, there are two ways to cause the system to go into the
26−Suspend-To-Idle sleep state. The first one is to write "freeze" directly to
27−/sys/power/state. The second one is to write "s2idle" to /sys/power/mem_sleep
28−and then to write "mem" to /sys/power/state. Similarly, there are two ways
29−to cause the system to go into the Power-On Suspend sleep state (the strings to
30−write to the control files in that case are "standby" or "shallow" and "mem",
31−respectively) if that state is supported by the platform. In turn, there is
32−only one way to cause the system to go into the Suspend-To-RAM state (write
33−"deep" into /sys/power/mem_sleep and "mem" into /sys/power/state).
34−
35−The default suspend mode (ie. the one to be used without writing anything into
36−/sys/power/mem_sleep) is either "deep" (if Suspend-To-RAM is supported) or
37−"s2idle", but it can be overridden by the value of the "mem_sleep_default"
38−parameter in the kernel command line.
39−
40−The properties of all of the sleep states are described below.
41−
42−
43−State: Suspend-To-Idle
44−ACPI state: S0
45−Label: "s2idle" ("freeze")
46−
47−This state is a generic, pure software, light-weight, system sleep state.
48−It allows more energy to be saved relative to runtime idle by freezing user
49−space and putting all I/O devices into low-power states (possibly
50−lower-power than available at run time), such that the processors can
51−spend more time in their idle states.
52−
53−This state can be used for platforms without Power-On Suspend/Suspend-to-RAM
54−support, or it can be used in addition to Suspend-to-RAM to provide reduced
55−resume latency. It is always supported.
56−
57−
58−State: Standby / Power-On Suspend
59−ACPI State: S1
60−Label: "shallow" ("standby")
61−
62−This state, if supported, offers moderate, though real, power savings, while
63−providing a relatively low-latency transition back to a working system. No
64−operating state is lost (the CPU retains power), so the system easily starts up
65−again where it left off.
66−
67−In addition to freezing user space and putting all I/O devices into low-power
68−states, which is done for Suspend-To-Idle too, nonboot CPUs are taken offline
69−and all low-level system functions are suspended during transitions into this
70−state. For this reason, it should allow more energy to be saved relative to
71−Suspend-To-Idle, but the resume latency will generally be greater than for that
72−state.
73−
74−
75−State: Suspend-to-RAM
76−ACPI State: S3
77−Label: "deep"
78−
79−This state, if supported, offers significant power savings as everything in the
80−system is put into a low-power state, except for memory, which should be placed
81−into the self-refresh mode to retain its contents. All of the steps carried out
82−when entering Power-On Suspend are also carried out during transitions to STR.
83−Additional operations may take place depending on the platform capabilities. In
84−particular, on ACPI systems the kernel passes control to the BIOS (platform
85−firmware) as the last step during STR transitions and that usually results in
86−powering down some more low-level components that aren't directly controlled by
87−the kernel.
88−
89−System and device state is saved and kept in memory. All devices are suspended
90−and put into low-power states. In many cases, all peripheral buses lose power
91−when entering STR, so devices must be able to handle the transition back to the
92−"on" state.
93−
94−For at least ACPI, STR requires some minimal boot-strapping code to resume the
95−system from it. This may be the case on other platforms too.
96−
97−
98−State: Suspend-to-disk
99−ACPI State: S4
100−Label: "disk"
101−
102−This state offers the greatest power savings, and can be used even in
103−the absence of low-level platform support for power management. This
104−state operates similarly to Suspend-to-RAM, but includes a final step
105−of writing memory contents to disk. On resume, this is read and memory
106−is restored to its pre-suspend state.
107−
108−STD can be handled by the firmware or the kernel. If it is handled by
109−the firmware, it usually requires a dedicated partition that must be
110−setup via another operating system for it to use. Despite the
111−inconvenience, this method requires minimal work by the kernel, since
112−the firmware will also handle restoring memory contents on resume.
113−
114−For suspend-to-disk, a mechanism called 'swsusp' (Swap Suspend) is used
115−to write memory contents to free swap space. swsusp has some restrictive
116−requirements, but should work in most cases. Some, albeit outdated,
117−documentation can be found in Documentation/power/swsusp.txt.
118−Alternatively, userspace can do most of the actual suspend to disk work,
119−see userland-swsusp.txt.
120−
121−Once memory state is written to disk, the system may either enter a
122−low-power state (like ACPI S4), or it may simply power down. Powering
123−down offers greater savings, and allows this mechanism to work on any
124−system. However, entering a real low-power state allows the user to
125−trigger wake up events (e.g. pressing a key or opening a laptop lid).
Documentation/pps/pps.txt+23−21
@@ -48,12 +48,12 @@ problem: · 47 unmodified lines
4848 time_pps_create().
4949
5050 This implies that the source has a /dev/... entry. This assumption is
51−ok for the serial and parallel port, where you can do something
51+OK for the serial and parallel port, where you can do something
5252 useful besides(!) the gathering of timestamps as it is the central
53−task for a PPS-API. But this assumption does not work for a single
53+task for a PPS API. But this assumption does not work for a single
5454 purpose GPIO line. In this case even basic file-related functionality
5555 (like read() and write()) makes no sense at all and should not be a
56−precondition for the use of a PPS-API.
56+precondition for the use of a PPS API.
5757
5858 The problem can be simply solved if you consider that a PPS source is
5959 not always connected with a GPS data source.
@@ -88,13 +88,13 @@ Coding example · 28 unmodified lines
8888 --------------
8989
9090 To register a PPS source into the kernel you should define a struct
91−pps_source_info_s as follows:
91+pps_source_info as follows:
9292
9393 static struct pps_source_info pps_ktimer_info = {
9494 .name = "ktimer",
9595 .path = "",
96− .mode = PPS_CAPTUREASSERT | PPS_OFFSETASSERT | \
97− PPS_ECHOASSERT | \
96+ .mode = PPS_CAPTUREASSERT | PPS_OFFSETASSERT |
97+ PPS_ECHOASSERT |
9898 PPS_CANWAIT | PPS_TSFMT_TSPEC,
9999 .echo = pps_ktimer_echo,
100100 .owner = THIS_MODULE,
@@ -108,13 +108,13 @@ initialization routine as follows: · 7 unmodified lines
108108
109109 The pps_register_source() prototype is:
110110
111− int pps_register_source(struct pps_source_info_s *info, int default_params)
111+ int pps_register_source(struct pps_source_info *info, int default_params)
112112
113113 where "info" is a pointer to a structure that describes a particular
114114 PPS source, "default_params" tells the system what the initial default
115115 parameters for the device should be (it is obvious that these parameters
116116 must be a subset of ones defined in the struct
117−pps_source_info_s which describe the capabilities of the driver).
117+pps_source_info which describe the capabilities of the driver).
118118
119119 Once you have registered a new PPS source into the system you can
120120 signal an assert event (for example in the interrupt handler routine)
@@ -142,8 +142,10 @@ If the SYSFS filesystem is enabled in the kernel it provides a new class: · 21 unmodified lines
142142 Every directory is the ID of a PPS sources defined in the system and
143143 inside you find several files:
144144
145− $ ls /sys/class/pps/pps0/
146− assert clear echo mode name path subsystem@ uevent
145+ $ ls -F /sys/class/pps/pps0/
146+ assert dev mode path subsystem@
147+ clear echo name power/ uevent
148+
147149
148150 Inside each "assert" and "clear" file you can find the timestamp and a
149151 sequence number:
@@ -154,32 +156,32 @@ sequence number: · 4 unmodified lines
154156 Where before the "#" is the timestamp in seconds; after it is the
155157 sequence number. Other files are:
156158
157−* echo: reports if the PPS source has an echo function or not;
159+ * echo: reports if the PPS source has an echo function or not;
158160
159−* mode: reports available PPS functioning modes;
161+ * mode: reports available PPS functioning modes;
160162
161−* name: reports the PPS source's name;
163+ * name: reports the PPS source's name;
162164
163−* path: reports the PPS source's device path, that is the device the
164− PPS source is connected to (if it exists).
165+ * path: reports the PPS source's device path, that is the device the
166+ PPS source is connected to (if it exists).
165167
166168
167169 Testing the PPS support
168170 -----------------------
169171
170172 In order to test the PPS support even without specific hardware you can use
171−the ktimer driver (see the client subsection in the PPS configuration menu)
173+the pps-ktimer driver (see the client subsection in the PPS configuration menu)
172174 and the userland tools available in your distribution's pps-tools package,
173−http://linuxpps.org , or https://github.com/ago/pps-tools .
175+http://linuxpps.org , or https://github.com/redlab-i/pps-tools.
174176
175−Once you have enabled the compilation of ktimer just modprobe it (if
177+Once you have enabled the compilation of pps-ktimer just modprobe it (if
176178 not statically compiled):
177179
178− # modprobe ktimer
180+ # modprobe pps-ktimer
179181
180182 and the run ppstest as follow:
181183
182− $ ./ppstest /dev/pps0
184+ $ ./ppstest /dev/pps1
183185 trying PPS source "/dev/pps1"
184186 found PPS source "/dev/pps1"
185187 ok, found 1 source(s), now start fetching data...
@@ -187,7 +189,7 @@ and the run ppstest as follow: · 1 unmodified line
187189 source 0 - assert 1186592700.388931295, sequence: 365 - clear 0.000000000, sequence: 0
188190 source 0 - assert 1186592701.389032765, sequence: 366 - clear 0.000000000, sequence: 0
189191
190−Please, note that to compile userland programs you need the file timepps.h .
192+Please note that to compile userland programs, you need the file timepps.h.
191193 This is available in the pps-tools repository mentioned above.
192194
193195
Documentation/printk-formats.txt+21−8
@@ -58,20 +58,33 @@ Symbols/Function Pointers · 57 unmodified lines
5858 %ps versatile_init
5959 %pB prev_fn_of_versatile_init+0x88/0x88
6060
61−For printing symbols and function pointers. The ``S`` and ``s`` specifiers
62−result in the symbol name with (``S``) or without (``s``) offsets. Where
63−this is used on a kernel without KALLSYMS - the symbol address is
64−printed instead.
61+The ``F`` and ``f`` specifiers are for printing function pointers,
62+for example, f->func, &gettimeofday. They have the same result as
63+``S`` and ``s`` specifiers. But they do an extra conversion on
64+ia64, ppc64 and parisc64 architectures where the function pointers
65+are actually function descriptors.
66+
67+The ``S`` and ``s`` specifiers can be used for printing symbols
68+from direct addresses, for example, __builtin_return_address(0),
69+(void *)regs->ip. They result in the symbol name with (``S``) or
70+without (``s``) offsets. If KALLSYMS are disabled then the symbol
71+address is printed instead.
6572
6673 The ``B`` specifier results in the symbol name with offsets and should be
6774 used when printing stack backtraces. The specifier takes into
6875 consideration the effect of compiler optimisations which may occur
6976 when tail-call``s are used and marked with the noreturn GCC attribute.
7077
71−On ia64, ppc64 and parisc64 architectures function pointers are
72−actually function descriptors which must first be resolved. The ``F`` and
73−``f`` specifiers perform this resolution and then provide the same
74−functionality as the ``S`` and ``s`` specifiers.
78+Examples::
79+
80+ printk("Going to call: %pF\n", gettimeofday);
81+ printk("Going to call: %pF\n", p->func);
82+ printk("%s: called from %pS\n", __func__, (void *)_RET_IP_);
83+ printk("%s: called from %pS\n", __func__,
84+ (void *)__builtin_return_address(0));
85+ printk("Faulted at %pS\n", (void *)regs->ip);
86+ printk(" %s%pB\n", (reliable ? "" : "? "), (void *)*stack);
87+
7588
7689 Kernel Pointers
7790 ===============
Documentation/process/applying-patches.rst+1−42
@@ -6,9 +6,6 @@ Applying Patches To The Linux Kernel · 5 unmodified lines
66 Original by:
77 Jesper Juhl, August 2005
88
9−Last update:
10− 2016-09-14
11−
129 .. note::
1310
1411 This document is obsolete. In most cases, rather than using ``patch``
@@ -344,7 +341,7 @@ possible. · 329 unmodified lines
344341
345342 This is a good branch to run for people who want to help out testing
346343 development kernels but do not want to run some of the really experimental
347−stuff (such people should see the sections about -git and -mm kernels below).
344+stuff (such people should see the sections about -next and -mm kernels below).
348345
349346 The -rc patches are not incremental, they apply to a base 4.x kernel, just
350347 like the 4.x.y patches described above. The kernel version before the -rcN
@@ -380,44 +377,6 @@ Here are 3 examples of how to apply these patches:: · 29 unmodified lines
380377 $ mv linux-4.7.3 linux-4.8-rc5 # rename the kernel source dir
381378
382379
383−The -git kernels
384−================
385−
386−These are daily snapshots of Linus' kernel tree (managed in a git
387−repository, hence the name).
388−
389−These patches are usually released daily and represent the current state of
390−Linus's tree. They are more experimental than -rc kernels since they are
391−generated automatically without even a cursory glance to see if they are
392−sane.
393−
394−-git patches are not incremental and apply either to a base 4.x kernel or
395−a base 4.x-rc kernel -- you can see which from their name.
396−A patch named 4.7-git1 applies to the 4.7 kernel source and a patch
397−named 4.8-rc3-git2 applies to the source of the 4.8-rc3 kernel.
398−
399−Here are some examples of how to apply these patches::
400−
401− # moving from 4.7 to 4.7-git1
402−
403− $ cd ~/linux-4.7 # change to the kernel source dir
404− $ patch -p1 < ../patch-4.7-git1 # apply the 4.7-git1 patch
405− $ cd ..
406− $ mv linux-4.7 linux-4.7-git1 # rename the kernel source dir
407−
408− # moving from 4.7-git1 to 4.8-rc2-git3
409−
410− $ cd ~/linux-4.7-git1 # change to the kernel source dir
411− $ patch -p1 -R < ../patch-4.7-git1 # revert the 4.7-git1 patch
412− # we now have a 4.7 kernel
413− $ patch -p1 < ../patch-4.8-rc2 # apply the 4.8-rc2 patch
414− # the kernel is now 4.8-rc2
415− $ patch -p1 < ../patch-4.8-rc2-git3 # apply the 4.8-rc2-git3 patch
416− # the kernel is now 4.8-rc2-git3
417− $ cd ..
418− $ mv linux-4.7-git1 linux-4.8-rc2-git3 # rename source dir
419−
420−
421380 The -mm patches and the linux-next tree
422381 =======================================
423382
Documentation/process/changes.rst+3−13
@@ -53,7 +53,7 @@ mcelog 0.6 mcelog --version · 52 unmodified lines
5353 iptables 1.4.2 iptables -V
5454 openssl & libcrypto 1.0.0 openssl version
5555 bc 1.06.95 bc --version
56−Sphinx\ [#f1]_ 1.2 sphinx-build --version
56+Sphinx\ [#f1]_ 1.3 sphinx-build --version
5757 ====================== =============== ========================================
5858
5959 .. [#f1] Sphinx is needed only to build the Kernel documentation
@@ -309,18 +309,8 @@ Kernel documentation · 249 unmodified lines
309309 Sphinx
310310 ------
311311
312−The ReST markups currently used by the Documentation/ files are meant to be
313−built with ``Sphinx`` version 1.2 or upper. If you're desiring to build
314−PDF outputs, it is recommended to use version 1.4.6.
315−
316−.. note::
317−
318− Please notice that, for PDF and LaTeX output, you'll also need ``XeLaTeX``
319− version 3.14159265. Depending on the distribution, you may also need to
320− install a series of ``texlive`` packages that provide the minimal set of
321− functionalities required for ``XeLaTex`` to work. For PDF output you'll also
322− need ``convert(1)`` from ImageMagick (https://www.imagemagick.org).
323−
312+Please see :ref:`sphinx_install` in ``Documentation/doc-guide/sphinx.rst``
313+for details about Sphinx requirements.
324314
325315 Getting updated software
326316 ========================
Documentation/process/stable-kernel-rules.rst+2−2
@@ -166,12 +166,12 @@ Trees · 165 unmodified lines
166166 - The queues of patches, for both completed versions and in progress
167167 versions can be found at:
168168
169− http://git.kernel.org/?p=linux/kernel/git/stable/stable-queue.git
169+ https://git.kernel.org/pub/scm/linux/kernel/git/stable/stable-queue.git
170170
171171 - The finalized and tagged releases of all stable kernels can be found
172172 in separate branches per version at:
173173
174− http://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git
174+ https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
175175
176176
177177 Review committee
Documentation/process/submitting-patches.rst+1−1
@@ -413,7 +413,7 @@ e-mail discussions. · 412 unmodified lines
413413
414414
415415
416−11) Sign your work — the Developer's Certificate of Origin
416+11) Sign your work - the Developer's Certificate of Origin
417417 ----------------------------------------------------------
418418
419419 To improve tracking of who did what, especially with patches that can
Documentation/rbtree.txt+33−0
@@ -193,6 +193,39 @@ Example:: · 192 unmodified lines
193193 for (node = rb_first(&mytree); node; node = rb_next(node))
194194 printk("key=%s\n", rb_entry(node, struct mytype, node)->keystring);
195195
196+Cached rbtrees
197+--------------
198+
199+Computing the leftmost (smallest) node is quite a common task for binary
200+search trees, such as for traversals or users relying on a the particular
201+order for their own logic. To this end, users can use 'struct rb_root_cached'
202+to optimize O(logN) rb_first() calls to a simple pointer fetch avoiding
203+potentially expensive tree iterations. This is done at negligible runtime
204+overhead for maintanence; albeit larger memory footprint.
205+
206+Similar to the rb_root structure, cached rbtrees are initialized to be
207+empty via:
208+
209+ struct rb_root_cached mytree = RB_ROOT_CACHED;
210+
211+Cached rbtree is simply a regular rb_root with an extra pointer to cache the
212+leftmost node. This allows rb_root_cached to exist wherever rb_root does,
213+which permits augmented trees to be supported as well as only a few extra
214+interfaces:
215+
216+ struct rb_node *rb_first_cached(struct rb_root_cached *tree);
217+ void rb_insert_color_cached(struct rb_node *, struct rb_root_cached *, bool);
218+ void rb_erase_cached(struct rb_node *node, struct rb_root_cached *);
219+
220+Both insert and erase calls have their respective counterpart of augmented
221+trees:
222+
223+ void rb_insert_augmented_cached(struct rb_node *node, struct rb_root_cached *,
224+ bool, struct rb_augment_callbacks *);
225+ void rb_erase_augmented_cached(struct rb_node *, struct rb_root_cached *,
226+ struct rb_augment_callbacks *);
227+
228+
196229 Support for Augmented rbtrees
197230 -----------------------------
198231
Documentation/security/keys/core.rst+3−13
@@ -16,17 +16,7 @@ The key service can be configured on by enabling: · 15 unmodified lines
1616
1717 This document has the following sections:
1818
19− - Key overview
20− - Key service overview
21− - Key access permissions
22− - SELinux support
23− - New procfs files
24− - Userspace system call interface
25− - Kernel services
26− - Notes on accessing payload contents
27− - Defining a key type
28− - Request-key callback service
29− - Garbage collection
19+.. contents:: :local:
3020
3121
3222 Key Overview
@@ -443,7 +433,7 @@ The main syscalls are: · 410 unmodified lines
443433 /sbin/request-key will be invoked in an attempt to obtain a key. The
444434 callout_info string will be passed as an argument to the program.
445435
446− See also Documentation/security/keys-request-key.txt.
436+ See also Documentation/security/keys/request-key.rst.
447437
448438
449439 The keyctl syscall functions are:
@@ -973,7 +963,7 @@ payload contents" for more information. · 523 unmodified lines
973963 If successful, the key will have been attached to the default keyring for
974964 implicitly obtained request-key keys, as set by KEYCTL_SET_REQKEY_KEYRING.
975965
976− See also Documentation/security/keys-request-key.txt.
966+ See also Documentation/security/keys/request-key.rst.
977967
978968
979969 * To search for a key, passing auxiliary data to the upcaller, call::
Documentation/security/keys/request-key.rst+1−1
@@ -3,7 +3,7 @@ Key Request Service · 2 unmodified lines
33 ===================
44
55 The key request service is part of the key retention service (refer to
6−Documentation/security/keys.txt). This document explains more fully how
6+Documentation/security/core.rst). This document explains more fully how
77 the requesting algorithm works.
88
99 The process starts by either the kernel requesting a service by calling
Documentation/security/keys/trusted-encrypted.rst+1−1
@@ -172,4 +172,4 @@ Other uses for trusted and encrypted keys, such as for disk and file encryption · 171 unmodified lines
172172 are anticipated. In particular the new format 'ecryptfs' has been defined in
173173 in order to use encrypted keys to mount an eCryptfs filesystem. More details
174174 about the usage can be found in the file
175−``Documentation/security/keys-ecryptfs.txt``.
175+``Documentation/security/keys/ecryptfs.rst``.
Documentation/sphinx-static/theme_overrides.css+17−0
@@ -4,6 +4,17 @@ · 3 unmodified lines
44 *
55 */
66
7+/* Interim: Code-blocks with line nos - lines and line numbers don't line up.
8+ * see: https://github.com/rtfd/sphinx_rtd_theme/issues/419
9+ */
10+
11+div[class^="highlight"] pre {
12+ line-height: normal;
13+}
14+.rst-content .highlight > pre {
15+ line-height: normal;
16+}
17+
718 @media screen {
819
920 /* content column
@@ -56,6 +67,12 @@ · 46 unmodified lines
5667 font-family: "Courier New", Courier, monospace
5768 }
5869
70+ /* fix bottom margin of lists items */
71+
72+ .rst-content .section ul li:last-child, .rst-content .section ul li p:last-child {
73+ margin-bottom: 12px;
74+ }
75+
5976 /* inline literal: drop the borderbox, padding and red color */
6077
6178 code, .rst-content tt, .rst-content code {
Documentation/sphinx/kerneldoc.py+3−5
@@ -27,6 +27,7 @@ · 26 unmodified lines
2727 # Please make sure this works on both python2 and python3.
2828 #
2929
30+import codecs
3031 import os
3132 import subprocess
3233 import sys
@@ -88,13 +89,10 @@ class KernelDocDirective(Directive): · 55 unmodified lines
8889 try:
8990 env.app.verbose('calling kernel-doc \'%s\'' % (" ".join(cmd)))
9091
91− p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True)
92+ p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
9293 out, err = p.communicate()
9394
94− # python2 needs conversion to unicode.
95− # python3 with universal_newlines=True returns strings.
96− if sys.version_info.major < 3:
97− out, err = unicode(out, 'utf-8'), unicode(err, 'utf-8')
95+ out, err = codecs.decode(out, 'utf-8'), codecs.decode(err, 'utf-8')
9896
9997 if p.returncode != 0:
10098 sys.stderr.write(err)
Documentation/sphinx/requirements.txt+3−0
@@ -0,0 +1,3 @@
1+docutils==0.12
2+Sphinx==1.4.9
3+sphinx_rtd_theme
Documentation/static-keys.txt+20−0
@@ -149,6 +149,26 @@ static_branch_inc(), will change the branch back to true. Likewise, if the · 148 unmodified lines
149149 key is initialized false, a 'static_branch_inc()', will change the branch to
150150 true. And then a 'static_branch_dec()', will again make the branch false.
151151
152+The state and the reference count can be retrieved with 'static_key_enabled()'
153+and 'static_key_count()'. In general, if you use these functions, they
154+should be protected with the same mutex used around the enable/disable
155+or increment/decrement function.
156+
157+Note that switching branches results in some locks being taken,
158+particularly the CPU hotplug lock (in order to avoid races against
159+CPUs being brought in the kernel whilst the kernel is getting
160+patched). Calling the static key API from within a hotplug notifier is
161+thus a sure deadlock recipe. In order to still allow use of the
162+functionnality, the following functions are provided:
163+
164+ static_key_enable_cpuslocked()
165+ static_key_disable_cpuslocked()
166+ static_branch_enable_cpuslocked()
167+ static_branch_disable_cpuslocked()
168+
169+These functions are *not* general purpose, and must only be used when
170+you really know that you're in the above context, and no other.
171+
152172 Where an array of keys is required, it can be defined as::
153173
154174 DEFINE_STATIC_KEY_ARRAY_TRUE(keys, count);
Documentation/sysctl/kernel.txt+13−1
@@ -61,6 +61,7 @@ show up in /proc/sys/kernel: · 60 unmodified lines
6161 - perf_cpu_time_max_percent
6262 - perf_event_paranoid
6363 - perf_event_max_stack
64+- perf_event_mlock_kb
6465 - perf_event_max_contexts_per_stack
6566 - pid_max
6667 - powersave-nap [ PPC only ]
@@ -74,6 +75,7 @@ show up in /proc/sys/kernel: · 7 unmodified lines
7475 - reboot-cmd [ SPARC only ]
7576 - rtsig-max
7677 - rtsig-nr
78+- seccomp/ ==> Documentation/userspace-api/seccomp_filter.rst
7779 - sem
7880 - sem_next_id [ sysv ipc ]
7981 - sg-big-buff [ generic SCSI device (sg) ]
@@ -654,7 +656,9 @@ Controls use of the performance events system by unprivileged · 574 unmodified lines
654656 users (without CAP_SYS_ADMIN). The default value is 2.
655657
656658 -1: Allow use of (almost) all events by all users
657−>=0: Disallow raw tracepoint access by users without CAP_IOC_LOCK
659+ Ignore mlock limit after perf_event_mlock_kb without CAP_IPC_LOCK
660+>=0: Disallow ftrace function tracepoint by users without CAP_SYS_ADMIN
661+ Disallow raw tracepoint access by users without CAP_SYS_ADMIN
658662 >=1: Disallow CPU event access by users without CAP_SYS_ADMIN
659663 >=2: Disallow kernel profiling by users without CAP_SYS_ADMIN
660664
@@ -673,6 +677,14 @@ The default value is 127. · 12 unmodified lines
673677
674678 ==============================================================
675679
680+perf_event_mlock_kb:
681+
682+Control size of per-cpu ring buffer not counted agains mlock limit.
683+
684+The default value is 512 + 1 page
685+
686+==============================================================
687+
676688 perf_event_max_contexts_per_stack:
677689
678690 Controls maximum number of stack frame context entries for
Documentation/sysctl/net.txt+36−11
@@ -35,9 +35,34 @@ Table : Subdirectories in /proc/sys/net · 34 unmodified lines
3535 bpf_jit_enable
3636 --------------
3737
38−This enables Berkeley Packet Filter Just in Time compiler.
39−Currently supported on x86_64 architecture, bpf_jit provides a framework
40−to speed packet filtering, the one used by tcpdump/libpcap for example.
38+This enables the BPF Just in Time (JIT) compiler. BPF is a flexible
39+and efficient infrastructure allowing to execute bytecode at various
40+hook points. It is used in a number of Linux kernel subsystems such
41+as networking (e.g. XDP, tc), tracing (e.g. kprobes, uprobes, tracepoints)
42+and security (e.g. seccomp). LLVM has a BPF back end that can compile
43+restricted C into a sequence of BPF instructions. After program load
44+through bpf(2) and passing a verifier in the kernel, a JIT will then
45+translate these BPF proglets into native CPU instructions. There are
46+two flavors of JITs, the newer eBPF JIT currently supported on:
47+ - x86_64
48+ - arm64
49+ - arm32
50+ - ppc64
51+ - sparc64
52+ - mips64
53+ - s390x
54+
55+And the older cBPF JIT supported on the following archs:
56+ - mips
57+ - ppc
58+ - sparc
59+
60+eBPF JITs are a superset of cBPF JITs, meaning the kernel will
61+migrate cBPF instructions into eBPF instructions and then JIT
62+compile them transparently. Older cBPF JITs can only translate
63+tcpdump filters, seccomp rules, etc, but not mentioned eBPF
64+programs loaded through bpf(2).
65+
4166 Values :
4267 0 - disable the JIT (default value)
4368 1 - enable the JIT
@@ -46,9 +71,9 @@ Values : · 2 unmodified lines
4671 bpf_jit_harden
4772 --------------
4873
49−This enables hardening for the Berkeley Packet Filter Just in Time compiler.
50−Supported are eBPF JIT backends. Enabling hardening trades off performance,
51−but can mitigate JIT spraying.
74+This enables hardening for the BPF JIT compiler. Supported are eBPF
75+JIT backends. Enabling hardening trades off performance, but can
76+mitigate JIT spraying.
5277 Values :
5378 0 - disable JIT hardening (default value)
5479 1 - enable JIT hardening for unprivileged users only
@@ -57,11 +82,11 @@ Values : · 2 unmodified lines
5782 bpf_jit_kallsyms
5883 ----------------
5984
60−When Berkeley Packet Filter Just in Time compiler is enabled, then compiled
61−images are unknown addresses to the kernel, meaning they neither show up in
62−traces nor in /proc/kallsyms. This enables export of these addresses, which
63−can be used for debugging/tracing. If bpf_jit_harden is enabled, this feature
64−is disabled.
85+When BPF JIT compiler is enabled, then compiled images are unknown
86+addresses to the kernel, meaning they neither show up in traces nor
87+in /proc/kallsyms. This enables export of these addresses, which can
88+be used for debugging/tracing. If bpf_jit_harden is enabled, this
89+feature is disabled.
6590 Values :
6691 0 - disable JIT kallsyms export (default value)
6792 1 - enable JIT kallsyms export for privileged users only
Documentation/sysctl/vm.txt+3−1
@@ -572,7 +572,9 @@ See Documentation/nommu-mmap.txt for more information. · 571 unmodified lines
572572
573573 numa_zonelist_order
574574
575−This sysctl is only for NUMA.
575+This sysctl is only for NUMA and it is deprecated. Anything but
576+Node order will fail!
577+
576578 'where the memory is allocated from' is controlled by zonelists.
577579 (This documentation ignores ZONE_HIGHMEM/ZONE_DMA32 for simple explanation.
578580 you may be able to read ZONE_DMA as ZONE_DMA32...)
Documentation/trace/stm.txt+12−1
@@ -83,7 +83,7 @@ by writing the name of the desired stm device there, for example: · 82 unmodified lines
8383 $ echo dummy_stm.0 > /sys/class/stm_source/console/stm_source_link
8484
8585 For examples on how to use stm_source interface in the kernel, refer
86−to stm_console or stm_heartbeat drivers.
86+to stm_console, stm_heartbeat or stm_ftrace drivers.
8787
8888 Each stm_source device will need to assume a master and a range of
8989 channels, depending on how many channels it requires. These are
@@ -107,5 +107,16 @@ console in the STP stream, create a "console" policy entry (see the · 17 unmodified lines
107107 beginning of this text on how to do that). When initialized, it will
108108 consume one channel.
109109
110+stm_ftrace
111+==========
112+
113+This is another "stm_source" device, once the stm_ftrace has been
114+linked with an stm device, and if "function" tracer is enabled,
115+function address and parent function address which Ftrace subsystem
116+would store into ring buffer will be exported via the stm device at
117+the same time.
118+
119+Currently only Ftrace "function" tracer is supported.
120+
110121 [1] https://software.intel.com/sites/default/files/managed/d3/3c/intel-th-developer-manual.pdf
111122 [2] http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0444b/index.html
Documentation/translations/ko_KR/memory-barriers.txt+30−107
@@ -523,11 +523,11 @@ CPU 에게 기대할 수 있는 최소한의 보장사항 몇가지가 있습니 · 522 unmodified lines
523523 즉, ACQUIRE 는 최소한의 "취득" 동작처럼, 그리고 RELEASE 는 최소한의 "공개"
524524 처럼 동작한다는 의미입니다.
525525
526−core-api/atomic_ops.rst 에서 설명되는 어토믹 오퍼레이션들 중에는 완전히
527−순서잡힌 것들과 (배리어를 사용하지 않는) 완화된 순서의 것들 외에 ACQUIRE 와
528−RELEASE 부류의 것들도 존재합니다. 로드와 스토어를 모두 수행하는 조합된 어토믹
529−오퍼레이션에서, ACQUIRE 는 해당 오퍼레이션의 로드 부분에만 적용되고 RELEASE 는
530−해당 오퍼레이션의 스토어 부분에만 적용됩니다.
526+atomic_t.txt 에 설명된 어토믹 오퍼레이션들 중 일부는 완전히 순서잡힌 것들과
527+(배리어를 사용하지 않는) 완화된 순서의 것들 외에 ACQUIRE 와 RELEASE 부류의
528+것들도 존재합니다. 로드와 스토어를 모두 수행하는 조합된 어토믹 오퍼레이션에서,
529+ACQUIRE 는 해당 오퍼레이션의 로드 부분에만 적용되고 RELEASE 는 해당
530+오퍼레이션의 스토어 부분에만 적용됩니다.
531531
532532 메모리 배리어들은 두 CPU 간, 또는 CPU 와 디바이스 간에 상호작용의 가능성이 있을
533533 때에만 필요합니다. 만약 어떤 코드에 그런 상호작용이 없을 것이 보장된다면, 해당
@@ -617,7 +617,22 @@ RELEASE 부류의 것들도 존재합니다. 로드와 스토어를 모두 수 · 83 unmodified lines
617617 이 변경은 앞의 처음 두가지 결과 중 하나만이 발생할 수 있고, 세번째의 결과는
618618 발생할 수 없도록 합니다.
619619
620−데이터 의존성 배리어는 의존적 쓰기에 대해서도 순서를 잡아줍니다:
620+
621+[!] 이 상당히 반직관적인 상황은 분리된 캐시를 가지는 기계들에서 가장 잘
622+발생하는데, 예를 들면 한 캐시 뱅크는 짝수 번호의 캐시 라인들을 처리하고, 다른
623+뱅크는 홀수 번호의 캐시 라인들을 처리하는 경우임을 알아두시기 바랍니다. 포인터
624+P 는 짝수 번호 캐시 라인에 저장되어 있고, 변수 B 는 홀수 번호 캐시 라인에
625+저장되어 있을 수 있습니다. 여기서 값을 읽어오는 CPU 의 캐시의 홀수 번호 처리
626+뱅크는 열심히 일감을 처리중인 반면 홀수 번호 처리 뱅크는 할 일 없이 한가한
627+중이라면 포인터 P (&B) 의 새로운 값과 변수 B 의 기존 값 (2) 를 볼 수 있습니다.
628+
629+
630+의존적 쓰기들의 순서를 맞추는데에는 데이터 의존성 배리어가 필요치 않은데, 이는
631+리눅스 커널이 지원하는 CPU 들은 (1) 쓰기가 정말로 일어날지, (2) 쓰기가 어디에
632+이루어질지, 그리고 (3) 쓰여질 값을 확실히 알기 전까지는 쓰기를 수행하지 않기
633+때문입니다. 하지만 "컨트롤 의존성" 섹션과
634+Documentation/RCU/rcu_dereference.txt 파일을 주의 깊게 읽어 주시기 바랍니다:
635+컴파일러는 매우 창의적인 많은 방법으로 종속성을 깰 수 있습니다.
621636
622637 CPU 1 CPU 2
623638 =============== ===============
@@ -626,28 +641,19 @@ RELEASE 부류의 것들도 존재합니다. 로드와 스토어를 모두 수 · 2 unmodified lines
626641 <쓰기 배리어>
627642 WRITE_ONCE(P, &B);
628643 Q = READ_ONCE(P);
629− <데이터 의존성 배리어>
630− *Q = 5;
644+ WRITE_ONCE(*Q, 5);
631645
632−이 데이터 의존성 배리어는 Q 로의 읽기가 *Q 로의 스토어와 순서를 맞추게
633−해줍니다. 이는 다음과 같은 결과를 막습니다:
646+따라서, Q 로의 읽기와 *Q 로의 쓰기 사이에는 데이터 종속성 배리어가 필요치
647+않습니다. 달리 말하면, 데이터 종속성 배리어가 없더라도 다음 결과는 생기지
648+않습니다:
634649
635650 (Q == &B) && (B == 4)
636651
637652 이런 패턴은 드물게 사용되어야 함을 알아 두시기 바랍니다. 무엇보다도, 의존성
638653 순서 규칙의 의도는 쓰기 작업을 -예방- 해서 그로 인해 발생하는 비싼 캐시 미스도
639654 없애려는 것입니다. 이 패턴은 드물게 발생하는 에러 조건 같은것들을 기록하는데
640−사용될 수 있고, 이렇게 배리어를 사용해 순서를 지키게 함으로써 그런 기록이
641−사라지는 것을 막습니다.
642−
643−
644−[!] 상당히 비직관적인 이 상황은 분리된 캐시를 가진 기계, 예를 들어 한 캐시
645−뱅크가 짝수번 캐시 라인을 처리하고 다른 뱅크는 홀수번 캐시 라인을 처리하는 기계
646−등에서 가장 잘 발생합니다. 포인터 P 는 홀수 번호의 캐시 라인에 있고, 변수 B 는
647−짝수 번호 캐시 라인에 있다고 생각해 봅시다. 그런 상태에서 읽기 작업을 하는 CPU
648−의 짝수번 뱅크는 할 일이 쌓여 매우 바쁘지만 홀수번 뱅크는 할 일이 없어 아무
649−일도 하지 않고 있었다면, 포인터 P 는 새 값 (&B) 을, 그리고 변수 B 는 옛날 값
650−(2) 을 가지고 있는 상태가 보여질 수도 있습니다.
655+사용될 수 있으며, CPU의 자연적인 순서 보장이 그런 기록들을 사라지지 않게
656+해줍니다.
651657
652658
653659 데이터 의존성 배리어는 매우 중요한데, 예를 들어 RCU 시스템에서 그렇습니다.
@@ -1848,8 +1854,7 @@ Mandatory 배리어들은 SMP 시스템에서도 UP 시스템에서도 SMP 효 · 1194 unmodified lines
18481854 이 코드는 객체의 업데이트된 death 마크가 레퍼런스 카운터 감소 동작
18491855 *전에* 보일 것을 보장합니다.
18501856
1851− 더 많은 정보를 위해선 Documentation/core-api/atomic_ops.rst 문서를 참고하세요.
1852− 어디서 이것들을 사용해야 할지 궁금하다면 "어토믹 오퍼레이션" 서브섹션을
1857+ 더 많은 정보를 위해선 Documentation/atomic_{t,bitops}.txt 문서를
18531858 참고하세요.
18541859
18551860
@@ -1956,10 +1961,7 @@ MMIO 쓰기 배리어 · 100 unmodified lines
19561961 뒤에 완료됩니다.
19571962
19581963 ACQUIRE 앞에서 요청된 메모리 오퍼레이션은 ACQUIRE 오퍼레이션이 완료된 후에
1959− 완료될 수 있습니다. smp_mb__before_spinlock() 뒤에 ACQUIRE 가 실행되는
1960− 코드 블록은 블록 앞의 스토어를 블록 뒤의 로드와 스토어에 대해 순서
1961− 맞춥니다. 이건 smp_mb() 보다 완화된 것임을 기억하세요! 많은 아키텍쳐에서
1962− smp_mb__before_spinlock() 은 사실 아무일도 하지 않습니다.
1964+ 완료될 수 있습니다.
19631965
19641966 (2) RELEASE 오퍼레이션의 영향:
19651967
@@ -2471,86 +2473,7 @@ _않습니다_. · 505 unmodified lines
24712473 전체 메모리 배리어를 내포하고 또 일부는 내포하지 않지만, 커널에서 상당히
24722474 의존적으로 사용하는 기능 중 하나입니다.
24732475
2474−메모리의 어떤 상태를 수정하고 해당 상태에 대한 (예전의 또는 최신의) 정보를
2475−리턴하는 어토믹 오퍼레이션은 모두 SMP-조건적 범용 메모리 배리어(smp_mb())를
2476−실제 오퍼레이션의 앞과 뒤에 내포합니다. 이런 오퍼레이션은 다음의 것들을
2477−포함합니다:
2478−
2479− xchg();
2480− atomic_xchg(); atomic_long_xchg();
2481− atomic_inc_return(); atomic_long_inc_return();
2482− atomic_dec_return(); atomic_long_dec_return();
2483− atomic_add_return(); atomic_long_add_return();
2484− atomic_sub_return(); atomic_long_sub_return();
2485− atomic_inc_and_test(); atomic_long_inc_and_test();
2486− atomic_dec_and_test(); atomic_long_dec_and_test();
2487− atomic_sub_and_test(); atomic_long_sub_and_test();
2488− atomic_add_negative(); atomic_long_add_negative();
2489− test_and_set_bit();
2490− test_and_clear_bit();
2491− test_and_change_bit();
2492−
2493− /* exchange 조건이 성공할 때 */
2494− cmpxchg();
2495− atomic_cmpxchg(); atomic_long_cmpxchg();
2496− atomic_add_unless(); atomic_long_add_unless();
2497−
2498−이것들은 메모리 배리어 효과가 필요한 ACQUIRE 부류와 RELEASE 부류 오퍼레이션들을
2499−구현할 때, 그리고 객체 해제를 위해 레퍼런스 카운터를 조정할 때, 암묵적 메모리
2500−배리어 효과가 필요한 곳 등에 사용됩니다.
2501−
2502−
2503−다음의 오퍼레이션들은 메모리 배리어를 내포하지 _않기_ 때문에 문제가 될 수
2504−있지만, RELEASE 부류의 오퍼레이션들과 같은 것들을 구현할 때 사용될 수도
2505−있습니다:
2506−
2507− atomic_set();
2508− set_bit();
2509− clear_bit();
2510− change_bit();
2511−
2512−이것들을 사용할 때에는 필요하다면 적절한 (예를 들면 smp_mb__before_atomic()
2513−같은) 메모리 배리어가 명시적으로 함께 사용되어야 합니다.
2514−
2515−
2516−아래의 것들도 메모리 배리어를 내포하지 _않기_ 때문에, 일부 환경에서는 (예를
2517−들면 smp_mb__before_atomic() 과 같은) 명시적인 메모리 배리어 사용이 필요합니다.
2518−
2519− atomic_add();
2520− atomic_sub();
2521− atomic_inc();
2522− atomic_dec();
2523−
2524−이것들이 통계 생성을 위해 사용된다면, 그리고 통계 데이터 사이에 관계가 존재하지
2525−않는다면 메모리 배리어는 필요치 않을 겁니다.
2526−
2527−객체의 수명을 관리하기 위해 레퍼런스 카운팅 목적으로 사용된다면, 레퍼런스
2528−카운터는 락으로 보호되는 섹션에서만 조정되거나 호출하는 쪽이 이미 충분한
2529−레퍼런스를 잡고 있을 것이기 때문에 메모리 배리어는 아마 필요 없을 겁니다.
2530−
2531−만약 어떤 락을 구성하기 위해 사용된다면, 락 관련 동작은 일반적으로 작업을 특정
2532−순서대로 진행해야 하므로 메모리 배리어가 필요할 수 있습니다.
2533−
2534−기본적으로, 각 사용처에서는 메모리 배리어가 필요한지 아닌지 충분히 고려해야
2535−합니다.
2536−
2537−아래의 오퍼레이션들은 특별한 락 관련 동작들입니다:
2538−
2539− test_and_set_bit_lock();
2540− clear_bit_unlock();
2541− __clear_bit_unlock();
2542−
2543−이것들은 ACQUIRE 류와 RELEASE 류의 오퍼레이션들을 구현합니다. 락 관련 도구를
2544−구현할 때에는 이것들을 좀 더 선호하는 편이 나은데, 이것들의 구현은 많은
2545−아키텍쳐에서 최적화 될 수 있기 때문입니다.
2546−
2547−[!] 이런 상황에 사용할 수 있는 특수한 메모리 배리어 도구들이 있습니다만, 일부
2548−CPU 에서는 사용되는 어토믹 인스트럭션 자체에 메모리 배리어가 내포되어 있어서
2549−어토믹 오퍼레이션과 메모리 배리어를 함께 사용하는 게 불필요한 일이 될 수
2550−있는데, 그런 경우에 이 특수 메모리 배리어 도구들은 no-op 이 되어 실질적으로
2551−아무일도 하지 않습니다.
2552−
2553−더 많은 내용을 위해선 Documentation/core-api/atomic_ops.rst 를 참고하세요.
2476+더 많은 내용을 위해선 Documentation/atomic_t.txt 를 참고하세요.
25542477
25552478
25562479 디바이스 액세스
Documentation/translations/zh_CN/HOWTO+0−2
@@ -149,9 +149,7 @@ Linux内核代码中包含有大量的文档。这些文档对于学习如何与 · 148 unmodified lines
149149 核源码的主目录中使用以下不同命令将会分别生成PDF、Postscript、HTML和手册
150150 页等不同格式的文档:
151151 make pdfdocs
152− make psdocs
153152 make htmldocs
154− make mandocs
155153
156154
157155 如何成为内核开发者
Documentation/userspace-api/seccomp_filter.rst+50−2
@@ -87,11 +87,16 @@ Return values · 86 unmodified lines
8787 A seccomp filter may return any of the following values. If multiple
8888 filters exist, the return value for the evaluation of a given system
8989 call will always use the highest precedent value. (For example,
90−``SECCOMP_RET_KILL`` will always take precedence.)
90+``SECCOMP_RET_KILL_PROCESS`` will always take precedence.)
9191
9292 In precedence order, they are:
9393
94−``SECCOMP_RET_KILL``:
94+``SECCOMP_RET_KILL_PROCESS``:
95+ Results in the entire process exiting immediately without executing
96+ the system call. The exit status of the task (``status & 0x7f``)
97+ will be ``SIGSYS``, not ``SIGKILL``.
98+
99+``SECCOMP_RET_KILL_THREAD``:
95100 Results in the task exiting immediately without executing the
96101 system call. The exit status of the task (``status & 0x7f``) will
97102 be ``SIGSYS``, not ``SIGKILL``.
@@ -141,6 +146,15 @@ In precedence order, they are: · 43 unmodified lines
141146 allow use of ptrace, even of other sandboxed processes, without
142147 extreme care; ptracers can use this mechanism to escape.)
143148
149+``SECCOMP_RET_LOG``:
150+ Results in the system call being executed after it is logged. This
151+ should be used by application developers to learn which syscalls their
152+ application needs without having to iterate through multiple test and
153+ development cycles to build the list.
154+
155+ This action will only be logged if "log" is present in the
156+ actions_logged sysctl string.
157+
144158 ``SECCOMP_RET_ALLOW``:
145159 Results in the system call being executed.
146160
@@ -169,7 +183,41 @@ The ``samples/seccomp/`` directory contains both an x86-specific example · 22 unmodified lines
169183 and a more generic example of a higher level macro interface for BPF
170184 program generation.
171185
186+Sysctls
187+=======
172188
189+Seccomp's sysctl files can be found in the ``/proc/sys/kernel/seccomp/``
190+directory. Here's a description of each file in that directory:
191+
192+``actions_avail``:
193+ A read-only ordered list of seccomp return values (refer to the
194+ ``SECCOMP_RET_*`` macros above) in string form. The ordering, from
195+ left-to-right, is the least permissive return value to the most
196+ permissive return value.
197+
198+ The list represents the set of seccomp return values supported
199+ by the kernel. A userspace program may use this list to
200+ determine if the actions found in the ``seccomp.h``, when the
201+ program was built, differs from the set of actions actually
202+ supported in the current running kernel.
203+
204+``actions_logged``:
205+ A read-write ordered list of seccomp return values (refer to the
206+ ``SECCOMP_RET_*`` macros above) that are allowed to be logged. Writes
207+ to the file do not need to be in ordered form but reads from the file
208+ will be ordered in the same way as the actions_avail sysctl.
209+
210+ It is important to note that the value of ``actions_logged`` does not
211+ prevent certain actions from being logged when the audit subsystem is
212+ configured to audit a task. If the action is not found in
213+ ``actions_logged`` list, the final decision on whether to audit the
214+ action for that task is ultimately left up to the audit subsystem to
215+ decide for all seccomp return values other than ``SECCOMP_RET_ALLOW``.
216+
217+ The ``allow`` string is not accepted in the ``actions_logged`` sysctl
218+ as it is not possible to log ``SECCOMP_RET_ALLOW`` actions. Attempting
219+ to write ``allow`` to the sysctl will result in an EINVAL being
220+ returned.
173221
174222 Adding architecture support
175223 ===========================
Documentation/virtual/kvm/devices/arm-vgic.txt+5−0
@@ -83,6 +83,11 @@ Groups: · 82 unmodified lines
8383
8484 Bits for undefined preemption levels are RAZ/WI.
8585
86+ Note that this differs from a CPU's view of the APRs on hardware in which
87+ a GIC without the security extensions expose group 0 and group 1 active
88+ priorities in separate register groups, whereas we show a combined view
89+ similar to GICv2's GICH_APR.
90+
8691 For historical reasons and to provide ABI compatibility with userspace we
8792 export the GICC_PMR register in the format of the GICH_VMCR.VMPriMask
8893 field in the lower 5 bits of a word, meaning that userspace must always
Documentation/virtual/kvm/devices/vm.txt+13−1
@@ -176,7 +176,8 @@ Architectures: s390 · 175 unmodified lines
176176
177177 3.1. ATTRIBUTE: KVM_S390_VM_TOD_HIGH
178178
179−Allows user space to set/get the TOD clock extension (u8).
179+Allows user space to set/get the TOD clock extension (u8) (superseded by
180+KVM_S390_VM_TOD_EXT).
180181
181182 Parameters: address of a buffer in user space to store the data (u8) to
182183 Returns: -EFAULT if the given address is not accessible from kernel space
@@ -190,6 +191,17 @@ the POP (u64). · 7 unmodified lines
190191 Parameters: address of a buffer in user space to store the data (u64) to
191192 Returns: -EFAULT if the given address is not accessible from kernel space
192193
194+3.3. ATTRIBUTE: KVM_S390_VM_TOD_EXT
195+Allows user space to set/get bits 0-63 of the TOD clock register as defined in
196+the POP (u64). If the guest CPU model supports the TOD clock extension (u8), it
197+also allows user space to get/set it. If the guest CPU model does not support
198+it, it is stored as 0 and not allowed to be set to a value != 0.
199+
200+Parameters: address of a buffer in user space to store the data
201+ (kvm_s390_vm_tod_clock) to
202+Returns: -EFAULT if the given address is not accessible from kernel space
203+ -EINVAL if setting the TOD clock extension to != 0 is not supported
204+
193205 4. GROUP: KVM_S390_VM_CRYPTO
194206 Architectures: s390
195207
Documentation/vm/hmm.txt+384−0
@@ -0,0 +1,384 @@
1+Heterogeneous Memory Management (HMM)
2+
3+Transparently allow any component of a program to use any memory region of said
4+program with a device without using device specific memory allocator. This is
5+becoming a requirement to simplify the use of advance heterogeneous computing
6+where GPU, DSP or FPGA are use to perform various computations.
7+
8+This document is divided as follow, in the first section i expose the problems
9+related to the use of a device specific allocator. The second section i expose
10+the hardware limitations that are inherent to many platforms. The third section
11+gives an overview of HMM designs. The fourth section explains how CPU page-
12+table mirroring works and what is HMM purpose in this context. Fifth section
13+deals with how device memory is represented inside the kernel. Finaly the last
14+section present the new migration helper that allow to leverage the device DMA
15+engine.
16+
17+
18+1) Problems of using device specific memory allocator:
19+2) System bus, device memory characteristics
20+3) Share address space and migration
21+4) Address space mirroring implementation and API
22+5) Represent and manage device memory from core kernel point of view
23+6) Migrate to and from device memory
24+7) Memory cgroup (memcg) and rss accounting
25+
26+
27+-------------------------------------------------------------------------------
28+
29+1) Problems of using device specific memory allocator:
30+
31+Device with large amount of on board memory (several giga bytes) like GPU have
32+historically manage their memory through dedicated driver specific API. This
33+creates a disconnect between memory allocated and managed by device driver and
34+regular application memory (private anonymous, share memory or regular file
35+back memory). From here on i will refer to this aspect as split address space.
36+I use share address space to refer to the opposite situation ie one in which
37+any memory region can be use by device transparently.
38+
39+Split address space because device can only access memory allocated through the
40+device specific API. This imply that all memory object in a program are not
41+equal from device point of view which complicate large program that rely on a
42+wide set of libraries.
43+
44+Concretly this means that code that wants to leverage device like GPU need to
45+copy object between genericly allocated memory (malloc, mmap private/share/)
46+and memory allocated through the device driver API (this still end up with an
47+mmap but of the device file).
48+
49+For flat dataset (array, grid, image, ...) this isn't too hard to achieve but
50+complex data-set (list, tree, ...) are hard to get right. Duplicating a complex
51+data-set need to re-map all the pointer relations between each of its elements.
52+This is error prone and program gets harder to debug because of the duplicate
53+data-set.
54+
55+Split address space also means that library can not transparently use data they
56+are getting from core program or other library and thus each library might have
57+to duplicate its input data-set using specific memory allocator. Large project
58+suffer from this and waste resources because of the various memory copy.
59+
60+Duplicating each library API to accept as input or output memory allocted by
61+each device specific allocator is not a viable option. It would lead to a
62+combinatorial explosions in the library entry points.
63+
64+Finaly with the advance of high level language constructs (in C++ but in other
65+language too) it is now possible for compiler to leverage GPU or other devices
66+without even the programmer knowledge. Some of compiler identified patterns are
67+only do-able with a share address. It is as well more reasonable to use a share
68+address space for all the other patterns.
69+
70+
71+-------------------------------------------------------------------------------
72+
73+2) System bus, device memory characteristics
74+
75+System bus cripple share address due to few limitations. Most system bus only
76+allow basic memory access from device to main memory, even cache coherency is
77+often optional. Access to device memory from CPU is even more limited, most
78+often than not it is not cache coherent.
79+
80+If we only consider the PCIE bus than device can access main memory (often
81+through an IOMMU) and be cache coherent with the CPUs. However it only allows
82+a limited set of atomic operation from device on main memory. This is worse
83+in the other direction the CPUs can only access a limited range of the device
84+memory and can not perform atomic operations on it. Thus device memory can not
85+be consider like regular memory from kernel point of view.
86+
87+Another crippling factor is the limited bandwidth (~32GBytes/s with PCIE 4.0
88+and 16 lanes). This is 33 times less that fastest GPU memory (1 TBytes/s).
89+The final limitation is latency, access to main memory from the device has an
90+order of magnitude higher latency than when the device access its own memory.
91+
92+Some platform are developing new system bus or additions/modifications to PCIE
93+to address some of those limitations (OpenCAPI, CCIX). They mainly allow two
94+way cache coherency between CPU and device and allow all atomic operations the
95+architecture supports. Saddly not all platform are following this trends and
96+some major architecture are left without hardware solutions to those problems.
97+
98+So for share address space to make sense not only we must allow device to
99+access any memory memory but we must also permit any memory to be migrated to
100+device memory while device is using it (blocking CPU access while it happens).
101+
102+
103+-------------------------------------------------------------------------------
104+
105+3) Share address space and migration
106+
107+HMM intends to provide two main features. First one is to share the address
108+space by duplication the CPU page table into the device page table so same
109+address point to same memory and this for any valid main memory address in
110+the process address space.
111+
112+To achieve this, HMM offer a set of helpers to populate the device page table
113+while keeping track of CPU page table updates. Device page table updates are
114+not as easy as CPU page table updates. To update the device page table you must
115+allow a buffer (or use a pool of pre-allocated buffer) and write GPU specifics
116+commands in it to perform the update (unmap, cache invalidations and flush,
117+...). This can not be done through common code for all device. Hence why HMM
118+provides helpers to factor out everything that can be while leaving the gory
119+details to the device driver.
120+
121+The second mechanism HMM provide is a new kind of ZONE_DEVICE memory that does
122+allow to allocate a struct page for each page of the device memory. Those page
123+are special because the CPU can not map them. They however allow to migrate
124+main memory to device memory using exhisting migration mechanism and everything
125+looks like if page was swap out to disk from CPU point of view. Using a struct
126+page gives the easiest and cleanest integration with existing mm mechanisms.
127+Again here HMM only provide helpers, first to hotplug new ZONE_DEVICE memory
128+for the device memory and second to perform migration. Policy decision of what
129+and when to migrate things is left to the device driver.
130+
131+Note that any CPU access to a device page trigger a page fault and a migration
132+back to main memory ie when a page backing an given address A is migrated from
133+a main memory page to a device page then any CPU access to address A trigger a
134+page fault and initiate a migration back to main memory.
135+
136+
137+With this two features, HMM not only allow a device to mirror a process address
138+space and keeps both CPU and device page table synchronize, but also allow to
139+leverage device memory by migrating part of data-set that is actively use by a
140+device.
141+
142+
143+-------------------------------------------------------------------------------
144+
145+4) Address space mirroring implementation and API
146+
147+Address space mirroring main objective is to allow to duplicate range of CPU
148+page table into a device page table and HMM helps keeping both synchronize. A
149+device driver that want to mirror a process address space must start with the
150+registration of an hmm_mirror struct:
151+
152+ int hmm_mirror_register(struct hmm_mirror *mirror,
153+ struct mm_struct *mm);
154+ int hmm_mirror_register_locked(struct hmm_mirror *mirror,
155+ struct mm_struct *mm);
156+
157+The locked variant is to be use when the driver is already holding the mmap_sem
158+of the mm in write mode. The mirror struct has a set of callback that are use
159+to propagate CPU page table:
160+
161+ struct hmm_mirror_ops {
162+ /* sync_cpu_device_pagetables() - synchronize page tables
163+ *
164+ * @mirror: pointer to struct hmm_mirror
165+ * @update_type: type of update that occurred to the CPU page table
166+ * @start: virtual start address of the range to update
167+ * @end: virtual end address of the range to update
168+ *
169+ * This callback ultimately originates from mmu_notifiers when the CPU
170+ * page table is updated. The device driver must update its page table
171+ * in response to this callback. The update argument tells what action
172+ * to perform.
173+ *
174+ * The device driver must not return from this callback until the device
175+ * page tables are completely updated (TLBs flushed, etc); this is a
176+ * synchronous call.
177+ */
178+ void (*update)(struct hmm_mirror *mirror,
179+ enum hmm_update action,
180+ unsigned long start,
181+ unsigned long end);
182+ };
183+
184+Device driver must perform update to the range following action (turn range
185+read only, or fully unmap, ...). Once driver callback returns the device must
186+be done with the update.
187+
188+
189+When device driver wants to populate a range of virtual address it can use
190+either:
191+ int hmm_vma_get_pfns(struct vm_area_struct *vma,
192+ struct hmm_range *range,
193+ unsigned long start,
194+ unsigned long end,
195+ hmm_pfn_t *pfns);
196+ int hmm_vma_fault(struct vm_area_struct *vma,
197+ struct hmm_range *range,
198+ unsigned long start,
199+ unsigned long end,
200+ hmm_pfn_t *pfns,
201+ bool write,
202+ bool block);
203+
204+First one (hmm_vma_get_pfns()) will only fetch present CPU page table entry and
205+will not trigger a page fault on missing or non present entry. The second one

179 more lines aren’t shown here.

Documentation/vm/numa+2−5

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

Documentation/vm/swap_numa.txt+69−0

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

Documentation/watchdog/watchdog-parameters.txt+1−1

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

Documentation/x86/amd-memory-encryption.txt+68−0

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

Documentation/x86/early-microcode.txt+0−70

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

Documentation/x86/intel_rdt_ui.txt+285−38

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

Documentation/x86/microcode.txt+137−0

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

Documentation/x86/orc-unwinder.txt+179−0

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

Documentation/x86/protection-keys.txt+3−3

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

Documentation/x86/x86_64/5level-paging.txt+64−0

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

MAINTAINERS+327−110

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

Makefile+16−29

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

arch/Kconfig+26−5

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

arch/alpha/defconfig+0−2

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

arch/alpha/include/asm/Kbuild+1−0

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

arch/alpha/include/asm/asm-prototypes.h+18−0

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

arch/alpha/include/asm/core_marvel.h+1−1

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

arch/alpha/include/asm/fb.h+0−13

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

arch/alpha/include/asm/futex.h+5−21

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

arch/alpha/include/asm/io.h+1−0

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

arch/alpha/include/asm/spinlock.h+0−5

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

arch/alpha/include/asm/string.h+8−7

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

arch/alpha/include/asm/types.h+1−1

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

arch/alpha/include/asm/unistd.h+1−1

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

arch/alpha/include/asm/vga.h+1−1

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

arch/alpha/include/uapi/asm/mman.h+3−11

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

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

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

arch/alpha/include/uapi/asm/socket.h+2−0

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

arch/alpha/include/uapi/asm/types.h+11−1

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

arch/alpha/include/uapi/asm/unistd.h+14−5

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

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

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

arch/alpha/kernel/core_titan.c+2−0

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

arch/alpha/kernel/module.c+3−0

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

arch/alpha/kernel/pci-noop.c+1−5

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

arch/alpha/kernel/pci-sysfs.c+3−4

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

arch/alpha/kernel/pci.c+21−12

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

arch/alpha/kernel/setup.c+3−2

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

arch/alpha/kernel/smc37c669.c+2−5

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

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

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

arch/alpha/kernel/sys_marvel.c+6−6

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

arch/alpha/kernel/sys_nautilus.c+27−4

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

arch/alpha/kernel/systbls.S+9−0

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

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

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

arch/alpha/lib/Makefile+16−6

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

arch/alpha/lib/copy_user.S+1−1

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

arch/alpha/lib/ev6-copy_user.S+4−3

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

arch/alpha/lib/memset.S+5−5

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

arch/alpha/math-emu/math.c+1−0

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

arch/arc/Kconfig+10−2

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

arch/arc/Makefile+2−1

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

arch/arc/boot/dts/axc001.dtsi+9−11

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

arch/arc/boot/dts/axc003.dtsi+19−13

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

arch/arc/boot/dts/axc003_idu.dtsi+19−13

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

arch/arc/boot/dts/axs10x_mb.dtsi+1−2

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

arch/arc/boot/dts/hsdk.dts+189−0

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

arch/arc/boot/dts/nsim_hs.dts+1−1

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

arch/arc/boot/dts/vdk_axs10x_mb.dtsi+0−1

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

arch/arc/configs/haps_hs_defconfig+0−1

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

arch/arc/configs/haps_hs_smp_defconfig+0−1

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

arch/arc/configs/hsdk_defconfig+80−0

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

arch/arc/configs/nps_defconfig+0−1

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

arch/arc/configs/nsim_700_defconfig+0−1

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

arch/arc/configs/nsim_hs_defconfig+0−1

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

arch/arc/configs/nsim_hs_smp_defconfig+0−1

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

arch/arc/configs/nsimosci_defconfig+0−1

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

arch/arc/configs/nsimosci_hs_defconfig+0−1

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

arch/arc/configs/nsimosci_hs_smp_defconfig+0−1

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

arch/arc/configs/tb10x_defconfig+0−1

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

arch/arc/include/asm/atomic.h+2−0

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

arch/arc/include/asm/cache.h+6−1

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

arch/arc/include/asm/entry-compact.h+24−0

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

arch/arc/include/asm/futex.h+5−35

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

arch/arc/include/asm/irqflags-arcv2.h+0−3

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

arch/arc/include/asm/irqflags-compact.h+0−2

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

arch/arc/include/asm/mmu.h+2−0

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

arch/arc/include/asm/page.h+1−1

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

arch/arc/include/asm/processor.h+10−3

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

arch/arc/include/asm/ptrace.h+5−0

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

arch/arc/include/asm/spinlock.h+12−5

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

arch/arc/include/asm/switch_to.h+9−0

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

arch/arc/kernel/Makefile+0−1

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

arch/arc/kernel/devtree.c+3−2

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

arch/arc/kernel/entry-compact.S+11−11

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

arch/arc/kernel/entry.S+6−0

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

arch/arc/kernel/intc-arcv2.c+10−0

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

arch/arc/kernel/intc-compact.c+13−1

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

arch/arc/kernel/pcibios.c+0−22

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

arch/arc/kernel/process.c+31−2

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

arch/arc/kernel/setup.c+4−4

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

arch/arc/kernel/traps.c+2−2

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

arch/arc/kernel/troubleshoot.c+5−2

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

arch/arc/mm/cache.c+115−18

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

arch/arc/mm/dma.c+45−0

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

arch/arc/mm/fault.c+1−1

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

arch/arc/mm/init.c+3−3

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

arch/arc/mm/tlb.c+12−5

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

arch/arc/mm/tlbex.S+9−0

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

arch/arc/plat-axs10x/axs10x.c+21−131

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

arch/arc/plat-eznps/Kconfig+24−2

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

arch/arc/plat-eznps/Makefile+1−1

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

arch/arc/plat-eznps/ctop.c+32−0

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

arch/arc/plat-eznps/entry.S+1−1

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

arch/arc/plat-eznps/include/plat/ctop.h+2−0

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

arch/arc/plat-eznps/mtm.c+46−4

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

arch/arc/plat-hsdk/Kconfig+9−0

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

arch/arc/plat-hsdk/Makefile+9−0

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

arch/arc/plat-hsdk/platform.c+66−0

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

arch/arc/plat-sim/Kconfig+0−13

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

arch/arc/plat-sim/platform.c+4−1

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

arch/arm/Kconfig+3−3

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

arch/arm/Kconfig.debug+38−15

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

arch/arm/boot/compressed/efi-header.S+82−78

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

arch/arm/boot/compressed/vmlinux.lds.S+23−7

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

arch/arm/boot/dts/Makefile+18−6

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

arch/arm/boot/dts/am335x-bone-common.dtsi+0−3

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

arch/arm/boot/dts/am335x-chiliboard.dts+0−3

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

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

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

arch/arm/boot/dts/am335x-moxa-uc-8100-me-t.dts+525−0

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

arch/arm/boot/dts/am437x-gp-evm.dts+15−0

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

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

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

arch/arm/boot/dts/am571x-idk.dts+28−7

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

arch/arm/boot/dts/am572x-idk.dts+25−9

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

arch/arm/boot/dts/am57xx-beagle-x15-common.dtsi+7−29

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

arch/arm/boot/dts/am57xx-beagle-x15-revb1.dts+16−1

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

arch/arm/boot/dts/am57xx-beagle-x15-revc.dts+39−0

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

arch/arm/boot/dts/am57xx-beagle-x15.dts+11−0

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

arch/arm/boot/dts/am57xx-idk-common.dtsi+8−0

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

arch/arm/boot/dts/armada-370.dtsi+3−1

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

arch/arm/boot/dts/armada-375.dtsi+3−1

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

arch/arm/boot/dts/armada-380.dtsi+4−1

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

arch/arm/boot/dts/armada-385-db-ap.dts+1−1

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

arch/arm/boot/dts/armada-385-turris-omnia.dts+1−1

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

arch/arm/boot/dts/armada-385.dtsi+5−1

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

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

This diff is large: its 9 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-388-db.dts+1−1

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

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

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

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

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

arch/arm/boot/dts/armada-38x.dtsi+7−0

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

arch/arm/boot/dts/armada-390-db.dts+1−1

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

arch/arm/boot/dts/armada-395-gp.dts+1−1

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

arch/arm/boot/dts/armada-398-db.dts+1−1

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

arch/arm/boot/dts/armada-39x.dtsi+5−1

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

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

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

arch/arm/boot/dts/armada-xp-db.dts+1−1

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

arch/arm/boot/dts/armada-xp-gp.dts+1−1

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

arch/arm/boot/dts/armada-xp-mv78230.dtsi+6−1

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

arch/arm/boot/dts/armada-xp-mv78260.dtsi+10−1

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

arch/arm/boot/dts/armada-xp-mv78460.dtsi+12−2

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

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

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

arch/arm/boot/dts/at91-sama5d27_som1.dtsi+102−0

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

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

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

arch/arm/boot/dts/at91-sama5d2_xplained.dts+28−11

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

arch/arm/boot/dts/at91sam9g45.dtsi+21−0

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

arch/arm/boot/dts/at91sam9m10g45ek.dts+4−0

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

arch/arm/boot/dts/bcm-cygnus.dtsi+135−14

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

arch/arm/boot/dts/bcm-nsp.dtsi+45−14

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

arch/arm/boot/dts/bcm2835-rpi-a-plus.dts+6−0

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

arch/arm/boot/dts/bcm2835-rpi-a.dts+6−0

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

arch/arm/boot/dts/bcm2835-rpi-b-plus.dts+6−0

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

arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts+6−0

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

arch/arm/boot/dts/bcm2835-rpi-b.dts+6−0

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

arch/arm/boot/dts/bcm2835-rpi-zero-w.dts+139−0

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

arch/arm/boot/dts/bcm2835-rpi-zero.dts+6−0

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

arch/arm/boot/dts/bcm2835-rpi.dtsi+1−1

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

arch/arm/boot/dts/bcm2836-rpi-2-b.dts+6−0

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

arch/arm/boot/dts/bcm2836.dtsi+1−0

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

arch/arm/boot/dts/bcm2837-rpi-3-b.dts+51−1

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

arch/arm/boot/dts/bcm2837.dtsirenamed from arch/arm64/boot/dts/broadcom/bcm2837.dtsi+1−0

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

arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts+4−0

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

arch/arm/boot/dts/bcm4708-netgear-r6250.dts+3−0

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

arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts+6−0

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

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

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

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

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

arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts+3−0

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

arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts+3−0

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

arch/arm/boot/dts/bcm47189-tenda-ac9.dts+2−0

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

arch/arm/boot/dts/bcm5301x.dtsi+34−0

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

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

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

arch/arm/boot/dts/bcm911360_entphn.dts+5−2

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

arch/arm/boot/dts/bcm947189acdbmr.dts+97−0

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

arch/arm/boot/dts/bcm958522er.dts+8−0

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

arch/arm/boot/dts/bcm958525er.dts+8−0

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

arch/arm/boot/dts/bcm958525xmc.dts+8−0

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

arch/arm/boot/dts/bcm958622hr.dts+8−0

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

arch/arm/boot/dts/bcm958623hr.dts+8−0

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

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

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

arch/arm/boot/dts/bcm958625k.dts+8−0

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

arch/arm/boot/dts/da850-lego-ev3.dts+24−0

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

arch/arm/boot/dts/dove-d3plug.dts+2−2

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

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

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

arch/arm/boot/dts/dra7-evm-common.dtsi+258−0

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

arch/arm/boot/dts/dra7-evm.dts+29−248

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

arch/arm/boot/dts/dra7.dtsi+35−1

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

arch/arm/boot/dts/dra71-evm.dts+31−1

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

arch/arm/boot/dts/dra72-evm-common.dtsi+5−2

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

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

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

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

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

arch/arm/boot/dts/dra72-evm.dts+32−0

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

arch/arm/boot/dts/dra72x-mmc-iodelay.dtsi+350−0

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

arch/arm/boot/dts/dra74x-mmc-iodelay.dtsi+647−0

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

arch/arm/boot/dts/dra76-evm.dts+423−0

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

arch/arm/boot/dts/dra76x.dtsi+19−0

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

arch/arm/boot/dts/exynos3250-artik5-eval.dts+0−1

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

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

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

arch/arm/boot/dts/exynos3250-monk.dts+0−1

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

arch/arm/boot/dts/exynos3250-rinato.dts+0−22

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

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

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

arch/arm/boot/dts/exynos4412-itop-scp-core.dtsi+0−1

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

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

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

arch/arm/boot/dts/exynos4412-origen.dts+0−1

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

arch/arm/boot/dts/exynos4412-trats2.dts+0−22

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

arch/arm/boot/dts/exynos5250-arndale.dts+0−2

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

arch/arm/boot/dts/exynos5250-smdk5250.dts+0−2

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

arch/arm/boot/dts/exynos5250-snow-common.dtsi+0−3

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

arch/arm/boot/dts/exynos5250-spring.dts+0−2

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

arch/arm/boot/dts/exynos5260-xyref5260.dts+0−2

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

arch/arm/boot/dts/exynos5410-smdk5410.dts+0−2

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

arch/arm/boot/dts/exynos5420-peach-pit.dts+0−3

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

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

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

arch/arm/boot/dts/exynos5440.dtsi+2−0

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

arch/arm/boot/dts/exynos5800-peach-pi.dts+0−3

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

arch/arm/boot/dts/gemini-dlink-dir-685.dts+246−0

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

arch/arm/boot/dts/gemini-nas4220b.dts+24−0

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

arch/arm/boot/dts/gemini-rut1xx.dts+39−0

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

arch/arm/boot/dts/gemini-sq201.dts+35−1

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

arch/arm/boot/dts/gemini-wbd111.dts+26−0

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

arch/arm/boot/dts/gemini-wbd222.dts+26−0

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

arch/arm/boot/dts/gemini.dtsi+146−27

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

arch/arm/boot/dts/imx25.dtsi+8−0

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

arch/arm/boot/dts/imx53-cx9020.dts+297−0

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

arch/arm/boot/dts/imx53-pinfunc.h+4−0

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

arch/arm/boot/dts/imx53.dtsi+9−0

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

arch/arm/boot/dts/imx6dl-gw52xx.dts+58−0

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

arch/arm/boot/dts/imx6dl-gw53xx.dts+58−0

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

arch/arm/boot/dts/imx6dl-gw54xx.dts+58−0

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

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

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

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

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

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

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

arch/arm/boot/dts/imx6q-apalis-ixora.dts+14−18

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

arch/arm/boot/dts/imx6q-b850v3.dts+1−1

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

arch/arm/boot/dts/imx6q-bx50v3.dtsi+42−0

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

arch/arm/boot/dts/imx6q-evi.dts+16−0

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

arch/arm/boot/dts/imx6q-gw52xx.dts+58−0

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

arch/arm/boot/dts/imx6q-gw53xx.dts+58−0

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

arch/arm/boot/dts/imx6q-gw54xx.dts+58−0

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

arch/arm/boot/dts/imx6qdl-apalis.dtsi+20−24

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

arch/arm/boot/dts/imx6qdl-gw51xx.dtsi+54−0

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

arch/arm/boot/dts/imx6qdl-gw52xx.dtsi+0−1

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

arch/arm/boot/dts/imx6qdl-gw53xx.dtsi+0−1

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

arch/arm/boot/dts/imx6qdl-gw54xx.dtsi+0−1

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

arch/arm/boot/dts/imx6qdl-gw553x.dtsi+54−0

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

arch/arm/boot/dts/imx6qdl-icore-rqs.dtsi+0−1

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

arch/arm/boot/dts/imx6qdl-nitrogen6_som2.dtsi+2−2

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

arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi+19−0

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

arch/arm/boot/dts/imx6qdl-sabrelite.dtsi+19−0

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

arch/arm/boot/dts/imx6qdl-zii-rdu2.dtsi+109−3

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

arch/arm/boot/dts/imx6qdl.dtsi+1−0

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

arch/arm/boot/dts/imx6sl.dtsi+1−0

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

arch/arm/boot/dts/imx6sx.dtsi+1−0

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

arch/arm/boot/dts/imx6ul-14x14-evk.dts+15−25

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

arch/arm/boot/dts/imx6ul-geam.dtsrenamed from arch/arm/boot/dts/imx6ul-geam.dtsi+74−0

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

arch/arm/boot/dts/imx6ul-isiot-common.dtsi+0−141

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

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

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

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

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

arch/arm/boot/dts/imx6ul-isiot.dtsi+183−0

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

arch/arm/boot/dts/imx6ul-liteboard.dts+4−0

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

arch/arm/boot/dts/imx6ul.dtsi+1−0

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

arch/arm/boot/dts/imx7-colibri.dtsi+9−0

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

arch/arm/boot/dts/imx7d-sdb.dts+68−41

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

arch/arm/boot/dts/imx7s.dtsi+32−0

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

arch/arm/boot/dts/imx7ulp-pinfunc.h+468−0

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

arch/arm/boot/dts/keystone-k2e-evm.dts+18−0

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

arch/arm/boot/dts/keystone-k2e.dtsi+20−0

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

arch/arm/boot/dts/keystone-k2g-evm.dts+71−0

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

arch/arm/boot/dts/keystone-k2g-ice.dts+18−0

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

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

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

arch/arm/boot/dts/keystone-k2hk-evm.dts+53−0

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

arch/arm/boot/dts/keystone-k2hk.dtsi+139−0

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

arch/arm/boot/dts/keystone-k2l-evm.dts+33−0

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

arch/arm/boot/dts/keystone-k2l.dtsi+71−0

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

arch/arm/boot/dts/kirkwood-6192.dtsi+2−1

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

arch/arm/boot/dts/kirkwood-6281.dtsi+2−1

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

arch/arm/boot/dts/kirkwood-6282.dtsi+3−1

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

arch/arm/boot/dts/kirkwood-98dx4122.dtsi+2−1

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

arch/arm/boot/dts/logicpd-torpedo-37xx-devkit.dts+1−1

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

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

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

arch/arm/boot/dts/meson.dtsi+26−4

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

arch/arm/boot/dts/meson6.dtsi+28−0

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

arch/arm/boot/dts/meson8.dtsi+16−0

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

arch/arm/boot/dts/meson8b.dtsi+13−20

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

arch/arm/boot/dts/motorola-cpcap-mapphone.dtsi+1−0

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

arch/arm/boot/dts/mt2701.dtsi+106−0

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

arch/arm/boot/dts/mt6323.dtsi+241−0

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

arch/arm/boot/dts/mt7623.dtsi+167−44

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

arch/arm/boot/dts/mt7623n-bananapi-bpi-r2.dts+487−0

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

arch/arm/boot/dts/mt7623n-rfb-nand.dts+111−0

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

arch/arm/boot/dts/mt7623n-rfb.dtsi+92−0

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

arch/arm/boot/dts/omap2420-n8x0-common.dtsi+2−2

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

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

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

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

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

arch/arm/boot/dts/omap3-cm-t3517.dts+1−1

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

arch/arm/boot/dts/omap3-cm-t3730.dts+1−1

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

arch/arm/boot/dts/omap3-devkit8000-common.dtsi+1−1

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

arch/arm/boot/dts/omap3-evm-common.dtsi+1−1

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

arch/arm/boot/dts/omap3-n900.dts+88−1

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

arch/arm/boot/dts/omap3-overo-base.dtsi+1−1

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

arch/arm/boot/dts/omap3-tao3530.dtsi+1−1

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

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

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

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

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

arch/arm/boot/dts/omap3430-sdp.dts+1−1

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

arch/arm/boot/dts/omap4-droid4-xt894.dts+41−1

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

arch/arm/boot/dts/omap4-duovero-parlor.dts+1−1

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

arch/arm/boot/dts/omap4-panda-common.dtsi+1−1

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

arch/arm/boot/dts/omap4-sdp-es23plus.dts+1−1

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

arch/arm/boot/dts/omap4-sdp.dts+1−1

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

arch/arm/boot/dts/omap4-var-om44customboard.dtsi+1−1

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

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

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

arch/arm/boot/dts/omap5-cm-t54.dts+1−1

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

arch/arm/boot/dts/qcom-ipq4019-ap.dk01.1.dtsi+11−18

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

arch/arm/boot/dts/qcom-ipq4019.dtsi+108−1

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

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

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

arch/arm/boot/dts/r7s72100-genmai.dts+70−1

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

arch/arm/boot/dts/r7s72100-rskrza1.dts+61−0

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

arch/arm/boot/dts/r7s72100.dtsi+78−0

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

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

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

arch/arm/boot/dts/r8a7743-iwg20m.dtsi+26−0

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

arch/arm/boot/dts/r8a7743-sk-rzg1m.dts+24−1

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

arch/arm/boot/dts/r8a7743.dtsi+300−1

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

arch/arm/boot/dts/r8a7745-sk-rzg1e.dts+24−1

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

arch/arm/boot/dts/r8a7745.dtsi+29−1

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

arch/arm/boot/dts/r8a7790.dtsi+24−6

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

arch/arm/boot/dts/r8a7791-koelsch.dts+9−1

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

arch/arm/boot/dts/r8a7791.dtsi+23−5

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

arch/arm/boot/dts/r8a7792.dtsi+18−0

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

arch/arm/boot/dts/r8a7793.dtsi+18−0

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

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

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

arch/arm/boot/dts/rk3036-kylin.dts+0−2

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

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

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

arch/arm/boot/dts/rk3066a-bqcurie2.dts+0−2

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

arch/arm/boot/dts/rk3066a-mk808.dts+0−2

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

arch/arm/boot/dts/rk3066a-rayeager.dts+0−3

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

arch/arm/boot/dts/rk3188-px3-evb.dts+0−2

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

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

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

arch/arm/boot/dts/rk3228-evb.dts+34−0

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

arch/arm/boot/dts/rk3229-evb.dts+128−1

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

arch/arm/boot/dts/rk3229.dtsi+89−0

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

arch/arm/boot/dts/rk322x.dtsi+197−2

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

arch/arm/boot/dts/rk3288-evb.dtsi+48−3

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

arch/arm/boot/dts/rk3288-fennec.dts+6−2

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

arch/arm/boot/dts/rk3288-firefly-reload-core.dtsi+1−2

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

arch/arm/boot/dts/rk3288-firefly-reload.dts+0−2

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

arch/arm/boot/dts/rk3288-firefly.dtsi+1−4

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

arch/arm/boot/dts/rk3288-miqi.dts+1−3

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

arch/arm/boot/dts/rk3288-phycore-rdk.dts+0−1

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

arch/arm/boot/dts/rk3288-phycore-som.dtsi+1−2

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

arch/arm/boot/dts/rk3288-popmetal.dts+1−3

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

arch/arm/boot/dts/rk3288-r89.dts+1−2

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

arch/arm/boot/dts/rk3288-rock2-som.dtsi+1−2

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

arch/arm/boot/dts/rk3288-rock2-square.dts+0−2

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

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

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

arch/arm/boot/dts/rk3288-veyron-sdmmc.dtsi+0−1

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

arch/arm/boot/dts/rk3288-veyron.dtsi+1−3

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

arch/arm/boot/dts/rk3288.dtsi+126−89

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

arch/arm/boot/dts/rv1108-evb.dts+190−0

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

arch/arm/boot/dts/rv1108.dtsi+359−10

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

arch/arm/boot/dts/sama5d2.dtsi+82−7

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

arch/arm/boot/dts/spear1310.dtsi+3−0

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

arch/arm/boot/dts/spear1340.dtsi+1−0

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

arch/arm/boot/dts/ste-dbx5x0.dtsi+8−7

This diff is large: its 29 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/stm32429i-eval.dts+1−1

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

arch/arm/boot/dts/stm32f429-disco.dts+1−1

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

arch/arm/boot/dts/stm32f429.dtsi+25−0

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

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

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

arch/arm/boot/dts/stm32f746.dtsi+51−0

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

arch/arm/boot/dts/stm32f769-disco.dts+6−0

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

arch/arm/boot/dts/stm32h743.dtsi+119−8

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

arch/arm/boot/dts/stm32h743i-eval.dts+18−0

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

arch/arm/boot/dts/sun6i-a31.dtsi+3−3

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

arch/arm/boot/dts/sun7i-a20-cubietruck.dts+4−0

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

arch/arm/boot/dts/sun8i-a23-a33.dtsi+3−3

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

arch/arm/boot/dts/sun8i-a83t-allwinner-h8homlet-v2.dts+85−0

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

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

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

arch/arm/boot/dts/sun8i-a83t-cubietruck-plus.dts+101−0

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

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

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

arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts+0−9

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

arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts+0−19

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

arch/arm/boot/dts/sun8i-h3-beelink-x2.dts+21−1

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

arch/arm/boot/dts/sun8i-h3-nanopi-neo.dts+0−7

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

arch/arm/boot/dts/sun8i-h3-orangepi-2.dts+0−8

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

arch/arm/boot/dts/sun8i-h3-orangepi-one.dts+0−8

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

arch/arm/boot/dts/sun8i-h3-orangepi-pc-plus.dts+0−5

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

arch/arm/boot/dts/sun8i-h3-orangepi-pc.dts+0−8

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

arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts+0−22

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

arch/arm/boot/dts/sun8i-h3-orangepi-plus2e.dts+0−16

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

arch/arm/boot/dts/sun8i-r16-bananapi-m2m.dts+321−0

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

arch/arm/boot/dts/sunxi-h3-h5.dtsi+0−26

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

arch/arm/boot/dts/tango4-smp8758.dtsi+0−1

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

arch/arm/boot/dts/tegra114-dalmore.dts+10−0

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

arch/arm/boot/dts/tegra124-jetson-tk1.dts+11−1

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

arch/arm/boot/dts/tegra124.dtsi+1−0

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

arch/arm/boot/dts/tegra20-paz00.dts+2−0

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

arch/arm/boot/dts/tegra30-beaver.dts+10−0

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

arch/arm/boot/dts/tps65217.dtsi+3−0

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

arch/arm/boot/dts/uniphier-ld4-ref.dts+7−3

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

arch/arm/boot/dts/uniphier-ld4.dtsi+19−1

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

arch/arm/boot/dts/uniphier-ld6b-ref.dts+7−3

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

arch/arm/boot/dts/uniphier-ld6b.dtsi+1−1

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

arch/arm/boot/dts/uniphier-pinctrl.dtsi+21−37

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

arch/arm/boot/dts/uniphier-pro4-ace.dts+1−1

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

arch/arm/boot/dts/uniphier-pro4-ref.dts+7−3

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

arch/arm/boot/dts/uniphier-pro4-sanji.dts+1−1

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

arch/arm/boot/dts/uniphier-pro4.dtsi+19−1

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

arch/arm/boot/dts/uniphier-pro5.dtsi+21−39

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

arch/arm/boot/dts/uniphier-pxs2-gentil.dts+1−1

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

arch/arm/boot/dts/uniphier-pxs2-vodka.dts+1−1

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

arch/arm/boot/dts/uniphier-pxs2.dtsi+20−2

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

arch/arm/boot/dts/uniphier-sld3-ref.dts+0−75

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

arch/arm/boot/dts/uniphier-sld3.dtsi+0−260

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

arch/arm/boot/dts/uniphier-sld8-ref.dts+7−3

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

arch/arm/boot/dts/uniphier-sld8.dtsi+19−1

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

arch/arm/boot/dts/versatile-pb.dts+1−1

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

arch/arm/boot/dts/zx296702-ad1.dts+0−2

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

arch/arm/boot/dts/zynq-7000.dtsi+8−0

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

arch/arm/boot/dts/zynq-parallella.dts+2−1

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

arch/arm/boot/dts/zynq-zc702.dts+18−2

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

arch/arm/boot/dts/zynq-zc706.dts+18−2

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

arch/arm/boot/dts/zynq-zed.dts+3−2

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

arch/arm/boot/dts/zynq-zybo.dts+3−2

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

arch/arm/configs/aspeed_g4_defconfig+4−1

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

arch/arm/configs/aspeed_g5_defconfig+3−1

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

arch/arm/configs/bcm2835_defconfig+7−0

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

arch/arm/configs/davinci_all_defconfig+2−0

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

arch/arm/configs/exynos_defconfig+73−6

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

arch/arm/configs/ezx_defconfig+0−1

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

arch/arm/configs/imx_v6_v7_defconfig+14−1

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

arch/arm/configs/ixp4xx_defconfig+0−4

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

arch/arm/configs/keystone_defconfig+13−0

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

arch/arm/configs/multi_v7_defconfig+8−10

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

arch/arm/configs/omap2plus_defconfig+4−0

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

arch/arm/configs/qcom_defconfig+0−1

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

arch/arm/configs/shmobile_defconfig+11−7

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

arch/arm/configs/sunxi_defconfig+5−10

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

arch/arm/configs/tegra_defconfig+7−5

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

arch/arm/configs/vexpress_defconfig+0−1

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

arch/arm/crypto/Kconfig+3−2

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

arch/arm/crypto/aes-ce-glue.c+1−3

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

arch/arm/crypto/aes-cipher-core.S+65−23

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

arch/arm/crypto/aes-neonbs-glue.c+2−3

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

arch/arm/crypto/ghash-ce-core.S+191−43

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

arch/arm/crypto/ghash-ce-glue.c+21−3

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

arch/arm/include/asm/arch_gicv3.h+34−0

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

arch/arm/include/asm/futex.h+4−22

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

arch/arm/include/asm/kvm_arm.h+0−1

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

arch/arm/include/asm/kvm_emulate.h+19−5

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

arch/arm/include/asm/kvm_host.h+0−6

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

arch/arm/include/asm/smp_scu.h+1−0

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

arch/arm/include/asm/spinlock.h+0−16

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

arch/arm/include/asm/string.h+14−0

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

arch/arm/include/asm/suspend.h+2−0

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

arch/arm/include/asm/tlb.h+9−2

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

arch/arm/include/asm/traps.h+0−7

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

arch/arm/include/debug/omap2plus.S+1−108

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

arch/arm/kernel/armksyms.c+2−0

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

arch/arm/kernel/cpuidle.c+2−2

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

arch/arm/kernel/devtree.c+2−3

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

arch/arm/kernel/entry-armv.S+2−0

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

arch/arm/kernel/entry-common.S+42−13

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

arch/arm/kernel/head.S+2−0

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

arch/arm/kernel/hyp-stub.S+1−0

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

arch/arm/kernel/iwmmxt.S+1−0

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

arch/arm/kernel/signal.c+7−0

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

arch/arm/kernel/sleep.S+1−0

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

arch/arm/kernel/stacktrace.c+1−0

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

arch/arm/kernel/topology.c+1−2

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

arch/arm/kvm/handle_exit.c+1−1

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

arch/arm/lib/memset.S+18−6

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

arch/arm/mach-at91/Kconfig+5−1

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

arch/arm/mach-at91/pm.c+12−0

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

arch/arm/mach-davinci/board-da850-evm.c+1−1

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

arch/arm/mach-davinci/board-dm355-evm.c+1−1

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

arch/arm/mach-davinci/board-dm355-leopard.c+1−1

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

arch/arm/mach-davinci/board-dm365-evm.c+1−1

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

arch/arm/mach-davinci/board-dm644x-evm.c+1−1

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

arch/arm/mach-davinci/board-dm646x-evm.c+1−1

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

arch/arm/mach-davinci/board-sffsdr.c+1−1

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

arch/arm/mach-dove/dove-db-setup.c+1−1

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

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

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

arch/arm/mach-ep93xx/core.c+24−0

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

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

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

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

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

arch/arm/mach-ep93xx/snappercl15.c+1−1

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

arch/arm/mach-ep93xx/soc.h+1−0

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

arch/arm/mach-ep93xx/ts72xx.c+1−1

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

arch/arm/mach-exynos/sleep.S+1−0

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

arch/arm/mach-exynos/suspend.c+3−4

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

arch/arm/mach-gemini/Kconfig+5−0

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

arch/arm/mach-hisi/Kconfig+1−0

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

arch/arm/mach-hisi/platsmp.c+1−1

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

arch/arm/mach-imx/gpc.c+2−2

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

arch/arm/mach-imx/mach-imx27_visstrim_m10.c+17−27

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

arch/arm/mach-imx/mach-mx31moboard.c+6−6

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

arch/arm/mach-imx/mach-qong.c+1−1

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

arch/arm/mach-ixp4xx/ixdp425-setup.c+1−1

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

arch/arm/mach-mediatek/mediatek.c+2−0

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

arch/arm/mach-mediatek/platsmp.c+1−0

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

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

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

arch/arm/mach-mvebu/Kconfig+2−0

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

arch/arm/mach-mvebu/kirkwood.c+1−2

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

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

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

arch/arm/mach-omap1/board-h2-mmc.c+1−1

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

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

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

arch/arm/mach-omap1/board-h3-mmc.c+1−1

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

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

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

arch/arm/mach-omap1/board-nand.c+1−1

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

arch/arm/mach-omap1/board-nokia770.c+2−2

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

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

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

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

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

arch/arm/mach-omap2/Kconfig+1−0

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

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

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

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

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

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

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

arch/arm/mach-omap2/display.c+61−58

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

arch/arm/mach-omap2/display.h+0−1

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

arch/arm/mach-omap2/dma.c+5−143

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

arch/arm/mach-omap2/drm.c+0−53

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

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

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

arch/arm/mach-omap2/io.c+0−1

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

arch/arm/mach-omap2/omap-smp.c+2−2

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

arch/arm/mach-omap2/omap-wakeupgen.c+2−2

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

arch/arm/mach-omap2/omap_device.c+0−10

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

arch/arm/mach-omap2/omap_hwmod.c+2−2

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

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

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

arch/arm/mach-omap2/omap_twl.c+1−1

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

arch/arm/mach-omap2/pdata-quirks.c+31−0

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

arch/arm/mach-omap2/powerdomains7xx_data.c+32−1

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

arch/arm/mach-omap2/prm3xxx.c+1−1

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

arch/arm/mach-omap2/prm44xx.c+2−2

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

arch/arm/mach-omap2/sleep34xx.S+2−0

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

arch/arm/mach-omap2/sleep44xx.S+1−0

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

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

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

arch/arm/mach-orion5x/db88f5281-setup.c+1−1

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

arch/arm/mach-orion5x/kurobox_pro-setup.c+1−1

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

arch/arm/mach-orion5x/ts209-setup.c+1−1

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

arch/arm/mach-orion5x/ts78xx-setup.c+1−1

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

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

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

arch/arm/mach-pxa/em-x270.c+1−1

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

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

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

arch/arm/mach-pxa/mioa701_bootresume.S+2−0

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

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

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

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

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

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

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

arch/arm/mach-rockchip/Kconfig+2−0

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

arch/arm/mach-rockchip/platsmp.c+3−3

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

arch/arm/mach-rockchip/sleep.S+1−1

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

arch/arm/mach-s3c24xx/Kconfig+1−1

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

arch/arm/mach-s3c24xx/common-smdk.c+1−1

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

arch/arm/mach-s3c24xx/common.c+1−1

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

arch/arm/mach-s3c24xx/include/mach/regs-clock.h+2−2

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

arch/arm/mach-s3c24xx/mach-anubis.c+1−1

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

arch/arm/mach-s3c24xx/mach-at2440evb.c+1−1

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

arch/arm/mach-s3c24xx/mach-bast.c+1−1

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

arch/arm/mach-s3c24xx/mach-gta02.c+1−1

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

arch/arm/mach-s3c24xx/mach-jive.c+1−1

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

arch/arm/mach-s3c24xx/mach-mini2440.c+2−2

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

arch/arm/mach-s3c24xx/mach-osiris-dvs.c+1−1

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

arch/arm/mach-s3c24xx/mach-osiris.c+2−2

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

arch/arm/mach-s3c24xx/mach-qt2410.c+1−1

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

arch/arm/mach-s3c24xx/mach-rx3715.c+1−1

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

arch/arm/mach-s3c24xx/mach-smdk2443.c+0−8

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

arch/arm/mach-s3c24xx/mach-vstms.c+1−1

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

arch/arm/mach-s3c24xx/sleep.S+6−5

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

arch/arm/mach-shmobile/Kconfig+0−4

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

arch/arm/mach-shmobile/pm-rcar-gen2.c+30−3

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

arch/arm/mach-shmobile/pm-rmobile.c+3−4

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

arch/arm/mach-shmobile/setup-rcar-gen2.c+17−4

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

arch/arm/mach-tegra/Kconfig+2−0

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

arch/arm/mach-tegra/cpuidle-tegra114.c+2−2

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

arch/arm/mach-tegra/tegra.c+1−28

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

arch/arm/mm/cache-v4wb.S+1−0

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

arch/arm/mm/fault.c+4−1

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

arch/arm/mm/proc-v7-3level.S+1−2

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

arch/arm/mm/proc-xscale.S+1−0

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

arch/arm/net/bpf_jit_32.c+1663−785

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

arch/arm/net/bpf_jit_32.h+83−25

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

arch/arm/plat-samsung/include/plat/map-s3c.h+1−1

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

arch/arm64/Kconfig+13−0

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

arch/arm64/Kconfig.platforms+7−0

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

arch/arm64/Makefile+5−0

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

arch/arm64/boot/dts/allwinner/Makefile+2−0

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

arch/arm64/boot/dts/allwinner/axp803.dtsi+150−0

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

arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts+132−20

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

arch/arm64/boot/dts/allwinner/sun50i-a64-nanopi-a64.dts+207−0

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

arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts+199−0

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

arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-plus.dts+0−15

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

arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts+112−16

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

arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts+22−15

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

arch/arm64/boot/dts/allwinner/sun50i-a64-sopine.dtsi+86−0

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

arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi+9−20

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

arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo2.dts+0−17

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

arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts+0−17

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

arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts+0−17

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

arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi+3−0

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

arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi+7−0

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

arch/arm64/boot/dts/amlogic/meson-gx.dtsi+30−16

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

arch/arm64/boot/dts/amlogic/meson-gxbb-nanopi-k2.dts+58−0

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

arch/arm64/boot/dts/amlogic/meson-gxbb-nexbox-a95x.dts+7−0

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

arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi+10−0

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

arch/arm64/boot/dts/amlogic/meson-gxbb-wetek-play2.dts+6−0

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

arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi+34−0

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

arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p230.dts+7−1

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

arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts+63−0

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

arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts+64−0

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

arch/arm64/boot/dts/amlogic/meson-gxl-s905x-nexbox-a95x.dts+7−0

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

arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dts+7−0

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

arch/arm64/boot/dts/amlogic/meson-gxl.dtsi+35−0

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

arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts+7−0

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

arch/arm64/boot/dts/amlogic/meson-gxm.dtsi+4−0

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

arch/arm64/boot/dts/apm/apm-shadowcat.dtsi+2−0

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

arch/arm64/boot/dts/apm/apm-storm.dtsi+5−0

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

arch/arm64/boot/dts/arm/foundation-v8.dtsi+1−1

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

arch/arm64/boot/dts/arm/juno-base.dtsi+7−7

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

arch/arm64/boot/dts/arm/rtsm_ve-motherboard.dtsi+1−1

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

arch/arm64/boot/dts/broadcom/Makefile+2−2

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

arch/arm64/boot/dts/broadcom/bcm2835-rpi.dtsi+0−1

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

arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dts+1−41

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

arch/arm64/boot/dts/broadcom/bcm283x-rpi-smsc9514.dtsi+0−1

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

arch/arm64/boot/dts/broadcom/bcm283x-rpi-usb-host.dtsi+0−1

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

arch/arm64/boot/dts/broadcom/bcm283x.dtsi+0−1

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

arch/arm64/boot/dts/broadcom/northstar2/Makefile+6−0

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

arch/arm64/boot/dts/broadcom/northstar2/ns2-clock.dtsirenamed from arch/arm64/boot/dts/broadcom/ns2-clock.dtsi+0−0

File renamed without changes.

arch/arm64/boot/dts/broadcom/northstar2/ns2-svk.dtsrenamed from arch/arm64/boot/dts/broadcom/ns2-svk.dts+0−0

File renamed without changes.

arch/arm64/boot/dts/broadcom/northstar2/ns2-xmc.dtsrenamed from arch/arm64/boot/dts/broadcom/ns2-xmc.dts+0−0

File renamed without changes.

arch/arm64/boot/dts/broadcom/northstar2/ns2.dtsirenamed from arch/arm64/boot/dts/broadcom/ns2.dtsi+0−0

File renamed without changes.

arch/arm64/boot/dts/broadcom/stingray/bcm958742-base.dtsi+78−0

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

arch/arm64/boot/dts/broadcom/stingray/bcm958742k.dts+4−0

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

arch/arm64/boot/dts/broadcom/stingray/bcm958742t.dts+4−0

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

arch/arm64/boot/dts/broadcom/stingray/stingray-fs4.dtsi+118−0

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

arch/arm64/boot/dts/broadcom/stingray/stingray-sata.dtsi+278−0

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

arch/arm64/boot/dts/broadcom/stingray/stingray.dtsi+136−0

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

arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi+2−23

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

arch/arm64/boot/dts/exynos/exynos5433.dtsi+2−2

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

arch/arm64/boot/dts/exynos/exynos7-espresso.dts+0−2

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

arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi+17−0

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

arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi+6−6

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

arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi+31−0

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

arch/arm64/boot/dts/freescale/fsl-ls1088a-rdb.dts+1−1

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

arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi+65−0

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

arch/arm64/boot/dts/freescale/fsl-ls2080a-qds.dts+0−5

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

arch/arm64/boot/dts/freescale/fsl-ls2080a-rdb.dts+0−5

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

arch/arm64/boot/dts/freescale/fsl-ls2080a-simu.dts+0−5

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

arch/arm64/boot/dts/freescale/fsl-ls2080a.dtsi+17−0

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

arch/arm64/boot/dts/freescale/fsl-ls2088a-qds.dts+0−5

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

arch/arm64/boot/dts/freescale/fsl-ls2088a-rdb.dts+0−5

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

arch/arm64/boot/dts/freescale/fsl-ls2088a.dtsi+17−0

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

arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi+51−0

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

arch/arm64/boot/dts/hisilicon/hi3660-hikey960.dts+36−1

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

arch/arm64/boot/dts/hisilicon/hi3660.dtsi+130−0

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

arch/arm64/boot/dts/hisilicon/hi6220.dtsi+8−1

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

arch/arm64/boot/dts/hisilicon/hip07-d05.dts+4−0

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

arch/arm64/boot/dts/hisilicon/hip07.dtsi+22−0

This diff is large: its 28 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-3720-espressobin.dts+30−0

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

arch/arm64/boot/dts/marvell/armada-37xx.dtsi+10−1

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

arch/arm64/boot/dts/marvell/armada-7040-db.dts+39−0

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

arch/arm64/boot/dts/marvell/armada-8040-db.dts+65−0

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

arch/arm64/boot/dts/marvell/armada-8040-mcbin.dts+122−2

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

arch/arm64/boot/dts/marvell/armada-8080-db.dts+67−0

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

arch/arm64/boot/dts/marvell/armada-8080.dtsi+53−0

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

arch/arm64/boot/dts/marvell/armada-ap806.dtsi+2−2

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

arch/arm64/boot/dts/marvell/armada-ap810-ap0-octa-core.dtsi+104−0

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

arch/arm64/boot/dts/marvell/armada-ap810-ap0.dtsi+163−0

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

arch/arm64/boot/dts/marvell/armada-cp110-master.dtsi+63−20

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

arch/arm64/boot/dts/marvell/armada-cp110-slave.dtsi+63−20

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

arch/arm64/boot/dts/mediatek/Makefile+2−0

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

arch/arm64/boot/dts/mediatek/mt2712-evb.dts+32−0

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

arch/arm64/boot/dts/mediatek/mt2712e.dtsi+171−0

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

arch/arm64/boot/dts/mediatek/mt6797.dtsi+5−7

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

arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts+27−0

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

arch/arm64/boot/dts/mediatek/mt7622.dtsi+110−0

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

arch/arm64/boot/dts/qcom/Makefile+1−0

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

arch/arm64/boot/dts/qcom/apq8016-sbc-pmic-pins.dtsi+1−0

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

arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi+7−10

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

arch/arm64/boot/dts/qcom/apq8096-db820c-pmic-pins.dtsi+24−0

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

arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi+198−0

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

arch/arm64/boot/dts/qcom/ipq8074-hk01.dts+52−0

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

arch/arm64/boot/dts/qcom/ipq8074.dtsi+194−0

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

arch/arm64/boot/dts/qcom/msm8916.dtsi+119−1

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

arch/arm64/boot/dts/qcom/msm8996.dtsi+314−0

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

arch/arm64/boot/dts/qcom/pmi8994.dtsi+17−0

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

arch/arm64/boot/dts/renesas/Makefile+1−0

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

arch/arm64/boot/dts/renesas/r8a7795-es1-h3ulcb.dts+0−2

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

arch/arm64/boot/dts/renesas/r8a7795-es1-salvator-x.dts+0−2

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

arch/arm64/boot/dts/renesas/r8a7795-es1.dtsi+8−1

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

arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts+14−2

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

arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts+0−2

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

arch/arm64/boot/dts/renesas/r8a7795-salvator-xs.dts+4−4

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

arch/arm64/boot/dts/renesas/r8a7795.dtsi+313−1

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

arch/arm64/boot/dts/renesas/r8a7796-m3ulcb.dts+12−2

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

arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts+29−2

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

arch/arm64/boot/dts/renesas/r8a7796.dtsi+403−11

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

arch/arm64/boot/dts/renesas/r8a77995-draak.dts+46−0

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

arch/arm64/boot/dts/renesas/r8a77995.dtsi+155−0

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

arch/arm64/boot/dts/renesas/salvator-common.dtsi+1−5

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

arch/arm64/boot/dts/renesas/salvator-xs.dtsi+10−0

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

arch/arm64/boot/dts/renesas/ulcb.dtsi+51−0

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

arch/arm64/boot/dts/rockchip/Makefile+3−0

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

arch/arm64/boot/dts/rockchip/rk3328-evb.dts+181−0

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

arch/arm64/boot/dts/rockchip/rk3328-rock64.dts+333−0

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

arch/arm64/boot/dts/rockchip/rk3328.dtsi+437−0

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

arch/arm64/boot/dts/rockchip/rk3368-evb.dtsi+0−1

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

arch/arm64/boot/dts/rockchip/rk3368-geekbox.dts+0−1

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

arch/arm64/boot/dts/rockchip/rk3368-orion-r68-meta.dts+0−2

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

arch/arm64/boot/dts/rockchip/rk3368-px5-evb.dts+0−3

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

arch/arm64/boot/dts/rockchip/rk3368-r88.dts+0−2

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

arch/arm64/boot/dts/rockchip/rk3368.dtsi+138−2

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

arch/arm64/boot/dts/rockchip/rk3399-evb.dts+1−1

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

arch/arm64/boot/dts/rockchip/rk3399-firefly.dts+14−2

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

arch/arm64/boot/dts/rockchip/rk3399-gru-kevin.dts+44−0

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

arch/arm64/boot/dts/rockchip/rk3399-gru.dtsi+88−44

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

arch/arm64/boot/dts/rockchip/rk3399-op1-opp.dtsi+33−0

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

arch/arm64/boot/dts/rockchip/rk3399-opp.dtsi+33−0

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

arch/arm64/boot/dts/rockchip/rk3399-puma-haikou.dts+228−0

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

arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi+547−0

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

arch/arm64/boot/dts/rockchip/rk3399-sapphire-excavator.dts+240−0

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

arch/arm64/boot/dts/rockchip/rk3399-sapphire.dtsi+644−0

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

arch/arm64/boot/dts/rockchip/rk3399.dtsi+278−14

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

arch/arm64/boot/dts/socionext/Makefile+2−1

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

arch/arm64/boot/dts/socionext/uniphier-ld11-global.dts+5−1

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

arch/arm64/boot/dts/socionext/uniphier-ld11-ref.dts+3−3

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

arch/arm64/boot/dts/socionext/uniphier-ld11.dtsi+34−1

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

arch/arm64/boot/dts/socionext/uniphier-ld20-global.dts+5−1

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

arch/arm64/boot/dts/socionext/uniphier-ld20-ref.dts+3−3

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

arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi+35−2

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

arch/arm64/boot/dts/socionext/uniphier-pinctrl.dtsi+0−1

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

arch/arm64/boot/dts/socionext/uniphier-pinctrl.dtsi+1−0

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

arch/arm64/boot/dts/socionext/uniphier-pxs3-ref.dts+62−0

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

arch/arm64/boot/dts/socionext/uniphier-pxs3.dtsi+367−0

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

arch/arm64/boot/dts/socionext/uniphier-ref-daughter.dtsi+0−1

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

arch/arm64/boot/dts/socionext/uniphier-ref-daughter.dtsi+1−0

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

arch/arm64/boot/dts/socionext/uniphier-support-card.dtsi+0−1

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

arch/arm64/boot/dts/socionext/uniphier-support-card.dtsi+1−0

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

arch/arm64/boot/dts/xilinx/zynqmp-ep108-clk.dtsi+49−1

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

arch/arm64/boot/dts/xilinx/zynqmp-ep108.dts+12−6

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

arch/arm64/boot/dts/xilinx/zynqmp.dtsi+260−17

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

arch/arm64/boot/dts/zte/Makefile+1−0

This diff is large: its 6 lines aren’t shown here.

arch/arm64/boot/dts/zte/zx296718-evb.dts+60−8

This diff is large: its 91 lines aren’t shown here.

arch/arm64/boot/dts/zte/zx296718-pcbox.dts+143−0

This diff is large: its 144 lines aren’t shown here.

arch/arm64/boot/dts/zte/zx296718.dtsi+169−2

This diff is large: its 265 lines aren’t shown here.

arch/arm64/configs/defconfig+39−2

This diff is large: its 189 lines aren’t shown here.

arch/arm64/crypto/Kconfig+16−6

This diff is large: its 68 lines aren’t shown here.

arch/arm64/crypto/aes-ce-ccm-core.S+15−15

This diff is large: its 107 lines aren’t shown here.

arch/arm64/crypto/aes-ce-ccm-glue.c+139−35

This diff is large: its 273 lines aren’t shown here.

arch/arm64/crypto/aes-ce-cipher.c+33−22

This diff is large: its 142 lines aren’t shown here.

arch/arm64/crypto/aes-ce.S+6−6

This diff is large: its 26 lines aren’t shown here.

arch/arm64/crypto/aes-cipher-core.S+107−45

This diff is large: its 209 lines aren’t shown here.

arch/arm64/crypto/aes-ctr-fallback.h+53−0

This diff is large: its 54 lines aren’t shown here.

arch/arm64/crypto/aes-glue.c+45−18

This diff is large: its 138 lines aren’t shown here.

arch/arm64/crypto/aes-neonbs-glue.c+45−8

This diff is large: its 115 lines aren’t shown here.

arch/arm64/crypto/chacha20-neon-glue.c+3−2

This diff is large: its 26 lines aren’t shown here.

arch/arm64/crypto/crc32-ce-glue.c+6−5

This diff is large: its 43 lines aren’t shown here.

arch/arm64/crypto/crct10dif-ce-glue.c+9−4

This diff is large: its 34 lines aren’t shown here.

arch/arm64/crypto/ghash-ce-core.S+383−18

This diff is large: its 452 lines aren’t shown here.

arch/arm64/crypto/ghash-ce-glue.c+482−35

This diff is large: its 601 lines aren’t shown here.

arch/arm64/crypto/sha1-ce-glue.c+14−4

This diff is large: its 61 lines aren’t shown here.

arch/arm64/crypto/sha2-ce-glue.c+26−4

This diff is large: its 78 lines aren’t shown here.

arch/arm64/crypto/sha256-glue.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm64/include/asm/Kbuild+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm64/include/asm/arch_gicv3.h+7−0

This diff is large: its 20 lines aren’t shown here.

arch/arm64/include/asm/arch_timer.h+2−2

This diff is large: its 16 lines aren’t shown here.

arch/arm64/include/asm/asm-bug.h+54−0

This diff is large: its 55 lines aren’t shown here.

arch/arm64/include/asm/assembler.h+24−1

This diff is large: its 51 lines aren’t shown here.

arch/arm64/include/asm/bug.h+3−32

This diff is large: its 45 lines aren’t shown here.

arch/arm64/include/asm/cacheflush.h+3−1

This diff is large: its 18 lines aren’t shown here.

arch/arm64/include/asm/cpucaps.h+2−1

This diff is large: its 10 lines aren’t shown here.

arch/arm64/include/asm/efi.h+14−2

This diff is large: its 54 lines aren’t shown here.

arch/arm64/include/asm/elf.h+2−4

This diff is large: its 29 lines aren’t shown here.

arch/arm64/include/asm/esr.h+31−11

This diff is large: its 81 lines aren’t shown here.

arch/arm64/include/asm/fpsimd.h+3−13

This diff is large: its 30 lines aren’t shown here.

arch/arm64/include/asm/fpsimdmacros.h+0−56

This diff is large: its 60 lines aren’t shown here.

arch/arm64/include/asm/futex.h+4−22

This diff is large: its 43 lines aren’t shown here.

arch/arm64/include/asm/hugetlb.h+8−1

This diff is large: its 23 lines aren’t shown here.

arch/arm64/include/asm/irq.h+0−42

This diff is large: its 61 lines aren’t shown here.

arch/arm64/include/asm/kvm_emulate.h+19−5

This diff is large: its 38 lines aren’t shown here.

arch/arm64/include/asm/kvm_host.h+0−6

This diff is large: its 13 lines aren’t shown here.

arch/arm64/include/asm/kvm_mmu.h+9−12

This diff is large: its 28 lines aren’t shown here.

arch/arm64/include/asm/linkage.h+2−2

This diff is large: its 10 lines aren’t shown here.

arch/arm64/include/asm/memory.h+53−0

This diff is large: its 67 lines aren’t shown here.

arch/arm64/include/asm/mmu.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/arm64/include/asm/neon.h+13−3

This diff is large: its 26 lines aren’t shown here.

arch/arm64/include/asm/numa.h+0−3

This diff is large: its 10 lines aren’t shown here.

arch/arm64/include/asm/page-def.h+34−0

This diff is large: its 35 lines aren’t shown here.

arch/arm64/include/asm/page.h+1−11

This diff is large: its 19 lines aren’t shown here.

arch/arm64/include/asm/pgtable-prot.h+8−10

This diff is large: its 32 lines aren’t shown here.

arch/arm64/include/asm/pgtable.h+41−62

This diff is large: its 191 lines aren’t shown here.

arch/arm64/include/asm/processor.h+2−2

This diff is large: its 18 lines aren’t shown here.

arch/arm64/include/asm/ptrace.h+30−1

This diff is large: its 51 lines aren’t shown here.

arch/arm64/include/asm/signal32.h+0−2

This diff is large: its 9 lines aren’t shown here.

arch/arm64/include/asm/simd.h+56−0

This diff is large: its 57 lines aren’t shown here.

arch/arm64/include/asm/smp.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm64/include/asm/spinlock.h+7−62

This diff is large: its 89 lines aren’t shown here.

arch/arm64/include/asm/stacktrace.h+59−2

This diff is large: its 76 lines aren’t shown here.

arch/arm64/include/asm/string.h+4−0

This diff is large: its 11 lines aren’t shown here.

arch/arm64/include/asm/sysreg.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm64/include/asm/thread_info.h+7−10

This diff is large: its 53 lines aren’t shown here.

arch/arm64/include/asm/traps.h+5−7

This diff is large: its 29 lines aren’t shown here.

arch/arm64/include/asm/uaccess.h+15−0

This diff is large: its 27 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/kernel/acpi.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/arm64/kernel/asm-offsets.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm64/kernel/cpufeature.c+13−0

This diff is large: its 34 lines aren’t shown here.

arch/arm64/kernel/cpuinfo.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm64/kernel/entry-fpsimd.S+0−24

This diff is large: its 28 lines aren’t shown here.

arch/arm64/kernel/entry.S+183−100

This diff is large: its 423 lines aren’t shown here.

arch/arm64/kernel/fpsimd.c+136−38

This diff is large: its 266 lines aren’t shown here.

arch/arm64/kernel/head.S+13−10

This diff is large: its 75 lines aren’t shown here.

arch/arm64/kernel/hibernate.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/arm64/kernel/irq.c+38−2

This diff is large: its 63 lines aren’t shown here.

arch/arm64/kernel/kaslr.c+11−9

This diff is large: its 35 lines aren’t shown here.

arch/arm64/kernel/machine_kexec.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm64/kernel/pci.c+0−17

This diff is large: its 24 lines aren’t shown here.

arch/arm64/kernel/perf_callchain.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm64/kernel/perf_event.c+85−123

This diff is large: its 329 lines aren’t shown here.

arch/arm64/kernel/probes/uprobes.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm64/kernel/process.c+11−4

This diff is large: its 38 lines aren’t shown here.

arch/arm64/kernel/ptrace.c+3−2

This diff is large: its 26 lines aren’t shown here.

arch/arm64/kernel/return_address.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm64/kernel/signal.c+10−5

This diff is large: its 70 lines aren’t shown here.

arch/arm64/kernel/signal32.c+10−15

This diff is large: its 74 lines aren’t shown here.

arch/arm64/kernel/smp.c+13−3

This diff is large: its 41 lines aren’t shown here.

arch/arm64/kernel/stacktrace.c+23−55

This diff is large: its 136 lines aren’t shown here.

arch/arm64/kernel/time.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm64/kernel/traps.c+49−30

This diff is large: its 163 lines aren’t shown here.

arch/arm64/kernel/vdso.c+15−0

This diff is large: its 28 lines aren’t shown here.

arch/arm64/kernel/vmlinux.lds.S+1−17

This diff is large: its 32 lines aren’t shown here.

arch/arm64/kvm/handle_exit.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm64/kvm/hyp/s2-setup.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm64/kvm/vgic-sys-reg-v3.c+3−20

This diff is large: its 33 lines aren’t shown here.

arch/arm64/lib/Makefile+2−0

This diff is large: its 6 lines aren’t shown here.

arch/arm64/lib/uaccess_flushcache.c+47−0

This diff is large: its 48 lines aren’t shown here.

arch/arm64/mm/cache.S+28−9

This diff is large: its 64 lines aren’t shown here.

arch/arm64/mm/dma-mapping.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/arm64/mm/fault.c+62−20

This diff is large: its 148 lines aren’t shown here.

arch/arm64/mm/flush.c+16−0

This diff is large: its 20 lines aren’t shown here.

arch/arm64/mm/hugetlbpage.c+230−84

This diff is large: its 403 lines aren’t shown here.

arch/arm64/net/bpf_jit.h+4−0

This diff is large: its 13 lines aren’t shown here.

arch/arm64/net/bpf_jit_comp.c+20−0

This diff is large: its 62 lines aren’t shown here.

arch/blackfin/include/asm/bfin_twi.h+133−1

This diff is large: its 148 lines aren’t shown here.

arch/blackfin/include/asm/spinlock.h+0−5

This diff is large: its 12 lines aren’t shown here.

arch/blackfin/include/uapi/asm/siginfo.h+19−11

This diff is large: its 48 lines aren’t shown here.

arch/blackfin/kernel/debug-mmrs.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/blackfin/kernel/module.c+21−18

This diff is large: its 146 lines aren’t shown here.

arch/blackfin/mach-bf537/boards/dnp5370.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/blackfin/mach-bf537/boards/stamp.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/blackfin/mach-bf561/boards/acvilon.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/c6x/configs/dsk6455_defconfig+0−2

This diff is large: its 14 lines aren’t shown here.

arch/c6x/configs/evmc6457_defconfig+0−2

This diff is large: its 14 lines aren’t shown here.

arch/c6x/configs/evmc6472_defconfig+0−2

This diff is large: its 14 lines aren’t shown here.

arch/c6x/configs/evmc6474_defconfig+0−2

This diff is large: its 14 lines aren’t shown here.

arch/c6x/configs/evmc6678_defconfig+0−2

This diff is large: its 14 lines aren’t shown here.

arch/c6x/include/asm/processor.h+0−3

This diff is large: its 10 lines aren’t shown here.

arch/c6x/platforms/megamod-pic.c+11−11

This diff is large: its 69 lines aren’t shown here.

arch/c6x/platforms/plldata.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/c6x/platforms/timer64.c+4−4

This diff is large: its 27 lines aren’t shown here.

arch/cris/arch-v32/drivers/mach-a3/nandflash.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/cris/arch-v32/drivers/mach-fs/nandflash.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/cris/arch-v32/drivers/pci/bios.c+0−4

This diff is large: its 11 lines aren’t shown here.

arch/cris/arch-v32/mach-a3/arbiter.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/cris/arch-v32/mach-fs/arbiter.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/cris/kernel/traps.c+3−3

This diff is large: its 20 lines aren’t shown here.

arch/frv/Kconfig+3−0

This diff is large: its 10 lines aren’t shown here.

arch/frv/include/asm/futex.h+2−1

This diff is large: its 10 lines aren’t shown here.

arch/frv/include/asm/processor.h+0−4

This diff is large: its 11 lines aren’t shown here.

arch/frv/include/uapi/asm/siginfo.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/frv/include/uapi/asm/socket.h+2−0

This diff is large: its 8 lines aren’t shown here.

arch/frv/kernel/futex.c+4−23

This diff is large: its 44 lines aren’t shown here.

arch/h8300/Kconfig+3−0

This diff is large: its 10 lines aren’t shown here.

arch/h8300/include/asm/traps.h+3−3

This diff is large: its 13 lines aren’t shown here.

arch/hexagon/include/asm/atomic.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/hexagon/include/asm/futex.h+4−34

This diff is large: its 54 lines aren’t shown here.

arch/hexagon/include/asm/spinlock.h+0−5

This diff is large: its 12 lines aren’t shown here.

arch/ia64/Kconfig.debug+0−5

This diff is large: its 10 lines aren’t shown here.

arch/ia64/include/asm/acpi.h+0−2

This diff is large: its 9 lines aren’t shown here.

arch/ia64/include/asm/futex.h+4−21

This diff is large: its 41 lines aren’t shown here.

arch/ia64/include/asm/spinlock.h+0−21

This diff is large: its 35 lines aren’t shown here.

arch/ia64/include/asm/tlb.h+6−2

This diff is large: its 23 lines aren’t shown here.

arch/ia64/include/uapi/asm/siginfo.h+12−9

This diff is large: its 40 lines aren’t shown here.

arch/ia64/include/uapi/asm/socket.h+2−0

This diff is large: its 7 lines aren’t shown here.

arch/ia64/kernel/acpi.c+3−3

This diff is large: its 16 lines aren’t shown here.

arch/ia64/kernel/efi.c+2−2

This diff is large: its 17 lines aren’t shown here.

arch/ia64/kernel/signal.c+8−9

This diff is large: its 40 lines aren’t shown here.

arch/ia64/kernel/traps.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/ia64/pci/pci.c+0−7

This diff is large: its 14 lines aren’t shown here.

arch/m32r/configs/m32104ut_defconfig+0−4

This diff is large: its 29 lines aren’t shown here.

arch/m32r/configs/m32700ut.smp_defconfig+0−3

This diff is large: its 21 lines aren’t shown here.

arch/m32r/configs/m32700ut.up_defconfig+0−3

This diff is large: its 21 lines aren’t shown here.

arch/m32r/configs/mappi.nommu_defconfig+0−2

This diff is large: its 13 lines aren’t shown here.

arch/m32r/configs/mappi.smp_defconfig+0−4

This diff is large: its 23 lines aren’t shown here.

arch/m32r/configs/mappi.up_defconfig+0−4

This diff is large: its 23 lines aren’t shown here.

arch/m32r/configs/mappi2.opsp_defconfig+0−2

This diff is large: its 13 lines aren’t shown here.

arch/m32r/configs/mappi2.vdec2_defconfig+0−2

This diff is large: its 13 lines aren’t shown here.

arch/m32r/configs/mappi3.smp_defconfig+0−4

This diff is large: its 23 lines aren’t shown here.

arch/m32r/configs/oaks32r_defconfig+0−2

This diff is large: its 13 lines aren’t shown here.

arch/m32r/configs/opsput_defconfig+0−2

This diff is large: its 13 lines aren’t shown here.

arch/m32r/configs/usrv_defconfig+0−5

This diff is large: its 23 lines aren’t shown here.

arch/m32r/include/asm/flat.h+2−1

This diff is large: its 17 lines aren’t shown here.

arch/m32r/include/asm/processor.h+0−8

This diff is large: its 15 lines aren’t shown here.

arch/m32r/include/asm/spinlock.h+0−5

This diff is large: its 12 lines aren’t shown here.

arch/m32r/include/uapi/asm/socket.h+2−0

This diff is large: its 7 lines aren’t shown here.

arch/m68k/Kconfig+3−0

This diff is large: its 10 lines aren’t shown here.

arch/m68k/coldfire/clk.c+3−0

This diff is large: its 10 lines aren’t shown here.

arch/m68k/coldfire/m5441x.c+0−37

This diff is large: its 41 lines aren’t shown here.

arch/m68k/coldfire/pci.c+32−4

This diff is large: its 61 lines aren’t shown here.

arch/m68k/configs/amiga_defconfig+5−2

This diff is large: its 42 lines aren’t shown here.

arch/m68k/configs/apollo_defconfig+5−2

This diff is large: its 42 lines aren’t shown here.

arch/m68k/configs/atari_defconfig+6−2

This diff is large: its 42 lines aren’t shown here.

arch/m68k/configs/bvme6000_defconfig+5−2

This diff is large: its 41 lines aren’t shown here.

arch/m68k/configs/hp300_defconfig+5−2

This diff is large: its 41 lines aren’t shown here.

arch/m68k/configs/mac_defconfig+5−2

This diff is large: its 41 lines aren’t shown here.

arch/m68k/configs/multi_defconfig+5−2

This diff is large: its 42 lines aren’t shown here.

arch/m68k/configs/mvme147_defconfig+5−2

This diff is large: its 41 lines aren’t shown here.

arch/m68k/configs/mvme16x_defconfig+5−2

This diff is large: its 41 lines aren’t shown here.

arch/m68k/configs/q40_defconfig+5−2

This diff is large: its 42 lines aren’t shown here.

arch/m68k/configs/sun3_defconfig+5−2

This diff is large: its 41 lines aren’t shown here.

arch/m68k/configs/sun3x_defconfig+5−2

This diff is large: its 41 lines aren’t shown here.

arch/m68k/include/asm/asm-prototypes.h+5−0

This diff is large: its 6 lines aren’t shown here.

arch/m68k/include/asm/page.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/m68k/mac/misc.c+14−2

This diff is large: its 39 lines aren’t shown here.

arch/metag/Kconfig+1−0

This diff is large: its 8 lines aren’t shown here.

arch/metag/include/asm/atomic_lock1.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/metag/include/asm/dma-mapping.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/metag/include/asm/processor.h+0−3

This diff is large: its 10 lines aren’t shown here.

arch/metag/include/asm/spinlock.h+0−5

This diff is large: its 12 lines aren’t shown here.

arch/metag/include/asm/topology.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/microblaze/Kconfig+16−0

This diff is large: its 23 lines aren’t shown here.

arch/microblaze/Makefile+2−0

This diff is large: its 9 lines aren’t shown here.

arch/microblaze/include/asm/flat.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/microblaze/include/asm/futex.h+4−34

This diff is large: its 54 lines aren’t shown here.

arch/microblaze/include/asm/pci.h+0−3

This diff is large: its 10 lines aren’t shown here.

arch/microblaze/kernel/timer.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/microblaze/pci/pci-common.c+7−152

This diff is large: its 201 lines aren’t shown here.

arch/mips/Kconfig+6−17

This diff is large: its 79 lines aren’t shown here.

arch/mips/Makefile+41−5

This diff is large: its 89 lines aren’t shown here.

arch/mips/alchemy/devboards/db1200.c+37−29

This diff is large: its 126 lines aren’t shown here.

arch/mips/alchemy/devboards/db1300.c+18−15

This diff is large: its 65 lines aren’t shown here.

arch/mips/alchemy/devboards/db1550.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/alchemy/devboards/db1xxx.c+2−0

This diff is large: its 16 lines aren’t shown here.

arch/mips/ar7/clock.c+3−0

This diff is large: its 10 lines aren’t shown here.

arch/mips/ath79/clock.c+4−5

This diff is large: its 35 lines aren’t shown here.

arch/mips/ath79/pci.c+6−6

This diff is large: its 41 lines aren’t shown here.

arch/mips/bcm63xx/clk.c+3−0

This diff is large: its 10 lines aren’t shown here.

arch/mips/boot/Makefile+11−5

This diff is large: its 38 lines aren’t shown here.

arch/mips/boot/compressed/.gitignore+2−0

This diff is large: its 3 lines aren’t shown here.

arch/mips/boot/dts/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

arch/mips/boot/dts/ingenic/ci20.dts+37−0

This diff is large: its 63 lines aren’t shown here.

arch/mips/boot/dts/ingenic/jz4780.dtsi+11−0

This diff is large: its 18 lines aren’t shown here.

arch/mips/boot/dts/ni/169445.dts+100−0

This diff is large: its 101 lines aren’t shown here.

arch/mips/boot/dts/ni/Makefile+7−0

This diff is large: its 8 lines aren’t shown here.

arch/mips/boot/dts/ralink/Makefile+2−0

This diff is large: its 9 lines aren’t shown here.

arch/mips/boot/dts/ralink/mt7628a.dtsi+126−0

This diff is large: its 127 lines aren’t shown here.

arch/mips/boot/dts/ralink/omega2p.dts+18−0

This diff is large: its 19 lines aren’t shown here.

arch/mips/boot/dts/ralink/vocore2.dts+18−0

This diff is large: its 19 lines aren’t shown here.

arch/mips/cavium-octeon/executive/Makefile+1−1

This diff is large: its 6 lines aren’t shown here.

arch/mips/cavium-octeon/executive/cvmx-boot-vector.c+167−0

This diff is large: its 168 lines aren’t shown here.

arch/mips/cavium-octeon/executive/cvmx-bootmem.c+85−0

This diff is large: its 99 lines aren’t shown here.

arch/mips/cavium-octeon/octeon-irq.c+9−0

This diff is large: its 13 lines aren’t shown here.

arch/mips/cavium-octeon/octeon-usb.c+1−1

This diff is large: its 11 lines aren’t shown here.

arch/mips/cavium-octeon/smp.c+9−5

This diff is large: its 50 lines aren’t shown here.

arch/mips/configs/cavium_octeon_defconfig+15−10

This diff is large: its 50 lines aren’t shown here.

arch/mips/configs/ci20_defconfig+3−0

This diff is large: its 17 lines aren’t shown here.

arch/mips/configs/generic/board-ni169445.config+30−0

This diff is large: its 31 lines aren’t shown here.

arch/mips/configs/generic/board-sead-3.config+2−0

This diff is large: its 6 lines aren’t shown here.

arch/mips/configs/generic_defconfig+1−2

This diff is large: its 17 lines aren’t shown here.

arch/mips/configs/gpr_defconfig+0−4

This diff is large: its 13 lines aren’t shown here.

arch/mips/configs/lemote2f_defconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/configs/malta_defconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/configs/malta_kvm_defconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/configs/malta_kvm_guest_defconfig+1−0

This diff is large: its 8 lines aren’t shown here.

arch/mips/configs/maltasmvp_defconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/configs/maltasmvp_eva_defconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/configs/mtx1_defconfig+0−4

This diff is large: its 13 lines aren’t shown here.

arch/mips/configs/nlm_xlp_defconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/configs/nlm_xlr_defconfig+0−4

This diff is large: its 13 lines aren’t shown here.

arch/mips/configs/omega2p_defconfig+129−0

This diff is large: its 130 lines aren’t shown here.

arch/mips/configs/pistachio_defconfig+4−1

This diff is large: its 19 lines aren’t shown here.

arch/mips/configs/vocore2_defconfig+129−0

This diff is large: its 130 lines aren’t shown here.

arch/mips/dec/int-handler.S+6−28

This diff is large: its 54 lines aren’t shown here.

arch/mips/fw/arc/init.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/generic/Kconfig+6−0

This diff is large: its 11 lines aren’t shown here.

arch/mips/generic/Platform+4−0

This diff is large: its 8 lines aren’t shown here.

arch/mips/generic/board-boston.its.S+22−0

This diff is large: its 23 lines aren’t shown here.

arch/mips/generic/board-ni169445.its.S+22−0

This diff is large: its 23 lines aren’t shown here.

arch/mips/generic/init.c+5−0

This diff is large: its 26 lines aren’t shown here.

arch/mips/generic/irq.c+5−4

This diff is large: its 40 lines aren’t shown here.

arch/mips/generic/vmlinux.its.S+0−25

This diff is large: its 29 lines aren’t shown here.

arch/mips/include/asm/asm.h+3−0

This diff is large: its 23 lines aren’t shown here.

arch/mips/include/asm/bmips.h+2−2

This diff is large: its 11 lines aren’t shown here.

arch/mips/include/asm/cache.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/mips/include/asm/cpu-features.h+3−0

This diff is large: its 10 lines aren’t shown here.

arch/mips/include/asm/cpu-info.h+49−13

This diff is large: its 85 lines aren’t shown here.

arch/mips/include/asm/cpu-type.h+0−5

This diff is large: its 12 lines aren’t shown here.

arch/mips/include/asm/cpu.h+0−5

This diff is large: its 12 lines aren’t shown here.

arch/mips/include/asm/floppy.h+2−2

This diff is large: its 14 lines aren’t shown here.

arch/mips/include/asm/fpu_emulator.h+117−1

This diff is large: its 139 lines aren’t shown here.

arch/mips/include/asm/futex.h+4−21

This diff is large: its 41 lines aren’t shown here.

arch/mips/include/asm/io.h+2−0

This diff is large: its 7 lines aren’t shown here.

arch/mips/include/asm/kvm_host.h+0−5

This diff is large: its 12 lines aren’t shown here.

arch/mips/include/asm/mach-au1x00/cpu-feature-overrides.h+26−0

This diff is large: its 74 lines aren’t shown here.

arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/include/asm/mach-cavium-octeon/cpu-feature-overrides.h+3−3

This diff is large: its 13 lines aren’t shown here.

arch/mips/include/asm/mach-ip27/topology.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/include/asm/mach-jz4740/jz4740_nand.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/include/asm/mach-lantiq/lantiq.h+0−2

This diff is large: its 9 lines aren’t shown here.

arch/mips/include/asm/mach-loongson64/loongson.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/include/asm/mach-loongson64/topology.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/include/asm/mips-boards/maltaint.h+0−5

This diff is large: its 17 lines aren’t shown here.

arch/mips/include/asm/mips-cm.h+247−320

This diff is large: its 649 lines aren’t shown here.

arch/mips/include/asm/mips-cpc.h+92−85

This diff is large: its 194 lines aren’t shown here.

arch/mips/include/asm/mips-cps.h+240−0

This diff is large: its 241 lines aren’t shown here.

arch/mips/include/asm/mips-gic.h+347−0

This diff is large: its 348 lines aren’t shown here.

arch/mips/include/asm/mipsregs.h+22−6

This diff is large: its 73 lines aren’t shown here.

arch/mips/include/asm/module.h+0−2

This diff is large: its 9 lines aren’t shown here.

arch/mips/include/asm/netlogic/common.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/include/asm/octeon/cvmx-boot-vector.h+53−0

This diff is large: its 54 lines aren’t shown here.

arch/mips/include/asm/octeon/cvmx-bootmem.h+28−0

This diff is large: its 35 lines aren’t shown here.

arch/mips/include/asm/octeon/cvmx-ciu-defs.h+10−0

This diff is large: its 38 lines aren’t shown here.

arch/mips/include/asm/octeon/cvmx-l2c-defs.h+36−1

This diff is large: its 53 lines aren’t shown here.

arch/mips/include/asm/octeon/cvmx-l2d-defs.h+60−0

This diff is large: its 61 lines aren’t shown here.

arch/mips/include/asm/octeon/cvmx.h+29−0

This diff is large: its 43 lines aren’t shown here.

arch/mips/include/asm/octeon/octeon.h+2−0

This diff is large: its 7 lines aren’t shown here.

arch/mips/include/asm/smp-ops.h+8−8

This diff is large: its 68 lines aren’t shown here.

arch/mips/include/asm/smp.h+5−5

This diff is large: its 43 lines aren’t shown here.

arch/mips/include/asm/stackframe.h+168−112

This diff is large: its 445 lines aren’t shown here.

arch/mips/include/asm/stacktrace.h+50−14

This diff is large: its 86 lines aren’t shown here.

arch/mips/include/asm/topology.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/include/asm/vga.h+7−0

This diff is large: its 24 lines aren’t shown here.

arch/mips/include/uapi/asm/inst.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/include/uapi/asm/mman.h+3−11

This diff is large: its 24 lines aren’t shown here.

arch/mips/include/uapi/asm/siginfo.h+2−2

This diff is large: its 10 lines aren’t shown here.

arch/mips/include/uapi/asm/socket.h+2−0

This diff is large: its 7 lines aren’t shown here.

arch/mips/kernel/Makefile+9−5

This diff is large: its 21 lines aren’t shown here.

arch/mips/kernel/cps-vec.S+2−2

This diff is large: its 11 lines aren’t shown here.

arch/mips/kernel/cpu-probe.c+38−21

This diff is large: its 85 lines aren’t shown here.

arch/mips/kernel/elf.c+4−8

This diff is large: its 33 lines aren’t shown here.

arch/mips/kernel/genex.S+8−5

This diff is large: its 55 lines aren’t shown here.

arch/mips/kernel/idle.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/mips/kernel/mips-cm.c+51−43

This diff is large: its 203 lines aren’t shown here.

arch/mips/kernel/mips-cpc.c+8−9

This diff is large: its 58 lines aren’t shown here.

arch/mips/kernel/mips-r2-to-r6-emul.c+9−7

This diff is large: its 45 lines aren’t shown here.

arch/mips/kernel/octeon_switch.S+6−5

This diff is large: its 19 lines aren’t shown here.

arch/mips/kernel/perf_event_mipsxx.c+1−2

This diff is large: its 10 lines aren’t shown here.

arch/mips/kernel/pm-cps.c+8−9

This diff is large: its 66 lines aren’t shown here.

arch/mips/kernel/proc.c+3−3

This diff is large: its 17 lines aren’t shown here.

arch/mips/kernel/process.c+61−41

This diff is large: its 171 lines aren’t shown here.

arch/mips/kernel/ptrace.c+4−6

This diff is large: its 20 lines aren’t shown here.

arch/mips/kernel/r2300_fpu.S+79−1

This diff is large: its 97 lines aren’t shown here.

arch/mips/kernel/r2300_switch.S+0−81

This diff is large: its 92 lines aren’t shown here.

arch/mips/kernel/r4k_fpu.S+196−0

This diff is large: its 210 lines aren’t shown here.

arch/mips/kernel/r4k_switch.S+0−203

This diff is large: its 221 lines aren’t shown here.

arch/mips/kernel/r6000_fpu.S+0−99

This diff is large: its 100 lines aren’t shown here.

arch/mips/kernel/scall32-o32.S+0−11

This diff is large: its 25 lines aren’t shown here.

arch/mips/kernel/scall64-o32.S+0−6

This diff is large: its 20 lines aren’t shown here.

arch/mips/kernel/signal32.c+9−10

This diff is large: its 48 lines aren’t shown here.

arch/mips/kernel/smp-bmips.c+6−4

This diff is large: its 45 lines aren’t shown here.

arch/mips/kernel/smp-cmp.c+3−3

This diff is large: its 34 lines aren’t shown here.

arch/mips/kernel/smp-cps.c+82−70

This diff is large: its 377 lines aren’t shown here.

arch/mips/kernel/smp-mt.c+7−7

This diff is large: its 68 lines aren’t shown here.

arch/mips/kernel/smp-up.c+3−2

This diff is large: its 20 lines aren’t shown here.

arch/mips/kernel/smp.c+19−17

This diff is large: its 108 lines aren’t shown here.

arch/mips/kernel/time.c+0−14

This diff is large: its 21 lines aren’t shown here.

arch/mips/kernel/traps.c+6−23

This diff is large: its 68 lines aren’t shown here.

arch/mips/kernel/unaligned.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/kernel/vdso.c+5−10

This diff is large: its 51 lines aren’t shown here.

arch/mips/kvm/mips.c+7−2

This diff is large: its 30 lines aren’t shown here.

arch/mips/lantiq/Kconfig+2−0

This diff is large: its 9 lines aren’t shown here.

arch/mips/lantiq/falcon/reset.c+5−18

This diff is large: its 33 lines aren’t shown here.

arch/mips/lantiq/irq.c+0−4

This diff is large: its 11 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/Makefile+1−3

This diff is large: its 7 lines aren’t shown here.

arch/mips/lantiq/xway/reset.c+0−387

This diff is large: its 388 lines aren’t shown here.

arch/mips/lantiq/xway/sysctrl.c+22−61

This diff is large: its 165 lines aren’t shown here.

arch/mips/lantiq/xway/xrx200_phy_fw.c+0−113

This diff is large: its 114 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/delay.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/mips/lib/iomap_copy.c+42−0

This diff is large: its 43 lines aren’t shown here.

arch/mips/loongson64/lemote-2f/clock.c+3−0

This diff is large: its 10 lines aren’t shown here.

arch/mips/loongson64/loongson-3/smp.c+9−7

This diff is large: its 65 lines aren’t shown here.

arch/mips/math-emu/Makefile+4−2

This diff is large: its 14 lines aren’t shown here.

arch/mips/math-emu/cp1emu.c+272−12

This diff is large: its 724 lines aren’t shown here.

arch/mips/math-emu/dp_fmax.c+63−21

This diff is large: its 153 lines aren’t shown here.

arch/mips/math-emu/dp_fmin.c+64−22

This diff is large: its 155 lines aren’t shown here.

arch/mips/math-emu/dp_maddf.c+154−92

This diff is large: its 377 lines aren’t shown here.

arch/mips/math-emu/dp_rint.c+89−0

This diff is large: its 90 lines aren’t shown here.

arch/mips/math-emu/ieee754.h+2−0

This diff is large: its 16 lines aren’t shown here.

arch/mips/math-emu/ieee754int.h+4−0

This diff is large: its 11 lines aren’t shown here.

arch/mips/math-emu/ieee754sp.h+4−0

This diff is large: its 11 lines aren’t shown here.

arch/mips/math-emu/me-debugfs.c+314−4

This diff is large: its 351 lines aren’t shown here.

arch/mips/math-emu/sp_fmax.c+63−21

This diff is large: its 153 lines aren’t shown here.

arch/mips/math-emu/sp_fmin.c+64−22

This diff is large: its 155 lines aren’t shown here.

arch/mips/math-emu/sp_maddf.c+107−122

This diff is large: its 345 lines aren’t shown here.

arch/mips/math-emu/sp_rint.c+90−0

This diff is large: its 91 lines aren’t shown here.

arch/mips/mm/c-r4k.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/mm/cache.c+1−1

This diff is large: its 16 lines aren’t shown here.

arch/mips/mm/dma-default.c+5−41

This diff is large: its 94 lines aren’t shown here.

arch/mips/mm/init.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/mips/mm/mmap.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/mips/mm/sc-mips.c+19−28

This diff is large: its 94 lines aren’t shown here.

arch/mips/mm/tlbex-fault.S+4−3

This diff is large: its 19 lines aren’t shown here.

arch/mips/mm/tlbex.c+0−5

This diff is large: its 12 lines aren’t shown here.

arch/mips/mm/uasm-mips.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/mti-malta/malta-dtshim.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/mips/mti-malta/malta-init.c+1−2

This diff is large: its 10 lines aren’t shown here.

arch/mips/mti-malta/malta-int.c+2−3

This diff is large: its 28 lines aren’t shown here.

arch/mips/mti-malta/malta-setup.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/mips/mti-malta/malta-time.c+12−14

This diff is large: its 101 lines aren’t shown here.

arch/mips/net/ebpf_jit.c+1995−0

This diff is large: its 1996 lines aren’t shown here.

arch/mips/netlogic/common/smp.c+5−3

This diff is large: its 36 lines aren’t shown here.

arch/mips/netlogic/xlr/platform-flash.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/oprofile/op_model_mipsxx.c+2−2

This diff is large: its 12 lines aren’t shown here.

arch/mips/paravirt/paravirt-smp.c+3−2

This diff is large: its 23 lines aren’t shown here.

arch/mips/paravirt/setup.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/pci/fixup-capcella.c+2−2

This diff is large: its 16 lines aren’t shown here.

arch/mips/pci/fixup-cobalt.c+4−4

This diff is large: its 36 lines aren’t shown here.

arch/mips/pci/fixup-emma2rh.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/mips/pci/fixup-fuloong2e.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/pci/fixup-ip32.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/mips/pci/fixup-jmr3927.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/pci/fixup-lantiq.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/pci/fixup-lemote2f.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/mips/pci/fixup-loongson3.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/pci/fixup-malta.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/mips/pci/fixup-mpc30x.c+3−3

This diff is large: its 23 lines aren’t shown here.

arch/mips/pci/fixup-pmcmsp.c+4−4

This diff is large: its 36 lines aren’t shown here.

arch/mips/pci/fixup-rbtx4927.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/pci/fixup-rbtx4938.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/pci/fixup-sni.c+6−6

This diff is large: its 54 lines aren’t shown here.

arch/mips/pci/fixup-tb0219.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/pci/fixup-tb0226.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/pci/fixup-tb0287.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/pci/pci-alchemy.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/pci/pci-bcm47xx.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/pci/pci-lasat.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/pci/pci-legacy.c+21−11

This diff is large: its 64 lines aren’t shown here.

arch/mips/pci/pci-malta.c+3−3

This diff is large: its 27 lines aren’t shown here.

arch/mips/pci/pci-mt7620.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/mips/pci/pci-octeon.c+2−3

This diff is large: its 19 lines aren’t shown here.

arch/mips/pci/pci-rt2880.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/pci/pci-rt3883.c+6−7

This diff is large: its 41 lines aren’t shown here.

arch/mips/pci/pci-tx4938.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/pci/pci-tx4939.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/mips/pci/pci-xlp.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/pci/pci-xlr.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/pci/pci.c+3−4

This diff is large: its 20 lines aren’t shown here.

arch/mips/pci/pcie-octeon.c+1−2

This diff is large: its 10 lines aren’t shown here.

arch/mips/pistachio/init.c+1−2

This diff is large: its 10 lines aren’t shown here.

arch/mips/pistachio/irq.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/pistachio/time.c+1−1

This diff is large: its 11 lines aren’t shown here.

arch/mips/pmcs-msp71xx/msp_smp.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/mips/pnx833x/common/platform.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/ralink/Kconfig+10−0

This diff is large: its 17 lines aren’t shown here.

arch/mips/ralink/clk.c+3−0

This diff is large: its 10 lines aren’t shown here.

arch/mips/ralink/irq-gic.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/ralink/mt7621.c+2−3

This diff is large: its 19 lines aren’t shown here.

arch/mips/rb532/devices.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/sgi-ip27/ip27-smp.c+3−2

This diff is large: its 26 lines aren’t shown here.

arch/mips/sibyte/bcm1480/smp.c+3−2

This diff is large: its 26 lines aren’t shown here.

arch/mips/sibyte/common/cfe.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/mips/sibyte/sb1250/smp.c+3−2

This diff is large: its 26 lines aren’t shown here.

arch/mips/tools/generic-board-config.sh+90−0

This diff is large: its 91 lines aren’t shown here.

arch/mips/txx9/generic/pci.c+6−2

This diff is large: its 22 lines aren’t shown here.

arch/mips/vdso/gettimeofday.c+7−7

This diff is large: its 46 lines aren’t shown here.

arch/mips/vdso/sigreturn.S+0−10

This diff is large: its 32 lines aren’t shown here.

arch/mn10300/configs/asb2303_defconfig+0−6

This diff is large: its 31 lines aren’t shown here.

arch/mn10300/configs/asb2364_defconfig+0−8

This diff is large: its 46 lines aren’t shown here.

arch/mn10300/include/asm/spinlock.h+0−5

This diff is large: its 12 lines aren’t shown here.

arch/mn10300/include/uapi/asm/socket.h+2−0

This diff is large: its 7 lines aren’t shown here.

arch/mn10300/kernel/process.c+0−12

This diff is large: its 26 lines aren’t shown here.

arch/nios2/boot/dts/3c120_devboard.dts+2−1

This diff is large: its 9 lines aren’t shown here.

arch/nios2/include/asm/dma-mapping.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/nios2/kernel/time.c+4−1

This diff is large: its 12 lines aren’t shown here.

arch/openrisc/Kconfig+3−0

This diff is large: its 10 lines aren’t shown here.

arch/openrisc/include/asm/futex.h+4−35

This diff is large: its 56 lines aren’t shown here.

arch/openrisc/include/asm/pgtable.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/parisc/Kconfig+24−0

This diff is large: its 52 lines aren’t shown here.

arch/parisc/Makefile+16−1

This diff is large: its 51 lines aren’t shown here.

arch/parisc/boot/.gitignore+2−0

This diff is large: its 3 lines aren’t shown here.

arch/parisc/boot/Makefile+26−0

This diff is large: its 27 lines aren’t shown here.

arch/parisc/boot/compressed/.gitignore+3−0

This diff is large: its 4 lines aren’t shown here.

arch/parisc/boot/compressed/Makefile+86−0

This diff is large: its 87 lines aren’t shown here.

arch/parisc/boot/compressed/head.S+85−0

This diff is large: its 86 lines aren’t shown here.

arch/parisc/boot/compressed/misc.c+302−0

This diff is large: its 303 lines aren’t shown here.

arch/parisc/boot/compressed/vmlinux.lds.S+101−0

This diff is large: its 102 lines aren’t shown here.

arch/parisc/boot/compressed/vmlinux.scr+10−0

This diff is large: its 11 lines aren’t shown here.

arch/parisc/boot/install.sh+65−0

This diff is large: its 66 lines aren’t shown here.

arch/parisc/configs/c3000_defconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/parisc/include/asm/atomic.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/parisc/include/asm/futex.h+4−22

This diff is large: its 45 lines aren’t shown here.

arch/parisc/include/asm/mmu_context.h+3−0

This diff is large: its 10 lines aren’t shown here.

arch/parisc/include/asm/page.h+4−0

This diff is large: its 16 lines aren’t shown here.

arch/parisc/include/asm/pdc.h+3−0

This diff is large: its 17 lines aren’t shown here.

arch/parisc/include/asm/pdcpat.h+14−0

This diff is large: its 28 lines aren’t shown here.

arch/parisc/include/asm/smp.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/parisc/include/asm/spinlock.h+0−7

This diff is large: its 14 lines aren’t shown here.

arch/parisc/include/uapi/asm/mman.h+6−14

This diff is large: its 38 lines aren’t shown here.

arch/parisc/include/uapi/asm/socket.h+2−0

This diff is large: its 7 lines aren’t shown here.

arch/parisc/kernel/firmware.c+73−9

This diff is large: its 176 lines aren’t shown here.

arch/parisc/kernel/pci-dma.c+1−2

This diff is large: its 17 lines aren’t shown here.

arch/parisc/kernel/pdt.c+248−41

This diff is large: its 371 lines aren’t shown here.

arch/parisc/kernel/perf.c+1−3

This diff is large: its 18 lines aren’t shown here.

arch/parisc/kernel/processor.c+25−7

This diff is large: its 90 lines aren’t shown here.

arch/parisc/kernel/real2.S+4−0

This diff is large: its 32 lines aren’t shown here.

arch/parisc/kernel/setup.c+3−3

This diff is large: its 35 lines aren’t shown here.

arch/parisc/kernel/signal32.c+15−16

This diff is large: its 83 lines aren’t shown here.

arch/parisc/kernel/smp.c+1−2

This diff is large: its 14 lines aren’t shown here.

arch/parisc/kernel/traps.c+9−1

This diff is large: its 24 lines aren’t shown here.

arch/parisc/kernel/unwind.c+13−3

This diff is large: its 44 lines aren’t shown here.

arch/parisc/lib/memcpy.c+0−2

This diff is large: its 9 lines aren’t shown here.

arch/parisc/mm/fault.c+29−4

This diff is large: its 68 lines aren’t shown here.

arch/powerpc/Kconfig+29−11

This diff is large: its 102 lines aren’t shown here.

arch/powerpc/Makefile+5−1

This diff is large: its 20 lines aren’t shown here.

arch/powerpc/boot/4xx.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/boot/Makefile+6−5

This diff is large: its 32 lines aren’t shown here.

arch/powerpc/boot/crt0.S+10−10

This diff is large: its 28 lines aren’t shown here.

arch/powerpc/boot/dts/fsp2.dts+19−14

This diff is large: its 54 lines aren’t shown here.

arch/powerpc/boot/ppc_asm.h+8−0

This diff is large: its 13 lines aren’t shown here.

arch/powerpc/boot/serial.c+4−0

This diff is large: its 20 lines aren’t shown here.

arch/powerpc/boot/util.S+5−19

This diff is large: its 38 lines aren’t shown here.

arch/powerpc/configs/40x/acadia_defconfig+0−1

This diff is large: its 5 lines aren’t shown here.

arch/powerpc/configs/40x/ep405_defconfig+0−1

This diff is large: its 5 lines aren’t shown here.

arch/powerpc/configs/40x/kilauea_defconfig+0−1

This diff is large: its 5 lines aren’t shown here.

arch/powerpc/configs/40x/klondike_defconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/configs/40x/makalu_defconfig+0−1

This diff is large: its 5 lines aren’t shown here.

arch/powerpc/configs/40x/obs600_defconfig+0−1

This diff is large: its 5 lines aren’t shown here.

arch/powerpc/configs/40x/virtex_defconfig+1−2

This diff is large: its 16 lines aren’t shown here.

arch/powerpc/configs/40x/walnut_defconfig+0−1

This diff is large: its 5 lines aren’t shown here.

arch/powerpc/configs/44x/akebono_defconfig+0−2

This diff is large: its 14 lines aren’t shown here.

arch/powerpc/configs/44x/bamboo_defconfig+0−1

This diff is large: its 5 lines aren’t shown here.

arch/powerpc/configs/44x/currituck_defconfig+0−2

This diff is large: its 14 lines aren’t shown here.

arch/powerpc/configs/44x/ebony_defconfig+0−1

This diff is large: its 6 lines aren’t shown here.

arch/powerpc/configs/44x/eiger_defconfig+0−4

This diff is large: its 19 lines aren’t shown here.

arch/powerpc/configs/44x/fsp2_defconfig+2−1

This diff is large: its 19 lines aren’t shown here.

arch/powerpc/configs/44x/icon_defconfig+0−3

This diff is large: its 14 lines aren’t shown here.

arch/powerpc/configs/44x/iss476-smp_defconfig+0−2

This diff is large: its 14 lines aren’t shown here.

arch/powerpc/configs/44x/katmai_defconfig+0−1

This diff is large: its 5 lines aren’t shown here.

arch/powerpc/configs/44x/rainier_defconfig+0−1

This diff is large: its 5 lines aren’t shown here.

arch/powerpc/configs/44x/redwood_defconfig+0−4

This diff is large: its 19 lines aren’t shown here.

arch/powerpc/configs/44x/sequoia_defconfig+0−1

This diff is large: its 5 lines aren’t shown here.

arch/powerpc/configs/44x/taishan_defconfig+0−1

This diff is large: its 5 lines aren’t shown here.

arch/powerpc/configs/44x/virtex5_defconfig+1−2

This diff is large: its 16 lines aren’t shown here.

arch/powerpc/configs/44x/warp_defconfig+0−1

This diff is large: its 5 lines aren’t shown here.

arch/powerpc/configs/52xx/cm5200_defconfig+0−1

This diff is large: its 5 lines aren’t shown here.

arch/powerpc/configs/52xx/lite5200b_defconfig+1−2

This diff is large: its 21 lines aren’t shown here.

arch/powerpc/configs/52xx/motionpro_defconfig+7−8

This diff is large: its 29 lines aren’t shown here.

arch/powerpc/configs/52xx/tqm5200_defconfig+0−2

This diff is large: its 13 lines aren’t shown here.

arch/powerpc/configs/83xx/asp8347_defconfig+0−2

This diff is large: its 13 lines aren’t shown here.

arch/powerpc/configs/83xx/kmeter1_defconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/configs/83xx/mpc8313_rdb_defconfig+0−3

This diff is large: its 14 lines aren’t shown here.

arch/powerpc/configs/83xx/mpc8315_rdb_defconfig+0−2

This diff is large: its 13 lines aren’t shown here.

arch/powerpc/configs/83xx/mpc832x_mds_defconfig+1−3

This diff is large: its 29 lines aren’t shown here.

arch/powerpc/configs/83xx/mpc832x_rdb_defconfig+2−4

This diff is large: its 38 lines aren’t shown here.

arch/powerpc/configs/83xx/mpc834x_itx_defconfig+0−2

This diff is large: its 13 lines aren’t shown here.

arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig+0−1

This diff is large: its 5 lines aren’t shown here.

arch/powerpc/configs/83xx/mpc834x_mds_defconfig+0−2

This diff is large: its 13 lines aren’t shown here.

arch/powerpc/configs/83xx/mpc836x_mds_defconfig+1−3

This diff is large: its 29 lines aren’t shown here.

arch/powerpc/configs/83xx/mpc836x_rdk_defconfig+1−4

This diff is large: its 33 lines aren’t shown here.

arch/powerpc/configs/83xx/mpc837x_mds_defconfig+1−3

This diff is large: its 29 lines aren’t shown here.

arch/powerpc/configs/83xx/mpc837x_rdb_defconfig+1−4

This diff is large: its 31 lines aren’t shown here.

arch/powerpc/configs/83xx/sbc834x_defconfig+1−3

This diff is large: its 30 lines aren’t shown here.

arch/powerpc/configs/85xx/ge_imp3a_defconfig+1−2

This diff is large: its 22 lines aren’t shown here.

arch/powerpc/configs/85xx/ksi8560_defconfig+1−3

This diff is large: its 28 lines aren’t shown here.

arch/powerpc/configs/85xx/mpc8540_ads_defconfig+1−3

This diff is large: its 29 lines aren’t shown here.

arch/powerpc/configs/85xx/mpc8560_ads_defconfig+2−4

This diff is large: its 31 lines aren’t shown here.

arch/powerpc/configs/85xx/mpc85xx_cds_defconfig+1−3

This diff is large: its 29 lines aren’t shown here.

arch/powerpc/configs/85xx/sbc8548_defconfig+1−3

This diff is large: its 27 lines aren’t shown here.

arch/powerpc/configs/85xx/socrates_defconfig+0−3

This diff is large: its 14 lines aren’t shown here.

arch/powerpc/configs/85xx/stx_gp3_defconfig+0−3

This diff is large: its 14 lines aren’t shown here.

arch/powerpc/configs/85xx/tqm8540_defconfig+1−3

This diff is large: its 28 lines aren’t shown here.

arch/powerpc/configs/85xx/tqm8541_defconfig+1−3

This diff is large: its 29 lines aren’t shown here.

arch/powerpc/configs/85xx/tqm8548_defconfig+0−2

This diff is large: its 13 lines aren’t shown here.

arch/powerpc/configs/85xx/tqm8555_defconfig+1−3

This diff is large: its 29 lines aren’t shown here.

arch/powerpc/configs/85xx/tqm8560_defconfig+1−3

This diff is large: its 29 lines aren’t shown here.

arch/powerpc/configs/85xx/xes_mpc85xx_defconfig+1−4

This diff is large: its 31 lines aren’t shown here.

arch/powerpc/configs/adder875_defconfig+1−1

This diff is large: its 16 lines aren’t shown here.

arch/powerpc/configs/amigaone_defconfig+0−2

This diff is large: its 14 lines aren’t shown here.

arch/powerpc/configs/be.config+1−0

This diff is large: its 2 lines aren’t shown here.

arch/powerpc/configs/c2k_defconfig+1−4

This diff is large: its 37 lines aren’t shown here.

arch/powerpc/configs/cell_defconfig+1−8

This diff is large: its 61 lines aren’t shown here.

arch/powerpc/configs/chrp32_defconfig+1−2

This diff is large: its 22 lines aren’t shown here.

arch/powerpc/configs/ep8248e_defconfig+0−1

This diff is large: its 6 lines aren’t shown here.

arch/powerpc/configs/ep88xc_defconfig+1−1

This diff is large: its 16 lines aren’t shown here.

arch/powerpc/configs/g5_defconfig+6−10

This diff is large: its 90 lines aren’t shown here.

arch/powerpc/configs/gamecube_defconfig+3−4

This diff is large: its 31 lines aren’t shown here.

arch/powerpc/configs/holly_defconfig+1−2

This diff is large: its 24 lines aren’t shown here.

arch/powerpc/configs/linkstation_defconfig+0−3

This diff is large: its 21 lines aren’t shown here.

arch/powerpc/configs/maple_defconfig+2−7

This diff is large: its 50 lines aren’t shown here.

arch/powerpc/configs/mgcoge_defconfig+0−2

This diff is large: its 14 lines aren’t shown here.

arch/powerpc/configs/mpc512x_defconfig+12−16

This diff is large: its 62 lines aren’t shown here.

arch/powerpc/configs/mpc5200_defconfig+0−4

This diff is large: its 26 lines aren’t shown here.

arch/powerpc/configs/mpc7448_hpc2_defconfig+1−3

This diff is large: its 29 lines aren’t shown here.

arch/powerpc/configs/mpc8272_ads_defconfig+0−1

This diff is large: its 6 lines aren’t shown here.

arch/powerpc/configs/mpc83xx_defconfig+3−7

This diff is large: its 40 lines aren’t shown here.

arch/powerpc/configs/mpc866_ads_defconfig+1−3

This diff is large: its 26 lines aren’t shown here.

arch/powerpc/configs/mpc86xx_basic_defconfig+6−6

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/configs/mpc885_ads_defconfig+1−1

This diff is large: its 16 lines aren’t shown here.

arch/powerpc/configs/mvme5100_defconfig+0−3

This diff is large: its 21 lines aren’t shown here.

arch/powerpc/configs/pasemi_defconfig+3−5

This diff is large: its 44 lines aren’t shown here.

arch/powerpc/configs/pmac32_defconfig+8−10

This diff is large: its 77 lines aren’t shown here.

arch/powerpc/configs/powernv_defconfig+9−12

This diff is large: its 96 lines aren’t shown here.

arch/powerpc/configs/ppc40x_defconfig+1−2

This diff is large: its 16 lines aren’t shown here.

arch/powerpc/configs/ppc44x_defconfig+1−3

This diff is large: its 26 lines aren’t shown here.

arch/powerpc/configs/ppc64_defconfig+24−24

This diff is large: its 174 lines aren’t shown here.

arch/powerpc/configs/ppc64e_defconfig+7−10

This diff is large: its 76 lines aren’t shown here.

arch/powerpc/configs/ppc6xx_defconfig+21−32

This diff is large: its 228 lines aren’t shown here.

arch/powerpc/configs/pq2fads_defconfig+0−1

This diff is large: its 5 lines aren’t shown here.

arch/powerpc/configs/ps3_defconfig+0−3

This diff is large: its 24 lines aren’t shown here.

arch/powerpc/configs/pseries_defconfig+20−25

This diff is large: its 156 lines aren’t shown here.

arch/powerpc/configs/tqm8xx_defconfig+1−2

This diff is large: its 24 lines aren’t shown here.

arch/powerpc/configs/wii_defconfig+3−7

This diff is large: its 39 lines aren’t shown here.

arch/powerpc/include/asm/Kbuild+1−0

This diff is large: its 5 lines aren’t shown here.

arch/powerpc/include/asm/asm-compat.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/include/asm/barrier.h+0−7

This diff is large: its 14 lines aren’t shown here.

arch/powerpc/include/asm/book3s/32/pgtable.h+1−3

This diff is large: its 15 lines aren’t shown here.

arch/powerpc/include/asm/book3s/64/hash.h+4−2

This diff is large: its 22 lines aren’t shown here.

arch/powerpc/include/asm/book3s/64/hugetlb.h+1−3

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/include/asm/book3s/64/mmu-hash.h+2−1

This diff is large: its 17 lines aren’t shown here.

arch/powerpc/include/asm/book3s/64/mmu.h+3−5

This diff is large: its 22 lines aren’t shown here.

arch/powerpc/include/asm/book3s/64/pgalloc.h+0−2

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/include/asm/book3s/64/pgtable.h+8−1

This diff is large: its 39 lines aren’t shown here.

arch/powerpc/include/asm/book3s/64/radix.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/include/asm/book3s/64/tlbflush-radix.h+2−3

This diff is large: its 25 lines aren’t shown here.

arch/powerpc/include/asm/bug.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/include/asm/cache.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/include/asm/cpuidle.h+11−16

This diff is large: its 39 lines aren’t shown here.

arch/powerpc/include/asm/cputable.h+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/include/asm/eeh.h+2−3

This diff is large: its 26 lines aren’t shown here.

arch/powerpc/include/asm/fadump.h+2−0

This diff is large: its 14 lines aren’t shown here.

arch/powerpc/include/asm/feature-fixups.h+3−3

This diff is large: its 15 lines aren’t shown here.

arch/powerpc/include/asm/fixmap.h+7−3

This diff is large: its 30 lines aren’t shown here.

arch/powerpc/include/asm/fs_pd.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/include/asm/futex.h+5−21

This diff is large: its 42 lines aren’t shown here.

arch/powerpc/include/asm/hardirq.h+4−0

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/include/asm/hugetlb.h+0−14

This diff is large: its 19 lines aren’t shown here.

arch/powerpc/include/asm/hvcall.h+12−1

This diff is large: its 20 lines aren’t shown here.

arch/powerpc/include/asm/icswx.h+3−0

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/include/asm/imc-pmu.h+128−0

This diff is large: its 129 lines aren’t shown here.

arch/powerpc/include/asm/kvm_book3s_asm.h+4−0

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/include/asm/kvm_host.h+0−5

This diff is large: its 12 lines aren’t shown here.

arch/powerpc/include/asm/machdep.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/include/asm/mmu_context.h+2−56

This diff is large: its 73 lines aren’t shown here.

arch/powerpc/include/asm/nmi.h+1−2

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/include/asm/nohash/32/pgtable.h+1−4

This diff is large: its 19 lines aren’t shown here.

arch/powerpc/include/asm/nohash/pgtable.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/include/asm/opal-api.h+23−1

This diff is large: its 45 lines aren’t shown here.

arch/powerpc/include/asm/opal.h+18−1

This diff is large: its 40 lines aren’t shown here.

arch/powerpc/include/asm/paca.h+7−0

This diff is large: its 21 lines aren’t shown here.

arch/powerpc/include/asm/pci-bridge.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/include/asm/pgalloc.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/include/asm/pgtable-be-types.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/include/asm/pgtable-types.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/include/asm/pgtable.h+2−10

This diff is large: its 25 lines aren’t shown here.

arch/powerpc/include/asm/pnv-pci.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/include/asm/ppc-opcode.h+15−1

This diff is large: its 61 lines aren’t shown here.

arch/powerpc/include/asm/ppc_asm.h+11−5

This diff is large: its 38 lines aren’t shown here.

arch/powerpc/include/asm/prom.h+4−1

This diff is large: its 12 lines aren’t shown here.

arch/powerpc/include/asm/pte-walk.h+35−0

This diff is large: its 36 lines aren’t shown here.

arch/powerpc/include/asm/reg.h+74−25

This diff is large: its 163 lines aren’t shown here.

arch/powerpc/include/asm/reg_booke.h+0−3

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/include/asm/setup.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/include/asm/smp.h+6−0

This diff is large: its 20 lines aren’t shown here.

arch/powerpc/include/asm/spinlock.h+3−33

This diff is large: its 49 lines aren’t shown here.

arch/powerpc/include/asm/sstep.h+88−7

This diff is large: its 131 lines aren’t shown here.

arch/powerpc/include/asm/string.h+26−0

This diff is large: its 40 lines aren’t shown here.

arch/powerpc/include/asm/timex.h+1−5

This diff is large: its 21 lines aren’t shown here.

arch/powerpc/include/asm/tlb.h+10−1

This diff is large: its 24 lines aren’t shown here.

arch/powerpc/include/asm/topology.h+0−2

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/include/asm/vas.h+159−0

This diff is large: its 160 lines aren’t shown here.

arch/powerpc/include/asm/vga.h+8−0

This diff is large: its 17 lines aren’t shown here.

arch/powerpc/include/asm/xive.h+5−0

This diff is large: its 38 lines aren’t shown here.

arch/powerpc/include/uapi/asm/mman.h+0−16

This diff is large: its 21 lines aren’t shown here.

arch/powerpc/kernel/Makefile+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/kernel/align.c+32−742

This diff is large: its 834 lines aren’t shown here.

arch/powerpc/kernel/asm-offsets.c+8−0

This diff is large: its 15 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+16−18

This diff is large: its 102 lines aren’t shown here.

arch/powerpc/kernel/cputable.c+5−3

This diff is large: its 38 lines aren’t shown here.

arch/powerpc/kernel/eeh.c+14−10

This diff is large: its 82 lines aren’t shown here.

arch/powerpc/kernel/eeh_dev.c+1−24

This diff is large: its 45 lines aren’t shown here.

arch/powerpc/kernel/eeh_driver.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/kernel/eeh_pe.c+51−39

This diff is large: its 206 lines aren’t shown here.

arch/powerpc/kernel/eeh_sysfs.c+0−3

This diff is large: its 24 lines aren’t shown here.

arch/powerpc/kernel/entry_32.S+22−0

This diff is large: its 43 lines aren’t shown here.

arch/powerpc/kernel/entry_64.S+20−49

This diff is large: its 104 lines aren’t shown here.

arch/powerpc/kernel/exceptions-64s.S+19−18

This diff is large: its 101 lines aren’t shown here.

arch/powerpc/kernel/fadump.c+30−1

This diff is large: its 59 lines aren’t shown here.

arch/powerpc/kernel/head_32.S+3−3

This diff is large: its 25 lines aren’t shown here.

arch/powerpc/kernel/head_64.S+4−4

This diff is large: its 34 lines aren’t shown here.

arch/powerpc/kernel/head_8xx.S+71−38

This diff is large: its 254 lines aren’t shown here.

arch/powerpc/kernel/idle_book3s.S+114−16

This diff is large: its 207 lines aren’t shown here.

arch/powerpc/kernel/io-workarounds.c+5−4

This diff is large: its 36 lines aren’t shown here.

arch/powerpc/kernel/iommu.c+3−4

This diff is large: its 28 lines aren’t shown here.

arch/powerpc/kernel/irq.c+40−25

This diff is large: its 114 lines aren’t shown here.

arch/powerpc/kernel/isa-bridge.c+16−16

This diff is large: its 91 lines aren’t shown here.

arch/powerpc/kernel/kgdb.c+2−2

This diff is large: its 12 lines aren’t shown here.

arch/powerpc/kernel/kvm.c+0−7

This diff is large: its 21 lines aren’t shown here.

arch/powerpc/kernel/l2cr_6xx.S+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/kernel/legacy_serial.c+6−6

This diff is large: its 47 lines aren’t shown here.

arch/powerpc/kernel/mce.c+33−0

This diff is large: its 49 lines aren’t shown here.

arch/powerpc/kernel/of_platform.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/kernel/optprobes.c+3−1

This diff is large: its 12 lines aren’t shown here.

arch/powerpc/kernel/optprobes_head.S+0−8

This diff is large: its 22 lines aren’t shown here.

arch/powerpc/kernel/paca.c+12−3

This diff is large: its 39 lines aren’t shown here.

arch/powerpc/kernel/pci-common.c+7−8

This diff is large: its 43 lines aren’t shown here.

arch/powerpc/kernel/pci_32.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/kernel/pci_64.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/kernel/pci_dn.c+7−15

This diff is large: its 72 lines aren’t shown here.

arch/powerpc/kernel/pci_of_scan.c+12−12

This diff is large: its 72 lines aren’t shown here.

arch/powerpc/kernel/process.c+54−50

This diff is large: its 213 lines aren’t shown here.

arch/powerpc/kernel/prom_init.c+33−1

This diff is large: its 69 lines aren’t shown here.

arch/powerpc/kernel/ptrace.c+13−31

This diff is large: its 91 lines aren’t shown here.

arch/powerpc/kernel/reloc_64.S+3−3

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/kernel/rtas.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/kernel/rtas_pci.c+4−29

This diff is large: its 56 lines aren’t shown here.

arch/powerpc/kernel/setup-common.c+2−36

This diff is large: its 73 lines aren’t shown here.

arch/powerpc/kernel/setup_32.c+6−1

This diff is large: its 21 lines aren’t shown here.

arch/powerpc/kernel/setup_64.c+36−3

This diff is large: its 64 lines aren’t shown here.

arch/powerpc/kernel/signal_32.c+9−11

This diff is large: its 52 lines aren’t shown here.

arch/powerpc/kernel/smp.c+149−85

This diff is large: its 352 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/systbl.S+7−7

This diff is large: its 21 lines aren’t shown here.

arch/powerpc/kernel/traps.c+102−215

This diff is large: its 446 lines aren’t shown here.

arch/powerpc/kernel/uprobes.c+9−0

This diff is large: its 13 lines aren’t shown here.

arch/powerpc/kernel/vdso32/gettimeofday.S+3−9

This diff is large: its 19 lines aren’t shown here.

arch/powerpc/kernel/vmlinux.lds.S+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/kernel/watchdog.c+39−13

This diff is large: its 142 lines aren’t shown here.

arch/powerpc/kvm/book3s_64_mmu_hv.c+4−2

This diff is large: its 27 lines aren’t shown here.

arch/powerpc/kvm/book3s_64_mmu_radix.c+16−16

This diff is large: its 100 lines aren’t shown here.

arch/powerpc/kvm/book3s_64_vio.c+34−23

This diff is large: its 101 lines aren’t shown here.

arch/powerpc/kvm/book3s_64_vio_hv.c+11−1

This diff is large: its 26 lines aren’t shown here.

arch/powerpc/kvm/book3s_hv.c+30−3

This diff is large: its 83 lines aren’t shown here.

arch/powerpc/kvm/book3s_hv_rm_mmu.c+10−10

This diff is large: its 50 lines aren’t shown here.

arch/powerpc/kvm/book3s_hv_rm_xive.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/kvm/book3s_hv_rmhandlers.S+30−3

This diff is large: its 122 lines aren’t shown here.

arch/powerpc/kvm/book3s_xive.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/kvm/book3s_xive_template.c+68−5

This diff is large: its 142 lines aren’t shown here.

arch/powerpc/kvm/e500.c+6−2

This diff is large: its 23 lines aren’t shown here.

arch/powerpc/kvm/e500_mmu_host.c+2−1

This diff is large: its 17 lines aren’t shown here.

arch/powerpc/kvm/e500mc.c+3−1

This diff is large: its 12 lines aren’t shown here.

arch/powerpc/kvm/powerpc.c+5−0

This diff is large: its 12 lines aren’t shown here.

arch/powerpc/lib/Makefile+2−1

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/lib/copy_32.S+34−10

This diff is large: its 79 lines aren’t shown here.

arch/powerpc/lib/copypage_power7.S+7−7

This diff is large: its 37 lines aren’t shown here.

arch/powerpc/lib/copyuser_power7.S+33−33

This diff is large: its 206 lines aren’t shown here.

arch/powerpc/lib/ldstfp.S+85−214

This diff is large: its 400 lines aren’t shown here.

arch/powerpc/lib/mem_64.S+18−1

This diff is large: its 33 lines aren’t shown here.

arch/powerpc/lib/memcpy_power7.S+33−33

This diff is large: its 205 lines aren’t shown here.

arch/powerpc/lib/quad.S+62−0

This diff is large: its 63 lines aren’t shown here.

arch/powerpc/lib/sstep.c+1647−590

This diff is large: its 3163 lines aren’t shown here.

arch/powerpc/lib/string_64.S+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/mm/8xx_mmu.c+22−7

This diff is large: its 94 lines aren’t shown here.

arch/powerpc/mm/Makefile+1−3

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/mm/dump_hashpagetable.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/mm/dump_linuxpagetables.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/mm/fault.c+294−268

This diff is large: its 724 lines aren’t shown here.

arch/powerpc/mm/hash_low_32.S+1−1

This diff is large: its 16 lines aren’t shown here.

arch/powerpc/mm/hash_utils_64.c+8−8

This diff is large: its 73 lines aren’t shown here.

arch/powerpc/mm/hugetlbpage.c+38−181

This diff is large: its 306 lines aren’t shown here.

arch/powerpc/mm/icswx.c+0−292

This diff is large: its 293 lines aren’t shown here.

arch/powerpc/mm/icswx.h+0−68

This diff is large: its 69 lines aren’t shown here.

arch/powerpc/mm/icswx_pid.c+0−87

This diff is large: its 88 lines aren’t shown here.

arch/powerpc/mm/init_32.c+6−2

This diff is large: its 22 lines aren’t shown here.

arch/powerpc/mm/init_64.c+3−3

This diff is large: its 27 lines aren’t shown here.

arch/powerpc/mm/mem.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/mm/mmu_context.c+99−0

This diff is large: its 100 lines aren’t shown here.

arch/powerpc/mm/mmu_context_book3s64.c+2−18

This diff is large: its 48 lines aren’t shown here.

arch/powerpc/mm/mmu_decl.h+5−5

This diff is large: its 42 lines aren’t shown here.

arch/powerpc/mm/pgtable-book3s64.c+23−1

This diff is large: its 45 lines aren’t shown here.

arch/powerpc/mm/pgtable-hash64.c+5−7

This diff is large: its 47 lines aren’t shown here.

arch/powerpc/mm/pgtable-radix.c+25−8

This diff is large: its 91 lines aren’t shown here.

arch/powerpc/mm/pgtable_32.c+42−24

This diff is large: its 129 lines aren’t shown here.

arch/powerpc/mm/pgtable_64.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/mm/slb_low.S+18−5

This diff is large: its 31 lines aren’t shown here.

arch/powerpc/mm/tlb-radix.c+66−42

This diff is large: its 190 lines aren’t shown here.

arch/powerpc/mm/tlb_hash64.c+6−7

This diff is large: its 36 lines aren’t shown here.

arch/powerpc/mm/tlb_nohash_low.S+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/net/bpf_jit.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/net/bpf_jit_comp64.c+21−5

This diff is large: its 77 lines aren’t shown here.

arch/powerpc/perf/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/perf/callchain.c+2−1

This diff is large: its 17 lines aren’t shown here.

arch/powerpc/perf/core-book3s.c+7−1

This diff is large: its 22 lines aren’t shown here.

arch/powerpc/perf/imc-pmu.c+1306−0

This diff is large: its 1307 lines aren’t shown here.

arch/powerpc/perf/isa207-common.c+28−3

This diff is large: its 51 lines aren’t shown here.

arch/powerpc/perf/isa207-common.h+3−2

This diff is large: its 19 lines aren’t shown here.

arch/powerpc/perf/power8-pmu.c+5−28

This diff is large: its 40 lines aren’t shown here.

arch/powerpc/perf/power9-events-list.h+8−1

This diff is large: its 26 lines aren’t shown here.

arch/powerpc/perf/power9-pmu.c+13−10

This diff is large: its 85 lines aren’t shown here.

arch/powerpc/platforms/44x/Makefile+2−2

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/44x/machine_check.c+89−0

This diff is large: its 90 lines aren’t shown here.

arch/powerpc/platforms/4xx/Makefile+8−0

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/4xx/cpm.crenamed from arch/powerpc/sysdev/ppc4xx_cpm.c+5−5

This diff is large: its 31 lines aren’t shown here.

arch/powerpc/platforms/4xx/gpio.crenamed from arch/powerpc/sysdev/ppc4xx_gpio.c+1−2

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/platforms/4xx/hsta_msi.crenamed from arch/powerpc/sysdev/ppc4xx_hsta_msi.c+0−0

File renamed without changes.

arch/powerpc/platforms/4xx/machine_check.c+26−0

This diff is large: its 27 lines aren’t shown here.

arch/powerpc/platforms/4xx/msi.crenamed from arch/powerpc/sysdev/ppc4xx_msi.c+1−2

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/platforms/4xx/ocm.crenamed from arch/powerpc/sysdev/ppc4xx_ocm.c+0−0

File renamed without changes.

arch/powerpc/platforms/4xx/pci.crenamed from arch/powerpc/sysdev/ppc4xx_pci.c+53−65

This diff is large: its 344 lines aren’t shown here.

arch/powerpc/platforms/4xx/pci.hrenamed from arch/powerpc/sysdev/ppc4xx_pci.h+0−0

File renamed without changes.

arch/powerpc/platforms/4xx/soc.crenamed from arch/powerpc/sysdev/ppc4xx_soc.c+2−3

This diff is large: its 19 lines aren’t shown here.

arch/powerpc/platforms/4xx/uic.crenamed from arch/powerpc/sysdev/uic.c+7−7

This diff is large: its 41 lines aren’t shown here.

arch/powerpc/platforms/512x/clock-commonclk.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/platforms/512x/mpc512x_shared.c+6−6

This diff is large: its 31 lines aren’t shown here.

arch/powerpc/platforms/52xx/efika.c+4−4

This diff is large: its 27 lines aren’t shown here.

arch/powerpc/platforms/52xx/media5200.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/52xx/mpc52xx_gpt.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/platforms/52xx/mpc52xx_pci.c+4−4

This diff is large: its 24 lines aren’t shown here.

arch/powerpc/platforms/83xx/mcu_mpc8349emitx.c+2−1

This diff is large: its 17 lines aren’t shown here.

arch/powerpc/platforms/83xx/mpc832x_rdb.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/83xx/suspend.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/platforms/85xx/p1022_ds.c+4−4

This diff is large: its 22 lines aren’t shown here.

arch/powerpc/platforms/85xx/xes_mpc85xx.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/8xx/Kconfig+1−2

This diff is large: its 17 lines aren’t shown here.

arch/powerpc/platforms/8xx/Makefile+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/8xx/m8xx_setup.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/8xx/machine_check.c+37−0

This diff is large: its 38 lines aren’t shown here.

arch/powerpc/platforms/8xx/pic.crenamed from arch/powerpc/sysdev/mpc8xx_pic.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/8xx/pic.hrenamed from arch/powerpc/sysdev/mpc8xx_pic.h+0−0

File renamed without changes.

arch/powerpc/platforms/Kconfig.cputype+1−44

This diff is large: its 73 lines aren’t shown here.

arch/powerpc/platforms/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/amigaone/setup.c+3−3

This diff is large: its 20 lines aren’t shown here.

arch/powerpc/platforms/cell/axon_msi.c+18−18

This diff is large: its 97 lines aren’t shown here.

arch/powerpc/platforms/cell/interrupt.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/cell/iommu.c+12−12

This diff is large: its 61 lines aren’t shown here.

arch/powerpc/platforms/cell/ras.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/cell/spider-pci.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/cell/spider-pic.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/cell/spu_manage.c+13−13

This diff is large: its 64 lines aren’t shown here.

arch/powerpc/platforms/cell/spufs/file.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/chrp/pci.c+9−9

This diff is large: its 49 lines aren’t shown here.

arch/powerpc/platforms/chrp/pegasos_eth.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/embedded6xx/linkstation.c+3−3

This diff is large: its 16 lines aren’t shown here.

arch/powerpc/platforms/embedded6xx/mvme5100.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/embedded6xx/storcenter.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/maple/pci.c+5−5

This diff is large: its 27 lines aren’t shown here.

arch/powerpc/platforms/pasemi/pci.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/powermac/feature.c+7−7

This diff is large: its 33 lines aren’t shown here.

arch/powerpc/platforms/powermac/low_i2c.c+25−25

This diff is large: its 151 lines aren’t shown here.

arch/powerpc/platforms/powermac/pci.c+3−3

This diff is large: its 20 lines aren’t shown here.

arch/powerpc/platforms/powermac/pfunc_base.c+12−12

This diff is large: its 66 lines aren’t shown here.

arch/powerpc/platforms/powermac/pfunc_core.c+3−3

This diff is large: its 27 lines aren’t shown here.

arch/powerpc/platforms/powermac/pic.c+4−4

This diff is large: its 22 lines aren’t shown here.

arch/powerpc/platforms/powermac/setup.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/powernv/Kconfig+22−0

This diff is large: its 26 lines aren’t shown here.

arch/powerpc/platforms/powernv/Makefile+4−1

This diff is large: its 16 lines aren’t shown here.

arch/powerpc/platforms/powernv/copy-paste.h+46−0

This diff is large: its 47 lines aren’t shown here.

arch/powerpc/platforms/powernv/eeh-powernv.c+9−20

This diff is large: its 104 lines aren’t shown here.

arch/powerpc/platforms/powernv/idle.c+77−4

This diff is large: its 137 lines aren’t shown here.

arch/powerpc/platforms/powernv/memtrace.c+282−0

This diff is large: its 283 lines aren’t shown here.

arch/powerpc/platforms/powernv/npu-dma.c+6−16

This diff is large: its 50 lines aren’t shown here.

arch/powerpc/platforms/powernv/opal-async.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/powernv/opal-flash.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/powernv/opal-hmi.c+3−19

This diff is large: its 43 lines aren’t shown here.

arch/powerpc/platforms/powernv/opal-imc.c+226−0

This diff is large: its 227 lines aren’t shown here.

arch/powerpc/platforms/powernv/opal-powercap.c+244−0

This diff is large: its 245 lines aren’t shown here.

arch/powerpc/platforms/powernv/opal-prd.c+3−10

This diff is large: its 27 lines aren’t shown here.

arch/powerpc/platforms/powernv/opal-psr.c+175−0

This diff is large: its 176 lines aren’t shown here.

arch/powerpc/platforms/powernv/opal-sensor-groups.c+212−0

This diff is large: its 213 lines aren’t shown here.

arch/powerpc/platforms/powernv/opal-wrappers.S+10−1

This diff is large: its 22 lines aren’t shown here.

arch/powerpc/platforms/powernv/opal-xscom.c+4−4

This diff is large: its 19 lines aren’t shown here.

arch/powerpc/platforms/powernv/opal.c+103−49

This diff is large: its 232 lines aren’t shown here.

arch/powerpc/platforms/powernv/pci-ioda.c+8−10

This diff is large: its 67 lines aren’t shown here.

arch/powerpc/platforms/powernv/pci.c+75−0

This diff is large: its 89 lines aren’t shown here.

arch/powerpc/platforms/powernv/pci.h+5−0

This diff is large: its 26 lines aren’t shown here.

arch/powerpc/platforms/powernv/powernv.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/powernv/rng.c+42−3

This diff is large: its 85 lines aren’t shown here.

arch/powerpc/platforms/powernv/smp.c+2−9

This diff is large: its 39 lines aren’t shown here.

arch/powerpc/platforms/powernv/vas-window.c+1134−0

This diff is large: its 1135 lines aren’t shown here.

arch/powerpc/platforms/powernv/vas.c+151−0

This diff is large: its 152 lines aren’t shown here.

arch/powerpc/platforms/powernv/vas.h+467−0

This diff is large: its 468 lines aren’t shown here.

arch/powerpc/platforms/ps3/repository.c+5−17

This diff is large: its 36 lines aren’t shown here.

arch/powerpc/platforms/ps3/setup.c+0−15

This diff is large: its 29 lines aren’t shown here.

arch/powerpc/platforms/pseries/Kconfig+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/pseries/dlpar.c+3−7

This diff is large: its 26 lines aren’t shown here.

arch/powerpc/platforms/pseries/eeh_pseries.c+1−3

This diff is large: its 24 lines aren’t shown here.

arch/powerpc/platforms/pseries/event_sources.c+3−3

This diff is large: its 20 lines aren’t shown here.

arch/powerpc/platforms/pseries/hotplug-cpu.c+17−6

This diff is large: its 65 lines aren’t shown here.

arch/powerpc/platforms/pseries/hotplug-memory.c+36−21

This diff is large: its 99 lines aren’t shown here.

arch/powerpc/platforms/pseries/hvCall.S+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/pseries/ibmebus.c+2−3

This diff is large: its 19 lines aren’t shown here.

arch/powerpc/platforms/pseries/iommu.c+29−29

This diff is large: its 154 lines aren’t shown here.

arch/powerpc/platforms/pseries/kexec.c+5−1

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/platforms/pseries/mobility.c+4−2

This diff is large: its 15 lines aren’t shown here.

arch/powerpc/platforms/pseries/msi.c+8−15

This diff is large: its 78 lines aren’t shown here.

arch/powerpc/platforms/pseries/pci_dlpar.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/pseries/pseries.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/pseries/pseries_energy.c+3−4

This diff is large: its 14 lines aren’t shown here.

arch/powerpc/platforms/pseries/ras.c+15−0

This diff is large: its 22 lines aren’t shown here.

arch/powerpc/platforms/pseries/reconfig.c+4−11

This diff is large: its 25 lines aren’t shown here.

arch/powerpc/platforms/pseries/setup.c+6−3

This diff is large: its 30 lines aren’t shown here.

arch/powerpc/platforms/pseries/smp.c+25−2

This diff is large: its 67 lines aren’t shown here.

arch/powerpc/platforms/pseries/suspend.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/pseries/vio.c+5−5

This diff is large: its 28 lines aren’t shown here.

arch/powerpc/purgatory/trampoline.S+3−3

This diff is large: its 25 lines aren’t shown here.

arch/powerpc/sysdev/Makefile+1−11

This diff is large: its 27 lines aren’t shown here.

arch/powerpc/sysdev/axonram.c+21−27

This diff is large: its 71 lines aren’t shown here.

arch/powerpc/sysdev/dcr.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/sysdev/fsl_85xx_cache_sram.c+6−6

This diff is large: its 32 lines aren’t shown here.

arch/powerpc/sysdev/fsl_gtm.c+7−7

This diff is large: its 42 lines aren’t shown here.

arch/powerpc/sysdev/fsl_msi.c+8−8

This diff is large: its 43 lines aren’t shown here.

arch/powerpc/sysdev/fsl_pci.c+23−24

This diff is large: its 143 lines aren’t shown here.

arch/powerpc/sysdev/fsl_rio.c+18−18

This diff is large: its 92 lines aren’t shown here.

arch/powerpc/sysdev/fsl_rmu.c+6−6

This diff is large: its 33 lines aren’t shown here.

arch/powerpc/sysdev/fsl_soc.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/sysdev/fsl_soc.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/sysdev/ipic.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/sysdev/mpic.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/sysdev/mpic_msgr.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/sysdev/mpic_msi.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/sysdev/mpic_timer.c+7−12

This diff is large: its 64 lines aren’t shown here.

arch/powerpc/sysdev/msi_bitmap.c+2−2

This diff is large: its 16 lines aren’t shown here.

arch/powerpc/sysdev/mv64x60_dev.c+10−10

This diff is large: its 56 lines aren’t shown here.

arch/powerpc/sysdev/mv64x60_pci.c+3−3

This diff is large: its 20 lines aren’t shown here.

arch/powerpc/sysdev/of_rtc.c+6−6

This diff is large: its 28 lines aren’t shown here.

arch/powerpc/sysdev/scom.c+3−2

This diff is large: its 16 lines aren’t shown here.

arch/powerpc/sysdev/simple_gpio.c+1−2

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/sysdev/tsi108_pci.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/sysdev/xive/Kconfig+5−0

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/sysdev/xive/Makefile+1−0

This diff is large: its 5 lines aren’t shown here.

arch/powerpc/sysdev/xive/common.c+71−19

This diff is large: its 218 lines aren’t shown here.

arch/powerpc/sysdev/xive/native.c+11−15

This diff is large: its 75 lines aren’t shown here.

arch/powerpc/sysdev/xive/spapr.c+662−0

This diff is large: its 663 lines aren’t shown here.

arch/powerpc/sysdev/xive/xive-internal.h+7−0

This diff is large: its 21 lines aren’t shown here.

arch/powerpc/xmon/Makefile+4−0

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/xmon/xmon.c+66−20

This diff is large: its 192 lines aren’t shown here.

arch/s390/Kconfig+18−0

This diff is large: its 46 lines aren’t shown here.

arch/s390/Makefile+4−2

This diff is large: its 20 lines aren’t shown here.

arch/s390/include/asm/Kbuild+1−0

This diff is large: its 6 lines aren’t shown here.

arch/s390/include/asm/ap.h+126−0

This diff is large: its 127 lines aren’t shown here.

arch/s390/include/asm/compat.h+3−2

This diff is large: its 15 lines aren’t shown here.

arch/s390/include/asm/cpcmd.h+3−4

This diff is large: its 22 lines aren’t shown here.

arch/s390/include/asm/ebcdic.h+1−3

This diff is large: its 11 lines aren’t shown here.

arch/s390/include/asm/elf.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/s390/include/asm/futex.h+5−18

This diff is large: its 41 lines aren’t shown here.

arch/s390/include/asm/ipl.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/s390/include/asm/kvm_host.h+5−1

This diff is large: its 27 lines aren’t shown here.

arch/s390/include/asm/lowcore.h+24−24

This diff is large: its 71 lines aren’t shown here.

arch/s390/include/asm/mman.h+0−11

This diff is large: its 12 lines aren’t shown here.

arch/s390/include/asm/mmu.h+2−5

This diff is large: its 26 lines aren’t shown here.

arch/s390/include/asm/mmu_context.h+13−35

This diff is large: its 100 lines aren’t shown here.

arch/s390/include/asm/nmi.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/s390/include/asm/page-states.h+2−1

This diff is large: its 10 lines aren’t shown here.

arch/s390/include/asm/page.h+27−10

This diff is large: its 62 lines aren’t shown here.

arch/s390/include/asm/pci.h+7−0

This diff is large: its 28 lines aren’t shown here.

arch/s390/include/asm/pgalloc.h+12−6

This diff is large: its 57 lines aren’t shown here.

arch/s390/include/asm/pgtable.h+123−78

This diff is large: its 305 lines aren’t shown here.

arch/s390/include/asm/qdio.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/s390/include/asm/setup.h+14−3

This diff is large: its 42 lines aren’t shown here.

arch/s390/include/asm/spinlock.h+5−11

This diff is large: its 23 lines aren’t shown here.

arch/s390/include/asm/timex.h+35−5

This diff is large: its 80 lines aren’t shown here.

arch/s390/include/asm/tlb.h+14−9

This diff is large: its 59 lines aren’t shown here.

arch/s390/include/asm/tlbflush.h+14−23

This diff is large: its 85 lines aren’t shown here.

arch/s390/include/asm/topology.h+0−6

This diff is large: its 13 lines aren’t shown here.

arch/s390/include/asm/types.h+0−11

This diff is large: its 12 lines aren’t shown here.

arch/s390/include/asm/unaligned.h+0−13

This diff is large: its 14 lines aren’t shown here.

arch/s390/include/uapi/asm/Kbuild+1−0

This diff is large: its 6 lines aren’t shown here.

arch/s390/include/uapi/asm/dasd.h+5−1

This diff is large: its 20 lines aren’t shown here.

arch/s390/include/uapi/asm/kvm.h+6−0

This diff is large: its 13 lines aren’t shown here.

arch/s390/include/uapi/asm/socket.h+2−0

This diff is large: its 7 lines aren’t shown here.

arch/s390/include/uapi/asm/swab.h+0−89

This diff is large: its 90 lines aren’t shown here.

arch/s390/include/uapi/asm/vmcp.hrenamed from drivers/s390/char/vmcp.h+7−13

This diff is large: its 27 lines aren’t shown here.

arch/s390/kernel/asm-offsets.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/s390/kernel/compat_signal.c+15−17

This diff is large: its 84 lines aren’t shown here.

arch/s390/kernel/cpcmd.c+4−9

This diff is large: its 53 lines aren’t shown here.

arch/s390/kernel/debug.c+5−4

This diff is large: its 29 lines aren’t shown here.

arch/s390/kernel/dumpstack.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/s390/kernel/early.c+12−17

This diff is large: its 61 lines aren’t shown here.

arch/s390/kernel/head.S+2−1

This diff is large: its 10 lines aren’t shown here.

arch/s390/kernel/head64.S+2−2

This diff is large: its 11 lines aren’t shown here.

arch/s390/kernel/irq.c+2−1

This diff is large: its 10 lines aren’t shown here.

arch/s390/kernel/perf_cpum_sf.c+6−3

This diff is large: its 16 lines aren’t shown here.

arch/s390/kernel/relocate_kernel.S+3−2

This diff is large: its 19 lines aren’t shown here.

arch/s390/kernel/setup.c+9−5

This diff is large: its 50 lines aren’t shown here.

arch/s390/kernel/smp.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/s390/kernel/suspend.c+19−5

This diff is large: its 39 lines aren’t shown here.

arch/s390/kernel/time.c+46−21

This diff is large: its 145 lines aren’t shown here.

arch/s390/kernel/topology.c+135−13

This diff is large: its 248 lines aren’t shown here.

arch/s390/kernel/vdso.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/s390/kernel/vdso32/vdso32.lds.S+3−1

This diff is large: its 18 lines aren’t shown here.

arch/s390/kernel/vdso64/vdso64.lds.S+3−1

This diff is large: its 18 lines aren’t shown here.

arch/s390/kvm/diag.c+5−5

This diff is large: its 31 lines aren’t shown here.

arch/s390/kvm/gaccess.c+17−18

This diff is large: its 150 lines aren’t shown here.

arch/s390/kvm/guestdbg.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/s390/kvm/interrupt.c+4−2

This diff is large: its 24 lines aren’t shown here.

arch/s390/kvm/kvm-s390.c+116−2

This diff is large: its 197 lines aren’t shown here.

arch/s390/kvm/kvm-s390.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/s390/kvm/priv.c+9−5

This diff is large: its 51 lines aren’t shown here.

arch/s390/kvm/sigp.c+17−19

This diff is large: its 55 lines aren’t shown here.

arch/s390/kvm/sthyi.c+4−9

This diff is large: its 34 lines aren’t shown here.

arch/s390/kvm/vsie.c+12−6

This diff is large: its 53 lines aren’t shown here.

arch/s390/lib/delay.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/s390/lib/spinlock.c+51−36

This diff is large: its 137 lines aren’t shown here.

arch/s390/lib/uaccess.c+26−12

This diff is large: its 79 lines aren’t shown here.

arch/s390/mm/fault.c+5−5

This diff is large: its 45 lines aren’t shown here.

arch/s390/mm/gmap.c+98−73

This diff is large: its 528 lines aren’t shown here.

arch/s390/mm/gup.c+3−4

This diff is large: its 17 lines aren’t shown here.

arch/s390/mm/init.c+57−3

This diff is large: its 95 lines aren’t shown here.

arch/s390/mm/mmap.c+4−2

This diff is large: its 20 lines aren’t shown here.

arch/s390/mm/page-states.c+177−15

This diff is large: its 254 lines aren’t shown here.

arch/s390/mm/pageattr.c+3−2

This diff is large: its 26 lines aren’t shown here.

arch/s390/mm/pgalloc.c+15−13

This diff is large: its 119 lines aren’t shown here.

arch/s390/mm/pgtable.c+126−34

This diff is large: its 319 lines aren’t shown here.

arch/s390/mm/vmem.c+12−35

This diff is large: its 97 lines aren’t shown here.

arch/s390/net/bpf_jit_comp.c+26−1

This diff is large: its 66 lines aren’t shown here.

arch/s390/pci/pci.c+8−5

This diff is large: its 45 lines aren’t shown here.

arch/s390/pci/pci_clp.c+9−1

This diff is large: its 24 lines aren’t shown here.

arch/s390/tools/gen_facilities.c+5−1

This diff is large: its 27 lines aren’t shown here.

arch/sh/boards/mach-migor/setup.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/configs/ap325rxa_defconfig+0−10

This diff is large: its 46 lines aren’t shown here.

arch/sh/configs/apsh4a3a_defconfig+0−9

This diff is large: its 46 lines aren’t shown here.

arch/sh/configs/apsh4ad0a_defconfig+0−6

This diff is large: its 37 lines aren’t shown here.

arch/sh/configs/cayman_defconfig+0−4

This diff is large: its 27 lines aren’t shown here.

arch/sh/configs/dreamcast_defconfig+0−6

This diff is large: its 36 lines aren’t shown here.

arch/sh/configs/ecovec24-romimage_defconfig+0−7

This diff is large: its 38 lines aren’t shown here.

arch/sh/configs/ecovec24_defconfig+0−9

This diff is large: its 40 lines aren’t shown here.

arch/sh/configs/edosk7705_defconfig+0−2

This diff is large: its 14 lines aren’t shown here.

arch/sh/configs/edosk7760_defconfig+0−11

This diff is large: its 54 lines aren’t shown here.

arch/sh/configs/espt_defconfig+0−10

This diff is large: its 57 lines aren’t shown here.

arch/sh/configs/hp6xx_defconfig+0−4

This diff is large: its 29 lines aren’t shown here.

arch/sh/configs/kfr2r09-romimage_defconfig+0−5

This diff is large: its 32 lines aren’t shown here.

arch/sh/configs/kfr2r09_defconfig+0−7

This diff is large: its 42 lines aren’t shown here.

arch/sh/configs/landisk_defconfig+0−4

This diff is large: its 24 lines aren’t shown here.

arch/sh/configs/lboxre2_defconfig+0−3

This diff is large: its 21 lines aren’t shown here.

arch/sh/configs/magicpanelr2_defconfig+0−9

This diff is large: its 47 lines aren’t shown here.

arch/sh/configs/microdev_defconfig+0−3

This diff is large: its 20 lines aren’t shown here.

arch/sh/configs/migor_defconfig+0−8

This diff is large: its 38 lines aren’t shown here.

arch/sh/configs/polaris_defconfig+0−9

This diff is large: its 43 lines aren’t shown here.

arch/sh/configs/r7780mp_defconfig+0−4

This diff is large: its 27 lines aren’t shown here.

arch/sh/configs/r7785rp_defconfig+0−3

This diff is large: its 21 lines aren’t shown here.

arch/sh/configs/rsk7201_defconfig+0−8

This diff is large: its 31 lines aren’t shown here.

arch/sh/configs/rsk7203_defconfig+0−10

This diff is large: its 48 lines aren’t shown here.

arch/sh/configs/rsk7264_defconfig+0−3

This diff is large: its 20 lines aren’t shown here.

arch/sh/configs/rsk7269_defconfig+0−4

This diff is large: its 26 lines aren’t shown here.

arch/sh/configs/rts7751r2d1_defconfig+0−5

This diff is large: its 36 lines aren’t shown here.

arch/sh/configs/rts7751r2dplus_defconfig+0−8

This diff is large: its 44 lines aren’t shown here.

arch/sh/configs/sdk7780_defconfig+0−9

This diff is large: its 55 lines aren’t shown here.

arch/sh/configs/sdk7786_defconfig+0−9

This diff is large: its 54 lines aren’t shown here.

arch/sh/configs/se7206_defconfig+0−8

This diff is large: its 40 lines aren’t shown here.

arch/sh/configs/se7343_defconfig+0−9

This diff is large: its 38 lines aren’t shown here.

arch/sh/configs/se7619_defconfig+0−5

This diff is large: its 21 lines aren’t shown here.

arch/sh/configs/se7705_defconfig+0−5

This diff is large: its 23 lines aren’t shown here.

arch/sh/configs/se7712_defconfig+0−7

This diff is large: its 32 lines aren’t shown here.

arch/sh/configs/se7721_defconfig+0−6

This diff is large: its 30 lines aren’t shown here.

arch/sh/configs/se7722_defconfig+0−3

This diff is large: its 20 lines aren’t shown here.

arch/sh/configs/se7724_defconfig+0−9

This diff is large: its 38 lines aren’t shown here.

arch/sh/configs/se7750_defconfig+0−5

This diff is large: its 23 lines aren’t shown here.

arch/sh/configs/se7751_defconfig+0−6

This diff is large: its 25 lines aren’t shown here.

arch/sh/configs/se7780_defconfig+0−7

This diff is large: its 40 lines aren’t shown here.

arch/sh/configs/secureedge5410_defconfig+0−9

This diff is large: its 46 lines aren’t shown here.

arch/sh/configs/sh03_defconfig+0−4

This diff is large: its 29 lines aren’t shown here.

arch/sh/configs/sh2007_defconfig+0−8

This diff is large: its 48 lines aren’t shown here.

arch/sh/configs/sh7710voipgw_defconfig+0−5

This diff is large: its 28 lines aren’t shown here.

arch/sh/configs/sh7724_generic_defconfig+0−3

This diff is large: its 19 lines aren’t shown here.

arch/sh/configs/sh7757lcr_defconfig+0−4

This diff is large: its 27 lines aren’t shown here.

arch/sh/configs/sh7763rdp_defconfig+0−9

This diff is large: its 55 lines aren’t shown here.

arch/sh/configs/sh7770_generic_defconfig+0−3

This diff is large: its 19 lines aren’t shown here.

arch/sh/configs/sh7785lcr_32bit_defconfig+0−10

This diff is large: its 53 lines aren’t shown here.

arch/sh/configs/sh7785lcr_defconfig+0−9

This diff is large: its 42 lines aren’t shown here.

arch/sh/configs/shmin_defconfig+0−4

This diff is large: its 23 lines aren’t shown here.

arch/sh/configs/shx3_defconfig+0−6

This diff is large: its 38 lines aren’t shown here.

arch/sh/configs/titan_defconfig+0−8

This diff is large: its 61 lines aren’t shown here.

arch/sh/configs/ul2_defconfig+0−9

This diff is large: its 47 lines aren’t shown here.

arch/sh/configs/urquell_defconfig+0−9

This diff is large: its 43 lines aren’t shown here.

arch/sh/drivers/pci/fixups-cayman.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/drivers/pci/fixups-dreamcast.c+2−3

This diff is large: its 22 lines aren’t shown here.

arch/sh/drivers/pci/fixups-r7780rp.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/drivers/pci/fixups-rts7751r2d.c+3−3

This diff is large: its 22 lines aren’t shown here.

arch/sh/drivers/pci/fixups-sdk7780.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/sh/drivers/pci/fixups-se7751.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/drivers/pci/fixups-sh03.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/drivers/pci/fixups-snapgear.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/drivers/pci/fixups-titan.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/sh/drivers/pci/pci.c+25−24

This diff is large: its 88 lines aren’t shown here.

arch/sh/drivers/pci/pcie-sh7786.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/include/asm/futex.h+4−22

This diff is large: its 44 lines aren’t shown here.

arch/sh/include/asm/processor_32.h+0−4

This diff is large: its 11 lines aren’t shown here.

arch/sh/include/asm/processor_64.h+0−4

This diff is large: its 11 lines aren’t shown here.

arch/sh/include/asm/spinlock-cas.h+0−5

This diff is large: its 12 lines aren’t shown here.

arch/sh/include/asm/spinlock-llsc.h+0−5

This diff is large: its 12 lines aren’t shown here.

arch/sh/include/asm/tlb.h+5−3

This diff is large: its 23 lines aren’t shown here.

arch/sparc/Kconfig+3−0

This diff is large: its 10 lines aren’t shown here.

arch/sparc/configs/sparc64_defconfig+1−0

This diff is large: its 5 lines aren’t shown here.

arch/sparc/crypto/aes_glue.c+1−2

This diff is large: its 10 lines aren’t shown here.

arch/sparc/include/asm/atomic_32.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/sparc/include/asm/futex_64.h+5−21

This diff is large: its 46 lines aren’t shown here.

arch/sparc/include/asm/hugetlb.h+7−0

This diff is large: its 14 lines aren’t shown here.

arch/sparc/include/asm/hypervisor.h+18−0

This diff is large: its 25 lines aren’t shown here.

arch/sparc/include/asm/page_32.h+2−0

This diff is large: its 16 lines aren’t shown here.

arch/sparc/include/asm/page_64.h+2−1

This diff is large: its 17 lines aren’t shown here.

arch/sparc/include/asm/pgtable_64.h+18−2

This diff is large: its 42 lines aren’t shown here.

arch/sparc/include/asm/smp_64.h+5−0

This diff is large: its 19 lines aren’t shown here.

arch/sparc/include/asm/spinlock_32.h+0−5

This diff is large: its 12 lines aren’t shown here.

arch/sparc/include/asm/spitfire.h+16−0

This diff is large: its 27 lines aren’t shown here.

arch/sparc/include/asm/trap_block.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/sparc/include/asm/tsb.h+36−0

This diff is large: its 50 lines aren’t shown here.

arch/sparc/include/asm/vga.h+25−0

This diff is large: its 42 lines aren’t shown here.

arch/sparc/include/asm/vio.h+9−0

This diff is large: its 23 lines aren’t shown here.

arch/sparc/include/uapi/asm/siginfo.h+8−1

This diff is large: its 19 lines aren’t shown here.

arch/sparc/include/uapi/asm/socket.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/sparc/kernel/cpu.c+6−0

This diff is large: its 13 lines aren’t shown here.

arch/sparc/kernel/cpumap.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/sparc/kernel/etrap_64.S+22−4

This diff is large: its 47 lines aren’t shown here.

arch/sparc/kernel/head_64.S+28−10

This diff is large: its 92 lines aren’t shown here.

arch/sparc/kernel/hvapi.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sparc/kernel/hvcalls.S+11−0

This diff is large: its 18 lines aren’t shown here.

arch/sparc/kernel/ldc.c+2−0

This diff is large: its 16 lines aren’t shown here.

arch/sparc/kernel/leon_pci.c+18−12

This diff is large: its 51 lines aren’t shown here.

arch/sparc/kernel/leon_pci_grpci1.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sparc/kernel/leon_pci_grpci2.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sparc/kernel/pci.c+0−10

This diff is large: its 17 lines aren’t shown here.

arch/sparc/kernel/pci_sun4v.c+0−2

This diff is large: its 9 lines aren’t shown here.

arch/sparc/kernel/pcic.c+1−7

This diff is large: its 22 lines aren’t shown here.

arch/sparc/kernel/process_64.c+6−1

This diff is large: its 15 lines aren’t shown here.

arch/sparc/kernel/rtrap_64.S+11−2

This diff is large: its 22 lines aren’t shown here.

arch/sparc/kernel/setup_64.c+19−2

This diff is large: its 65 lines aren’t shown here.

arch/sparc/kernel/signal32.c+8−8

This diff is large: its 43 lines aren’t shown here.

arch/sparc/kernel/smp_64.c+77−3

This diff is large: its 100 lines aren’t shown here.

arch/sparc/kernel/traps_32.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sparc/kernel/traps_64.c+52−1

This diff is large: its 95 lines aren’t shown here.

arch/sparc/kernel/tsb.S+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sparc/kernel/vio.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/sparc/kernel/viohs.c+9−3

This diff is large: its 25 lines aren’t shown here.

arch/sparc/kernel/vmlinux.lds.S+10−0

This diff is large: its 17 lines aren’t shown here.

arch/sparc/lib/M7copy_from_user.S+40−0

This diff is large: its 41 lines aren’t shown here.

arch/sparc/lib/M7copy_to_user.S+51−0

This diff is large: its 52 lines aren’t shown here.

arch/sparc/lib/M7memcpy.S+923−0

This diff is large: its 924 lines aren’t shown here.

arch/sparc/lib/M7memset.S+352−0

This diff is large: its 353 lines aren’t shown here.

arch/sparc/lib/M7patch.S+51−0

This diff is large: its 52 lines aren’t shown here.

arch/sparc/lib/Makefile+5−0

This diff is large: its 12 lines aren’t shown here.

arch/sparc/lib/Memcpy_utils.S+345−0

This diff is large: its 346 lines aren’t shown here.

arch/sparc/lib/NG4memcpy.S+64−213

This diff is large: its 421 lines aren’t shown here.

arch/sparc/lib/U3memcpy.S+21−11

This diff is large: its 93 lines aren’t shown here.

arch/sparc/lib/multi3.S+12−12

This diff is large: its 39 lines aren’t shown here.

arch/sparc/mm/gup.c+44−1

This diff is large: its 59 lines aren’t shown here.

arch/sparc/mm/hugetlbpage.c+60−42

This diff is large: its 181 lines aren’t shown here.

arch/sparc/mm/init_64.c+60−8

This diff is large: its 124 lines aren’t shown here.

arch/sparc/net/bpf_jit_comp_64.c+34−0

This diff is large: its 102 lines aren’t shown here.

arch/tile/configs/tilegx_defconfig+0−1

This diff is large: its 6 lines aren’t shown here.

arch/tile/configs/tilepro_defconfig+0−2

This diff is large: its 16 lines aren’t shown here.

arch/tile/include/asm/atomic_32.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/tile/include/asm/dma-mapping.h+2−2

This diff is large: its 11 lines aren’t shown here.

arch/tile/include/asm/futex.h+5−35

This diff is large: its 62 lines aren’t shown here.

arch/tile/include/asm/spinlock_32.h+0−2

This diff is large: its 9 lines aren’t shown here.

arch/tile/include/asm/spinlock_64.h+0−2

This diff is large: its 9 lines aren’t shown here.

arch/tile/include/uapi/asm/siginfo.h+2−2

This diff is large: its 11 lines aren’t shown here.

arch/tile/kernel/compat_signal.c+8−10

This diff is large: its 45 lines aren’t shown here.

arch/tile/kernel/pci.c+16−23

This diff is large: its 72 lines aren’t shown here.

arch/tile/kernel/pci_gx.c+16−19

This diff is large: its 67 lines aren’t shown here.

arch/tile/kernel/setup.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/tile/kernel/traps.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/tile/lib/spinlock_32.c+0−23

This diff is large: its 30 lines aren’t shown here.

arch/tile/lib/spinlock_64.c+0−22

This diff is large: its 29 lines aren’t shown here.

arch/um/Kconfig.um+1−0

This diff is large: its 8 lines aren’t shown here.

arch/um/Makefile+1−1

This diff is large: its 9 lines aren’t shown here.

arch/um/configs/i386_defconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/um/configs/x86_64_defconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/um/drivers/mconsole_kern.c+1−6

This diff is large: its 14 lines aren’t shown here.

arch/um/include/asm/processor-generic.h+0−5

This diff is large: its 12 lines aren’t shown here.

arch/um/include/asm/thread_info.h+3−0

This diff is large: its 17 lines aren’t shown here.

arch/um/include/asm/tlb.h+10−3

This diff is large: its 32 lines aren’t shown here.

arch/um/include/asm/unwind.h+8−0

This diff is large: its 9 lines aren’t shown here.

arch/um/include/shared/os.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/um/kernel/gmon_syms.c+7−0

This diff is large: its 11 lines aren’t shown here.

arch/um/kernel/process.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/um/os-Linux/drivers/tuntap_user.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/um/os-Linux/skas/process.c+8−9

This diff is large: its 59 lines aren’t shown here.

arch/um/os-Linux/start_up.c+3−3

This diff is large: its 14 lines aren’t shown here.

arch/unicore32/kernel/pci.c+31−4

This diff is large: its 59 lines aren’t shown here.

arch/x86/Kbuild+1−4

This diff is large: its 12 lines aren’t shown here.

arch/x86/Kconfig+72−13

This diff is large: its 183 lines aren’t shown here.

arch/x86/Kconfig.debug+57−2

This diff is large: its 71 lines aren’t shown here.

arch/x86/Makefile+8−9

This diff is large: its 52 lines aren’t shown here.

arch/x86/boot/compressed/eboot.c+8−5

This diff is large: its 55 lines aren’t shown here.

arch/x86/boot/compressed/head_32.S+64−65

This diff is large: its 143 lines aren’t shown here.

arch/x86/boot/compressed/head_64.S+53−59

This diff is large: its 126 lines aren’t shown here.

arch/x86/boot/compressed/kaslr.c+120−27

This diff is large: its 213 lines aren’t shown here.

arch/x86/boot/compressed/misc.c+1−2

This diff is large: its 10 lines aren’t shown here.

arch/x86/boot/compressed/pagetable.c+7−0

This diff is large: its 14 lines aren’t shown here.

arch/x86/boot/header.S+7−1

This diff is large: its 16 lines aren’t shown here.

arch/x86/configs/tiny.config+2−0

This diff is large: its 6 lines aren’t shown here.

arch/x86/crypto/aesni-intel_glue.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/x86/crypto/blowfish-x86_64-asm_64.S+26−22

This diff is large: its 159 lines aren’t shown here.

arch/x86/crypto/blowfish_glue.c+1−2

This diff is large: its 10 lines aren’t shown here.

arch/x86/crypto/camellia-x86_64-asm_64.S+13−13

This diff is large: its 108 lines aren’t shown here.

arch/x86/crypto/cast5-avx-x86_64-asm_64.S+30−17

This diff is large: its 185 lines aren’t shown here.

arch/x86/crypto/cast5_avx_glue.c+1−2

This diff is large: its 10 lines aren’t shown here.

arch/x86/crypto/cast6-avx-x86_64-asm_64.S+34−16

This diff is large: its 210 lines aren’t shown here.

arch/x86/crypto/des3_ede-asm_64.S+9−6

This diff is large: its 80 lines aren’t shown here.

arch/x86/crypto/des3_ede_glue.c+1−2

This diff is large: its 10 lines aren’t shown here.

arch/x86/crypto/sha1_avx2_x86_64_asm.S+37−34

This diff is large: its 185 lines aren’t shown here.

arch/x86/crypto/sha1_ssse3_asm.S+5−6

This diff is large: its 35 lines aren’t shown here.

arch/x86/crypto/sha1_ssse3_glue.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/crypto/sha256-avx-asm.S+7−8

This diff is large: its 43 lines aren’t shown here.

arch/x86/crypto/sha256-avx2-asm.S+7−15

This diff is large: its 82 lines aren’t shown here.

arch/x86/crypto/sha256-ssse3-asm.S+7−8

This diff is large: its 43 lines aren’t shown here.

arch/x86/crypto/sha512-avx2-asm.S+39−36

This diff is large: its 139 lines aren’t shown here.

arch/x86/crypto/twofish-avx-x86_64-asm_64.S+6−6

This diff is large: its 47 lines aren’t shown here.

arch/x86/entry/Makefile+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/entry/calling.h+5−0

This diff is large: its 38 lines aren’t shown here.

arch/x86/entry/common.c+3−0

This diff is large: its 17 lines aren’t shown here.

arch/x86/entry/entry_32.S+2−18

This diff is large: its 45 lines aren’t shown here.

arch/x86/entry/entry_64.S+151−88

This diff is large: its 583 lines aren’t shown here.

arch/x86/entry/entry_64_compat.S+5−7

This diff is large: its 48 lines aren’t shown here.

arch/x86/entry/vdso/vma.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/events/amd/uncore.c+17−4

This diff is large: its 37 lines aren’t shown here.

arch/x86/events/core.c+55−25

This diff is large: its 155 lines aren’t shown here.

arch/x86/events/intel/Makefile+1−1

This diff is large: its 6 lines aren’t shown here.

arch/x86/events/intel/bts.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/x86/events/intel/core.c+99−8

This diff is large: its 268 lines aren’t shown here.

arch/x86/events/intel/cqm.c+0−1766

This diff is large: its 1767 lines aren’t shown here.

arch/x86/events/intel/ds.c+34−24

This diff is large: its 95 lines aren’t shown here.

arch/x86/events/intel/lbr.c+51−1

This diff is large: its 101 lines aren’t shown here.

arch/x86/events/intel/p4.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/events/intel/pt.c+3−2

This diff is large: its 12 lines aren’t shown here.

arch/x86/events/intel/rapl.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/events/intel/uncore.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/events/intel/uncore_nhmex.c+6−6

This diff is large: its 54 lines aren’t shown here.

arch/x86/events/intel/uncore_snb.c+3−3

This diff is large: its 27 lines aren’t shown here.

arch/x86/events/intel/uncore_snbep.c+21−21

This diff is large: its 165 lines aren’t shown here.

arch/x86/events/perf_event.h+8−2

This diff is large: its 45 lines aren’t shown here.

arch/x86/hyperv/Makefile+1−1

This diff is large: its 3 lines aren’t shown here.

arch/x86/hyperv/hv_init.c+40−50

This diff is large: its 142 lines aren’t shown here.

arch/x86/hyperv/mmu.c+272−0

This diff is large: its 273 lines aren’t shown here.

arch/x86/ia32/ia32_aout.c+2−2

This diff is large: its 13 lines aren’t shown here.

arch/x86/ia32/ia32_signal.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/include/asm/acpi.h+6−7

This diff is large: its 28 lines aren’t shown here.

arch/x86/include/asm/alternative.h+1−2

This diff is large: its 12 lines aren’t shown here.

arch/x86/include/asm/asm.h+17−0

This diff is large: its 32 lines aren’t shown here.

arch/x86/include/asm/atomic.h+46−23

This diff is large: its 93 lines aren’t shown here.

arch/x86/include/asm/atomic64_32.h+57−24

This diff is large: its 95 lines aren’t shown here.

arch/x86/include/asm/atomic64_64.h+47−26

This diff is large: its 106 lines aren’t shown here.

arch/x86/include/asm/cacheflush.h+0−2

This diff is large: its 7 lines aren’t shown here.

arch/x86/include/asm/cmdline.h+2−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/include/asm/cmpxchg.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/include/asm/cpufeatures.h+4−2

This diff is large: its 27 lines aren’t shown here.

arch/x86/include/asm/desc.h+47−204

This diff is large: its 338 lines aren’t shown here.

arch/x86/include/asm/desc_defs.h+66−56

This diff is large: its 151 lines aren’t shown here.

arch/x86/include/asm/disabled-features.h+3−1

This diff is large: its 23 lines aren’t shown here.

arch/x86/include/asm/dma-mapping.h+3−2

This diff is large: its 23 lines aren’t shown here.

arch/x86/include/asm/dmi.h+4−4

This diff is large: its 14 lines aren’t shown here.

arch/x86/include/asm/e820/api.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/x86/include/asm/elf.h+12−11

This diff is large: its 65 lines aren’t shown here.

arch/x86/include/asm/entry_arch.h+6−11

This diff is large: its 34 lines aren’t shown here.

arch/x86/include/asm/fixmap.h+20−0

This diff is large: its 27 lines aren’t shown here.

arch/x86/include/asm/fpu/internal.h+3−3

This diff is large: its 22 lines aren’t shown here.

arch/x86/include/asm/futex.h+5−35

This diff is large: its 57 lines aren’t shown here.

arch/x86/include/asm/hw_irq.h+0−20

This diff is large: its 27 lines aren’t shown here.

arch/x86/include/asm/hypervisor.h+10−0

This diff is large: its 26 lines aren’t shown here.

arch/x86/include/asm/init.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/include/asm/intel_rdt.h+0−286

This diff is large: its 287 lines aren’t shown here.

arch/x86/include/asm/intel_rdt_common.h+0−27

This diff is large: its 28 lines aren’t shown here.

arch/x86/include/asm/intel_rdt_sched.h+92−0

This diff is large: its 93 lines aren’t shown here.

arch/x86/include/asm/io.h+55−51

This diff is large: its 198 lines aren’t shown here.

arch/x86/include/asm/irq.h+0−4

This diff is large: its 11 lines aren’t shown here.

arch/x86/include/asm/irq_work.h+8−0

This diff is large: its 18 lines aren’t shown here.

arch/x86/include/asm/kexec.h+10−1

This diff is large: its 25 lines aren’t shown here.

arch/x86/include/asm/kvm_emulate.h+2−2

This diff is large: its 11 lines aren’t shown here.

arch/x86/include/asm/kvm_host.h+18−30

This diff is large: its 145 lines aren’t shown here.

arch/x86/include/asm/lguest.h+0−91

This diff is large: its 92 lines aren’t shown here.

arch/x86/include/asm/lguest_hcall.h+0−74

This diff is large: its 75 lines aren’t shown here.

arch/x86/include/asm/mem_encrypt.h+80−0

This diff is large: its 81 lines aren’t shown here.

arch/x86/include/asm/mmu.h+23−2

This diff is large: its 43 lines aren’t shown here.

arch/x86/include/asm/mmu_context.h+39−6

This diff is large: its 85 lines aren’t shown here.

arch/x86/include/asm/module.h+9−0

This diff is large: its 16 lines aren’t shown here.

arch/x86/include/asm/mpspec.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/include/asm/mpx.h+9−0

This diff is large: its 23 lines aren’t shown here.

arch/x86/include/asm/mshyperv.h+146−1

This diff is large: its 173 lines aren’t shown here.

arch/x86/include/asm/msr-index.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/x86/include/asm/orc_lookup.h+46−0

This diff is large: its 47 lines aren’t shown here.

arch/x86/include/asm/orc_types.h+107−0

This diff is large: its 108 lines aren’t shown here.

arch/x86/include/asm/page_64.h+4−0

This diff is large: its 11 lines aren’t shown here.

arch/x86/include/asm/page_types.h+2−1

This diff is large: its 17 lines aren’t shown here.

arch/x86/include/asm/paravirt.h+0−42

This diff is large: its 77 lines aren’t shown here.

arch/x86/include/asm/paravirt_types.h+7−19

This diff is large: its 89 lines aren’t shown here.

arch/x86/include/asm/pgtable.h+42−30

This diff is large: its 179 lines aren’t shown here.

arch/x86/include/asm/pgtable_64.h+11−3

This diff is large: its 35 lines aren’t shown here.

arch/x86/include/asm/pgtable_types.h+48−20

This diff is large: its 119 lines aren’t shown here.

arch/x86/include/asm/preempt.h+5−10

This diff is large: its 25 lines aren’t shown here.

arch/x86/include/asm/processor-flags.h+8−5

This diff is large: its 32 lines aren’t shown here.

arch/x86/include/asm/processor.h+22−9

This diff is large: its 121 lines aren’t shown here.

arch/x86/include/asm/proto.h+3−0

This diff is large: its 10 lines aren’t shown here.

arch/x86/include/asm/ptrace.h+37−6

This diff is large: its 68 lines aren’t shown here.

arch/x86/include/asm/realmode.h+12−0

This diff is large: its 31 lines aren’t shown here.

arch/x86/include/asm/refcount.h+109−0

This diff is large: its 110 lines aren’t shown here.

arch/x86/include/asm/rmwcc.h+24−13

This diff is large: its 70 lines aren’t shown here.

arch/x86/include/asm/rwsem.h+2−2

This diff is large: its 18 lines aren’t shown here.

arch/x86/include/asm/segment.h+1−3

This diff is large: its 11 lines aren’t shown here.

arch/x86/include/asm/set_memory.h+3−0

This diff is large: its 17 lines aren’t shown here.

arch/x86/include/asm/setup.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/include/asm/special_insns.h+5−5

This diff is large: its 24 lines aren’t shown here.

arch/x86/include/asm/string_32.h+24−0

This diff is large: its 31 lines aren’t shown here.

arch/x86/include/asm/string_64.h+36−0

This diff is large: its 43 lines aren’t shown here.

arch/x86/include/asm/svm.h+6−0

This diff is large: its 20 lines aren’t shown here.

arch/x86/include/asm/thread_info.h+4−1

This diff is large: its 26 lines aren’t shown here.

arch/x86/include/asm/tlb.h+14−0

This diff is large: its 19 lines aren’t shown here.

arch/x86/include/asm/tlbflush.h+82−7

This diff is large: its 147 lines aren’t shown here.

arch/x86/include/asm/topology.h+0−6

This diff is large: its 13 lines aren’t shown here.

arch/x86/include/asm/trace/common.h+16−0

This diff is large: its 17 lines aren’t shown here.

arch/x86/include/asm/trace/exceptions.h+4−4

This diff is large: its 23 lines aren’t shown here.

arch/x86/include/asm/trace/hyperv.h+40−0

This diff is large: its 41 lines aren’t shown here.

arch/x86/include/asm/trace/irq_vectors.h+39−12

This diff is large: its 118 lines aren’t shown here.

arch/x86/include/asm/traps.h+23−27

This diff is large: its 71 lines aren’t shown here.

arch/x86/include/asm/uaccess.h+8−3

This diff is large: its 28 lines aren’t shown here.

arch/x86/include/asm/unwind.h+47−29

This diff is large: its 122 lines aren’t shown here.

arch/x86/include/asm/unwind_hints.h+105−0

This diff is large: its 106 lines aren’t shown here.

arch/x86/include/asm/vga.h+13−1

This diff is large: its 26 lines aren’t shown here.

arch/x86/include/asm/vmx.h+17−5

This diff is large: its 65 lines aren’t shown here.

arch/x86/include/asm/xen/hypercall.h+6−5

This diff is large: its 33 lines aren’t shown here.

arch/x86/include/asm/xen/page.h+0−5

This diff is large: its 19 lines aren’t shown here.

arch/x86/include/uapi/asm/bootparam.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/include/uapi/asm/hyperv.h+15−4

This diff is large: its 43 lines aren’t shown here.

arch/x86/include/uapi/asm/mman.h+0−3

This diff is large: its 10 lines aren’t shown here.

arch/x86/kernel/Makefile+5−6

This diff is large: its 32 lines aren’t shown here.

arch/x86/kernel/acpi/boot.c+12−9

This diff is large: its 80 lines aren’t shown here.

arch/x86/kernel/alternative.c+16−6

This diff is large: its 44 lines aren’t shown here.

arch/x86/kernel/apic/apic.c+20−60

This diff is large: its 171 lines aren’t shown here.

arch/x86/kernel/apic/io_apic.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/apic/vector.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/apm_32.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/asm-offsets_32.c+0−20

This diff is large: its 34 lines aren’t shown here.

arch/x86/kernel/asm-offsets_64.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/kernel/cpu/Makefile+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/cpu/amd.c+54−12

This diff is large: its 127 lines aren’t shown here.

arch/x86/kernel/cpu/aperfmperf.c+3−0

This diff is large: its 17 lines aren’t shown here.

arch/x86/kernel/cpu/common.c+28−9

This diff is large: its 72 lines aren’t shown here.

arch/x86/kernel/cpu/intel_cacheinfo.c+18−14

This diff is large: its 46 lines aren’t shown here.

arch/x86/kernel/cpu/intel_rdt.c+314−61

This diff is large: its 614 lines aren’t shown here.

arch/x86/kernel/cpu/intel_rdt.h+440−0

This diff is large: its 441 lines aren’t shown here.

arch/x86/kernel/cpu/intel_rdt_ctrlmondata.crenamed from arch/x86/kernel/cpu/intel_rdt_schemata.c+61−6

This diff is large: its 110 lines aren’t shown here.

arch/x86/kernel/cpu/intel_rdt_monitor.c+499−0

This diff is large: its 500 lines aren’t shown here.

arch/x86/kernel/cpu/intel_rdt_rdtgroup.c+925−206

This diff is large: its 1523 lines aren’t shown here.

arch/x86/kernel/cpu/mcheck/mce.c+43−0

This diff is large: its 57 lines aren’t shown here.

arch/x86/kernel/cpu/mcheck/mce_amd.c+4−21

This diff is large: its 50 lines aren’t shown here.

arch/x86/kernel/cpu/mcheck/therm_throt.c+4−18

This diff is large: its 39 lines aren’t shown here.

arch/x86/kernel/cpu/mcheck/threshold.c+2−14

This diff is large: its 27 lines aren’t shown here.

arch/x86/kernel/cpu/microcode/amd.c+4−1

This diff is large: its 14 lines aren’t shown here.

arch/x86/kernel/cpu/microcode/core.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/x86/kernel/cpu/microcode/intel.c+14−13

This diff is large: its 67 lines aren’t shown here.

arch/x86/kernel/cpu/mshyperv.c+12−10

This diff is large: its 56 lines aren’t shown here.

arch/x86/kernel/cpu/mtrr/main.c+15−3

This diff is large: its 46 lines aren’t shown here.

arch/x86/kernel/cpu/scattered.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/kernel/dumpstack.c+8−6

This diff is large: its 49 lines aren’t shown here.

arch/x86/kernel/dumpstack_32.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/x86/kernel/dumpstack_64.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/x86/kernel/e820.c+23−3

This diff is large: its 41 lines aren’t shown here.

arch/x86/kernel/early-quirks.c+3−2

This diff is large: its 29 lines aren’t shown here.

arch/x86/kernel/eisa.c+19−0

This diff is large: its 20 lines aren’t shown here.

arch/x86/kernel/espfix_64.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/head32.c+4−0

This diff is large: its 18 lines aren’t shown here.

arch/x86/kernel/head64.c+83−23

This diff is large: its 224 lines aren’t shown here.

arch/x86/kernel/head_32.S+11−55

This diff is large: its 143 lines aren’t shown here.

arch/x86/kernel/head_64.S+28−12

This diff is large: its 98 lines aren’t shown here.

arch/x86/kernel/idt.c+371−0

This diff is large: its 372 lines aren’t shown here.

arch/x86/kernel/io_delay.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/irq.c+12−28

This diff is large: its 101 lines aren’t shown here.

arch/x86/kernel/irq_work.c+4−16

This diff is large: its 40 lines aren’t shown here.

arch/x86/kernel/irqinit.c+1−101

This diff is large: its 121 lines aren’t shown here.

arch/x86/kernel/kdebugfs.c+11−23

This diff is large: its 72 lines aren’t shown here.

arch/x86/kernel/kprobes/opt.c+6−3

This diff is large: its 24 lines aren’t shown here.

arch/x86/kernel/ksysfs.c+16−16

This diff is large: its 123 lines aren’t shown here.

arch/x86/kernel/kvm.c+3−3

This diff is large: its 27 lines aren’t shown here.

arch/x86/kernel/ldt.c+21−0

This diff is large: its 35 lines aren’t shown here.

arch/x86/kernel/machine_kexec_32.c+1−13

This diff is large: its 28 lines aren’t shown here.

arch/x86/kernel/machine_kexec_64.c+23−2

This diff is large: its 50 lines aren’t shown here.

arch/x86/kernel/module.c+10−1

This diff is large: its 39 lines aren’t shown here.

arch/x86/kernel/mpparse.c+75−33

This diff is large: its 255 lines aren’t shown here.

arch/x86/kernel/nmi.c+9−9

This diff is large: its 68 lines aren’t shown here.

arch/x86/kernel/paravirt.c+0−8

This diff is large: its 43 lines aren’t shown here.

arch/x86/kernel/pci-dma.c+7−4

This diff is large: its 25 lines aren’t shown here.

arch/x86/kernel/pci-nommu.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/pci-swiotlb.c+13−2

This diff is large: its 42 lines aren’t shown here.

arch/x86/kernel/platform-quirks.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/kernel/process.c+15−2

This diff is large: its 31 lines aren’t shown here.

arch/x86/kernel/process_32.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/x86/kernel/process_64.c+136−108

This diff is large: its 297 lines aren’t shown here.

arch/x86/kernel/quirks.c+10−0

This diff is large: its 21 lines aren’t shown here.

arch/x86/kernel/reboot.c+2−4

This diff is large: its 27 lines aren’t shown here.

arch/x86/kernel/relocate_kernel_64.S+14−0

This diff is large: its 35 lines aren’t shown here.

arch/x86/kernel/setup.c+20−3

This diff is large: its 79 lines aren’t shown here.

arch/x86/kernel/setup_percpu.c+4−7

This diff is large: its 26 lines aren’t shown here.

arch/x86/kernel/signal.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/signal_compat.c+9−12

This diff is large: its 60 lines aren’t shown here.

arch/x86/kernel/smp.c+21−60

This diff is large: its 106 lines aren’t shown here.

arch/x86/kernel/smpboot.c+30−23

This diff is large: its 127 lines aren’t shown here.

arch/x86/kernel/step.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/sys_x86_64.c+26−4

This diff is large: its 75 lines aren’t shown here.

arch/x86/kernel/tls.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/tracepoint.c+19−38

This diff is large: its 77 lines aren’t shown here.

arch/x86/kernel/traps.c+3−104

This diff is large: its 145 lines aren’t shown here.

arch/x86/kernel/unwind_frame.c+16−25

This diff is large: its 64 lines aren’t shown here.

arch/x86/kernel/unwind_guess.c+5−0

This diff is large: its 12 lines aren’t shown here.

arch/x86/kernel/unwind_orc.c+582−0

This diff is large: its 583 lines aren’t shown here.

arch/x86/kernel/vmlinux.lds.S+3−0

This diff is large: its 17 lines aren’t shown here.

arch/x86/kvm/Kconfig+0−1

This diff is large: its 7 lines aren’t shown here.

arch/x86/kvm/cpuid.c+25−11

This diff is large: its 91 lines aren’t shown here.

arch/x86/kvm/cpuid.h+63−122

This diff is large: its 233 lines aren’t shown here.

arch/x86/kvm/emulate.c+30−17

This diff is large: its 153 lines aren’t shown here.

arch/x86/kvm/hyperv.c+7−1

This diff is large: its 22 lines aren’t shown here.

arch/x86/kvm/kvm_cache_regs.h+1−6

This diff is large: its 21 lines aren’t shown here.

arch/x86/kvm/lapic.c+4−2

This diff is large: its 20 lines aren’t shown here.

arch/x86/kvm/lapic.h+3−0

This diff is large: its 10 lines aren’t shown here.

arch/x86/kvm/mmu.c+207−101

This diff is large: its 638 lines aren’t shown here.

arch/x86/kvm/mmu.h+6−19

This diff is large: its 53 lines aren’t shown here.

arch/x86/kvm/mmu_audit.c+2−2

This diff is large: its 14 lines aren’t shown here.

arch/x86/kvm/mtrr.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kvm/paging_tmpl.h+3−3

This diff is large: its 20 lines aren’t shown here.

arch/x86/kvm/svm.c+125−96

This diff is large: its 541 lines aren’t shown here.

arch/x86/kvm/trace.h+7−4

This diff is large: its 35 lines aren’t shown here.

arch/x86/kvm/vmx.c+581−274

This diff is large: its 1622 lines aren’t shown here.

arch/x86/kvm/x86.c+184−111

This diff is large: its 647 lines aren’t shown here.

arch/x86/kvm/x86.h+51−3

This diff is large: its 85 lines aren’t shown here.

arch/x86/lguest/Kconfig+0−14

This diff is large: its 15 lines aren’t shown here.

arch/x86/lguest/Makefile+0−2

This diff is large: its 3 lines aren’t shown here.

arch/x86/lguest/boot.c+0−1558

This diff is large: its 1559 lines aren’t shown here.

arch/x86/lguest/head_32.S+0−192

This diff is large: its 193 lines aren’t shown here.

arch/x86/lib/cmdline.c+105−0

This diff is large: its 113 lines aren’t shown here.

arch/x86/math-emu/div_Xsig.S+1−0

This diff is large: its 5 lines aren’t shown here.

arch/x86/math-emu/div_small.S+1−1

This diff is large: its 6 lines aren’t shown here.

arch/x86/math-emu/fpu_entry.c+5−6

This diff is large: its 25 lines aren’t shown here.

arch/x86/math-emu/fpu_system.h+37−11

This diff is large: its 55 lines aren’t shown here.

arch/x86/math-emu/get_address.c+9−8

This diff is large: its 36 lines aren’t shown here.

arch/x86/math-emu/mul_Xsig.S+3−1

This diff is large: its 22 lines aren’t shown here.

arch/x86/math-emu/polynom_Xsig.S+1−0

This diff is large: its 5 lines aren’t shown here.

arch/x86/math-emu/reg_norm.S+2−0

This diff is large: its 13 lines aren’t shown here.

arch/x86/math-emu/reg_round.S+2−0

This diff is large: its 6 lines aren’t shown here.

arch/x86/math-emu/reg_u_add.S+1−0

This diff is large: its 5 lines aren’t shown here.

arch/x86/math-emu/reg_u_div.S+2−0

This diff is large: its 6 lines aren’t shown here.

arch/x86/math-emu/reg_u_mul.S+1−0

This diff is large: its 5 lines aren’t shown here.

arch/x86/math-emu/reg_u_sub.S+1−0

This diff is large: its 5 lines aren’t shown here.

arch/x86/math-emu/round_Xsig.S+2−2

This diff is large: its 15 lines aren’t shown here.

arch/x86/math-emu/shr_Xsig.S+1−0

This diff is large: its 5 lines aren’t shown here.

arch/x86/math-emu/wm_shrx.S+2−0

This diff is large: its 13 lines aren’t shown here.

arch/x86/math-emu/wm_sqrt.S+1−0

This diff is large: its 5 lines aren’t shown here.

arch/x86/mm/Makefile+2−0

This diff is large: its 6 lines aren’t shown here.

arch/x86/mm/dump_pagetables.c+56−37

This diff is large: its 194 lines aren’t shown here.

arch/x86/mm/extable.c+43−1

This diff is large: its 58 lines aren’t shown here.

arch/x86/mm/fault.c+29−49

This diff is large: its 177 lines aren’t shown here.

arch/x86/mm/hugetlbpage.c+23−4

This diff is large: its 71 lines aren’t shown here.

arch/x86/mm/ident_map.c+8−4

This diff is large: its 46 lines aren’t shown here.

arch/x86/mm/init.c+38−1

This diff is large: its 74 lines aren’t shown here.

arch/x86/mm/init_64.c+15−7

This diff is large: its 46 lines aren’t shown here.

arch/x86/mm/ioremap.c+269−18

This diff is large: its 335 lines aren’t shown here.

arch/x86/mm/kasan_init_64.c+3−3

This diff is large: its 28 lines aren’t shown here.

arch/x86/mm/mem_encrypt.c+593−0

This diff is large: its 594 lines aren’t shown here.

arch/x86/mm/mem_encrypt_boot.S+149−0

This diff is large: its 150 lines aren’t shown here.

arch/x86/mm/mmap.c+9−10

This diff is large: its 62 lines aren’t shown here.

arch/x86/mm/mpx.c+32−1

This diff is large: its 47 lines aren’t shown here.

arch/x86/mm/numa_emulation.c+32−23

This diff is large: its 111 lines aren’t shown here.

arch/x86/mm/pageattr.c+67−0

This diff is large: its 81 lines aren’t shown here.

arch/x86/mm/pat.c+6−3

This diff is large: its 37 lines aren’t shown here.

arch/x86/mm/pgtable.c+5−10

This diff is large: its 56 lines aren’t shown here.

arch/x86/mm/tlb.c+304−78

This diff is large: its 487 lines aren’t shown here.

arch/x86/net/bpf_jit_comp.c+30−5

This diff is large: its 107 lines aren’t shown here.

arch/x86/pci/common.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/x86/pci/fixup.c+17−0

This diff is large: its 21 lines aren’t shown here.

arch/x86/pci/intel_mid_pci.c+10−2

This diff is large: its 38 lines aren’t shown here.

arch/x86/pci/irq.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/platform/efi/efi.c+0−19

This diff is large: its 26 lines aren’t shown here.

arch/x86/platform/efi/efi_64.c+11−4

This diff is large: its 43 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-mid/device_libs/platform_mrfld_wdt.c+3−3

This diff is large: its 29 lines aren’t shown here.

arch/x86/platform/intel-mid/device_libs/platform_tc35876x.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/platform/intel-mid/intel-mid.c+1−1

This diff is large: its 16 lines aren’t shown here.

arch/x86/platform/intel-mid/pwr.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/x86/platform/uv/tlb_uv.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/x86/power/cpu.c+2−1

This diff is large: its 17 lines aren’t shown here.

arch/x86/power/hibernate_64.c+20−1

This diff is large: its 28 lines aren’t shown here.

arch/x86/realmode/init.c+12−0

This diff is large: its 33 lines aren’t shown here.

arch/x86/realmode/rm/trampoline_64.S+24−0

This diff is large: its 45 lines aren’t shown here.

arch/x86/um/os-Linux/registers.c+12−6

This diff is large: its 52 lines aren’t shown here.

arch/x86/um/os-Linux/tls.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/um/user-offsets.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/x86/xen/Kconfig+5−0

This diff is large: its 17 lines aren’t shown here.

arch/x86/xen/enlighten_hvm.c+37−22

This diff is large: its 96 lines aren’t shown here.

arch/x86/xen/enlighten_pv.c+79−99

This diff is large: its 249 lines aren’t shown here.

arch/x86/xen/irq.c+0−3

This diff is large: its 10 lines aren’t shown here.

arch/x86/xen/mmu.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/xen/mmu_pv.c+3−26

This diff is large: its 69 lines aren’t shown here.

arch/x86/xen/p2m.c+1−24

This diff is large: its 81 lines aren’t shown here.

arch/x86/xen/setup.c+1−4

This diff is large: its 19 lines aren’t shown here.

arch/x86/xen/xen-asm.S+6−20

This diff is large: its 79 lines aren’t shown here.

arch/x86/xen/xen-asm.h+0−12

This diff is large: its 13 lines aren’t shown here.

arch/x86/xen/xen-asm_32.S+5−22

This diff is large: its 42 lines aren’t shown here.

arch/x86/xen/xen-asm_64.S+68−34

This diff is large: its 152 lines aren’t shown here.

arch/x86/xen/xen-head.S+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/xen/xen-ops.h+4−12

This diff is large: its 28 lines aren’t shown here.

arch/xtensa/include/asm/Kbuild+2−0

This diff is large: its 15 lines aren’t shown here.

arch/xtensa/include/asm/device.h+0−15

This diff is large: its 16 lines aren’t shown here.

arch/xtensa/include/asm/futex.h+5−22

This diff is large: its 44 lines aren’t shown here.

arch/xtensa/include/asm/param.h+0−18

This diff is large: its 19 lines aren’t shown here.

arch/xtensa/include/asm/processor.h+0−5

This diff is large: its 12 lines aren’t shown here.

arch/xtensa/include/asm/spinlock.h+0−5

This diff is large: its 12 lines aren’t shown here.

arch/xtensa/include/uapi/asm/mman.h+3−11

This diff is large: its 24 lines aren’t shown here.

arch/xtensa/include/uapi/asm/socket.h+2−0

This diff is large: its 7 lines aren’t shown here.

arch/xtensa/kernel/setup.c+3−3

This diff is large: its 20 lines aren’t shown here.

arch/xtensa/kernel/xtensa_ksyms.c+0−2

This diff is large: its 14 lines aren’t shown here.

arch/xtensa/mm/cache.c+8−8

This diff is large: its 66 lines aren’t shown here.

block/Kconfig+5−0

This diff is large: its 10 lines aren’t shown here.

block/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

block/bfq-cgroup.c+9−9

This diff is large: its 78 lines aren’t shown here.

block/bfq-iosched.c+142−101

This diff is large: its 488 lines aren’t shown here.

block/bfq-iosched.h+33−18

This diff is large: its 109 lines aren’t shown here.

block/bfq-wf2q.c+137−100

This diff is large: its 450 lines aren’t shown here.

block/bio-integrity.c+15−15

This diff is large: its 101 lines aren’t shown here.

block/bio.c+18−14

This diff is large: its 91 lines aren’t shown here.

block/blk-cgroup.c+5−3

This diff is large: its 22 lines aren’t shown here.

block/blk-core.c+87−73

This diff is large: its 330 lines aren’t shown here.

block/blk-flush.c+13−13

This diff is large: its 96 lines aren’t shown here.

block/blk-lib.c+6−6

This diff is large: its 48 lines aren’t shown here.

block/blk-merge.c+3−3

This diff is large: its 20 lines aren’t shown here.

block/blk-mq-debugfs.c+4−3

This diff is large: its 35 lines aren’t shown here.

block/blk-mq-pci.c+7−1

This diff is large: its 20 lines aren’t shown here.

block/blk-mq-rdma.c+52−0

This diff is large: its 53 lines aren’t shown here.

block/blk-mq-tag.c+17−6

This diff is large: its 56 lines aren’t shown here.

block/blk-mq.c+75−11

This diff is large: its 177 lines aren’t shown here.

block/blk-mq.h+4−0

This diff is large: its 16 lines aren’t shown here.

block/blk-settings.c+1−0

This diff is large: its 8 lines aren’t shown here.

block/blk-softirq.c+1−1

This diff is large: its 9 lines aren’t shown here.

block/blk-sysfs.c+2−0

This diff is large: its 10 lines aren’t shown here.

block/blk-tag.c+0−1

This diff is large: its 8 lines aren’t shown here.

block/blk-throttle.c+17−14

This diff is large: its 82 lines aren’t shown here.

block/blk-zoned.c+2−2

This diff is large: its 18 lines aren’t shown here.

block/blk.h+2−1

This diff is large: its 17 lines aren’t shown here.

block/bsg-lib.c+48−33

This diff is large: its 181 lines aren’t shown here.

block/bsg.c+0−7

This diff is large: its 16 lines aren’t shown here.

block/cfq-iosched.c+44−68

This diff is large: its 286 lines aren’t shown here.

block/compat_ioctl.c+1−1

This diff is large: its 9 lines aren’t shown here.

block/deadline-iosched.c+4−5

This diff is large: its 34 lines aren’t shown here.

block/elevator.c+4−0

This diff is large: its 11 lines aren’t shown here.

block/genhd.c+84−25

This diff is large: its 207 lines aren’t shown here.

block/mq-deadline.c+5−5

This diff is large: its 42 lines aren’t shown here.

block/opal_proto.h+1−0

This diff is large: its 8 lines aren’t shown here.

block/partition-generic.c+17−6

This diff is large: its 76 lines aren’t shown here.

block/sed-opal.c+32−0

This diff is large: its 74 lines aren’t shown here.

crypto/Kconfig+2−0

This diff is large: its 9 lines aren’t shown here.

crypto/af_alg.c+691−0

This diff is large: its 705 lines aren’t shown here.

crypto/ahash.c+29−0

This diff is large: its 36 lines aren’t shown here.

crypto/algapi.c+15−10

This diff is large: its 64 lines aren’t shown here.

crypto/algif_aead.c+250−614

This diff is large: its 1027 lines aren’t shown here.

crypto/algif_skcipher.c+132−697

This diff is large: its 953 lines aren’t shown here.

crypto/chacha20_generic.c+7−2

This diff is large: its 17 lines aren’t shown here.

crypto/ctr.c+1−2

This diff is large: its 10 lines aren’t shown here.

crypto/drbg.c+4−4

This diff is large: its 15 lines aren’t shown here.

crypto/ecdh.c+33−18

This diff is large: its 84 lines aren’t shown here.

crypto/pcbc.c+4−8

This diff is large: its 40 lines aren’t shown here.

crypto/rng.c+4−2

This diff is large: its 17 lines aren’t shown here.

crypto/scompress.c+22−33

This diff is large: its 105 lines aren’t shown here.

crypto/serpent_generic.c+41−36

This diff is large: its 91 lines aren’t shown here.

crypto/tcrypt.c+4−4

This diff is large: its 24 lines aren’t shown here.

crypto/testmgr.h+7−0

This diff is large: its 21 lines aren’t shown here.

drivers/Makefile+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/acpi/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/acpi/acpi_lpat.c+3−3

This diff is large: its 23 lines aren’t shown here.

drivers/acpi/acpi_lpss.c+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/acpi/acpi_processor.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpi_video.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpi_watchdog.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/acpi/acpica/acapps.h+2−0

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/acdispat.h+13−0

This diff is large: its 27 lines aren’t shown here.

drivers/acpi/acpica/aclocal.h+4−3

This diff is large: its 35 lines aren’t shown here.

drivers/acpi/acpica/acobject.h+11−4

This diff is large: its 47 lines aren’t shown here.

drivers/acpi/acpica/actables.h+4−1

This diff is large: its 19 lines aren’t shown here.

drivers/acpi/acpica/acutils.h+8−1

This diff is large: its 23 lines aren’t shown here.

drivers/acpi/acpica/dbdisply.c+32−5

This diff is large: its 58 lines aren’t shown here.

drivers/acpi/acpica/dsfield.c+2−0

This diff is large: its 16 lines aren’t shown here.

drivers/acpi/acpica/dsobject.c+67−331

This diff is large: its 468 lines aren’t shown here.

drivers/acpi/acpica/dsopcode.c+9−0

This diff is large: its 16 lines aren’t shown here.

drivers/acpi/acpica/dspkginit.c+496−0

This diff is large: its 497 lines aren’t shown here.

drivers/acpi/acpica/evgpeblk.c+21−9

This diff is large: its 62 lines aren’t shown here.

drivers/acpi/acpica/evxfgpe.c+8−0

This diff is large: its 15 lines aren’t shown here.

drivers/acpi/acpica/excreate.c+17−45

This diff is large: its 86 lines aren’t shown here.

drivers/acpi/acpica/exdump.c+26−8

This diff is large: its 85 lines aren’t shown here.

drivers/acpi/acpica/exmisc.c+9−0

This diff is large: its 37 lines aren’t shown here.

drivers/acpi/acpica/exoparg2.c+3−0

This diff is large: its 10 lines aren’t shown here.

drivers/acpi/acpica/hwregs.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/hwxfsleep.c+6−3

This diff is large: its 20 lines aren’t shown here.

drivers/acpi/acpica/nsaccess.c+22−6

This diff is large: its 50 lines aren’t shown here.

drivers/acpi/acpica/nsarguments.c+17−4

This diff is large: its 49 lines aren’t shown here.

drivers/acpi/acpica/nsinit.c+14−0

This diff is large: its 21 lines aren’t shown here.

drivers/acpi/acpica/nsnames.c+8−1

This diff is large: its 16 lines aren’t shown here.

drivers/acpi/acpica/nsprepkg.c+2−0

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/nsxfeval.c+7−3

This diff is large: its 17 lines aren’t shown here.

drivers/acpi/acpica/psloop.c+14−0

This diff is large: its 35 lines aren’t shown here.

drivers/acpi/acpica/psobject.c+26−0

This diff is large: its 33 lines aren’t shown here.

drivers/acpi/acpica/rsxface.c+4−3

This diff is large: its 24 lines aren’t shown here.

drivers/acpi/acpica/tbdata.c+205−25

This diff is large: its 339 lines aren’t shown here.

drivers/acpi/acpica/tbinstal.c+22−139

This diff is large: its 206 lines aren’t shown here.

drivers/acpi/acpica/tbxface.c+34−5

This diff is large: its 74 lines aren’t shown here.

drivers/acpi/acpica/tbxfload.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/uthex.c+3−1

This diff is large: its 12 lines aren’t shown here.

drivers/acpi/acpica/utmath.c+213−9

This diff is large: its 250 lines aren’t shown here.

drivers/acpi/acpica/utmisc.c+7−3

This diff is large: its 40 lines aren’t shown here.

drivers/acpi/acpica/utobject.c+5−0

This diff is large: its 12 lines aren’t shown here.

drivers/acpi/acpica/utprint.c+4−4

This diff is large: its 36 lines aren’t shown here.

drivers/acpi/acpica/utresrc.c+7−0

This diff is large: its 14 lines aren’t shown here.

drivers/acpi/acpica/utstate.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/utstrtoul64.c+4−5

This diff is large: its 23 lines aren’t shown here.

drivers/acpi/acpica/uttrack.c+7−2

This diff is large: its 37 lines aren’t shown here.

drivers/acpi/apei/apei-internal.h+0−5

This diff is large: its 12 lines aren’t shown here.

drivers/acpi/apei/einj.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/apei/ghes.c+8−2

This diff is large: its 26 lines aren’t shown here.

drivers/acpi/apei/hest.c+7−6

This diff is large: its 39 lines aren’t shown here.

drivers/acpi/arm64/iort.c+142−55

This diff is large: its 304 lines aren’t shown here.

drivers/acpi/battery.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/blacklist.c+16−71

This diff is large: its 121 lines aren’t shown here.

drivers/acpi/bus.c+2−5

This diff is large: its 28 lines aren’t shown here.

drivers/acpi/device_pm.c+123−52

This diff is large: its 269 lines aren’t shown here.

drivers/acpi/dock.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/ec.c+34−31

This diff is large: its 166 lines aren’t shown here.

drivers/acpi/internal.h+6−1

This diff is large: its 21 lines aren’t shown here.

drivers/acpi/nfit/Kconfig+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/nfit/core.c+45−7

This diff is large: its 105 lines aren’t shown here.

drivers/acpi/osi.c+9−30

This diff is large: its 82 lines aren’t shown here.

drivers/acpi/pci_root.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/acpi/pci_slot.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/pmic/intel_pmic_xpower.c+18−3

This diff is large: its 37 lines aren’t shown here.

drivers/acpi/processor_driver.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/processor_idle.c+16−9

This diff is large: its 94 lines aren’t shown here.

drivers/acpi/processor_pdc.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/property.c+158−87

This diff is large: its 511 lines aren’t shown here.

drivers/acpi/resource.c+63−19

This diff is large: its 101 lines aren’t shown here.

drivers/acpi/sbs.c+3−24

This diff is large: its 68 lines aren’t shown here.

drivers/acpi/scan.c+94−14

This diff is large: its 163 lines aren’t shown here.

drivers/acpi/sleep.c+190−16

This diff is large: its 302 lines aren’t shown here.

drivers/acpi/spcr.c+60−12

This diff is large: its 116 lines aren’t shown here.

drivers/acpi/sysfs.c+88−3

This diff is large: its 154 lines aren’t shown here.

drivers/acpi/tables.c+2−2

This diff is large: its 13 lines aren’t shown here.

drivers/acpi/thermal.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/utils.c+36−0

This diff is large: its 40 lines aren’t shown here.

drivers/acpi/video_detect.c+14−0

This diff is large: its 28 lines aren’t shown here.

drivers/acpi/x86/apple.c+141−0

This diff is large: its 142 lines aren’t shown here.

drivers/android/Kconfig+12−2

This diff is large: its 35 lines aren’t shown here.

drivers/android/Makefile+2−1

This diff is large: its 6 lines aren’t shown here.

drivers/android/binder.c+2557−1313

This diff is large: its 5589 lines aren’t shown here.

drivers/android/binder_alloc.c+1009−0

This diff is large: its 1010 lines aren’t shown here.

drivers/android/binder_alloc.h+187−0

This diff is large: its 188 lines aren’t shown here.

drivers/android/binder_alloc_selftest.c+310−0

This diff is large: its 311 lines aren’t shown here.

drivers/android/binder_trace.h+77−19

This diff is large: its 168 lines aren’t shown here.

drivers/ata/Kconfig+10−0

This diff is large: its 17 lines aren’t shown here.

drivers/ata/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/ata/ahci.c+8−1

This diff is large: its 16 lines aren’t shown here.

drivers/ata/ahci_da850.c+6−2

This diff is large: its 19 lines aren’t shown here.

drivers/ata/ahci_mtk.c+196−0

This diff is large: its 197 lines aren’t shown here.

drivers/ata/ahci_platform.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/ata/libahci_platform.c+34−0

This diff is large: its 41 lines aren’t shown here.

drivers/ata/libata-core.c+3−0

This diff is large: its 10 lines aren’t shown here.

drivers/ata/libata-eh.c+3−5

This diff is large: its 29 lines aren’t shown here.

drivers/ata/libata-zpodd.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/ata/pata_amd.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/ata/pata_cs5536.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/ata/pata_octeon_cf.c+4−6

This diff is large: its 32 lines aren’t shown here.

drivers/ata/sata_gemini.c+34−33

This diff is large: its 133 lines aren’t shown here.

drivers/ata/sata_svw.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/atm/adummy.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/atm/ambassador.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/atm/atmtcp.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/atm/eni.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/atm/firestream.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/atm/fore200e.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/atm/he.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/atm/horizon.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/atm/idt77252.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/atm/iphase.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/atm/lanai.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/atm/nicstar.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/atm/solos-pci.c+4−4

This diff is large: its 36 lines aren’t shown here.

drivers/atm/zatm.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/auxdisplay/panel.c+3−3

This diff is large: its 25 lines aren’t shown here.

drivers/base/Kconfig+1−4

This diff is large: its 15 lines aren’t shown here.

drivers/base/arch_topology.c+43−43

This diff is large: its 157 lines aren’t shown here.

drivers/base/base.h+0−5

This diff is large: its 12 lines aren’t shown here.

drivers/base/bus.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/base/core.c+137−4

This diff is large: its 162 lines aren’t shown here.

drivers/base/cpu.c+2−2

This diff is large: its 12 lines aren’t shown here.

drivers/base/dd.c+31−1

This diff is large: its 81 lines aren’t shown here.

drivers/base/dma-coherent.c+39−49

This diff is large: its 167 lines aren’t shown here.

drivers/base/dma-mapping.c+2−5

This diff is large: its 16 lines aren’t shown here.

drivers/base/firmware_class.c+44−117

This diff is large: its 312 lines aren’t shown here.

drivers/base/memory.c+20−10

This diff is large: its 52 lines aren’t shown here.

drivers/base/node.c+15−7

This diff is large: its 38 lines aren’t shown here.

drivers/base/power/domain.c+234−17

This diff is large: its 337 lines aren’t shown here.

drivers/base/power/main.c+70−42

This diff is large: its 212 lines aren’t shown here.

drivers/base/power/opp/of.c+23−14

This diff is large: its 77 lines aren’t shown here.

drivers/base/power/qos.c+5−5

This diff is large: its 25 lines aren’t shown here.

drivers/base/power/wakeup.c+6−4

This diff is large: its 30 lines aren’t shown here.

drivers/base/property.c+85−46

This diff is large: its 368 lines aren’t shown here.

drivers/base/topology.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/bcma/Kconfig+2−7

This diff is large: its 20 lines aren’t shown here.

drivers/bcma/driver_gpio.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/block/DAC960.c+8−4

This diff is large: its 26 lines aren’t shown here.

drivers/block/Kconfig+2−28

This diff is large: its 51 lines aren’t shown here.

drivers/block/Makefile+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/block/brd.c+7−4

This diff is large: its 30 lines aren’t shown here.

drivers/block/cciss.c+0−5415

This diff is large: its 5416 lines aren’t shown here.

drivers/block/cciss.h+0−433

This diff is large: its 434 lines aren’t shown here.

drivers/block/cciss_cmd.h+0−269

This diff is large: its 270 lines aren’t shown here.

drivers/block/cciss_scsi.c+0−1653

This diff is large: its 1654 lines aren’t shown here.

drivers/block/cciss_scsi.h+0−79

This diff is large: its 80 lines aren’t shown here.

drivers/block/drbd/drbd_actlog.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/block/drbd/drbd_bitmap.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/block/drbd/drbd_int.h+14−17

This diff is large: its 76 lines aren’t shown here.

drivers/block/drbd/drbd_main.c+62−51

This diff is large: its 217 lines aren’t shown here.

drivers/block/drbd/drbd_nl.c+24−36

This diff is large: its 155 lines aren’t shown here.

drivers/block/drbd/drbd_proc.c+5−5

This diff is large: its 43 lines aren’t shown here.

drivers/block/drbd/drbd_receiver.c+52−8

This diff is large: its 132 lines aren’t shown here.

drivers/block/drbd/drbd_req.c+77−9

This diff is large: its 160 lines aren’t shown here.

drivers/block/drbd/drbd_req.h+6−0

This diff is large: its 20 lines aren’t shown here.

drivers/block/drbd/drbd_state.c+47−1

This diff is large: its 81 lines aren’t shown here.

drivers/block/drbd/drbd_state.h+8−0

This diff is large: its 22 lines aren’t shown here.

drivers/block/drbd/drbd_worker.c+38−10

This diff is large: its 132 lines aren’t shown here.

drivers/block/floppy.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/block/loop.c+118−131

This diff is large: its 457 lines aren’t shown here.

drivers/block/loop.h+5−4

This diff is large: its 25 lines aren’t shown here.

drivers/block/nbd.c+12−3

This diff is large: its 40 lines aren’t shown here.

drivers/block/null_blk.c+1215−96

This diff is large: its 1719 lines aren’t shown here.

drivers/block/pktcdvd.c+5−6

This diff is large: its 46 lines aren’t shown here.

drivers/block/ps3vram.c+6−4

This diff is large: its 25 lines aren’t shown here.

drivers/block/rbd.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/block/rsxx/dev.c+3−3

This diff is large: its 20 lines aren’t shown here.

drivers/block/skd_main.c+808−2402

This diff is large: its 4841 lines aren’t shown here.

drivers/block/skd_s1120.h+16−22

This diff is large: its 95 lines aren’t shown here.

drivers/block/sunvdc.c+61−0

This diff is large: its 82 lines aren’t shown here.

drivers/block/virtio_blk.c+11−7

This diff is large: its 43 lines aren’t shown here.

drivers/block/xen-blkback/blkback.c+5−4

This diff is large: its 38 lines aren’t shown here.

drivers/block/xen-blkback/xenbus.c+10−3

This diff is large: its 41 lines aren’t shown here.

drivers/block/xen-blkfront.c+4−4

This diff is large: its 22 lines aren’t shown here.

drivers/block/zram/Kconfig+12−0

This diff is large: its 16 lines aren’t shown here.

drivers/block/zram/zram_drv.c+466−96

This diff is large: its 795 lines aren’t shown here.

drivers/block/zram/zram_drv.h+10−1

This diff is large: its 26 lines aren’t shown here.

drivers/bluetooth/Kconfig+2−0

This diff is large: its 16 lines aren’t shown here.

drivers/bluetooth/ath3k.c+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/bluetooth/bluecard_cs.c+27−31

This diff is large: its 107 lines aren’t shown here.

drivers/bluetooth/bt3c_cs.c+5−3

This diff is large: its 20 lines aren’t shown here.

drivers/bluetooth/btbcm.c+39−30

This diff is large: its 90 lines aren’t shown here.

drivers/bluetooth/btmrvl_sdio.c+4−2

This diff is large: its 20 lines aren’t shown here.

drivers/bluetooth/btqca.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/bluetooth/btrtl.c+2−0

This diff is large: its 9 lines aren’t shown here.

drivers/bluetooth/btsdio.c+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/bluetooth/btuart_cs.c+5−3

This diff is large: its 20 lines aren’t shown here.

drivers/bluetooth/btusb.c+60−8

This diff is large: its 175 lines aren’t shown here.

drivers/bluetooth/btwilink.c+4−4

This diff is large: its 29 lines aren’t shown here.

drivers/bluetooth/hci_bcm.c+115−18

This diff is large: its 275 lines aren’t shown here.

drivers/bluetooth/hci_h4.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/bluetooth/hci_ldisc.c+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/bluetooth/hci_ll.c+3−8

This diff is large: its 26 lines aren’t shown here.

drivers/bluetooth/hci_nokia.c+1−9

This diff is large: its 18 lines aren’t shown here.

drivers/bluetooth/hci_serdev.c+13−0

This diff is large: its 17 lines aren’t shown here.

drivers/bluetooth/hci_uart.h+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/bus/Kconfig+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/bus/arm-cci.c+6−6

This diff is large: its 30 lines aren’t shown here.

drivers/bus/imx-weim.c+4−4

This diff is large: its 22 lines aren’t shown here.

drivers/bus/omap-ocp2scp.c+7−2

This diff is large: its 23 lines aren’t shown here.

drivers/bus/sunxi-rsb.c+11−11

This diff is large: its 57 lines aren’t shown here.

drivers/char/Kconfig+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/char/agp/ali-agp.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/char/agp/amd-k7-agp.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/char/agp/amd64-agp.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/char/agp/ati-agp.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/char/agp/efficeon-agp.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/char/agp/intel-agp.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/char/agp/nvidia-agp.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/char/agp/sis-agp.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/char/agp/uninorth-agp.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/char/applicom.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/char/hw_random/Kconfig+16−4

This diff is large: its 34 lines aren’t shown here.

drivers/char/hw_random/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/char/hw_random/core.c+36−6

This diff is large: its 103 lines aren’t shown here.

drivers/char/hw_random/imx-rngc.c+331−0

This diff is large: its 332 lines aren’t shown here.

drivers/char/ipmi/ipmi_si_intf.c+7−5

This diff is large: its 38 lines aren’t shown here.

drivers/char/mwave/smapi.c+25−23

This diff is large: its 115 lines aren’t shown here.

drivers/char/ppdev.c+0−3

This diff is large: its 10 lines aren’t shown here.

drivers/char/random.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/char/sonypi.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/char/tlclk.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/char/tpm/tpm-chip.c+2−9

This diff is large: its 25 lines aren’t shown here.

drivers/char/tpm/tpm-interface.c+5−5

This diff is large: its 45 lines aren’t shown here.

drivers/char/tpm/tpm.h+8−1

This diff is large: its 23 lines aren’t shown here.

drivers/char/tpm/tpm2-cmd.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/char/tpm/tpm_crb.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/char/tpm/tpm_ibmvtpm.c+61−37

This diff is large: its 181 lines aren’t shown here.

drivers/char/tpm/tpm_infineon.c+3−3

This diff is large: its 27 lines aren’t shown here.

drivers/char/tpm/tpm_tis_core.c+4−4

This diff is large: its 36 lines aren’t shown here.

drivers/char/virtio_console.c+2−5

This diff is large: its 28 lines aren’t shown here.

drivers/char/xilinx_hwicap/xilinx_hwicap.c+21−18

This diff is large: its 106 lines aren’t shown here.

drivers/char/xilinx_hwicap/xilinx_hwicap.h+9−4

This diff is large: its 41 lines aren’t shown here.

drivers/clk/Kconfig+12−5

This diff is large: its 45 lines aren’t shown here.

drivers/clk/Makefile+2−1

This diff is large: its 18 lines aren’t shown here.

drivers/clk/at91/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/clk/at91/clk-audio-pll.c+536−0

This diff is large: its 537 lines aren’t shown here.

drivers/clk/at91/clk-generated.c+82−19

This diff is large: its 166 lines aren’t shown here.

drivers/clk/axs10x/Makefile+1−0

This diff is large: its 3 lines aren’t shown here.

drivers/clk/axs10x/pll_clock.c+346−0

This diff is large: its 347 lines aren’t shown here.

drivers/clk/berlin/bg2.c+1−2

This diff is large: its 10 lines aren’t shown here.

drivers/clk/berlin/bg2q.c+3−4

This diff is large: its 27 lines aren’t shown here.

drivers/clk/clk-asm9260.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/clk/clk-conf.c+8−8

This diff is large: its 44 lines aren’t shown here.

drivers/clk/clk-cs2000-cp.c+10−4

This diff is large: its 29 lines aren’t shown here.

drivers/clk/clk-divider.c+4−2

This diff is large: its 25 lines aren’t shown here.

drivers/clk/clk-fractional-divider.c+20−8

This diff is large: its 45 lines aren’t shown here.

drivers/clk/clk-gate.c+2−1

This diff is large: its 17 lines aren’t shown here.

drivers/clk/clk-gemini.c+0−7

This diff is large: its 28 lines aren’t shown here.

drivers/clk/clk-hsdk-pll.c+431−0

This diff is large: its 432 lines aren’t shown here.

drivers/clk/clk-mb86s7x.c+0−390

This diff is large: its 391 lines aren’t shown here.

drivers/clk/clk-moxart.c+8−8

This diff is large: its 68 lines aren’t shown here.

drivers/clk/clk-qoriq.c+22−4

This diff is large: its 75 lines aren’t shown here.

drivers/clk/clk-si5351.c+5−7

This diff is large: its 26 lines aren’t shown here.

drivers/clk/clk-stm32f4.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/clk/clk-stm32h7.c+1410−0

This diff is large: its 1411 lines aren’t shown here.

drivers/clk/clk-versaclock5.c+159−13

This diff is large: its 314 lines aren’t shown here.

drivers/clk/clk-xgene.c+6−9

This diff is large: its 53 lines aren’t shown here.

drivers/clk/clk.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/clk/clkdev.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/clk/hisilicon/clk-hi6220.c+3−3

This diff is large: its 13 lines aren’t shown here.

drivers/clk/imx/clk-imx51-imx53.c+4−4

This diff is large: its 15 lines aren’t shown here.

drivers/clk/imx/clk-imx6sl.c+3−3

This diff is large: its 26 lines aren’t shown here.

drivers/clk/imx/clk-imx6sx.c+3−3

This diff is large: its 26 lines aren’t shown here.

drivers/clk/imx/clk-imx6ul.c+3−3

This diff is large: its 26 lines aren’t shown here.

drivers/clk/imx/clk-imx7d.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/clk/imx/clk-vf610.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/clk/mediatek/clk-cpumux.c+1−5

This diff is large: its 27 lines aren’t shown here.

drivers/clk/mediatek/clk-mtk.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/clk/mediatek/reset.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/clk/meson/Kconfig+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/clk/meson/Makefile+1−1

This diff is large: its 6 lines aren’t shown here.

drivers/clk/meson/gxbb-aoclk-32k.c+194−0

This diff is large: its 195 lines aren’t shown here.

drivers/clk/meson/gxbb-aoclk-regmap.c+46−0

This diff is large: its 47 lines aren’t shown here.

drivers/clk/meson/gxbb-aoclk.c+42−23

This diff is large: its 153 lines aren’t shown here.

drivers/clk/meson/gxbb-aoclk.h+42−0

This diff is large: its 43 lines aren’t shown here.

drivers/clk/meson/gxbb.c+185−4

This diff is large: its 262 lines aren’t shown here.

drivers/clk/meson/gxbb.h+14−111

This diff is large: its 145 lines aren’t shown here.

drivers/clk/meson/meson8b.c+148−12

This diff is large: its 218 lines aren’t shown here.

drivers/clk/meson/meson8b.h+12−100

This diff is large: its 130 lines aren’t shown here.

drivers/clk/mmp/clk.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/clk/nxp/clk-lpc32xx.c+6−6

This diff is large: its 40 lines aren’t shown here.

drivers/clk/qcom/clk-smd-rpm.c+0−2

This diff is large: its 9 lines aren’t shown here.

drivers/clk/qcom/gcc-msm8916.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/clk/qcom/gcc-msm8996.c+28−0

This diff is large: its 42 lines aren’t shown here.

drivers/clk/renesas/Kconfig+29−19

This diff is large: its 131 lines aren’t shown here.

drivers/clk/renesas/Makefile+2−0

This diff is large: its 15 lines aren’t shown here.

drivers/clk/renesas/clk-div6.c+3−0

This diff is large: its 10 lines aren’t shown here.

drivers/clk/renesas/clk-mstp.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/clk/renesas/clk-rcar-gen2.c+1−2

This diff is large: its 10 lines aren’t shown here.

drivers/clk/renesas/r8a7792-cpg-mssr.c+7−0

This diff is large: its 14 lines aren’t shown here.

drivers/clk/renesas/r8a7795-cpg-mssr.c+17−17

This diff is large: its 41 lines aren’t shown here.

drivers/clk/renesas/r8a7796-cpg-mssr.c+18−17

This diff is large: its 49 lines aren’t shown here.

drivers/clk/renesas/r8a77995-cpg-mssr.c+236−0

This diff is large: its 237 lines aren’t shown here.

drivers/clk/renesas/rcar-gen3-cpg.c+41−28

This diff is large: its 142 lines aren’t shown here.

drivers/clk/renesas/rcar-gen3-cpg.h+12−3

This diff is large: its 28 lines aren’t shown here.

drivers/clk/renesas/rcar-usb2-clock-sel.c+188−0

This diff is large: its 189 lines aren’t shown here.

drivers/clk/renesas/renesas-cpg-mssr.c+6−0

This diff is large: its 13 lines aren’t shown here.

drivers/clk/renesas/renesas-cpg-mssr.h+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/clk/rockchip/clk-rk3128.c+55−14

This diff is large: its 136 lines aren’t shown here.

drivers/clk/rockchip/clk-rk3228.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/clk/rockchip/clk-rv1108.c+381−81

This diff is large: its 684 lines aren’t shown here.

drivers/clk/rockchip/clk.c+36−0

This diff is large: its 57 lines aren’t shown here.

drivers/clk/samsung/clk-exynos-audss.c+4−4

This diff is large: its 24 lines aren’t shown here.

drivers/clk/samsung/clk-exynos5420.c+15−8

This diff is large: its 72 lines aren’t shown here.

drivers/clk/sunxi-ng/Kconfig+18−0

This diff is large: its 32 lines aren’t shown here.

drivers/clk/sunxi-ng/Makefile+3−0

This diff is large: its 23 lines aren’t shown here.

drivers/clk/sunxi-ng/ccu-sun4i-a10.c+1456−0

This diff is large: its 1457 lines aren’t shown here.

drivers/clk/sunxi-ng/ccu-sun4i-a10.h+61−0

This diff is large: its 62 lines aren’t shown here.

drivers/clk/sunxi-ng/ccu-sun5i.c+1−2

This diff is large: its 10 lines aren’t shown here.

drivers/clk/sunxi-ng/ccu-sun6i-a31.c+1−2

This diff is large: its 10 lines aren’t shown here.

drivers/clk/sunxi-ng/ccu-sun8i-a23.c+1−2

This diff is large: its 10 lines aren’t shown here.

drivers/clk/sunxi-ng/ccu-sun8i-a33.c+1−2

This diff is large: its 10 lines aren’t shown here.

drivers/clk/sunxi-ng/ccu-sun8i-a83t.c+2−8

This diff is large: its 17 lines aren’t shown here.

drivers/clk/sunxi-ng/ccu-sun8i-h3.c+13−3

This diff is large: its 44 lines aren’t shown here.

drivers/clk/sunxi-ng/ccu-sun8i-r.c+1−2

This diff is large: its 10 lines aren’t shown here.

drivers/clk/sunxi-ng/ccu-sun8i-r.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/clk/sunxi-ng/ccu-sun8i-r40.c+1290−0

This diff is large: its 1291 lines aren’t shown here.

drivers/clk/sunxi-ng/ccu-sun8i-r40.h+69−0

This diff is large: its 70 lines aren’t shown here.

drivers/clk/sunxi-ng/ccu-sun8i-v3s.c+1−2

This diff is large: its 10 lines aren’t shown here.

drivers/clk/sunxi-ng/ccu_common.h+4−0

This diff is large: its 11 lines aren’t shown here.

drivers/clk/sunxi-ng/ccu_div.c+19−3

This diff is large: its 46 lines aren’t shown here.

drivers/clk/sunxi-ng/ccu_div.h+2−1

This diff is large: its 12 lines aren’t shown here.

drivers/clk/sunxi-ng/ccu_frac.c+8−6

This diff is large: its 40 lines aren’t shown here.

drivers/clk/sunxi-ng/ccu_frac.h+1−1

This diff is large: its 8 lines aren’t shown here.

drivers/clk/sunxi-ng/ccu_mmc_timing.c+70−0

This diff is large: its 71 lines aren’t shown here.

drivers/clk/sunxi-ng/ccu_mp.c+80−0

This diff is large: its 84 lines aren’t shown here.

drivers/clk/sunxi-ng/ccu_mp.h+30−0

This diff is large: its 42 lines aren’t shown here.

drivers/clk/sunxi-ng/ccu_mult.c+7−3

This diff is large: its 18 lines aren’t shown here.

drivers/clk/sunxi-ng/ccu_nkm.c+19−3

This diff is large: its 52 lines aren’t shown here.

drivers/clk/sunxi-ng/ccu_nkm.h+2−0

This diff is large: its 9 lines aren’t shown here.

drivers/clk/sunxi-ng/ccu_nm.c+16−3

This diff is large: its 27 lines aren’t shown here.

drivers/clk/sunxi-ng/ccu_reset.c+12−0

This diff is large: its 27 lines aren’t shown here.

drivers/clk/sunxi/clk-sun8i-bus-gates.c+4−0

This diff is large: its 11 lines aren’t shown here.

drivers/clk/sunxi/clk-sunxi.c+7−10

This diff is large: its 49 lines aren’t shown here.

drivers/clk/tegra/clk-emc.c+5−7

This diff is large: its 40 lines aren’t shown here.

drivers/clk/tegra/clk-pll.c+38−121

This diff is large: its 253 lines aren’t shown here.

drivers/clk/tegra/clk-tegra-periph.c+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/clk/tegra/clk-tegra-super-gen4.c+9−2

This diff is large: its 18 lines aren’t shown here.

drivers/clk/tegra/clk-tegra210.c+18−14

This diff is large: its 136 lines aren’t shown here.

drivers/clk/tegra/clk.h+0−6

This diff is large: its 13 lines aren’t shown here.

drivers/clk/ti/adpll.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/clk/ti/apll.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/clk/ti/clockdomain.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/clk/ti/fapll.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/clk/uniphier/clk-uniphier-core.c+15−11

This diff is large: its 69 lines aren’t shown here.

drivers/clk/uniphier/clk-uniphier-mio.c+1−3

This diff is large: its 21 lines aren’t shown here.

drivers/clk/uniphier/clk-uniphier-sys.c+71−27

This diff is large: its 191 lines aren’t shown here.

drivers/clk/uniphier/clk-uniphier.h+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/clk/ux500/clk-prcc.c+3−3

This diff is large: its 25 lines aren’t shown here.

drivers/clk/ux500/clk-prcmu.c+7−7

This diff is large: its 59 lines aren’t shown here.

drivers/clk/ux500/clk-sysctrl.c+4−4

This diff is large: its 31 lines aren’t shown here.

drivers/clk/versatile/clk-vexpress-osc.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/clk/zte/clk-zx296718.c+3−3

This diff is large: its 27 lines aren’t shown here.

drivers/clocksource/Kconfig+9−1

This diff is large: its 24 lines aren’t shown here.

drivers/clocksource/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/clocksource/arm_arch_timer.c+6−2

This diff is large: its 22 lines aren’t shown here.

drivers/clocksource/bcm2835_timer.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/clocksource/em_sti.c+6−5

This diff is large: its 26 lines aren’t shown here.

drivers/clocksource/mips-gic-timer.c+31−6

This diff is large: its 92 lines aren’t shown here.

drivers/clocksource/tango_xtal.c+3−3

This diff is large: its 25 lines aren’t shown here.

drivers/clocksource/timer-imx-tpm.c+239−0

This diff is large: its 240 lines aren’t shown here.

drivers/clocksource/timer-integrator-ap.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/clocksource/timer-of.c+7−8

This diff is large: its 55 lines aren’t shown here.

drivers/clocksource/timer-probe.c+1−2

This diff is large: its 10 lines aren’t shown here.

drivers/clocksource/timer-stm32.c+4−4

This diff is large: its 25 lines aren’t shown here.

drivers/cpufreq/Kconfig.arm+8−13

This diff is large: its 46 lines aren’t shown here.

drivers/cpufreq/Makefile+2−2

This diff is large: its 22 lines aren’t shown here.

drivers/cpufreq/arm_big_little.c+4−6

This diff is large: its 24 lines aren’t shown here.

drivers/cpufreq/cppc_cpufreq.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/cpufreq/cpufreq-dt-platdev.c+60−17

This diff is large: its 153 lines aren’t shown here.

drivers/cpufreq/cpufreq-dt.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/cpufreq/cpufreq-nforce2.c+1−1

This diff is large: its 16 lines aren’t shown here.

drivers/cpufreq/cpufreq.c+34−7

This diff is large: its 65 lines aren’t shown here.

drivers/cpufreq/cpufreq_conservative.c+0−6

This diff is large: its 32 lines aren’t shown here.

drivers/cpufreq/cpufreq_governor.c+5−15

This diff is large: its 52 lines aren’t shown here.

drivers/cpufreq/cpufreq_governor.h+1−2

This diff is large: its 17 lines aren’t shown here.

drivers/cpufreq/cpufreq_ondemand.c+0−12

This diff is large: its 37 lines aren’t shown here.

drivers/cpufreq/dbx500-cpufreq.c+0−103

This diff is large: its 104 lines aren’t shown here.

drivers/cpufreq/elanfreq.c+1−3

This diff is large: its 18 lines aren’t shown here.

drivers/cpufreq/gx-suspmod.c+1−1

This diff is large: its 16 lines aren’t shown here.

drivers/cpufreq/imx6q-cpufreq.c+9−0

This diff is large: its 30 lines aren’t shown here.

drivers/cpufreq/intel_pstate.c+50−339

This diff is large: its 649 lines aren’t shown here.

drivers/cpufreq/longrun.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/cpufreq/loongson2_cpufreq.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/cpufreq/mediatek-cpufreq.crenamed from drivers/cpufreq/mt8173-cpufreq.c+16−13

This diff is large: its 92 lines aren’t shown here.

drivers/cpufreq/pmac32-cpufreq.c+5−2

This diff is large: its 28 lines aren’t shown here.

drivers/cpufreq/pmac64-cpufreq.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/cpufreq/powernow-k7.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/cpufreq/s5pv210-cpufreq.c+3−0

This diff is large: its 24 lines aren’t shown here.

drivers/cpufreq/sa1100-cpufreq.c+3−2

This diff is large: its 15 lines aren’t shown here.

drivers/cpufreq/sa1110-cpufreq.c+3−2

This diff is large: its 17 lines aren’t shown here.

drivers/cpufreq/sh-cpufreq.c+1−2

This diff is large: its 17 lines aren’t shown here.

drivers/cpufreq/speedstep-ich.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/cpufreq/speedstep-lib.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/cpufreq/speedstep-smi.c+1−1

This diff is large: its 16 lines aren’t shown here.

drivers/cpufreq/sti-cpufreq.c+4−4

This diff is large: its 22 lines aren’t shown here.

drivers/cpufreq/tango-cpufreq.c+38−0

This diff is large: its 39 lines aren’t shown here.

drivers/cpufreq/ti-cpufreq.c+3−3

This diff is large: its 27 lines aren’t shown here.

drivers/cpufreq/unicore2-cpufreq.c+1−2

This diff is large: its 15 lines aren’t shown here.

drivers/cpuidle/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/cpuidle/coupled.c+5−5

This diff is large: its 35 lines aren’t shown here.

drivers/cpuidle/cpuidle-arm.c+4−2

This diff is large: its 25 lines aren’t shown here.

drivers/cpuidle/cpuidle-cps.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/cpuidle/cpuidle-powernv.c+10−0

This diff is large: its 31 lines aren’t shown here.

drivers/cpuidle/cpuidle.c+9−9

This diff is large: its 67 lines aren’t shown here.

drivers/cpuidle/driver.c+0−32

This diff is large: its 46 lines aren’t shown here.

drivers/cpuidle/dt_idle_states.c+12−12

This diff is large: its 66 lines aren’t shown here.

drivers/cpuidle/governors/ladder.c+8−6

This diff is large: its 59 lines aren’t shown here.

drivers/cpuidle/governors/menu.c+5−8

This diff is large: its 27 lines aren’t shown here.

drivers/cpuidle/poll_state.c+37−0

This diff is large: its 38 lines aren’t shown here.

drivers/crypto/Kconfig+46−3

This diff is large: its 71 lines aren’t shown here.

drivers/crypto/Makefile+3−1

This diff is large: its 22 lines aren’t shown here.

drivers/crypto/atmel-ecc.c+781−0

This diff is large: its 782 lines aren’t shown here.

drivers/crypto/atmel-ecc.h+128−0

This diff is large: its 129 lines aren’t shown here.

drivers/crypto/atmel-sha.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/crypto/atmel-tdes.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/crypto/axis/Makefile+1−0

This diff is large: its 2 lines aren’t shown here.

drivers/crypto/axis/artpec6_crypto.c+3192−0

This diff is large: its 3193 lines aren’t shown here.

drivers/crypto/bcm/cipher.c+54−60

This diff is large: its 193 lines aren’t shown here.

drivers/crypto/bcm/cipher.h+7−6

This diff is large: its 31 lines aren’t shown here.

drivers/crypto/caam/Kconfig+1−4

This diff is large: its 19 lines aren’t shown here.

drivers/crypto/caam/caamalg.c+15−51

This diff is large: its 112 lines aren’t shown here.

drivers/crypto/caam/caamalg_desc.c+2−3

This diff is large: its 19 lines aren’t shown here.

drivers/crypto/caam/caamalg_qi.c+47−8

This diff is large: its 148 lines aren’t shown here.

drivers/crypto/caam/caamhash.c+3−4

This diff is large: its 21 lines aren’t shown here.

drivers/crypto/caam/caamrng.c+1−5

This diff is large: its 13 lines aren’t shown here.

drivers/crypto/caam/ctrl.c+69−77

This diff is large: its 235 lines aren’t shown here.

drivers/crypto/caam/ctrl.h+2−0

This diff is large: its 7 lines aren’t shown here.

drivers/crypto/caam/error.c+40−0

This diff is large: its 47 lines aren’t shown here.

drivers/crypto/caam/error.h+4−0

This diff is large: its 9 lines aren’t shown here.

drivers/crypto/caam/intern.h+0−11

This diff is large: its 30 lines aren’t shown here.

drivers/crypto/caam/jr.c+6−1

This diff is large: its 21 lines aren’t shown here.

drivers/crypto/caam/qi.c+12−18

This diff is large: its 115 lines aren’t shown here.

drivers/crypto/caam/qi.h+3−0

This diff is large: its 10 lines aren’t shown here.

drivers/crypto/caam/regs.h+29−31

This diff is large: its 99 lines aren’t shown here.

drivers/crypto/caam/sg_sw_qm2.h+81−0

This diff is large: its 82 lines aren’t shown here.

drivers/crypto/caam/sg_sw_sec4.h+25−18

This diff is large: its 71 lines aren’t shown here.

drivers/crypto/cavium/cpt/cptpf_main.c+9−4

This diff is large: its 39 lines aren’t shown here.

drivers/crypto/cavium/nitrox/nitrox_main.c+3−1

This diff is large: its 12 lines aren’t shown here.

drivers/crypto/ccp/Kconfig+15−7

This diff is large: its 41 lines aren’t shown here.

drivers/crypto/ccp/Makefile+4−3

This diff is large: its 22 lines aren’t shown here.

drivers/crypto/ccp/ccp-crypto-aes-galois.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/crypto/ccp/ccp-crypto-aes-xts.c+53−43

This diff is large: its 165 lines aren’t shown here.

drivers/crypto/ccp/ccp-crypto-des3.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/crypto/ccp/ccp-crypto-main.c+20−1

This diff is large: its 67 lines aren’t shown here.

drivers/crypto/ccp/ccp-crypto-rsa.c+299−0

This diff is large: its 300 lines aren’t shown here.

drivers/crypto/ccp/ccp-crypto-sha.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/crypto/ccp/ccp-crypto.h+34−2

This diff is large: its 83 lines aren’t shown here.

drivers/crypto/ccp/ccp-debugfs.c+10−5

This diff is large: its 46 lines aren’t shown here.

drivers/crypto/ccp/ccp-dev-v3.c+13−7

This diff is large: its 65 lines aren’t shown here.

drivers/crypto/ccp/ccp-dev-v5.c+14−14

This diff is large: its 111 lines aren’t shown here.

drivers/crypto/ccp/ccp-dev.c+84−50

This diff is large: its 215 lines aren’t shown here.

drivers/crypto/ccp/ccp-dev.h+9−21

This diff is large: its 102 lines aren’t shown here.

drivers/crypto/ccp/ccp-dmaengine.c+1−24

This diff is large: its 53 lines aren’t shown here.

drivers/crypto/ccp/ccp-ops.c+91−42

This diff is large: its 245 lines aren’t shown here.

drivers/crypto/ccp/ccp-pci.c+0−356

This diff is large: its 357 lines aren’t shown here.

drivers/crypto/ccp/ccp-platform.c+0−293

This diff is large: its 294 lines aren’t shown here.

drivers/crypto/ccp/sp-dev.c+277−0

This diff is large: its 278 lines aren’t shown here.

drivers/crypto/ccp/sp-dev.h+133−0

This diff is large: its 134 lines aren’t shown here.

drivers/crypto/ccp/sp-pci.c+276−0

This diff is large: its 277 lines aren’t shown here.

drivers/crypto/ccp/sp-platform.c+256−0

This diff is large: its 257 lines aren’t shown here.

drivers/crypto/geode-aes.c+10−7

This diff is large: its 50 lines aren’t shown here.

drivers/crypto/img-hash.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/crypto/inside-secure/safexcel.c+3−2

This diff is large: its 13 lines aren’t shown here.

drivers/crypto/inside-secure/safexcel_cipher.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/crypto/inside-secure/safexcel_hash.c+5−5

This diff is large: its 31 lines aren’t shown here.

drivers/crypto/ixp4xx_crypto.c+3−3

This diff is large: its 22 lines aren’t shown here.

drivers/crypto/mediatek/mtk-platform.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/crypto/mxc-scc.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/crypto/mxs-dcp.c+6−2

This diff is large: its 19 lines aren’t shown here.

drivers/crypto/n2_core.c+28−32

This diff is large: its 156 lines aren’t shown here.

drivers/crypto/nx/Kconfig+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/crypto/nx/nx-842-powernv.c+464−50

This diff is large: its 680 lines aren’t shown here.

drivers/crypto/nx/nx-842.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/crypto/nx/nx-842.h+8−5

This diff is large: its 30 lines aren’t shown here.

drivers/crypto/omap-aes.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/crypto/omap-des.c+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/crypto/omap-sham.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/crypto/qat/qat_common/adf_aer.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/crypto/rockchip/rk3288_crypto.c+56−18

This diff is large: its 138 lines aren’t shown here.

drivers/crypto/rockchip/rk3288_crypto.h+10−5

This diff is large: its 52 lines aren’t shown here.

drivers/crypto/rockchip/rk3288_crypto_ablkcipher.c+50−53

This diff is large: its 260 lines aren’t shown here.

drivers/crypto/rockchip/rk3288_crypto_ahash.c+60−59

This diff is large: its 169 lines aren’t shown here.

drivers/crypto/sahara.c+6−8

This diff is large: its 57 lines aren’t shown here.

drivers/crypto/stm32/Kconfig+16−3

This diff is large: its 24 lines aren’t shown here.

drivers/crypto/stm32/Makefile+2−2

This diff is large: its 5 lines aren’t shown here.

drivers/crypto/stm32/stm32-hash.c+1575−0

This diff is large: its 1576 lines aren’t shown here.

drivers/crypto/stm32/stm32_crc32.c+9−8

This diff is large: its 49 lines aren’t shown here.

drivers/crypto/sunxi-ss/Makefile+1−0

This diff is large: its 4 lines aren’t shown here.

drivers/crypto/sunxi-ss/sun4i-ss-core.c+30−0

This diff is large: its 58 lines aren’t shown here.

drivers/crypto/sunxi-ss/sun4i-ss-prng.c+56−0

This diff is large: its 57 lines aren’t shown here.

drivers/crypto/sunxi-ss/sun4i-ss.h+11−0

This diff is large: its 43 lines aren’t shown here.

drivers/crypto/talitos.c+5−4

This diff is large: its 31 lines aren’t shown here.

drivers/crypto/virtio/virtio_crypto_algs.c+87−22

This diff is large: its 200 lines aren’t shown here.

drivers/crypto/virtio/virtio_crypto_common.h+4−18

This diff is large: its 42 lines aren’t shown here.

drivers/crypto/virtio/virtio_crypto_core.c+7−30

This diff is large: its 64 lines aren’t shown here.

drivers/crypto/vmx/aes_ctr.c+1−2

This diff is large: its 10 lines aren’t shown here.

drivers/dax/super.c+26−7

This diff is large: its 68 lines aren’t shown here.

drivers/devfreq/Kconfig+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/devfreq/devfreq-event.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/devfreq/devfreq.c+4−1

This diff is large: its 19 lines aren’t shown here.

drivers/devfreq/governor.h+4−0

This diff is large: its 9 lines aren’t shown here.

drivers/dma-buf/dma-fence.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/dma-buf/reservation.c+77−22

This diff is large: its 134 lines aren’t shown here.

drivers/dma-buf/sw_sync.c+121−80

This diff is large: its 255 lines aren’t shown here.

drivers/dma-buf/sync_debug.c+8−11

This diff is large: its 59 lines aren’t shown here.

drivers/dma-buf/sync_debug.h+13−13

This diff is large: its 63 lines aren’t shown here.

drivers/dma-buf/sync_file.c+3−2

This diff is large: its 19 lines aren’t shown here.

drivers/dma/Kconfig+6−0

This diff is large: its 13 lines aren’t shown here.

drivers/dma/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/dma/altera-msgdma.c+927−0

This diff is large: its 928 lines aren’t shown here.

drivers/dma/amba-pl08x.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/dma/at_hdmac.c+1−139

This diff is large: its 172 lines aren’t shown here.

drivers/dma/at_xdmac.c+8−5

This diff is large: its 49 lines aren’t shown here.

drivers/dma/bcm-sba-raid.c+295−249

This diff is large: its 1012 lines aren’t shown here.

drivers/dma/dmaengine.c+79−24

This diff is large: its 110 lines aren’t shown here.

drivers/dma/dmatest.c+59−51

This diff is large: its 260 lines aren’t shown here.

drivers/dma/fsldma.c+0−118

This diff is large: its 136 lines aren’t shown here.

drivers/dma/ioat/dma.c+7−3

This diff is large: its 17 lines aren’t shown here.

drivers/dma/ioat/dma.h+3−0

This diff is large: its 15 lines aren’t shown here.

drivers/dma/ioat/init.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/dma/ioat/sysfs.c+42−0

This diff is large: its 63 lines aren’t shown here.

drivers/dma/k3dma.c+4−8

This diff is large: its 38 lines aren’t shown here.

drivers/dma/mv_xor.c+1−161

This diff is large: its 200 lines aren’t shown here.

drivers/dma/nbpfaxi.c+0−17

This diff is large: its 36 lines aren’t shown here.

drivers/dma/of-dma.c+4−4

This diff is large: its 22 lines aren’t shown here.

drivers/dma/pl330.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/dma/ppc4xx/adma.c+16−21

This diff is large: its 115 lines aren’t shown here.

drivers/dma/qcom/bam_dma.c+5−1

This diff is large: its 27 lines aren’t shown here.

drivers/dma/qcom/hidma.c+36−1

This diff is large: its 58 lines aren’t shown here.

drivers/dma/qcom/hidma.h+6−1

This diff is large: its 21 lines aren’t shown here.

drivers/dma/qcom/hidma_ll.c+4−7

This diff is large: its 39 lines aren’t shown here.

drivers/dma/qcom/hidma_mgmt.c+10−6

This diff is large: its 58 lines aren’t shown here.

drivers/dma/sh/rcar-dmac.c+43−42

This diff is large: its 127 lines aren’t shown here.

drivers/dma/ste_dma40.c+2−20

This diff is large: its 64 lines aren’t shown here.

drivers/dma/sun6i-dma.c+26−7

This diff is large: its 66 lines aren’t shown here.

drivers/dma/tegra210-adma.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/dma/ti-dma-crossbar.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/dma/xgene-dma.c+1−159

This diff is large: its 202 lines aren’t shown here.

drivers/dma/xilinx/xilinx_dma.c+15−15

This diff is large: its 116 lines aren’t shown here.

drivers/dma/xilinx/zynqmp_dma.c+0−94

This diff is large: its 111 lines aren’t shown here.

drivers/edac/altera_edac.c+3−3

This diff is large: its 28 lines aren’t shown here.

drivers/edac/amd64_edac.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/edac/amd76x_edac.c+0−2

This diff is large: its 16 lines aren’t shown here.

drivers/edac/cpc925_edac.c+1−2

This diff is large: its 17 lines aren’t shown here.

drivers/edac/e752x_edac.c+0−2

This diff is large: its 16 lines aren’t shown here.

drivers/edac/e7xxx_edac.c+0−2

This diff is large: its 16 lines aren’t shown here.

drivers/edac/edac_mc_sysfs.c+7−7

This diff is large: its 63 lines aren’t shown here.

drivers/edac/ghes_edac.c+0−3

This diff is large: its 17 lines aren’t shown here.

drivers/edac/highbank_mc_edac.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/edac/i3000_edac.c+0−3

This diff is large: its 17 lines aren’t shown here.

drivers/edac/i3200_edac.c+0−3

This diff is large: its 17 lines aren’t shown here.

drivers/edac/i5000_edac.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/edac/i5100_edac.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/edac/i5400_edac.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/edac/i7300_edac.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/edac/i7core_edac.c+4−5

This diff is large: its 44 lines aren’t shown here.

drivers/edac/i82443bxgx_edac.c+0−3

This diff is large: its 17 lines aren’t shown here.

drivers/edac/i82860_edac.c+0−2

This diff is large: its 16 lines aren’t shown here.

drivers/edac/i82875p_edac.c+0−2

This diff is large: its 16 lines aren’t shown here.

drivers/edac/i82975x_edac.c+0−2

This diff is large: its 16 lines aren’t shown here.

drivers/edac/ie31200_edac.c+0−2

This diff is large: its 16 lines aren’t shown here.

drivers/edac/mce_amd.c+16−20

This diff is large: its 137 lines aren’t shown here.

drivers/edac/mv64x60_edac.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/edac/pnd2_edac.c+77−29

This diff is large: its 150 lines aren’t shown here.

drivers/edac/ppc4xx_edac.c+4−5

This diff is large: its 31 lines aren’t shown here.

drivers/edac/r82600_edac.c+0−2

This diff is large: its 16 lines aren’t shown here.

drivers/edac/sb_edac.c+47−17

This diff is large: its 130 lines aren’t shown here.

drivers/edac/skx_edac.c+0−3

This diff is large: its 17 lines aren’t shown here.

drivers/edac/synopsys_edac.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/edac/thunderx_edac.c+2−4

This diff is large: its 22 lines aren’t shown here.

drivers/edac/x38_edac.c+0−3

This diff is large: its 17 lines aren’t shown here.

drivers/edac/xgene_edac.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/extcon/Kconfig+7−0

This diff is large: its 12 lines aren’t shown here.

drivers/extcon/Makefile+1−0

This diff is large: its 5 lines aren’t shown here.

drivers/extcon/devres.c+24−26

This diff is large: its 112 lines aren’t shown here.

drivers/extcon/extcon-intel-int3496.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/extcon/extcon-max77693.c+2−3

This diff is large: its 12 lines aren’t shown here.

drivers/extcon/extcon-usbc-cros-ec.c+417−0

This diff is large: its 418 lines aren’t shown here.

drivers/extcon/extcon.c+136−143

This diff is large: its 508 lines aren’t shown here.

drivers/firmware/arm_scpi.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/firmware/dcdbas.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/firmware/dmi-sysfs.c+3−2

This diff is large: its 26 lines aren’t shown here.

drivers/firmware/efi/Kconfig+10−0

This diff is large: its 17 lines aren’t shown here.

drivers/firmware/efi/apple-properties.c+2−3

This diff is large: its 20 lines aren’t shown here.

drivers/firmware/efi/arm-init.c+8−0

This diff is large: its 29 lines aren’t shown here.

drivers/firmware/efi/cper.c+7−15

This diff is large: its 83 lines aren’t shown here.

drivers/firmware/efi/efi-bgrt.c+1−21

This diff is large: its 36 lines aren’t shown here.

drivers/firmware/efi/efi.c+67−8

This diff is large: its 132 lines aren’t shown here.

drivers/firmware/efi/esrt.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/firmware/efi/libstub/Makefile+2−1

This diff is large: its 17 lines aren’t shown here.

drivers/firmware/efi/libstub/arm-stub.c+3−0

This diff is large: its 10 lines aren’t shown here.

drivers/firmware/efi/libstub/arm64-stub.c+13−3

This diff is large: its 33 lines aren’t shown here.

drivers/firmware/efi/libstub/efi-stub-helper.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/firmware/efi/libstub/random.c+4−6

This diff is large: its 39 lines aren’t shown here.

drivers/firmware/efi/libstub/tpm.c+58−0

This diff is large: its 59 lines aren’t shown here.

drivers/firmware/efi/reboot.c+11−1

This diff is large: its 34 lines aren’t shown here.

drivers/firmware/google/gsmi.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/firmware/google/memconsole-x86-legacy.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/firmware/google/vpd.c+5−5

This diff is large: its 38 lines aren’t shown here.

drivers/firmware/pcdp.c+2−2

This diff is large: its 17 lines aren’t shown here.

drivers/firmware/psci.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/firmware/tegra/bpmp.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/fmc/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/fmc/fmc-chardev.c+1−2

This diff is large: its 10 lines aren’t shown here.

drivers/fmc/fmc-core.c+90−5

This diff is large: its 154 lines aren’t shown here.

drivers/fmc/fmc-debug.c+173−0

This diff is large: its 174 lines aren’t shown here.

drivers/fmc/fmc-dump.c+0−41

This diff is large: its 52 lines aren’t shown here.

drivers/fmc/fmc-match.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/fmc/fmc-private.h+9−0

This diff is large: its 10 lines aren’t shown here.

drivers/fmc/fmc-sdb.c+25−94

This diff is large: its 147 lines aren’t shown here.

drivers/fmc/fmc-trivial.c+8−12

This diff is large: its 50 lines aren’t shown here.

drivers/fmc/fmc-write-eeprom.c+4−4

This diff is large: its 29 lines aren’t shown here.

drivers/fmc/fru-parse.c+1−2

This diff is large: its 14 lines aren’t shown here.

drivers/fpga/Kconfig+15−5

This diff is large: its 38 lines aren’t shown here.

drivers/fpga/Makefile+2−0

This diff is large: its 9 lines aren’t shown here.

drivers/fpga/altera-cvp.c+500−0

This diff is large: its 501 lines aren’t shown here.

drivers/fpga/altera-hps2fpga.c+8−4

This diff is large: its 35 lines aren’t shown here.

drivers/fpga/altera-ps-spi.c+308−0

This diff is large: its 309 lines aren’t shown here.

drivers/fpga/fpga-region.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/fsi/fsi-core.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/fsi/fsi-scom.c+4−6

This diff is large: its 31 lines aren’t shown here.

drivers/gpio/Kconfig+25−1

This diff is large: its 47 lines aren’t shown here.

drivers/gpio/Makefile+2−0

This diff is large: its 16 lines aren’t shown here.

drivers/gpio/devres.c+3−0

This diff is large: its 24 lines aren’t shown here.

drivers/gpio/gpio-74x164.c+10−0

This diff is large: its 38 lines aren’t shown here.

drivers/gpio/gpio-altera-a10sr.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/gpio/gpio-altera.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/gpio/gpio-aspeed.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/gpio/gpio-brcmstb.c+6−5

This diff is large: its 39 lines aren’t shown here.

drivers/gpio/gpio-davinci.c+17−5

This diff is large: its 45 lines aren’t shown here.

drivers/gpio/gpio-ge.c+2−4

This diff is large: its 20 lines aren’t shown here.

drivers/gpio/gpio-grgpio.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/gpio/gpio-it87.c+3−0

This diff is large: its 24 lines aren’t shown here.

drivers/gpio/gpio-max77620.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/gpio/gpio-mb86s7x.c+3−1

This diff is large: its 11 lines aren’t shown here.

drivers/gpio/gpio-ml-ioh.c+7−5

This diff is large: its 28 lines aren’t shown here.

drivers/gpio/gpio-mockup.c+7−72

This diff is large: its 130 lines aren’t shown here.

drivers/gpio/gpio-mpc8xxx.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/gpio/gpio-msic.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/gpio/gpio-mvebu.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/gpio/gpio-mxc.c+17−10

This diff is large: its 79 lines aren’t shown here.

drivers/gpio/gpio-mxs.c+10−5

This diff is large: its 52 lines aren’t shown here.

drivers/gpio/gpio-omap.c+2−0

This diff is large: its 9 lines aren’t shown here.

drivers/gpio/gpio-pca953x.c+3−5

This diff is large: its 23 lines aren’t shown here.

drivers/gpio/gpio-pch.c+7−5

This diff is large: its 28 lines aren’t shown here.

drivers/gpio/gpio-pl061.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/gpio/gpio-pxa.c+5−3

This diff is large: its 23 lines aren’t shown here.

drivers/gpio/gpio-rcar.c+10−0

This diff is large: its 17 lines aren’t shown here.

drivers/gpio/gpio-sta2x11.c+10−4

This diff is large: its 36 lines aren’t shown here.

drivers/gpio/gpio-tb10x.c+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/gpio/gpio-tegra.c+61−68

This diff is large: its 374 lines aren’t shown here.

drivers/gpio/gpio-thunderx.c+639−0

This diff is large: its 640 lines aren’t shown here.

drivers/gpio/gpio-tps68470.c+176−0

This diff is large: its 177 lines aren’t shown here.

drivers/gpio/gpio-twl4030.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/gpio/gpio-twl6040.c+0−2

This diff is large: its 9 lines aren’t shown here.

drivers/gpio/gpio-tz1090.c+4−6

This diff is large: its 27 lines aren’t shown here.

drivers/gpio/gpio-vf610.c+44−3

This diff is large: its 107 lines aren’t shown here.

drivers/gpio/gpio-xilinx.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/gpio/gpio-zevio.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/gpio/gpio-zynq.c+136−24

This diff is large: its 308 lines aren’t shown here.

drivers/gpio/gpiolib-acpi.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/gpio/gpiolib-of.c+17−19

This diff is large: its 100 lines aren’t shown here.

drivers/gpio/gpiolib-sysfs.c+12−6

This diff is large: its 67 lines aren’t shown here.

drivers/gpio/gpiolib.c+84−46

This diff is large: its 294 lines aren’t shown here.

drivers/gpio/gpiolib.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/gpu/drm/Makefile+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/Makefile+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu.h+41−180

This diff is large: its 398 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c+46−26

This diff is large: its 115 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c+2−2

This diff is large: its 21 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c+22−22

This diff is large: its 82 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h+16−2

This diff is large: its 37 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c+162−27

This diff is large: its 307 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c+197−29

This diff is large: its 349 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c+22−10

This diff is large: its 84 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.h+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c+126−35

This diff is large: its 172 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.h+2−4

This diff is large: its 13 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_benchmark.c+3−3

This diff is large: its 27 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_bios.c+2−15

This diff is large: its 37 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c+6−6

This diff is large: its 42 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c+26−4

This diff is large: its 86 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c+94−44

This diff is large: its 343 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_device.c+106−151

This diff is large: its 539 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_display.c+3−3

This diff is large: its 26 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c+22−7

This diff is large: its 105 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c+3−28

This diff is large: its 65 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c+52−17

This diff is large: its 115 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_gart.h+76−0

This diff is large: its 77 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c+27−37

This diff is large: its 214 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_gtt_mgr.c+54−33

This diff is large: its 191 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c+4−3

This diff is large: its 27 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c+5−1

This diff is large: its 20 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_job.c+2−0

This diff is large: its 9 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c+20−19

This diff is large: its 110 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c+4−35

This diff is large: its 74 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h+0−13

This diff is large: its 35 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_object.c+143−135

This diff is large: its 519 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_object.h+67−1

This diff is large: its 104 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_pm.h+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c+31−32

This diff is large: its 126 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h+5−0

This diff is large: its 12 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c+29−40

This diff is large: its 103 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h+40−0

This diff is large: its 45 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c+6−7

This diff is large: its 27 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_test.c+28−28

This diff is large: its 150 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h+69−13

This diff is large: its 164 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c+361−143

This diff is large: its 835 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h+16−10

This diff is large: its 55 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c+10−8

This diff is large: its 52 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c+6−2

This diff is large: its 29 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c+2−2

This diff is large: its 12 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c+8−10

This diff is large: its 47 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_vf_error.c+85−0

This diff is large: its 86 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_vf_error.h+62−0

This diff is large: its 63 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c+12−13

This diff is large: its 62 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h+3−1

This diff is large: its 18 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c+306−227

This diff is large: its 1030 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h+28−13

This diff is large: its 118 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c+73−4

This diff is large: its 154 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/cik.c+1−8

This diff is large: its 23 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/cik_sdma.c+60−0

This diff is large: its 81 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/dce_v10_0.c+13−155

This diff is large: its 267 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/dce_v11_0.c+13−100

This diff is large: its 212 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/dce_v6_0.c+14−138

This diff is large: its 258 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/dce_v8_0.c+13−102

This diff is large: its 214 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/dce_virtual.c+42−83

This diff is large: its 194 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c+18−91

This diff is large: its 151 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c+40−203

This diff is large: its 363 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c+45−139

This diff is large: its 325 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c+48−104

This diff is large: its 247 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/gfx_v9_0.h+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/gfxhub_v1_0.c+10−5

This diff is large: its 47 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/gfxhub_v1_0.h+0−2

This diff is large: its 8 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c+48−47

This diff is large: its 219 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c+52−44

This diff is large: its 230 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.