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
2090 2090
2091N: Mohit Kumar2091N: Mohit Kumar
2092D: ST Microelectronics SPEAr13xx PCI host bridge driver2092D: ST Microelectronics SPEAr13xx PCI host bridge driver
2093D: Synopsys Designware PCI host bridge driver2093D: Synopsys DesignWare PCI host bridge driver
2094 2094
2095N: Gabor Kuti2095N: Gabor Kuti
2096E: seasons@falcon.sch.bme.hu2096E: seasons@falcon.sch.bme.hu
@@ -2606,11 +2606,9 @@ E: tmolina@cablespeed.com · 509 unmodified lines
2606D: bug fixes, documentation, minor hackery2606D: bug fixes, documentation, minor hackery
2607 2607
2608N: Paul Moore2608N: Paul Moore
2609E: paul.moore@hp.com2609E: paul@paul-moore.com
2610D: NetLabel author2610W: http://www.paul-moore.com
2611S: Hewlett-Packard2611D: NetLabel, SELinux, audit
2612S: 110 Spit Brook Road
2613S: Nashua, NH 03062
2614 2612
2615N: James Morris2613N: James Morris
2616E: jmorris@namei.org2614E: jmorris@namei.org
Documentation/ABI/stable/sysfs-bus-nvmem+19−0
@@ -0,0 +1,19 @@
1What: /sys/bus/nvmem/devices/.../nvmem
2Date: July 2015
3KernelVersion: 4.2
4Contact: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
5Description:
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 @@
1What: sys/devices/pciXXXX:XX/0000:XX:XX.X/dma/dma<n>chan<n>/quickdata/cap
2Date: December 3, 2009
3KernelVersion: 2.6.32
4Contact: dmaengine@vger.kernel.org
5Description: Capabilities the DMA supports.Currently there are DMA_PQ, DMA_PQ_VAL,
6 DMA_XOR,DMA_XOR_VAL,DMA_INTERRUPT.
7
8What: sys/devices/pciXXXX:XX/0000:XX:XX.X/dma/dma<n>chan<n>/quickdata/ring_active
9Date: December 3, 2009
10KernelVersion: 2.6.32
11Contact: dmaengine@vger.kernel.org
12Description: The number of descriptors active in the ring.
13
14What: sys/devices/pciXXXX:XX/0000:XX:XX.X/dma/dma<n>chan<n>/quickdata/ring_size
15Date: December 3, 2009
16KernelVersion: 2.6.32
17Contact: dmaengine@vger.kernel.org
18Description: Descriptor ring size, total number of descriptors available.
19
20What: sys/devices/pciXXXX:XX/0000:XX:XX.X/dma/dma<n>chan<n>/quickdata/version
21Date: December 3, 2009
22KernelVersion: 2.6.32
23Contact: dmaengine@vger.kernel.org
24Description: Version of ioatdma device.
25
26What: sys/devices/pciXXXX:XX/0000:XX:XX.X/dma/dma<n>chan<n>/quickdata/intr_coalesce
27Date: August 8, 2017
28KernelVersion: 4.14
29Contact: dmaengine@vger.kernel.org
30Description: 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
12 Ethernet over USB link12 Ethernet over USB link
13 dev_addr - MAC address of device's end of this13 dev_addr - MAC address of device's end of this
14 Ethernet over USB link14 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 @@
1What: /sys/kernel/debug/powerpc/memtrace
2Date: Aug 2017
3KernelVersion: 4.14
4Contact: linuxppc-dev@lists.ozlabs.org
5Description: This folder contains the relevant debugfs files for the
6 hardware trace macro to use. CONFIG_PPC64_HARDWARE_TRACING
7 must be set.
8
9What: /sys/kernel/debug/powerpc/memtrace/enable
10Date: Aug 2017
11KernelVersion: 4.14
12Contact: linuxppc-dev@lists.ozlabs.org
13Description: 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
21What: /sys/kernel/debug/powerpc/memtrace/<node-id>
22Date: Aug 2017
23KernelVersion: 4.14
24Contact: linuxppc-dev@lists.ozlabs.org
25Description: This directory contains information about the removed memory
26 from the specific NUMA node.
27
28What: /sys/kernel/debug/powerpc/memtrace/<node-id>/size
29Date: Aug 2017
30KernelVersion: 4.14
31Contact: linuxppc-dev@lists.ozlabs.org
32Description: This contains the size of the memory removed from the node.
33
34What: /sys/kernel/debug/powerpc/memtrace/<node-id>/start
35Date: Aug 2017
36KernelVersion: 4.14
37Contact: linuxppc-dev@lists.ozlabs.org
38Description: This contains the start address of the removed memory.
39
40What: /sys/kernel/debug/powerpc/memtrace/<node-id>/trace
41Date: Aug 2017
42KernelVersion: 4.14
43Contact: linuxppc-dev@lists.ozlabs.org
44Description: 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 @@
1What: /proc/pid/smaps_rollup
2Date: August 2017
3Contact: Daniel Colascione <dancol@google.com>
4Description:
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
90 device's debugging info useful for kernel developers. Its90 device's debugging info useful for kernel developers. Its
91 format is not documented intentionally and may change91 format is not documented intentionally and may change
92 anytime without any notice.92 anytime without any notice.
93
94What: /sys/block/zram<id>/backing_dev
95Date: June 2017
96Contact: Minchan Kim <minchan@kernel.org>
97Description:
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
119 unique to allow association with event codes. Units after119 unique to allow association with event codes. Units after
120 application of scale and offset are milliamps.120 application of scale and offset are milliamps.
121 121
122What: /sys/bus/iio/devices/iio:deviceX/in_powerY_raw
123KernelVersion: 4.5
124Contact: linux-iio@vger.kernel.org
125Description:
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
122What: /sys/bus/iio/devices/iio:deviceX/in_capacitanceY_raw131What: /sys/bus/iio/devices/iio:deviceX/in_capacitanceY_raw
123KernelVersion: 3.2132KernelVersion: 3.2
124Contact: linux-iio@vger.kernel.org133Contact: linux-iio@vger.kernel.org
Documentation/ABI/testing/sysfs-bus-iio-lptimer-stm32+57−0
@@ -0,0 +1,57 @@
1What: /sys/bus/iio/devices/iio:deviceX/in_count0_preset
2KernelVersion: 4.13
3Contact: fabrice.gasnier@st.com
4Description:
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
9What: /sys/bus/iio/devices/iio:deviceX/in_count_quadrature_mode_available
10KernelVersion: 4.13
11Contact: fabrice.gasnier@st.com
12Description:
13 Reading returns the list possible quadrature modes.
14
15What: /sys/bus/iio/devices/iio:deviceX/in_count0_quadrature_mode
16KernelVersion: 4.13
17Contact: fabrice.gasnier@st.com
18Description:
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
27What: /sys/bus/iio/devices/iio:deviceX/in_count_polarity_available
28KernelVersion: 4.13
29Contact: fabrice.gasnier@st.com
30Description:
31 Reading returns the list possible active edges.
32
33What: /sys/bus/iio/devices/iio:deviceX/in_count0_polarity
34KernelVersion: 4.13
35Contact: fabrice.gasnier@st.com
36Description:
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
45Description: When a devices supports Thunderbolt secure connect it will45Description: When a devices supports Thunderbolt secure connect it will
46 have this attribute. Writing 32 byte hex string changes46 have this attribute. Writing 32 byte hex string changes
47 authorization to use the secure connection method instead.47 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.
48 50
49What: /sys/bus/thunderbolt/devices/.../device51What: /sys/bus/thunderbolt/devices/.../device
50Date: Sep 201752Date: 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
45Description:45Description:
46 Write to this node to issue "U3 exit" for Link Layer46 Write to this node to issue "U3 exit" for Link Layer
47 Validation device. It is needed for TD.7.36.47 Validation device. It is needed for TD.7.36.
48
49What: /sys/bus/usb/devices/.../enable_compliance
50Date: July 2017
51Description:
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
55What: /sys/bus/usb/devices/.../warm_reset
56Date: July 2017
57Description:
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 @@
1What: /sys/bus/pci/drivers/altera-cvp/chkcfg
2Date: May 2017
3Kernel Version: 4.13
4Contact: Anatolij Gustschin <agust@denx.de>
5Description:
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 @@
1What: /sys/firmware/opal/powercap
2Date: August 2017
3Contact: Linux for PowerPC mailing list <linuxppc-dev@ozlabs.org>
4Description: Powercap directory for Powernv (P8, P9) servers
5
6 Each folder in this directory contains a
7 power-cappable component.
8
9What: /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
13Date: August 2017
14Contact: Linux for PowerPC mailing list <linuxppc-dev@ozlabs.org>
15Description: 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 @@
1What: /sys/firmware/opal/psr
2Date: August 2017
3Contact: Linux for PowerPC mailing list <linuxppc-dev@ozlabs.org>
4Description: 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
11What: /sys/firmware/opal/psr/cpu_to_gpu_X
12Date: August 2017
13Contact: Linux for PowerPC mailing list <linuxppc-dev@ozlabs.org>
14Description: 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
57Description:57Description:
58 Controls the issue rate of small discard commands.58 Controls the issue rate of small discard commands.
59 59
60What: /sys/fs/f2fs/<disk>/discard_granularity
61Date: July 2017
62Contact: "Chao Yu" <yuchao0@huawei.com>
63Description:
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
60What: /sys/fs/f2fs/<disk>/max_victim_search69What: /sys/fs/f2fs/<disk>/max_victim_search
61Date: January 201470Date: January 2014
62Contact: "Jaegeuk Kim" <jaegeuk.kim@samsung.com>71Contact: "Jaegeuk Kim" <jaegeuk.kim@samsung.com>
@@ -130,3 +139,15 @@ Date: June 2017 · 67 unmodified lines
130Contact: "Chao Yu" <yuchao0@huawei.com>139Contact: "Chao Yu" <yuchao0@huawei.com>
131Description:140Description:
132 Controls current reserved blocks in system.141 Controls current reserved blocks in system.
142
143What: /sys/fs/f2fs/<disk>/gc_urgent
144Date: August 2017
145Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
146Description:
147 Do background GC agressively
148
149What: /sys/fs/f2fs/<disk>/gc_urgent_sleep_time
150Date: August 2017
151Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
152Description:
153 Controls sleep time of GC urgent mode
Documentation/ABI/testing/sysfs-kernel-mm-swap+26−0
@@ -0,0 +1,26 @@
1What: /sys/kernel/mm/swap/
2Date: August 2017
3Contact: Linux memory management mailing list <linux-mm@kvack.org>
4Description: Interface for swapping
5
6What: /sys/kernel/mm/swap/vma_ra_enabled
7Date: August 2017
8Contact: Linux memory management mailing list <linux-mm@kvack.org>
9Description: 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
18What: /sys/kernel/mm/swap/vma_ra_max_order
19Date: August 2017
20Contact: Linux memory management mailing list <linux-mm@kvack.org>
21Description: 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
273 273
274 This output is useful for system wakeup diagnostics of spurious274 This output is useful for system wakeup diagnostics of spurious
275 wakeup interrupts.275 wakeup interrupts.
276
277What: /sys/power/pm_debug_messages
278Date: July 2017
279Contact: Rafael J. Wysocki <rjw@rjwysocki.net>
280Description:
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
515::515::
516 516
517 void *517 void *
518 dma_alloc_noncoherent(struct device *dev, size_t size,518 dma_alloc_attrs(struct device *dev, size_t size, dma_addr_t *dma_handle,
519 dma_addr_t *dma_handle, gfp_t flag)519 gfp_t flag, unsigned long attrs)
520 520
521Identical to dma_alloc_coherent() except that the platform will521Identical to dma_alloc_coherent() except that when the
522choose to return either consistent or non-consistent memory as it sees522DMA_ATTR_NON_CONSISTENT flags is passed in the attrs argument, the
523fit. By using this API, you are guaranteeing to the platform that you523platform will choose to return either consistent or non-consistent memory
524have all the correct and necessary sync points for this memory in the524as it sees fit. By using this API, you are guaranteeing to the platform
525driver should it choose to return non-consistent memory.525that you have all the correct and necessary sync points for this memory
526in the driver should it choose to return non-consistent memory.
526 527
527Note: where the platform can return consistent memory, it will528Note: where the platform can return consistent memory, it will
528guarantee that the sync points become nops.529guarantee that the sync points become nops.
@@ -535,12 +536,13 @@ that simply cannot make consistent memory. · 6 unmodified lines
535::536::
536 537
537 void538 void
538 dma_free_noncoherent(struct device *dev, size_t size, void *cpu_addr,539 dma_free_attrs(struct device *dev, size_t size, void *cpu_addr,
539 dma_addr_t dma_handle)540 dma_addr_t dma_handle, unsigned long attrs)
540 541
541Free memory allocated by the nonconsistent API. All parameters must542Free memory allocated by the dma_alloc_attrs(). All parameters common
542be identical to those passed in (and returned by543parameters must identical to those otherwise passed to dma_fre_coherent,
543dma_alloc_noncoherent()).544and the attrs argument must be identical to the attrs passed to
545dma_alloc_attrs().
544 546
545::547::
546 548
@@ -564,8 +566,8 @@ memory or doing partial flushes. · 17 unmodified lines
564 dma_cache_sync(struct device *dev, void *vaddr, size_t size,566 dma_cache_sync(struct device *dev, void *vaddr, size_t size,
565 enum dma_data_direction direction)567 enum dma_data_direction direction)
566 568
567Do a partial sync of memory that was allocated by569Do a partial sync of memory that was allocated by dma_alloc_attrs() with
568dma_alloc_noncoherent(), starting at virtual address vaddr and570the DMA_ATTR_NON_CONSISTENT flag starting at virtual address vaddr and
569continuing on for size. Again, you *must* observe the cache line571continuing on for size. Again, you *must* observe the cache line
570boundaries when doing this.572boundaries when doing this.
571 573
@@ -590,34 +592,11 @@ size is the size of the area (must be multiples of PAGE_SIZE). · 18 unmodified lines
590 592
591flags can be ORed together and are:593flags can be ORed together and are:
592 594
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
599One 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
605- DMA_MEMORY_EXCLUSIVE - only allocate memory from the declared regions.595- DMA_MEMORY_EXCLUSIVE - only allocate memory from the declared regions.
606 Do not allow dma_alloc_coherent() to fall back to system memory when596 Do not allow dma_alloc_coherent() to fall back to system memory when
607 it's out of memory in the declared region.597 it's out of memory in the declared region.
608 598
609The return value will be either DMA_MEMORY_MAP or DMA_MEMORY_IO and599As a simplification for the platforms, only *one* such region of
610must correspond to a passed in flag (i.e. no returning DMA_MEMORY_IO
611if only DMA_MEMORY_MAP were passed in) for success or zero for
612failure.
613
614Note, for DMA_MEMORY_IO returns, all subsequent memory returned by
615dma_alloc_coherent() may no longer be accessed directly, but instead
616must be accessed using the correct bus functions. If your driver
617isn't prepared to handle this contingency, it should not specify
618DMA_MEMORY_IO in the input flags.
619
620As a simplification for the platforms, only **one** such region of
621memory may be declared per device.600memory may be declared per device.
622 601
623For reasons of efficiency, most platforms choose to track the declared602For 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
22 22
23.DEFAULT:23.DEFAULT:
24 $(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.)24 $(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
25 @echo " SKIP Sphinx $@ target."27 @echo " SKIP Sphinx $@ target."
26 28
27else # HAVE_SPHINX29else # HAVE_SPHINX
@@ -95,16 +97,6 @@ endif # HAVE_SPHINX · 67 unmodified lines
95# The following targets are independent of HAVE_SPHINX, and the rules should97# The following targets are independent of HAVE_SPHINX, and the rules should
96# work or silently pass without Sphinx.98# work or silently pass without Sphinx.
97 99
98# no-ops for the Sphinx toolchain
99sgmldocs:
100 @:
101psdocs:
102 @:
103mandocs:
104 @:
105installmandocs:
106 @:
107
108cleandocs:100cleandocs:
109 $(Q)rm -rf $(BUILDDIR)101 $(Q)rm -rf $(BUILDDIR)
110 $(Q)$(MAKE) BUILDDIR=$(abspath $(BUILDDIR)) $(build)=Documentation/media clean102 $(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
2080<li> <a href="#Scheduler and RCU">Scheduler and RCU</a>.2080<li> <a href="#Scheduler and RCU">Scheduler and RCU</a>.
2081<li> <a href="#Tracing and RCU">Tracing and RCU</a>.2081<li> <a href="#Tracing and RCU">Tracing and RCU</a>.
2082<li> <a href="#Energy Efficiency">Energy Efficiency</a>.2082<li> <a href="#Energy Efficiency">Energy Efficiency</a>.
2083<li> <a href="#Scheduling-Clock Interrupts and RCU">
2084 Scheduling-Clock Interrupts and RCU</a>.
2083<li> <a href="#Memory Efficiency">Memory Efficiency</a>.2085<li> <a href="#Memory Efficiency">Memory Efficiency</a>.
2084<li> <a href="#Performance, Scalability, Response Time, and Reliability">2086<li> <a href="#Performance, Scalability, Response Time, and Reliability">
2085 Performance, Scalability, Response Time, and Reliability</a>.2087 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
2532Flaming me on the Linux-kernel mailing list was apparently not2534Flaming me on the Linux-kernel mailing list was apparently not
2533sufficient to fully vent their ire at RCU's energy-efficiency bugs!2535sufficient to fully vent their ire at RCU's energy-efficiency bugs!
2534 2536
2537<h3><a name="Scheduling-Clock Interrupts and RCU">
2538Scheduling-Clock Interrupts and RCU</a></h3>
2539
2540<p>
2541The kernel transitions between in-kernel non-idle execution, userspace
2542execution, and the idle loop.
2543Depending 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>
2586However, RCU must be reliably informed as to whether any given
2587CPU is currently in the idle loop, and, for <tt>NO_HZ_FULL</tt>,
2588also whether that CPU is executing in usermode, as discussed
2589<a href="#Energy Efficiency">earlier</a>.
2590It also requires that the scheduling-clock interrupt be enabled when
2591RCU 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>
2659But as long as RCU is properly informed of kernel state transitions between
2660in-kernel execution, usermode execution, and idle, and as long as the
2661scheduling-clock interrupt is enabled when RCU needs it to be, you
2662can rest assured that the bugs you encounter will be in some other
2663part of RCU or some other part of the kernel!
2664
2535<h3><a name="Memory Efficiency">Memory Efficiency</a></h3>2665<h3><a name="Memory Efficiency">Memory Efficiency</a></h3>
2536 2666
2537<p>2667<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
23 Yet another exception is where the low real-time latency of RCU's23 Yet another exception is where the low real-time latency of RCU's
24 read-side primitives is critically important.24 read-side primitives is critically important.
25 25
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
261. Does the update code have proper mutual exclusion?341. Does the update code have proper mutual exclusion?
27 35
28 RCU does allow -readers- to run (almost) naked, but -writers- must36 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
40 explain how this single task does not become a major bottleneck on48 explain how this single task does not become a major bottleneck on
41 big multiprocessor machines (for example, if the task is updating49 big multiprocessor machines (for example, if the task is updating
42 information relating to itself that other tasks can read, there50 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.
44 54
452. Do the RCU read-side critical sections make proper use of552. Do the RCU read-side critical sections make proper use of
46 rcu_read_lock() and friends? These primitives are needed56 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
55 Disabling of preemption can serve as rcu_read_lock_sched(), but65 Disabling of preemption can serve as rcu_read_lock_sched(), but
56 is less readable.66 is less readable.
57 67
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
583. Does the update code tolerate concurrent accesses?743. Does the update code tolerate concurrent accesses?
59 75
60 The whole point of RCU is to permit readers to run without76 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
78 94
79 This works quite well, also.95 This works quite well, also.
80 96
81 c. Make updates appear atomic to readers. For example,97 c. Make updates appear atomic to readers. For example,
82 pointer updates to properly aligned fields will98 pointer updates to properly aligned fields will
83 appear atomic, as will individual atomic primitives.99 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-
85 appear to be atomic to RCU readers, nor will sequences101 appear to be atomic to RCU readers, nor will sequences
86 of multiple atomic primitives.102 of multiple atomic primitives.
87 103
@@ -168,8 +184,8 @@ over a rather long period of time, but improvements are always welcome! · 80 unmodified lines
168 184
1695. If call_rcu(), or a related primitive such as call_rcu_bh(),1855. If call_rcu(), or a related primitive such as call_rcu_bh(),
170 call_rcu_sched(), or call_srcu() is used, the callback function186 call_rcu_sched(), or call_srcu() is used, the callback function
171 must be written to be called from softirq context. In particular,187 will be called from softirq context. In particular, it cannot
172 it cannot block.188 block.
173 189
1746. Since synchronize_rcu() can block, it cannot be called from1906. Since synchronize_rcu() can block, it cannot be called from
175 any sort of irq context. The same rule applies for191 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
178 synchronize_sched_expedite(), and synchronize_srcu_expedited().194 synchronize_sched_expedite(), and synchronize_srcu_expedited().
179 195
180 The expedited forms of these primitives have the same semantics196 The expedited forms of these primitives have the same semantics
181 as the non-expedited forms, but expediting is both expensive197 as the non-expedited forms, but expediting is both expensive and
182 and unfriendly to real-time workloads. Use of the expedited198 (with the exception of synchronize_srcu_expedited()) unfriendly
183 primitives should be restricted to rare configuration-change199 to real-time workloads. Use of the expedited primitives should
184 operations that would not normally be undertaken while a real-time200 be restricted to rare configuration-change operations that would
185 workload is running.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.
186 205
187 In particular, if you find yourself invoking one of the expedited206 In particular, if you find yourself invoking one of the expedited
188 primitives repeatedly in a loop, please do everyone a favor:207 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
193 of the system, especially to real-time workloads running on212 of the system, especially to real-time workloads running on
194 the rest of the system.213 the rest of the system.
195 214
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
2017. If the updater uses call_rcu() or synchronize_rcu(), then the2157. If the updater uses call_rcu() or synchronize_rcu(), then the
202 corresponding readers must use rcu_read_lock() and216 corresponding readers must use rcu_read_lock() and
203 rcu_read_unlock(). If the updater uses call_rcu_bh() or217 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
321 Similarly, disabling preemption is not an acceptable substitute335 Similarly, disabling preemption is not an acceptable substitute
322 for rcu_read_lock(). Code that attempts to use preemption336 for rcu_read_lock(). Code that attempts to use preemption
323 disabling where it should be using rcu_read_lock() will break337 disabling where it should be using rcu_read_lock() will break
324 in real-time kernel builds.338 in CONFIG_PREEMPT=y kernel builds.
325 339
326 If you want to wait for interrupt handlers, NMI handlers, and340 If you want to wait for interrupt handlers, NMI handlers, and
327 code under the influence of preempt_disable(), you instead341 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
356 not the case, a self-spawning RCU callback would prevent the370 not the case, a self-spawning RCU callback would prevent the
357 victim CPU from ever going offline.)371 victim CPU from ever going offline.)
358 372
35914. SRCU (srcu_read_lock(), srcu_read_unlock(), srcu_dereference(),37314. Unlike other forms of RCU, it -is- permissible to block in an
360 synchronize_srcu(), synchronize_srcu_expedited(), and call_srcu())374 SRCU read-side critical section (demarked by srcu_read_lock()
361 may only be invoked from process context. Unlike other forms of375 and srcu_read_unlock()), hence the "SRCU": "sleepable RCU".
362 RCU, it -is- permissible to block in an SRCU read-side critical376 Please note that if you don't need to sleep in read-side critical
363 section (demarked by srcu_read_lock() and srcu_read_unlock()),377 sections, you should be using RCU rather than SRCU, because RCU
364 hence the "SRCU": "sleepable RCU". Please note that if you378 is almost always faster and easier to use than is SRCU.
365 don't need to sleep in read-side critical sections, you should be379
366 using RCU rather than SRCU, because RCU is almost always faster380 Also unlike other forms of RCU, explicit initialization and
367 and easier to use than is SRCU.381 cleanup is required either at build time via DEFINE_SRCU()
368 382 or DEFINE_STATIC_SRCU() or at runtime via init_srcu_struct()
369 Also unlike other forms of RCU, explicit initialization383 and cleanup_srcu_struct(). These last two are passed a
370 and cleanup is required via init_srcu_struct() and384 "struct srcu_struct" that defines the scope of a given
371 cleanup_srcu_struct(). These are passed a "struct srcu_struct"385 SRCU domain. Once initialized, the srcu_struct is passed
372 that defines the scope of a given SRCU domain. Once initialized,386 to srcu_read_lock(), srcu_read_unlock() synchronize_srcu(),
373 the srcu_struct is passed to srcu_read_lock(), srcu_read_unlock()387 synchronize_srcu_expedited(), and call_srcu(). A given
374 synchronize_srcu(), synchronize_srcu_expedited(), and call_srcu().388 synchronize_srcu() waits only for SRCU read-side critical
375 A given synchronize_srcu() waits only for SRCU read-side critical
376 sections governed by srcu_read_lock() and srcu_read_unlock()389 sections governed by srcu_read_lock() and srcu_read_unlock()
377 calls that have been passed the same srcu_struct. This property390 calls that have been passed the same srcu_struct. This property
378 is what makes sleeping read-side critical sections tolerable --391 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
390 Therefore, SRCU should be used in preference to rw_semaphore403 Therefore, SRCU should be used in preference to rw_semaphore
391 only in extremely read-intensive situations, or in situations404 only in extremely read-intensive situations, or in situations
392 requiring SRCU's read-side deadlock immunity or low read-side405 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.
394 408
395 Note that, rcu_assign_pointer() relates to SRCU just as it does409 SRCU's expedited primitive (synchronize_srcu_expedited())
396 to other forms of RCU.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.
397 416
39815. The whole point of call_rcu(), synchronize_rcu(), and friends41715. The whole point of call_rcu(), synchronize_rcu(), and friends
399 is to wait until all pre-existing readers have finished before418 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
435 454
436 These debugging aids can help you find problems that are455 These debugging aids can help you find problems that are
437 otherwise extremely difficult to spot.456 otherwise extremely difficult to spot.
457
45818. 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
76 Of these, one was allowed to lapse by the assignee, and the76 Of these, one was allowed to lapse by the assignee, and the
77 others have been contributed to the Linux kernel under GPL.77 others have been contributed to the Linux kernel under GPL.
78 There are now also LGPL implementations of user-level RCU78 There are now also LGPL implementations of user-level RCU
79 available (http://lttng.org/?q=node/18).79 available (http://liburcu.org/).
80 80
81o I hear that RCU needs work in order to support realtime kernels?81o I hear that RCU needs work in order to support realtime kernels?
82 82
83 This work is largely completed. Realtime-friendly RCU can be83 Realtime-friendly RCU can be enabled via the CONFIG_PREEMPT_RCU
84 enabled via the CONFIG_PREEMPT_RCU kernel configuration84 kernel configuration parameter.
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.
88 85
89o Where can I find more information on RCU?86o Where can I find more information on RCU?
90 87
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
25 for an example where the compiler can in fact deduce the exact25 for an example where the compiler can in fact deduce the exact
26 value of the pointer, and thus cause misordering.26 value of the pointer, and thus cause misordering.
27 27
28o 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
28o Avoid cancellation when using the "+" and "-" infix arithmetic45o Avoid cancellation when using the "+" and "-" infix arithmetic
29 operators. For example, for a given variable "x", avoid46 operators. For example, for a given variable "x", avoid
30 "(x-x)". There are similar arithmetic pitfalls from other47 "(x-(uintptr_t)x)" for char* pointers. The compiler is within its
31 arithmetic operators, such as "(x*0)", "(x/(x+1))" or "(x%1)".48 rights to substitute zero for this sort of expression, so that
32 The compiler is within its rights to substitute zero for all of49 subsequent accesses no longer depend on the rcu_dereference(),
33 these expressions, so that subsequent accesses no longer depend50 again possibly resulting in bugs due to misordering.
34 on the rcu_dereference(), again possibly resulting in bugs due
35 to misordering.
36 51
37 Of course, if "p" is a pointer from rcu_dereference(), and "a"52 Of course, if "p" is a pointer from rcu_dereference(), and "a"
38 and "b" are integers that happen to be equal, the expression53 and "b" are integers that happen to be equal, the expression
39 "p+a-b" is safe because its value still necessarily depends on54 "p+a-b" is safe because its value still necessarily depends on
40 the rcu_dereference(), thus maintaining proper ordering.55 the rcu_dereference(), thus maintaining proper ordering.
41 56
42o 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
57o If you are using RCU to protect JITed functions, so that the57o If you are using RCU to protect JITed functions, so that the
58 "()" function-invocation operator is applied to a value obtained58 "()" function-invocation operator is applied to a value obtained
59 (directly or indirectly) from rcu_dereference(), you may need to59 (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
61 This issue arises on some systems when a newly JITed function is61 This issue arises on some systems when a newly JITed function is
62 using the same memory that was used by an earlier JITed function.62 using the same memory that was used by an earlier JITed function.
63 63
64o 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
83o Do not use the results from relational operators ("==", "!=",64o Do not use the results from relational operators ("==", "!=",
84 ">", ">=", "<", or "<=") when dereferencing. For example,65 ">", ">=", "<", or "<=") when dereferencing. For example,
85 the following (quite strange) code is buggy:66 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
263 are delayed for a full grace period? Couldn't this result in263 are delayed for a full grace period? Couldn't this result in
264 rcu_barrier() returning prematurely?264 rcu_barrier() returning prematurely?
265 265
266The current rcu_barrier() implementation is more complex, due to the need
267to avoid disturbing idle CPUs (especially on battery-powered systems)
268and the need to minimally disturb non-idle CPUs in real-time systems.
269However, the code above illustrates the concepts.
270
266 271
267rcu_barrier() Summary272rcu_barrier() Summary
268 273
Documentation/RCU/torture.txt+14−6
@@ -276,15 +276,17 @@ o "Free-Block Circulation": Shows the number of torture structures · 275 unmodified lines
276 somehow gets incremented farther than it should.276 somehow gets incremented farther than it should.
277 277
278Different implementations of RCU can provide implementation-specific278Different implementations of RCU can provide implementation-specific
279additional information. For example, SRCU provides the following279additional information. For example, Tree SRCU provides the following
280additional line:280additional line:
281 281
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)
283 283
284This line shows the per-CPU counter state. The numbers in parentheses are284This line shows the per-CPU counter state, in this case for Tree SRCU
285the values of the "old" and "current" counters for the corresponding CPU.285using a dynamically allocated srcu_struct (hence "srcud-" rather than
286The "idx" value maps the "old" and "current" values to the underlying286"srcu-"). The numbers in parentheses are the values of the "old" and
287array, and is useful for debugging.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
289debugging. The final "T" entry contains the totals of the counters.
288 290
289 291
290USAGE292USAGE
@@ -304,3 +306,9 @@ checked for such errors. The "rmmod" command forces a "SUCCESS", · 13 unmodified lines
304"FAILURE", or "RCU_HOTPLUG" indication to be printk()ed. The first306"FAILURE", or "RCU_HOTPLUG" indication to be printk()ed. The first
305two are self-explanatory, while the last indicates that while there307two are self-explanatory, while the last indicates that while there
306were no RCU failures, CPU-hotplug problems were detected.308were no RCU failures, CPU-hotplug problems were detected.
309
310However, the tools/testing/selftests/rcutorture/bin/kvm.sh script
311provides better automation, including automatic failure analysis.
312It assumes a qemu/kvm-enabled platform, and runs guest OSes out of initrd.
313See tools/testing/selftests/rcutorture/doc/initrd.txt for instructions
314on setting up such an initrd.
Documentation/RCU/whatisRCU.txt+4−1
@@ -890,6 +890,8 @@ SRCU: Critical sections Grace period Barrier · 889 unmodified lines
890 srcu_read_lock_held890 srcu_read_lock_held
891 891
892SRCU: Initialization/cleanup892SRCU: Initialization/cleanup
893 DEFINE_SRCU
894 DEFINE_STATIC_SRCU
893 init_srcu_struct895 init_srcu_struct
894 cleanup_srcu_struct896 cleanup_srcu_struct
895 897
@@ -913,7 +915,8 @@ a. Will readers need to block? If so, you need SRCU. · 17 unmodified lines
913b. What about the -rt patchset? If readers would need to block915b. What about the -rt patchset? If readers would need to block
914 in an non-rt kernel, you need SRCU. If readers would block916 in an non-rt kernel, you need SRCU. If readers would block
915 in a -rt kernel, but not in a non-rt kernel, SRCU is not917 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.)
917 920
918c. Do you need to treat NMI handlers, hardirq handlers,921c. Do you need to treat NMI handlers, hardirq handlers,
919 and code segments with preemption disabled (whether922 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
9 9
10LiveCD-based tutorials are available at10LiveCD-based tutorials are available at
11 11
12http://tomoyo.sourceforge.jp/1.7/1st-step/ubuntu10.04-live/12http://tomoyo.sourceforge.jp/1.8/ubuntu12.04-live.html
13http://tomoyo.sourceforge.jp/1.7/1st-step/centos5-live/13http://tomoyo.sourceforge.jp/1.8/centos6-live.html
14 14
15Though these tutorials use non-LSM version of TOMOYO, they are useful for you15Though these tutorials use non-LSM version of TOMOYO, they are useful for you
16to know what TOMOYO is.16to know what TOMOYO is.
@@ -21,35 +21,35 @@ How to enable TOMOYO? · 4 unmodified lines
21Build the kernel with ``CONFIG_SECURITY_TOMOYO=y`` and pass ``security=tomoyo`` on21Build the kernel with ``CONFIG_SECURITY_TOMOYO=y`` and pass ``security=tomoyo`` on
22kernel's command line.22kernel's command line.
23 23
24Please see http://tomoyo.sourceforge.jp/2.3/ for details.24Please see http://tomoyo.osdn.jp/2.5/ for details.
25 25
26Where is documentation?26Where is documentation?
27=======================27=======================
28 28
29User <-> Kernel interface documentation is available at29User <-> Kernel interface documentation is available at
30http://tomoyo.sourceforge.jp/2.3/policy-reference.html .30http://tomoyo.osdn.jp/2.5/policy-specification/index.html .
31 31
32Materials we prepared for seminars and symposiums are available at32Materials we prepared for seminars and symposiums are available at
33http://sourceforge.jp/projects/tomoyo/docs/?category_id=532&language_id=1 .33http://osdn.jp/projects/tomoyo/docs/?category_id=532&language_id=1 .
34Below lists are chosen from three aspects.34Below lists are chosen from three aspects.
35 35
36What is TOMOYO?36What is TOMOYO?
37 TOMOYO Linux Overview37 TOMOYO Linux Overview
38 http://sourceforge.jp/projects/tomoyo/docs/lca2009-takeda.pdf38 http://osdn.jp/projects/tomoyo/docs/lca2009-takeda.pdf
39 TOMOYO Linux: pragmatic and manageable security for Linux39 TOMOYO Linux: pragmatic and manageable security for Linux
40 http://sourceforge.jp/projects/tomoyo/docs/freedomhectaipei-tomoyo.pdf40 http://osdn.jp/projects/tomoyo/docs/freedomhectaipei-tomoyo.pdf
41 TOMOYO Linux: A Practical Method to Understand and Protect Your Own Linux Box41 TOMOYO Linux: A Practical Method to Understand and Protect Your Own Linux Box
42 http://sourceforge.jp/projects/tomoyo/docs/PacSec2007-en-no-demo.pdf42 http://osdn.jp/projects/tomoyo/docs/PacSec2007-en-no-demo.pdf
43 43
44What can TOMOYO do?44What can TOMOYO do?
45 Deep inside TOMOYO Linux45 Deep inside TOMOYO Linux
46 http://sourceforge.jp/projects/tomoyo/docs/lca2009-kumaneko.pdf46 http://osdn.jp/projects/tomoyo/docs/lca2009-kumaneko.pdf
47 The role of "pathname based access control" in security.47 The role of "pathname based access control" in security.
48 http://sourceforge.jp/projects/tomoyo/docs/lfj2008-bof.pdf48 http://osdn.jp/projects/tomoyo/docs/lfj2008-bof.pdf
49 49
50History of TOMOYO?50History of TOMOYO?
51 Realities of Mainlining51 Realities of Mainlining
52 http://sourceforge.jp/projects/tomoyo/docs/lfj2008.pdf52 http://osdn.jp/projects/tomoyo/docs/lfj2008.pdf
53 53
54What is future plan?54What is future plan?
55====================55====================
@@ -60,6 +60,6 @@ multiple LSM modules at the same time. We feel sorry that you have to give up · 4 unmodified lines
60SELinux/SMACK/AppArmor etc. when you want to use TOMOYO.60SELinux/SMACK/AppArmor etc. when you want to use TOMOYO.
61 61
62We hope that LSM becomes stackable in future. Meanwhile, you can use non-LSM62We hope that LSM becomes stackable in future. Meanwhile, you can use non-LSM
63version of TOMOYO, available at http://tomoyo.sourceforge.jp/1.7/ .63version of TOMOYO, available at http://tomoyo.osdn.jp/1.8/ .
64LSM version of TOMOYO is a subset of non-LSM version of TOMOYO. We are planning64LSM version of TOMOYO is a subset of non-LSM version of TOMOYO. We are planning
65to port non-LSM version's functionalities to LSM versions.65to port non-LSM version's functionalities to LSM versions.
Documentation/admin-guide/devices.txt+5−0
@@ -3081,3 +3081,8 @@ · 3080 unmodified lines
3081 1 = /dev/osd1 Second OSD Device3081 1 = /dev/osd1 Second OSD Device
3082 ...3082 ...
3083 255 = /dev/osd255 256th OSD Device3083 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
138 PPT Parallel port support is enabled.138 PPT Parallel port support is enabled.
139 PS2 Appropriate PS/2 support is enabled.139 PS2 Appropriate PS/2 support is enabled.
140 RAM RAM disk support is enabled.140 RAM RAM disk support is enabled.
141 RDT Intel Resource Director Technology.
141 S390 S390 architecture is enabled.142 S390 S390 architecture is enabled.
142 SCSI Appropriate SCSI support is enabled.143 SCSI Appropriate SCSI support is enabled.
143 A lot of drivers have their options described inside144 A lot of drivers have their options described inside
Documentation/admin-guide/kernel-parameters.txt+37−4
@@ -2233,6 +2233,17 @@ · 2232 unmodified lines
2233 memory contents and reserves bad memory2233 memory contents and reserves bad memory
2234 regions that are detected.2234 regions that are detected.
2235 2235
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
2236 mem_sleep_default= [SUSPEND] Default system suspend mode:2247 mem_sleep_default= [SUSPEND] Default system suspend mode:
2237 s2idle - Suspend-To-Idle2248 s2idle - Suspend-To-Idle
2238 shallow - Power-On Suspend or equivalent (if supported)2249 shallow - Power-On Suspend or equivalent (if supported)
@@ -2633,9 +2644,10 @@ · 394 unmodified lines
2633 In kernels built with CONFIG_NO_HZ_FULL=y, set2644 In kernels built with CONFIG_NO_HZ_FULL=y, set
2634 the specified list of CPUs whose tick will be stopped2645 the specified list of CPUs whose tick will be stopped
2635 whenever possible. The boot CPU will be forced outside2646 whenever possible. The boot CPU will be forced outside
2636 the range to maintain the timekeeping.2647 the range to maintain the timekeeping. Any CPUs
2637 The CPUs in this range must also be included in the2648 in this list will have their RCU callbacks offloaded,
2638 rcu_nocbs= set.2649 just as if they had also been called out in the
2650 rcu_nocbs= boot parameter.
2639 2651
2640 noiotrap [SH] Disables trapped I/O port accesses.2652 noiotrap [SH] Disables trapped I/O port accesses.
2641 2653
@@ -2696,6 +2708,8 @@ · 54 unmodified lines
2696 nopat [X86] Disable PAT (page attribute table extension of2708 nopat [X86] Disable PAT (page attribute table extension of
2697 pagetables) support.2709 pagetables) support.
2698 2710
2711 nopcid [X86-64] Disable the PCID cpu feature.
2712
2699 norandmaps Don't use address space randomization. Equivalent to2713 norandmaps Don't use address space randomization. Equivalent to
2700 echo 0 > /proc/sys/kernel/randomize_va_space2714 echo 0 > /proc/sys/kernel/randomize_va_space
2701 2715
@@ -2750,6 +2764,15 @@ · 48 unmodified lines
2750 If the dependencies are under your control, you can2764 If the dependencies are under your control, you can
2751 turn on cpu0_hotplug.2765 turn on cpu0_hotplug.
2752 2766
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
2753 nptcg= [IA-64] Override max number of concurrent global TLB2776 nptcg= [IA-64] Override max number of concurrent global TLB
2754 purges which is reported from either PAL_VM_SUMMARY or2777 purges which is reported from either PAL_VM_SUMMARY or
2755 SAL PALO.2778 SAL PALO.
@@ -2769,7 +2792,7 @@ · 13 unmodified lines
2769 Allowed values are enable and disable2792 Allowed values are enable and disable
2770 2793
2771 numa_zonelist_order= [KNL, BOOT] Select zonelist order for NUMA.2794 numa_zonelist_order= [KNL, BOOT] Select zonelist order for NUMA.
2772 one of ['zone', 'node', 'default'] can be specified2795 'node', 'default' can be specified
2773 This can be set from sysctl after boot.2796 This can be set from sysctl after boot.
2774 See Documentation/sysctl/vm.txt for details.2797 See Documentation/sysctl/vm.txt for details.
2775 2798
@@ -3598,6 +3621,12 @@ · 822 unmodified lines
3598 Run specified binary instead of /init from the ramdisk,3621 Run specified binary instead of /init from the ramdisk,
3599 used for early userspace startup. See initrd.3622 used for early userspace startup. See initrd.
3600 3623
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
3601 reboot= [KNL]3630 reboot= [KNL]
3602 Format (x86 or x86_64):3631 Format (x86 or x86_64):
3603 [w[arm] | c[old] | h[ard] | s[oft] | g[pio]] \3632 [w[arm] | c[old] | h[ard] | s[oft] | g[pio]] \
@@ -4375,6 +4404,10 @@ · 771 unmodified lines
4375 decrease the size and leave more room for directly4404 decrease the size and leave more room for directly
4376 mapped kernel RAM.4405 mapped kernel RAM.
4377 4406
4407 vmcp_cma=nn[MG] [KNL,S390]
4408 Sets the memory size reserved for contiguous memory
4409 allocations for the vmcp device driver.
4410
4378 vmhalt= [KNL,S390] Perform z/VM CP command after system halt.4411 vmhalt= [KNL,S390] Perform z/VM CP command after system halt.
4379 Format: <command>4412 Format: <command>
4380 4413
Documentation/admin-guide/pm/cpufreq.rst+0−8
@@ -479,14 +479,6 @@ This governor exposes the following tunables: · 478 unmodified lines
479 479
480 # echo `$(($(cat cpuinfo_transition_latency) * 750 / 1000)) > ondemand/sampling_rate480 # echo `$(($(cat cpuinfo_transition_latency) * 750 / 1000)) > ondemand/sampling_rate
481 481
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
490``up_threshold``482``up_threshold``
491 If the estimated CPU load is above this value (in percent), the governor483 If the estimated CPU load is above this value (in percent), the governor
492 will set the frequency to the maximum value allowed for the policy.484 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
5.. toctree::5.. toctree::
6 :maxdepth: 26 :maxdepth: 2
7 7
8 cpufreq8 strategies
9 intel_pstate9 system-wide
10 10 working-state
11.. only:: subproject and html
12
13 Indices
14 =======
15
16 * :ref:`genindex`
Documentation/admin-guide/pm/intel_pstate.rst+8−53
@@ -167,35 +167,17 @@ is set. · 166 unmodified lines
167``powersave``167``powersave``
168.............168.............
169 169
170Without HWP, this P-state selection algorithm generally depends on the170Without HWP, this P-state selection algorithm is similar to the algorithm
171processor model and/or the system profile setting in the ACPI tables and there
172are two variants of it.
173
174One of them is used with processors from the Atom line and (regardless of the
175processor 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
178that feature has not been enabled (that is, with the ``intel_pstate=no_hwp``
179argument in the kernel command line). It is similar to the algorithm
180implemented by the generic ``schedutil`` scaling governor except that the171implemented by the generic ``schedutil`` scaling governor except that the
181utilization metric used by it is based on numbers coming from feedback172utilization metric used by it is based on numbers coming from feedback
182registers of the CPU. It generally selects P-states proportional to the173registers of the CPU. It generally selects P-states proportional to the
183current CPU utilization, so it is referred to as the "proportional" algorithm.174current CPU utilization.
184 175
185The second variant of the ``powersave`` P-state selection algorithm, used in all176This algorithm is run by the driver's utilization update callback for the
186of the other cases (generally, on processors from the Core line, so it is177given CPU when it is invoked by the CPU scheduler, but not more often than
187referred to as the "Core" algorithm), is based on the values read from the APERF178every 10 ms. Like in the ``performance`` case, the hardware configuration
188and MPERF feedback registers and the previously requested target P-state.179is not touched if the new P-state turns out to be the same as the current
189It does not really take CPU utilization into account explicitly, but as a rule180one.
190it causes the CPU P-state to ramp up very quickly in response to increased
191utilization which is generally desirable in server environments.
192
193Regardless of the variant, this algorithm is run by the driver's utilization
194update callback for the given CPU when it is invoked by the CPU scheduler, but
195not more often than every 10 ms (that can be tweaked via ``debugfs`` in `this
196particular case <Tuning Interface in debugfs_>`_). Like in the ``performance``
197case, the hardware configuration is not touched if the new P-state turns out to
198be the same as the current one.
199 181
200This is the default P-state selection algorithm if the182This is the default P-state selection algorithm if the
201:c:macro:`CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE` kernel configuration option183: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
720 gnome-shell-3409 [001] ..s. 2537.650850: intel_pstate_set_pstate <-intel_pstate_timer_func702 gnome-shell-3409 [001] ..s. 2537.650850: intel_pstate_set_pstate <-intel_pstate_timer_func
721 <idle>-0 [000] ..s. 2537.654843: intel_pstate_set_pstate <-intel_pstate_timer_func703 <idle>-0 [000] ..s. 2537.654843: intel_pstate_set_pstate <-intel_pstate_timer_func
722 704
723Tuning Interface in ``debugfs``
724-------------------------------
725
726The ``powersave`` algorithm provided by ``intel_pstate`` for `the Core line of
727processors in the active mode <powersave_>`_ is based on a `PID controller`_
728whose parameters were chosen to address a number of different use cases at the
729same time. However, it still is possible to fine-tune it to a specific workload
730and the ``debugfs`` interface under ``/sys/kernel/debug/pstate_snb/`` is
731provided for this purpose. [Note that the ``pstate_snb`` directory will be
732present only if the specific P-state selection algorithm matching the interface
733in it actually is in use.]
734
735The following files present in that directory can be used to modify the PID
736controller 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
745Note, however, that achieving desirable results this way generally requires
746expert-level understanding of the power vs performance tradeoff, so extra care
747is recommended when attempting to do that.
748
749 705
750.. _LCEU2015: http://events.linuxfoundation.org/sites/events/files/slides/LinuxConEurope_2015.pdf706.. _LCEU2015: http://events.linuxfoundation.org/sites/events/files/slides/LinuxConEurope_2015.pdf
751.. _SDM: http://www.intel.com/content/www/us/en/architecture-and-technology/64-ia-32-architectures-software-developer-system-programming-manual-325384.html707.. _SDM: http://www.intel.com/content/www/us/en/architecture-and-technology/64-ia-32-architectures-software-developer-system-programming-manual-325384.html
752.. _ACPI specification: http://www.uefi.org/sites/default/files/resources/ACPI_6_1.pdf708.. _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===================
2System Sleep States
3===================
4
5::
6
7 Copyright (c) 2017 Intel Corp., Rafael J. Wysocki <rafael.j.wysocki@intel.com>
8
9Sleep states are global low-power states of the entire system in which user
10space code cannot be executed and the overall system activity is significantly
11reduced.
12
13
14Sleep States That Can Be Supported
15==================================
16
17Depending on its configuration and the capabilities of the platform it runs on,
18the Linux kernel can support up to four system sleep states, includig
19hibernation and up to three variants of system suspend. The sleep states that
20can be supported by the kernel are listed below.
21
22.. _s2idle:
23
24Suspend-to-Idle
25---------------
26
27This is a generic, pure software, light-weight variant of system suspend (also
28referred to as S2I or S2Idle). It allows more energy to be saved relative to
29runtime idle by freezing user space, suspending the timekeeping and putting all
30I/O devices into low-power states (possibly lower-power than available in the
31working state), such that the processors can spend time in their deepest idle
32states while the system is suspended.
33
34The system is woken up from this state by in-band interrupts, so theoretically
35any devices that can cause interrupts to be generated in the working state can
36also be set up as wakeup devices for S2Idle.
37
38This state can be used on platforms without support for :ref:`standby <standby>`
39or :ref:`suspend-to-RAM <s2ram>`, or it can be used in addition to any of the
40deeper system suspend variants to provide reduced resume latency. It is always
41supported if the :c:macro:`CONFIG_SUSPEND` kernel configuration option is set.
42
43.. _standby:
44
45Standby
46-------
47
48This state, if supported, offers moderate, but real, energy savings, while
49providing a relatively straightforward transition back to the working state. No
50operating state is lost (the system core logic retains power), so the system can
51go back to where it left off easily enough.
52
53In addition to freezing user space, suspending the timekeeping and putting all
54I/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
56are suspended during transitions into this state. For this reason, it should
57allow more energy to be saved relative to :ref:`suspend-to-idle <s2idle>`, but
58the resume latency will generally be greater than for that state.
59
60The set of devices that can wake up the system from this state usually is
61reduced relative to :ref:`suspend-to-idle <s2idle>` and it may be necessary to
62rely on the platform for setting up the wakeup functionality as appropriate.
63
64This state is supported if the :c:macro:`CONFIG_SUSPEND` kernel configuration
65option is set and the support for it is registered by the platform with the
66core system suspend subsystem. On ACPI-based systems this state is mapped to
67the S1 system state defined by ACPI.
68
69.. _s2ram:
70
71Suspend-to-RAM
72--------------
73
74This state (also referred to as STR or S2RAM), if supported, offers significant
75energy savings as everything in the system is put into a low-power state, except
76for memory, which should be placed into the self-refresh mode to retain its
77contents. All of the steps carried out when entering :ref:`standby <standby>`
78are also carried out during transitions to S2RAM. Additional operations may
79take place depending on the platform capabilities. In particular, on ACPI-based
80systems the kernel passes control to the platform firmware (BIOS) as the last
81step during S2RAM transitions and that usually results in powering down some
82more low-level components that are not directly controlled by the kernel.
83
84The state of devices and CPUs is saved and held in memory. All devices are
85suspended and put into low-power states. In many cases, all peripheral buses
86lose power when entering S2RAM, so devices must be able to handle the transition
87back to the "on" state.
88
89On ACPI-based systems S2RAM requires some minimal boot-strapping code in the
90platform firmware to resume the system from it. This may be the case on other
91platforms too.
92
93The set of devices that can wake up the system from S2RAM usually is reduced
94relative to :ref:`suspend-to-idle <s2idle>` and :ref:`standby <standby>` and it
95may be necessary to rely on the platform for setting up the wakeup functionality
96as appropriate.
97
98S2RAM is supported if the :c:macro:`CONFIG_SUSPEND` kernel configuration option
99is set and the support for it is registered by the platform with the core system
100suspend subsystem. On ACPI-based systems it is mapped to the S3 system state
101defined by ACPI.
102
103.. _hibernation:
104
105Hibernation
106-----------
107
108This state (also referred to as Suspend-to-Disk or STD) offers the greatest
109energy savings and can be used even in the absence of low-level platform support
110for system suspend. However, it requires some low-level code for resuming the
111system to be present for the underlying CPU architecture.
112
113Hibernation is significantly different from any of the system suspend variants.
114It takes three system state changes to put it into hibernation and two system
115state changes to resume it.
116
117First, when hibernation is triggered, the kernel stops all system activity and
118creates a snapshot image of memory to be written into persistent storage. Next,
119the system goes into a state in which the snapshot image can be saved, the image
120is written out and finally the system goes into the target low-power state in
121which power is cut from almost all of its hardware components, including memory,
122except for a limited set of wakeup devices.
123
124Once the snapshot image has been written out, the system may either enter a
125special low-power state (like ACPI S4), or it may simply power down itself.
126Powering down means minimum power draw and it allows this mechanism to work on
127any system. However, entering a special low-power state may allow additional
128means of system wakeup to be used (e.g. pressing a key on the keyboard or
129opening a laptop lid).
130
131After wakeup, control goes to the platform firmware that runs a boot loader
132which boots a fresh instance of the kernel (control may also go directly to
133the boot loader, depending on the system configuration, but anyway it causes
134a 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
136persistent storage and if one is found, it is loaded into memory. Next, all
137activity in the system is stopped and the restore kernel overwrites itself with
138the image contents and jumps into a special trampoline area in the original
139kernel stored in the image (referred to as the ``image kernel``), which is where
140the special architecture-specific low-level code is needed. Finally, the
141image kernel restores the system to the pre-hibernation state and allows user
142space to run again.
143
144Hibernation is supported if the :c:macro:`CONFIG_HIBERNATION` kernel
145configuration option is set. However, this option can only be set if support
146for the given CPU architecture includes the low-level code for system resume.
147
148
149Basic ``sysfs`` Interfaces for System Suspend and Hibernation
150=============================================================
151
152The following files located in the :file:`/sys/power/` directory can be used by
153user 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
229According 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"
231directly 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
234into the :ref:`standby <standby>` state (the strings to write to the control
235files in that case are "standby" or "shallow" and "mem", respectively) if that
236state is supported by the platform. However, there is only one way to make the
237system 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
240The default suspend variant (ie. the one to be used without writing anything
241into :file:`/sys/power/mem_sleep`) is either "deep" (on the majority of systems
242supporting :ref:`suspend-to-RAM <s2ram>`) or "s2idle", but it can be overridden
243by the value of the "mem_sleep_default" parameter in the kernel command line.
244On some ACPI-based systems, depending on the information in the ACPI tables, the
245default 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===========================
2Power Management Strategies
3===========================
4
5::
6
7 Copyright (c) 2017 Intel Corp., Rafael J. Wysocki <rafael.j.wysocki@intel.com>
8
9The Linux kernel supports two major high-level power management strategies.
10
11One of them is based on using global low-power states of the whole system in
12which user space code cannot be executed and the overall system activity is
13significantly reduced, referred to as :doc:`sleep states <sleep-states>`. The
14kernel puts the system into one of these states when requested by user space
15and the system stays in it until a special signal is received from one of
16designated devices, triggering a transition to the ``working state`` in which
17user space code can run. Because sleep states are global and the whole system
18is affected by the state changes, this strategy is referred to as the
19:doc:`system-wide power management <system-wide>`.
20
21The other strategy, referred to as the :doc:`working-state power management
22<working-state>`, is based on adjusting the power states of individual hardware
23components of the system, as needed, in the working state. In consequence, if
24this strategy is in use, the working state of the system usually does not
25correspond to any particular physical configuration of it, but can be treated as
26a metastate covering a range of different power states of the system in which
27the 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
29allowing them to process data and to be accessed by software. In turn, if they
30are inactive, ideally, they should be in low-power states in which they may not
31be accessible.
32
33If 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
35draw (or maximum energy usage) of it. If all of them are inactive, the system
36as a whole is regarded as "runtime idle" which may be very close to a sleep
37state from the physical system configuration and power draw perspective, but
38then it takes much less time and effort to start executing user space code than
39for the same system in a sleep state. However, transitions from sleep states
40back to the working state can only be started by a limited set of devices, so
41typically the system can spend much more time in a sleep state than it can be
42runtime idle in one go. For this reason, systems usually use less energy in
43sleep states than when they are runtime idle most of the time.
44
45Moreover, the two power management strategies address different usage scenarios.
46Namely, if the user indicates that the system will not be in use going forward,
47for example by closing its lid (if the system is a laptop), it probably should
48go into a sleep state at that point. On the other hand, if the user simply goes
49away from the laptop keyboard, it probably should stay in the working state and
50use the working-state power management in case it becomes idle, because the user
51may come back to it at any time and then may want the system to be immediately
52accessible.
Documentation/admin-guide/pm/system-wide.rst+8−0
@@ -0,0 +1,8 @@
1============================
2System-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==============================
2Working-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
60 60
61 /* some platform code, e.g. SMP initialization */61 /* some platform code, e.g. SMP initialization */
62 62
63 __raw_writel(virt_to_phys(exynos4_secondary_startup),63 __raw_writel(__pa_symbol(exynos4_secondary_startup),
64 CPU1_BOOT_REG);64 CPU1_BOOT_REG);
65 65
66 /* Call Exynos specific smc call */66 /* Call Exynos specific smc call */
Documentation/arm64/cpu-feature-registers.txt+2−0
@@ -179,6 +179,8 @@ infrastructure: · 178 unmodified lines
179 | FCMA | [19-16] | y |179 | FCMA | [19-16] | y |
180 |--------------------------------------------------|180 |--------------------------------------------------|
181 | JSCVT | [15-12] | y |181 | JSCVT | [15-12] | y |
182 |--------------------------------------------------|
183 | DPB | [3-0] | y |
182 x--------------------------------------------------x184 x--------------------------------------------------x
183 185
184Appendix I: Example186Appendix I: Example
Documentation/atomic_bitops.txt+66−0
@@ -0,0 +1,66 @@
1
2On atomic bitops.
3
4
5While our bitmap_{}() functions are non-atomic, we have a number of operations
6operating on single bits in a bitmap that are atomic.
7
8
9API
10---
11
12The single bit operations are:
13
14Non-RMW ops:
15
16 test_bit()
17
18RMW atomic operations without return value:
19
20 {set,clear,change}_bit()
21 clear_bit_unlock()
22
23RMW atomic operations with return value:
24
25 test_and_{set,clear,change}_bit()
26 test_and_set_bit_lock()
27
28Barriers:
29
30 smp_mb__{before,after}_atomic()
31
32
33All RMW atomic operations have a '__' prefixed variant which is non-atomic.
34
35
36SEMANTICS
37---------
38
39Non-atomic ops:
40
41In particular __clear_bit_unlock() suffers the same issue as atomic_set(),
42which is why the generic version maps to clear_bit_unlock(), see atomic_t.txt.
43
44
45RMW ops:
46
47The test_and_{}_bit() operations return the original value of the bit.
48
49
50ORDERING
51--------
52
53Like 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
61Except for test_and_set_bit_lock() which has ACQUIRE semantics and
62clear_bit_unlock() which has RELEASE semantics.
63
64Since a platform only has a single means of achieving atomic operations
65the same barriers as for atomic_t are used, see atomic_t.txt.
66
Documentation/atomic_t.txt+242−0
@@ -0,0 +1,242 @@
1
2On atomic types (atomic_t atomic64_t and atomic_long_t).
3
4The atomic type provides an interface to the architecture's means of atomic
5RMW operations between CPUs (atomic operations on MMIO are not supported and
6can lead to fatal traps on some platforms).
7
8API
9---
10
11The 'full' API consists of (atomic64_ and atomic_long_ prefixes omitted for
12brevity):
13
14Non-RMW ops:
15
16 atomic_read(), atomic_set()
17 atomic_read_acquire(), atomic_set_release()
18
19
20RMW atomic operations:
21
22Arithmetic:
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
29Bitwise:
30
31 atomic_{and,or,xor,andnot}()
32 atomic_fetch_{and,or,xor,andnot}{,_relaxed,_acquire,_release}()
33
34
35Swap:
36
37 atomic_xchg{,_relaxed,_acquire,_release}()
38 atomic_cmpxchg{,_relaxed,_acquire,_release}()
39 atomic_try_cmpxchg{,_relaxed,_acquire,_release}()
40
41
42Reference 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
48Misc:
49
50 atomic_inc_and_test(), atomic_add_negative()
51 atomic_dec_unless_positive(), atomic_inc_unless_negative()
52
53
54Barriers:
55
56 smp_mb__{before,after}_atomic()
57
58
59
60SEMANTICS
61---------
62
63Non-RMW ops:
64
65The non-RMW ops are (typically) regular LOADs and STOREs and are canonically
66implemented using READ_ONCE(), WRITE_ONCE(), smp_load_acquire() and
67smp_store_release() respectively.
68
69The one detail to this is that atomic_set{}() should be observable to the RMW
70ops. 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
91In this case we would expect the atomic_set() from CPU1 to either happen
92before 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
94outcome.
95
96This is typically true on 'normal' platforms, where a regular competing STORE
97will invalidate a LL/SC or fail a CMPXCHG.
98
99The obvious case where this is not so is when we need to implement atomic ops
100with 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
112the typical solution is to then implement atomic_set{}() with atomic_xchg().
113
114
115RMW ops:
116
117These 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
136All these operations are SMP atomic; that is, the operations (for a single
137atomic variable) can be fully ordered and no intermediate state is lost or
138visible.
139
140
141ORDERING (go read memory-barriers.txt first)
142--------
143
144The 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
155Except 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
161Where 'unordered' is against other memory locations. Address dependencies are
162not defeated.
163
164Fully ordered primitives are ordered against everything prior and everything
165subsequent. Therefore a fully ordered primitive is like having an smp_mb()
166before and an smp_mb() after the primitive.
167
168
169The barriers:
170
171 smp_mb__{before,after}_atomic()
172
173only apply to the RMW ops and can be used to augment/upgrade the ordering
174inherent to the used atomic op. These barriers provide a full smp_mb().
175
176These helper barriers exist because architectures have varying implicit
177ordering on their SMP atomic primitives. For example our TSO architectures
178provide full ordered atomics and these barriers are no-ops.
179
180Thus:
181
182 atomic_fetch_add();
183
184is equivalent to:
185
186 smp_mb__before_atomic();
187 atomic_fetch_add_relaxed();
188 smp_mb__after_atomic();
189
190However the atomic_fetch_add() might be implemented more efficiently.
191
192Further, while something like:
193
194 smp_mb__before_atomic();
195 atomic_dec(&X);
196
197is a 'typical' RELEASE pattern, the barrier is strictly stronger than
198a RELEASE. Similarly for something like:
199
200 atomic_inc(&X);
201 smp_mb__after_atomic();
202
203is an ACQUIRE pattern (though very much not typical), but again the barrier is
204strictly 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
228This should not happen; but a hypothetical atomic_inc_acquire() --
229(void)atomic_fetch_inc_acquire() for instance -- would allow the outcome,
230since 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
242is 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
16schedules that may lead to a lower throughput. If your main or only16schedules that may lead to a lower throughput. If your main or only
17goal, for a given device, is to achieve the maximum-possible17goal, for a given device, is to achieve the maximum-possible
18throughput at all times, then do switch off all low-latency heuristics18throughput at all times, then do switch off all low-latency heuristics
19for that device, by setting low_latency to 0. Full details in Section 3.19for that device, by setting low_latency to 0. See Section 3 for
20details on how to configure BFQ for the desired tradeoff between
21latency and throughput, or on how to maximize throughput.
20 22
21On average CPUs, the current version of BFQ can handle devices23On average CPUs, the current version of BFQ can handle devices
22performing at most ~30K IOPS; at most ~50 KIOPS on faster CPUs. As a24performing at most ~30K IOPS; at most ~50 KIOPS on faster CPUs. As a
23reference, 30-50 KIOPS correspond to very high bandwidths with25reference, 30-50 KIOPS correspond to very high bandwidths with
24sequential I/O (e.g., 8-12 GB/s if I/O requests are 256 KB large), and26sequential I/O (e.g., 8-12 GB/s if I/O requests are 256 KB large), and
25to 120-200 MB/s with 4KB random I/O. BFQ has not yet been tested on27to 120-200 MB/s with 4KB random I/O. BFQ is currently being tested on
26multi-queue devices.28multi-queue devices too.
27 29
28The table of contents follow. Impatients can just jump to Section 3.30The table of contents follow. Impatients can just jump to Section 3.
29 31
@@ -33,7 +35,7 @@ CONTENTS · 3 unmodified lines
33 1-1 Personal systems35 1-1 Personal systems
34 1-2 Server systems36 1-2 Server systems
352. How does BFQ work?372. How does BFQ work?
363. What are BFQ's tunable?383. What are BFQ's tunables and how to properly configure BFQ?
374. BFQ group scheduling394. BFQ group scheduling
38 4-1 Service guarantees provided40 4-1 Service guarantees provided
39 4-2 Interface41 4-2 Interface
@@ -145,19 +147,28 @@ plus a lot of code, are borrowed from CFQ. · 105 unmodified lines
145 contrast, BFQ may idle the device for a short time interval,147 contrast, BFQ may idle the device for a short time interval,
146 giving the process the chance to go on being served if it issues148 giving the process the chance to go on being served if it issues
147 a new request in time. Device idling typically boosts the149 a new request in time. Device idling typically boosts the
148 throughput on rotational devices, if processes do synchronous150 throughput on rotational devices and on non-queueing flash-based
149 and sequential I/O. In addition, under BFQ, device idling is151 devices, if processes do synchronous and sequential I/O. In
150 also instrumental in guaranteeing the desired throughput152 addition, under BFQ, device idling is also instrumental in
151 fraction to processes issuing sync requests (see the description153 guaranteeing the desired throughput fraction to processes
152 of the slice_idle tunable in this document, or [1, 2], for more154 issuing sync requests (see the description of the slice_idle
153 details).155 tunable in this document, or [1, 2], for more details).
154 156
155 - With respect to idling for service guarantees, if several157 - With respect to idling for service guarantees, if several
156 processes are competing for the device at the same time, but158 processes are competing for the device at the same time, but
157 all processes (and groups, after the following commit) have159 all processes and groups have the same weight, then BFQ
158 the same weight, then BFQ guarantees the expected throughput160 guarantees the expected throughput distribution without ever
159 distribution without ever idling the device. Throughput is161 idling the device. Throughput is thus as high as possible in
160 thus as high as possible in this common scenario.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.
161 172
162 - If low-latency mode is enabled (default configuration), BFQ173 - If low-latency mode is enabled (default configuration), BFQ
163 executes some special heuristics to detect interactive and soft174 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
191 - Queues are scheduled according to a variant of WF2Q+, named202 - Queues are scheduled according to a variant of WF2Q+, named
192 B-WF2Q+, and implemented using an augmented rb-tree to preserve an203 B-WF2Q+, and implemented using an augmented rb-tree to preserve an
193 O(log N) overall complexity. See [2] for more details. B-WF2Q+ is204 O(log N) overall complexity. See [2] for more details. B-WF2Q+ is
194 also ready for hierarchical scheduling. However, for a cleaner205 also ready for hierarchical scheduling, details in Section 4.
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.
198 206
199 - B-WF2Q+ guarantees a tight deviation with respect to an ideal,207 - B-WF2Q+ guarantees a tight deviation with respect to an ideal,
200 perfectly fair, and smooth service. In particular, B-WF2Q+208 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
249 the Idle class, to prevent it from starving.257 the Idle class, to prevent it from starving.
250 258
251 259
2523. What are BFQ's tunable?2603. What are BFQ's tunables and how to properly configure BFQ?
253==========================261=============================================================
262
263Most BFQ tunables affect service guarantees (basically latency and
264fairness) and throughput. For full details on how to choose the
265desired tradeoff between service guarantees and throughput, see the
266parameters slice_idle, strict_guarantees and low_latency. For details
267on how to maximise throughput, see slice_idle, timeout_sync and
268max_budget. The other performance-related parameters have been
269inherited from, and have been preserved mostly for compatibility with
270CFQ. So far, no performance improvement has been reported after
271changing the latter parameters in BFQ.
254 272
255The tunables back_seek-max, back_seek_penalty, fifo_expire_async and273In particular, the tunables back_seek-max, back_seek_penalty,
256fifo_expire_sync below are the same as in CFQ. Their description is274fifo_expire_async and fifo_expire_sync below are the same as in
257just copied from that for CFQ. Some considerations in the description275CFQ. Their description is just copied from that for CFQ. Some
258of slice_idle are copied from CFQ too.276considerations in the description of slice_idle are copied from CFQ
277too.
259 278
260per-process ioprio and weight279per-process ioprio and weight
261-----------------------------280-----------------------------
@@ -285,15 +304,17 @@ number of seeks and see improved throughput. · 23 unmodified lines
285 304
286Setting slice_idle to 0 will remove all the idling on queues and one305Setting slice_idle to 0 will remove all the idling on queues and one
287should see an overall improved throughput on faster storage devices306should see an overall improved throughput on faster storage devices
288like multiple SATA/SAS disks in hardware RAID configuration.307like multiple SATA/SAS disks in hardware RAID configuration, as well
308as flash-based storage with internal command queueing (and
309parallelism).
289 310
290So depending on storage and workload, it might be useful to set311So depending on storage and workload, it might be useful to set
291slice_idle=0. In general for SATA/SAS disks and software RAID of312slice_idle=0. In general for SATA/SAS disks and software RAID of
292SATA/SAS disks keeping slice_idle enabled should be useful. For any313SATA/SAS disks keeping slice_idle enabled should be useful. For any
293configurations where there are multiple spindles behind single LUN314configurations where there are multiple spindles behind single LUN
294(Host based hardware RAID controller or for storage arrays), setting315(Host based hardware RAID controller or for storage arrays), or with
295slice_idle=0 might end up in better throughput and acceptable316flash-based fast storage, setting slice_idle=0 might end up in better
296latencies.317throughput and acceptable latencies.
297 318
298Idling is however necessary to have service guarantees enforced in319Idling is however necessary to have service guarantees enforced in
299case of differentiated weights or differentiated I/O-request lengths.320case 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
312where it is beneficial also for throughput, idling can severely impact333where it is beneficial also for throughput, idling can severely impact
313throughput. One important case is random workload. Because of this334throughput. One important case is random workload. Because of this
314issue, BFQ tends to avoid idling as much as possible, when it is not335issue, BFQ tends to avoid idling as much as possible, when it is not
315beneficial also for throughput. As a consequence of this behavior, and336beneficial also for throughput (as detailed in Section 2). As a
316of further issues described for the strict_guarantees tunable,337consequence of this behavior, and of further issues described for the
317short-term service guarantees may be occasionally violated. And, in338strict_guarantees tunable, short-term service guarantees may be
318some cases, these guarantees may be more important than guaranteeing339occasionally violated. And, in some cases, these guarantees may be
319maximum throughput. For example, in video playing/streaming, a very340more important than guaranteeing maximum throughput. For example, in
320low drop rate may be more important than maximum throughput. In these341video playing/streaming, a very low drop rate may be more important
321cases, consider setting the strict_guarantees parameter.342than maximum throughput. In these cases, consider setting the
343strict_guarantees parameter.
322 344
323strict_guarantees345strict_guarantees
324-----------------346-----------------
@@ -420,6 +442,13 @@ The default value is 0, which enables auto-tuning: BFQ sets max_budget · 95 unmodified lines
420to the maximum number of sectors that can be served during442to the maximum number of sectors that can be served during
421timeout_sync, according to the estimated peak rate.443timeout_sync, according to the estimated peak rate.
422 444
445For specific devices, some users have occasionally reported to have
446reached a higher throughput by setting max_budget explicitly, i.e., by
447setting max_budget to a higher value than 0. In particular, they have
448set max_budget to higher values than those to which BFQ would have set
449it with auto-tuning. An alternative way to achieve this goal is to
450just increase the value of timeout_sync, leaving max_budget equal to 0.
451
423weights452weights
424-------453-------
425 454
@@ -427,51 +456,6 @@ Read-only parameter, used to show the weights of the currently active · 1 unmodified line
427BFQ queues.456BFQ queues.
428 457
429 458
430wr_ tunables
431------------
432
433BFQ exports a few parameters to control/tune the behavior of
434low-latency heuristics.
435
436wr_coeff
437
438Factor by which the weight of a weight-raised queue is multiplied. If
439the queue is deemed soft real-time, then the weight is further
440multiplied by an additional, constant factor.
441
442wr_max_time
443
444Maximum duration of a weight-raising period for an interactive task
445(ms). If set to zero (default value), then this value is computed
446automatically, as a function of the peak rate of the device. In any
447case, when the value of this parameter is read, it always reports the
448current duration, regardless of whether it has been set manually or
449computed automatically.
450
451wr_max_softrt_rate
452
453Maximum service rate below which a queue is deemed to be associated
454with a soft real-time application, and is then weight-raised
455accordingly (sectors/sec).
456
457wr_min_idle_time
458
459Minimum idle period after which interactive weight-raising may be
460reactivated for a queue (in ms).
461
462wr_rt_max_time
463
464Maximum weight-raising duration for soft real-time queues (in ms). The
465start time from which this duration is considered is automatically
466moved forward if the queue is detected to be still soft real-time
467before the current soft real-time weight-raising period finishes.
468
469wr_min_inter_arr_async
470
471Minimum period between I/O request arrivals after which weight-raising
472may be reactivated for an already busy async queue (in ms).
473
474
4754. Group scheduling with BFQ4594. Group scheduling with BFQ
476============================460============================
477 461
Documentation/blockdev/cciss.txt+0−194
@@ -1,194 +0,0 @@
1This driver is for Compaq's SMART Array Controllers.
2
3Supported Cards:
4----------------
5
6This 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
33Detecting drive failures:
34-------------------------
35
36To get the status of logical volumes and to detect physical drive
37failures, you can use the cciss_vol_status program found here:
38http://cciss.sourceforge.net/#cciss_utils
39
40Device Naming:
41--------------
42
43If nodes are not already created in the /dev/cciss directory, run as root:
44
45# cd /dev
46# ./MAKEDEV cciss
47
48You need some entries in /dev for the cciss device. The MAKEDEV script
49can make device nodes for you automatically. Currently the device setup
50is as follows:
51
52Major 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
62Minor 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
70The 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
81CCISS simple mode support
82-------------------------
83
84The "cciss_simple_mode=1" boot parameter may be used to prevent the driver
85from putting the controller into "performant" mode. The difference is that
86with simple mode, each command completion requires an interrupt, while with
87"performant mode" (the default, and ordinarily better performing) it is
88possible to have multiple command completions indicated by a single
89interrupt.
90
91SCSI tape drive and medium changer support
92------------------------------------------
93
94SCSI sequential access devices and medium changer devices are supported and
95appropriate device nodes are automatically created. (e.g.
96/dev/st0, /dev/st1, etc. See the "st" man page for more details.)
97You must enable "SCSI tape drive support for Smart Array 5xxx" and
98"SCSI support" in your kernel configuration to be able to use SCSI
99tape drives with your Smart Array 5xxx controller.
100
101Additionally, note that the driver will engage the SCSI core at init
102time if any tape drives or medium changers are detected. The driver may
103also be directed to dynamically engage the SCSI core via the /proc filesystem
104entry which the "block" side of the driver creates as
105/proc/driver/cciss/cciss* at runtime. This is best done via a script.
106
107For example:
108
109 for x in /proc/driver/cciss/cciss[0-9]*
110 do
111 echo "engage scsi" > $x
112 done
113
114Once 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
117Note also that if no sequential access devices or medium changers are
118detected, the SCSI core will not be engaged by the action of the above
119script.
120
121Hot plug support for SCSI tape drives
122-------------------------------------
123
124Hot plugging of SCSI tape drives is supported, with some caveats.
125The cciss driver must be informed that changes to the SCSI bus
126have been made. This may be done via the /proc filesystem.
127For example:
128
129 echo "rescan" > /proc/scsi/cciss0/1
130
131This causes the driver to query the adapter about changes to the
132physical SCSI buses and/or fibre channel arbitrated loop and the
133driver to make note of any new or removed sequential access devices
134or medium changers. The driver will output messages indicating what
135devices have been added or removed and the controller, bus, target and
136lun used to address the device. It then notifies the SCSI mid layer
137of these changes.
138
139Note that the naming convention of the /proc filesystem entries
140contains a number in addition to the driver name. (E.g. "cciss0"
141instead of just "cciss" which you might expect.)
142
143Note: ONLY sequential access devices and medium changers are presented
144as SCSI devices to the SCSI mid layer by the cciss driver. Specifically,
145physical SCSI disk drives are NOT presented to the SCSI mid layer. The
146physical SCSI disk drives are controlled directly by the array controller
147hardware and it is important to prevent the kernel from attempting to directly
148access these devices too, as if the array controller were merely a SCSI
149controller in the same way that we are allowing it to access SCSI tape drives.
150
151SCSI error handling for tape drives and medium changers
152-------------------------------------------------------
153
154The linux SCSI mid layer provides an error handling protocol which
155kicks into gear whenever a SCSI command fails to complete within a
156certain amount of time (which can vary depending on the command).
157The cciss driver participates in this protocol to some extent. The
158normal protocol is a four step process. First the device is told
159to abort the command. If that doesn't work, the device is reset.
160If that doesn't work, the SCSI bus is reset. If that doesn't work
161the host bus adapter is reset. Because the cciss driver is a block
162driver as well as a SCSI driver and only the tape drives and medium
163changers are presented to the SCSI mid layer, and unlike more
164straightforward SCSI drivers, disk i/o continues through the block
165side during the SCSI error recovery process, the cciss driver only
166implements the first two of these actions, aborting the command, and
167resetting the device. Additionally, most tape drives will not oblige
168in aborting commands, and sometimes it appears they will not even
169obey a reset command, though in most circumstances they will. In
170the case that the command cannot be aborted and the device cannot be
171reset, the device will be set offline.
172
173In the event the error handling code is triggered and a tape drive is
174successfully reset or the tardy command is successfully aborted, the
175tape drive may still not allow i/o to continue until some command
176is issued which positions the tape to a known position. Typically you
177must rewind the tape (by issuing "mt -f /dev/st0 rewind" for example)
178before i/o can proceed again to a tape drive which was reset.
179
180There is a cciss_tape_cmds module parameter which can be used to make cciss
181allocate 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
183infrequently used and the primary purpose of Smart Array controllers is to
184act as a RAID controller for disk drives, so the vast majority of commands
185are allocated for disk devices. However, if you have more than a few tape
186drives attached to a smart array, the default number of commands may not be
187enough (for example, if you have 8 tape drives, you could only rewind 6
188at one time with the default number of commands.) The cciss_tape_cmds module
189parameter allows more commands (up to 16 more) to be allocated for use by
190tape drives. For example:
191
192 insmod cciss.ko cciss_tape_cmds=16
193
194Or, 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
168comp_algorithm RW show and change the compression algorithm168comp_algorithm RW show and change the compression algorithm
169compact WO trigger memory compaction169compact WO trigger memory compaction
170debug_stat RO this file is used for zram debugging purposes170debug_stat RO this file is used for zram debugging purposes
171backing_dev RW set up backend storage for zram to write out
171 172
172 173
173User space is advised to use the following files to read the device statistics.174User 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
231 resets the disksize to zero. You must set the disksize again232 resets the disksize to zero. You must set the disksize again
232 before reusing the device.233 before reusing the device.
233 234
235* Optional Feature
236
237= writeback
238
239With incompressible pages, there is no memory saving with zram.
240Instead, with CONFIG_ZRAM_WRITEBACK, zram can write incompressible page
241to backing storage rather than keeping it in memory.
242User should set up backing device via /sys/block/zramX/backing_dev
243before disksize setting.
244
234Nitin Gupta245Nitin Gupta
235ngupta@vflare.org246ngupta@vflare.org
Documentation/cgroup-v2.txt+203−18
@@ -18,7 +18,9 @@ v1 is available under Documentation/cgroup-v1/. · 17 unmodified lines
18 1-2. What is cgroup?18 1-2. What is cgroup?
19 2. Basic Operations19 2. Basic Operations
20 2-1. Mounting20 2-1. Mounting
21 2-2. Organizing Processes21 2-2. Organizing Processes and Threads
22 2-2-1. Processes
23 2-2-2. Threads
22 2-3. [Un]populated Notification24 2-3. [Un]populated Notification
23 2-4. Controlling Controllers25 2-4. Controlling Controllers
24 2-4-1. Enabling and Disabling26 2-4-1. Enabling and Disabling
@@ -167,8 +169,11 @@ cgroup v2 currently supports the following mount options. · 142 unmodified lines
167 Delegation section for details.169 Delegation section for details.
168 170
169 171
170Organizing Processes172Organizing Processes and Threads
171--------------------173--------------------------------
174
175Processes
176~~~~~~~~~
172 177
173Initially, only the root cgroup exists to which all processes belong.178Initially, only the root cgroup exists to which all processes belong.
174A child cgroup can be created by creating a sub-directory::179A 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
219 0::/test-cgroup/test-cgroup-nested (deleted)224 0::/test-cgroup/test-cgroup-nested (deleted)
220 225
221 226
227Threads
228~~~~~~~
229
230cgroup v2 supports thread granularity for a subset of controllers to
231support use cases requiring hierarchical resource distribution across
232the threads of a group of processes. By default, all threads of a
233process belong to the same cgroup, which also serves as the resource
234domain to host resource consumptions which are not specific to a
235process or thread. The thread mode allows threads to be spread across
236a subtree while still maintaining the common resource domain for them.
237
238Controllers which support thread mode are called threaded controllers.
239The ones which don't are called domain controllers.
240
241Marking a cgroup threaded makes it join the resource domain of its
242parent as a threaded cgroup. The parent may be another threaded
243cgroup whose resource domain is further up in the hierarchy. The root
244of a threaded subtree, that is, the nearest ancestor which is not
245threaded, is called threaded domain or thread root interchangeably and
246serves as the resource domain for the entire subtree.
247
248Inside a threaded subtree, threads of a process can be put in
249different cgroups and are not subject to the no internal process
250constraint - threaded controllers can be enabled on non-leaf cgroups
251whether they have threads in them or not.
252
253As the threaded domain cgroup hosts all the domain resource
254consumptions of the subtree, it is considered to have internal
255resource consumptions whether there are processes in it or not and
256can't have populated child cgroups which aren't threaded. Because the
257root cgroup is not subject to no internal process constraint, it can
258serve both as a threaded domain and a parent to domain cgroups.
259
260The current operation mode or type of the cgroup is shown in the
261"cgroup.type" file which indicates whether the cgroup is a normal
262domain, a domain which is serving as the domain of a threaded subtree,
263or a threaded cgroup.
264
265On creation, a cgroup is always a domain cgroup and can be made
266threaded by writing "threaded" to the "cgroup.type" file. The
267operation is single direction::
268
269 # echo threaded > cgroup.type
270
271Once threaded, the cgroup can't be made a domain again. To enable the
272thread 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
281Topology-wise, a cgroup can be in an invalid state. Please consider
282the following toplogy::
283
284 A (threaded domain) - B (threaded) - C (domain, just created)
285
286C is created as a domain but isn't connected to a parent which can
287host child domains. C can't be used until it is turned into a
288threaded cgroup. "cgroup.type" file will report "domain (invalid)" in
289these cases. Operations which fail due to invalid topology use
290EOPNOTSUPP as the errno.
291
292A domain cgroup is turned into a threaded domain when one of its child
293cgroup becomes threaded or threaded controllers are enabled in the
294"cgroup.subtree_control" file while there are processes in the cgroup.
295A threaded domain reverts to a normal domain when the conditions
296clear.
297
298When read, "cgroup.threads" contains the list of the thread IDs of all
299threads in the cgroup. Except that the operations are per-thread
300instead of per-process, "cgroup.threads" has the same format and
301behaves the same way as "cgroup.procs". While "cgroup.threads" can be
302written to in any cgroup, as it can only move threads inside the same
303threaded domain, its operations are confined inside each threaded
304subtree.
305
306The threaded domain cgroup serves as the resource domain for the whole
307subtree, and, while the threads can be scattered across the subtree,
308all the processes are considered to be in the threaded domain cgroup.
309"cgroup.procs" in a threaded domain cgroup contains the PIDs of all
310processes in the subtree and is not readable in the subtree proper.
311However, "cgroup.procs" can be written to from anywhere in the subtree
312to migrate all threads of the matching process to the cgroup.
313
314Only threaded controllers can be enabled in a threaded subtree. When
315a threaded controller is enabled inside a threaded subtree, it only
316accounts for and controls resource consumptions associated with the
317threads in the cgroup and its descendants. All consumptions which
318aren't tied to a specific thread belong to the threaded domain cgroup.
319
320Because a threaded subtree is exempt from no internal process
321constraint, a threaded controller must be able to handle competition
322between threads in a non-leaf cgroup and its child cgroups. Each
323threaded controller defines how such competitions are handled.
324
325
222[Un]populated Notification326[Un]populated Notification
223--------------------------327--------------------------
224 328
@@ -302,15 +406,15 @@ disabled if one or more children have it enabled. · 77 unmodified lines
302No Internal Process Constraint406No Internal Process Constraint
303~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~407~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
304 408
305Non-root cgroups can only distribute resources to their children when409Non-root cgroups can distribute domain resources to their children
306they don't have any processes of their own. In other words, only410only when they don't have any processes of their own. In other words,
307cgroups which don't contain any processes can have controllers enabled411only domain cgroups which don't contain any processes can have domain
308in their "cgroup.subtree_control" files.412controllers enabled in their "cgroup.subtree_control" files.
309 413
310This guarantees that, when a controller is looking at the part of the414This guarantees that, when a domain controller is looking at the part
311hierarchy which has it enabled, processes are always only on the415of the hierarchy which has it enabled, processes are always only on
312leaves. This rules out situations where child cgroups compete against416the leaves. This rules out situations where child cgroups compete
313internal processes of the parent.417against internal processes of the parent.
314 418
315The root cgroup is exempt from this restriction. Root contains419The root cgroup is exempt from this restriction. Root contains
316processes and anonymous resource consumption which can't be associated420processes and anonymous resource consumption which can't be associated
@@ -334,10 +438,10 @@ Model of Delegation · 17 unmodified lines
334~~~~~~~~~~~~~~~~~~~438~~~~~~~~~~~~~~~~~~~
335 439
336A cgroup can be delegated in two ways. First, to a less privileged440A cgroup can be delegated in two ways. First, to a less privileged
337user by granting write access of the directory and its "cgroup.procs"441user by granting write access of the directory and its "cgroup.procs",
338and "cgroup.subtree_control" files to the user. Second, if the442"cgroup.threads" and "cgroup.subtree_control" files to the user.
339"nsdelegate" mount option is set, automatically to a cgroup namespace443Second, if the "nsdelegate" mount option is set, automatically to a
340on namespace creation.444cgroup namespace on namespace creation.
341 445
342Because the resource control interface files in a given directory446Because the resource control interface files in a given directory
343control the distribution of the parent's resources, the delegatee447control the distribution of the parent's resources, the delegatee
@@ -644,6 +748,29 @@ Core Interface Files · 300 unmodified lines
644 748
645All cgroup core files are prefixed with "cgroup."749All cgroup core files are prefixed with "cgroup."
646 750
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
647 cgroup.procs774 cgroup.procs
648 A read-write new-line separated values file which exists on775 A read-write new-line separated values file which exists on
649 all cgroups.776 all cgroups.
@@ -658,9 +785,6 @@ All cgroup core files are prefixed with "cgroup." · 8 unmodified lines
658 the PID to the cgroup. The writer should match all of the785 the PID to the cgroup. The writer should match all of the
659 following conditions.786 following conditions.
660 787
661 - Its euid is either root or must match either uid or suid of
662 the target process.
663
664 - It must have write access to the "cgroup.procs" file.788 - It must have write access to the "cgroup.procs" file.
665 789
666 - It must have write access to the "cgroup.procs" file of the790 - 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
669 When delegating a sub-hierarchy, write access to this file793 When delegating a sub-hierarchy, write access to this file
670 should be granted along with the containing directory.794 should be granted along with the containing directory.
671 795
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
672 cgroup.controllers825 cgroup.controllers
673 A read-only space separated values file which exists on all826 A read-only space separated values file which exists on all
674 cgroups.827 cgroups.
@@ -701,6 +854,38 @@ All cgroup core files are prefixed with "cgroup." · 26 unmodified lines
701 1 if the cgroup or its descendants contains any live854 1 if the cgroup or its descendants contains any live
702 processes; otherwise, 0.855 processes; otherwise, 0.
703 856
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
704 889
705Controllers890Controllers
706===========891===========
Documentation/conf.py+41−23
@@ -29,7 +29,7 @@ from load_config import loadConfig · 28 unmodified lines
29# -- General configuration ------------------------------------------------29# -- General configuration ------------------------------------------------
30 30
31# If your documentation needs a minimal Sphinx version, state it here.31# If your documentation needs a minimal Sphinx version, state it here.
32needs_sphinx = '1.2'32needs_sphinx = '1.3'
33 33
34# Add any Sphinx extension module names here, as strings. They can be34# Add any Sphinx extension module names here, as strings. They can be
35# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom35# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
@@ -271,10 +271,29 @@ latex_elements = { · 235 unmodified lines
271 271
272# Additional stuff for the LaTeX preamble.272# Additional stuff for the LaTeX preamble.
273 'preamble': '''273 '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}
275 279
276 % Allow generate some pages in landscape280 '''
277 \\usepackage{lscape}281}
282
283# Fix reference escape troubles with Sphinx 1.4.x
284if major == 1 and minor > 3:
285 latex_elements['preamble'] += '\\renewcommand*{\\DUrole}[2]{ #2 }\n'
286
287if major == 1 and minor <= 4:
288 latex_elements['preamble'] += '\\usepackage[margin=0.5in, top=1in, bottom=1in]{geometry}'
289elif 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:
294if major == 1 and minor < 6:
295 latex_elements['preamble'] += '''
296 \\usepackage{ifthen}
278 297
279 % Put notes in color and let them be inside a table298 % Put notes in color and let them be inside a table
280 \\definecolor{NoteColor}{RGB}{204,255,255}299 \\definecolor{NoteColor}{RGB}{204,255,255}
@@ -325,27 +344,26 @@ latex_elements = { · 44 unmodified lines
325 }344 }
326 \\makeatother345 \\makeatother
327 346
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
337 '''347 '''
338}
339
340# Fix reference escape troubles with Sphinx 1.4.x
341if major == 1 and minor > 3:
342 latex_elements['preamble'] += '\\renewcommand*{\\DUrole}[2]{ #2 }\n'
343
344if major == 1 and minor <= 4:
345 latex_elements['preamble'] += '\\usepackage[margin=0.5in, top=1in, bottom=1in]{geometry}'
346elif major == 1 and (minor > 5 or (minor == 5 and patch >= 3)):
347 latex_elements['sphinxsetup'] = 'hmargin=0.5in, vmargin=0.5in'
348 348
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.
349 367
350# Grouping the document tree into LaTeX files. List of tuples368# Grouping the document tree into LaTeX files. List of tuples
351# (source start file, target name, title,369# (source start file, target name, title,
Documentation/core-api/genalloc.rst+144−0
@@ -0,0 +1,144 @@
1The genalloc/genpool subsystem
2==============================
3
4There are a number of memory-allocation subsystems in the kernel, each
5aimed at a specific need. Sometimes, however, a kernel developer needs to
6implement a new allocator for a specific range of special-purpose memory;
7often that memory is located on a device somewhere. The author of the
8driver for that device can certainly write a little allocator to get the
9job done, but that is the way to fill the kernel with dozens of poorly
10tested allocators. Back in 2005, Jes Sorensen lifted one of those
11allocators from the sym53c8xx_2 driver and posted_ it as a generic module
12for the creation of ad hoc memory allocators. This code was merged
13for the 2.6.13 release; it has been modified considerably since then.
14
15.. _posted: https://lwn.net/Articles/125842/
16
17Code using this allocator should include <linux/genalloc.h>. The action
18begins 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
26A call to :c:func:`gen_pool_create` will create a pool. The granularity of
27allocations is set with min_alloc_order; it is a log-base-2 number like
28those used by the page allocator, but it refers to bytes rather than pages.
29So, if min_alloc_order is passed as 3, then all allocations will be a
30multiple of eight bytes. Increasing min_alloc_order decreases the memory
31required to track the memory in the pool. The nid parameter specifies
32which NUMA node should be used for the allocation of the housekeeping
33structures; it can be -1 if the caller doesn't care.
34
35The "managed" interface :c:func:`devm_gen_pool_create` ties the pool to a
36specific device. Among other things, it will automatically clean up the
37pool when the given device is destroyed.
38
39A pool is shut down with:
40
41.. kernel-doc:: lib/genalloc.c
42 :functions: gen_pool_destroy
43
44It's worth noting that, if there are still allocations outstanding from the
45given pool, this function will take the rather extreme step of invoking
46BUG(), crashing the entire system. You have been warned.
47
48A freshly created pool has no memory to allocate. It is fairly useless in
49that state, so one of the first orders of business is usually to add memory
50to 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
58A call to :c:func:`gen_pool_add` will place the size bytes of memory
59starting at addr (in the kernel's virtual address space) into the given
60pool, once again using nid as the node ID for ancillary memory allocations.
61The :c:func:`gen_pool_add_virt` variant associates an explicit physical
62address with the memory; this is only necessary if the pool will be used
63for DMA allocations.
64
65The functions for allocating memory from the pool (and putting it back)
66are:
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
77As one would expect, :c:func:`gen_pool_alloc` will allocate size< bytes
78from the given pool. The :c:func:`gen_pool_dma_alloc` variant allocates
79memory for use with DMA operations, returning the associated physical
80address in the space pointed to by dma. This will only work if the memory
81was added with :c:func:`gen_pool_add_virt`. Note that this function
82departs from the usual genpool pattern of using unsigned long values to
83represent kernel addresses; it returns a void * instead.
84
85That all seems relatively simple; indeed, some developers clearly found it
86to be too simple. After all, the interface above provides no control over
87how the allocation functions choose which specific piece of memory to
88return. If that sort of control is needed, the following functions will be
89of 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
97Allocations with :c:func:`gen_pool_alloc_algo` specify an algorithm to be
98used to choose the memory to be allocated; the default algorithm can be set
99with :c:func:`gen_pool_set_algo`. The data value is passed to the
100algorithm; most ignore it, but it is occasionally needed. One can,
101naturally, write a special-purpose algorithm, but there is a fair set
102already 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
119There is a handful of other functions, mostly for purposes like querying
120the space available in the pool or iterating through chunks of memory.
121Most users, however, should not need much beyond what has been described
122above. With luck, wider awareness of this module will help to prevent the
123writing 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
20 genericirq20 genericirq
21 flexible-arrays21 flexible-arrays
22 librs22 librs
23 genalloc
23 24
24Interfaces for kernel debugging25Interfaces for kernel debugging
25===============================26===============================
Documentation/core-api/kernel-api.rst+49−0
@@ -344,3 +344,52 @@ codecs, and devices with strict requirements for interface clocking. · 343 unmodified lines
344 344
345.. kernel-doc:: include/linux/clk.h345.. kernel-doc:: include/linux/clk.h
346 :internal:346 :internal:
347
348Synchronization Primitives
349==========================
350
351Read-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
243recommended.243recommended.
244 244
245Some users depend on the strict execution ordering of ST wq. The245Some users depend on the strict execution ordering of ST wq. The
246combination of ``@max_active`` of 1 and ``WQ_UNBOUND`` is used to246combination of ``@max_active`` of 1 and ``WQ_UNBOUND`` used to
247achieve this behavior. Work items on such wq are always queued to the247achieve this behavior. Work items on such wq were always queued to the
248unbound worker-pools and only one work item can be active at any given248unbound worker-pools and only one work item could be active at any given
249time thus achieving the same ordering property as ST wq.249time thus achieving the same ordering property as ST wq.
250 250
251In the current implementation the above configuration only guarantees
252ST behavior within a given NUMA node. Instead alloc_ordered_queue should
253be used to achieve system wide ST behavior.
254
251 255
252Example Execution Scenarios256Example Execution Scenarios
253===========================257===========================
Documentation/dev-tools/gdb-kernel-debugging.rst+4−2
@@ -31,11 +31,13 @@ Setup · 30 unmodified lines
31 CONFIG_DEBUG_INFO_REDUCED off. If your architecture supports31 CONFIG_DEBUG_INFO_REDUCED off. If your architecture supports
32 CONFIG_FRAME_POINTER, keep it enabled.32 CONFIG_FRAME_POINTER, keep it enabled.
33 33
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.
35 Alternatively, QEMU allows to boot the kernel directly using -kernel,36 Alternatively, QEMU allows to boot the kernel directly using -kernel,
36 -append, -initrd command line switches. This is generally only useful if37 -append, -initrd command line switches. This is generally only useful if
37 you do not depend on modules. See QEMU documentation for more details on38 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.
39 41
40- Enable the gdb stub of QEMU/KVM, either42- Enable the gdb stub of QEMU/KVM, either
41 43
Documentation/dev-tools/kgdb.rst+10−1
@@ -348,6 +348,15 @@ default behavior is always set to 0. · 347 unmodified lines
348 - ``echo 1 > /sys/module/debug_core/parameters/kgdbreboot``348 - ``echo 1 > /sys/module/debug_core/parameters/kgdbreboot``
349 - Enter the debugger on reboot notify.349 - Enter the debugger on reboot notify.
350 350
351Kernel parameter: ``nokaslr``
352-----------------------------
353
354If the architecture that you are using enable KASLR by default,
355you should consider turning it off. KASLR randomizes the
356virtual address where the kernel image is mapped and confuse
357gdb which resolve kernel symbol address from symbol table
358of vmlinux.
359
351Using kdb360Using kdb
352=========361=========
353 362
@@ -358,7 +367,7 @@ This is a quick example of how to use kdb. · 4 unmodified lines
358 367
3591. Configure kgdboc at boot using kernel parameters::3681. Configure kgdboc at boot using kernel parameters::
360 369
361 console=ttyS0,115200 kgdboc=ttyS0,115200370 console=ttyS0,115200 kgdboc=ttyS0,115200 nokaslr
362 371
363 OR372 OR
364 373
Documentation/devicetree/bindings/arc/hsdk.txt+7−0
@@ -0,0 +1,7 @@
1Synopsys DesignWare ARC HS Development Kit Device Tree Bindings
2---------------------------------------------------------------------------
3
4ARC HSDK Board with quad-core ARC HS38x4 in silicon.
5
6Required root node properties:
7 - compatible = "snps,hsdk";
Documentation/devicetree/bindings/arm/amlogic.txt+41−0
@@ -1,6 +1,18 @@
1Amlogic MesonX device tree bindings1Amlogic MesonX device tree bindings
2-------------------------------------------2-------------------------------------------
3 3
4Work in progress statement:
5
6Device tree files and bindings applying to Amlogic SoCs and boards are
7considered "unstable". Any Amlogic device tree binding may change at
8any time. Be sure to use a device tree binary and a kernel image
9generated from the same source tree.
10
11Please refer to Documentation/devicetree/bindings/ABI.txt for a definition of a
12stable binding/ABI.
13
14---------------------------------------------------------------
15
4Boards with the Amlogic Meson6 SoC shall have the following properties:16Boards with the Amlogic Meson6 SoC shall have the following properties:
5 Required root node property:17 Required root node property:
6 compatible: "amlogic,meson6"18 compatible: "amlogic,meson6"
@@ -61,3 +73,32 @@ Board compatible values (alphabetically, grouped by SoC): · 54 unmodified lines
61 - "amlogic,q201" (Meson gxm s912)73 - "amlogic,q201" (Meson gxm s912)
62 - "kingnovel,r-box-pro" (Meson gxm S912)74 - "kingnovel,r-box-pro" (Meson gxm S912)
63 - "nexbox,a1" (Meson gxm s912)75 - "nexbox,a1" (Meson gxm s912)
76
77Amlogic Meson Firmware registers Interface
78------------------------------------------
79
80The Meson SoCs have a register bank with status and data shared with the
81secure firmware.
82
83Required properties:
84 - compatible: For Meson GX SoCs, must be "amlogic,meson-gx-ao-secure", "syscon"
85
86Properties should indentify components of this register interface :
87
88Meson GX SoC Information
89------------------------
90A firmware register encodes the SoC type, package and revision information on
91the Meson GX SoCs.
92If present, the following property should be added :
93
94Optional properties:
95 - amlogic,has-chip-id: If present, the interface gives the current SoC version.
96
97Example
98-------
99
100ao-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
108 frame-number = <1>108 frame-number = <1>
109 interrupts = <0 15 0x8>;109 interrupts = <0 15 0x8>;
110 reg = <0xf0003000 0x1000>;110 reg = <0xf0003000 0x1000>;
111 status = "disabled";
112 };111 };
113 };112 };
Documentation/devicetree/bindings/arm/bcm/brcm,bcm2835.txt+4−0
@@ -42,6 +42,10 @@ Raspberry Pi Zero · 41 unmodified lines
42Required root node properties:42Required root node properties:
43compatible = "raspberrypi,model-zero", "brcm,bcm2835";43compatible = "raspberrypi,model-zero", "brcm,bcm2835";
44 44
45Raspberry Pi Zero W
46Required root node properties:
47compatible = "raspberrypi,model-zero-w", "brcm,bcm2835";
48
45Generic BCM2835 board49Generic BCM2835 board
46Required root node properties:50Required root node properties:
47compatible = "brcm,bcm2835";51compatible = "brcm,bcm2835";
Documentation/devicetree/bindings/arm/bhf.txt+6−0
@@ -0,0 +1,6 @@
1Beckhoff Automation Platforms Device Tree Bindings
2--------------------------------------------------
3
4CX9020 Embedded PC
5Required 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
34 - Embedded Trace Macrocell (version 4.x):34 - Embedded Trace Macrocell (version 4.x):
35 "arm,coresight-etm4x", "arm,primecell";35 "arm,coresight-etm4x", "arm,primecell";
36 36
37 - Qualcomm Configurable Replicator (version 1.x):37 - Coresight programmable Replicator :
38 "qcom,coresight-replicator1x", "arm,primecell";38 "arm,coresight-dynamic-replicator", "arm,primecell";
39 39
40 - System Trace Macrocell:40 - System Trace Macrocell:
41 "arm,coresight-stm", "arm,primecell"; [1]41 "arm,coresight-stm", "arm,primecell"; [1]
Documentation/devicetree/bindings/arm/cpus.txt+1−0
@@ -200,6 +200,7 @@ described below. · 199 unmodified lines
200 "arm,realview-smp"200 "arm,realview-smp"
201 "brcm,bcm11351-cpu-method"201 "brcm,bcm11351-cpu-method"
202 "brcm,bcm23550"202 "brcm,bcm23550"
203 "brcm,bcm2836-smp"
203 "brcm,bcm-nsp-smp"204 "brcm,bcm-nsp-smp"
204 "brcm,brahma-b15"205 "brcm,brahma-b15"
205 "marvell,armada-375-smp"206 "marvell,armada-375-smp"
Documentation/devicetree/bindings/arm/marvell/armada-8kp.txt+15−0
@@ -0,0 +1,15 @@
1Marvell Armada 8KPlus Platforms Device Tree Bindings
2----------------------------------------------------
3
4Boards using a SoC of the Marvell Armada 8KP families must carry
5the 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
12Example:
13
14compatible = "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
183 gpio-controller;183 gpio-controller;
184 #gpio-cells = <2>;184 #gpio-cells = <2>;
185 gpio-ranges = <&cpm_pinctrl 0 0 32>;185 gpio-ranges = <&cpm_pinctrl 0 0 32>;
186 status = "disabled";
187 };186 };
188 187
189};188};
Documentation/devicetree/bindings/arm/mediatek.txt+12−6
@@ -1,12 +1,12 @@
1MediaTek mt65xx, mt67xx & mt81xx Platforms Device Tree Bindings1MediaTek SoC based Platforms Device Tree Bindings
2 2
3Boards with a MediaTek mt65xx/mt67xx/mt81xx SoC shall have the3Boards with a MediaTek SoC shall have the following property:
4following property:
5 4
6Required root node property:5Required root node property:
7 6
8compatible: Must contain one of7compatible: Must contain one of
9 "mediatek,mt2701"8 "mediatek,mt2701"
9 "mediatek,mt2712"
10 "mediatek,mt6580"10 "mediatek,mt6580"
11 "mediatek,mt6589"11 "mediatek,mt6589"
12 "mediatek,mt6592"12 "mediatek,mt6592"
@@ -14,7 +14,8 @@ compatible: Must contain one of · 1 unmodified line
14 "mediatek,mt6795"14 "mediatek,mt6795"
15 "mediatek,mt6797"15 "mediatek,mt6797"
16 "mediatek,mt7622"16 "mediatek,mt7622"
17 "mediatek,mt7623"17 "mediatek,mt7623" which is referred to MT7623N SoC
18 "mediatek,mt7623a"
18 "mediatek,mt8127"19 "mediatek,mt8127"
19 "mediatek,mt8135"20 "mediatek,mt8135"
20 "mediatek,mt8173"21 "mediatek,mt8173"
@@ -25,6 +26,9 @@ Supported boards: · 4 unmodified lines
25- Evaluation board for MT2701:26- Evaluation board for MT2701:
26 Required root node properties:27 Required root node properties:
27 - compatible = "mediatek,mt2701-evb", "mediatek,mt2701";28 - compatible = "mediatek,mt2701-evb", "mediatek,mt2701";
29- Evaluation board for MT2712:
30 Required root node properties:
31 - compatible = "mediatek,mt2712-evb", "mediatek,mt2712";
28- Evaluation board for MT6580:32- Evaluation board for MT6580:
29 Required root node properties:33 Required root node properties:
30 - compatible = "mediatek,mt6580-evbp1", "mediatek,mt6580";34 - compatible = "mediatek,mt6580-evbp1", "mediatek,mt6580";
@@ -46,9 +50,11 @@ Supported boards: · 15 unmodified lines
46- Reference board variant 1 for MT7622:50- Reference board variant 1 for MT7622:
47 Required root node properties:51 Required root node properties:
48 - compatible = "mediatek,mt7622-rfb1", "mediatek,mt7622";52 - compatible = "mediatek,mt7622-rfb1", "mediatek,mt7622";
49- Evaluation board for MT7623:53- Reference board for MT7623n with NAND:
50 Required root node properties:54 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";
52- MTK mt8127 tablet moose EVB:58- MTK mt8127 tablet moose EVB:
53 Required root node properties:59 Required root node properties:
54 - compatible = "mediatek,mt8127-moose", "mediatek,mt8127";60 - compatible = "mediatek,mt8127-moose", "mediatek,mt8127";
Documentation/devicetree/bindings/arm/omap/omap.txt+9−0
@@ -80,6 +80,9 @@ SoCs: · 79 unmodified lines
80- OMAP543280- OMAP5432
81 compatible = "ti,omap5432", "ti,omap5"81 compatible = "ti,omap5432", "ti,omap5"
82 82
83- DRA762
84 compatible = "ti,dra762", "ti,dra7"
85
83- DRA74286- DRA742
84 compatible = "ti,dra742", "ti,dra74", "ti,dra7"87 compatible = "ti,dra742", "ti,dra74", "ti,dra7"
85 88
@@ -154,6 +157,9 @@ Boards: · 68 unmodified lines
154- AM335X phyCORE-AM335x: Development kit157- AM335X phyCORE-AM335x: Development kit
155 compatible = "phytec,am335x-pcm-953", "phytec,am335x-phycore-som", "ti,am33xx"158 compatible = "phytec,am335x-pcm-953", "phytec,am335x-phycore-som", "ti,am33xx"
156 159
160- AM335X UC-8100-ME-T: Communication-centric industrial computing platform
161 compatible = "moxa,uc-8100-me-t", "ti,am33xx";
162
157- OMAP5 EVM : Evaluation Module163- OMAP5 EVM : Evaluation Module
158 compatible = "ti,omap5-evm", "ti,omap5"164 compatible = "ti,omap5-evm", "ti,omap5"
159 165
@@ -184,6 +190,9 @@ Boards: · 24 unmodified lines
184- AM5718 IDK190- AM5718 IDK
185 compatible = "ti,am5718-idk", "ti,am5718", "ti,dra7"191 compatible = "ti,am5718-idk", "ti,am5718", "ti,dra7"
186 192
193- DRA762 EVM: Software Development Board for DRA762
194 compatible = "ti,dra76-evm", "ti,dra762", "ti,dra7"
195
187- DRA742 EVM: Software Development Board for DRA742196- DRA742 EVM: Software Development Board for DRA742
188 compatible = "ti,dra7-evm", "ti,dra742", "ti,dra74", "ti,dra7"197 compatible = "ti,dra7-evm", "ti,dra742", "ti,dra74", "ti,dra7"
189 198
Documentation/devicetree/bindings/arm/pmu.txt+2−0
@@ -9,9 +9,11 @@ Required properties: · 8 unmodified lines
9- compatible : should be one of9- compatible : should be one of
10 "apm,potenza-pmu"10 "apm,potenza-pmu"
11 "arm,armv8-pmuv3"11 "arm,armv8-pmuv3"
12 "arm,cortex-a73-pmu"
12 "arm,cortex-a72-pmu"13 "arm,cortex-a72-pmu"
13 "arm,cortex-a57-pmu"14 "arm,cortex-a57-pmu"
14 "arm,cortex-a53-pmu"15 "arm,cortex-a53-pmu"
16 "arm,cortex-a35-pmu"
15 "arm,cortex-a17-pmu"17 "arm,cortex-a17-pmu"
16 "arm,cortex-a15-pmu"18 "arm,cortex-a15-pmu"
17 "arm,cortex-a12-pmu"19 "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
25 msm899425 msm8994
26 msm899626 msm8996
27 mdm961527 mdm9615
28 ipq8074
28 29
29The 'board' element must be one of the following strings:30The 'board' element must be one of the following strings:
30 31
@@ -33,6 +34,7 @@ The 'board' element must be one of the following strings: · 2 unmodified lines
33 dragonboard34 dragonboard
34 mtp35 mtp
35 sbc36 sbc
37 hk01
36 38
37The 'soc_version' and 'board_version' elements take the form of v<Major>.<Minor>39The 'soc_version' and 'board_version' elements take the form of v<Major>.<Minor>
38where the minor number may be omitted when it's zero, i.e. v1.0 is the same40where 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
134 Required root node properties:134 Required root node properties:
135 - compatible = "phytec,rk3288-pcm-947", "phytec,rk3288-phycore-som", "rockchip,rk3288";135 - compatible = "phytec,rk3288-pcm-947", "phytec,rk3288-phycore-som", "rockchip,rk3288";
136 136
137- Pine64 Rock64 board:
138 Required root node properties:
139 - compatible = "pine64,rock64", "rockchip,rk3328";
140
137- Rockchip PX3 Evaluation board:141- Rockchip PX3 Evaluation board:
138 Required root node properties:142 Required root node properties:
139 - compatible = "rockchip,px3-evb", "rockchip,px3", "rockchip,rk3188";143 - compatible = "rockchip,px3-evb", "rockchip,px3", "rockchip,rk3188";
@@ -173,6 +177,14 @@ Rockchip platforms device tree bindings · 33 unmodified lines
173 Required root node properties:177 Required root node properties:
174 - compatible = "rockchip,rk3399-evb", "rockchip,rk3399";178 - compatible = "rockchip,rk3399-evb", "rockchip,rk3399";
175 179
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
176- Tronsmart Orion R68 Meta188- Tronsmart Orion R68 Meta
177 Required root node properties:189 Required root node properties:
178 - compatible = "tronsmart,orion-r68-meta", "rockchip,rk3368";190 - compatible = "tronsmart,orion-r68-meta", "rockchip,rk3368";
Documentation/devicetree/bindings/arm/shmobile.txt+8−0
@@ -39,6 +39,8 @@ SoCs: · 38 unmodified lines
39 compatible = "renesas,r8a7795"39 compatible = "renesas,r8a7795"
40 - R-Car M3-W (R8A77960)40 - R-Car M3-W (R8A77960)
41 compatible = "renesas,r8a7796"41 compatible = "renesas,r8a7796"
42 - R-Car D3 (R8A77995)
43 compatible = "renesas,r8a77995"
42 44
43 45
44Boards:46Boards:
@@ -53,6 +55,8 @@ Boards: · 8 unmodified lines
53 compatible = "renesas,blanche", "renesas,r8a7792"55 compatible = "renesas,blanche", "renesas,r8a7792"
54 - BOCK-W56 - BOCK-W
55 compatible = "renesas,bockw", "renesas,r8a7778"57 compatible = "renesas,bockw", "renesas,r8a7778"
58 - Draak (RTP0RC77995SEB0010S)
59 compatible = "renesas,draak", "renesas,r8a77995"
56 - Genmai (RTK772100BC00000BR)60 - Genmai (RTK772100BC00000BR)
57 compatible = "renesas,genmai", "renesas,r7s72100"61 compatible = "renesas,genmai", "renesas,r7s72100"
58 - GR-Peach (X28A-M01-E/F)62 - GR-Peach (X28A-M01-E/F)
@@ -64,6 +68,10 @@ Boards: · 5 unmodified lines
64 compatible = "renesas,h3ulcb", "renesas,r8a7795";68 compatible = "renesas,h3ulcb", "renesas,r8a7795";
65 - Henninger69 - Henninger
66 compatible = "renesas,henninger", "renesas,r8a7791"70 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"
67 - iWave Systems RZ/G1M Qseven Development Platform (iW-RainboW-G20D-Qseven)75 - iWave Systems RZ/G1M Qseven Development Platform (iW-RainboW-G20D-Qseven)
68 compatible = "iwave,g20d", "iwave,g20m", "renesas,r8a7743"76 compatible = "iwave,g20d", "iwave,g20m", "renesas,r8a7743"
69 - iWave Systems RZ/G1M Qseven System On Module (iW-RainboW-G20M-Qseven)77 - 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 @@
1MediaTek Serial ATA controller
2
3Required 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
18Optional 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
28Example:
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
57 <0x0 0x1f227000 0x0 0x1000>;57 <0x0 0x1f227000 0x0 0x1000>;
58 interrupts = <0x0 0x87 0x4>;58 interrupts = <0x0 0x87 0x4>;
59 dma-coherent;59 dma-coherent;
60 status = "ok";
61 clocks = <&sataclk 0>;60 clocks = <&sataclk 0>;
62 phys = <&phy2 0>;61 phys = <&phy2 0>;
63 phy-names = "sata-phy";62 phy-names = "sata-phy";
@@ -72,7 +71,6 @@ Example: · 8 unmodified lines
72 <0x0 0x1f237000 0x0 0x1000>;71 <0x0 0x1f237000 0x0 0x1000>;
73 interrupts = <0x0 0x88 0x4>;72 interrupts = <0x0 0x88 0x4>;
74 dma-coherent;73 dma-coherent;
75 status = "ok";
76 clocks = <&sataclk 0>;74 clocks = <&sataclk 0>;
77 phys = <&phy3 0>;75 phys = <&phy3 0>;
78 phy-names = "sata-phy";76 phy-names = "sata-phy";
Documentation/devicetree/bindings/ata/imx-pata.txt+0−1
@@ -13,5 +13,4 @@ Example: · 12 unmodified lines
13 reg = <0x83fe0000 0x4000>;13 reg = <0x83fe0000 0x4000>;
14 interrupts = <70>;14 interrupts = <70>;
15 clocks = <&clks 161>;15 clocks = <&clks 161>;
16 status = "disabled";
17 };16 };
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
227 };227 };
228 228
229 devbus-bootcs {229 devbus-bootcs {
230 status = "okay";
231 ranges = <0 MBUS_ID(0x01, 0x2f) 0 0x8000000>;230 ranges = <0 MBUS_ID(0x01, 0x2f) 0 0x8000000>;
232 231
233 /* NOR */232 /* NOR */
@@ -240,7 +239,6 @@ See the example below, where a more complete device tree is shown: · 6 unmodified lines
240 239
241 pcie-controller {240 pcie-controller {
242 compatible = "marvell,armada-xp-pcie";241 compatible = "marvell,armada-xp-pcie";
243 status = "okay";
244 device_type = "pci";242 device_type = "pci";
245 243
246 #address-cells = <3>;244 #address-cells = <3>;
@@ -258,7 +256,6 @@ See the example below, where a more complete device tree is shown: · 11 unmodified lines
258 256
259 pcie@1,0 {257 pcie@1,0 {
260 /* Port 0, Lane 0 */258 /* Port 0, Lane 0 */
261 status = "okay";
262 };259 };
263 };260 };
264 261
Documentation/devicetree/bindings/bus/nvidia,tegra20-gmi.txt+0−2
@@ -84,7 +84,6 @@ gmi@70090000 { · 83 unmodified lines
84 reset-names = "gmi";84 reset-names = "gmi";
85 ranges = <4 0 0xd0000000 0xfffffff>;85 ranges = <4 0 0xd0000000 0xfffffff>;
86 86
87 status = "okay";
88 87
89 bus@4,0 {88 bus@4,0 {
90 compatible = "simple-bus";89 compatible = "simple-bus";
@@ -121,7 +120,6 @@ gmi@70090000 { · 30 unmodified lines
121 reset-names = "gmi";120 reset-names = "gmi";
122 ranges = <4 0 0xd0000000 0xfffffff>;121 ranges = <4 0 0xd0000000 0xfffffff>;
123 122
124 status = "okay";
125 123
126 can@4,0 {124 can@4,0 {
127 reg = <4 0 0x100>;125 reg = <4 0 0x100>;
Documentation/devicetree/bindings/bus/nvidia,tegra210-aconnect.txt+0−1
@@ -33,7 +33,6 @@ Example: · 32 unmodified lines
33 #size-cells = <1>;33 #size-cells = <1>;
34 ranges = <0x702c0000 0x0 0x702c0000 0x00040000>;34 ranges = <0x702c0000 0x0 0x702c0000 0x00040000>;
35 35
36 status = "disabled";
37 36
38 child1 {37 child1 {
39 ...38 ...
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
5for passing data between firmware and the operating system, like boot5for passing data between firmware and the operating system, like boot
6arguments. Data in the chosen node does not represent the hardware.6arguments. Data in the chosen node does not represent the hardware.
7 7
8The following properties are recognized:
8 9
9stdout-path property10
10--------------------11kaslr-seed
12-----------
13
14This property is used when booting with CONFIG_RANDOMIZE_BASE as the
15entropy used to randomize the kernel image base address location. Since
16it is used directly, this value is intended only for KASLR, and should
17not be used for other purposes (as it may leak information about KASLR
18offsets). It is parsed as a u64 value, e.g.
19
20/ {
21 chosen {
22 kaslr-seed = <0xfeedbeef 0xc0def00d>;
23 };
24};
25
26Note that if this property is set from UEFI (or a bootloader in EFI
27mode) when EFI_RNG_PROTOCOL is supported, it will be overwritten by
28the Linux EFI stub (which will populate the property itself, using
29EFI_RNG_PROTOCOL).
30
31stdout-path
32-----------
11 33
12Device trees may specify the device to be used for boot console output34Device trees may specify the device to be used for boot console output
13with a stdout-path property under /chosen, as described in the Devicetree35with 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
102 reg = <0x80010000 0x4000>;102 reg = <0x80010000 0x4000>;
103 clocks = <&acc CLKID_SYS_UART4>, <&acc CLKID_AHB_UART4>;103 clocks = <&acc CLKID_SYS_UART4>, <&acc CLKID_AHB_UART4>;
104 interrupts = <19>;104 interrupts = <19>;
105 status = "disabled";
106};105};
107 106
108Clock consumer with only one, _AHB_ sink.107Clock 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
5 5
6Required Properties:6Required Properties:
7 7
8- compatible: should be "amlogic,gxbb-aoclkc"8- compatible: value should be different for each SoC family as :
9- reg: physical base address of the clock controller and length of memory9 - GXBB (S905) : "amlogic,meson-gxbb-aoclkc"
10 mapped region.10 - GXL (S905X, S905D) : "amlogic,meson-gxl-aoclkc"
11 - GXM (S912) : "amlogic,meson-gxm-aoclkc"
12 followed by the common "amlogic,meson-gx-aoclkc"
11 13
12- #clock-cells: should be 1.14- #clock-cells: should be 1.
13 15
@@ -23,14 +25,22 @@ to specify the reset which they consume. All available resets are defined as · 9 unmodified lines
23preprocessor macros in the dt-bindings/reset/gxbb-aoclkc.h header and can be25preprocessor macros in the dt-bindings/reset/gxbb-aoclkc.h header and can be
24used in device tree sources.26used in device tree sources.
25 27
28Parent 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
26Example: AO Clock controller node:32Example: AO Clock controller node:
27 33
28 clkc_AO: clock-controller@040 {34ao_sysctrl: sys-ctrl@0 {
29 compatible = "amlogic,gxbb-aoclkc";35 compatible = "amlogic,meson-gx-ao-sysctrl", "syscon", "simple-mfd";
30 reg = <0x0 0x040 0x0 0x4>;36 reg = <0x0 0x0 0x0 0x100>;
37
38 clkc_AO: clock-controller {
39 compatible = "amlogic,meson-gxbb-aoclkc", "amlogic,meson-gx-aoclkc";
31 #clock-cells = <1>;40 #clock-cells = <1>;
32 #reset-cells = <1>;41 #reset-cells = <1>;
33 };42 };
43};
34 44
35Example: UART controller node that consumes the clock and reset generated45Example: UART controller node that consumes the clock and reset generated
36 by the clock controller:46 by the clock controller:
@@ -41,5 +51,4 @@ Example: UART controller node that consumes the clock and reset generated · 4 unmodified lines
41 interrupts = <0 90 1>;51 interrupts = <0 90 1>;
42 clocks = <&clkc_AO CLKID_AO_UART1>;52 clocks = <&clkc_AO CLKID_AO_UART1>;
43 resets = <&clkc_AO RESET_AO_UART1>;53 resets = <&clkc_AO RESET_AO_UART1>;
44 status = "disabled";
45 };54 };
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
33 reg = <0xc81004c0 0x14>;33 reg = <0xc81004c0 0x14>;
34 interrupts = <0 90 1>;34 interrupts = <0 90 1>;
35 clocks = <&clkc CLKID_CLK81>;35 clocks = <&clkc CLKID_CLK81>;
36 status = "disabled";
37 };36 };
Documentation/devicetree/bindings/clock/amlogic,meson8b-clkc.txt+8−2
@@ -16,18 +16,25 @@ Required Properties: · 15 unmodified lines
16 mapped region.16 mapped region.
17 17
18- #clock-cells: should be 1.18- #clock-cells: should be 1.
19- #reset-cells: should be 1.
19 20
20Each clock is assigned an identifier and client nodes can use this identifier21Each clock is assigned an identifier and client nodes can use this identifier
21to specify the clock which they consume. All available clocks are defined as22to specify the clock which they consume. All available clocks are defined as
22preprocessor macros in the dt-bindings/clock/meson8b-clkc.h header and can be23preprocessor macros in the dt-bindings/clock/meson8b-clkc.h header and can be
23used in device tree sources.24used in device tree sources.
24 25
26Similarly a preprocessor macro for each reset line is defined in
27dt-bindings/reset/amlogic,meson8b-clkc-reset.h (which can be used from the
28device tree sources).
29
30
25Example: Clock controller node:31Example: Clock controller node:
26 32
27 clkc: clock-controller@c1104000 {33 clkc: clock-controller@c1104000 {
28 #clock-cells = <1>;
29 compatible = "amlogic,meson8b-clkc";34 compatible = "amlogic,meson8b-clkc";
30 reg = <0xc1108000 0x4>, <0xc1104000 0x460>;35 reg = <0xc1108000 0x4>, <0xc1104000 0x460>;
36 #clock-cells = <1>;
37 #reset-cells = <1>;
31 };38 };
32 39
33 40
@@ -39,5 +46,4 @@ Example: UART controller node that consumes the clock generated by the clock · 5 unmodified lines
39 reg = <0xc81004c0 0x14>;46 reg = <0xc81004c0 0x14>;
40 interrupts = <0 90 1>;47 interrupts = <0 90 1>;
41 clocks = <&clkc CLKID_CLK81>;48 clocks = <&clkc CLKID_CLK81>;
42 status = "disabled";
43 };49 };
Documentation/devicetree/bindings/clock/at91-clock.txt+10−0
@@ -81,6 +81,16 @@ Required properties: · 80 unmodified lines
81 "atmel,sama5d2-clk-generated":81 "atmel,sama5d2-clk-generated":
82 at91 generated clock82 at91 generated clock
83 83
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
84Required properties for SCKC node:94Required properties for SCKC node:
85- reg : defines the IO memory reserved for the SCKC.95- reg : defines the IO memory reserved for the SCKC.
86- #size-cells : shall be 0 (reg is used to encode clk id).96- #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
46 46
47 uart@3e002000 {47 uart@3e002000 {
48 compatible = "brcm,bcm11351-dw-apb-uart", "snps,dw-apb-uart";48 compatible = "brcm,bcm11351-dw-apb-uart", "snps,dw-apb-uart";
49 status = "disabled";
50 reg = <0x3e002000 0x1000>;49 reg = <0x3e002000 0x1000>;
51 clocks = <&slave_ccu BCM281XX_SLAVE_CCU_UARTB3>;50 clocks = <&slave_ccu BCM281XX_SLAVE_CCU_UARTB3>;
52 interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;51 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
465 clock-names = "uart", "clk_uart_baud0";465 clock-names = "uart", "clk_uart_baud0";
466 pinctrl-names = "default";466 pinctrl-names = "default";
467 pinctrl-0 = <&uart0_bus>;467 pinctrl-0 = <&uart0_bus>;
468 status = "disabled";
469 };468 };
Documentation/devicetree/bindings/clock/hi3660-clock.txt+0−1
@@ -38,5 +38,4 @@ Examples: · 37 unmodified lines
38 clocks = <&crg_ctrl HI3660_CLK_MUX_UART0>,38 clocks = <&crg_ctrl HI3660_CLK_MUX_UART0>,
39 <&crg_ctrl HI3660_PCLK>;39 <&crg_ctrl HI3660_PCLK>;
40 clock-names = "uartclk", "apb_pclk";40 clock-names = "uartclk", "apb_pclk";
41 status = "disabled";
42 };41 };
Documentation/devicetree/bindings/clock/hix5hd2-clock.txt+0−1
@@ -27,5 +27,4 @@ Examples: · 26 unmodified lines
27 interrupts = <0 49 4>;27 interrupts = <0 49 4>;
28 clocks = <&clock HIX5HD2_FIXED_83M>;28 clocks = <&clock HIX5HD2_FIXED_83M>;
29 clock-names = "apb_pclk";29 clock-names = "apb_pclk";
30 status = "disabled";
31 };30 };
Documentation/devicetree/bindings/clock/idt,versaclock5.txt+23−7
@@ -1,24 +1,32 @@
1Binding for IDT VersaClock5 programmable i2c clock generator.1Binding for IDT VersaClock 5,6 programmable i2c clock generators.
2 2
3The IDT VersaClock5 are programmable i2c clock generators providing3The IDT VersaClock 5 and VersaClock 6 are programmable i2c clock
4from 3 to 12 output clocks.4generators providing from 3 to 12 output clocks.
5 5
6==I2C device node==6==I2C device node==
7 7
8Required properties:8Required properties:
9- compatible: shall be one of "idt,5p49v5923" , "idt,5p49v5933" ,9- compatible: shall be one of
10 "idt,5p49v5935".10 "idt,5p49v5923"
11 "idt,5p49v5925"
12 "idt,5p49v5933"
13 "idt,5p49v5935"
14 "idt,5p49v6901"
11- reg: i2c device address, shall be 0x68 or 0x6a.15- reg: i2c device address, shall be 0x68 or 0x6a.
12- #clock-cells: from common clock binding; shall be set to 1.16- #clock-cells: from common clock binding; shall be set to 1.
13- clocks: from common clock binding; list of parent clock handles,17- clocks: from common clock binding; list of parent clock handles,
14 - 5p49v5923: (required) either or both of XTAL or CLKIN18 - 5p49v5923 and
19 5p49v5925 and
20 5p49v6901: (required) either or both of XTAL or CLKIN
15 reference clock.21 reference clock.
16 - 5p49v5933 and22 - 5p49v5933 and
17 - 5p49v5935: (optional) property not present (internal23 - 5p49v5935: (optional) property not present (internal
18 Xtal used) or CLKIN reference24 Xtal used) or CLKIN reference
19 clock.25 clock.
20- clock-names: from common clock binding; clock input names, can be26- 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".
22 - 5p49v5933 and30 - 5p49v5933 and
23 - 5p49v5935: (optional) property not present or "clkin".31 - 5p49v5935: (optional) property not present or "clkin".
24 32
@@ -37,6 +45,7 @@ clock specifier, the following mapping applies: · 12 unmodified lines
37 1 -- OUT145 1 -- OUT1
38 2 -- OUT446 2 -- OUT4
39 47
485P49V5925 and
405P49V5935:495P49V5935:
41 0 -- OUT0_SEL_I2CB50 0 -- OUT0_SEL_I2CB
42 1 -- OUT151 1 -- OUT1
@@ -44,6 +53,13 @@ clock specifier, the following mapping applies: · 1 unmodified line
44 3 -- OUT353 3 -- OUT3
45 4 -- OUT454 4 -- OUT4
46 55
565P49V6901:
57 0 -- OUT0_SEL_I2CB
58 1 -- OUT1
59 2 -- OUT2
60 3 -- OUT3
61 4 -- OUT4
62
47==Example==63==Example==
48 64
49/* 25MHz reference crystal */65/* 25MHz reference crystal */
Documentation/devicetree/bindings/clock/imx21-clock.txt+0−1
@@ -24,5 +24,4 @@ Examples: · 23 unmodified lines
24 clocks = <&clks IMX21_CLK_UART1_IPG_GATE>,24 clocks = <&clks IMX21_CLK_UART1_IPG_GATE>,
25 <&clks IMX21_CLK_PER1>;25 <&clks IMX21_CLK_PER1>;
26 clock-names = "ipg", "per";26 clock-names = "ipg", "per";
27 status = "disabled";
28 };27 };
Documentation/devicetree/bindings/clock/imx23-clock.txt+0−1
@@ -67,5 +67,4 @@ auart0: serial@8006c000 { · 66 unmodified lines
67 reg = <0x8006c000 0x2000>;67 reg = <0x8006c000 0x2000>;
68 interrupts = <24 25 23>;68 interrupts = <24 25 23>;
69 clocks = <&clks 32>;69 clocks = <&clks 32>;
70 status = "disabled";
71};70};
Documentation/devicetree/bindings/clock/imx25-clock.txt+0−1
@@ -157,5 +157,4 @@ uart1: serial@43f90000 { · 156 unmodified lines
157 interrupts = <45>;157 interrupts = <45>;
158 clocks = <&clks 79>, <&clks 50>;158 clocks = <&clks 79>, <&clks 50>;
159 clock-names = "ipg", "per";159 clock-names = "ipg", "per";
160 status = "disabled";
161};160};
Documentation/devicetree/bindings/clock/imx27-clock.txt+0−1
@@ -24,5 +24,4 @@ Examples: · 23 unmodified lines
24 clocks = <&clks IMX27_CLK_UART1_IPG_GATE>,24 clocks = <&clks IMX27_CLK_UART1_IPG_GATE>,
25 <&clks IMX27_CLK_PER1_GATE>;25 <&clks IMX27_CLK_PER1_GATE>;
26 clock-names = "ipg", "per";26 clock-names = "ipg", "per";
27 status = "disabled";
28 };27 };
Documentation/devicetree/bindings/clock/imx28-clock.txt+0−1
@@ -90,5 +90,4 @@ auart0: serial@8006a000 { · 89 unmodified lines
90 reg = <0x8006a000 0x2000>;90 reg = <0x8006a000 0x2000>;
91 interrupts = <112 70 71>;91 interrupts = <112 70 71>;
92 clocks = <&clks 45>;92 clocks = <&clks 45>;
93 status = "disabled";
94};93};
Documentation/devicetree/bindings/clock/imx31-clock.txt+0−1
@@ -87,5 +87,4 @@ uart1: serial@43f90000 { · 86 unmodified lines
87 interrupts = <45>;87 interrupts = <45>;
88 clocks = <&clks 10>, <&clks 30>;88 clocks = <&clks 10>, <&clks 30>;
89 clock-names = "ipg", "per";89 clock-names = "ipg", "per";
90 status = "disabled";
91};90};
Documentation/devicetree/bindings/clock/imx5-clock.txt+0−1
@@ -25,5 +25,4 @@ can1: can@53fc8000 { · 24 unmodified lines
25 interrupts = <82>;25 interrupts = <82>;
26 clocks = <&clks IMX5_CLK_CAN1_IPG_GATE>, <&clks IMX5_CLK_CAN1_SERIAL_GATE>;26 clocks = <&clks IMX5_CLK_CAN1_IPG_GATE>, <&clks IMX5_CLK_CAN1_SERIAL_GATE>;
27 clock-names = "ipg", "per";27 clock-names = "ipg", "per";
28 status = "disabled";
29};28};
Documentation/devicetree/bindings/clock/imx6q-clock.txt+0−1
@@ -27,5 +27,4 @@ uart1: serial@02020000 { · 26 unmodified lines
27 interrupts = <0 26 0x04>;27 interrupts = <0 26 0x04>;
28 clocks = <&clks IMX6QDL_CLK_UART_IPG>, <&clks IMX6QDL_CLK_UART_SERIAL>;28 clocks = <&clks IMX6QDL_CLK_UART_IPG>, <&clks IMX6QDL_CLK_UART_SERIAL>;
29 clock-names = "ipg", "per";29 clock-names = "ipg", "per";
30 status = "disabled";
31};30};
Documentation/devicetree/bindings/clock/mt8173-cpu-dvfs.txt+0−83
@@ -1,83 +0,0 @@
1Device Tree Clock bindins for CPU DVFS of Mediatek MT8173 SoC
2
3Required 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
14Optional 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
21Example:
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
66 #clock-cells = <0>;66 #clock-cells = <0>;
67 clock-output-names = "dfllCPU_out";67 clock-output-names = "dfllCPU_out";
68 vdd-cpu-supply = <&vdd_cpu>;68 vdd-cpu-supply = <&vdd_cpu>;
69 status = "okay";
70 69
71 nvidia,sample-rate = <12500>;70 nvidia,sample-rate = <12500>;
72 nvidia,droop-ctrl = <0x00000f00>;71 nvidia,droop-ctrl = <0x00000f00>;
Documentation/devicetree/bindings/clock/pxa-clock.txt+0−1
@@ -12,5 +12,4 @@ Examples: · 11 unmodified lines
12pxa2xx_clks: pxa2xx_clks@41300004 {12pxa2xx_clks: pxa2xx_clks@41300004 {
13 compatible = "marvell,pxa-clocks";13 compatible = "marvell,pxa-clocks";
14 #clock-cells = <1>;14 #clock-cells = <1>;
15 status = "okay";
16};15};
Documentation/devicetree/bindings/clock/renesas,cpg-mssr.txt+2−2
@@ -22,6 +22,7 @@ Required Properties: · 21 unmodified lines
22 - "renesas,r8a7794-cpg-mssr" for the r8a7794 SoC (R-Car E2)22 - "renesas,r8a7794-cpg-mssr" for the r8a7794 SoC (R-Car E2)
23 - "renesas,r8a7795-cpg-mssr" for the r8a7795 SoC (R-Car H3)23 - "renesas,r8a7795-cpg-mssr" for the r8a7795 SoC (R-Car H3)
24 - "renesas,r8a7796-cpg-mssr" for the r8a7796 SoC (R-Car M3-W)24 - "renesas,r8a7796-cpg-mssr" for the r8a7796 SoC (R-Car M3-W)
25 - "renesas,r8a77995-cpg-mssr" for the r8a77995 SoC (R-Car D3)
25 26
26 - reg: Base address and length of the memory resource used by the CPG/MSSR27 - reg: Base address and length of the memory resource used by the CPG/MSSR
27 block28 block
@@ -30,7 +31,7 @@ Required Properties: · 2 unmodified lines
30 clock-names31 clock-names
31 - clock-names: List of external parent clock names. Valid names are:32 - clock-names: List of external parent clock names. Valid names are:
32 - "extal" (r8a7743, r8a7745, r8a7790, r8a7791, r8a7792, r8a7793, r8a7794,33 - "extal" (r8a7743, r8a7745, r8a7790, r8a7791, r8a7792, r8a7793, r8a7794,
33 r8a7795, r8a7796)34 r8a7795, r8a7796, r8a77995)
34 - "extalr" (r8a7795, r8a7796)35 - "extalr" (r8a7795, r8a7796)
35 - "usb_extal" (r8a7743, r8a7745, r8a7790, r8a7791, r8a7793, r8a7794)36 - "usb_extal" (r8a7743, r8a7745, r8a7790, r8a7791, r8a7793, r8a7794)
36 37
@@ -81,5 +82,4 @@ Examples · 44 unmodified lines
81 dma-names = "tx", "rx";82 dma-names = "tx", "rx";
82 power-domains = <&cpg>;83 power-domains = <&cpg>;
83 resets = <&cpg 310>;84 resets = <&cpg 310>;
84 status = "disabled";
85 };85 };
Documentation/devicetree/bindings/clock/renesas,r8a7778-cpg-clocks.txt+0−1
@@ -44,5 +44,4 @@ Examples · 43 unmodified lines
44 interrupts = <0 87 IRQ_TYPE_LEVEL_HIGH>;44 interrupts = <0 87 IRQ_TYPE_LEVEL_HIGH>;
45 clocks = <&mstp3_clks R8A7778_CLK_SDHI0>;45 clocks = <&mstp3_clks R8A7778_CLK_SDHI0>;
46 power-domains = <&cpg_clocks>;46 power-domains = <&cpg_clocks>;
47 status = "disabled";
48 };47 };
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
3This file provides information on what the device node for the R-Car USB 2.0
4clock selector.
5
6If you connect an external clock to the USB_EXTAL pin only, you should set
7the clock rate to "usb_extal" node only.
8If you connect an oscillator to both the USB_XTAL and USB_EXTAL, this module
9is not needed because this is default setting. (Of course, you can set the
10clock rates to both "usb_extal" and "usb_xtal" nodes.
11
12Case 1: An external clock connects to R-Car SoC
13 +----------+ +--- R-Car ---------------------+
14 |External |---|USB_EXTAL ---> all usb channels|
15 |clock | |USB_XTAL |
16 +----------+ +-------------------------------+
17In this case, we need this driver with "usb_extal" clock.
18
19Case 2: An oscillator connects to R-Car SoC
20 +----------+ +--- R-Car ---------------------+
21 |Oscillator|---|USB_EXTAL -+-> all usb channels|
22 | |---|USB_XTAL --+ |
23 +----------+ +-------------------------------+
24In this case, we don't need this selector.
25
26Required 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
46Example (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
50 clocks = <&mstp3_clks R7S72100_CLK_MTU2>;50 clocks = <&mstp3_clks R7S72100_CLK_MTU2>;
51 clock-names = "fck";51 clock-names = "fck";
52 power-domains = <&cpg_clocks>;52 power-domains = <&cpg_clocks>;
53 status = "disabled";
54 };53 };
Documentation/devicetree/bindings/clock/rockchip,rk3128-cru.txt+5−3
@@ -1,12 +1,14 @@
1* Rockchip RK3128 Clock and Reset Unit1* Rockchip RK3126/RK3128 Clock and Reset Unit
2 2
3The RK3128 clock controller generates and supplies clock to various3The RK3126/RK3128 clock controller generates and supplies clock to various
4controllers within the SoC and also implements a reset controller for SoC4controllers within the SoC and also implements a reset controller for SoC
5peripherals.5peripherals.
6 6
7Required Properties:7Required Properties:
8 8
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.
10- reg: physical base address of the controller and length of memory mapped12- reg: physical base address of the controller and length of memory mapped
11 region.13 region.
12- #clock-cells: should be 1.14- #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
46 interrupts = <1 23 3 4>, <1 23 4 4>;46 interrupts = <1 23 3 4>, <1 23 4 4>;
47 clock-names = "uart", "clk_uart_baud2";47 clock-names = "uart", "clk_uart_baud2";
48 clocks = <&clocks PCLK_UART0>, <&clocks PCLK_UART0>;48 clocks = <&clocks PCLK_UART0>, <&clocks PCLK_UART0>;
49 status = "disabled";
50 };49 };
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
46 clock-names = "uart", "clk_uart_baud2", "clk_uart_baud3";46 clock-names = "uart", "clk_uart_baud2", "clk_uart_baud3";
47 clocks = <&clocks PCLK_UART0>, <&clocks PCLK_UART0>,47 clocks = <&clocks PCLK_UART0>, <&clocks PCLK_UART0>,
48 <&clocks SCLK_UART>;48 <&clocks SCLK_UART>;
49 status = "disabled";
50 };49 };
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
52 "clk_uart_baud3";52 "clk_uart_baud3";
53 clocks = <&clocks PCLK_UART0>, <&clocks PCLK_UART0>,53 clocks = <&clocks PCLK_UART0>, <&clocks PCLK_UART0>,
54 <&clocks SCLK_UART>;54 <&clocks SCLK_UART>;
55 status = "disabled";
56 };55 };
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
73 "clk_uart_baud3";73 "clk_uart_baud3";
74 clocks = <&clock PCLK_UART0>, <&clocks PCLK_UART0>,74 clocks = <&clock PCLK_UART0>, <&clocks PCLK_UART0>,
75 <&clock SCLK_UART>;75 <&clock SCLK_UART>;
76 status = "disabled";
77 };76 };
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
74 "clk_uart_baud1";74 "clk_uart_baud1";
75 clocks = <&clocks UART0>, <&clocks UART0>,75 clocks = <&clocks UART0>, <&clocks UART0>,
76 <&clocks SCLK_UART0>;76 <&clocks SCLK_UART0>;
77 status = "disabled";
78 };77 };
Documentation/devicetree/bindings/clock/silabs,si5351.txt+5−1
@@ -12,7 +12,11 @@ generators can be found in [1]. · 11 unmodified lines
12==I2C device node==12==I2C device node==
13 13
14Required properties:14Required 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
16- reg: i2c device address, shall be 0x60 or 0x61.20- reg: i2c device address, shall be 0x60 or 0x61.
17- #clock-cells: from common clock binding; shall be set to 1.21- #clock-cells: from common clock binding; shall be set to 1.
18- clocks: from common clock binding; list of parent clock22- clocks: from common clock binding; list of parent clock
Documentation/devicetree/bindings/clock/snps,hsdk-pll-clock.txt+28−0
@@ -0,0 +1,28 @@
1Binding for the HSDK Generic PLL clock
2
3This binding uses the common clock binding[1].
4
5[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
6
7Required 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
16Example:
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 @@
1Binding for the AXS10X Generic PLL clock
2
3This binding uses the common clock binding[1].
4
5[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
6
7Required 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
12registers 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
16Example:
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 @@
1STMicroelectronics STM32H7 Reset and Clock Controller
2=====================================================
3
4The RCC IP is both a reset and a clock controller.
5
6Please refer to clock-bindings.txt for common clock controller binding usage.
7Please also refer to reset.txt for common reset controller binding usage.
8
9Required 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
25Optional properties:
26- st,syscfg: phandle for pwrcfg, mandatory to disable/enable backup domain
27 write protection (RTC clock).
28
29Example:
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
41The peripheral clock consumer should specify the desired clock by
42having the clock ID in its "clocks" phandle cell.
43
44Example:
45
46 timer5: timer@40000c00 {
47 compatible = "st,stm32-timer";
48 reg = <0x40000c00 0x400>;
49 interrupts = <50>;
50 clocks = <&rcc TIM5_CK>;
51 };
52
53Specifying softreset control of devices
54=======================================
55
56Device nodes should specify the reset channel required in their "resets"
57property, containing a phandle to the reset device node and an index specifying
58which channel to use.
59The index is the bit number within the RCC registers bank, starting from RCC
60base address.
61It is calculated as: index = register_offset / 4 * 32 + bit_offset.
62Where bit_offset is the bit offset within the register.
63
64For example, for CRC reset:
65 crc = AHB4RSTR_offset / 4 * 32 + CRCRST_bit_offset = 0x88 / 4 * 32 + 19 = 1107
66
67Example:
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
3 3
4Required properties :4Required properties :
5- compatible: must contain one of the following compatibles:5- compatible: must contain one of the following compatibles:
6 - "allwinner,sun4i-a10-ccu"
7 - "allwinner,sun5i-a10s-ccu"
8 - "allwinner,sun5i-a13-ccu"
6 - "allwinner,sun6i-a31-ccu"9 - "allwinner,sun6i-a31-ccu"
10 - "allwinner,sun7i-a20-ccu"
7 - "allwinner,sun8i-a23-ccu"11 - "allwinner,sun8i-a23-ccu"
8 - "allwinner,sun8i-a33-ccu"12 - "allwinner,sun8i-a33-ccu"
9 - "allwinner,sun8i-a83t-ccu"13 - "allwinner,sun8i-a83t-ccu"
10 - "allwinner,sun8i-a83t-r-ccu"14 - "allwinner,sun8i-a83t-r-ccu"
11 - "allwinner,sun8i-h3-ccu"15 - "allwinner,sun8i-h3-ccu"
12 - "allwinner,sun8i-h3-r-ccu"16 - "allwinner,sun8i-h3-r-ccu"
17+ - "allwinner,sun8i-r40-ccu"
13 - "allwinner,sun8i-v3s-ccu"18 - "allwinner,sun8i-v3s-ccu"
14 - "allwinner,sun9i-a80-ccu"19 - "allwinner,sun9i-a80-ccu"
15 - "allwinner,sun50i-a64-ccu"20 - "allwinner,sun50i-a64-ccu"
16 - "allwinner,sun50i-a64-r-ccu"21 - "allwinner,sun50i-a64-r-ccu"
17 - "allwinner,sun50i-h5-ccu"22 - "allwinner,sun50i-h5-ccu"
23 - "nextthing,gr8-ccu"
18 24
19- reg: Must contain the registers base address and length25- reg: Must contain the registers base address and length
20- clocks: phandle to the oscillators feeding the CCU. Two are needed:26- 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
14- compatible: Must be "ti,k2g-sci-clk"14- compatible: Must be "ti,k2g-sci-clk"
15- #clock-cells: Shall be 2.15- #clock-cells: Shall be 2.
16 In clock consumers, this cell represents the device ID and clock ID16 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 header17 exposed by the PM firmware. The list of valid values for the device IDs
18 files <dt-bindings/genpd/<soc>.h> (which covers the device IDs) and18 and clocks IDs for 66AK2G SoC are documented at
19 <dt-bindings/clock/<soc>.h> (which covers the clock IDs), where <soc>19 http://processors.wiki.ti.com/index.php/TISCI#66AK2G02_Data
20 is the SoC involved, for example 'k2g'.
21 20
22Examples:21Examples:
23--------22--------
Documentation/devicetree/bindings/clock/ti/dra7-atl.txt+0−2
@@ -81,13 +81,11 @@ atl: atl@4843c000 { · 80 unmodified lines
81 <&atl_clkin2_ck>, <&atl_clkin3_ck>;81 <&atl_clkin2_ck>, <&atl_clkin3_ck>;
82 clocks = <&atl_gfclk_mux>;82 clocks = <&atl_gfclk_mux>;
83 clock-names = "fck";83 clock-names = "fck";
84 status = "disabled";
85};84};
86 85
87#include <dt-bindings/clk/ti-dra7-atl.h>86#include <dt-bindings/clk/ti-dra7-atl.h>
88 87
89&atl {88&atl {
90 status = "okay";
91 89
92 atl2 {90 atl2 {
93 bws = <DRA7_ATL_WS_MCASP2_FSX>;91 bws = <DRA7_ATL_WS_MCASP2_FSX>;
Documentation/devicetree/bindings/clock/uniphier-clock.txt+3−5
@@ -6,7 +6,6 @@ System clock · 5 unmodified lines
6 6
7Required properties:7Required properties:
8- compatible: should be one of the following:8- compatible: should be one of the following:
9 "socionext,uniphier-sld3-clock" - for sLD3 SoC.
10 "socionext,uniphier-ld4-clock" - for LD4 SoC.9 "socionext,uniphier-ld4-clock" - for LD4 SoC.
11 "socionext,uniphier-pro4-clock" - for Pro4 SoC.10 "socionext,uniphier-pro4-clock" - for Pro4 SoC.
12 "socionext,uniphier-sld8-clock" - for sLD8 SoC.11 "socionext,uniphier-sld8-clock" - for sLD8 SoC.
@@ -14,6 +13,7 @@ Required properties: · 1 unmodified line
14 "socionext,uniphier-pxs2-clock" - for PXs2/LD6b SoC.13 "socionext,uniphier-pxs2-clock" - for PXs2/LD6b SoC.
15 "socionext,uniphier-ld11-clock" - for LD11 SoC.14 "socionext,uniphier-ld11-clock" - for LD11 SoC.
16 "socionext,uniphier-ld20-clock" - for LD20 SoC.15 "socionext,uniphier-ld20-clock" - for LD20 SoC.
16 "socionext,uniphier-pxs3-clock" - for PXs3 SoC
17- #clock-cells: should be 1.17- #clock-cells: should be 1.
18 18
19Example:19Example:
@@ -48,7 +48,6 @@ Media I/O (MIO) clock, SD clock · 28 unmodified lines
48 48
49Required properties:49Required properties:
50- compatible: should be one of the following:50- compatible: should be one of the following:
51 "socionext,uniphier-sld3-mio-clock" - for sLD3 SoC.
52 "socionext,uniphier-ld4-mio-clock" - for LD4 SoC.51 "socionext,uniphier-ld4-mio-clock" - for LD4 SoC.
53 "socionext,uniphier-pro4-mio-clock" - for Pro4 SoC.52 "socionext,uniphier-pro4-mio-clock" - for Pro4 SoC.
54 "socionext,uniphier-sld8-mio-clock" - for sLD8 SoC.53 "socionext,uniphier-sld8-mio-clock" - for sLD8 SoC.
@@ -56,6 +55,7 @@ Required properties: · 1 unmodified line
56 "socionext,uniphier-pxs2-sd-clock" - for PXs2/LD6b SoC.55 "socionext,uniphier-pxs2-sd-clock" - for PXs2/LD6b SoC.
57 "socionext,uniphier-ld11-mio-clock" - for LD11 SoC.56 "socionext,uniphier-ld11-mio-clock" - for LD11 SoC.
58 "socionext,uniphier-ld20-sd-clock" - for LD20 SoC.57 "socionext,uniphier-ld20-sd-clock" - for LD20 SoC.
58 "socionext,uniphier-pxs3-sd-clock" - for PXs3 SoC
59- #clock-cells: should be 1.59- #clock-cells: should be 1.
60 60
61Example:61Example:
@@ -82,11 +82,9 @@ Provided clocks: · 20 unmodified lines
82 8: USB2 ch0 host82 8: USB2 ch0 host
83 9: USB2 ch1 host83 9: USB2 ch1 host
8410: USB2 ch2 host8410: USB2 ch2 host
8511: USB2 ch3 host
8612: USB2 ch0 PHY8512: USB2 ch0 PHY
8713: USB2 ch1 PHY8613: USB2 ch1 PHY
8814: USB2 ch2 PHY8714: USB2 ch2 PHY
8915: USB2 ch3 PHY
90 88
91 89
92Peripheral clock90Peripheral clock
@@ -94,7 +92,6 @@ Peripheral clock · 1 unmodified line
94 92
95Required properties:93Required properties:
96- compatible: should be one of the following:94- compatible: should be one of the following:
97 "socionext,uniphier-sld3-peri-clock" - for sLD3 SoC.
98 "socionext,uniphier-ld4-peri-clock" - for LD4 SoC.95 "socionext,uniphier-ld4-peri-clock" - for LD4 SoC.
99 "socionext,uniphier-pro4-peri-clock" - for Pro4 SoC.96 "socionext,uniphier-pro4-peri-clock" - for Pro4 SoC.
100 "socionext,uniphier-sld8-peri-clock" - for sLD8 SoC.97 "socionext,uniphier-sld8-peri-clock" - for sLD8 SoC.
@@ -102,6 +99,7 @@ Required properties: · 1 unmodified line
102 "socionext,uniphier-pxs2-peri-clock" - for PXs2/LD6b SoC.99 "socionext,uniphier-pxs2-peri-clock" - for PXs2/LD6b SoC.
103 "socionext,uniphier-ld11-peri-clock" - for LD11 SoC.100 "socionext,uniphier-ld11-peri-clock" - for LD11 SoC.
104 "socionext,uniphier-ld20-peri-clock" - for LD20 SoC.101 "socionext,uniphier-ld20-peri-clock" - for LD20 SoC.
102 "socionext,uniphier-pxs3-peri-clock" - for PXs3 SoC
105- #clock-cells: should be 1.103- #clock-cells: should be 1.
106 104
107Example:105Example:
Documentation/devicetree/bindings/clock/zx296702-clk.txt+0−1
@@ -31,5 +31,4 @@ uart0: serial@0x09405000 { · 30 unmodified lines
31 reg = <0x09405000 0x1000>;31 reg = <0x09405000 0x1000>;
32 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;32 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
33 clocks = <&lsp1clk ZX296702_UART0_PCLK>;33 clocks = <&lsp1clk ZX296702_UART0_PCLK>;
34 status = "disabled";
35};34};
Documentation/devicetree/bindings/clock/zx296718-clk.txt+0−1
@@ -34,5 +34,4 @@ usbphy0:usb-phy0 { · 33 unmodified lines
34 #phy-cells = <0>;34 #phy-cells = <0>;
35 clocks = <&topclk USB20_PHY_CLK>;35 clocks = <&topclk USB20_PHY_CLK>;
36 clock-names = "phyclk";36 clock-names = "phyclk";
37 status = "okay";
38};37};
Documentation/devicetree/bindings/cpufreq/cpufreq-mediatek.txt+247−0
@@ -0,0 +1,247 @@
1Binding for MediaTek's CPUFreq driver
2=====================================
3
4Required 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
17Optional 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
29Example 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
92Example 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 @@
1Axis crypto engine with PDMA interface.
2
3Required 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
10Example:
11
12crypto@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
66 dmas = <&dma1 2 17>;66 dmas = <&dma1 2 17>;
67 dma-names = "tx";67 dma-names = "tx";
68};68};
69
70* Eliptic Curve Cryptography (I2C)
71
72Required 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
77Example:
78atecc508a@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
13 compatible = "fsl,imx28-dcp", "fsl,imx23-dcp";13 compatible = "fsl,imx28-dcp", "fsl,imx23-dcp";
14 reg = <0x80028000 0x2000>;14 reg = <0x80028000 0x2000>;
15 interrupts = <52 53>;15 interrupts = <52 53>;
16 status = "okay";
17};16};
Documentation/devicetree/bindings/crypto/inside-secure-safexcel.txt+0−1
@@ -23,5 +23,4 @@ Example: · 22 unmodified lines
23 interrupt-names = "mem", "ring0", "ring1", "ring2", "ring3",23 interrupt-names = "mem", "ring0", "ring1", "ring2", "ring3",
24 "eip";24 "eip";
25 clocks = <&cpm_syscon0 1 26>;25 clocks = <&cpm_syscon0 1 26>;
26 status = "disabled";
27 };26 };
Documentation/devicetree/bindings/crypto/marvell-cesa.txt+0−1
@@ -41,5 +41,4 @@ Examples: · 40 unmodified lines
41 clock-names = "cesa0", "cesa1";41 clock-names = "cesa0", "cesa1";
42 marvell,crypto-srams = <&crypto_sram0>, <&crypto_sram1>;42 marvell,crypto-srams = <&crypto_sram0>, <&crypto_sram1>;
43 marvell,crypto-sram-size = <0x600>;43 marvell,crypto-sram-size = <0x600>;
44 status = "okay";
45 };44 };
Documentation/devicetree/bindings/crypto/mv_cesa.txt+0−1
@@ -29,5 +29,4 @@ Examples: · 28 unmodified lines
29 interrupts = <22>;29 interrupts = <22>;
30 marvell,crypto-srams = <&crypto_sram>;30 marvell,crypto-srams = <&crypto_sram>;
31 marvell,crypto-sram-size = <0x600>;31 marvell,crypto-sram-size = <0x600>;
32 status = "okay";
33 };32 };
Documentation/devicetree/bindings/crypto/rockchip-crypto.txt+0−1
@@ -25,5 +25,4 @@ Examples: · 24 unmodified lines
25 clock-names = "aclk", "hclk", "sclk", "apb_pclk";25 clock-names = "aclk", "hclk", "sclk", "apb_pclk";
26 resets = <&cru SRST_CRYPTO>;26 resets = <&cru SRST_CRYPTO>;
27 reset-names = "crypto-rst";27 reset-names = "crypto-rst";
28 status = "okay";
29 };28 };
Documentation/devicetree/bindings/crypto/st,stm32-hash.txt+30−0
@@ -0,0 +1,30 @@
1* STMicroelectronics STM32 HASH
2
3Required 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
12Optional 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
19Example:
20
21hash1: 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
15 rockchip,pmu = <&pmugrf>;15 rockchip,pmu = <&pmugrf>;
16 clocks = <&cru PCLK_DDR_MON>;16 clocks = <&cru PCLK_DDR_MON>;
17 clock-names = "pclk_ddr_mon";17 clock-names = "pclk_ddr_mon";
18 status = "disabled";
19 };18 };
Documentation/devicetree/bindings/devfreq/rk3399_dmc.txt+0−1
@@ -205,5 +205,4 @@ Example: · 204 unmodified lines
205 rockchip,phy_lpddr4_ck_cs_drv = <PHY_DRV_ODT_80>;205 rockchip,phy_lpddr4_ck_cs_drv = <PHY_DRV_ODT_80>;
206 rockchip,phy_lpddr4_dq_drv = <PHY_DRV_ODT_80>;206 rockchip,phy_lpddr4_dq_drv = <PHY_DRV_ODT_80>;
207 rockchip,phy_lpddr4_odt = <PHY_DRV_ODT_60>;207 rockchip,phy_lpddr4_odt = <PHY_DRV_ODT_60>;
208 status = "disabled";
209 };208 };
Documentation/devicetree/bindings/display/atmel,lcdc.txt+0−1
@@ -34,7 +34,6 @@ Example: · 33 unmodified lines
34 pinctrl-names = "default";34 pinctrl-names = "default";
35 pinctrl-0 = <&pinctrl_fb>;35 pinctrl-0 = <&pinctrl_fb>;
36 display = <&display0>;36 display = <&display0>;
37 status = "okay";
38 #address-cells = <1>;37 #address-cells = <1>;
39 #size-cells = <1>;38 #size-cells = <1>;
40 39
Documentation/devicetree/bindings/display/atmel/hlcdc-dc.txt+0−1
@@ -23,7 +23,6 @@ Example: · 22 unmodified lines
23 interrupts = <36 IRQ_TYPE_LEVEL_HIGH 0>;23 interrupts = <36 IRQ_TYPE_LEVEL_HIGH 0>;
24 clocks = <&lcdc_clk>, <&lcdck>, <&clk32k>;24 clocks = <&lcdc_clk>, <&lcdck>, <&clk32k>;
25 clock-names = "periph_clk","sys_clk", "slow_clk";25 clock-names = "periph_clk","sys_clk", "slow_clk";
26 status = "disabled";
27 26
28 hlcdc-display-controller {27 hlcdc-display-controller {
29 compatible = "atmel,hlcdc-display-controller";28 compatible = "atmel,hlcdc-display-controller";
Documentation/devicetree/bindings/display/bridge/dw_mipi_dsi.txt+32−0
@@ -0,0 +1,32 @@
1Synopsys DesignWare MIPI DSI host controller
2============================================
3
4This document defines device tree properties for the Synopsys DesignWare MIPI
5DSI host controller. It doesn't constitue a device tree binding specification
6by itself but is meant to be referenced by platform-specific device tree
7bindings.
8
9When referenced from platform device tree bindings the properties defined in
10this document are defined as follows. The platform device tree bindings are
11responsible 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
33Example:33Example:
34 34
35&mux2_i2c2 {35&mux2_i2c2 {
36 status = "okay";
37 clock-frequency = <100000>;36 clock-frequency = <100000>;
38 37
39 stdp4028@73 {38 stdp4028@73 {
Documentation/devicetree/bindings/display/bridge/renesas,dw-hdmi.txt+1−1
@@ -13,6 +13,7 @@ Required properties: · 12 unmodified lines
13 13
14- compatible : Shall contain one or more of14- compatible : Shall contain one or more of
15 - "renesas,r8a7795-hdmi" for R8A7795 (R-Car H3) compatible HDMI TX15 - "renesas,r8a7795-hdmi" for R8A7795 (R-Car H3) compatible HDMI TX
16 - "renesas,r8a7796-hdmi" for R8A7796 (R-Car M3-W) compatible HDMI TX
16 - "renesas,rcar-gen3-hdmi" for the generic R-Car Gen3 compatible HDMI TX17 - "renesas,rcar-gen3-hdmi" for the generic R-Car Gen3 compatible HDMI TX
17 18
18 When compatible with generic versions, nodes must list the SoC-specific19 When compatible with generic versions, nodes must list the SoC-specific
@@ -43,7 +44,6 @@ Example: · 24 unmodified lines
43 clocks = <&cpg CPG_CORE R8A7795_CLK_S0D4>, <&cpg CPG_MOD 729>;44 clocks = <&cpg CPG_CORE R8A7795_CLK_S0D4>, <&cpg CPG_MOD 729>;
44 clock-names = "iahb", "isfr";45 clock-names = "iahb", "isfr";
45 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;46 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
46 status = "disabled";
47 47
48 ports {48 ports {
49 #address-cells = <1>;49 #address-cells = <1>;
Documentation/devicetree/bindings/display/exynos/exynos5433-decon.txt+0−12
@@ -25,12 +25,6 @@ Required properties: · 24 unmodified lines
25 size-cells must 1 and 0, respectively.25 size-cells must 1 and 0, respectively.
26- port: contains an endpoint node which is connected to the endpoint in the mic26- port: contains an endpoint node which is connected to the endpoint in the mic
27 node. The reg value muset be 0.27 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.
34 28
35Example:29Example:
36SoC specific DT entry:30SoC specific DT entry:
@@ -59,9 +53,3 @@ decon: decon@13800000 { · 22 unmodified lines
59 };53 };
60 };54 };
61};55};
62
63Board 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
14 reg = <0x4003d000 0x1000>;14 reg = <0x4003d000 0x1000>;
15 clocks = <&clks VF610_CLK_TCON0>;15 clocks = <&clks VF610_CLK_TCON0>;
16 clock-names = "ipg";16 clock-names = "ipg";
17 status = "okay";
18};17};
Documentation/devicetree/bindings/display/imx/fsl-imx-drm.txt+1−1
@@ -116,7 +116,7 @@ Parallel display support · 115 unmodified lines
116Required properties:116Required properties:
117- compatible: Should be "fsl,imx-parallel-display"117- compatible: Should be "fsl,imx-parallel-display"
118Optional properties:118Optional properties:
119- interface_pix_fmt: How this display is connected to the119- interface-pix-fmt: How this display is connected to the
120 display interface. Currently supported types: "rgb24", "rgb565", "bgr666"120 display interface. Currently supported types: "rgb24", "rgb565", "bgr666"
121 and "lvds666".121 and "lvds666".
122- edid: verbatim EDID data block describing attached display.122- 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
23 reg = <0x44000000 0x10000>;23 reg = <0x44000000 0x10000>;
24 interrupts = <17>;24 interrupts = <17>;
25 clocks = <&clks CLK_LCD>;25 clocks = <&clks CLK_LCD>;
26 status = "okay";
27 26
28 port {27 port {
29 lcdc_out: endpoint {28 lcdc_out: endpoint {
Documentation/devicetree/bindings/display/panel/innolux,p079zca.txt+0−1
@@ -18,6 +18,5 @@ Example: · 17 unmodified lines
18 power-supply = <...>;18 power-supply = <...>;
19 backlight = <&backlight>;19 backlight = <&backlight>;
20 enable-gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>;20 enable-gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>;
21 status = "okay";
22 };21 };
23 };22 };
Documentation/devicetree/bindings/display/renesas,du.txt+30−21
@@ -36,8 +36,10 @@ Required Properties: · 35 unmodified lines
36 When supplied they must be named "dclkin.x" with "x" being the input36 When supplied they must be named "dclkin.x" with "x" being the input
37 clock numerical index.37 clock numerical index.
38 38
39 - vsps: A list of phandles to the VSP nodes that handle the memory39 - vsps: A list of phandle and channel index tuples to the VSPs that handle
40 interfaces for the DU channels.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.
41 43
42Required nodes:44Required nodes:
43 45
@@ -59,24 +61,24 @@ corresponding to each DU output. · 15 unmodified lines
59 R8A7796 (M3-W) DPAD HDMI LVDS -61 R8A7796 (M3-W) DPAD HDMI LVDS -
60 62
61 63
62Example: R8A7790 (R-Car H2) DU64Example: R8A7795 (R-Car H3) ES2.0 DU
63 65
64 du: du@feb00000 {66 du: display@feb00000 {
65 compatible = "renesas,du-r8a7790";67 compatible = "renesas,du-r8a7795";
66 reg = <0 0xfeb00000 0 0x70000>,68 reg = <0 0xfeb00000 0 0x80000>,
67 <0 0xfeb90000 0 0x1c>,69 <0 0xfeb90000 0 0x14>;
68 <0 0xfeb94000 0 0x1c>;70 reg-names = "du", "lvds.0";
69 reg-names = "du", "lvds.0", "lvds.1";71 interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>,
70 interrupt-parent = <&gic>;72 <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>,
71 interrupts = <0 256 IRQ_TYPE_LEVEL_HIGH>,73 <GIC_SPI 269 IRQ_TYPE_LEVEL_HIGH>,
72 <0 268 IRQ_TYPE_LEVEL_HIGH>,74 <GIC_SPI 270 IRQ_TYPE_LEVEL_HIGH>;
73 <0 269 IRQ_TYPE_LEVEL_HIGH>;75 clocks = <&cpg CPG_MOD 724>,
74 clocks = <&mstp7_clks R8A7790_CLK_DU0>,76 <&cpg CPG_MOD 723>,
75 <&mstp7_clks R8A7790_CLK_DU1>,77 <&cpg CPG_MOD 722>,
76 <&mstp7_clks R8A7790_CLK_DU2>,78 <&cpg CPG_MOD 721>,
77 <&mstp7_clks R8A7790_CLK_LVDS0>,79 <&cpg CPG_MOD 727>;
78 <&mstp7_clks R8A7790_CLK_LVDS1>;80 clock-names = "du.0", "du.1", "du.2", "du.3", "lvds.0";
79 clock-names = "du.0", "du.1", "du.2", "lvds.0", "lvds.1";81 vsps = <&vspd0 0>, <&vspd1 0>, <&vspd2 0>, <&vspd0 1>;
80 82
81 ports {83 ports {
82 #address-cells = <1>;84 #address-cells = <1>;
@@ -89,12 +91,19 @@ Example: R8A7790 (R-Car H2) DU · 6 unmodified lines
89 };91 };
90 port@1 {92 port@1 {
91 reg = <1>;93 reg = <1>;
92 du_out_lvds0: endpoint {94 du_out_hdmi0: endpoint {
95 remote-endpoint = <&dw_hdmi0_in>;
93 };96 };
94 };97 };
95 port@2 {98 port@2 {
96 reg = <2>;99 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 {
98 };107 };
99 };108 };
100 };109 };
Documentation/devicetree/bindings/display/repaper.txt+52−0
@@ -0,0 +1,52 @@
1Pervasive Displays RePaper branded e-ink displays
2
3Required 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
14Required property for e2271cs021:
15- border-gpios: Border control
16
17The node for this driver must be a child node of a SPI controller, hence
18all mandatory properties described in ../spi/spi-bus.txt must be specified.
19
20Optional property:
21- pervasive,thermal-zone: name of thermometer's thermal zone
22
23Example:
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
59 pinctrl-names = "default";59 pinctrl-names = "default";
60 pinctrl-0 = <&edp_hpd>;60 pinctrl-0 = <&edp_hpd>;
61 61
62 status = "disabled";
63 62
64 ports {63 ports {
65 #address-cells = <1>;64 #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
11 11
12Required properties:12Required properties:
13 13
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"
15- reg: See dw_hdmi.txt.17- reg: See dw_hdmi.txt.
16- reg-io-width: See dw_hdmi.txt. Shall be 4.18- reg-io-width: See dw_hdmi.txt. Shall be 4.
17- interrupts: HDMI interrupt number19- interrupts: HDMI interrupt number
@@ -30,7 +32,8 @@ Optional properties · 12 unmodified lines
30 I2C master controller.32 I2C master controller.
31- clock-names: See dw_hdmi.txt. The "cec" clock is optional.33- clock-names: See dw_hdmi.txt. The "cec" clock is optional.
32- clock-names: May contain "cec" as defined in dw_hdmi.txt.34- 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.
34 37
35Example:38Example:
36 39
@@ -43,7 +46,6 @@ hdmi: hdmi@ff980000 { · 6 unmodified lines
43 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;46 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
44 clocks = <&cru PCLK_HDMI_CTRL>, <&cru SCLK_HDMI_HDCP>;47 clocks = <&cru PCLK_HDMI_CTRL>, <&cru SCLK_HDMI_HDCP>;
45 clock-names = "iahb", "isfr";48 clock-names = "iahb", "isfr";
46 status = "disabled";
47 ports {49 ports {
48 hdmi_in: port {50 hdmi_in: port {
49 #address-cells = <1>;51 #address-cells = <1>;
Documentation/devicetree/bindings/display/rockchip/dw_mipi_dsi_rockchip.txt+0−2
@@ -36,7 +36,6 @@ Example: · 35 unmodified lines
36 resets = <&cru SRST_MIPIDSI0>;36 resets = <&cru SRST_MIPIDSI0>;
37 reset-names = "apb";37 reset-names = "apb";
38 rockchip,grf = <&grf>;38 rockchip,grf = <&grf>;
39 status = "okay";
40 39
41 ports {40 ports {
42 #address-cells = <1>;41 #address-cells = <1>;
@@ -65,6 +64,5 @@ Example: · 22 unmodified lines
65 pinctrl-names = "default";64 pinctrl-names = "default";
66 pinctrl-0 = <&lcd_en>;65 pinctrl-0 = <&lcd_en>;
67 backlight = <&backlight>;66 backlight = <&backlight>;
68 status = "okay";
69 };67 };
70 };68 };
Documentation/devicetree/bindings/display/rockchip/inno_hdmi-rockchip.txt+0−1
@@ -25,7 +25,6 @@ hdmi: hdmi@20034000 { · 24 unmodified lines
25 clock-names = "pclk";25 clock-names = "pclk";
26 pinctrl-names = "default";26 pinctrl-names = "default";
27 pinctrl-0 = <&hdmi_ctl>;27 pinctrl-0 = <&hdmi_ctl>;
28 status = "disabled";
29 28
30 hdmi_in: port {29 hdmi_in: port {
31 #address-cells = <1>;30 #address-cells = <1>;
Documentation/devicetree/bindings/display/rockchip/rockchip-vop.txt+4−0
@@ -8,8 +8,12 @@ Required properties: · 7 unmodified lines
8- compatible: value should be one of the following8- compatible: value should be one of the following
9 "rockchip,rk3036-vop";9 "rockchip,rk3036-vop";
10 "rockchip,rk3288-vop";10 "rockchip,rk3288-vop";
11 "rockchip,rk3368-vop";
12 "rockchip,rk3366-vop";
11 "rockchip,rk3399-vop-big";13 "rockchip,rk3399-vop-big";
12 "rockchip,rk3399-vop-lit";14 "rockchip,rk3399-vop-lit";
15 "rockchip,rk3228-vop";
16 "rockchip,rk3328-vop";
13 17
14- interrupts: should contain a list of all VOP IP block interrupts in the18- interrupts: should contain a list of all VOP IP block interrupts in the
15 order: VSYNC, LCD_SYSTEM. The interrupt specifier19 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
28 allwinner,pipeline = "de_be0-lcd0-hdmi";28 allwinner,pipeline = "de_be0-lcd0-hdmi";
29 clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 43>,29 clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 43>,
30 <&ahb_gates 44>;30 <&ahb_gates 44>;
31 status = "disabled";
32 };31 };
33};32};
Documentation/devicetree/bindings/display/sitronix,st7586.txt+22−0
@@ -0,0 +1,22 @@
1Sitronix ST7586 display panel
2
3Required 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
9The node for this driver must be a child node of a SPI controller, hence
10all mandatory properties described in ../spi/spi-bus.txt must be specified.
11
12Optional properties:
13- rotation: panel rotation in degrees counter clockwise (0,90,180,270)
14
15Example:
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 @@
1* STMicroelectronics STM32 lcd-tft display controller1* STMicroelectronics STM32 lcd-tft display controller
2 2
3- ltdc: lcd-tft display controller host3- ltdc: lcd-tft display controller host
4 must be a sub-node of st-display-subsystem
5 Required properties:4 Required properties:
6 - compatible: "st,stm32-ltdc"5 - compatible: "st,stm32-ltdc"
7 - reg: Physical base address of the IP registers and length of memory mapped region.6 - reg: Physical base address of the IP registers and length of memory mapped region.
@@ -13,8 +12,40 @@ · 5 unmodified lines
13 Required nodes:12 Required nodes:
14 - Video port for RGB output.13 - Video port for RGB output.
15 14
16Example:15* STMicroelectronics STM32 DSI controller specific extensions to Synopsys
16 DesignWare MIPI DSI host controller
17 17
18The STMicroelectronics STM32 DSI controller uses the Synopsys DesignWare MIPI
19DSI host controller. For all mandatory properties & nodes, please refer
20to the related documentation in [5].
21
22Mandatory 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
31Mandatory 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
40Note: 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
48Example 1: RGB panel
18/ {49/ {
19 ...50 ...
20 soc {51 soc {
@@ -34,3 +65,73 @@ Example: · 13 unmodified lines
34 };65 };
35 };66 };
36};67};
68
69Example 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
4The Allwinner A10 Display pipeline is composed of several components4The Allwinner A10 Display pipeline is composed of several components
5that are going to be documented below:5that are going to be documented below:
6 6
7For the input port of all components up to the TCON in the display7For all connections between components up to the TCONs in the display
8pipeline, if there are multiple components, the local endpoint IDs8pipeline, when there are multiple components of the same type at the
9must correspond to the index of the upstream block. For example, if9same depth, the local endpoint ID must be the same as the remote
10the remote endpoint is Frontend 1, then the local endpoint ID must10component's index. For example, if the remote endpoint is Frontend 1,
11be 1.11then the local endpoint ID must be 1.
12 12
13Conversely, for the output ports of the same group, the remote endpoint13 Frontend 0 [0] ------- [0] Backend 0 [0] ------- [0] TCON 0
14ID must be the index of the local hardware block. If the local backend14 [1] -- -- [1] [1] -- -- [1]
15is backend 1, then the remote endpoint ID must be 1.15 \ / \ /
16 X X
17 / \ / \
18 [0] -- -- [0] [0] -- -- [0]
19 Frontend 1 [1] ------- [1] Backend 1 [1] ------- [1] TCON 1
20
21For a two pipeline system such as the one depicted above, the lines
22represent the connections between the components, while the numbers
23within the square brackets corresponds to the ID of the local endpoint.
24
25The 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
16 34
17HDMI Encoder35HDMI Encoder
18------------36------------
@@ -260,7 +278,6 @@ hdmi: hdmi@01c16000 { · 241 unmodified lines
260 <&dma SUN4I_DMA_NORMAL 16>,278 <&dma SUN4I_DMA_NORMAL 16>,
261 <&dma SUN4I_DMA_DEDICATED 24>;279 <&dma SUN4I_DMA_DEDICATED 24>;
262 dma-names = "ddc-tx", "ddc-rx", "audio-tx";280 dma-names = "ddc-tx", "ddc-rx", "audio-tx";
263 status = "disabled";
264 281
265 ports {282 ports {
266 #address-cells = <1>;283 #address-cells = <1>;
Documentation/devicetree/bindings/dma/fsl-edma.txt+0−1
@@ -72,5 +72,4 @@ sai2: sai@40031000 { · 71 unmodified lines
72 dma-names = "tx", "rx";72 dma-names = "tx", "rx";
73 dmas = <&edma0 0 21>,73 dmas = <&edma0 0 21>,
74 <&edma0 0 20>;74 <&edma0 0 20>;
75 status = "disabled";
76};75};
Documentation/devicetree/bindings/dma/mv-xor.txt+0−1
@@ -30,7 +30,6 @@ xor@d0060900 { · 29 unmodified lines
30 reg = <0xd0060900 0x10030 reg = <0xd0060900 0x100
31 0xd0060b00 0x100>;31 0xd0060b00 0x100>;
32 clocks = <&coreclk 0>;32 clocks = <&coreclk 0>;
33 status = "okay";
34 33
35 xor00 {34 xor00 {
36 interrupts = <51>;35 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
48Example:48Example:
49 49
50 spi4: spi@1a280000 {50 spi4: spi@1a280000 {
51 status = "ok";
52 spi-max-frequency = <50000000>;51 spi-max-frequency = <50000000>;
53 52
54 pinctrl-0 = <&spi_pins>;53 pinctrl-0 = <&spi_pins>;
Documentation/devicetree/bindings/dma/renesas,rcar-dmac.txt+1−0
@@ -25,6 +25,7 @@ Required Properties: · 24 unmodified lines
25 - "renesas,dmac-r8a7794" (R-Car E2)25 - "renesas,dmac-r8a7794" (R-Car E2)
26 - "renesas,dmac-r8a7795" (R-Car H3)26 - "renesas,dmac-r8a7795" (R-Car H3)
27 - "renesas,dmac-r8a7796" (R-Car M3-W)27 - "renesas,dmac-r8a7796" (R-Car M3-W)
28 - "renesas,dmac-r8a77970" (R-Car V3M)
28 29
29- reg: base address and length of the registers block for the DMAC30- reg: base address and length of the registers block for the DMAC
30 31
Documentation/devicetree/bindings/dma/renesas,usb-dmac.txt+1−0
@@ -8,6 +8,7 @@ Required Properties: · 7 unmodified lines
8 - "renesas,r8a7793-usb-dmac" (R-Car M2-N)8 - "renesas,r8a7793-usb-dmac" (R-Car M2-N)
9 - "renesas,r8a7794-usb-dmac" (R-Car E2)9 - "renesas,r8a7794-usb-dmac" (R-Car E2)
10 - "renesas,r8a7795-usb-dmac" (R-Car H3)10 - "renesas,r8a7795-usb-dmac" (R-Car H3)
11 - "renesas,r8a7796-usb-dmac" (R-Car M3-W)
11- reg: base address and length of the registers block for the DMAC12- reg: base address and length of the registers block for the DMAC
12- interrupts: interrupt specifiers for the DMAC, one for each entry in13- interrupts: interrupt specifiers for the DMAC, one for each entry in
13 interrupt-names.14 interrupt-names.
Documentation/devicetree/bindings/dma/snps-dma.txt+0−1
@@ -63,7 +63,6 @@ Example: · 62 unmodified lines
63 compatible = "arm,pl011", "arm,primecell";63 compatible = "arm,pl011", "arm,primecell";
64 reg = <0xe0000000 0x1000>;64 reg = <0xe0000000 0x1000>;
65 interrupts = <0 35 0x4>;65 interrupts = <0 35 0x4>;
66 status = "disabled";
67 dmas = <&dmahost 12 0 1>,66 dmas = <&dmahost 12 0 1>,
68 <&dmahost 13 0 1 0>;67 <&dmahost 13 0 1 0>;
69 dma-names = "rx", "rx";68 dma-names = "rx", "rx";
Documentation/devicetree/bindings/dma/st_fdma.txt+0−1
@@ -69,7 +69,6 @@ Example: · 68 unmodified lines
69 69
70 sti_uni_player2: sti-uni-player@2 {70 sti_uni_player2: sti-uni-player@2 {
71 compatible = "st,sti-uni-player";71 compatible = "st,sti-uni-player";
72 status = "disabled";
73 #sound-dai-cells = <0>;72 #sound-dai-cells = <0>;
74 st,syscfg = <&syscfg_core>;73 st,syscfg = <&syscfg_core>;
75 clocks = <&clk_s_d0_flexgen CLK_PCM_2>;74 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
135 <&dma 13 0 0x0>; /* Logical - MemToDev */135 <&dma 13 0 0x0>; /* Logical - MemToDev */
136 dma-names = "rx", "rx";136 dma-names = "rx", "rx";
137 137
138 status = "disabled";
139 };138 };
Documentation/devicetree/bindings/dma/sun4i-dma.txt+0−1
@@ -40,7 +40,6 @@ Example: · 39 unmodified lines
40 clock-names = "ahb", "mod";40 clock-names = "ahb", "mod";
41 dmas = <&dma 1 29>, <&dma 1 28>;41 dmas = <&dma 1 29>, <&dma 1 28>;
42 dma-names = "rx", "tx";42 dma-names = "rx", "tx";
43 status = "disabled";
44 #address-cells = <1>;43 #address-cells = <1>;
45 #size-cells = <0>;44 #size-cells = <0>;
46 };45 };
Documentation/devicetree/bindings/dma/sun6i-dma.txt+1−0
@@ -9,6 +9,7 @@ Required properties: · 8 unmodified lines
9 "allwinner,sun8i-a23-dma"9 "allwinner,sun8i-a23-dma"
10 "allwinner,sun8i-a83t-dma"10 "allwinner,sun8i-a83t-dma"
11 "allwinner,sun8i-h3-dma"11 "allwinner,sun8i-h3-dma"
12 "allwinner,sun8i-v3s-dma"
12- reg: Should contain the registers base address and length13- reg: Should contain the registers base address and length
13- interrupts: Should contain a reference to the interrupt used by this device14- interrupts: Should contain a reference to the interrupt used by this device
14- clocks: Should contain a reference to the parent AHB clock15- 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
62 interrupts-extended = <&gic GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;62 interrupts-extended = <&gic GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
63 ti,hwmods = "uart1";63 ti,hwmods = "uart1";
64 clock-frequency = <48000000>;64 clock-frequency = <48000000>;
65 status = "disabled";
66 /* Requesting crossbar input 49 and 50 */65 /* Requesting crossbar input 49 and 50 */
67 dmas = <&sdma_xbar 49>, <&sdma_xbar 50>;66 dmas = <&sdma_xbar 49>, <&sdma_xbar 50>;
68 dma-names = "tx", "rx";67 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
9eDMA3 Channel Controller9eDMA3 Channel Controller
10 10
11Required properties:11Required 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.
13- #dma-cells: Should be set to <2>. The first number is the DMA request18- #dma-cells: Should be set to <2>. The first number is the DMA request
14 number and the second is the TC the channel is serviced on.19 number and the second is the TC the channel is serviced on.
15- reg: Memory map of eDMA CC20- reg: Memory map of eDMA CC
@@ -19,8 +24,19 @@ Required properties: · 3 unmodified lines
19- ti,tptcs: List of TPTCs associated with the eDMA in the following form:24- ti,tptcs: List of TPTCs associated with the eDMA in the following form:
20 <&tptc_phandle TC_priority_number>. The highest priority is 0.25 <&tptc_phandle TC_priority_number>. The highest priority is 0.
21 26
27SoC-specific Required properties:
28--------------------------------
29The following are mandatory properties for OMAP, AM33xx and AM43xx SoCs only:
30- ti,hwmods: Name of the hwmods associated to the eDMA CC.
31
32The 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
22Optional properties:38Optional properties:
23- ti,hwmods: Name of the hwmods associated to the eDMA CC39-------------------
24- ti,edma-memcpy-channels: List of channels allocated to be used for memcpy, iow40- ti,edma-memcpy-channels: List of channels allocated to be used for memcpy, iow
25 these channels will be SW triggered channels. See example.41 these channels will be SW triggered channels. See example.
26- ti,edma-reserved-slot-ranges: PaRAM slot ranges which should not be used by42- ti,edma-reserved-slot-ranges: PaRAM slot ranges which should not be used by
@@ -31,17 +47,34 @@ Optional properties: · 4 unmodified lines
31eDMA3 Transfer Controller47eDMA3 Transfer Controller
32 48
33Required properties:49Required 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.
35- reg: Memory map of eDMA TC56- reg: Memory map of eDMA TC
36- interrupts: Interrupt number for TCerrint.57- interrupts: Interrupt number for TCerrint.
37 58
59SoC-specific Required properties:
60--------------------------------
61The following are mandatory properties for OMAP, AM33xx and AM43xx SoCs only:
62- ti,hwmods: Name of the hwmods associated to the eDMA TC.
63
64The 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
38Optional properties:70Optional properties:
39- ti,hwmods: Name of the hwmods associated to the given eDMA TC71-------------------
40- interrupt-names: "edma3_tcerrint"72- interrupt-names: "edma3_tcerrint"
41 73
42------------------------------------------------------------------------------74------------------------------------------------------------------------------
43Example:75Examples:
44 76
771.
45edma: edma@49000000 {78edma: edma@49000000 {
46 compatible = "ti,edma3-tpcc";79 compatible = "ti,edma3-tpcc";
47 ti,hwmods = "tpcc";80 ti,hwmods = "tpcc";
@@ -102,13 +135,64 @@ mcasp0: mcasp@48038000 { · 54 unmodified lines
102 reg-names = "mpu", "dat";135 reg-names = "mpu", "dat";
103 interrupts = <80>, <81>;136 interrupts = <80>, <81>;
104 interrupt-names = "tx", "rx";137 interrupt-names = "tx", "rx";
105 status = "disabled";
106 /* DMA channels 8 and 9 executed on eDMA TC2 - high priority queue */138 /* DMA channels 8 and 9 executed on eDMA TC2 - high priority queue */
107 dmas = <&edma 8 2>,139 dmas = <&edma 8 2>,
108 <&edma 9 2>;140 <&edma 9 2>;
109 dma-names = "tx", "rx";141 dma-names = "tx", "rx";
110};142};
111 143
1442.
145edma1: 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
168edma1_tptc0: tptc@027b0000 {
169 compatible = "ti,k2g-edma3-tptc", "ti,edma3-tptc";
170 reg = <0x027b0000 0x400>;
171 power-domains = <&k2g_pds 0x4f>;
172};
173
174edma1_tptc1: tptc@027b8000 {
175 compatible = "ti, k2g-edma3-tptc", "ti,edma3-tptc";
176 reg = <0x027b8000 0x400>;
177 power-domains = <&k2g_pds 0x4f>;
178};
179
180mmc0: 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
112------------------------------------------------------------------------------196------------------------------------------------------------------------------
113DEPRECATED binding, new DTS files must use the ti,edma3-tpcc/ti,edma3-tptc197DEPRECATED binding, new DTS files must use the ti,edma3-tpcc/ti,edma3-tptc
114binding.198binding.
Documentation/devicetree/bindings/eeprom/eeprom.txt+5−1
@@ -16,8 +16,12 @@ Required properties: · 15 unmodified lines
16 16
17 "renesas,r1ex24002"17 "renesas,r1ex24002"
18 18
19 The following manufacturers values have been deprecated:
20 "at", "at24"
21
19 If there is no specific driver for <manufacturer>, a generic22 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:
21 "24c00", "24c01", "24c02", "24c04", "24c08", "24c16", "24c32", "24c64",25 "24c00", "24c01", "24c02", "24c04", "24c08", "24c16", "24c32", "24c64",
22 "24c128", "24c256", "24c512", "24c1024", "spd"26 "24c128", "24c256", "24c512", "24c1024", "spd"
23 27
Documentation/devicetree/bindings/extcon/extcon-usbc-cros-ec.txt+24−0
@@ -0,0 +1,24 @@
1ChromeOS EC USB Type-C cable and accessories detection
2
3On ChromeOS systems with USB Type C ports, the ChromeOS Embedded Controller is
4able to detect the state of external accessories such as display adapters
5or USB devices when said accessories are attached or detached.
6
7The node for this device must be under a cros-ec node like google,cros-ec-spi
8or google,cros-ec-i2c.
9
10Required properties:
11- compatible: Should be "google,extcon-usbc-cros-ec".
12- google,usb-port-id: Specifies the USB port ID to use.
13
14Example:
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 @@
1Altera Passive Serial SPI FPGA Manager
2
3Altera FPGAs support a method of loading the bitstream over what is
4referred to as "passive serial".
5The passive serial link is not technically SPI, and might require extra
6circuits in order to play nicely with other SPI slaves on the same bus.
7
8See https://www.altera.com/literature/hb/cyc/cyc_c51013.pdf
9
10Required 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
18Optional properties:
19- confd-gpios: confd pin (referred to as CONF_DONE in the manual)
20
21Example:
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 @@
1Xilinx LogiCORE Partial Reconfig Decoupler Softcore
2
3The Xilinx LogiCORE Partial Reconfig Decoupler manages one or more
4decouplers / fpga bridges.
5The controller can decouple/disable the bridges which prevents signal
6changes from passing through the bridge. The controller can also
7couple / enable the bridges which allows traffic to pass through the
8bridge normally.
9
10The Driver supports only MMIO handling. A PR region can have multiple
11PR Decouplers which can be handled independently or chained via decouple/
12decouple_status signals.
13
14Required 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
21Optional 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
26See Documentation/devicetree/bindings/fpga/fpga-region.txt for generic bindings.
27
28Example:
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
31 cell-index = <1>;31 cell-index = <1>;
32 interrupts = <92>;32 interrupts = <92>;
33 clocks = <&coreclk 0>;33 clocks = <&coreclk 0>;
34 status = "okay";
35 34
36 fpga_mgr_spi: fpga-mgr@0 {35 fpga_mgr_spi: fpga-mgr@0 {
37 compatible = "xlnx,fpga-slave-serial";36 compatible = "xlnx,fpga-slave-serial";
Documentation/devicetree/bindings/gpio/gpio-74x164.txt+3−0
@@ -12,6 +12,9 @@ Required properties: · 11 unmodified lines
12 1 = active low12 1 = active low
13- registers-number: Number of daisy-chained shift registers13- registers-number: Number of daisy-chained shift registers
14 14
15Optional properties:
16- enable-gpios: GPIO connected to the OE (Output Enable) pin.
17
15Example:18Example:
16 19
17gpio5: gpio5@0 {20gpio5: gpio5@0 {
Documentation/devicetree/bindings/gpio/gpio-aspeed.txt+1−1
@@ -18,7 +18,7 @@ Required properties: · 17 unmodified lines
18Optional properties:18Optional properties:
19 19
20- interrupt-parent : The parent interrupt controller, optional if inherited20- interrupt-parent : The parent interrupt controller, optional if inherited
21- clocks : A phandle to the HPLL clock node for debounce timings21- clocks : A phandle to the clock to use for debounce timings
22 22
23The gpio and interrupt properties are further described in their respective23The gpio and interrupt properties are further described in their respective
24bindings documentation:24bindings documentation:
Documentation/devicetree/bindings/gpio/gpio-davinci.txt+89−2
@@ -1,7 +1,10 @@
1Davinci/Keystone GPIO controller bindings1Davinci/Keystone GPIO controller bindings
2 2
3Required Properties:3Required 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
5 8
6- reg: Physical base address of the controller and the size of memory mapped9- reg: Physical base address of the controller and the size of memory mapped
7 registers.10 registers.
@@ -20,7 +23,21 @@ Required Properties: · 12 unmodified lines
20- ti,ngpio: The number of GPIO pins supported.23- ti,ngpio: The number of GPIO pins supported.
21 24
22- ti,davinci-gpio-unbanked: The number of GPIOs that have an individual interrupt25- 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
39Currently clock-names and clocks are needed for all keystone 2 platforms
40Davinci platforms do not have DT clocks as of now.
24 41
25The GPIO controller also acts as an interrupt controller. It uses the default42The GPIO controller also acts as an interrupt controller. It uses the default
26two cells specifier as described in Documentation/devicetree/bindings/43two cells specifier as described in Documentation/devicetree/bindings/
@@ -60,3 +77,73 @@ leds { · 33 unmodified lines
60 ...77 ...
61 };78 };
62};79};
80
81Example for 66AK2G:
82
83gpio0: 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
105Example for 66AK2HK/66AK2L/66AK2E:
106
107gpio0: 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
23 #gpio-cells = <2>;23 #gpio-cells = <2>;
24 reg = <0x1100 0x080>;24 reg = <0x1100 0x080>;
25 interrupts = <78 0x8>;25 interrupts = <78 0x8>;
26 status = "okay";
27};26};
28 27
29Example of gpio-controller node for a ls2080a SoC:28Example 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
5each, and each PORT module has its own interrupt.5each, and each PORT module has its own interrupt.
6 6
7Required properties for GPIO node:7Required 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"
9- reg : The first reg tuple represents the PORT module, the second tuple11- reg : The first reg tuple represents the PORT module, the second tuple
10 the GPIO module.12 the GPIO module.
11- interrupts : Should be the port interrupt shared by all 32 pins.13- 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
2 2
3Required Properties:3Required Properties:
4 4
5 - compatible: should contain one of the following.5 - compatible: should contain one or more of the following:
6 - "renesas,gpio-r8a7743": for R8A7743 (RZ/G1M) compatible GPIO controller.6 - "renesas,gpio-r8a7743": for R8A7743 (RZ/G1M) compatible GPIO controller.
7 - "renesas,gpio-r8a7745": for R8A7745 (RZ/G1E) compatible GPIO controller.
7 - "renesas,gpio-r8a7778": for R8A7778 (R-Mobile M1) compatible GPIO controller.8 - "renesas,gpio-r8a7778": for R8A7778 (R-Mobile M1) compatible GPIO controller.
8 - "renesas,gpio-r8a7779": for R8A7779 (R-Car H1) compatible GPIO controller.9 - "renesas,gpio-r8a7779": for R8A7779 (R-Car H1) compatible GPIO controller.
9 - "renesas,gpio-r8a7790": for R8A7790 (R-Car H2) compatible GPIO controller.10 - "renesas,gpio-r8a7790": for R8A7790 (R-Car H2) compatible GPIO controller.
@@ -13,7 +14,14 @@ Required Properties: · 3 unmodified lines
13 - "renesas,gpio-r8a7794": for R8A7794 (R-Car E2) compatible GPIO controller.14 - "renesas,gpio-r8a7794": for R8A7794 (R-Car E2) compatible GPIO controller.
14 - "renesas,gpio-r8a7795": for R8A7795 (R-Car H3) compatible GPIO controller.15 - "renesas,gpio-r8a7795": for R8A7795 (R-Car H3) compatible GPIO controller.
15 - "renesas,gpio-r8a7796": for R8A7796 (R-Car M3-W) compatible GPIO controller.16 - "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.
17 25
18 - reg: Base address and length of each memory resource used by the GPIO26 - reg: Base address and length of each memory resource used by the GPIO
19 controller hardware module.27 controller hardware module.
@@ -43,7 +51,7 @@ interrupt-controller/interrupts.txt. · 23 unmodified lines
43Example: R8A7779 (R-Car H1) GPIO controller nodes51Example: R8A7779 (R-Car H1) GPIO controller nodes
44 52
45 gpio0: gpio@ffc40000 {53 gpio0: gpio@ffc40000 {
46 compatible = "renesas,gpio-r8a7779", "renesas,gpio-rcar";54 compatible = "renesas,gpio-r8a7779", "renesas,rcar-gen1-gpio";
47 reg = <0xffc40000 0x2c>;55 reg = <0xffc40000 0x2c>;
48 interrupt-parent = <&gic>;56 interrupt-parent = <&gic>;
49 interrupts = <0 141 0x4>;57 interrupts = <0 141 0x4>;
@@ -55,7 +63,7 @@ Example: R8A7779 (R-Car H1) GPIO controller nodes · 5 unmodified lines
55 };63 };
56 ...64 ...
57 gpio6: gpio@ffc46000 {65 gpio6: gpio@ffc46000 {
58 compatible = "renesas,gpio-r8a7779", "renesas,gpio-rcar";66 compatible = "renesas,gpio-r8a7779", "renesas,rcar-gen1-gpio";
59 reg = <0xffc46000 0x2c>;67 reg = <0xffc46000 0x2c>;
60 interrupt-parent = <&gic>;68 interrupt-parent = <&gic>;
61 interrupts = <0 147 0x4>;69 interrupts = <0 147 0x4>;
Documentation/devicetree/bindings/gpio/spear_spics.txt+0−1
@@ -42,7 +42,6 @@ spics: spics@e0700000{ · 41 unmodified lines
42 42
43 43
44spi0: spi@e0100000 {44spi0: spi@e0100000 {
45 status = "okay";
46 num-cs = <3>;45 num-cs = <3>;
47 cs-gpios = <&gpio1 7 0>, <&spics 0>,46 cs-gpios = <&gpio1 7 0>, <&spics 0>,
48 <&spics 1>;47 <&spics 1>;
Documentation/devicetree/bindings/gpu/arm,mali-midgard.txt+1−0
@@ -17,6 +17,7 @@ Required properties: · 16 unmodified lines
17 * which must be preceded by one of the following vendor specifics:17 * which must be preceded by one of the following vendor specifics:
18 + "amlogic,meson-gxm-mali"18 + "amlogic,meson-gxm-mali"
19 + "rockchip,rk3288-mali"19 + "rockchip,rk3288-mali"
20 + "rockchip,rk3399-mali"
20 21
21- reg : Physical base address of the device and length of the register area.22- reg : Physical base address of the device and length of the register area.
22 23
Documentation/devicetree/bindings/gpu/arm,mali-utgard.txt+5−0
@@ -10,6 +10,7 @@ Required properties: · 9 unmodified lines
10 * And, optionally, one of the vendor specific compatible:10 * And, optionally, one of the vendor specific compatible:
11 + allwinner,sun4i-a10-mali11 + allwinner,sun4i-a10-mali
12 + allwinner,sun7i-a20-mali12 + allwinner,sun7i-a20-mali
13 + allwinner,sun50i-h5-mali
13 + amlogic,meson-gxbb-mali14 + amlogic,meson-gxbb-mali
14 + amlogic,meson-gxl-mali15 + amlogic,meson-gxl-mali
15 + stericsson,db8500-mali16 + stericsson,db8500-mali
@@ -58,6 +59,10 @@ to specify one more vendor-specific compatible, among: · 42 unmodified lines
58 Required properties:59 Required properties:
59 * resets: phandle to the reset line for the GPU60 * resets: phandle to the reset line for the GPU
60 61
62 - allwinner,sun50i-h5-mali
63 Required properties:
64 * resets: phandle to the reset line for the GPU
65
61 - stericsson,db8500-mali66 - stericsson,db8500-mali
62 Required properties:67 Required properties:
63 * interrupt-names and interrupts:68 * interrupt-names and interrupts:
Documentation/devicetree/bindings/gpu/nvidia,gk20a.txt+0−3
@@ -51,7 +51,6 @@ Example for GK20A: · 50 unmodified lines
51 resets = <&tegra_car 184>;51 resets = <&tegra_car 184>;
52 reset-names = "gpu";52 reset-names = "gpu";
53 iommus = <&mc TEGRA_SWGROUP_GPU>;53 iommus = <&mc TEGRA_SWGROUP_GPU>;
54 status = "disabled";
55 };54 };
56 55
57Example for GM20B:56Example for GM20B:
@@ -70,7 +69,6 @@ Example for GM20B: · 12 unmodified lines
70 resets = <&tegra_car 184>;69 resets = <&tegra_car 184>;
71 reset-names = "gpu";70 reset-names = "gpu";
72 iommus = <&mc TEGRA_SWGROUP_GPU>;71 iommus = <&mc TEGRA_SWGROUP_GPU>;
73 status = "disabled";
74 };72 };
75 73
76Example for GP10B:74Example for GP10B:
@@ -89,5 +87,4 @@ Example for GP10B: · 12 unmodified lines
89 reset-names = "gpu";87 reset-names = "gpu";
90 power-domains = <&bpmp TEGRA186_POWER_DOMAIN_GPU>;88 power-domains = <&bpmp TEGRA186_POWER_DOMAIN_GPU>;
91 iommus = <&smmu TEGRA186_SID_GPU>;89 iommus = <&smmu TEGRA186_SID_GPU>;
92 status = "disabled";
93 };90 };
Documentation/devicetree/bindings/gpu/samsung-g2d.txt+0−1
@@ -24,5 +24,4 @@ Example: · 23 unmodified lines
24 interrupts = <0 89 0>;24 interrupts = <0 89 0>;
25 clocks = <&clock 177>, <&clock 277>;25 clocks = <&clock 177>, <&clock 277>;
26 clock-names = "sclk_fimg2d", "fimg2d";26 clock-names = "sclk_fimg2d", "fimg2d";
27 status = "disabled";
28 };27 };
Documentation/devicetree/bindings/hsi/omap-ssi.txt+0−1
@@ -92,6 +92,5 @@ ssi-controller@48058000 { · 91 unmodified lines
92 interrupts = <69>,92 interrupts = <69>,
93 <70>;93 <70>;
94 94
95 status = "disabled"; /* second port is not used on N900 */
96 }95 }
97}96}
Documentation/devicetree/bindings/hwmon/aspeed-pwm-tacho.txt+9−0
@@ -11,6 +11,8 @@ Required properties for pwm-tacho node: · 10 unmodified lines
11 11
12- #size-cells : should be 1.12- #size-cells : should be 1.
13 13
14- #cooling-cells: should be 2.
15
14- reg : address and length of the register set for the device.16- reg : address and length of the register set for the device.
15 17
16- pinctrl-names : a pinctrl state named "default" must be defined.18- pinctrl-names : a pinctrl state named "default" must be defined.
@@ -28,12 +30,17 @@ fan subnode format: · 11 unmodified lines
28Under fan subnode there can upto 8 child nodes, with each child node30Under fan subnode there can upto 8 child nodes, with each child node
29representing a fan. If there are 8 fans each fan can have one PWM port and31representing a fan. If there are 8 fans each fan can have one PWM port and
30one/two Fan tach inputs.32one/two Fan tach inputs.
33For PWM port can be configured cooling-levels to create cooling device.
34Cooling device could be bound to a thermal zone for the thermal control.
31 35
32Required properties for each child node:36Required properties for each child node:
33- reg : should specify PWM source port.37- reg : should specify PWM source port.
34 integer value in the range 0 to 7 with 0 indicating PWM port A and38 integer value in the range 0 to 7 with 0 indicating PWM port A and
35 7 indicating PWM port H.39 7 indicating PWM port H.
36 40
41- cooling-levels: PWM duty cycle values in a range from 0 to 255
42 which correspond to thermal cooling states.
43
37- aspeed,fan-tach-ch : should specify the Fan tach input channel.44- aspeed,fan-tach-ch : should specify the Fan tach input channel.
38 integer value in the range 0 through 15, with 0 indicating45 integer value in the range 0 through 15, with 0 indicating
39 Fan tach channel 0 and 15 indicating Fan tach channel 15.46 Fan tach channel 0 and 15 indicating Fan tach channel 15.
@@ -50,6 +57,7 @@ pwm_tacho_fixed_clk: fixedclk { · 10 unmodified lines
50pwm_tacho: pwmtachocontroller@1e786000 {57pwm_tacho: pwmtachocontroller@1e786000 {
51 #address-cells = <1>;58 #address-cells = <1>;
52 #size-cells = <1>;59 #size-cells = <1>;
60 #cooling-cells = <2>;
53 reg = <0x1E786000 0x1000>;61 reg = <0x1E786000 0x1000>;
54 compatible = "aspeed,ast2500-pwm-tacho";62 compatible = "aspeed,ast2500-pwm-tacho";
55 clocks = <&pwm_tacho_fixed_clk>;63 clocks = <&pwm_tacho_fixed_clk>;
@@ -58,6 +66,7 @@ pwm_tacho: pwmtachocontroller@1e786000 { · 2 unmodified lines
58 66
59 fan@0 {67 fan@0 {
60 reg = <0x00>;68 reg = <0x00>;
69 cooling-levels = /bits/ 8 <125 151 177 203 229 255>;
61 aspeed,fan-tach-ch = /bits/ 8 <0x00>;70 aspeed,fan-tach-ch = /bits/ 8 <0x00>;
62 };71 };
63 72
Documentation/devicetree/bindings/hwmon/ibm,cffps1.txt+21−0
@@ -0,0 +1,21 @@
1Device-tree bindings for IBM Common Form Factor Power Supply Version 1
2----------------------------------------------------------------------
3
4Required properties:
5 - compatible = "ibm,cffps1";
6 - reg = < I2C bus address >; : Address of the power supply on the
7 I2C bus.
8
9Example:
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 @@
1Lantiq cpu temperatur sensor
2
3Requires node properties:
4- compatible value :
5 "lantiq,cputemp"
6
7Example:
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
5Required 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
13Recommended properties :
14 - clock-frequency : desired I2C bus clock frequency in Hz.
15
16Optional properties :
17 - fifo-size : Size of the RX and TX FIFOs in bytes.
18 - Child nodes conforming to i2c bus binding
19
20Example :
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
20 #address-cells = <1>;20 #address-cells = <1>;
21 #size-cells = <0>;21 #size-cells = <0>;
22 22
23 retu-mfd: retu@1 {23 retu: retu@1 {
24 compatible = "retu-mfd";24 compatible = "nokia,retu";
25 reg = <0x1>;25 reg = <0x1>;
26 };26 };
27};27};
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
102 #address-cells = <1>;102 #address-cells = <1>;
103 #size-cells = <0>;103 #size-cells = <0>;
104 compatible = "i2c-gpio";104 compatible = "i2c-gpio";
105 status = "disabled";
106 gpios = <&gpio5 6 GPIO_ACTIVE_HIGH /* sda */105 gpios = <&gpio5 6 GPIO_ACTIVE_HIGH /* sda */
107 &gpio5 5 GPIO_ACTIVE_HIGH /* scl */106 &gpio5 5 GPIO_ACTIVE_HIGH /* scl */
108 >;107 >;
Documentation/devicetree/bindings/i2c/i2c-efm32.txt+0−1
@@ -22,7 +22,6 @@ Example: · 21 unmodified lines
22 interrupts = <9>;22 interrupts = <9>;
23 clocks = <&cmu clk_HFPERCLKI2C0>;23 clocks = <&cmu clk_HFPERCLKI2C0>;
24 clock-frequency = <100000>;24 clock-frequency = <100000>;
25 status = "ok";
26 energymicro,location = <3>;25 energymicro,location = <3>;
27 26
28 eeprom@50 {27 eeprom@50 {
Documentation/devicetree/bindings/i2c/i2c-mtk.txt+8−7
@@ -1,14 +1,15 @@
1* Mediatek's I2C controller1* MediaTek's I2C controller
2 2
3The Mediatek's I2C controller is used to interface with I2C devices.3The MediaTek's I2C controller is used to interface with I2C devices.
4 4
5Required properties:5Required properties:
6 - compatible: value should be either of the following.6 - compatible: value should be either of the following.
7 "mediatek,mt2701-i2c", "mediatek,mt6577-i2c": for Mediatek mt27017 "mediatek,mt2701-i2c", "mediatek,mt6577-i2c": for MediaTek MT2701
8 "mediatek,mt6577-i2c": for i2c compatible with mt6577.8 "mediatek,mt6577-i2c": for MediaTek MT6577
9 "mediatek,mt6589-i2c": for i2c compatible with mt6589.9 "mediatek,mt6589-i2c": for MediaTek MT6589
10 "mediatek,mt7623-i2c", "mediatek,mt6577-i2c": for i2c compatible with mt7623.10 "mediatek,mt7622-i2c": for MediaTek MT7622
11 "mediatek,mt8173-i2c": for i2c compatible with mt8173.11 "mediatek,mt7623-i2c", "mediatek,mt6577-i2c": for MediaTek MT7623
12 "mediatek,mt8173-i2c": for MediaTek MT8173
12 - reg: physical base address of the controller and dma base, length of memory13 - reg: physical base address of the controller and dma base, length of memory
13 mapped region.14 mapped region.
14 - interrupts: interrupt number to the cpu.15 - 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
2 2
3Required properties:3Required properties:
4- compatible:4- 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.
5 "renesas,i2c-r8a7778" if the device is a part of a R8A7778 SoC.7 "renesas,i2c-r8a7778" if the device is a part of a R8A7778 SoC.
6 "renesas,i2c-r8a7779" if the device is a part of a R8A7779 SoC.8 "renesas,i2c-r8a7779" if the device is a part of a R8A7779 SoC.
7 "renesas,i2c-r8a7790" if the device is a part of a R8A7790 SoC.9 "renesas,i2c-r8a7790" if the device is a part of a R8A7790 SoC.
@@ -12,7 +14,8 @@ Required properties: · 4 unmodified lines
12 "renesas,i2c-r8a7795" if the device is a part of a R8A7795 SoC.14 "renesas,i2c-r8a7795" if the device is a part of a R8A7795 SoC.
13 "renesas,i2c-r8a7796" if the device is a part of a R8A7796 SoC.15 "renesas,i2c-r8a7796" if the device is a part of a R8A7796 SoC.
14 "renesas,rcar-gen1-i2c" for a generic R-Car Gen1 compatible device.16 "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.
16 "renesas,rcar-gen3-i2c" for a generic R-Car Gen3 compatible device.19 "renesas,rcar-gen3-i2c" for a generic R-Car Gen3 compatible device.
17 "renesas,i2c-rcar" (deprecated)20 "renesas,i2c-rcar" (deprecated)
18 21
Documentation/devicetree/bindings/i2c/i2c-rk3x.txt+1−0
@@ -7,6 +7,7 @@ Required properties : · 6 unmodified lines
7 7
8 - reg : Offset and length of the register set for the device8 - reg : Offset and length of the register set for the device
9 - compatible: should be one of the following:9 - compatible: should be one of the following:
10 - "rockchip,rv1108-i2c": for rv1108
10 - "rockchip,rk3066-i2c": for rk306611 - "rockchip,rk3066-i2c": for rk3066
11 - "rockchip,rk3188-i2c": for rk318812 - "rockchip,rk3188-i2c": for rk3188
12 - "rockchip,rk3228-i2c": for rk322813 - "rockchip,rk3228-i2c": for rk3228
Documentation/devicetree/bindings/i2c/i2c-sh_mobile.txt+4−1
@@ -4,6 +4,8 @@ Required properties: · 3 unmodified lines
4- compatible :4- compatible :
5 - "renesas,iic-r8a73a4" (R-Mobile APE6)5 - "renesas,iic-r8a73a4" (R-Mobile APE6)
6 - "renesas,iic-r8a7740" (R-Mobile A1)6 - "renesas,iic-r8a7740" (R-Mobile A1)
7 - "renesas,iic-r8a7743" (RZ/G1M)
8 - "renesas,iic-r8a7745" (RZ/G1E)
7 - "renesas,iic-r8a7790" (R-Car H2)9 - "renesas,iic-r8a7790" (R-Car H2)
8 - "renesas,iic-r8a7791" (R-Car M2-W)10 - "renesas,iic-r8a7791" (R-Car M2-W)
9 - "renesas,iic-r8a7792" (R-Car V2H)11 - "renesas,iic-r8a7792" (R-Car V2H)
@@ -12,7 +14,8 @@ Required properties: · 2 unmodified lines
12 - "renesas,iic-r8a7795" (R-Car H3)14 - "renesas,iic-r8a7795" (R-Car H3)
13 - "renesas,iic-r8a7796" (R-Car M3-W)15 - "renesas,iic-r8a7796" (R-Car M3-W)
14 - "renesas,iic-sh73a0" (SH-Mobile AG5)16 - "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)
16 - "renesas,rcar-gen3-iic" (generic R-Car Gen3 compatible device)19 - "renesas,rcar-gen3-iic" (generic R-Car Gen3 compatible device)
17 - "renesas,rmobile-iic" (generic device)20 - "renesas,rmobile-iic" (generic device)
18 21
Documentation/devicetree/bindings/i2c/i2c-sprd.txt+31−0
@@ -0,0 +1,31 @@
1I2C for Spreadtrum platforms
2
3Required 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
17Optional properties:
18- Child nodes conforming to I2C bus binding
19
20Examples:
21i2c0: 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 @@
1* I2C controller embedded in STMicroelectronics STM32 I2C platform1* I2C controller embedded in STMicroelectronics STM32 I2C platform
2 2
3Required properties :3Required properties :
4- compatible : Must be "st,stm32f4-i2c"4- compatible : Must be one of the following
5 - "st,stm32f4-i2c"
6 - "st,stm32f7-i2c"
5- reg : Offset and length of the register set for the device7- reg : Offset and length of the register set for the device
6- interrupts : Must contain the interrupt id for I2C event and then the8- interrupts : Must contain the interrupt id for I2C event and then the
7 interrupt id for I2C error.9 interrupt id for I2C error.
@@ -14,8 +16,16 @@ Required properties : · 6 unmodified lines
14 16
15Optional properties :17Optional properties :
16- clock-frequency : Desired I2C bus clock frequency in Hz. If not specified,18- 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 modes19 the default 100 kHz frequency will be used.
18 are supported, possible values are 100000 and 400000.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
19 29
20Example :30Example :
21 31
@@ -31,3 +41,16 @@ Example : · 9 unmodified lines
31 pinctrl-0 = <&i2c1_sda_pin>, <&i2c1_scl_pin>;41 pinctrl-0 = <&i2c1_sda_pin>, <&i2c1_scl_pin>;
32 pinctrl-names = "default";42 pinctrl-names = "default";
33 };43 };
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
71 reset-names = "i2c";71 reset-names = "i2c";
72 dmas = <&apbdma 16>, <&apbdma 16>;72 dmas = <&apbdma 16>, <&apbdma 16>;
73 dma-names = "rx", "tx";73 dma-names = "rx", "tx";
74 status = "disabled";
75 };74 };
Documentation/devicetree/bindings/iio/adc/at91-sama5d2_adc.txt+6−0
@@ -11,6 +11,11 @@ Required properties: · 10 unmodified lines
11 - atmel,min-sample-rate-hz: Minimum sampling rate, it depends on SoC.11 - atmel,min-sample-rate-hz: Minimum sampling rate, it depends on SoC.
12 - atmel,max-sample-rate-hz: Maximum sampling rate, it depends on SoC.12 - atmel,max-sample-rate-hz: Maximum sampling rate, it depends on SoC.
13 - atmel,startup-time-ms: Startup time expressed in ms, it depends on SoC.13 - 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
14 19
15Example:20Example:
16 21
@@ -25,4 +30,5 @@ adc: adc@fc030000 { · 8 unmodified lines
25 atmel,startup-time-ms = <4>;30 atmel,startup-time-ms = <4>;
26 vddana-supply = <&vdd_3v3_lp_reg>;31 vddana-supply = <&vdd_3v3_lp_reg>;
27 vref-supply = <&vdd_3v3_lp_reg>;32 vref-supply = <&vdd_3v3_lp_reg>;
33 atmel,trigger-edge-type = <IRQ_TYPE_EDGE_BOTH>;
28}34}
Documentation/devicetree/bindings/iio/adc/brcm,iproc-static-adc.txt+0−1
@@ -37,5 +37,4 @@ For example: · 36 unmodified lines
37 clocks = <&asiu_clks BCM_CYGNUS_ASIU_ADC_CLK>;37 clocks = <&asiu_clks BCM_CYGNUS_ASIU_ADC_CLK>;
38 clock-names = "tsc_clk";38 clock-names = "tsc_clk";
39 interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>;39 interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>;
40 status = "disabled";
41 };40 };
Documentation/devicetree/bindings/iio/adc/lpc1850-adc.txt+0−1
@@ -17,5 +17,4 @@ adc0: adc@400e3000 { · 16 unmodified lines
17 clocks = <&ccu1 CLK_APB3_ADC0>;17 clocks = <&ccu1 CLK_APB3_ADC0>;
18 vref-supply = <&reg_vdda>;18 vref-supply = <&reg_vdda>;
19 resets = <&rgu 40>;19 resets = <&rgu 40>;
20 status = "disabled";
21};20};
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
12Required properties:12Required properties:
13 - compatible: Should be one of:13 - compatible: Should be one of:
14 - "mediatek,mt2701-auxadc": For MT2701 family of SoCs14 - "mediatek,mt2701-auxadc": For MT2701 family of SoCs
15 - "mediatek,mt7622-auxadc": For MT7622 family of SoCs
15 - "mediatek,mt8173-auxadc": For MT8173 family of SoCs16 - "mediatek,mt8173-auxadc": For MT8173 family of SoCs
16 - reg: Address range of the AUXADC unit.17 - reg: Address range of the AUXADC unit.
17 - clocks: Should contain a clock specifier for each entry in clock-names18 - 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
6 - "rockchip,rk3066-tsadc": for rk30366 - "rockchip,rk3066-tsadc": for rk3036
7 - "rockchip,rk3328-saradc", "rockchip,rk3399-saradc": for rk33287 - "rockchip,rk3328-saradc", "rockchip,rk3399-saradc": for rk3328
8 - "rockchip,rk3399-saradc": for rk33998 - "rockchip,rk3399-saradc": for rk3399
9 - "rockchip,rv1108-saradc", "rockchip,rk3399-saradc": for rv1108
9 10
10- reg: physical base address of the controller and length of memory mapped11- reg: physical base address of the controller and length of memory mapped
11 region.12 region.
Documentation/devicetree/bindings/iio/adc/st,stm32-adc.txt+5−0
@@ -74,6 +74,11 @@ Optional properties: · 73 unmodified lines
74 * can be 6, 8, 10 or 12 on stm32f474 * can be 6, 8, 10 or 12 on stm32f4
75 * can be 8, 10, 12, 14 or 16 on stm32h775 * can be 8, 10, 12, 14 or 16 on stm32h7
76 Default is maximum resolution if unset.76 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.
77 82
78Example:83Example:
79 adc: adc@40012000 {84 adc: adc@40012000 {
Documentation/devicetree/bindings/iio/counter/stm32-lptimer-cnt.txt+27−0
@@ -0,0 +1,27 @@
1STMicroelectronics STM32 Low-Power Timer quadrature encoder and counter
2
3STM32 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
8Must be a sub-node of an STM32 Low-Power Timer device tree node.
9See ../mfd/stm32-lptimer.txt for details about the parent node.
10
11Required 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
18Example:
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
16 clocks = <&ccu1 CLK_APB3_DAC>;16 clocks = <&ccu1 CLK_APB3_DAC>;
17 vref-supply = <&reg_vdda>;17 vref-supply = <&reg_vdda>;
18 resets = <&rgu 42>;18 resets = <&rgu 42>;
19 status = "disabled";
20};19};
Documentation/devicetree/bindings/iio/dac/st,stm32-dac.txt+3−1
@@ -10,7 +10,9 @@ current. · 9 unmodified lines
10Contents of a stm32 dac root node:10Contents of a stm32 dac root node:
11-----------------------------------11-----------------------------------
12Required properties:12Required 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"
14- reg: Offset and length of the device's register set.16- reg: Offset and length of the device's register set.
15- clocks: Must contain an entry for pclk (which feeds the peripheral bus17- clocks: Must contain an entry for pclk (which feeds the peripheral bus
16 interface)18 interface)
Documentation/devicetree/bindings/iio/humidity/hdc100x.txt+17−0
@@ -0,0 +1,17 @@
1* HDC100x temperature + humidity sensors
2
3Required 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
12Example:
13
14hdc100x@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
5- reg: i2c address of the sensor / spi cs line5- reg: i2c address of the sensor / spi cs line
6 6
7Optional properties:7Optional 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.
8- interrupt-parent: should be the phandle for the interrupt controller16- interrupt-parent: should be the phandle for the interrupt controller
9- interrupts: interrupt mapping for IRQ. It should be configured with17- 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.
11 20
12 Refer to interrupt-controller/interrupts.txt for generic interrupt21 Refer to interrupt-controller/interrupts.txt for generic interrupt
13 client node bindings.22 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
3Required properties:
4
5 - compatible: should be "meas,htu21" or "meas,ms8607-humidity"
6 - reg: I2C address of the sensor
7
8Example:
9
10htu21@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
11Optional properties:11Optional properties:
12- st,drdy-int-pin: the pin on the package that will be used to signal12- st,drdy-int-pin: the pin on the package that will be used to signal
13 "data ready" (valid values: 1 or 2).13 "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.
14- interrupt-parent: should be the phandle for the interrupt controller22- interrupt-parent: should be the phandle for the interrupt controller
15- interrupts: interrupt mapping for IRQ. It should be configured with23- interrupts: interrupt mapping for IRQ. It should be configured with
16 flags IRQ_TYPE_LEVEL_HIGH, IRQ_TYPE_EDGE_RISING, IRQ_TYPE_LEVEL_LOW or24 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
3Required 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
12Example:
13
14ms5637@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
45- st,lis2dh12-accel45- st,lis2dh12-accel
46- st,h3lis331dl-accel46- st,h3lis331dl-accel
47- st,lng2dm-accel47- st,lng2dm-accel
48- st,lis3l02dq
48 49
49Gyroscopes:50Gyroscopes:
50- st,l3g4200d-gyro51- st,l3g4200d-gyro
@@ -52,6 +53,7 @@ Gyroscopes: · 1 unmodified line
52- st,lsm330dl-gyro53- st,lsm330dl-gyro
53- st,lsm330dlc-gyro54- st,lsm330dlc-gyro
54- st,l3gd20-gyro55- st,l3gd20-gyro
56- st,l3gd20h-gyro
55- st,l3g4is-gyro57- st,l3g4is-gyro
56- st,lsm330-gyro58- st,lsm330-gyro
57- st,lsm9ds0-gyro59- st,lsm9ds0-gyro
@@ -62,6 +64,7 @@ Magnetometers: · 4 unmodified lines
62- st,lsm303dlhc-magn64- st,lsm303dlhc-magn
63- st,lsm303dlm-magn65- st,lsm303dlm-magn
64- st,lis3mdl-magn66- st,lis3mdl-magn
67- st,lis2mdl
65 68
66Pressure sensors:69Pressure sensors:
67- st,lps001wp-press70- st,lps001wp-press
Documentation/devicetree/bindings/iio/temperature/tsys01.txt+19−0
@@ -0,0 +1,19 @@
1* TSYS01 - Measurement Specialties temperature sensor
2
3Required 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
14Example:
15
16tsys01@76 {
17 compatible = "meas,tsys01";
18 reg = <0x76>;
19};
Documentation/devicetree/bindings/iio/timer/stm32-lptimer-trigger.txt+23−0
@@ -0,0 +1,23 @@
1STMicroelectronics STM32 Low-Power Timer Trigger
2
3STM32 Low-Power Timer provides trigger source (LPTIM output) that can be used
4by STM32 internal ADC and/or DAC.
5
6Must be a sub-node of an STM32 Low-Power Timer device tree node.
7See ../mfd/stm32-lptimer.txt for details about the parent node.
8
9Required 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
15Example:
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
4See ../mfd/stm32-timers.txt for details about the parent node.4See ../mfd/stm32-timers.txt for details about the parent node.
5 5
6Required parameters:6Required 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"
8- reg: Identify trigger hardware block.10- reg: Identify trigger hardware block.
9 11
10Example:12Example:
@@ -14,7 +16,7 @@ Example: · 3 unmodified lines
14 compatible = "st,stm32-timers";16 compatible = "st,stm32-timers";
15 reg = <0x40010000 0x400>;17 reg = <0x40010000 0x400>;
16 clocks = <&rcc 0 160>;18 clocks = <&rcc 0 160>;
17 clock-names = "clk_int";19 clock-names = "int";
18 20
19 timer@0 {21 timer@0 {
20 compatible = "st,stm32-timer-trigger";22 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
22 experiment to determine which bit corresponds to which input. Use22 experiment to determine which bit corresponds to which input. Use
23 KEY_RESERVED for unused padding values.23 KEY_RESERVED for unused padding values.
24 24
25- reset-gpios: GPIO specifier for the touchscreen's reset pin (active low)
26
25Example:27Example:
26 28
27 touch@4b {29 touch@4b {
Documentation/devicetree/bindings/input/brcm,bcm-keypad.txt+0−1
@@ -72,7 +72,6 @@ Example: · 71 unmodified lines
72 /* Required Board specific properties */72 /* Required Board specific properties */
73 keypad,num-rows = <5>;73 keypad,num-rows = <5>;
74 keypad,num-columns = <5>;74 keypad,num-columns = <5>;
75 status = "okay";
76 75
77 linux,keymap = <MATRIX_KEY(0x00, 0x02, KEY_F) /* key_forward */76 linux,keymap = <MATRIX_KEY(0x00, 0x02, KEY_F) /* key_forward */
78 MATRIX_KEY(0x00, 0x03, KEY_HOME) /* key_home */77 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
3Registers a PWM device as vibrator. It is expected, that the vibrator's
4strength increases based on the duty cycle of the enable PWM channel
5(100% duty cycle meaning strongest vibration, 0% meaning no vibration).
6
7The binding supports an optional direction PWM channel, that can be
8driven at fixed duty cycle. If available this is can be used to increase
9the vibration effect of some devices.
10
11Required 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
16Optional 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
22Example 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
43 mode = <DRV260X_LRA_MODE>;43 mode = <DRV260X_LRA_MODE>;
44 library-sel = <DRV260X_LIB_LRA>;44 library-sel = <DRV260X_LIB_LRA>;
45 vib-rated-mv = <3200>;45 vib-rated-mv = <3200>;
46 vib-overdriver-mv = <3200>;46 vib-overdrive-mv = <3200>;
47}47}
48 48
49For more product information please see the link below:49For 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
32 pinctrl-1 = <&pinctrl_touchctrl_default>;32 pinctrl-1 = <&pinctrl_touchctrl_default>;
33 pinctrl-2 = <&pinctrl_touchctrl_gpios>;33 pinctrl-2 = <&pinctrl_touchctrl_gpios>;
34 vf50-ts-min-pressure = <200>;34 vf50-ts-min-pressure = <200>;
35 status = "disabled";
36 };35 };
Documentation/devicetree/bindings/input/touchscreen/imx6ul_tsc.txt+0−1
@@ -35,5 +35,4 @@ Example: · 34 unmodified lines
35 measure-delay-time = <0xfff>;35 measure-delay-time = <0xfff>;
36 pre-charge-time = <0xffff>;36 pre-charge-time = <0xffff>;
37 touchscreen-average-samples = <32>;37 touchscreen-average-samples = <32>;
38 status = "okay";
39 };38 };
Documentation/devicetree/bindings/interrupt-controller/fsl,ls-scfg-msi.txt+5−3
@@ -4,8 +4,10 @@ Required properties: · 3 unmodified lines
4 4
5- compatible: should be "fsl,<soc-name>-msi" to identify5- compatible: should be "fsl,<soc-name>-msi" to identify
6 Layerscape PCIe MSI controller block such as:6 Layerscape PCIe MSI controller block such as:
7 "fsl,1s1021a-msi"7 "fsl,ls1021a-msi"
8 "fsl,1s1043a-msi"8 "fsl,ls1043a-msi"
9 "fsl,ls1046a-msi"
10 "fsl,ls1043a-v1.1-msi"
9- msi-controller: indicates that this is a PCIe MSI controller node11- msi-controller: indicates that this is a PCIe MSI controller node
10- reg: physical base address of the controller and length of memory mapped.12- reg: physical base address of the controller and length of memory mapped.
11- interrupts: an interrupt to the parent interrupt controller.13- interrupts: an interrupt to the parent interrupt controller.
@@ -23,7 +25,7 @@ MSI controller node · 11 unmodified lines
23Examples:25Examples:
24 26
25 msi1: msi-controller@1571000 {27 msi1: msi-controller@1571000 {
26 compatible = "fsl,1s1043a-msi";28 compatible = "fsl,ls1043a-msi";
27 reg = <0x0 0x1571000 0x0 0x8>,29 reg = <0x0 0x1571000 0x0 0x8>,
28 msi-controller;30 msi-controller;
29 interrupts = <0 116 0x4>;31 interrupts = <0 116 0x4>;
Documentation/devicetree/bindings/interrupt-controller/mediatek,sysirq.txt+1−0
@@ -17,6 +17,7 @@ Required properties: · 16 unmodified lines
17 "mediatek,mt6582-sysirq", "mediatek,mt6577-sysirq": for MT658217 "mediatek,mt6582-sysirq", "mediatek,mt6577-sysirq": for MT6582
18 "mediatek,mt6580-sysirq", "mediatek,mt6577-sysirq": for MT658018 "mediatek,mt6580-sysirq", "mediatek,mt6577-sysirq": for MT6580
19 "mediatek,mt6577-sysirq": for MT657719 "mediatek,mt6577-sysirq": for MT6577
20 "mediatek,mt2712-sysirq", "mediatek,mt6577-sysirq": for MT2712
20 "mediatek,mt2701-sysirq", "mediatek,mt6577-sysirq": for MT270121 "mediatek,mt2701-sysirq", "mediatek,mt6577-sysirq": for MT2701
21- interrupt-controller : Identifies the node as an interrupt controller22- interrupt-controller : Identifies the node as an interrupt controller
22- #interrupt-cells : Use the same format as specified by GIC in arm,gic.txt.23- #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 @@
1UniPhier AIDET
2
3UniPhier AIDET (ARM Interrupt Detector) is an add-on block for ARM GIC (Generic
4Interrupt Controller). GIC itself can handle only high level and rising edge
5interrupts. The AIDET provides logic inverter to support low level and falling
6edge interrupts.
7
8Required 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
25Example:
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
3Qualcomm "B" family devices which are not compatible with arm-smmu have
4a similar looking IOMMU but without access to the global register space,
5and optionally requiring additional configuration to route context irqs
6to 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
15 to associate with its master device. See:15 to associate with its master device. See:
16 Documentation/devicetree/bindings/iommu/iommu.txt16 Documentation/devicetree/bindings/iommu/iommu.txt
17 17
18Optional 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
18Example:23Example:
19 24
20 vopl_mmu: iommu@ff940300 {25 vopl_mmu: iommu@ff940300 {
Documentation/devicetree/bindings/leds/leds-gpio.txt+3−0
@@ -18,6 +18,9 @@ LED sub-node properties: · 17 unmodified lines
18 see Documentation/devicetree/bindings/leds/common.txt18 see Documentation/devicetree/bindings/leds/common.txt
19- retain-state-suspended: (optional) The suspend state can be retained.Such19- retain-state-suspended: (optional) The suspend state can be retained.Such
20 as charge-led gpio.20 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.
21- panic-indicator : (optional)24- panic-indicator : (optional)
22 see Documentation/devicetree/bindings/leds/common.txt25 see Documentation/devicetree/bindings/leds/common.txt
23 26
Documentation/devicetree/bindings/leds/leds-pca955x.txt+88−0
@@ -0,0 +1,88 @@
1* NXP - pca955x LED driver
2
3The PCA955x family of chips are I2C LED blinkers whose pins not used
4to control LEDs can be used as general purpose I/Os. The GPIO pins can
5be input or output, and output pins can also be pulse-width controlled.
6
7Required 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
17Optional 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
22LED 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
38Examples:
39
40pca9552: 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
24 clock-frequency = <50000000>;24 clock-frequency = <50000000>;
25 clock-output-names = "qci_mclk";25 clock-output-names = "qci_mclk";
26 26
27 status = "okay";
28 27
29 port {28 port {
30 #address-cells = <1>;29 #address-cells = <1>;
Documentation/devicetree/bindings/media/s5p-cec.txt+0−1
@@ -33,5 +33,4 @@ hdmicec: cec@100B0000 { · 32 unmodified lines
33 hdmi-phandle = <&hdmi>;33 hdmi-phandle = <&hdmi>;
34 pinctrl-names = "default";34 pinctrl-names = "default";
35 pinctrl-0 = <&hdmi_cec>;35 pinctrl-0 = <&hdmi_cec>;
36 status = "okay";
37};36};
Documentation/devicetree/bindings/media/samsung-fimc.txt+0−2
@@ -166,7 +166,6 @@ Example: · 165 unmodified lines
166 clock-output-names = "cam_a_clkout", "cam_b_clkout";166 clock-output-names = "cam_a_clkout", "cam_b_clkout";
167 pinctrl-names = "default";167 pinctrl-names = "default";
168 pinctrl-0 = <&cam_port_a_clk_active>;168 pinctrl-0 = <&cam_port_a_clk_active>;
169 status = "okay";
170 #address-cells = <1>;169 #address-cells = <1>;
171 #size-cells = <1>;170 #size-cells = <1>;
172 171
@@ -189,7 +188,6 @@ Example: · 16 unmodified lines
189 compatible = "samsung,exynos4210-fimc";188 compatible = "samsung,exynos4210-fimc";
190 reg = <0x11800000 0x1000>;189 reg = <0x11800000 0x1000>;
191 interrupts = <0 85 0>;190 interrupts = <0 85 0>;
192 status = "okay";
193 };191 };
194 192
195 csis_0: csis@11880000 {193 csis_0: csis@11880000 {
Documentation/devicetree/bindings/media/stih407-c8sectpfe.txt+0−1
@@ -52,7 +52,6 @@ Example: · 51 unmodified lines
52 52
53 c8sectpfe@08a20000 {53 c8sectpfe@08a20000 {
54 compatible = "st,stih407-c8sectpfe";54 compatible = "st,stih407-c8sectpfe";
55 status = "okay";
56 reg = <0x08a20000 0x10000>, <0x08a00000 0x4000>;55 reg = <0x08a20000 0x10000>, <0x08a00000 0x4000>;
57 reg-names = "stfe", "stfe-ram";56 reg-names = "stfe", "stfe-ram";
58 interrupts = <GIC_SPI 34 IRQ_TYPE_NONE>, <GIC_SPI 35 IRQ_TYPE_NONE>;57 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
59 tvp5147@5d {59 tvp5147@5d {
60 compatible = "ti,tvp5147";60 compatible = "ti,tvp5147";
61 reg = <0x5d>;61 reg = <0x5d>;
62 status = "okay";
63 62
64 port {63 port {
65 composite_in: endpoint {64 composite_in: endpoint {
Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.txt+15−0
@@ -15,6 +15,9 @@ Required properties: · 14 unmodified lines
15 the register.15 the register.
16 - "smi" : It's the clock for transfer data and command.16 - "smi" : It's the clock for transfer data and command.
17 17
18Required property for mt2701:
19- mediatek,larb-id :the hardware id of this larb.
20
18Example:21Example:
19 larb1: larb@16010000 {22 larb1: larb@16010000 {
20 compatible = "mediatek,mt8173-smi-larb";23 compatible = "mediatek,mt8173-smi-larb";
@@ -25,3 +28,15 @@ Example: · 4 unmodified lines
25 <&vdecsys CLK_VDEC_LARB_CKEN>;28 <&vdecsys CLK_VDEC_LARB_CKEN>;
26 clock-names = "apb", "smi";29 clock-names = "apb", "smi";
27 };30 };
31
32Example 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
130Example:130Example:
131 131
132 devbus-bootcs@d0010400 {132 devbus-bootcs@d0010400 {
133 status = "okay";
134 ranges = <0 0xf0000000 0x1000000>; /* @addr 0xf0000000, size 0x1000000 */133 ranges = <0 0xf0000000 0x1000000>; /* @addr 0xf0000000, size 0x1000000 */
135 #address-cells = <1>;134 #address-cells = <1>;
136 #size-cells = <1>;135 #size-cells = <1>;
Documentation/devicetree/bindings/mfd/act8945a.txt+0−2
@@ -12,7 +12,6 @@ Example: · 11 unmodified lines
12 pmic@5b {12 pmic@5b {
13 compatible = "active-semi,act8945a";13 compatible = "active-semi,act8945a";
14 reg = <0x5b>;14 reg = <0x5b>;
15 status = "okay";
16 15
17 active-semi,vsel-high;16 active-semi,vsel-high;
18 17
@@ -79,6 +78,5 @@ Example: · 60 unmodified lines
79 active-semi,input-voltage-threshold-microvolt = <6600>;78 active-semi,input-voltage-threshold-microvolt = <6600>;
80 active-semi,precondition-timeout = <40>;79 active-semi,precondition-timeout = <40>;
81 active-semi,total-timeout = <3>;80 active-semi,total-timeout = <3>;
82 status = "okay";
83 };81 };
84 };82 };
Documentation/devicetree/bindings/mfd/atmel-hlcdc.txt+0−1
@@ -25,7 +25,6 @@ Example: · 24 unmodified lines
25 clocks = <&lcdc_clk>, <&lcdck>, <&clk32k>;25 clocks = <&lcdc_clk>, <&lcdck>, <&clk32k>;
26 clock-names = "periph_clk","sys_clk", "slow_clk";26 clock-names = "periph_clk","sys_clk", "slow_clk";
27 interrupts = <36 IRQ_TYPE_LEVEL_HIGH 0>;27 interrupts = <36 IRQ_TYPE_LEVEL_HIGH 0>;
28 status = "disabled";
29 28
30 hlcdc-display-controller {29 hlcdc-display-controller {
31 compatible = "atmel,hlcdc-display-controller";30 compatible = "atmel,hlcdc-display-controller";
Documentation/devicetree/bindings/mfd/atmel-smc.txt+1−0
@@ -8,6 +8,7 @@ Required properties: · 7 unmodified lines
8- compatible: Should be one of the following8- compatible: Should be one of the following
9 "atmel,at91sam9260-smc", "syscon"9 "atmel,at91sam9260-smc", "syscon"
10 "atmel,sama5d3-smc", "syscon"10 "atmel,sama5d3-smc", "syscon"
11 "atmel,sama5d2-smc", "syscon"
11- reg: Contains offset/length value of the SMC memory12- reg: Contains offset/length value of the SMC memory
12 region.13 region.
13 14
Documentation/devicetree/bindings/mfd/axp20x.txt+45−5
@@ -7,7 +7,14 @@ axp209 (X-Powers) · 6 unmodified lines
7axp221 (X-Powers)7axp221 (X-Powers)
8axp223 (X-Powers)8axp223 (X-Powers)
9axp803 (X-Powers)9axp803 (X-Powers)
10axp806 (X-Powers)
10axp809 (X-Powers)11axp809 (X-Powers)
12axp813 (X-Powers)
13
14The AXP813 is 2 chips packaged into 1. The 2 chips do not share anything
15other than the packaging. Pins are routed separately. As such they should
16be treated as separate entities. The other half is an AC100 RTC/codec
17combo chip. Please see ./ac100.txt for its bindings.
11 18
12Required properties:19Required properties:
13- compatible: should be one of:20- compatible: should be one of:
@@ -19,6 +26,7 @@ Required properties: · 5 unmodified lines
19 * "x-powers,axp803"26 * "x-powers,axp803"
20 * "x-powers,axp806"27 * "x-powers,axp806"
21 * "x-powers,axp809"28 * "x-powers,axp809"
29 * "x-powers,axp813"
22- reg: The I2C slave address or RSB hardware address for the AXP chip30- reg: The I2C slave address or RSB hardware address for the AXP chip
23- interrupt-parent: The parent interrupt controller31- interrupt-parent: The parent interrupt controller
24- interrupts: SoC NMI / GPIO interrupt connected to the PMIC's IRQ pin32- interrupts: SoC NMI / GPIO interrupt connected to the PMIC's IRQ pin
@@ -28,12 +36,14 @@ Required properties: · 3 unmodified lines
28Optional properties:36Optional properties:
29- x-powers,dcdc-freq: defines the work frequency of DC-DC in KHz37- x-powers,dcdc-freq: defines the work frequency of DC-DC in KHz
30 AXP152/20X: range: 750-1875, Default: 1.5 MHz38 AXP152/20X: range: 750-1875, Default: 1.5 MHz
31 AXP22X/80X: range: 1800-4050, Default: 3 MHz39 AXP22X/8XX: range: 1800-4050, Default: 3 MHz
32 40
33- x-powers,drive-vbus-en: axp221 / axp223 only boolean, set this when the41- x-powers,drive-vbus-en: boolean, set this when the N_VBUSEN pin is
34 N_VBUSEN pin is used as an output pin to control an external42 used as an output pin to control an external
35 regulator to drive the OTG VBus, rather then as an input pin43 regulator to drive the OTG VBus, rather then
36 which signals whether the board is driving OTG VBus or not.44 as an input pin which signals whether the
45 board is driving OTG VBus or not.
46 (axp221 / axp223 / axp813 only)
37 47
38- x-powers,master-mode: Boolean (axp806 only). Set this when the PMIC is48- x-powers,master-mode: Boolean (axp806 only). Set this when the PMIC is
39 wired for master mode. The default is slave mode.49 wired for master mode. The default is slave mode.
@@ -171,6 +181,36 @@ LDO_IO1 : LDO : ips-supply : GPIO 1 · 131 unmodified lines
171RTC_LDO : LDO : ips-supply : always on181RTC_LDO : LDO : ips-supply : always on
172SW : On/Off Switch : swin-supply182SW : On/Off Switch : swin-supply
173 183
184AXP813 regulators, type, and corresponding input supply names:
185
186Regulator Type Supply Name Notes
187--------- ---- ----------- -----
188DCDC1 : DC-DC buck : vin1-supply
189DCDC2 : DC-DC buck : vin2-supply : poly-phase capable
190DCDC3 : DC-DC buck : vin3-supply : poly-phase capable
191DCDC4 : DC-DC buck : vin4-supply
192DCDC5 : DC-DC buck : vin5-supply : poly-phase capable
193DCDC6 : DC-DC buck : vin6-supply : poly-phase capable
194DCDC7 : DC-DC buck : vin7-supply
195ALDO1 : LDO : aldoin-supply : shared supply
196ALDO2 : LDO : aldoin-supply : shared supply
197ALDO3 : LDO : aldoin-supply : shared supply
198DLDO1 : LDO : dldoin-supply : shared supply
199DLDO2 : LDO : dldoin-supply : shared supply
200DLDO3 : LDO : dldoin-supply : shared supply
201DLDO4 : LDO : dldoin-supply : shared supply
202ELDO1 : LDO : eldoin-supply : shared supply
203ELDO2 : LDO : eldoin-supply : shared supply
204ELDO3 : LDO : eldoin-supply : shared supply
205FLDO1 : LDO : fldoin-supply : shared supply
206FLDO2 : LDO : fldoin-supply : shared supply
207FLDO3 : LDO : fldoin-supply : shared supply
208LDO_IO0 : LDO : ips-supply : GPIO 0
209LDO_IO1 : LDO : ips-supply : GPIO 1
210RTC_LDO : LDO : ips-supply : always on
211SW : On/Off Switch : swin-supply
212DRIVEVBUS : Enable output : drivevbus-supply : external regulator
213
174Example:214Example:
175 215
176axp209: pmic@34 {216axp209: pmic@34 {
Documentation/devicetree/bindings/mfd/bd9571mwv.txt+49−0
@@ -0,0 +1,49 @@
1* ROHM BD9571MWV Power Management Integrated Circuit (PMIC) bindings
2
3Required 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
28Example:
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
4- compatible : Should be "dlg,da9052", "dlg,da9053-aa",4- compatible : Should be "dlg,da9052", "dlg,da9053-aa",
5 "dlg,da9053-ab", or "dlg,da9053-bb"5 "dlg,da9053-ab", or "dlg,da9053-bb"
6 6
7Optional 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
7Sub-nodes:15Sub-nodes:
8- regulators : Contain the regulator nodes. The DA9052/53 regulators are16- regulators : Contain the regulator nodes. The DA9052/53 regulators are
9 bound using their names as listed below:17 bound using their names as listed below:
@@ -29,7 +37,6 @@ Sub-nodes: · 19 unmodified lines
29Examples:37Examples:
30 38
31i2c@63fc8000 { /* I2C1 */39i2c@63fc8000 { /* I2C1 */
32 status = "okay";
33 40
34 pmic: dialog@48 {41 pmic: dialog@48 {
35 compatible = "dlg,da9053-aa";42 compatible = "dlg,da9053-aa";
Documentation/devicetree/bindings/mfd/mc13xxx.txt+0−1
@@ -116,7 +116,6 @@ ecspi@70010000 { /* ECSPI1 */ · 115 unmodified lines
116 fsl,spi-num-chipselects = <2>;116 fsl,spi-num-chipselects = <2>;
117 cs-gpios = <&gpio4 24 0>, /* GPIO4_24 */117 cs-gpios = <&gpio4 24 0>, /* GPIO4_24 */
118 <&gpio4 25 0>; /* GPIO4_25 */118 <&gpio4 25 0>; /* GPIO4_25 */
119 status = "okay";
120 119
121 pmic: mc13892@0 {120 pmic: mc13892@0 {
122 #address-cells = <1>;121 #address-cells = <1>;
Documentation/devicetree/bindings/mfd/mxs-lradc.txt+0−2
@@ -26,7 +26,6 @@ Example for i.MX23 SoC: · 25 unmodified lines
26 compatible = "fsl,imx23-lradc";26 compatible = "fsl,imx23-lradc";
27 reg = <0x80050000 0x2000>;27 reg = <0x80050000 0x2000>;
28 interrupts = <36 37 38 39 40 41 42 43 44>;28 interrupts = <36 37 38 39 40 41 42 43 44>;
29 status = "okay";
30 fsl,lradc-touchscreen-wires = <4>;29 fsl,lradc-touchscreen-wires = <4>;
31 fsl,ave-ctrl = <4>;30 fsl,ave-ctrl = <4>;
32 fsl,ave-delay = <2>;31 fsl,ave-delay = <2>;
@@ -39,7 +38,6 @@ Example for i.MX28 SoC: · 6 unmodified lines
39 compatible = "fsl,imx28-lradc";38 compatible = "fsl,imx28-lradc";
40 reg = <0x80050000 0x2000>;39 reg = <0x80050000 0x2000>;
41 interrupts = <10 14 15 16 17 18 19 20 21 22 23 24 25>;40 interrupts = <10 14 15 16 17 18 19 20 21 22 23 24 25>;
42 status = "okay";
43 fsl,lradc-touchscreen-wires = <5>;41 fsl,lradc-touchscreen-wires = <5>;
44 fsl,ave-ctrl = <4>;42 fsl,ave-ctrl = <4>;
45 fsl,ave-delay = <2>;43 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
3Retu and Tahvo are a multi-function devices found on Nokia Internet
4Tablets (770, N800 and N810). The Retu chip provides watchdog timer
5and power button control functionalities while Tahvo chip provides
6USB transceiver functionality.
7
8Required 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
14Example:
15
16cbus0 {
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 @@
1RK8XX Power Management Integrated Circuit1RK8XX Power Management Integrated Circuit
2 2
3The rk8xx family current members:3The rk8xx family current members:
4rk805
4rk8085rk808
5rk8186rk818
6 7
7Required properties:8Required properties:
8- compatible: "rockchip,rk808", "rockchip,rk818"9- compatible: "rockchip,rk805"
10- compatible: "rockchip,rk808"
11- compatible: "rockchip,rk818"
9- reg: I2C slave address12- reg: I2C slave address
10- interrupt-parent: The parent interrupt controller.13- interrupt-parent: The parent interrupt controller.
11- interrupts: the interrupt outputs of the controller.14- interrupts: the interrupt outputs of the controller.
@@ -18,6 +21,14 @@ Optional properties: · 6 unmodified lines
18- rockchip,system-power-controller: Telling whether or not this pmic is controlling21- rockchip,system-power-controller: Telling whether or not this pmic is controlling
19 the system power.22 the system power.
20 23
24Optional 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
21Optional RK808 properties:32Optional RK808 properties:
22- vcc1-supply: The input supply for DCDC_REG133- vcc1-supply: The input supply for DCDC_REG1
23- vcc2-supply: The input supply for DCDC_REG234- vcc2-supply: The input supply for DCDC_REG2
@@ -56,6 +67,15 @@ by a child node of the 'regulators' node. · 32 unmodified lines
56 /* standard regulator bindings here */67 /* standard regulator bindings here */
57 };68 };
58 69
70Following regulators of the RK805 PMIC regulators are supported. Note that
71the 'n' in regulator name, as in DCDC_REGn or LDOn, represents the DCDC or LDO
72number 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
59Following regulators of the RK808 PMIC block are supported. Note that79Following regulators of the RK808 PMIC block are supported. Note that
60the 'n' in regulator name, as in DCDC_REGn or LDOn, represents the DCDC or LDO80the 'n' in regulator name, as in DCDC_REGn or LDOn, represents the DCDC or LDO
61number as described in RK808 datasheet.81number as described in RK808 datasheet.
Documentation/devicetree/bindings/mfd/samsung,exynos5433-lpass.txt+0−2
@@ -57,7 +57,6 @@ audio-subsystem { · 56 unmodified lines
57 clock-names = "iis", "i2s_opclk0", "i2s_opclk1";57 clock-names = "iis", "i2s_opclk0", "i2s_opclk1";
58 pinctrl-names = "default";58 pinctrl-names = "default";
59 pinctrl-0 = <&i2s0_bus>;59 pinctrl-0 = <&i2s0_bus>;
60 status = "disabled";
61 };60 };
62 61
63 serial_3: serial@11460000 {62 serial_3: serial@11460000 {
@@ -69,6 +68,5 @@ audio-subsystem { · 5 unmodified lines
69 clock-names = "uart", "clk_uart_baud0";68 clock-names = "uart", "clk_uart_baud0";
70 pinctrl-names = "default";69 pinctrl-names = "default";
71 pinctrl-0 = <&uart_aud_bus>;70 pinctrl-0 = <&uart_aud_bus>;
72 status = "disabled";
73 };71 };
74 };72 };
Documentation/devicetree/bindings/mfd/stm32-lptimer.txt+48−0
@@ -0,0 +1,48 @@
1STMicroelectronics STM32 Low-Power Timer
2
3The STM32 Low-Power Timer (LPTIM) is a 16-bit timer that provides several
4functions:
5- PWM output (with programmable prescaler, configurable polarity)
6- Quadrature encoder, counter
7- Trigger source for STM32 ADC/DAC (LPTIM_OUT)
8
9Required 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
17Optional 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
22Example:
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
3The TP61050/TPS61052 is a high-power "white LED driver". The
4device provides LED, GPIO and regulator functionalities.
5
6Required properties:
7- compatible: "ti,tps61050" or "ti,tps61052"
8- reg: Specifies the I2C slave address
9
10Example:
11
12i2c0 {
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
31 ../interrupt-controller/interrupts.txt31 ../interrupt-controller/interrupts.txt
32 32
33Optional sub-nodes:33Optional sub-nodes:
34 - phys : Contains a phandle to the USB PHY.
34 - regulators : Contains sub-nodes for each of the regulators supplied by35 - regulators : Contains sub-nodes for each of the regulators supplied by
35 the device. The regulators are bound using their names listed below:36 the device. The regulators are bound using their names listed below:
36 37
Documentation/devicetree/bindings/mfd/zii,rave-sp.txt+39−0
@@ -0,0 +1,39 @@
1Zodiac Inflight Innovations RAVE Supervisory Processor
2
3RAVE Supervisory Processor communicates with SoC over UART. It is
4expected that its Device Tree node is specified as a child of a node
5corresponding to UART controller used for communication.
6
7Required 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
18RAVE SP consists of the following sub-devices:
19
20Device Description
21------ -----------
22rave-sp-wdt : Watchdog
23rave-sp-nvmem : Interface to onborad EEPROM
24rave-sp-backlight : Display backlight
25rave-sp-hwmon : Interface to onboard hardware sensors
26rave-sp-leds : Interface to onboard LEDs
27rave-sp-input : Interface to onboard power button
28
29Example 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 @@
1Lantiq XWAY SoC FPI BUS binding
2============================
3
4
5-------------------------------------------------------------------------------
6Required 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-------------------------------------------------------------------------------
17Example 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 @@
1Lantiq XWAY SoC GPHY binding
2============================
3
4This binding describes a software-defined ethernet PHY, provided by the RCU
5module on newer Lantiq XWAY SoCs (xRX200 and newer).
6
7-------------------------------------------------------------------------------
8Required 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
19Optional 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-------------------------------------------------------------------------------
25Example 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 @@
1Lantiq XWAY SoC RCU binding
2===========================
3
4This binding describes the RCU (reset controller unit) multifunction device,
5where each sub-device has it's own set of registers.
6
7The RCU register range is used for multiple purposes. Mostly one device
8uses one or multiple register exclusively, but for some registers some
9bits are for one driver and some other bits are for a different driver.
10With this patch all accesses to the RCU registers will go through
11syscon.
12
13
14-------------------------------------------------------------------------------
15Required 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-------------------------------------------------------------------------------
22Example 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 @@
1National Instruments MIPS platforms
2
3required root node properties:
4 - compatible: must be "ni,169445"
5
6CPU 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
15 ralink,rt5350-soc15 ralink,rt5350-soc
16 ralink,mt7620a-soc16 ralink,mt7620a-soc
17 ralink,mt7620n-soc17 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
47 dma-names = "tx", "rx";47 dma-names = "tx", "rx";
48 pinctrl-names = "default";48 pinctrl-names = "default";
49 pinctrl-0 = <&pinctrl_ssc0_tx &pinctrl_ssc0_rx>;49 pinctrl-0 = <&pinctrl_ssc0_tx &pinctrl_ssc0_rx>;
50 status = "disabled";
51};50};
Documentation/devicetree/bindings/mmc/arasan,sdhci.txt+0−1
@@ -74,5 +74,4 @@ Example: · 73 unmodified lines
74 phys = <&emmc_phy>;74 phys = <&emmc_phy>;
75 phy-names = "phy_arasan";75 phy-names = "phy_arasan";
76 #clock-cells = <0>;76 #clock-cells = <0>;
77 status = "disabled";
78 };77 };
Documentation/devicetree/bindings/mmc/davinci_mmc.txt+0−1
@@ -24,7 +24,6 @@ mmc0: mmc@1c40000 { · 23 unmodified lines
24 compatible = "ti,da830-mmc",24 compatible = "ti,da830-mmc",
25 reg = <0x40000 0x1000>;25 reg = <0x40000 0x1000>;
26 interrupts = <16>;26 interrupts = <16>;
27 status = "okay";
28 bus-width = <4>;27 bus-width = <4>;
29 max-frequency = <50000000>;28 max-frequency = <50000000>;
30 dmas = <&edma 1629 dmas = <&edma 16
Documentation/devicetree/bindings/mmc/fsl-imx-mmc.txt+0−1
@@ -20,5 +20,4 @@ sdhci1: sdhci@10014000 { · 19 unmodified lines
20 dma-names = "rx-tx";20 dma-names = "rx-tx";
21 bus-width = <4>;21 bus-width = <4>;
22 cd-gpios = <&gpio3 29>;22 cd-gpios = <&gpio3 29>;
23 status = "okay";
24};23};
Documentation/devicetree/bindings/mmc/mmc-card.txt+0−1
@@ -21,7 +21,6 @@ Example: · 20 unmodified lines
21 vmmc-supply = <&reg_vcc3v3>;21 vmmc-supply = <&reg_vcc3v3>;
22 bus-width = <8>;22 bus-width = <8>;
23 non-removable;23 non-removable;
24 status = "okay";
25 24
26 mmccard: mmccard@0 {25 mmccard: mmccard@0 {
27 reg = <0>;26 reg = <0>;
Documentation/devicetree/bindings/mmc/mmc.txt+0−1
@@ -153,7 +153,6 @@ mmc3: mmc@01c12000 { · 152 unmodified lines
153 bus-width = <4>;153 bus-width = <4>;
154 non-removable;154 non-removable;
155 mmc-pwrseq = <&sdhci0_pwrseq>155 mmc-pwrseq = <&sdhci0_pwrseq>
156 status = "okay";
157 156
158 brcmf: bcrmf@1 {157 brcmf: bcrmf@1 {
159 reg = <1>;158 reg = <1>;
Documentation/devicetree/bindings/mmc/orion-sdio.txt+0−1
@@ -13,5 +13,4 @@ Example: · 12 unmodified lines
13 reg = <0xd00d4000 0x200>;13 reg = <0xd00d4000 0x200>;
14 interrupts = <54>;14 interrupts = <54>;
15 clocks = <&gateclk 17>;15 clocks = <&gateclk 17>;
16 status = "disabled";
17 };16 };
Documentation/devicetree/bindings/mmc/renesas,mmcif.txt+3−1
@@ -11,6 +11,8 @@ Required properties: · 10 unmodified lines
11 - "renesas,mmcif-r7s72100" for the MMCIF found in r7s72100 SoCs11 - "renesas,mmcif-r7s72100" for the MMCIF found in r7s72100 SoCs
12 - "renesas,mmcif-r8a73a4" for the MMCIF found in r8a73a4 SoCs12 - "renesas,mmcif-r8a73a4" for the MMCIF found in r8a73a4 SoCs
13 - "renesas,mmcif-r8a7740" for the MMCIF found in r8a7740 SoCs13 - "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
14 - "renesas,mmcif-r8a7778" for the MMCIF found in r8a7778 SoCs16 - "renesas,mmcif-r8a7778" for the MMCIF found in r8a7778 SoCs
15 - "renesas,mmcif-r8a7790" for the MMCIF found in r8a7790 SoCs17 - "renesas,mmcif-r8a7790" for the MMCIF found in r8a7790 SoCs
16 - "renesas,mmcif-r8a7791" for the MMCIF found in r8a7791 SoCs18 - "renesas,mmcif-r8a7791" for the MMCIF found in r8a7791 SoCs
@@ -21,7 +23,7 @@ Required properties: · 4 unmodified lines
21- interrupts: Some SoCs have only 1 shared interrupt, while others have either23- interrupts: Some SoCs have only 1 shared interrupt, while others have either
22 2 or 3 individual interrupts (error, int, card detect). Below is the number24 2 or 3 individual interrupts (error, int, card detect). Below is the number
23 of interrupts for each SoC:25 of interrupts for each SoC:
24 1: r8a73a4, r8a7778, r8a7790, r8a7791, r8a7793, r8a779426 1: r8a73a4, r8a7743, r8a7745, r8a7778, r8a7790, r8a7791, r8a7793, r8a7794
25 2: r8a7740, sh73a027 2: r8a7740, sh73a0
26 3: r7s7210028 3: r7s72100
27 29
Documentation/devicetree/bindings/mmc/rockchip-dw-mshc.txt+1−0
@@ -15,6 +15,7 @@ Required Properties: · 14 unmodified lines
15 - "rockchip,rk3288-dw-mshc": for Rockchip RK328815 - "rockchip,rk3288-dw-mshc": for Rockchip RK3288
16 - "rockchip,rv1108-dw-mshc", "rockchip,rk3288-dw-mshc": for Rockchip RV110816 - "rockchip,rv1108-dw-mshc", "rockchip,rk3288-dw-mshc": for Rockchip RV1108
17 - "rockchip,rk3036-dw-mshc", "rockchip,rk3288-dw-mshc": for Rockchip RK303617 - "rockchip,rk3036-dw-mshc", "rockchip,rk3288-dw-mshc": for Rockchip RK3036
18 - "rockchip,rk3228-dw-mshc", "rockchip,rk3288-dw-mshc": for Rockchip RK322x
18 - "rockchip,rk3328-dw-mshc", "rockchip,rk3288-dw-mshc": for Rockchip RK332819 - "rockchip,rk3328-dw-mshc", "rockchip,rk3288-dw-mshc": for Rockchip RK3328
19 - "rockchip,rk3368-dw-mshc", "rockchip,rk3288-dw-mshc": for Rockchip RK336820 - "rockchip,rk3368-dw-mshc", "rockchip,rk3288-dw-mshc": for Rockchip RK3368
20 - "rockchip,rk3399-dw-mshc", "rockchip,rk3288-dw-mshc": for Rockchip RK339921 - "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
63 63
64mmc0: sdhci@fe81e000 {64mmc0: sdhci@fe81e000 {
65 compatible = "st,sdhci";65 compatible = "st,sdhci";
66 status = "disabled";
67 reg = <0xfe81e000 0x1000>;66 reg = <0xfe81e000 0x1000>;
68 interrupts = <GIC_SPI 127 IRQ_TYPE_NONE>;67 interrupts = <GIC_SPI 127 IRQ_TYPE_NONE>;
69 interrupt-names = "mmcirq";68 interrupt-names = "mmcirq";
@@ -77,7 +76,6 @@ mmc0: sdhci@fe81e000 { · 7 unmodified lines
77 76
78mmc1: sdhci@09080000 {77mmc1: sdhci@09080000 {
79 compatible = "st,sdhci-stih407", "st,sdhci";78 compatible = "st,sdhci-stih407", "st,sdhci";
80 status = "disabled";
81 reg = <0x09080000 0x7ff>;79 reg = <0x09080000 0x7ff>;
82 reg-names = "mmc";80 reg-names = "mmc";
83 interrupts = <GIC_SPI 90 IRQ_TYPE_NONE>;81 interrupts = <GIC_SPI 90 IRQ_TYPE_NONE>;
@@ -94,7 +92,6 @@ mmc1: sdhci@09080000 { · 10 unmodified lines
94 92
95mmc0: sdhci@09060000 {93mmc0: sdhci@09060000 {
96 compatible = "st,sdhci-stih407", "st,sdhci";94 compatible = "st,sdhci-stih407", "st,sdhci";
97 status = "disabled";
98 reg = <0x09060000 0x7ff>, <0x9061008 0x20>;95 reg = <0x09060000 0x7ff>, <0x9061008 0x20>;
99 reg-names = "mmc", "top-mmc-delay";96 reg-names = "mmc", "top-mmc-delay";
100 interrupts = <GIC_SPI 92 IRQ_TYPE_NONE>;97 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
12 * "allwinner,sun4i-a10-mmc"12 * "allwinner,sun4i-a10-mmc"
13 * "allwinner,sun5i-a13-mmc"13 * "allwinner,sun5i-a13-mmc"
14 * "allwinner,sun7i-a20-mmc"14 * "allwinner,sun7i-a20-mmc"
15 * "allwinner,sun8i-a83t-emmc"
15 * "allwinner,sun9i-a80-mmc"16 * "allwinner,sun9i-a80-mmc"
16 * "allwinner,sun50i-a64-emmc"17 * "allwinner,sun50i-a64-emmc"
17 * "allwinner,sun50i-a64-mmc"18 * "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 OMAP1* TI Highspeed MMC host controller for OMAP and 66AK2G family.
2 2
3The Highspeed MMC Host Controller on TI OMAP family3The Highspeed MMC Host Controller on TI OMAP and 66AK2G family
4provides an interface for MMC, SD, and SDIO types of memory cards.4provides an interface for MMC, SD, and SDIO types of memory cards.
5 5
6This file documents differences between the core properties described6This file documents differences between the core properties described
7by mmc.txt and the properties used by the omap_hsmmc driver.7by mmc.txt and the properties used by the omap_hsmmc driver.
8 8
9Required properties:9Required properties:
10--------------------
10- compatible:11- compatible:
11 Should be "ti,omap2-hsmmc", for OMAP2 controllers12 Should be "ti,omap2-hsmmc", for OMAP2 controllers
12 Should be "ti,omap3-hsmmc", for OMAP3 controllers13 Should be "ti,omap3-hsmmc", for OMAP3 controllers
13 Should be "ti,omap3-pre-es3-hsmmc" for OMAP3 controllers pre ES3.014 Should be "ti,omap3-pre-es3-hsmmc" for OMAP3 controllers pre ES3.0
14 Should be "ti,omap4-hsmmc", for OMAP4 controllers15 Should be "ti,omap4-hsmmc", for OMAP4 controllers
15 Should be "ti,am33xx-hsmmc", for AM335x controllers16 Should be "ti,am33xx-hsmmc", for AM335x controllers
16- ti,hwmods: Must be "mmc<n>", n is controller instance starting 117 Should be "ti,k2g-hsmmc", "ti,omap4-hsmmc" for 66AK2G controllers.
18
19SoC specific required properties:
20---------------------------------
21The 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
24The 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
17 35
18Optional properties:36Optional properties:
19ti,dual-volt: boolean, supports dual voltage cards37--------------------
20<supply-name>-supply: phandle to the regulator device tree node38- ti,dual-volt: boolean, supports dual voltage cards
21"supply-name" examples are "vmmc", "vmmc_aux"(deprecated)/"vqmmc" etc39- <supply-name>-supply: phandle to the regulator device tree node
22ti,non-removable: non-removable slot (like eMMC)40 "supply-name" examples are "vmmc",
23ti,needs-special-reset: Requires a special softreset sequence41 "vmmc_aux"(deprecated)/"vqmmc" etc
24ti,needs-special-hs-handling: HSMMC IP needs special setting for handling High Speed42- ti,non-removable: non-removable slot (like eMMC)
25dmas: List of DMA specifiers with the controller specific format43- ti,needs-special-reset: Requires a special softreset sequence
26as described in the generic DMA client binding. A tx and rx44- ti,needs-special-hs-handling: HSMMC IP needs special setting
27specifier is required.45 for handling High Speed
28dma-names: List of DMA request names. These strings correspond46- dmas: List of DMA specifiers with the controller specific
291:1 with the DMA specifiers listed in dmas. The string naming is47 format as described in the generic DMA client
30to be "rx" and "tx" for RX and TX DMA requests, respectively.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.
31 53
32Examples:54Examples:
33 55
Documentation/devicetree/bindings/mmc/tmio_mmc.txt+4−4
@@ -15,6 +15,8 @@ Required properties: · 14 unmodified lines
15 "renesas,sdhi-r7s72100" - SDHI IP on R7S72100 SoC15 "renesas,sdhi-r7s72100" - SDHI IP on R7S72100 SoC
16 "renesas,sdhi-r8a73a4" - SDHI IP on R8A73A4 SoC16 "renesas,sdhi-r8a73a4" - SDHI IP on R8A73A4 SoC
17 "renesas,sdhi-r8a7740" - SDHI IP on R8A7740 SoC17 "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
18 "renesas,sdhi-r8a7778" - SDHI IP on R8A7778 SoC20 "renesas,sdhi-r8a7778" - SDHI IP on R8A7778 SoC
19 "renesas,sdhi-r8a7779" - SDHI IP on R8A7779 SoC21 "renesas,sdhi-r8a7779" - SDHI IP on R8A7779 SoC
20 "renesas,sdhi-r8a7790" - SDHI IP on R8A7790 SoC22 "renesas,sdhi-r8a7790" - SDHI IP on R8A7790 SoC
@@ -33,10 +35,8 @@ Required properties: · 12 unmodified lines
33 If 2 clocks are specified by the hardware, you must name them as35 If 2 clocks are specified by the hardware, you must name them as
34 "core" and "cd". If the controller only has 1 clock, naming is not36 "core" and "cd". If the controller only has 1 clock, naming is not
35 required.37 required.
36 Below is the number clocks for each supported SoC:38 Devices which have more than 1 clock are listed below:
37 1: SH73A0, R8A73A4, R8A7740, R8A7778, R8A7779, R8A779039 2: R7S72100
38 R8A7791, R8A7792, R8A7793, R8A7794, R8A7795, R8A7796
39 2: R7S72100
40 40
41Optional properties:41Optional properties:
42- toshiba,mmc-wrprotect-disable: write-protect detection is unavailable42- 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
28 max-frequency = <50000000>;28 max-frequency = <50000000>;
29 cap-sdio-irq;29 cap-sdio-irq;
30 cap-sd-highspeed;30 cap-sd-highspeed;
31 status = "disabled";
32 };31 };
Documentation/devicetree/bindings/mtd/atmel-quadspi.txt+0−1
@@ -24,7 +24,6 @@ spi@f0020000 { · 23 unmodified lines
24 #size-cells = <0>;24 #size-cells = <0>;
25 pinctrl-names = "default";25 pinctrl-names = "default";
26 pinctrl-0 = <&pinctrl_spi0_default>;26 pinctrl-0 = <&pinctrl_spi0_default>;
27 status = "okay";
28 27
29 m25p80@0 {28 m25p80@0 {
30 ...29 ...
Documentation/devicetree/bindings/mtd/mtk-quadspi.txt+0−1
@@ -37,7 +37,6 @@ nor_flash: spi@1100d000 { · 36 unmodified lines
37 clock-names = "spi", "sf";37 clock-names = "spi", "sf";
38 #address-cells = <1>;38 #address-cells = <1>;
39 #size-cells = <0>;39 #size-cells = <0>;
40 status = "disabled";
41 40
42 flash@0 {41 flash@0 {
43 compatible = "jedec,spi-nor";42 compatible = "jedec,spi-nor";
Documentation/devicetree/bindings/mtd/qcom_nandc.txt+59−6
@@ -1,11 +1,20 @@
1* Qualcomm NAND controller1* Qualcomm NAND controller
2 2
3Required properties:3Required 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
5- reg: MMIO address range12- reg: MMIO address range
6- clocks: must contain core clock and always on clock13- clocks: must contain core clock and always on clock
7- clock-names: must contain "core" for the core clock and "aon" for the14- clock-names: must contain "core" for the core clock and "aon" for the
8 always on clock15 always on clock
16
17EBI2 specific properties:
9- dmas: DMA specifier, consisting of a phandle to the ADM DMA18- dmas: DMA specifier, consisting of a phandle to the ADM DMA
10 controller node and the channel number to be used for19 controller node and the channel number to be used for
11 NAND. Refer to dma.txt and qcom_adm.txt for more details20 NAND. Refer to dma.txt and qcom_adm.txt for more details
@@ -16,6 +25,12 @@ Required properties: · 4 unmodified lines
16- qcom,data-crci: must contain the ADM data type CRCI block instance25- qcom,data-crci: must contain the ADM data type CRCI block instance
17 number specified for the NAND controller on the given26 number specified for the NAND controller on the given
18 platform27 platform
28
29QPIC 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"
19- #address-cells: <1> - subnodes give the chip-select number34- #address-cells: <1> - subnodes give the chip-select number
20- #size-cells: <0>35- #size-cells: <0>
21 36
@@ -26,7 +41,6 @@ chip-selects which (may) contain NAND flash chips. Their properties are as · 4 unmodified lines
26follows.41follows.
27 42
28Required properties:43Required properties:
29- compatible: should contain "qcom,nandcs"
30- reg: a single integer representing the chip-select44- reg: a single integer representing the chip-select
31 number (e.g., 0, 1, 2, etc.)45 number (e.g., 0, 1, 2, etc.)
32- #address-cells: see partition.txt46- #address-cells: see partition.txt
@@ -43,8 +57,8 @@ partition.txt for more detail. · 10 unmodified lines
43 57
44Example:58Example:
45 59
46nand@1ac00000 {60nand-controller@1ac00000 {
47 compatible = "qcom,ebi2-nandc";61 compatible = "qcom,ipq806x-nand";
48 reg = <0x1ac00000 0x800>;62 reg = <0x1ac00000 0x800>;
49 63
50 clocks = <&gcc EBI2_CLK>,64 clocks = <&gcc EBI2_CLK>,
@@ -59,8 +73,7 @@ nand@1ac00000 { · 8 unmodified lines
59 #address-cells = <1>;73 #address-cells = <1>;
60 #size-cells = <0>;74 #size-cells = <0>;
61 75
62 nandcs@0 {76 nand@0 {
63 compatible = "qcom,nandcs";
64 reg = <0>;77 reg = <0>;
65 78
66 nand-ecc-strength = <4>;79 nand-ecc-strength = <4>;
@@ -84,3 +97,43 @@ nand@1ac00000 { · 17 unmodified lines
84 };97 };
85 };98 };
86};99};
100
101nand-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
21 st,syscfg = <&syscfg_rear>;21 st,syscfg = <&syscfg_rear>;
22 st,boot-device-reg = <0x958>;22 st,boot-device-reg = <0x958>;
23 st,boot-device-spi = <0x1a>;23 st,boot-device-spi = <0x1a>;
24 status = "okay";
25 };24 };
26 25
Documentation/devicetree/bindings/mtd/sunxi-nand.txt+0−1
@@ -41,7 +41,6 @@ nfc: nand@01c03000 { · 40 unmodified lines
41 #size-cells = <0>;41 #size-cells = <0>;
42 pinctrl-names = "default";42 pinctrl-names = "default";
43 pinctrl-0 = <&nand_pins_a &nand_cs0_pins_a &nand_rb0_pins_a>;43 pinctrl-0 = <&nand_pins_a &nand_cs0_pins_a &nand_rb0_pins_a>;
44 status = "okay";
45 44
46 nand@0 {45 nand@0 {
47 reg = <0>;46 reg = <0>;
Documentation/devicetree/bindings/net/anarion-gmac.txt+25−0
@@ -0,0 +1,25 @@
1* Adaptrum Anarion ethernet controller
2
3This device is a platform glue layer for stmmac.
4Please see stmmac.txt for the other unchanged properties.
5
6Required properties:
7 - compatible: Should be "adaptrum,anarion-gmac", "snps,dwmac"
8 - phy-mode: Should be "rgmii". Other modes are not currently supported.
9
10
11Examples:
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
27 <0x18110000 0x1000>;27 <0x18110000 0x1000>;
28 reg-names = "amac_base", "idm_base";28 reg-names = "amac_base", "idm_base";
29 interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;29 interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
30 status = "disabled";
31};30};
Documentation/devicetree/bindings/net/broadcom-bluetooth.txt+35−0
@@ -0,0 +1,35 @@
1Broadcom Bluetooth Chips
2---------------------
3
4This documents the binding structure and common properties for serial
5attached Broadcom devices.
6
7Serial attached Broadcom devices shall be a child node of the host UART
8device the slave device is attached to.
9
10Required properties:
11
12 - compatible: should contain one of the following:
13 * "brcm,bcm43438-bt"
14
15Optional 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
25Example:
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
29Following example uses irq pin number 3 of gpio0 for out of band wake-on-bt:29Following example uses irq pin number 3 of gpio0 for out of band wake-on-bt:
30 30
31&usb_host1_ehci {31&usb_host1_ehci {
32 status = "okay";
33 #address-cells = <1>;32 #address-cells = <1>;
34 #size-cells = <0>;33 #size-cells = <0>;
35 34
Documentation/devicetree/bindings/net/can/c_can.txt+12−1
@@ -11,9 +11,20 @@ Required properties: · 10 unmodified lines
11- interrupts : property with a value describing the interrupt11- interrupts : property with a value describing the interrupt
12 number12 number
13 13
14Optional properties:14The following are mandatory properties for DRA7x, AM33xx and AM43xx SoCs only:
15- ti,hwmods : Must be "d_can<n>" or "c_can<n>", n being the15- ti,hwmods : Must be "d_can<n>" or "c_can<n>", n being the
16 instance number16 instance number
17
18The 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
27Optional properties:
17- syscon-raminit : Handle to system control region that contains the28- syscon-raminit : Handle to system control region that contains the
18 RAMINIT register, register offset to the RAMINIT29 RAMINIT register, register offset to the RAMINIT
19 register and the CAN instance number (0 offset).30 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
56 <&clks IMX6SX_CLK_CANFD>;56 <&clks IMX6SX_CLK_CANFD>;
57 clock-names = "hclk", "cclk";57 clock-names = "hclk", "cclk";
58 bosch,mram-cfg = <0x0 0 0 32 0 0 0 1>;58 bosch,mram-cfg = <0x0 0 0 32 0 0 0 1>;
59 status = "disabled";
60};59};
61 60
62Board dts:61Board 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
24 pinctrl-0 = <&pinctrl_spi_ksz>;24 pinctrl-0 = <&pinctrl_spi_ksz>;
25 cs-gpios = <&pioC 25 0>;25 cs-gpios = <&pioC 25 0>;
26 id = <1>;26 id = <1>;
27 status = "okay";
28 27
29 ksz9477: ksz9477@0 {28 ksz9477: ksz9477@0 {
30 compatible = "microchip,ksz9477";29 compatible = "microchip,ksz9477";
@@ -34,7 +33,6 @@ Ethernet switch connected via SPI to the host, CPU port wired to eth0: · 3 unmodified lines
34 spi-cpha;33 spi-cpha;
35 spi-cpol;34 spi-cpol;
36 35
37 status = "okay";
38 ports {36 ports {
39 #address-cells = <1>;37 #address-cells = <1>;
40 #size-cells = <0>;38 #size-cells = <0>;
Documentation/devicetree/bindings/net/dsa/lan9303.txt+0−3
@@ -27,7 +27,6 @@ Example: · 26 unmodified lines
27I2C managed mode:27I2C managed mode:
28 28
29 master: masterdevice@X {29 master: masterdevice@X {
30 status = "okay";
31 30
32 fixed-link { /* RMII fixed link to LAN9303 */31 fixed-link { /* RMII fixed link to LAN9303 */
33 speed = <100>;32 speed = <100>;
@@ -38,7 +37,6 @@ I2C managed mode: · 4 unmodified lines
38 switch: switch@a {37 switch: switch@a {
39 compatible = "smsc,lan9303-i2c";38 compatible = "smsc,lan9303-i2c";
40 reg = <0xa>;39 reg = <0xa>;
41 status = "okay";
42 reset-gpios = <&gpio7 6 GPIO_ACTIVE_LOW>;40 reset-gpios = <&gpio7 6 GPIO_ACTIVE_LOW>;
43 reset-duration = <200>;41 reset-duration = <200>;
44 42
@@ -67,7 +65,6 @@ I2C managed mode: · 22 unmodified lines
67MDIO managed mode:65MDIO managed mode:
68 66
69 master: masterdevice@X {67 master: masterdevice@X {
70 status = "okay";
71 phy-handle = <&switch>;68 phy-handle = <&switch>;
72 69
73 mdio {70 mdio {
Documentation/devicetree/bindings/net/dwmac-sun8i.txt+0−84
@@ -1,84 +0,0 @@
1* Allwinner sun8i GMAC ethernet controller
2
3This device is a platform glue layer for stmmac.
4Please see stmmac.txt for the other unchanged properties.
5
6Required 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
30Optional 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)
33Both delay properties need to be a multiple of 100. They control the delay for
34external PHY.
35
36Optional 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
41Required child node of emac:
42- mdio bus node: should be named mdio
43
44Required properties of the mdio node:
45- #address-cells: shall be 1
46- #size-cells: shall be 0
47
48The device node referenced by "phy" or "phy-handle" should be a child node
49of the mdio node. See phy.txt for the generic PHY bindings.
50
51Required 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
57Example:
58
59emac: 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 @@
1The following properties are common to the Ethernet controllers:1The following properties are common to the Ethernet controllers:
2 2
3NOTE: All 'phy*' properties documented below are Ethernet specific. For the
4generic PHY 'phys' property, see
5Documentation/devicetree/bindings/phy/phy-bindings.txt.
6
3- local-mac-address: array of 6 bytes, specifies the MAC address that was7- local-mac-address: array of 6 bytes, specifies the MAC address that was
4 assigned to the network device;8 assigned to the network device;
5- mac-address: array of 6 bytes, specifies the MAC address that was last used by9- 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
30 compatible = "aspeed,ast2500-mac", "faraday,ftgmac100";30 compatible = "aspeed,ast2500-mac", "faraday,ftgmac100";
31 reg = <0x1e660000 0x180>;31 reg = <0x1e660000 0x180>;
32 interrupts = <2>;32 interrupts = <2>;
33 status = "okay";
34 use-ncsi;33 use-ncsi;
35 };34 };
Documentation/devicetree/bindings/net/marvell-armada-370-neta.txt+0−1
@@ -41,7 +41,6 @@ ethernet@70000 { · 40 unmodified lines
41 interrupts = <8>;41 interrupts = <8>;
42 clocks = <&gate_clk 4>;42 clocks = <&gate_clk 4>;
43 tx-csum-limit = <9800>43 tx-csum-limit = <9800>
44 status = "okay";
45 phy = <&phy0>;44 phy = <&phy0>;
46 phy-mode = "rgmii-id";45 phy-mode = "rgmii-id";
47 buffer-manager = <&bm>;46 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
44below example).44below example).
45 45
46&mmc3 {46&mmc3 {
47 status = "okay";
48 vmmc-supply = <&wlan_en_reg>;47 vmmc-supply = <&wlan_en_reg>;
49 bus-width = <4>;48 bus-width = <4>;
50 cap-power-off-card;49 cap-power-off-card;
@@ -70,7 +69,6 @@ below example). · 19 unmodified lines
70Example for USB device:69Example for USB device:
71 70
72&usb_host1_ohci {71&usb_host1_ohci {
73 status = "okay";
74 #address-cells = <1>;72 #address-cells = <1>;
75 #size-cells = <0>;73 #size-cells = <0>;
76 74
Documentation/devicetree/bindings/net/marvell-neta-bm.txt+0−2
@@ -31,7 +31,6 @@ bm: bm@c8000 { · 30 unmodified lines
31 reg = <0xc8000 0xac>;31 reg = <0xc8000 0xac>;
32 clocks = <&gateclk 13>;32 clocks = <&gateclk 13>;
33 internal-mem = <&bm_bppi>;33 internal-mem = <&bm_bppi>;
34 status = "okay";
35 pool2,capacity = <4096>;34 pool2,capacity = <4096>;
36 pool1,pkt-size = <512>;35 pool1,pkt-size = <512>;
37};36};
@@ -45,5 +44,4 @@ bm_bppi: bm-bppi { · 7 unmodified lines
45 #address-cells = <1>;44 #address-cells = <1>;
46 #size-cells = <1>;45 #size-cells = <1>;
47 clocks = <&gateclk 13>;46 clocks = <&gateclk 13>;
48 status = "okay";
49};47};
Documentation/devicetree/bindings/net/marvell-pp2.txt+26−6
@@ -41,6 +41,11 @@ Optional properties (port): · 40 unmodified lines
41- marvell,loopback: port is loopback mode41- marvell,loopback: port is loopback mode
42- phy: a phandle to a phy node defining the PHY address (as the reg42- phy: a phandle to a phy node defining the PHY address (as the reg
43 property, a single integer).43 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.
44 49
45Example for marvell,armada-375-pp2:50Example for marvell,armada-375-pp2:
46 51
@@ -52,12 +57,10 @@ ethernet@f0000 { · 5 unmodified lines
52 <0xc5000 0x100>;57 <0xc5000 0x100>;
53 clocks = <&gateclk 3>, <&gateclk 19>;58 clocks = <&gateclk 3>, <&gateclk 19>;
54 clock-names = "pp_clk", "gop_clk";59 clock-names = "pp_clk", "gop_clk";
55 status = "okay";
56 60
57 eth0: eth0@c4000 {61 eth0: eth0@c4000 {
58 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;62 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
59 port-id = <0>;63 port-id = <0>;
60 status = "okay";
61 phy = <&phy0>;64 phy = <&phy0>;
62 phy-mode = "gmii";65 phy-mode = "gmii";
63 };66 };
@@ -65,7 +68,6 @@ ethernet@f0000 { · 1 unmodified line
65 eth1: eth1@c5000 {68 eth1: eth1@c5000 {
66 interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;69 interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
67 port-id = <1>;70 port-id = <1>;
68 status = "okay";
69 phy = <&phy3>;71 phy = <&phy3>;
70 phy-mode = "gmii";72 phy-mode = "gmii";
71 };73 };
@@ -80,19 +82,37 @@ cpm_ethernet: ethernet@0 { · 8 unmodified lines
80 clock-names = "pp_clk", "gop_clk", "gp_clk";82 clock-names = "pp_clk", "gop_clk", "gp_clk";
81 83
82 eth0: eth0 {84 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";
84 port-id = <0>;92 port-id = <0>;
85 gop-port-id = <0>;93 gop-port-id = <0>;
86 };94 };
87 95
88 eth1: eth1 {96 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";
90 port-id = <1>;104 port-id = <1>;
91 gop-port-id = <2>;105 gop-port-id = <2>;
92 };106 };
93 107
94 eth2: eth2 {108 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";
96 port-id = <2>;116 port-id = <2>;
97 gop-port-id = <3>;117 gop-port-id = <3>;
98 };118 };
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
7* Ethernet controller node7* Ethernet controller node
8 8
9Required properties:9Required 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
11- reg: Address and length of the register set for the device14- reg: Address and length of the register set for the device
12- interrupts: Should contain the three frame engines interrupts in numeric15- interrupts: Should contain the three frame engines interrupts in numeric
13 order. These are fe_int0, fe_int1 and fe_int2.16 order. These are fe_int0, fe_int1 and fe_int2.
14- clocks: the clock used by the core17- clocks: the clock used by the core
15- clock-names: the names of the clock listed in the clocks property. These are18- 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
17- power-domains: phandle to the power domain that the ethernet is part of22- power-domains: phandle to the power domain that the ethernet is part of
18- resets: Should contain a phandle to the ethsys reset signal23- resets: Should contain phandles to the ethsys reset signals
19- reset-names: Should contain the reset signal name "eth"24- reset-names: Should contain the names of reset signal listed in the resets
25 property
26 These are "fe", "gmac" and "ppe"
20- mediatek,ethsys: phandle to the syscon node that handles the port setup27- 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.
21- mediatek,pctl: phandle to the syscon node that handles the ports slew rate30- mediatek,pctl: phandle to the syscon node that handles the ports slew rate
22 and driver current31 and driver current
23 32
24Optional properties:33Optional properties:
25- interrupt-parent: Should be the phandle for the interrupt controller34- interrupt-parent: Should be the phandle for the interrupt controller
26 that services interrupts for this device35 that services interrupts for this device
27
28* Ethernet MAC node36* Ethernet MAC node
29 37
30Required properties:38Required properties:
Documentation/devicetree/bindings/net/meson-dwmac.txt+0−1
@@ -66,5 +66,4 @@ Example for GXBB: · 65 unmodified lines
66 <&clkc CLKID_MPLL2>;66 <&clkc CLKID_MPLL2>;
67 clock-names = "stmmaceth", "clkin0", "clkin1";67 clock-names = "stmmaceth", "clkin0", "clkin1";
68 phy-mode = "rgmii";68 phy-mode = "rgmii";
69 status = "disabled";
70 };69 };
Documentation/devicetree/bindings/net/micrel-ksz90x1.txt+0−1
@@ -69,7 +69,6 @@ Examples: · 68 unmodified lines
69 };69 };
70 };70 };
71 ethernet@70000 {71 ethernet@70000 {
72 status = "okay";
73 phy = <&phy0>;72 phy = <&phy0>;
74 phy-mode = "rgmii-id";73 phy-mode = "rgmii-id";
75 };74 };
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
33 compatible = "fsl,imx28-spi";33 compatible = "fsl,imx28-spi";
34 pinctrl-names = "default";34 pinctrl-names = "default";
35 pinctrl-0 = <&spi2_pins_b &spi2_sck_cfg>;35 pinctrl-0 = <&spi2_pins_b &spi2_sck_cfg>;
36 status = "okay";
37 36
38 enc28j60: ethernet@0 {37 enc28j60: ethernet@0 {
39 compatible = "microchip,enc28j60";38 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
25Example (for ARM-based BeagleBoard Black with 88W8887 on UART5):25Example (for ARM-based BeagleBoard Black with 88W8887 on UART5):
26 26
27&uart5 {27&uart5 {
28 status = "okay";
29 28
30 nfcmrvluart: nfcmrvluart@5 {29 nfcmrvluart: nfcmrvluart@5 {
31 compatible = "marvell,nfc-uart";30 compatible = "marvell,nfc-uart";
@@ -41,7 +40,6 @@ Example (for ARM-based BeagleBoard Black with 88W8887 on UART5): · 9 unmodified lines
41Example (for ARM-based BeagleBoard Black with 88W8887 on I2C1):40Example (for ARM-based BeagleBoard Black with 88W8887 on I2C1):
42 41
43&i2c1 {42&i2c1 {
44 status = "okay";
45 clock-frequency = <400000>;43 clock-frequency = <400000>;
46 44
47 nfcmrvli2c0: i2c@1 {45 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
17 17
18&i2c2 {18&i2c2 {
19 19
20 status = "okay";
21 20
22 npc100: npc100@29 {21 npc100: npc100@29 {
23 22
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
15 15
16&i2c2 {16&i2c2 {
17 17
18 status = "okay";
19 18
20 pn532: pn532@24 {19 pn532: pn532@24 {
21 20
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
17 17
18&i2c2 {18&i2c2 {
19 19
20 status = "okay";
21 20
22 pn544: pn544@28 {21 pn544: pn544@28 {
23 22
Documentation/devicetree/bindings/net/nfc/s3fwrn5.txt+0−1
@@ -12,7 +12,6 @@ Required properties: · 11 unmodified lines
12Example:12Example:
13 13
14&hsi2c_4 {14&hsi2c_4 {
15 status = "okay";
16 s3fwrn5@27 {15 s3fwrn5@27 {
17 compatible = "samsung,s3fwrn5-i2c";16 compatible = "samsung,s3fwrn5-i2c";
18 17
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
20 20
21&i2c2 {21&i2c2 {
22 22
23 status = "okay";
24 23
25 st21nfcb: st21nfcb@8 {24 st21nfcb: st21nfcb@8 {
26 25
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
19 19
20&mcspi4 {20&mcspi4 {
21 21
22 status = "okay";
23 22
24 st21nfcb: st21nfcb@0 {23 st21nfcb: st21nfcb@0 {
25 24
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
20 20
21&i2c2 {21&i2c2 {
22 22
23 status = "okay";
24 23
25 st21nfca: st21nfca@1 {24 st21nfca: st21nfca@1 {
26 25
Documentation/devicetree/bindings/net/nfc/st95hf.txt+0−2
@@ -35,12 +35,10 @@ spi@9840000 { · 34 unmodified lines
35 #address-cells = <1>;35 #address-cells = <1>;
36 #size-cells = <0>;36 #size-cells = <0>;
37 cs-gpios = <&pio0 4>;37 cs-gpios = <&pio0 4>;
38 status = "okay";
39 38
40 st95hf@0{39 st95hf@0{
41 reg = <0>;40 reg = <0>;
42 compatible = "st,st95hf";41 compatible = "st,st95hf";
43 status = "okay";
44 spi-max-frequency = <1000000>;42 spi-max-frequency = <1000000>;
45 enable-gpio = <&pio4 0>;43 enable-gpio = <&pio4 0>;
46 interrupt-parent = <&pio0>;44 interrupt-parent = <&pio0>;
Documentation/devicetree/bindings/net/nfc/trf7970a.txt+0−2
@@ -23,7 +23,6 @@ Optional SoC Specific Properties: · 22 unmodified lines
23Example (for ARM-based BeagleBone with TRF7970A on SPI1):23Example (for ARM-based BeagleBone with TRF7970A on SPI1):
24 24
25&spi1 {25&spi1 {
26 status = "okay";
27 26
28 nfc@0 {27 nfc@0 {
29 compatible = "ti,trf7970a";28 compatible = "ti,trf7970a";
@@ -41,6 +40,5 @@ Example (for ARM-based BeagleBone with TRF7970A on SPI1): · 11 unmodified lines
41 irq-status-read-quirk;40 irq-status-read-quirk;
42 en2-rf-quirk;41 en2-rf-quirk;
43 clock-frequency = <27120000>;42 clock-frequency = <27120000>;
44 status = "okay";
45 };43 };
46};44};
Documentation/devicetree/bindings/net/oxnas-dwmac.txt+0−1
@@ -35,5 +35,4 @@ etha: ethernet@40400000 { · 34 unmodified lines
35 /* Regmap for sys registers */35 /* Regmap for sys registers */
36 oxsemi,sys-ctrl = <&sys>;36 oxsemi,sys-ctrl = <&sys>;
37 37
38 status = "disabled";
39};38};
Documentation/devicetree/bindings/net/phy.txt+8−7
@@ -2,11 +2,7 @@ PHY nodes · 1 unmodified line
2 2
3Required properties:3Required properties:
4 4
5 - interrupts : <a b> where a is the interrupt number and b is a5 - interrupts : interrupt specifier for the sole interrupt.
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.
10 - interrupt-parent : the phandle for the interrupt controller that6 - interrupt-parent : the phandle for the interrupt controller that
11 services interrupts for this device.7 services interrupts for this device.
12 - reg : The ID number for the phy, usually a small integer8 - reg : The ID number for the phy, usually a small integer
@@ -52,11 +48,16 @@ Optional Properties: · 39 unmodified lines
52 Mark the corresponding energy efficient ethernet mode as broken and48 Mark the corresponding energy efficient ethernet mode as broken and
53 request the ethernet to stop advertising it.49 request the ethernet to stop advertising it.
54 50
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
55Example:56Example:
56 57
57ethernet-phy@0 {58ethernet-phy@0 {
58 compatible = "ethernet-phy-id0141.0e90", "ethernet-phy-ieee802.3-c22";59 compatible = "ethernet-phy-id0141.0e90", "ethernet-phy-ieee802.3-c22";
59 interrupt-parent = <40000>;60 interrupt-parent = <&PIC>;
60 interrupts = <35 1>;61 interrupts = <35 IRQ_TYPE_EDGE_RISING>;
61 reg = <0>;62 reg = <0>;
62};63};
Documentation/devicetree/bindings/net/qca,qca7000.txt+0−2
@@ -41,7 +41,6 @@ ssp2: spi@80014000 { · 40 unmodified lines
41 compatible = "fsl,imx28-spi";41 compatible = "fsl,imx28-spi";
42 pinctrl-names = "default";42 pinctrl-names = "default";
43 pinctrl-0 = <&spi2_pins_a>;43 pinctrl-0 = <&spi2_pins_a>;
44 status = "okay";
45 44
46 qca7000: ethernet@0 {45 qca7000: ethernet@0 {
47 compatible = "qca,qca7000";46 compatible = "qca,qca7000";
@@ -78,7 +77,6 @@ auart0: serial@8006a000 { · 30 unmodified lines
78 reg = <0x8006a000 0x2000>;77 reg = <0x8006a000 0x2000>;
79 pinctrl-names = "default";78 pinctrl-names = "default";
80 pinctrl-0 = <&auart0_2pins_a>;79 pinctrl-0 = <&auart0_2pins_a>;
81 status = "okay";
82 80
83 qca7000: ethernet {81 qca7000: ethernet {
84 compatible = "qca,qca7000";82 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
4interface contains.4interface contains.
5 5
6Required properties:6Required properties:
7- compatible: "renesas,etheravb-r8a7790" if the device is a part of R8A7790 SoC.7- compatible: Must contain one or more of the following:
8 "renesas,etheravb-r8a7791" if the device is a part of R8A7791 SoC.8 - "renesas,etheravb-r8a7743" for the R8A7743 SoC.
9 "renesas,etheravb-r8a7792" if the device is a part of R8A7792 SoC.9 - "renesas,etheravb-r8a7745" for the R8A7745 SoC.
10 "renesas,etheravb-r8a7793" if the device is a part of R8A7793 SoC.10 - "renesas,etheravb-r8a7790" for the R8A7790 SoC.
11 "renesas,etheravb-r8a7794" if the device is a part of R8A7794 SoC.11 - "renesas,etheravb-r8a7791" for the R8A7791 SoC.
12 "renesas,etheravb-r8a7795" if the device is a part of R8A7795 SoC.12 - "renesas,etheravb-r8a7792" for the R8A7792 SoC.
13 "renesas,etheravb-r8a7796" if the device is a part of R8A7796 SoC.13 - "renesas,etheravb-r8a7793" for the R8A7793 SoC.
14 "renesas,etheravb-rcar-gen2" for generic R-Car Gen 2 compatible interface.14 - "renesas,etheravb-r8a7794" for the R8A7794 SoC.
15 "renesas,etheravb-rcar-gen3" for generic R-Car Gen 3 compatible interface.15 - "renesas,etheravb-rcar-gen2" as a fallback for the above
16 R-Car Gen2 and RZ/G1 devices.
16 17
17 When compatible with the generic version, nodes must list the18 - "renesas,etheravb-r8a7795" for the R8A7795 SoC.
18 SoC-specific version corresponding to the platform first19 - "renesas,etheravb-r8a7796" for the R8A7796 SoC.
19 followed by the generic version.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.
20 26
21- reg: offset and length of (1) the register block and (2) the stream buffer.27- reg: offset and length of (1) the register block and (2) the stream buffer.
22- interrupts: A list of interrupt-specifiers, one for each entry in28- 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
10 "rockchip,rk3366-gmac": found on RK3366 SoCs10 "rockchip,rk3366-gmac": found on RK3366 SoCs
11 "rockchip,rk3368-gmac": found on RK3368 SoCs11 "rockchip,rk3368-gmac": found on RK3368 SoCs
12 "rockchip,rk3399-gmac": found on RK3399 SoCs12 "rockchip,rk3399-gmac": found on RK3399 SoCs
13 "rockchip,rv1108-gmac": found on RV1108 SoCs
13 - reg: addresses and length of the register sets for the device.14 - reg: addresses and length of the register sets for the device.
14 - interrupts: Should contain the GMAC interrupts.15 - interrupts: Should contain the GMAC interrupts.
15 - interrupt-names: Should contain the interrupt names "macirq".16 - interrupt-names: Should contain the interrupt names "macirq".
@@ -70,5 +71,4 @@ gmac: ethernet@ff290000 { · 54 unmodified lines
70 tx_delay = <0x30>;71 tx_delay = <0x30>;
71 rx_delay = <0x10>;72 rx_delay = <0x10>;
72 73
73 status = "ok";
74};74};
Documentation/devicetree/bindings/net/sff,sfp.txt+76−0
@@ -0,0 +1,76 @@
1Small Form Factor (SFF) Committee Small Form-factor Pluggable (SFP)
2Transceiver
3
4Required properties:
5
6- compatible : must be "sff,sfp"
7
8Optional 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
32Example #1: Direct serdes to SFP connection
33
34sfp_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
51Example #2: Serdes to PHY to SFP connection
52
53sfp_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
64p0_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
15 pinctrl-names = "default", "sleep";15 pinctrl-names = "default", "sleep";
16 pinctrl-0 = <&davinci_mdio_default>;16 pinctrl-0 = <&davinci_mdio_default>;
17 pinctrl-1 = <&davinci_mdio_sleep>;17 pinctrl-1 = <&davinci_mdio_sleep>;
18 status = "okay";
19 18
20 ethernetphy0: ethernet-phy@0 {19 ethernetphy0: ethernet-phy@0 {
21 reg = <0>;20 reg = <0>;
Documentation/devicetree/bindings/net/socfpga-dwmac.txt+0−1
@@ -40,7 +40,6 @@ gmii_to_sgmii_converter: phy@0x100000240 { · 39 unmodified lines
40gmac0: ethernet@ff700000 {40gmac0: ethernet@ff700000 {
41 compatible = "altr,socfpga-stmmac", "snps,dwmac-3.70a", "snps,dwmac";41 compatible = "altr,socfpga-stmmac", "snps,dwmac-3.70a", "snps,dwmac";
42 altr,sysmgr-syscon = <&sysmgr 0x60 0>;42 altr,sysmgr-syscon = <&sysmgr 0x60 0>;
43 status = "disabled";
44 reg = <0xff700000 0x2000>;43 reg = <0xff700000 0x2000>;
45 interrupts = <0 115 4>;44 interrupts = <0 115 4>;
46 interrupt-names = "macirq";45 interrupt-names = "macirq";
Documentation/devicetree/bindings/net/sti-dwmac.txt+0−1
@@ -34,7 +34,6 @@ Example: · 33 unmodified lines
34 34
35ethernet0: dwmac@9630000 {35ethernet0: dwmac@9630000 {
36 device_type = "network";36 device_type = "network";
37 status = "disabled";
38 compatible = "st,stih407-dwmac", "snps,dwmac", "snps,dwmac-3.710";37 compatible = "st,stih407-dwmac", "snps,dwmac", "snps,dwmac-3.710";
39 reg = <0x9630000 0x8000>;38 reg = <0x9630000 0x8000>;
40 reg-names = "stmmaceth";39 reg-names = "stmmaceth";
Documentation/devicetree/bindings/net/stm32-dwmac.txt+0−1
@@ -18,7 +18,6 @@ Example: · 17 unmodified lines
18 18
19 ethernet@40028000 {19 ethernet@40028000 {
20 compatible = "st,stm32-dwmac", "snps,dwmac-3.50a";20 compatible = "st,stm32-dwmac", "snps,dwmac-3.50a";
21 status = "disabled";
22 reg = <0x40028000 0x8000>;21 reg = <0x40028000 0x8000>;
23 reg-names = "stmmaceth";22 reg-names = "stmmaceth";
24 interrupts = <0 61 0>, <0 62 0>;23 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
29 vmmc-supply = <&reg_vmmc3>;29 vmmc-supply = <&reg_vmmc3>;
30 bus-width = <4>;30 bus-width = <4>;
31 non-removable;31 non-removable;
32 status = "okay";
33 32
34 brcmf: wifi@1 {33 brcmf: wifi@1 {
35 reg = <1>;34 reg = <1>;
Documentation/devicetree/bindings/net/wireless/esp,esp8089.txt+0−1
@@ -21,7 +21,6 @@ Example: · 20 unmodified lines
21 mmc-pwrseq = <&wifi_pwrseq>;21 mmc-pwrseq = <&wifi_pwrseq>;
22 bus-width = <4>;22 bus-width = <4>;
23 non-removable;23 non-removable;
24 status = "okay";
25 24
26 esp8089: sdio_wifi@1 {25 esp8089: sdio_wifi@1 {
27 compatible = "esp,esp8089";26 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
48so that firmware can wakeup host using this device side pin.48so that firmware can wakeup host using this device side pin.
49 49
50&mmc3 {50&mmc3 {
51 status = "okay";
52 vmmc-supply = <&wlan_en_reg>;51 vmmc-supply = <&wlan_en_reg>;
53 mmc-pwrseq = <&wifi_pwrseq>;52 mmc-pwrseq = <&wifi_pwrseq>;
54 bus-width = <4>;53 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
31Example:31Example:
32 32
33&mmc3 {33&mmc3 {
34 status = "okay";
35 vmmc-supply = <&wlan_en_reg>;34 vmmc-supply = <&wlan_en_reg>;
36 bus-width = <4>;35 bus-width = <4>;
37 cap-power-off-card;36 cap-power-off-card;
Documentation/devicetree/bindings/net/xilinx_axienet.txt+55−0
@@ -0,0 +1,55 @@
1XILINX AXI ETHERNET Device Tree Bindings
2--------------------------------------------------------
3
4Also called AXI 1G/2.5G Ethernet Subsystem, the xilinx axi ethernet IP core
5provides connectivity to an external ethernet PHY supporting different
6interfaces: MII, GMII, RGMII, SGMII, 1000BaseX. It also includes two
7segments of memory for buffering TX and RX, as well as the capability of
8offloading TX/RX checksum calculation off the processor.
9
10Management configuration is done through the AXI interface, while payload is
11sent and received through means of an AXI DMA controller. This driver
12includes the DMA driver code, so this driver is incompatible with AXI DMA
13driver.
14
15For more details about mdio please refer phy.txt file in the same directory.
16
17Required 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
26Optional 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
35Example:
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
3This binding is intended to represent MTK-EFUSE which is found in most Mediatek SOCs.3This binding is intended to represent MTK-EFUSE which is found in most Mediatek SOCs.
4 4
5Required properties:5Required 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
7- reg: Should contain registers location and length10- reg: Should contain registers location and length
8 11
9= Data cells =12= Data cells =
Documentation/devicetree/bindings/nvmem/mxs-ocotp.txt+0−1
@@ -21,5 +21,4 @@ Example for i.MX28: · 20 unmodified lines
21 #size-cells = <1>;21 #size-cells = <1>;
22 reg = <0x8002c000 0x2000>;22 reg = <0x8002c000 0x2000>;
23 clocks = <&clks 25>;23 clocks = <&clks 25>;
24 status = "okay";
25 };24 };
Documentation/devicetree/bindings/opp/opp.txt+0−1
@@ -464,7 +464,6 @@ Example 5: opp-supported-hw · 463 unmodified lines
464 464
465 opp_table {465 opp_table {
466 compatible = "operating-points-v2";466 compatible = "operating-points-v2";
467 status = "okay";
468 opp-shared;467 opp-shared;
469 468
470 opp-600000000 {469 opp-600000000 {
Documentation/devicetree/bindings/pci/83xx-512x-pci.txt+3−3
@@ -1,11 +1,11 @@
1* Freescale 83xx and 512x PCI bridges1* Freescale 83xx and 512x PCI bridges
2 2
3Freescale 83xx and 512x SOCs include the same pci bridge core.3Freescale 83xx and 512x SOCs include the same PCI bridge core.
4 4
583xx/512x specific notes:583xx/512x specific notes:
6- reg: should contain two address length tuples6- reg: should contain two address length tuples
7 The first is for the internal pci bridge registers7 The first is for the internal PCI bridge registers
8 The second is for the pci config space access registers8 The second is for the PCI config space access registers
9 9
10Example (MPC8313ERDB)10Example (MPC8313ERDB)
11 pci0: pci@e0008500 {11 pci0: pci@e0008500 {
Documentation/devicetree/bindings/pci/aardvark-pci.txt+0−1
@@ -33,7 +33,6 @@ Example: · 32 unmodified lines
33 pcie0: pcie@d0070000 {33 pcie0: pcie@d0070000 {
34 compatible = "marvell,armada-3700-pcie";34 compatible = "marvell,armada-3700-pcie";
35 device_type = "pci";35 device_type = "pci";
36 status = "disabled";
37 reg = <0 0xd0070000 0 0x20000>;36 reg = <0 0xd0070000 0 0x20000>;
38 #address-cells = <3>;37 #address-cells = <3>;
39 #size-cells = <2>;38 #size-cells = <2>;
Documentation/devicetree/bindings/pci/altera-pcie.txt+9−9
@@ -7,21 +7,21 @@ Required properties: · 6 unmodified lines
7 "Txs": TX slave port region7 "Txs": TX slave port region
8 "Cra": Control register access region8 "Cra": Control register access region
9- interrupt-parent: interrupt source phandle.9- interrupt-parent: interrupt source phandle.
10- interrupts: specifies the interrupt source of the parent interrupt controller.10- interrupts: specifies the interrupt source of the parent interrupt
11 The format of the interrupt specifier depends on the parent interrupt11 controller. The format of the interrupt specifier depends
12 controller.12 on the parent interrupt controller.
13- device_type: must be "pci"13- device_type: must be "pci"
14- #address-cells: set to <3>14- #address-cells: set to <3>
15- #size-cells: set to <2>15- #size-cells: set to <2>
16- #interrupt-cells: set to <1>16- #interrupt-cells: set to <1>
17- ranges: describes the translation of addresses for root ports and standard17- ranges: describes the translation of addresses for root ports and
18 PCI regions.18 standard PCI regions.
19- interrupt-map-mask and interrupt-map: standard PCI properties to define the19- interrupt-map-mask and interrupt-map: standard PCI properties to define the
20 mapping of the PCIe interface to interrupt numbers.20 mapping of the PCIe interface to interrupt numbers.
21 21
22Optional properties:22Optional properties:
23- msi-parent: Link to the hardware entity that serves as the MSI controller for this PCIe23- msi-parent: Link to the hardware entity that serves as the MSI controller
24 controller.24 for this PCIe controller.
25- bus-range: PCI bus numbers covered25- bus-range: PCI bus numbers covered
26 26
27Example27Example
@@ -45,5 +45,5 @@ Example · 17 unmodified lines
45 <0 0 0 3 &pcie_0 3>,45 <0 0 0 3 &pcie_0 3>,
46 <0 0 0 4 &pcie_0 4>;46 <0 0 0 4 &pcie_0 4>;
47 ranges = <0x82000000 0x00000000 0x00000000 0xc0000000 0x00000000 0x1000000047 ranges = <0x82000000 0x00000000 0x00000000 0xc0000000 0x00000000 0x10000000
48 0x82000000 0x00000000 0x10000000 0xd0000000 0x00000000 0x10000000>;48 0x82000000 0x00000000 0x10000000 0xd0000000 0x00000000 0x10000000>;
49 };49 };
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
6Required properties:6Required properties:
7- compatible: "axis,artpec6-pcie", "snps,dw-pcie"7- compatible: "axis,artpec6-pcie", "snps,dw-pcie"
8- reg: base addresses and lengths of the PCIe controller (DBI),8- 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.
10- reg-names: Must include the following entries:10- reg-names: Must include the following entries:
11 - "dbi"11 - "dbi"
12 - "phy"12 - "phy"
Documentation/devicetree/bindings/pci/designware-pcie.txt+11−13
@@ -1,4 +1,4 @@
1* Synopsys Designware PCIe interface1* Synopsys DesignWare PCIe interface
2 2
3Required properties:3Required properties:
4- compatible: should contain "snps,dw-pcie" to identify the core.4- compatible: should contain "snps,dw-pcie" to identify the core.
@@ -17,29 +17,27 @@ RC mode: · 12 unmodified lines
17 properties to define the mapping of the PCIe interface to interrupt17 properties to define the mapping of the PCIe interface to interrupt
18 numbers.18 numbers.
19EP mode:19EP mode:
20- num-ib-windows: number of inbound address translation20- num-ib-windows: number of inbound address translation windows
21 windows21- num-ob-windows: number of outbound address translation windows
22- num-ob-windows: number of outbound address translation
23 windows
24 22
25Optional properties:23Optional properties:
26- num-lanes: number of lanes to use (this property should be specified unless24- num-lanes: number of lanes to use (this property should be specified unless
27 the link is brought already up in BIOS)25 the link is brought already up in BIOS)
28- reset-gpio: gpio pin number of power good signal26- reset-gpio: GPIO pin number of power good signal
29- clocks: Must contain an entry for each entry in clock-names.27- clocks: Must contain an entry for each entry in clock-names.
30 See ../clocks/clock-bindings.txt for details.28 See ../clocks/clock-bindings.txt for details.
31- clock-names: Must include the following entries:29- clock-names: Must include the following entries:
32 - "pcie"30 - "pcie"
33 - "pcie_bus"31 - "pcie_bus"
34RC mode:32RC mode:
35- num-viewport: number of view ports configured in33- num-viewport: number of view ports configured in hardware. If a platform
36 hardware. If a platform does not specify it, the driver assumes 2.34 does not specify it, the driver assumes 2.
37- bus-range: PCI bus numbers covered (it is recommended35- bus-range: PCI bus numbers covered (it is recommended for new devicetrees
38 for new devicetrees to specify this property, to keep backwards36 to specify this property, to keep backwards compatibility a range of
39 compatibility a range of 0x00-0xff is assumed if not present)37 0x00-0xff is assumed if not present)
38
40EP mode:39EP mode:
41- max-functions: maximum number of functions that can be40- max-functions: maximum number of functions that can be configured
42 configured
43 41
44Example configuration:42Example configuration:
45 43
Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.txt+1−1
@@ -1,6 +1,6 @@
1* Freescale i.MX6 PCIe interface1* Freescale i.MX6 PCIe interface
2 2
3This PCIe host controller is based on the Synopsis Designware PCIe IP3This PCIe host controller is based on the Synopsys DesignWare PCIe IP
4and thus inherits all the common properties defined in designware-pcie.txt.4and thus inherits all the common properties defined in designware-pcie.txt.
5 5
6Required properties:6Required properties:
Documentation/devicetree/bindings/pci/hisilicon-pcie.txt+2−4
@@ -1,7 +1,7 @@
1HiSilicon Hip05 and Hip06 PCIe host bridge DT description1HiSilicon Hip05 and Hip06 PCIe host bridge DT description
2 2
3HiSilicon PCIe host controller is based on Designware PCI core.3HiSilicon PCIe host controller is based on the Synopsys DesignWare PCI core.
4It shares common functions with PCIe Designware core driver and inherits4It shares common functions with the PCIe DesignWare core driver and inherits
5common properties defined in5common properties defined in
6Documentation/devicetree/bindings/pci/designware-pci.txt.6Documentation/devicetree/bindings/pci/designware-pci.txt.
7 7
@@ -40,7 +40,6 @@ Hip05 Example (note that Hip06 is the same except compatible): · 32 unmodified lines
40 0x0 0 0 2 &mbigen_pcie 2 1140 0x0 0 0 2 &mbigen_pcie 2 11
41 0x0 0 0 3 &mbigen_pcie 3 1241 0x0 0 0 3 &mbigen_pcie 3 12
42 0x0 0 0 4 &mbigen_pcie 4 13>;42 0x0 0 0 4 &mbigen_pcie 4 13>;
43 status = "ok";
44 };43 };
45 44
46HiSilicon Hip06/Hip07 PCIe host bridge DT (almost-ECAM) description.45HiSilicon Hip06/Hip07 PCIe host bridge DT (almost-ECAM) description.
@@ -83,5 +82,4 @@ Example: · 36 unmodified lines
83 0x0 0 0 2 &mbigen_pcie0 650 482 0x0 0 0 2 &mbigen_pcie0 650 4
84 0x0 0 0 3 &mbigen_pcie0 650 483 0x0 0 0 3 &mbigen_pcie0 650 4
85 0x0 0 0 4 &mbigen_pcie0 650 4>;84 0x0 0 0 4 &mbigen_pcie0 650 4>;
86 status = "ok";
87 };85 };
Documentation/devicetree/bindings/pci/kirin-pcie.txt+4−4
@@ -1,8 +1,8 @@
1HiSilicon Kirin SoCs PCIe host DT description1HiSilicon Kirin SoCs PCIe host DT description
2 2
3Kirin PCIe host controller is based on Designware PCI core.3Kirin PCIe host controller is based on the Synopsys DesignWare PCI core.
4It shares common functions with PCIe Designware core driver4It shares common functions with the PCIe DesignWare core driver and
5and inherits common properties defined in5inherits common properties defined in
6Documentation/devicetree/bindings/pci/designware-pci.txt.6Documentation/devicetree/bindings/pci/designware-pci.txt.
7 7
8Additional properties are described here:8Additional properties are described here:
@@ -16,7 +16,7 @@ Required properties · 7 unmodified lines
16 "apb": apb Ctrl register defined by Kirin;16 "apb": apb Ctrl register defined by Kirin;
17 "phy": apb PHY register defined by Kirin;17 "phy": apb PHY register defined by Kirin;
18 "config": PCIe configuration space registers.18 "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.
20 20
21Optional properties:21Optional properties:
22 22
Documentation/devicetree/bindings/pci/layerscape-pci.txt+3−1
@@ -15,8 +15,10 @@ Required properties: · 14 unmodified lines
15- compatible: should contain the platform identifier such as:15- compatible: should contain the platform identifier such as:
16 "fsl,ls1021a-pcie", "snps,dw-pcie"16 "fsl,ls1021a-pcie", "snps,dw-pcie"
17 "fsl,ls2080a-pcie", "fsl,ls2085a-pcie", "snps,dw-pcie"17 "fsl,ls2080a-pcie", "fsl,ls2085a-pcie", "snps,dw-pcie"
18 "fsl,ls2088a-pcie"
19 "fsl,ls1088a-pcie"
18 "fsl,ls1046a-pcie"20 "fsl,ls1046a-pcie"
19- reg: base addresses and lengths of the PCIe controller21- reg: base addresses and lengths of the PCIe controller register blocks.
20- interrupts: A list of interrupt outputs of the controller. Must contain an22- interrupts: A list of interrupt outputs of the controller. Must contain an
21 entry for each entry in the interrupt-names property.23 entry for each entry in the interrupt-names property.
22- interrupt-names: Must include the following entries:24- interrupt-names: Must include the following entries:
Documentation/devicetree/bindings/pci/mediatek,mt7623-pcie.txt+0−130
@@ -1,130 +0,0 @@
1MediaTek Gen2 PCIe controller which is available on MT7623 series SoCs
2
3PCIe subsys supports single root complex (RC) with 3 Root Ports. Each root
4ports supports a Gen2 1-lane Link and has PIPE interface to PHY.
5
6Required 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
37In addition, the device tree node must have sub-nodes describing each
38PCIe port interface, having the following mandatory properties:
39
40Required 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
54Examples:
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 @@
1MediaTek Gen2 PCIe controller
2
3Required 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
39Required 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
49Required properties for MT2712/MT7622:
50-interrupts: A list of interrupt outputs of the controller, must have one
51 entry for each PCIe port
52
53In addition, the device tree node must have sub-nodes describing each
54PCIe port interface, having the following mandatory properties:
55
56Required 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
70Examples 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
150Examples 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
212Examples 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
77- marvell,pcie-lane: the physical PCIe lane number, for ports having77- marvell,pcie-lane: the physical PCIe lane number, for ports having
78 multiple lanes. If this property is not found, we assume that the78 multiple lanes. If this property is not found, we assume that the
79 value is 0.79 value is 0.
80- reset-gpios: optional gpio to PERST#80- reset-gpios: optional GPIO to PERST#
81- reset-delay-us: delay in us to wait after reset de-assertion, if not81- reset-delay-us: delay in us to wait after reset de-assertion, if not
82 specified will default to 100ms, as required by the PCIe specification.82 specified will default to 100ms, as required by the PCIe specification.
83 83
@@ -85,7 +85,6 @@ Example: · 1 unmodified line
85 85
86pcie-controller {86pcie-controller {
87 compatible = "marvell,armada-xp-pcie";87 compatible = "marvell,armada-xp-pcie";
88 status = "disabled";
89 device_type = "pci";88 device_type = "pci";
90 89
91 #address-cells = <3>;90 #address-cells = <3>;
@@ -147,7 +146,6 @@ pcie-controller { · 55 unmodified lines
147 /* wait 20ms for device settle after reset deassertion */146 /* wait 20ms for device settle after reset deassertion */
148 reset-delay-us = <20000>;147 reset-delay-us = <20000>;
149 clocks = <&gateclk 5>;148 clocks = <&gateclk 5>;
150 status = "disabled";
151 };149 };
152 150
153 pcie@2,0 {151 pcie@2,0 {
@@ -164,7 +162,6 @@ pcie-controller { · 10 unmodified lines
164 marvell,pcie-port = <0>;162 marvell,pcie-port = <0>;
165 marvell,pcie-lane = <1>;163 marvell,pcie-lane = <1>;
166 clocks = <&gateclk 6>;164 clocks = <&gateclk 6>;
167 status = "disabled";
168 };165 };
169 166
170 pcie@3,0 {167 pcie@3,0 {
@@ -181,7 +178,6 @@ pcie-controller { · 10 unmodified lines
181 marvell,pcie-port = <0>;178 marvell,pcie-port = <0>;
182 marvell,pcie-lane = <2>;179 marvell,pcie-lane = <2>;
183 clocks = <&gateclk 7>;180 clocks = <&gateclk 7>;
184 status = "disabled";
185 };181 };
186 182
187 pcie@4,0 {183 pcie@4,0 {
@@ -198,7 +194,6 @@ pcie-controller { · 10 unmodified lines
198 marvell,pcie-port = <0>;194 marvell,pcie-port = <0>;
199 marvell,pcie-lane = <3>;195 marvell,pcie-lane = <3>;
200 clocks = <&gateclk 8>;196 clocks = <&gateclk 8>;
201 status = "disabled";
202 };197 };
203 198
204 pcie@5,0 {199 pcie@5,0 {
@@ -215,7 +210,6 @@ pcie-controller { · 10 unmodified lines
215 marvell,pcie-port = <1>;210 marvell,pcie-port = <1>;
216 marvell,pcie-lane = <0>;211 marvell,pcie-lane = <0>;
217 clocks = <&gateclk 9>;212 clocks = <&gateclk 9>;
218 status = "disabled";
219 };213 };
220 214
221 pcie@6,0 {215 pcie@6,0 {
@@ -232,7 +226,6 @@ pcie-controller { · 10 unmodified lines
232 marvell,pcie-port = <1>;226 marvell,pcie-port = <1>;
233 marvell,pcie-lane = <1>;227 marvell,pcie-lane = <1>;
234 clocks = <&gateclk 10>;228 clocks = <&gateclk 10>;
235 status = "disabled";
236 };229 };
237 230
238 pcie@7,0 {231 pcie@7,0 {
@@ -249,7 +242,6 @@ pcie-controller { · 10 unmodified lines
249 marvell,pcie-port = <1>;242 marvell,pcie-port = <1>;
250 marvell,pcie-lane = <2>;243 marvell,pcie-lane = <2>;
251 clocks = <&gateclk 11>;244 clocks = <&gateclk 11>;
252 status = "disabled";
253 };245 };
254 246
255 pcie@8,0 {247 pcie@8,0 {
@@ -266,7 +258,6 @@ pcie-controller { · 10 unmodified lines
266 marvell,pcie-port = <1>;258 marvell,pcie-port = <1>;
267 marvell,pcie-lane = <3>;259 marvell,pcie-lane = <3>;
268 clocks = <&gateclk 12>;260 clocks = <&gateclk 12>;
269 status = "disabled";
270 };261 };
271 262
272 pcie@9,0 {263 pcie@9,0 {
@@ -283,10 +274,9 @@ pcie-controller { · 10 unmodified lines
283 marvell,pcie-port = <2>;274 marvell,pcie-port = <2>;
284 marvell,pcie-lane = <0>;275 marvell,pcie-lane = <0>;
285 clocks = <&gateclk 26>;276 clocks = <&gateclk 26>;
286 status = "disabled";
287 };277 };
288 278
289 pcie@10,0 {279 pcie@a,0 {
290 device_type = "pci";280 device_type = "pci";
291 assigned-addresses = <0x82005000 0 0x82000 0 0x2000>;281 assigned-addresses = <0x82005000 0 0x82000 0 0x2000>;
292 reg = <0x5000 0 0 0 0>;282 reg = <0x5000 0 0 0 0>;
@@ -300,6 +290,5 @@ pcie-controller { · 7 unmodified lines
300 marvell,pcie-port = <3>;290 marvell,pcie-port = <3>;
301 marvell,pcie-lane = <0>;291 marvell,pcie-lane = <0>;
302 clocks = <&gateclk 27>;292 clocks = <&gateclk 27>;
303 status = "disabled";
304 };293 };
305};294};
Documentation/devicetree/bindings/pci/pci-armada8k.txt+1−2
@@ -1,6 +1,6 @@
1* Marvell Armada 7K/8K PCIe interface1* Marvell Armada 7K/8K PCIe interface
2 2
3This PCIe host controller is based on the Synopsis Designware PCIe IP3This PCIe host controller is based on the Synopsys DesignWare PCIe IP
4and thus inherits all the common properties defined in designware-pcie.txt.4and thus inherits all the common properties defined in designware-pcie.txt.
5 5
6Required properties:6Required properties:
@@ -34,5 +34,4 @@ Example: · 27 unmodified lines
34 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;34 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
35 num-lanes = <1>;35 num-lanes = <1>;
36 clocks = <&cpm_syscon0 1 13>;36 clocks = <&cpm_syscon0 1 13>;
37 status = "disabled";
38 };37 };
Documentation/devicetree/bindings/pci/pci-keystone.txt+7−8
@@ -1,12 +1,12 @@
1TI Keystone PCIe interface1TI Keystone PCIe interface
2 2
3Keystone PCI host Controller is based on Designware PCI h/w version 3.65.3Keystone PCI host Controller is based on the Synopsys DesignWare PCI
4It shares common functions with PCIe Designware core driver and inherit4hardware version 3.65. It shares common functions with the PCIe DesignWare
5common properties defined in5core driver and inherits common properties defined in
6Documentation/devicetree/bindings/pci/designware-pci.txt6Documentation/devicetree/bindings/pci/designware-pci.txt
7 7
8Please refer to Documentation/devicetree/bindings/pci/designware-pci.txt8Please refer to Documentation/devicetree/bindings/pci/designware-pci.txt
9for the details of Designware DT bindings. Additional properties are9for the details of DesignWare DT bindings. Additional properties are
10described here as well as properties that are not applicable.10described here as well as properties that are not applicable.
11 11
12Required Properties:-12Required Properties:-
@@ -52,13 +52,12 @@ pcie_intc: Interrupt controller device node for Legacy IRQ chip · 39 unmodified lines
52 };52 };
53 53
54Optional properties:-54Optional properties:-
55 phys: phandle to Generic Keystone SerDes phy for PCI55 phys: phandle to generic Keystone SerDes PHY for PCI
56 phy-names: name of the Generic Keystine SerDes phy for PCI56 phy-names: name of the generic Keystone SerDes PHY for PCI
57 - If boot loader already does PCI link establishment, then phys and57 - If boot loader already does PCI link establishment, then phys and
58 phy-names shouldn't be present.58 phy-names shouldn't be present.
59 interrupts: platform interrupt for error interrupts.59 interrupts: platform interrupt for error interrupts.
60 60
61Designware DT Properties not applicable for Keystone PCI61DesignWare DT Properties not applicable for Keystone PCI
62 62
631. pcie_bus clock-names not used. Instead, a phandle to phys is used.631. 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
6OHCI and EHCI controllers.6OHCI and EHCI controllers.
7 7
8Required properties:8Required 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;
10 "renesas,pci-r8a7791" for the R8A7791 SoC;12 "renesas,pci-r8a7791" for the R8A7791 SoC;
11 "renesas,pci-r8a7793" for the R8A7793 SoC;13 "renesas,pci-r8a7793" for the R8A7793 SoC;
12 "renesas,pci-r8a7794" for the R8A7794 SoC;14 "renesas,pci-r8a7794" for the R8A7794 SoC;
13 "renesas,pci-rcar-gen2" for a generic R-Car Gen2 compatible device15 "renesas,pci-rcar-gen2" for a generic R-Car Gen2 or
16 RZ/G1 compatible device.
14 17
15 18
16 When compatible with the generic version, nodes must list the19 When compatible with the generic version, nodes must list the
Documentation/devicetree/bindings/pci/pci.txt+2−2
@@ -1,12 +1,12 @@
1PCI bus bridges have standardized Device Tree bindings:1PCI bus bridges have standardized Device Tree bindings:
2 2
3PCI Bus Binding to: IEEE Std 1275-19943PCI Bus Binding to: IEEE Std 1275-1994
4http://www.firmware.org/1275/bindings/pci/pci2_1.pdf4http://www.devicetree.org/open-firmware/bindings/pci/pci2_1.pdf
5 5
6And for the interrupt mapping part:6And for the interrupt mapping part:
7 7
8Open Firmware Recommended Practice: Interrupt Mapping8Open Firmware Recommended Practice: Interrupt Mapping
9http://www.firmware.org/1275/practice/imap/imap0_9d.pdf9http://www.devicetree.org/open-firmware/practice/imap/imap0_9d.pdf
10 10
11Additionally to the properties specified in the above standards a host bridge11Additionally to the properties specified in the above standards a host bridge
12driver implementation may support the following properties:12driver implementation may support the following properties:
Documentation/devicetree/bindings/pci/qcom,pcie.txt+25−2
@@ -9,6 +9,7 @@ · 8 unmodified lines
9 - "qcom,pcie-apq8084" for apq80849 - "qcom,pcie-apq8084" for apq8084
10 - "qcom,pcie-msm8996" for msm8996 or apq809610 - "qcom,pcie-msm8996" for msm8996 or apq8096
11 - "qcom,pcie-ipq4019" for ipq401911 - "qcom,pcie-ipq4019" for ipq4019
12 - "qcom,pcie-ipq8074" for ipq8074
12 13
13- reg:14- reg:
14 Usage: required15 Usage: required
@@ -20,7 +21,7 @@ · 5 unmodified lines
20 Value type: <stringlist>21 Value type: <stringlist>
21 Definition: Must include the following entries22 Definition: Must include the following entries
22 - "parf" Qualcomm specific registers23 - "parf" Qualcomm specific registers
23 - "dbi" Designware PCIe registers24 - "dbi" DesignWare PCIe registers
24 - "elbi" External local bus interface registers25 - "elbi" External local bus interface registers
25 - "config" PCIe configuration space26 - "config" PCIe configuration space
26 27
@@ -105,6 +106,16 @@ · 78 unmodified lines
105 - "bus_master" Master AXI clock106 - "bus_master" Master AXI clock
106 - "bus_slave" Slave AXI clock107 - "bus_slave" Slave AXI clock
107 108
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
108- resets:119- resets:
109 Usage: required120 Usage: required
110 Value type: <prop-encoded-array>121 Value type: <prop-encoded-array>
@@ -144,6 +155,18 @@ · 33 unmodified lines
144 - "ahb" AHB reset155 - "ahb" AHB reset
145 - "phy_ahb" PHY AHB reset156 - "phy_ahb" PHY AHB reset
146 157
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
147- power-domains:170- power-domains:
148 Usage: required for apq8084 and msm8996/apq8096171 Usage: required for apq8084 and msm8996/apq8096
149 Value type: <prop-encoded-array>172 Value type: <prop-encoded-array>
@@ -180,7 +203,7 @@ · 30 unmodified lines
180- <name>-gpios:203- <name>-gpios:
181 Usage: optional204 Usage: optional
182 Value type: <prop-encoded-array>205 Value type: <prop-encoded-array>
183 Definition: List of phandle and gpio specifier pairs. Should contain206 Definition: List of phandle and GPIO specifier pairs. Should contain
184 - "perst-gpios" PCIe endpoint reset signal line207 - "perst-gpios" PCIe endpoint reset signal line
185 - "wake-gpios" PCIe endpoint wake signal line208 - "wake-gpios" PCIe endpoint wake signal line
186 209
Documentation/devicetree/bindings/pci/ralink,rt3883-pci.txt+1−1
@@ -71,7 +71,7 @@ · 70 unmodified lines
71 - interrupt-map: standard PCI properties to define the mapping of the71 - interrupt-map: standard PCI properties to define the mapping of the
72 PCI interface to interrupt numbers.72 PCI interface to interrupt numbers.
73 73
74 The PCI host bridge node migh have additional sub-nodes representing74 The PCI host bridge node might have additional sub-nodes representing
75 the onboard PCI devices/PCI slots. Each such sub-node must have the75 the onboard PCI devices/PCI slots. Each such sub-node must have the
76 following mandatory properties:76 following mandatory properties:
77 77
Documentation/devicetree/bindings/pci/rcar-pci.txt+3−5
@@ -14,7 +14,7 @@ compatible: "renesas,pcie-r8a7779" for the R8A7779 SoC; · 13 unmodified lines
14 SoC-specific version corresponding to the platform first14 SoC-specific version corresponding to the platform first
15 followed by the generic version.15 followed by the generic version.
16 16
17- reg: base address and length of the pcie controller registers.17- reg: base address and length of the PCIe controller registers.
18- #address-cells: set to <3>18- #address-cells: set to <3>
19- #size-cells: set to <2>19- #size-cells: set to <2>
20- bus-range: PCI bus numbers covered20- bus-range: PCI bus numbers covered
@@ -25,15 +25,14 @@ compatible: "renesas,pcie-r8a7779" for the R8A7779 SoC; · 4 unmodified lines
25 source for hardware related interrupts (e.g. link speed change).25 source for hardware related interrupts (e.g. link speed change).
26- #interrupt-cells: set to <1>26- #interrupt-cells: set to <1>
27- interrupt-map-mask and interrupt-map: standard PCI properties27- interrupt-map-mask and interrupt-map: standard PCI properties
28 to define the mapping of the PCIe interface to interrupt28 to define the mapping of the PCIe interface to interrupt numbers.
29 numbers.
30- clocks: from common clock binding: clock specifiers for the PCIe controller29- clocks: from common clock binding: clock specifiers for the PCIe controller
31 and PCIe bus clocks.30 and PCIe bus clocks.
32- clock-names: from common clock binding: should be "pcie" and "pcie_bus".31- clock-names: from common clock binding: should be "pcie" and "pcie_bus".
33 32
34Example:33Example:
35 34
36SoC specific DT Entry:35SoC-specific DT Entry:
37 36
38 pcie: pcie@fe000000 {37 pcie: pcie@fe000000 {
39 compatible = "renesas,pcie-r8a7791", "renesas,pcie-rcar-gen2";38 compatible = "renesas,pcie-r8a7791", "renesas,pcie-rcar-gen2";
@@ -54,5 +53,4 @@ SoC specific DT Entry: · 14 unmodified lines
54 interrupt-map = <0 0 0 0 &gic 0 116 4>;53 interrupt-map = <0 0 0 0 &gic 0 116 4>;
55 clocks = <&mstp3_clks R8A7791_CLK_PCIE>, <&pcie_bus_clk>;54 clocks = <&mstp3_clks R8A7791_CLK_PCIE>, <&pcie_bus_clk>;
56 clock-names = "pcie", "pcie_bus";55 clock-names = "pcie", "pcie_bus";
57 status = "disabled";
58 };56 };
Documentation/devicetree/bindings/pci/rockchip-pcie.txt+25−3
@@ -19,8 +19,6 @@ Required properties: · 18 unmodified lines
19 - "pm"19 - "pm"
20- msi-map: Maps a Requester ID to an MSI controller and associated20- msi-map: Maps a Requester ID to an MSI controller and associated
21 msi-specifier data. See ./pci-msi.txt21 msi-specifier data. See ./pci-msi.txt
22- phys: From PHY bindings: Phandle for the Generic PHY for PCIe.
23- phy-names: MUST be "pcie-phy".
24- interrupts: Three interrupt entries must be specified.22- interrupts: Three interrupt entries must be specified.
25- interrupt-names: Must include the following names23- interrupt-names: Must include the following names
26 - "sys"24 - "sys"
@@ -42,11 +40,24 @@ Required properties: · 15 unmodified lines
42 interrupt source. The value must be 1.40 interrupt source. The value must be 1.
43- interrupt-map-mask and interrupt-map: standard PCI properties41- interrupt-map-mask and interrupt-map: standard PCI properties
44 42
43Required 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
47Required 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
45Optional Property:55Optional Property:
46- aspm-no-l0s: RC won't support ASPM L0s. This property is needed if56- aspm-no-l0s: RC won't support ASPM L0s. This property is needed if
47 using 24MHz OSC for RC's PHY.57 using 24MHz OSC for RC's PHY.
48- ep-gpios: contain the entry for pre-reset gpio58- ep-gpios: contain the entry for pre-reset GPIO
49- num-lanes: number of lanes to use59- num-lanes: number of lanes to use
60- vpcie12v-supply: The phandle to the 12v regulator to use for PCIe.
50- vpcie3v3-supply: The phandle to the 3.3v regulator to use for PCIe.61- vpcie3v3-supply: The phandle to the 3.3v regulator to use for PCIe.
51- vpcie1v8-supply: The phandle to the 1.8v regulator to use for PCIe.62- vpcie1v8-supply: The phandle to the 1.8v regulator to use for PCIe.
52- vpcie0v9-supply: The phandle to the 0.9v regulator to use for PCIe.63- vpcie0v9-supply: The phandle to the 0.9v regulator to use for PCIe.
@@ -95,6 +106,7 @@ pcie0: pcie@f8000000 { · 42 unmodified lines
95 <&cru SRST_PCIE_PM>, <&cru SRST_P_PCIE>, <&cru SRST_A_PCIE>;106 <&cru SRST_PCIE_PM>, <&cru SRST_P_PCIE>, <&cru SRST_A_PCIE>;
96 reset-names = "core", "mgmt", "mgmt-sticky", "pipe",107 reset-names = "core", "mgmt", "mgmt-sticky", "pipe",
97 "pm", "pclk", "aclk";108 "pm", "pclk", "aclk";
109 /* deprecated legacy PHY model */
98 phys = <&pcie_phy>;110 phys = <&pcie_phy>;
99 phy-names = "pcie-phy";111 phy-names = "pcie-phy";
100 pinctrl-names = "default";112 pinctrl-names = "default";
@@ -111,3 +123,13 @@ pcie0: pcie@f8000000 { · 10 unmodified lines
111 #interrupt-cells = <1>;123 #interrupt-cells = <1>;
112 };124 };
113};125};
126
127pcie0: 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 @@
1* Samsung Exynos 5440 PCIe interface1* Samsung Exynos 5440 PCIe interface
2 2
3This PCIe host controller is based on the Synopsis Designware PCIe IP3This PCIe host controller is based on the Synopsys DesignWare PCIe IP
4and thus inherits all the common properties defined in designware-pcie.txt.4and thus inherits all the common properties defined in designware-pcie.txt.
5 5
6Required properties:6Required properties:
7- compatible: "samsung,exynos5440-pcie"7- compatible: "samsung,exynos5440-pcie"
8- reg: base addresses and lengths of the pcie controller,8- reg: base addresses and lengths of the PCIe controller,
9 the phy controller, additional register for the phy controller.9 the PHY controller, additional register for the PHY controller.
10 (Registers for the phy controller are DEPRECATED.10 (Registers for the PHY controller are DEPRECATED.
11 Use the PHY framework.)11 Use the PHY framework.)
12- reg-names : First name should be set to "elbi".12- reg-names : First name should be set to "elbi".
13 And use the "config" instead of getting the confgiruation address space13 And use the "config" instead of getting the configuration address space
14 from "ranges".14 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.
16- interrupts: A list of interrupt outputs for level interrupt,16- interrupts: A list of interrupt outputs for level interrupt,
17 pulse interrupt, special interrupt.17 pulse interrupt, special interrupt.
18- phys: From PHY binding. Phandle for the Generic PHY.18- phys: From PHY binding. Phandle for the generic PHY.
19 Refer to Documentation/devicetree/bindings/phy/samsung-phy.txt19 Refer to Documentation/devicetree/bindings/phy/samsung-phy.txt
20 20
21Other common properties refer to21For other common properties, refer to
22 Documentation/devicetree/binding/pci/designware-pcie.txt22 Documentation/devicetree/bindings/pci/designware-pcie.txt
23 23
24Example:24Example:
25 25
26SoC specific DT Entry:26SoC-specific DT Entry:
27 27
28 pcie@290000 {28 pcie@290000 {
29 compatible = "samsung,exynos5440-pcie", "snps,dw-pcie";29 compatible = "samsung,exynos5440-pcie", "snps,dw-pcie";
@@ -83,7 +83,7 @@ With using PHY framework: · 53 unmodified lines
83 ...83 ...
84 };84 };
85 85
86Board specific DT Entry:86Board-specific DT Entry:
87 87
88 pcie@290000 {88 pcie@290000 {
89 reset-gpio = <&pin_ctrl 5 0>;89 reset-gpio = <&pin_ctrl 5 0>;
Documentation/devicetree/bindings/pci/spear13xx-pcie.txt+3−3
@@ -1,12 +1,12 @@
1SPEAr13XX PCIe DT detail:1SPEAr13XX PCIe DT detail:
2================================2================================
3 3
4SPEAr13XX uses synopsis designware PCIe controller and ST MiPHY as phy4SPEAr13XX uses the Synopsys DesignWare PCIe controller and ST MiPHY as PHY
5controller.5controller.
6 6
7Required properties:7Required properties:
8- compatible : should be "st,spear1340-pcie", "snps,dw-pcie".8- compatible : should be "st,spear1340-pcie", "snps,dw-pcie".
9- phys : phandle to phy node associated with pcie controller9- phys : phandle to PHY node associated with PCIe controller
10- phy-names : must be "pcie-phy"10- phy-names : must be "pcie-phy"
11- All other definitions as per generic PCI bindings11- All other definitions as per generic PCI bindings
12 12
Documentation/devicetree/bindings/pci/ti-pci.txt+4−4
@@ -1,6 +1,6 @@
1TI PCI Controllers1TI PCI Controllers
2 2
3PCIe Designware Controller3PCIe DesignWare Controller
4 - compatible: Should be "ti,dra7-pcie" for RC4 - compatible: Should be "ti,dra7-pcie" for RC
5 Should be "ti,dra7-pcie-ep" for EP5 Should be "ti,dra7-pcie-ep" for EP
6 - phys : list of PHY specifiers (used by generic PHY framework)6 - phys : list of PHY specifiers (used by generic PHY framework)
@@ -13,7 +13,7 @@ PCIe Designware Controller · 6 unmodified lines
13HOST MODE13HOST MODE
14=========14=========
15 - reg : Two register ranges as listed in the reg-names property15 - 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 registers16 - reg-names : The first entry must be "ti-conf" for the TI-specific registers
17 The second entry must be "rc-dbics" for the DesignWare PCIe17 The second entry must be "rc-dbics" for the DesignWare PCIe
18 registers18 registers
19 The third entry must be "config" for the PCIe configuration space19 The third entry must be "config" for the PCIe configuration space
@@ -30,7 +30,7 @@ HOST MODE · 10 unmodified lines
30DEVICE MODE30DEVICE MODE
31===========31===========
32 - reg : Four register ranges as listed in the reg-names property32 - reg : Four register ranges as listed in the reg-names property
33 - reg-names : "ti-conf" for the TI specific registers33 - reg-names : "ti-conf" for the TI-specific registers
34 "ep_dbics" for the standard configuration registers as34 "ep_dbics" for the standard configuration registers as
35 they are locally accessed within the DIF CS space35 they are locally accessed within the DIF CS space
36 "ep_dbics2" for the standard configuration registers as36 "ep_dbics2" for the standard configuration registers as
@@ -46,7 +46,7 @@ DEVICE MODE · 9 unmodified lines
46 access.46 access.
47 47
48Optional Property:48Optional Property:
49 - gpios : Should be added if a gpio line is required to drive PERST# line49 - gpios : Should be added if a GPIO line is required to drive PERST# line
50 50
51NOTE: Two DT nodes may be added for each PCI controller; one for host51NOTE: Two DT nodes may be added for each PCI controller; one for host
52mode and another for device mode. So in order for PCI to52mode 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
5Required properties:5Required properties:
6- compatible: should contain "arm,versatile-pci" to identify the Versatile PCI6- compatible: should contain "arm,versatile-pci" to identify the Versatile PCI
7 controller.7 controller.
8- reg: base addresses and lengths of the pci controller. There must be 38- reg: base addresses and lengths of the PCI controller. There must be 3
9 entries:9 entries:
10 - Versatile-specific registers10 - Versatile-specific registers
11 - Self Config space11 - Self Config space
Documentation/devicetree/bindings/pci/xgene-pci-msi.txt+3−3
@@ -4,7 +4,7 @@ Required properties: · 3 unmodified lines
4 4
5- compatible: should be "apm,xgene1-msi" to identify5- compatible: should be "apm,xgene1-msi" to identify
6 X-Gene v1 PCIe MSI controller block.6 X-Gene v1 PCIe MSI controller block.
7- msi-controller: indicates that this is X-Gene v1 PCIe MSI controller node7- msi-controller: indicates that this is an X-Gene v1 PCIe MSI controller node
8- reg: physical base address (0x79000000) and length (0x900000) for controller8- reg: physical base address (0x79000000) and length (0x900000) for controller
9 registers. These registers include the MSI termination address and data9 registers. These registers include the MSI termination address and data
10 registers as well as the MSI interrupt status registers.10 registers as well as the MSI interrupt status registers.
@@ -13,7 +13,8 @@ Required properties: · 2 unmodified lines
13 interrupt number 0x10 to 0x1f.13 interrupt number 0x10 to 0x1f.
14- interrupt-names: not required14- interrupt-names: not required
15 15
16Each PCIe node needs to have property msi-parent that points to msi controller node16Each PCIe node needs to have property msi-parent that points to an MSI
17controller node
17 18
18Examples:19Examples:
19 20
@@ -44,7 +45,6 @@ SoC DTSI: · 24 unmodified lines
44 45
45 + PCIe controller node with msi-parent property pointing to MSI node:46 + PCIe controller node with msi-parent property pointing to MSI node:
46 pcie0: pcie@1f2b0000 {47 pcie0: pcie@1f2b0000 {
47 status = "disabled";
48 device_type = "pci";48 device_type = "pci";
49 compatible = "apm,xgene-storm-pcie", "apm,xgene-pcie";49 compatible = "apm,xgene-storm-pcie", "apm,xgene-pcie";
50 #interrupt-cells = <1>;50 #interrupt-cells = <1>;
Documentation/devicetree/bindings/pci/xgene-pci.txt+4−4
@@ -8,7 +8,7 @@ Required properties: · 7 unmodified lines
8 property.8 property.
9- reg-names: Must include the following entries:9- reg-names: Must include the following entries:
10 "csr": controller configuration registers.10 "csr": controller configuration registers.
11 "cfg": pcie configuration space registers.11 "cfg": PCIe configuration space registers.
12- #address-cells: set to <3>12- #address-cells: set to <3>
13- #size-cells: set to <2>13- #size-cells: set to <2>
14- ranges: ranges for the outbound memory, I/O regions.14- ranges: ranges for the outbound memory, I/O regions.
@@ -21,11 +21,11 @@ Required properties: · 6 unmodified lines
21 21
22Optional properties:22Optional properties:
23- status: Either "ok" or "disabled".23- status: Either "ok" or "disabled".
24- dma-coherent: Present if dma operations are coherent24- dma-coherent: Present if DMA operations are coherent
25 25
26Example:26Example:
27 27
28SoC specific DT Entry:28SoC-specific DT Entry:
29 29
30 pcie0: pcie@1f2b0000 {30 pcie0: pcie@1f2b0000 {
31 status = "disabled";31 status = "disabled";
@@ -51,7 +51,7 @@ SoC specific DT Entry: · 19 unmodified lines
51 };51 };
52 52
53 53
54Board specific DT Entry:54Board-specific DT Entry:
55 &pcie0 {55 &pcie0 {
56 status = "ok";56 status = "ok";
57 };57 };
Documentation/devicetree/bindings/pci/xilinx-nwl-pcie.txt+4−3
@@ -15,9 +15,9 @@ Required properties: · 14 unmodified lines
15- device_type: must be "pci"15- device_type: must be "pci"
16- interrupts: Should contain NWL PCIe interrupt16- interrupts: Should contain NWL PCIe interrupt
17- interrupt-names: Must include the following entries:17- interrupt-names: Must include the following entries:
18 "msi1, msi0": interrupt asserted when MSI is received18 "msi1, msi0": interrupt asserted when an MSI is received
19 "intx": interrupt asserted when a legacy interrupt is received19 "intx": interrupt asserted when a legacy interrupt is received
20 "misc": interrupt asserted when miscellaneous is received20 "misc": interrupt asserted when miscellaneous interrupt is received
21- interrupt-map-mask and interrupt-map: standard PCI properties to define the21- interrupt-map-mask and interrupt-map: standard PCI properties to define the
22 mapping of the PCI interface to interrupt numbers.22 mapping of the PCI interface to interrupt numbers.
23- ranges: ranges for the PCI memory regions (I/O space region is not23- ranges: ranges for the PCI memory regions (I/O space region is not
@@ -26,7 +26,8 @@ Required properties: · 2 unmodified lines
26 detailed explanation26 detailed explanation
27- msi-controller: indicates that this is MSI controller node27- msi-controller: indicates that this is MSI controller node
28- msi-parent: MSI parent of the root complex itself28- msi-parent: MSI parent of the root complex itself
29- legacy-interrupt-controller: Interrupt controller device node for Legacy interrupts29- legacy-interrupt-controller: Interrupt controller device node for Legacy
30 interrupts
30 - interrupt-controller: identifies the node as an interrupt controller31 - interrupt-controller: identifies the node as an interrupt controller
31 - #interrupt-cells: should be set to 132 - #interrupt-cells: should be set to 1
32 - #address-cells: specifies the number of cells needed to encode an33 - #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
61 compatible = "apm,xgene-phy";61 compatible = "apm,xgene-phy";
62 reg = <0x0 0x1f21a000 0x0 0x100>;62 reg = <0x0 0x1f21a000 0x0 0x100>;
63 #phy-cells = <1>;63 #phy-cells = <1>;
64 status = "disabled";
65 };64 };
66 65
67 phy2: phy@1f22a000 {66 phy2: phy@1f22a000 {
68 compatible = "apm,xgene-phy";67 compatible = "apm,xgene-phy";
69 reg = <0x0 0x1f22a000 0x0 0x100>;68 reg = <0x0 0x1f22a000 0x0 0x100>;
70 #phy-cells = <1>;69 #phy-cells = <1>;
71 status = "ok";
72 };70 };
73 71
74 phy3: phy@1f23a000 {72 phy3: phy@1f23a000 {
75 compatible = "apm,xgene-phy";73 compatible = "apm,xgene-phy";
76 reg = <0x0 0x1f23a000 0x0 0x100>;74 reg = <0x0 0x1f23a000 0x0 0x100>;
77 #phy-cells = <1>;75 #phy-cells = <1>;
78 status = "ok";
79 };76 };
Documentation/devicetree/bindings/phy/keystone-usb-phy.txt+0−1
@@ -16,5 +16,4 @@ usb_phy: usb_phy@2620738 { · 15 unmodified lines
16 #address-cells = <1>;16 #address-cells = <1>;
17 #size-cells = <1>;17 #size-cells = <1>;
18 reg = <0x2620738 32>;18 reg = <0x2620738 32>;
19 status = "disabled";
20};19};
Documentation/devicetree/bindings/phy/phy-bindings.txt+3−1
@@ -34,7 +34,9 @@ PHY user node · 33 unmodified lines
34=============34=============
35 35
36Required Properties:36Required Properties:
37phys : the phandle for the PHY device (used by the PHY subsystem)37phys : 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)
38phy-names : the names of the PHY corresponding to the PHYs present in the40phy-names : the names of the PHY corresponding to the PHYs present in the
39 *phys* phandle41 *phys* phandle
40 42
Documentation/devicetree/bindings/phy/phy-lantiq-rcu-usb2.txt+40−0
@@ -0,0 +1,40 @@
1Lantiq XWAY SoC RCU USB 1.1/2.0 PHY binding
2===========================================
3
4This binding describes the USB PHY hardware provided by the RCU module on the
5Lantiq XWAY SoCs.
6
7This node has to be a sub node of the Lantiq RCU block.
8
9-------------------------------------------------------------------------------
10Required 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-------------------------------------------------------------------------------
30Example 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 @@
1mt65xx USB3.0 PHY binding1MediaTek T-PHY binding
2--------------------------2--------------------------
3 3
4This binding describes a usb3.0 phy for mt65xx platforms of Medaitek SoC.4T-phy controller supports physical layer functionality for a number of
5controllers on MediaTek SoCs, such as, USB2.0, USB3.0, PCIe, and SATA.
5 6
6Required properties (controller (parent) node):7Required properties (controller (parent) node):
7 - compatible : should be one of8 - compatible : should be one of
8 "mediatek,mt2701-u3phy"9 "mediatek,generic-tphy-v1"
9 "mediatek,mt2712-u3phy"10 "mediatek,generic-tphy-v2"
10 "mediatek,mt8173-u3phy"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.
11 - clocks : (deprecated, use port's clocks instead) a list of phandle +16 - clocks : (deprecated, use port's clocks instead) a list of phandle +
12 clock-specifier pairs, one for each entry in clock-names17 clock-specifier pairs, one for each entry in clock-names
13 - clock-names : (deprecated, use port's one instead) must contain18 - clock-names : (deprecated, use port's one instead) must contain
@@ -35,6 +40,8 @@ Required properties (port (child) node): · 21 unmodified lines
35 cell after port phandle is phy type from:40 cell after port phandle is phy type from:
36 - PHY_TYPE_USB241 - PHY_TYPE_USB2
37 - PHY_TYPE_USB342 - PHY_TYPE_USB3
43 - PHY_TYPE_PCIE
44 - PHY_TYPE_SATA
38 45
39Example:46Example:
40 47
@@ -44,14 +51,12 @@ u3phy: usb-phy@11290000 { · 3 unmodified lines
44 #address-cells = <2>;51 #address-cells = <2>;
45 #size-cells = <2>;52 #size-cells = <2>;
46 ranges;53 ranges;
47 status = "okay";
48 54
49 u2port0: usb-phy@11290800 {55 u2port0: usb-phy@11290800 {
50 reg = <0 0x11290800 0 0x100>;56 reg = <0 0x11290800 0 0x100>;
51 clocks = <&apmixedsys CLK_APMIXED_REF2USB_TX>;57 clocks = <&apmixedsys CLK_APMIXED_REF2USB_TX>;
52 clock-names = "ref";58 clock-names = "ref";
53 #phy-cells = <1>;59 #phy-cells = <1>;
54 status = "okay";
55 };60 };
56 61
57 u3port0: usb-phy@11290900 {62 u3port0: usb-phy@11290900 {
@@ -59,7 +64,6 @@ u3phy: usb-phy@11290000 { · 1 unmodified line
59 clocks = <&clk26m>;64 clocks = <&clk26m>;
60 clock-names = "ref";65 clock-names = "ref";
61 #phy-cells = <1>;66 #phy-cells = <1>;
62 status = "okay";
63 };67 };
64 68
65 u2port1: usb-phy@11291000 {69 u2port1: usb-phy@11291000 {
@@ -67,7 +71,6 @@ u3phy: usb-phy@11290000 { · 1 unmodified line
67 clocks = <&apmixedsys CLK_APMIXED_REF2USB_TX>;71 clocks = <&apmixedsys CLK_APMIXED_REF2USB_TX>;
68 clock-names = "ref";72 clock-names = "ref";
69 #phy-cells = <1>;73 #phy-cells = <1>;
70 status = "okay";
71 };74 };
72};75};
73 76
Documentation/devicetree/bindings/phy/phy-mvebu-comphy.txt+43−0
@@ -0,0 +1,43 @@
1mvebu comphy driver
2-------------------
3
4A comphy controller can be found on Marvell Armada 7k/8k on the CP110. It
5provides a number of shared PHYs used by various interfaces (network, sata,
6usb, PCIe...).
7
8Required 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
17A sub-node is required for each comphy lane provided by the comphy.
18
19Required 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
25Example:
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
18 clocks = <&gate_clk 15>;18 clocks = <&gate_clk 15>;
19 clock-names = "sata";19 clock-names = "sata";
20 #phy-cells = <0>;20 #phy-cells = <0>;
21 status = "ok";
22 };21 };
23 22
24Armada 375 USB cluster23Armada 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
6 * "rockchip,rk3328-usb2phy"6 * "rockchip,rk3328-usb2phy"
7 * "rockchip,rk3366-usb2phy"7 * "rockchip,rk3366-usb2phy"
8 * "rockchip,rk3399-usb2phy"8 * "rockchip,rk3399-usb2phy"
9 * "rockchip,rv1108-usb2phy"
9 - reg : the address offset of grf for usb-phy configuration.10 - reg : the address offset of grf for usb-phy configuration.
10 - #clock-cells : should be 0.11 - #clock-cells : should be 0.
11 - clock-output-names : specify the 480m output clock name.12 - clock-output-names : specify the 480m output clock name.
@@ -18,6 +19,10 @@ Optional properties: · 6 unmodified lines
18 usb-phy output 480m and xin24m.19 usb-phy output 480m and xin24m.
19 Refer to clk/clock-bindings.txt for generic clock20 Refer to clk/clock-bindings.txt for generic clock
20 consumer properties.21 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).
21 26
22Required nodes : a sub-node is required for each port the phy provides.27Required nodes : a sub-node is required for each port the phy provides.
23 The sub-node name is used to identify host or otg port,28 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
28Required properties (port (child) node):33Required properties (port (child) node):
29 - #phy-cells : must be 0. See ./phy-bindings.txt for details.34 - #phy-cells : must be 0. See ./phy-bindings.txt for details.
30 - interrupts : specify an interrupt for each entry in interrupt-names.35 - 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:
32 * "otg-id" : for the otg id interrupt.38 * "otg-id" : for the otg id interrupt.
33 * "otg-bvalid" : for the otg vbus interrupt.39 * "otg-bvalid" : for the otg vbus interrupt.
34 * "linestate" : for the host/otg linestate interrupt.40 * "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.
35 44
36Optional properties:45Optional properties:
37 - phy-supply : phandle to a regulator that provides power to VBUS.46 - phy-supply : phandle to a regulator that provides power to VBUS.
@@ -58,14 +67,12 @@ grf: syscon@ff770000 { · 20 unmodified lines
58 <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>,67 <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>,
59 <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;68 <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
60 interrupt-names = "otg-id", "otg-bvalid", "linestate";69 interrupt-names = "otg-id", "otg-bvalid", "linestate";
61 status = "okay";
62 };70 };
63 71
64 u2phy_host: host-port {72 u2phy_host: host-port {
65 #phy-cells = <0>;73 #phy-cells = <0>;
66 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;74 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
67 interrupt-names = "linestate";75 interrupt-names = "linestate";
68 status = "okay";
69 };76 };
70 };77 };
71};78};
Documentation/devicetree/bindings/phy/qcom-dwc3-usb-phy.txt+0−2
@@ -25,7 +25,6 @@ Example: · 24 unmodified lines
25 clock-names = "ref";25 clock-names = "ref";
26 #phy-cells = <0>;26 #phy-cells = <0>;
27 27
28 status = "ok";
29 };28 };
30 29
31 phy@100f8830 {30 phy@100f8830 {
@@ -35,5 +34,4 @@ Example: · 3 unmodified lines
35 clock-names = "ref";34 clock-names = "ref";
36 #phy-cells = <0>;35 #phy-cells = <0>;
37 36
38 status = "ok";
39 };37 };
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
6 6
7Required properties:7Required properties:
8 - compatible: compatible list, contains:8 - compatible: compatible list, contains:
9 "qcom,ipq8074-qmp-pcie-phy" for PCIe phy on IPQ8074
9 "qcom,msm8996-qmp-pcie-phy" for 14nm PCIe phy on msm8996,10 "qcom,msm8996-qmp-pcie-phy" for 14nm PCIe phy on msm8996,
10 "qcom,msm8996-qmp-usb3-phy" for 14nm USB3 phy on msm8996.11 "qcom,msm8996-qmp-usb3-phy" for 14nm USB3 phy on msm8996.
11 12
@@ -38,6 +39,8 @@ Required properties: · 26 unmodified lines
38 "phy", "common", "cfg".39 "phy", "common", "cfg".
39 For "qcom,msm8996-qmp-usb3-phy" must contain40 For "qcom,msm8996-qmp-usb3-phy" must contain
40 "phy", "common".41 "phy", "common".
42 For "qcom,ipq8074-qmp-pcie-phy" must contain:
43 "phy", "common".
41 44
42 - vdda-phy-supply: Phandle to a regulator supply to PHY core block.45 - vdda-phy-supply: Phandle to a regulator supply to PHY core block.
43 - vdda-pll-supply: Phandle to 1.8V regulator supply to PHY refclk pll block.46 - 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
60 one for each entry in clock-names.63 one for each entry in clock-names.
61 - clock-names: Must contain following for pcie and usb qmp phys:64 - clock-names: Must contain following for pcie and usb qmp phys:
62 "pipe<lane-number>" for pipe clock specific to each lane.65 "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"
63 73
64 - resets: a list of phandles and reset controller specifier pairs,74 - resets: a list of phandles and reset controller specifier pairs,
65 one for each entry in reset-names.75 one for each entry in reset-names.
@@ -96,6 +106,7 @@ Example: · 30 unmodified lines
96 106
97 clocks = <&gcc GCC_PCIE_0_PIPE_CLK>;107 clocks = <&gcc GCC_PCIE_0_PIPE_CLK>;
98 clock-names = "pipe0";108 clock-names = "pipe0";
109 clock-output-names = "pcie_0_pipe_clk_src";
99 resets = <&gcc GCC_PCIE_0_PHY_BCR>;110 resets = <&gcc GCC_PCIE_0_PHY_BCR>;
100 reset-names = "lane0";111 reset-names = "lane0";
101 };112 };
Documentation/devicetree/bindings/phy/ralink-usb-phy.txt+23−0
@@ -0,0 +1,23 @@
1Mediatek/Ralink USB PHY
2
3Required 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
13Example:
14
15usbphy: 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
3 3
4Required properties:4Required properties:
5 - compatible: rockchip,rk3399-pcie-phy5 - compatible: rockchip,rk3399-pcie-phy
6 - #phy-cells: must be 0
7 - clocks: Must contain an entry in clock-names.6 - clocks: Must contain an entry in clock-names.
8 See ../clocks/clock-bindings.txt for details.7 See ../clocks/clock-bindings.txt for details.
9 - clock-names: Must be "refclk"8 - clock-names: Must be "refclk"
@@ -11,6 +10,12 @@ Required properties: · 1 unmodified line
11 See ../reset/reset.txt for details.10 See ../reset/reset.txt for details.
12 - reset-names: Must be "phy"11 - reset-names: Must be "phy"
13 12
13Required properties for legacy PHY mode (deprecated):
14 - #phy-cells: must be 0
15
16Required properties for per-lane PHY mode (preferred):
17 - #phy-cells: must be 1
18
14Example:19Example:
15 20
16grf: syscon@ff770000 {21grf: syscon@ff770000 {
Documentation/devicetree/bindings/phy/samsung-phy.txt+0−1
@@ -82,7 +82,6 @@ usbphy: phy@125b0000 { · 81 unmodified lines
82 reg = <0x125b0000 0x100>;82 reg = <0x125b0000 0x100>;
83 clocks = <&clock 305>, <&clock 2>;83 clocks = <&clock 305>, <&clock 2>;
84 clock-names = "phy", "ref";84 clock-names = "phy", "ref";
85 status = "okay";
86 #phy-cells = <1>;85 #phy-cells = <1>;
87 samsung,sysreg-phandle = <&sys_reg>;86 samsung,sysreg-phandle = <&sys_reg>;
88 samsung,pmureg-phandle = <&pmu_reg>;87 samsung,pmureg-phandle = <&pmu_reg>;
Documentation/devicetree/bindings/phy/sun4i-usb-phy.txt+8−2
@@ -9,6 +9,7 @@ Required properties: · 8 unmodified lines
9 * allwinner,sun7i-a20-usb-phy9 * allwinner,sun7i-a20-usb-phy
10 * allwinner,sun8i-a23-usb-phy10 * allwinner,sun8i-a23-usb-phy
11 * allwinner,sun8i-a33-usb-phy11 * allwinner,sun8i-a33-usb-phy
12 * allwinner,sun8i-a83t-usb-phy
12 * allwinner,sun8i-h3-usb-phy13 * allwinner,sun8i-h3-usb-phy
13 * allwinner,sun8i-v3s-usb-phy14 * allwinner,sun8i-v3s-usb-phy
14 * allwinner,sun50i-a64-usb-phy15 * allwinner,sun50i-a64-usb-phy
@@ -17,18 +18,22 @@ Required properties: · 2 unmodified lines
17 * "phy_ctrl"18 * "phy_ctrl"
18 * "pmu0" for H3, V3s and A6419 * "pmu0" for H3, V3s and A64
19 * "pmu1"20 * "pmu1"
20 * "pmu2" for sun4i, sun6i or sun7i21 * "pmu2" for sun4i, sun6i, sun7i, sun8i-a83t or sun8i-h3
22 * "pmu3" for sun8i-h3
21- #phy-cells : from the generic phy bindings, must be 123- #phy-cells : from the generic phy bindings, must be 1
22- clocks : phandle + clock specifier for the phy clocks24- clocks : phandle + clock specifier for the phy clocks
23- clock-names :25- clock-names :
24 * "usb_phy" for sun4i, sun5i or sun7i26 * "usb_phy" for sun4i, sun5i or sun7i
25 * "usb0_phy", "usb1_phy" and "usb2_phy" for sun6i27 * "usb0_phy", "usb1_phy" and "usb2_phy" for sun6i
26 * "usb0_phy", "usb1_phy" for sun8i28 * "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
27- resets : a list of phandle + reset specifier pairs31- resets : a list of phandle + reset specifier pairs
28- reset-names :32- reset-names :
29 * "usb0_reset"33 * "usb0_reset"
30 * "usb1_reset"34 * "usb1_reset"
31 * "usb2_reset" for sun4i, sun6i or sun7i35 * "usb2_reset" for sun4i, sun6i, sun7i, sun8i-a83t or sun8i-h3
36 * "usb3_reset" for sun8i-h3
32 37
33Optional properties:38Optional properties:
34- usb0_id_det-gpios : gpio phandle for reading the otg id pin value39- usb0_id_det-gpios : gpio phandle for reading the otg id pin value
@@ -37,6 +42,7 @@ Optional properties: · 2 unmodified lines
37- usb0_vbus-supply : regulator phandle for controller usb0 vbus42- usb0_vbus-supply : regulator phandle for controller usb0 vbus
38- usb1_vbus-supply : regulator phandle for controller usb1 vbus43- usb1_vbus-supply : regulator phandle for controller usb1 vbus
39- usb2_vbus-supply : regulator phandle for controller usb2 vbus44- usb2_vbus-supply : regulator phandle for controller usb2 vbus
45- usb3_vbus-supply : regulator phandle for controller usb3 vbus
40 46
41Example:47Example:
42 usbphy: phy@0x01c13400 {48 usbphy: phy@0x01c13400 {
Documentation/devicetree/bindings/phy/sun9i-usb-phy.txt+0−1
@@ -33,6 +33,5 @@ Example: · 32 unmodified lines
33 clock-names = "hsic_480M", "hsic_12M", "phy";33 clock-names = "hsic_480M", "hsic_12M", "phy";
34 resets = <&usb_phy_clk 18>, <&usb_phy_clk 19>;34 resets = <&usb_phy_clk 18>, <&usb_phy_clk 19>;
35 reset-names = "hsic", "phy";35 reset-names = "hsic", "phy";
36 status = "disabled";
37 #phy-cells = <0>;36 #phy-cells = <0>;
38 };37 };
Documentation/devicetree/bindings/pinctrl/atmel,at91-pinctrl.txt+0−1
@@ -148,5 +148,4 @@ dbgu: serial@fffff200 { · 147 unmodified lines
148 interrupts = <1 4 7>;148 interrupts = <1 4 7>;
149 pinctrl-names = "default";149 pinctrl-names = "default";
150 pinctrl-0 = <&pinctrl_dbgu>;150 pinctrl-0 = <&pinctrl_dbgu>;
151 status = "disabled";
152};151};
Documentation/devicetree/bindings/pinctrl/cortina,gemini-pinctrl.txt+59−0
@@ -0,0 +1,59 @@
1Cortina Systems Gemini pin controller
2
3This pin controller is found in the Cortina Systems Gemini SoC family,
4see further arm/gemini.txt. It is a purely group-based multiplexing pin
5controller.
6
7The pin controller node must be a subnode of the system controller node.
8
9Required properties:
10- compatible: "cortina,gemini-pinctrl"
11
12Subnodes of the pin controller contain pin control multiplexing set-up.
13Please refer to pinctrl-bindings.txt for generic pin multiplexing nodes.
14
15Example:
16
17
18syscon {
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
61usdhc@0219c000 { /* uSDHC4 */61usdhc@0219c000 { /* uSDHC4 */
62 non-removable;62 non-removable;
63 vmmc-supply = <&reg_3p3v>;63 vmmc-supply = <&reg_3p3v>;
64 status = "okay";
65 pinctrl-names = "default";64 pinctrl-names = "default";
66 pinctrl-0 = <&pinctrl_usdhc4_1>;65 pinctrl-0 = <&pinctrl_usdhc4_1>;
67};66};
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
61i2c1: i2c@30a20000 {61i2c1: i2c@30a20000 {
62 pinctrl-names = "default";62 pinctrl-names = "default";
63 pinctrl-0 = <&pinctrl_i2c1_1 &pinctrl_i2c1_2>;63 pinctrl-0 = <&pinctrl_i2c1_1 &pinctrl_i2c1_2>;
64 status = "okay";
65};64};
66 65
67iomuxc-lpsr@302c0000 {66iomuxc-lpsr@302c0000 {
Documentation/devicetree/bindings/pinctrl/fsl,imx7ulp-pinctrl.txt+61−0
@@ -0,0 +1,61 @@
1* Freescale i.MX7ULP IOMUX Controller
2
3i.MX 7ULP has three IOMUXC instances: IOMUXC0 for M4 ports, IOMUXC1 for A7
4ports and IOMUXC DDR for DDR interface.
5
6Note:
7This binding doc is only for the IOMUXC1 support in A7 Domain and it only
8supports generic pin config.
9
10Please also refer pinctrl-bindings.txt in this directory for generic pinctrl
11binding.
12
13=== Pin Controller Node ===
14
15Required 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
32Optional 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
45Examples:
46#include "imx7ulp-pinfunc.h"
47
48/* Pin Controller Node */
49iomuxc1: 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
56 pinctrl-0 = <&state_dpaux_i2c>;56 pinctrl-0 = <&state_dpaux_i2c>;
57 pinctrl-1 = <&state_dpaux_off>;57 pinctrl-1 = <&state_dpaux_off>;
58 pinctrl-names = "default", "idle";58 pinctrl-names = "default", "idle";
59 status = "disabled";
60 };59 };
Documentation/devicetree/bindings/pinctrl/oxnas,pinctrl.txt+0−1
@@ -50,7 +50,6 @@ uart2: serial@900000 { · 49 unmodified lines
50 reg-io-width = <1>;50 reg-io-width = <1>;
51 current-speed = <115200>;51 current-speed = <115200>;
52 no-loopback-test;52 no-loopback-test;
53 status = "disabled";
54 resets = <&reset 22>;53 resets = <&reset 22>;
55 pinctrl-names = "default";54 pinctrl-names = "default";
56 pinctrl-0 = <&pinctrl_uart2>;55 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
69ROMCS2 ROMCS3 ROMCS4 RXD1 RXD2 RXD3 RXD4 SALT1 SALT2 SALT3 SALT4 SD1 SD2 SGPMCK69ROMCS2 ROMCS3 ROMCS4 RXD1 RXD2 RXD3 RXD4 SALT1 SALT2 SALT3 SALT4 SD1 SD2 SGPMCK
70SGPMI SGPMLD SGPMO SGPSCK SGPSI0 SGPSI1 SGPSLD SIOONCTRL SIOPBI SIOPBO SIOPWREQ70SGPMI SGPMLD SGPMO SGPSCK SGPSI0 SGPSI1 SGPSLD SIOONCTRL SIOPBI SIOPBO SIOPWREQ
71SIOPWRGD SIOS3 SIOS5 SIOSCI SPI1 SPI1DEBUG SPI1PASSTHRU SPICS1 TIMER3 TIMER471SIOPWRGD SIOS3 SIOS5 SIOSCI SPI1 SPI1DEBUG SPI1PASSTHRU SPICS1 TIMER3 TIMER4
72TIMER5 TIMER6 TIMER7 TIMER8 TXD1 TXD2 TXD3 TXD4 UART6 USBCKI VGABIOS_ROM VGAHS72TIMER5 TIMER6 TIMER7 TIMER8 TXD1 TXD2 TXD3 TXD4 UART6 USB11D1 USB11H2 USB2D1
73VGAVS VPI18 VPI24 VPI30 VPO12 VPO24 WDTRST1 WDTRST273USB2H1 USBCKI VGABIOS_ROM VGAHS VGAVS VPI18 VPI24 VPI30 VPO12 VPO24 WDTRST1
74WDTRST2
74 75
75aspeed,ast2500-pinctrl, aspeed,g5-pinctrl:76aspeed,ast2500-pinctrl, aspeed,g5-pinctrl:
76 77
@@ -86,7 +87,8 @@ SALT11 SALT12 SALT13 SALT14 SALT2 SALT3 SALT4 SALT5 SALT6 SALT7 SALT8 SALT9 · 9 unmodified lines
86SCL1 SCL2 SD1 SD2 SDA1 SDA2 SGPS1 SGPS2 SIOONCTRL SIOPBI SIOPBO SIOPWREQ87SCL1 SCL2 SD1 SD2 SDA1 SDA2 SGPS1 SGPS2 SIOONCTRL SIOPBI SIOPBO SIOPWREQ
87SIOPWRGD SIOS3 SIOS5 SIOSCI SPI1 SPI1CS1 SPI1DEBUG SPI1PASSTHRU SPI2CK SPI2CS088SIOPWRGD SIOS3 SIOS5 SIOSCI SPI1 SPI1CS1 SPI1DEBUG SPI1PASSTHRU SPI2CK SPI2CS0
88SPI2CS1 SPI2MISO SPI2MOSI TIMER3 TIMER4 TIMER5 TIMER6 TIMER7 TIMER8 TXD1 TXD289SPI2CS1 SPI2MISO SPI2MOSI TIMER3 TIMER4 TIMER5 TIMER6 TIMER7 TIMER8 TXD1 TXD2
89TXD3 TXD4 UART6 USBCKI VGABIOSROM VGAHS VGAVS VPI24 VPO WDTRST1 WDTRST290TXD3 TXD4 UART6 USB11BHID USB2AD USB2AH USB2BD USB2BH USBCKI VGABIOSROM VGAHS
91VGAVS VPI24 VPO WDTRST1 WDTRST2
90 92
91Examples93Examples
92========94========
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
268 (such as enabling an output buffer)268 (such as enabling an output buffer)
269output-low - set the pin to output mode with low level269output-low - set the pin to output mode with low level
270output-high - set the pin to output mode with high level270output-high - set the pin to output mode with high level
271sleep-hardware-state - indicate this is sleep related state which will be programmed
272 into the registers for the sleep state.
271slew-rate - set the slew rate273slew-rate - set the slew rate
272 274
273For example:275For 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
5Required properties:5Required properties:
6- compatible: value should be one of the following.6- compatible: value should be one of the following.
7 "mediatek,mt2701-pinctrl", compatible with mt2701 pinctrl.7 "mediatek,mt2701-pinctrl", compatible with mt2701 pinctrl.
8 "mediatek,mt2712-pinctrl", compatible with mt2712 pinctrl.
8 "mediatek,mt6397-pinctrl", compatible with mt6397 pinctrl.9 "mediatek,mt6397-pinctrl", compatible with mt6397 pinctrl.
9 "mediatek,mt7623-pinctrl", compatible with mt7623 pinctrl.10 "mediatek,mt7623-pinctrl", compatible with mt7623 pinctrl.
10 "mediatek,mt8127-pinctrl", compatible with mt8127 pinctrl.11 "mediatek,mt8127-pinctrl", compatible with mt8127 pinctrl.
Documentation/devicetree/bindings/pinctrl/pinctrl-rk805.txt+63−0
@@ -0,0 +1,63 @@
1Pincontrol driver for RK805 Power management IC.
2
3RK805 has 2 pins which can be configured as GPIO output only.
4
5Please refer file <devicetree/bindings/pinctrl/pinctrl-bindings.txt>
6for details of the common pinctrl bindings used by client devices,
7including the meaning of the phrase "pin configuration node".
8
9Optional Pinmux properties:
10--------------------------
11Following properties are required if default setting of pins are required
12at 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
17The pin configurations are defined as child of the pinctrl states node. Each
18sub-node have following properties:
19
20Required 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
29First 2 properties must be added in the RK805 PMIC node, documented in
30Documentation/devicetree/bindings/mfd/rk808.txt
31
32Optional properties:
33-------------------
34Following are optional properties defined as pinmux DT binding document
35<pinctrl-bindings.txt>. Absence of properties will leave the configuration
36on default.
37 function,
38 output-low,
39 output-high.
40
41Valid values for function properties are: gpio.
42
43Theres is also not customised properties for any GPIO.
44
45Example:
46--------
47rk805: 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
81&vga {81&vga {
82 pinctrl-names = "default";82 pinctrl-names = "default";
83 pinctrl-0 = <&vga_pins>;83 pinctrl-0 = <&vga_pins>;
84 status = "okay";
85};84};
Documentation/devicetree/bindings/pinctrl/qcom,apq8064-pinctrl.txt+2−1
@@ -46,7 +46,8 @@ Valid values for pins are: · 45 unmodified lines
46 gpio0-gpio8946 gpio0-gpio89
47 47
48Valid values for function are:48Valid 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,
50 gsbi4_cam_i2c, gsbi5, gsbi5_spi_cs1, gsbi5_spi_cs2, gsbi5_spi_cs3, gsbi6,51 gsbi4_cam_i2c, gsbi5, gsbi5_spi_cs1, gsbi5_spi_cs2, gsbi5_spi_cs3, gsbi6,
51 gsbi6_spi_cs1, gsbi6_spi_cs2, gsbi6_spi_cs3, gsbi7, gsbi7_spi_cs1,52 gsbi6_spi_cs1, gsbi6_spi_cs2, gsbi6_spi_cs3, gsbi7, gsbi7_spi_cs1,
52 gsbi7_spi_cs2, gsbi7_spi_cs3, gsbi_cam_i2c, hdmi, mi2s, riva_bt, riva_fm,53 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
50 Supports mux, bias and drive-strength50 Supports mux, bias and drive-strength
51 51
52Valid values for qcom,function are:52Valid values for qcom,function are:
53gpio, blsp_uart1, blsp_i2c0, blsp_i2c1, blsp_uart0, blsp_spi1, blsp_spi053aud_pin, audio_pwm, blsp_i2c0, blsp_i2c1, blsp_spi0, blsp_spi1, blsp_uart0,
54blsp_uart1, chip_rst, gpio, i2s_rx, i2s_spdif_in, i2s_spdif_out, i2s_td, i2s_tx,
55jtag, led0, led1, led2, led3, led4, led5, led6, led7, led8, led9, led10, led11,
56mdc, mdio, pcie, pmu, prng_rosc, qpic, rgmii, rmii, sdio, smart0, smart1,
57smart2, smart3, tm, wifi0, wifi1
54 58
55Example:59Example:
56 60
Documentation/devicetree/bindings/pinctrl/qcom,pmic-gpio.txt+25−1
@@ -16,6 +16,7 @@ PMIC's from Qualcomm. · 15 unmodified lines
16 "qcom,pm8941-gpio"16 "qcom,pm8941-gpio"
17 "qcom,pm8994-gpio"17 "qcom,pm8994-gpio"
18 "qcom,pma8084-gpio"18 "qcom,pma8084-gpio"
19 "qcom,pmi8994-gpio"
19 20
20 And must contain either "qcom,spmi-gpio" or "qcom,ssbi-gpio"21 And must contain either "qcom,spmi-gpio" or "qcom,ssbi-gpio"
21 if the device is on an spmi bus or an ssbi bus respectively22 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
85 gpio1-gpio36 for pm894186 gpio1-gpio36 for pm8941
86 gpio1-gpio22 for pm899487 gpio1-gpio22 for pm8994
87 gpio1-gpio22 for pma808488 gpio1-gpio22 for pma8084
89 gpio1-gpio10 for pmi8994
88 90
89- function:91- function:
90 Usage: required92 Usage: required
@@ -98,7 +100,10 @@ to specify in a pin configuration subnode: · 7 unmodified lines
98 "dtest1",100 "dtest1",
99 "dtest2",101 "dtest2",
100 "dtest3",102 "dtest3",
101 "dtest4"103 "dtest4",
104 And following values are supported by LV/MV GPIO subtypes:
105 "func3",
106 "func4"
102 107
103- bias-disable:108- bias-disable:
104 Usage: optional109 Usage: optional
@@ -183,6 +188,25 @@ to specify in a pin configuration subnode: · 78 unmodified lines
183 Value type: <none>188 Value type: <none>
184 Definition: The specified pins are configured in open-source mode.189 Definition: The specified pins are configured in open-source mode.
185 190
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
186Example:210Example:
187 211
188 pm8921_gpio: gpio@150 {212 pm8921_gpio: gpio@150 {
Documentation/devicetree/bindings/pinctrl/renesas,pfc-pinctrl.txt+2−2
@@ -24,6 +24,7 @@ Required Properties: · 23 unmodified lines
24 - "renesas,pfc-r8a7794": for R8A7794 (R-Car E2) compatible pin-controller.24 - "renesas,pfc-r8a7794": for R8A7794 (R-Car E2) compatible pin-controller.
25 - "renesas,pfc-r8a7795": for R8A7795 (R-Car H3) compatible pin-controller.25 - "renesas,pfc-r8a7795": for R8A7795 (R-Car H3) compatible pin-controller.
26 - "renesas,pfc-r8a7796": for R8A7796 (R-Car M3-W) compatible pin-controller.26 - "renesas,pfc-r8a7796": for R8A7796 (R-Car M3-W) compatible pin-controller.
27 - "renesas,pfc-r8a77995": for R8A77995 (R-Car D3) compatible pin-controller.
27 - "renesas,pfc-sh73a0": for SH73A0 (SH-Mobile AG5) compatible pin-controller.28 - "renesas,pfc-sh73a0": for SH73A0 (SH-Mobile AG5) compatible pin-controller.
28 29
29 - reg: Base address and length of each memory resource used by the pin30 - reg: Base address and length of each memory resource used by the pin
@@ -111,7 +112,7 @@ Examples · 81 unmodified lines
111 112
112Example 1: SH73A0 (SH-Mobile AG5) pin controller node113Example 1: SH73A0 (SH-Mobile AG5) pin controller node
113 114
114 pfc: pfc@e6050000 {115 pfc: pin-controller@e6050000 {
115 compatible = "renesas,pfc-sh73a0";116 compatible = "renesas,pfc-sh73a0";
116 reg = <0xe6050000 0x8000>,117 reg = <0xe6050000 0x8000>,
117 <0xe605801c 0x1c>;118 <0xe605801c 0x1c>;
@@ -172,5 +173,4 @@ Example 4: KZM-A9-GT (SH-Mobile AG5) default pin state for the MMCIF device · 54 unmodified lines
172 173
173 bus-width = <8>;174 bus-width = <8>;
174 vmmc-supply = <&reg_1p8v>;175 vmmc-supply = <&reg_1p8v>;
175 status = "okay";
176 };176 };
Documentation/devicetree/bindings/pinctrl/rockchip,pinctrl.txt+1−1
@@ -24,6 +24,7 @@ Required properties for iomux controller: · 23 unmodified lines
24 "rockchip,rk2928-pinctrl": for Rockchip RK292824 "rockchip,rk2928-pinctrl": for Rockchip RK2928
25 "rockchip,rk3066a-pinctrl": for Rockchip RK3066a25 "rockchip,rk3066a-pinctrl": for Rockchip RK3066a
26 "rockchip,rk3066b-pinctrl": for Rockchip RK3066b26 "rockchip,rk3066b-pinctrl": for Rockchip RK3066b
27 "rockchip,rk3128-pinctrl": for Rockchip RK3128
27 "rockchip,rk3188-pinctrl": for Rockchip RK318828 "rockchip,rk3188-pinctrl": for Rockchip RK3188
28 "rockchip,rk3228-pinctrl": for Rockchip RK322829 "rockchip,rk3228-pinctrl": for Rockchip RK3228
29 "rockchip,rk3288-pinctrl": for Rockchip RK328830 "rockchip,rk3288-pinctrl": for Rockchip RK3288
@@ -120,7 +121,6 @@ uart2: serial@20064000 { · 90 unmodified lines
120 reg-shift = <2>;121 reg-shift = <2>;
121 reg-io-width = <1>;122 reg-io-width = <1>;
122 clocks = <&mux_uart2>;123 clocks = <&mux_uart2>;
123 status = "okay";
124 124
125 pinctrl-names = "default";125 pinctrl-names = "default";
126 pinctrl-0 = <&uart2_xfer>;126 pinctrl-0 = <&uart2_xfer>;
Documentation/devicetree/bindings/pinctrl/sprd,pinctrl.txt+83−0
@@ -0,0 +1,83 @@
1* Spreadtrum Pin Controller
2
3The Spreadtrum pin controller are organized in 3 blocks (types).
4
5The first block comprises some global control registers, and each
6register contains several bit fields with one bit or several bits
7to configure for some global common configuration, such as domain
8pad driving level, system control select and so on ("domain pad
9driving level": One pin can output 3.0v or 1.8v, depending on the
10related domain pad driving selection, if the related domain pad
11slect 3.0v, then the pin can output 3.0v. "system control" is used
12to choose one function (like: UART0) for which system, since we
13have several systems (AP/CP/CM4) on one SoC.).
14
15There are too much various configuration that we can not list all
16of them, so we can not make every Spreadtrum-special configuration
17as one generic configuration, and maybe it will add more strange
18global configuration in future. Then we add one "sprd,control" to
19set these various global control configuration, and we need use
20magic number for this property.
21
22Moreover we recognise every fields comprising one bit or several
23bits in one global control register as one pin, thus we should
24record every pin's bit offset, bit width and register offset to
25configure this field (pin).
26
27The second block comprises some common registers which have unified
28register definition, and each register described one pin is used
29to configure the pin sleep mode, function select and sleep related
30configuration.
31
32Now we have 4 systems for sleep mode on SC9860 SoC: AP system,
33PUBCP system, TGLDSP system and AGDSP system. And the pin sleep
34related configuration are:
35- input-enable
36- input-disable
37- output-high
38- output-low
39- bias-pull-up
40- bias-pull-down
41
42In some situation we need set the pin sleep mode and pin sleep related
43configuration, to set the pin sleep related configuration automatically
44by hardware when the system specified by sleep mode goes into deep
45sleep mode. For example, if we set the pin sleep mode as PUBCP_SLEEP
46and set the pin sleep related configuration as "input-enable", which
47means when PUBCP system goes into deep sleep mode, this pin will be set
48input enable automatically.
49
50Moreover we can not use the "sleep" state, since some systems (like:
51PUBCP system) do not run linux kernel OS (only AP system run linux
52kernel on SC9860 platform), then we can not select "sleep" state
53when the PUBCP system goes into deep sleep mode. Thus we introduce
54"sprd,sleep-mode" property to set pin sleep mode.
55
56The last block comprises some misc registers which also have unified
57register definition, and each register described one pin is used to
58configure drive strength, pull up/down and so on. Especially for pull
59up, we have two kind pull up resistor: 20K and 4.7K.
60
61Required 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
67Optional 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
83Please 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
3Please refer to sprd,pinctrl.txt in this directory for common binding part
4and usage.
5
6Required 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
11Optional 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
31Pin sleep mode definition:
32enum 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
39Example:
40pin_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
180&usart1 {180&usart1 {
181 pinctrl-0 = <&usart1_pins_a>;181 pinctrl-0 = <&usart1_pins_a>;
182 pinctrl-names = "default";182 pinctrl-names = "default";
183 status = "okay";
184};183};
Documentation/devicetree/bindings/power/power-controller.txt+0−1
@@ -13,6 +13,5 @@ Example: · 12 unmodified lines
13 13
14act8846: act8846@5 {14act8846: act8846@5 {
15 compatible = "active-semi,act8846";15 compatible = "active-semi,act8846";
16 status = "okay";
17 system-power-controller;16 system-power-controller;
18}17}
Documentation/devicetree/bindings/power/renesas,apmu.txt+2−1
@@ -1,12 +1,13 @@
1DT bindings for the Renesas Advanced Power Management Unit1DT bindings for the Renesas Advanced Power Management Unit
2 2
3Renesas R-Car line of SoCs utilize one or more APMU hardware units3Renesas R-Car and RZ/G1 SoCs utilize one or more APMU hardware units
4for CPU core power domain control including SMP boot and CPU Hotplug.4for CPU core power domain control including SMP boot and CPU Hotplug.
5 5
6Required properties:6Required properties:
7 7
8- compatible: Should be "renesas,<soctype>-apmu", "renesas,apmu" as fallback.8- compatible: Should be "renesas,<soctype>-apmu", "renesas,apmu" as fallback.
9 Examples with soctypes are:9 Examples with soctypes are:
10 - "renesas,r8a7743-apmu" (RZ/G1M)
10 - "renesas,r8a7790-apmu" (R-Car H2)11 - "renesas,r8a7790-apmu" (R-Car H2)
11 - "renesas,r8a7791-apmu" (R-Car M2-W)12 - "renesas,r8a7791-apmu" (R-Car M2-W)
12 - "renesas,r8a7792-apmu" (R-Car V2H)13 - "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
17 - "renesas,r8a7794-sysc" (R-Car E2)17 - "renesas,r8a7794-sysc" (R-Car E2)
18 - "renesas,r8a7795-sysc" (R-Car H3)18 - "renesas,r8a7795-sysc" (R-Car H3)
19 - "renesas,r8a7796-sysc" (R-Car M3-W)19 - "renesas,r8a7796-sysc" (R-Car M3-W)
20 - "renesas,r8a77995-sysc" (R-Car D3)
20 - reg: Address start and address range for the device.21 - reg: Address start and address range for the device.
21 - #power-domain-cells: Must be 1.22 - #power-domain-cells: Must be 1.
22 23
Documentation/devicetree/bindings/power/reset/st-reset.txt+0−1
@@ -8,5 +8,4 @@ Example node: · 7 unmodified lines
8 restart {8 restart {
9 compatible = "st,stih407-restart";9 compatible = "st,stih407-restart";
10 st,syscfg = <&syscfg_sbc_reg>;10 st,syscfg = <&syscfg_sbc_reg>;
11 status = "okay";
12 };11 };
Documentation/devicetree/bindings/power/rockchip-io-domain.txt+2−0
@@ -39,6 +39,8 @@ Required properties: · 38 unmodified lines
39 - "rockchip,rk3368-pmu-io-voltage-domain" for rk3368 pmu-domains39 - "rockchip,rk3368-pmu-io-voltage-domain" for rk3368 pmu-domains
40 - "rockchip,rk3399-io-voltage-domain" for rk339940 - "rockchip,rk3399-io-voltage-domain" for rk3399
41 - "rockchip,rk3399-pmu-io-voltage-domain" for rk3399 pmu-domains41 - "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
42 44
43Deprecated properties:45Deprecated properties:
44- rockchip,grf: phandle to the syscon managing the "general register files"46- 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
29 pmic@5b {29 pmic@5b {
30 compatible = "active-semi,act8945a";30 compatible = "active-semi,act8945a";
31 reg = <0x5b>;31 reg = <0x5b>;
32 status = "okay";
33 32
34 charger {33 charger {
35 compatible = "active-semi,act8945a-charger";34 compatible = "active-semi,act8945a-charger";
@@ -43,6 +42,5 @@ Example: · 7 unmodified lines
43 active-semi,input-voltage-threshold-microvolt = <6600>;42 active-semi,input-voltage-threshold-microvolt = <6600>;
44 active-semi,precondition-timeout = <40>;43 active-semi,precondition-timeout = <40>;
45 active-semi,total-timeout = <3>;44 active-semi,total-timeout = <3>;
46 status = "okay";
47 };45 };
48 };46 };
Documentation/devicetree/bindings/power/supply/bq24190.txt+51−0
@@ -0,0 +1,51 @@
1TI BQ24190 Li-Ion Battery Charger
2
3Required 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
10Optional 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
22Notes:
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
27Example:
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 @@
1binding for LTC2941 and LTC2943 battery gauges1binding for LTC2941, LTC2942, LTC2943 and LTC2944 battery gauges
2 2
3Both the LTC2941 and LTC2943 measure battery capacity.3All chips measure battery capacity.
4The LTC2943 is compatible with the LTC2941, it adds voltage and4The LTC2942 is pin compatible with the LTC2941, it adds voltage and
5temperature monitoring, and uses a slightly different conversion5temperature monitoring, and is runtime detected. LTC2943 and LTC2944
6formula for the charge counter.6is software compatible, uses a slightly different conversion formula
7for the charge counter and adds voltage, current and temperature monitoring.
7 8
8Required properties:9Required properties:
9- compatible: Should contain "lltc,ltc2941" or "lltc,ltc2943" which also10- compatible: Should contain "lltc,ltc2941", "lltc,ltc2942", "lltc,ltc2943"
10 indicates the type of I2C chip attached.11 or "lltc,ltc2944" which also indicates the type of I2C chip attached.
11- reg: The 7-bit I2C address.12- reg: The 7-bit I2C address.
12- lltc,resistor-sense: The sense resistor value in milli-ohms. Can be a 32-bit13- lltc,resistor-sense: The sense resistor value in milli-ohms. Can be a 32-bit
13 negative value when the battery has been connected to the wrong end of the14 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
21 flt-gpios = <&gpio2 2 GPIO_ACTIVE_LOW>;21 flt-gpios = <&gpio2 2 GPIO_ACTIVE_LOW>;
22 chg-gpios = <&gpio3 15 GPIO_ACTIVE_LOW>;22 chg-gpios = <&gpio3 15 GPIO_ACTIVE_LOW>;
23 cen-gpios = <&gpio2 5 GPIO_ACTIVE_LOW>;23 cen-gpios = <&gpio2 5 GPIO_ACTIVE_LOW>;
24 status = "okay";
25 };24 };
Documentation/devicetree/bindings/power/supply/maxim,max14656.txt+0−1
@@ -12,7 +12,6 @@ Example: · 11 unmodified lines
12 clock-frequency = <50000>;12 clock-frequency = <50000>;
13 pinctrl-names = "default";13 pinctrl-names = "default";
14 pinctrl-0 = <&pinctrl_i2c2>;14 pinctrl-0 = <&pinctrl_i2c2>;
15 status = "okay";
16 15
17 max14656@35 {16 max14656@35 {
18 compatible = "maxim,max14656";17 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
201. "enable-sdio-wakeup" Documentation/devicetree/bindings/mmc/mmc.txt201. "enable-sdio-wakeup" Documentation/devicetree/bindings/mmc/mmc.txt
212. "gpio-key,wakeup" Documentation/devicetree/bindings/input/gpio-keys{,-polled}.txt212. "gpio-key,wakeup" Documentation/devicetree/bindings/input/gpio-keys{,-polled}.txt
223. "has-tpo" Documentation/devicetree/bindings/rtc/rtc-opal.txt223. "has-tpo" Documentation/devicetree/bindings/rtc/rtc-opal.txt
234. "isil,irq2-can-wakeup-machine" Documentation/devicetree/bindings/rtc/isil,isl12057.txt234. "linux,wakeup" Documentation/devicetree/bindings/input/gpio-matrix-keypad.txt
245. "linux,wakeup" Documentation/devicetree/bindings/input/gpio-matrix-keypad.txt
25 Documentation/devicetree/bindings/mfd/tc3589x.txt24 Documentation/devicetree/bindings/mfd/tc3589x.txt
26 Documentation/devicetree/bindings/input/ads7846.txt25 Documentation/devicetree/bindings/input/ads7846.txt
276. "linux,keypad-wakeup" Documentation/devicetree/bindings/input/qcom,pm8xxx-keypad.txt265. "linux,keypad-wakeup" Documentation/devicetree/bindings/input/qcom,pm8xxx-keypad.txt
287. "linux,input-wakeup" Documentation/devicetree/bindings/input/samsung-keypad.txt276. "linux,input-wakeup" Documentation/devicetree/bindings/input/samsung-keypad.txt
298. "nvidia,wakeup-source" Documentation/devicetree/bindings/input/nvidia,tegra20-kbc.txt287. "nvidia,wakeup-source" Documentation/devicetree/bindings/input/nvidia,tegra20-kbc.txt
30 29
31Examples30Examples
32--------31--------
Documentation/devicetree/bindings/powerpc/ibm,vas.txt+22−0
@@ -0,0 +1,22 @@
1* IBM Powerpc Virtual Accelerator Switchboard (VAS)
2
3VAS is a hardware mechanism that allows kernel subsystems and user processes
4to directly submit compression and other requests to Nest accelerators (NX)
5or other coprocessors functions.
6
7Required 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
15Example:
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 @@
1IBM OPAL Sensor Groups Binding
2-------------------------------
3
4Node: /ibm,opal/sensor-groups
5
6Description: Contains sensor groups available in the Powernv P9
7servers. Each child node indicates a sensor group.
8
9- compatible : Should be "ibm,opal-sensor-group"
10
11Each 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
13 13
14Example:14Example:
15 pps {15 pps {
16 compatible = "pps-gpio";16 pinctrl-names = "default";
17 gpios = <&gpio2 6 0>;17 pinctrl-0 = <&pinctrl_pps>;
18 18
19 gpios = <&gpio1 26 GPIO_ACTIVE_HIGH>;
19 assert-falling-edge;20 assert-falling-edge;
21
22 compatible = "pps-gpio";
23 status = "okay";
20 };24 };
Documentation/devicetree/bindings/ptp/brcm,ptp-dte.txt+0−1
@@ -16,5 +16,4 @@ Example: · 15 unmodified lines
16ptp: ptp-dte@180af650 {16ptp: ptp-dte@180af650 {
17 compatible = "brcm,iproc-ptp-dte", "brcm,ptp-dte";17 compatible = "brcm,iproc-ptp-dte", "brcm,ptp-dte";
18 reg = <0x180af650 0x10>;18 reg = <0x180af650 0x10>;
19 status = "okay";
20};19};
Documentation/devicetree/bindings/pwm/pwm-bcm2835.txt+2−2
@@ -6,7 +6,7 @@ Required properties: · 5 unmodified lines
6- clocks: This clock defines the base clock frequency of the PWM hardware6- clocks: This clock defines the base clock frequency of the PWM hardware
7 system, the period and the duty_cycle of the PWM signal is a multiple of7 system, the period and the duty_cycle of the PWM signal is a multiple of
8 the base period.8 the base period.
9- #pwm-cells: Should be 2. See pwm.txt in this directory for a description of9- #pwm-cells: Should be 3. See pwm.txt in this directory for a description of
10 the cells format.10 the cells format.
11 11
12Examples:12Examples:
@@ -15,7 +15,7 @@ pwm@2020c000 { · 2 unmodified lines
15 compatible = "brcm,bcm2835-pwm";15 compatible = "brcm,bcm2835-pwm";
16 reg = <0x2020c000 0x28>;16 reg = <0x2020c000 0x28>;
17 clocks = <&clk_pwm>;17 clocks = <&clk_pwm>;
18 #pwm-cells = <2>;18 #pwm-cells = <3>;
19};19};
20 20
21clocks {21clocks {
Documentation/devicetree/bindings/pwm/pwm-mediatek.txt+5−1
@@ -2,6 +2,8 @@ MediaTek PWM controller · 1 unmodified line
2 2
3Required properties:3Required properties:
4 - compatible: should be "mediatek,<name>-pwm":4 - compatible: should be "mediatek,<name>-pwm":
5 - "mediatek,mt2712-pwm": found on mt2712 SoC.
6 - "mediatek,mt7622-pwm": found on mt7622 SoC.
5 - "mediatek,mt7623-pwm": found on mt7623 SoC.7 - "mediatek,mt7623-pwm": found on mt7623 SoC.
6 - reg: physical base address and length of the controller's registers.8 - reg: physical base address and length of the controller's registers.
7 - #pwm-cells: must be 2. See pwm.txt in this directory for a description of9 - #pwm-cells: must be 2. See pwm.txt in this directory for a description of
@@ -10,7 +12,9 @@ Required properties: · 2 unmodified lines
10 - clock-names: must contain the following:12 - clock-names: must contain the following:
11 - "top": the top clock generator13 - "top": the top clock generator
12 - "main": clock used by the PWM core14 - "main": clock used by the PWM core
13 - "pwm1-5": the five per PWM clocks15 - "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
14 - pinctrl-names: Must contain a "default" entry.18 - pinctrl-names: Must contain a "default" entry.
15 - pinctrl-0: One property must exist for each entry in pinctrl-names.19 - pinctrl-0: One property must exist for each entry in pinctrl-names.
16 See pinctrl/pinctrl-bindings.txt for details of the property values.20 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
19 compatible = "amlogic,meson-gxbb-pwm";19 compatible = "amlogic,meson-gxbb-pwm";
20 reg = <0x0 0x08550 0x0 0x10>;20 reg = <0x0 0x08550 0x0 0x10>;
21 #pwm-cells = <3>;21 #pwm-cells = <3>;
22 status = "disabled";
23 clocks = <&xtal>, <&xtal>;22 clocks = <&xtal>, <&xtal>;
24 clock-names = "clkin0", "clkin1";23 clock-names = "clkin0", "clkin1";
25 }24 }
Documentation/devicetree/bindings/pwm/pwm-rockchip.txt+9−2
@@ -3,10 +3,17 @@ Rockchip PWM controller · 2 unmodified lines
3Required properties:3Required properties:
4 - compatible: should be "rockchip,<name>-pwm"4 - compatible: should be "rockchip,<name>-pwm"
5 "rockchip,rk2928-pwm": found on RK29XX,RK3066 and RK3188 SoCs5 "rockchip,rk2928-pwm": found on RK29XX,RK3066 and RK3188 SoCs
6 "rockchip,rk3288-pwm": found on RK3288 SoC6 "rockchip,rk3288-pwm": found on RK3288 SOC
7 "rockchip,rv1108-pwm", "rockchip,rk3288-pwm": found on RV1108 SoC
7 "rockchip,vop-pwm": found integrated in VOP on RK3288 SoC8 "rockchip,vop-pwm": found integrated in VOP on RK3288 SoC
8 - reg: physical base address and length of the controller's registers9 - reg: physical base address and length of the controller's registers
9 - clocks: phandle and clock specifier of the PWM reference clock10 - 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.
10 - #pwm-cells: must be 2 (rk2928) or 3 (rk3288). See pwm.txt in this directory17 - #pwm-cells: must be 2 (rk2928) or 3 (rk3288). See pwm.txt in this directory
11 for a description of the cell format.18 for a description of the cell format.
12 19
Documentation/devicetree/bindings/pwm/pwm-stm32-lp.txt+24−0
@@ -0,0 +1,24 @@
1STMicroelectronics STM32 Low-Power Timer PWM
2
3STM32 Low-Power Timer provides single channel PWM.
4
5Must be a sub-node of an STM32 Low-Power Timer device tree node.
6See ../mfd/stm32-lptimer.txt for details about the parent node.
7
8Required parameters:
9- compatible: Must be "st,stm32-pwm-lp".
10
11Optional properties:
12- pinctrl-names: Set to "default".
13- pinctrl-0: Phandle pointing to pin configuration node for PWM.
14
15Example:
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
19 reg = <0x01c20e00 0xc>;19 reg = <0x01c20e00 0xc>;
20 clocks = <&osc24M>;20 clocks = <&osc24M>;
21 #pwm-cells = <3>;21 #pwm-cells = <3>;
22 status = "disabled";
23 };22 };
Documentation/devicetree/bindings/pwm/pwm-tiecap.txt+1−0
@@ -6,6 +6,7 @@ Required properties: · 5 unmodified lines
6 for am4372 - compatible = "ti,am4372-ecap", "ti,am3352-ecap", "ti,am33xx-ecap";6 for am4372 - compatible = "ti,am4372-ecap", "ti,am3352-ecap", "ti,am33xx-ecap";
7 for da850 - compatible = "ti,da850-ecap", "ti,am3352-ecap", "ti,am33xx-ecap";7 for da850 - compatible = "ti,da850-ecap", "ti,am3352-ecap", "ti,am33xx-ecap";
8 for dra746 - compatible = "ti,dra746-ecap", "ti,am3352-ecap";8 for dra746 - compatible = "ti,dra746-ecap", "ti,am3352-ecap";
9 for 66ak2g - compatible = "ti,k2g-ecap", "ti,am3352-ecap";
9- #pwm-cells: should be 3. See pwm.txt in this directory for a description of10- #pwm-cells: should be 3. See pwm.txt in this directory for a description of
10 the cells format. The PWM channel index ranges from 0 to 4. The only third11 the cells format. The PWM channel index ranges from 0 to 4. The only third
11 cell flag supported by this binding is PWM_POLARITY_INVERTED.12 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
26 ti,hwmods = "epwmss0";26 ti,hwmods = "epwmss0";
27 #address-cells = <1>;27 #address-cells = <1>;
28 #size-cells = <1>;28 #size-cells = <1>;
29 status = "disabled";
30 ranges = <0x48300100 0x48300100 0x80 /* ECAP */29 ranges = <0x48300100 0x48300100 0x80 /* ECAP */
31 0x48300180 0x48300180 0x80 /* EQEP */30 0x48300180 0x48300180 0x80 /* EQEP */
32 0x48300200 0x48300200 0x80>; /* EHRPWM */31 0x48300200 0x48300200 0x80>; /* EHRPWM */
@@ -40,7 +39,6 @@ epwmss0: epwmss@48300000 { /* PWMSS for am4372 */ · 7 unmodified lines
40 ti,hwmods = "epwmss0";39 ti,hwmods = "epwmss0";
41 #address-cells = <1>;40 #address-cells = <1>;
42 #size-cells = <1>;41 #size-cells = <1>;
43 status = "disabled";
44 ranges = <0x48300100 0x48300100 0x80 /* ECAP */42 ranges = <0x48300100 0x48300100 0x80 /* ECAP */
45 0x48300180 0x48300180 0x80 /* EQEP */43 0x48300180 0x48300180 0x80 /* EQEP */
46 0x48300200 0x48300200 0x80>; /* EHRPWM */44 0x48300200 0x48300200 0x80>; /* EHRPWM */
Documentation/devicetree/bindings/pwm/pwm-zx.txt+22−0
@@ -0,0 +1,22 @@
1ZTE ZX PWM controller
2
3Required 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
13Example:
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
6 - "renesas,tpu-r8a73a4": for R8A77A4 (R-Mobile APE6) compatible PWM controller.6 - "renesas,tpu-r8a73a4": for R8A77A4 (R-Mobile APE6) compatible PWM controller.
7 - "renesas,tpu-r8a7740": for R8A7740 (R-Mobile A1) compatible PWM controller.7 - "renesas,tpu-r8a7740": for R8A7740 (R-Mobile A1) compatible PWM controller.
8 - "renesas,tpu-r8a7790": for R8A7790 (R-Car H2) compatible PWM controller.8 - "renesas,tpu-r8a7790": for R8A7790 (R-Car H2) compatible PWM controller.
9 - "renesas,tpu-sh7372": for SH7372 (SH-Mobile AP4) compatible PWM controller.
10 - "renesas,tpu": for generic R-Car TPU PWM controller.9 - "renesas,tpu": for generic R-Car TPU PWM controller.
11 10
12 - reg: Base address and length of each memory resource used by the PWM11 - 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
52 compatible = "active-semi,act8865";52 compatible = "active-semi,act8865";
53 reg = <0x5b>;53 reg = <0x5b>;
54 active-semi,vsel-high;54 active-semi,vsel-high;
55 status = "disabled";
56 55
57 regulators {56 regulators {
58 vcc_1v8_reg: DCDC_REG1 {57 vcc_1v8_reg: DCDC_REG1 {
Documentation/devicetree/bindings/regulator/act8945a-regulator.txt+0−1
@@ -23,7 +23,6 @@ Example: · 22 unmodified lines
23 pmic@5b {23 pmic@5b {
24 compatible = "active-semi,act8945a";24 compatible = "active-semi,act8945a";
25 reg = <0x5b>;25 reg = <0x5b>;
26 status = "okay";
27 26
28 active-semi,vsel-high;27 active-semi,vsel-high;
29 28
Documentation/devicetree/bindings/regulator/mt6311-regulator.txt+1−1
@@ -1,4 +1,4 @@
1Mediatek MT6311 Regulator Driver1Mediatek MT6311 Regulator
2 2
3Required properties:3Required properties:
4- compatible: "mediatek,mt6311-regulator"4- compatible: "mediatek,mt6311-regulator"
Documentation/devicetree/bindings/regulator/mt6323-regulator.txt+1−1
@@ -1,4 +1,4 @@
1Mediatek MT6323 Regulator Driver1Mediatek MT6323 Regulator
2 2
3All voltage regulators are defined as subnodes of the regulators node. A list3All voltage regulators are defined as subnodes of the regulators node. A list
4of regulators provided by this controller are defined as subnodes of the4of regulators provided by this controller are defined as subnodes of the
Documentation/devicetree/bindings/regulator/mt6380-regulator.txt+89−0
@@ -0,0 +1,89 @@
1MediaTek MT6380 Regulator
2
3All voltage regulators provided by the MT6380 PMIC are described as the
4subnodes of the MT6380 regulators node. Each regulator is named according
5to its regulator type, buck-<name> and ldo-<name>. The definition for each
6of these nodes is defined using the standard binding for regulators at
7Documentation/devicetree/bindings/regulator/regulator.txt.
8
9The valid names for regulators are:
10BUCK:
11 buck-core1, buck-vcore, buck-vrf
12LDO:
13 ldo-vm ,ldo-va , ldo-vphy, ldo-vddr, ldo-vt
14
15Example:
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 @@
1Mediatek MT6397 Regulator Driver1Mediatek MT6397 Regulator
2 2
3Required properties:3Required properties:
4- compatible: "mediatek,mt6397-regulator"4- 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
71 * Inverted PWM logic, and the duty cycle range is limited71 * Inverted PWM logic, and the duty cycle range is limited
72 * to 30%-70%.72 * to 30%-70%.
73 */73 */
74 pwm-dutycycle-range <700 300>; /* */74 pwm-dutycycle-range = <700 300>; /* */
75 };75 };
76 76
77Voltage Table Example:77Voltage Table Example:
Documentation/devicetree/bindings/regulator/st,stm32-vrefbuf.txt+20−0
@@ -0,0 +1,20 @@
1STM32 VREFBUF - Voltage reference buffer
2
3Some STM32 devices embed a voltage reference buffer which can be used as
4voltage reference for ADCs, DACs and also as voltage reference for external
5components through the dedicated VREF+ pin.
6
7Required 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
12Example:
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 @@
1NXP iMX6SX/iMX7D Co-Processor Bindings
2----------------------------------------
3
4This binding provides support for ARM Cortex M4 Co-processor found on some
5NXP iMX SoCs.
6
7Required 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
15Optional properties:
16- memory-region list of phandels to the reserved memory regions.
17 (See: ../reserved-memory/reserved-memory.txt)
18
19Example:
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
63 63
64 64
65= SUBNODES65= SUBNODES
66The adsp node may have an subnode named "smd-edge" that describes the SMD edge,66The adsp node may have an subnode named either "smd-edge" or "glink-edge" that
67channels and devices related to the ADSP. See ../soc/qcom/qcom,smd.txt for67describes the communication edge, channels and devices related to the ADSP.
68details on how to describe the SMD edge.68See ../soc/qcom/qcom,smd.txt and ../soc/qcom/qcom,glink.txt for details on how
69to describe these.
69 70
70 71
71= EXAMPLE72= 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
90 Value type: <phandle>90 Value type: <phandle>
91 Definition: reference to the reserved-memory for the region91 Definition: reference to the reserved-memory for the region
92 92
93The Hexagon node may also have an subnode named either "smd-edge" or
94"glink-edge" that describes the communication edge, channels and devices
95related to the Hexagon. See ../soc/qcom/qcom,smd.txt and
96../soc/qcom/qcom,glink.txt for details on how to describe these.
97
93= EXAMPLE98= EXAMPLE
94The following example describes the resources needed to boot control the99The following example describes the resources needed to boot control the
95Hexagon, as it is found on MSM8974 boards.100Hexagon, as it is found on MSM8974 boards.
Documentation/devicetree/bindings/remoteproc/ti,davinci-rproc.txt+86−0
@@ -0,0 +1,86 @@
1TI Davinci DSP devices
2=======================
3
4Binding status: Unstable - Subject to changes for DT representation of clocks
5 and resets
6
7The TI Davinci family of SoCs usually contains a TI DSP Core sub-system that
8is used to offload some of the processor-intensive tasks or algorithms, for
9achieving various system level goals.
10
11The processor cores in the sub-system usually contain additional sub-modules
12like L1 and/or L2 caches/SRAMs, an Interrupt Controller, an external memory
13controller, a dedicated local power/sleep controller etc. The DSP processor
14core used in Davinci SoCs is usually a C674x DSP CPU.
15
16DSP Device Node:
17================
18Each DSP Core sub-system is represented as a single DT node.
19
20Required properties:
21--------------------
22The 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
48Optional 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
55Example:
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
26 "ti,k2hk-dsp" for DSPs on Keystone 2 66AK2H/K SoCs26 "ti,k2hk-dsp" for DSPs on Keystone 2 66AK2H/K SoCs
27 "ti,k2l-dsp" for DSPs on Keystone 2 66AK2L SoCs27 "ti,k2l-dsp" for DSPs on Keystone 2 66AK2L SoCs
28 "ti,k2e-dsp" for DSPs on Keystone 2 66AK2E SoCs28 "ti,k2e-dsp" for DSPs on Keystone 2 66AK2E SoCs
29 "ti,k2g-dsp" for DSPs on Keystone 2 66AK2G SoCs
29 30
30- reg: Should contain an entry for each value in 'reg-names'.31- reg: Should contain an entry for each value in 'reg-names'.
31 Each entry should have the memory region's start address32 Each entry should have the memory region's start address
@@ -37,20 +38,18 @@ The following are the mandatory properties: · 5 unmodified lines
37 should be defined in this order,38 should be defined in this order,
38 "l2sram", "l1pram", "l1dram"39 "l2sram", "l1pram", "l1dram"
39 40
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
44- ti,syscon-dev: Should be a pair of the phandle to the Keystone Device41- ti,syscon-dev: Should be a pair of the phandle to the Keystone Device
45 State Control node, and the register offset of the DSP42 State Control node, and the register offset of the DSP
46 boot address register within that node's address space.43 boot address register within that node's address space.
47 44
48- resets: Should contain the phandle to the reset controller node45- resets: Should contain the phandle to the reset controller node
49 managing the resets for this device, and a reset46 managing the resets for this device, and a reset
50 specifier. Please refer to the following reset bindings47 specifier. Please refer to either of the following reset
51 for the reset argument specifier as per SoC,48 bindings for the reset argument specifier as per SoC,
52 Documentation/devicetree/bindings/reset/ti-syscon-reset.txt49 Documentation/devicetree/bindings/reset/ti-syscon-reset.txt
53 for 66AK2HK/66AK2L/66AK2E SoCs50 for 66AK2HK/66AK2L/66AK2E SoCs or,
51 Documentation/devicetree/bindings/reset/ti,sci-reset.txt
52 for 66AK2G SoCs
54 53
55- interrupt-parent: Should contain a phandle to the Keystone 2 IRQ controller54- interrupt-parent: Should contain a phandle to the Keystone 2 IRQ controller
56 IP node that is used by the ARM CorePac processor to55 IP node that is used by the ARM CorePac processor to
@@ -75,6 +74,22 @@ The following are the mandatory properties: · 18 unmodified lines
75 The gpio device to be used is as per the bindings in,74 The gpio device to be used is as per the bindings in,
76 Documentation/devicetree/bindings/gpio/gpio-dsp-keystone.txt75 Documentation/devicetree/bindings/gpio/gpio-dsp-keystone.txt
77 76
77SoC-specific Required properties:
78---------------------------------
79The following are mandatory properties for Keystone 2 66AK2HK, 66AK2L and 66AK2E
80SoCs 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
86The 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
78Optional properties:93Optional properties:
79--------------------94--------------------
80 95
@@ -85,8 +100,10 @@ Optional properties: · 4 unmodified lines
85 Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt100 Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt
86 101
87 102
88Example:103Examples:
89--------104---------
105
1061.
90 /* 66AK2H/K DSP aliases */107 /* 66AK2H/K DSP aliases */
91 aliases {108 aliases {
92 rproc0 = &dsp0;109 rproc0 = &dsp0;
@@ -131,3 +148,41 @@ Example: · 38 unmodified lines
131 };148 };
132 149
133 };150 };
151
1522.
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 @@
1Lantiq XWAY SoC RCU reset controller binding
2============================================
3
4This binding describes a reset-controller found on the RCU module on Lantiq
5XWAY SoCs.
6
7This node has to be a sub node of the Lantiq RCU block.
8
9-------------------------------------------------------------------------------
10Required 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-------------------------------------------------------------------------------
24Example 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
80 clock-names = "stmmaceth";80 clock-names = "stmmaceth";
81 resets = <&rgu 22>;81 resets = <&rgu 22>;
82 reset-names = "stmmaceth";82 reset-names = "stmmaceth";
83 status = "disabled";
84};83};
Documentation/devicetree/bindings/reset/renesas,rst.txt+1−0
@@ -26,6 +26,7 @@ Required properties: · 25 unmodified lines
26 - "renesas,r8a7794-rst" (R-Car E2)26 - "renesas,r8a7794-rst" (R-Car E2)
27 - "renesas,r8a7795-rst" (R-Car H3)27 - "renesas,r8a7795-rst" (R-Car H3)
28 - "renesas,r8a7796-rst" (R-Car M3-W)28 - "renesas,r8a7796-rst" (R-Car M3-W)
29 - "renesas,r8a77995-rst" (R-Car D3)
29 - reg: Address start and address range for the device.30 - reg: Address start and address range for the device.
30 31
31 32
Documentation/devicetree/bindings/reset/uniphier-reset.txt+25−2
@@ -6,7 +6,6 @@ System reset · 5 unmodified lines
6 6
7Required properties:7Required properties:
8- compatible: should be one of the following:8- compatible: should be one of the following:
9 "socionext,uniphier-sld3-reset" - for sLD3 SoC
10 "socionext,uniphier-ld4-reset" - for LD4 SoC9 "socionext,uniphier-ld4-reset" - for LD4 SoC
11 "socionext,uniphier-pro4-reset" - for Pro4 SoC10 "socionext,uniphier-pro4-reset" - for Pro4 SoC
12 "socionext,uniphier-sld8-reset" - for sLD8 SoC11 "socionext,uniphier-sld8-reset" - for sLD8 SoC
@@ -37,7 +36,6 @@ Media I/O (MIO) reset, SD reset · 24 unmodified lines
37 36
38Required properties:37Required properties:
39- compatible: should be one of the following:38- compatible: should be one of the following:
40 "socionext,uniphier-sld3-mio-reset" - for sLD3 SoC
41 "socionext,uniphier-ld4-mio-reset" - for LD4 SoC39 "socionext,uniphier-ld4-mio-reset" - for LD4 SoC
42 "socionext,uniphier-pro4-mio-reset" - for Pro4 SoC40 "socionext,uniphier-pro4-mio-reset" - for Pro4 SoC
43 "socionext,uniphier-sld8-mio-reset" - for sLD8 SoC41 "socionext,uniphier-sld8-mio-reset" - for sLD8 SoC
@@ -92,3 +90,28 @@ Example: · 48 unmodified lines
92 90
93 other nodes ...91 other nodes ...
94 };92 };
93
94
95Analog signal amplifier reset
96-----------------------------
97
98Required 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
104Example:
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 @@
1Freescale RNGC (Random Number Generator Version C)
2
3The driver also supports version B, which is mostly compatible
4to version C.
5
6Required 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
14Example:
15
16rng@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 @@
1Android Goldfish RTC
2
3Android Goldfish RTC device used by Android emulator.
4
5Required properties:
6
7- compatible : should contain "google,goldfish-rtc"
8- reg : <registers mapping>
9- interrupts : <interrupt mapping>
10
11Example:
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
24 24
25 - "wakeup-source": mark the chip as a wakeup source, independently of25 - "wakeup-source": mark the chip as a wakeup source, independently of
26 the availability of an IRQ line connected to the SoC.26 the availability of an IRQ line connected to the SoC.
27 (Legacy property supported: "isil,irq2-can-wakeup-machine")
28 27
29 - "interrupt-parent", "interrupts": for passing the interrupt line28 - "interrupt-parent", "interrupts": for passing the interrupt line
30 of the SoC connected to IRQ#2 of the RTC chip.29 of the SoC connected to IRQ#2 of the RTC chip.
Documentation/devicetree/bindings/rtc/realtek,rtd119x.txt+16−0
@@ -0,0 +1,16 @@
1Realtek RTD129x Real-Time Clock
2===============================
3
4Required 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
10Example:
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
45 interrupts = <17 1>;45 interrupts = <17 1>;
46 interrupt-names = "alarm";46 interrupt-names = "alarm";
47 st,syscfg = <&pwrcfg>;47 st,syscfg = <&pwrcfg>;
48 status = "disabled";
49 };48 };
Documentation/devicetree/bindings/rtc/sun6i-rtc.txt+2−2
@@ -10,7 +10,7 @@ Required properties: · 9 unmodified lines
10 10
11Required properties for new device trees11Required properties for new device trees
12- clocks : phandle to the 32kHz external oscillator12- clocks : phandle to the 32kHz external oscillator
13- clock-output-names : name of the LOSC clock created13- clock-output-names : names of the LOSC and its external output clocks created
14- #clock-cells : must be equals to 1. The RTC provides two clocks: the14- #clock-cells : must be equals to 1. The RTC provides two clocks: the
15 LOSC and its external output, with index 0 and 115 LOSC and its external output, with index 0 and 1
16 respectively.16 respectively.
@@ -21,7 +21,7 @@ rtc: rtc@01f00000 { · 4 unmodified lines
21 compatible = "allwinner,sun6i-a31-rtc";21 compatible = "allwinner,sun6i-a31-rtc";
22 reg = <0x01f00000 0x54>;22 reg = <0x01f00000 0x54>;
23 interrupts = <0 40 4>, <0 41 4>;23 interrupts = <0 40 4>, <0 41 4>;
24 clock-output-names = "osc32k";24 clock-output-names = "osc32k", "osc32k-out";
25 clocks = <&ext_osc32k>;25 clocks = <&ext_osc32k>;
26 #clock-cells = <1>;26 #clock-cells = <1>;
27};27};
Documentation/devicetree/bindings/scsi/hisilicon-sas.txt+0−1
@@ -85,5 +85,4 @@ Example: · 84 unmodified lines
85 <366 1>,<367 1>/* cq30-31 */85 <366 1>,<367 1>/* cq30-31 */
86 <376 4>,/* fatal ecc */86 <376 4>,/* fatal ecc */
87 <381 4>;/* fatal axi */87 <381 4>;/* fatal axi */
88 status = "disabled";
89 };88 };
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
19 19
20&i2c2 {20&i2c2 {
21 21
22 status = "okay";
23 22
24 st33zp24: st33zp24@13 {23 st33zp24: st33zp24@13 {
25 24
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
18 18
19&mcspi4 {19&mcspi4 {
20 20
21 status = "okay";
22 21
23 st33zp24@0 {22 st33zp24@0 {
24 23
Documentation/devicetree/bindings/security/tpm/tpm-i2c.txt+6−1
@@ -8,6 +8,12 @@ Required properties: · 7 unmodified lines
8 the firmware event log8 the firmware event log
9- linux,sml-size : size of the memory allocated for the firmware event log9- linux,sml-size : size of the memory allocated for the firmware event log
10 10
11Optional 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
11Example (for OpenPower Systems with Nuvoton TPM 2.0 on I2C)17Example (for OpenPower Systems with Nuvoton TPM 2.0 on I2C)
12----------------------------------------------------------18----------------------------------------------------------
13 19
@@ -17,5 +23,4 @@ tpm@57 { · 3 unmodified lines
17 compatible = "nuvoton,npct650", "nuvoton,npct601";23 compatible = "nuvoton,npct650", "nuvoton,npct601";
18 linux,sml-base = <0x7f 0xfd450000>;24 linux,sml-base = <0x7f 0xfd450000>;
19 linux,sml-size = <0x10000>;25 linux,sml-size = <0x10000>;
20 status = "okay";
21};26};
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
13 13
14&mcspi4 {14&mcspi4 {
15 15
16 status = "okay";
17 16
18 tpm_tis@0 {17 tpm_tis@0 {
19 18
Documentation/devicetree/bindings/serial/8250.txt+2−0
@@ -14,6 +14,8 @@ Required properties: · 13 unmodified lines
14 tegra132, or tegra210.14 tegra132, or tegra210.
15 - "nxp,lpc3220-uart"15 - "nxp,lpc3220-uart"
16 - "ralink,rt2880-uart"16 - "ralink,rt2880-uart"
17 - For MediaTek BTIF, must contain '"mediatek,<chip>-btif",
18 "mediatek,mtk-btif"' where <chip> is mt7622, mt7623.
17 - "altr,16550-FIFO32"19 - "altr,16550-FIFO32"
18 - "altr,16550-FIFO64"20 - "altr,16550-FIFO64"
19 - "altr,16550-FIFO128"21 - "altr,16550-FIFO128"
Documentation/devicetree/bindings/serial/arc-uart.txt+0−1
@@ -15,7 +15,6 @@ arcuart0: serial@c0fc1000 { · 14 unmodified lines
15 interrupts = <5>;15 interrupts = <5>;
16 clock-frequency = <80000000>;16 clock-frequency = <80000000>;
17 current-speed = <115200>;17 current-speed = <115200>;
18 status = "okay";
19};18};
20 19
21Note: Each port should have an alias correctly numbered in "aliases" node.20Note: 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
15 compatible = "axis,etraxfs-uart";15 compatible = "axis,etraxfs-uart";
16 reg = <0xb0026000 0x1000>;16 reg = <0xb0026000 0x1000>;
17 interrupts = <68>;17 interrupts = <68>;
18 status = "disabled";
19 dtr-gpios = <&sysgpio 0 GPIO_ACTIVE_LOW>;18 dtr-gpios = <&sysgpio 0 GPIO_ACTIVE_LOW>;
20 dsr-gpios = <&sysgpio 1 GPIO_ACTIVE_LOW>;19 dsr-gpios = <&sysgpio 1 GPIO_ACTIVE_LOW>;
21 rng-gpios = <&sysgpio 2 GPIO_ACTIVE_LOW>;20 rng-gpios = <&sysgpio 2 GPIO_ACTIVE_LOW>;
Documentation/devicetree/bindings/serial/mtk-uart.txt+1−0
@@ -3,6 +3,7 @@ · 2 unmodified lines
3Required properties:3Required properties:
4- compatible should contain:4- compatible should contain:
5 * "mediatek,mt2701-uart" for MT2701 compatible UARTS5 * "mediatek,mt2701-uart" for MT2701 compatible UARTS
6 * "mediatek,mt2712-uart" for MT2712 compatible UARTS
6 * "mediatek,mt6580-uart" for MT6580 compatible UARTS7 * "mediatek,mt6580-uart" for MT6580 compatible UARTS
7 * "mediatek,mt6582-uart" for MT6582 compatible UARTS8 * "mediatek,mt6582-uart" for MT6582 compatible UARTS
8 * "mediatek,mt6589-uart" for MT6589 compatible UARTS9 * "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
33 reset-names = "serial";33 reset-names = "serial";
34 dmas = <&apbdma 8>, <&apbdma 8>;34 dmas = <&apbdma 8>, <&apbdma 8>;
35 dma-names = "rx", "tx";35 dma-names = "rx", "tx";
36 status = "disabled";
37};36};
Documentation/devicetree/bindings/serial/qcom,msm-uartdm.txt+0−3
@@ -72,13 +72,10 @@ Examples: · 71 unmodified lines
72 };72 };
73 73
74 uarta: serial@12490000 {74 uarta: serial@12490000 {
75 status = "ok";
76 };75 };
77 76
78 uartb: serial@16340000 {77 uartb: serial@16340000 {
79 status = "ok";
80 };78 };
81 79
82 uartc: serial@1a240000 {80 uartc: serial@1a240000 {
83 status = "ok";
84 };81 };
Documentation/devicetree/bindings/serial/renesas,sci-serial.txt+2−0
@@ -41,6 +41,8 @@ Required properties: · 40 unmodified lines
41 - "renesas,hscif-r8a7795" for R8A7795 (R-Car H3) HSCIF compatible UART.41 - "renesas,hscif-r8a7795" for R8A7795 (R-Car H3) HSCIF compatible UART.
42 - "renesas,scif-r8a7796" for R8A7796 (R-Car M3-W) SCIF compatible UART.42 - "renesas,scif-r8a7796" for R8A7796 (R-Car M3-W) SCIF compatible UART.
43 - "renesas,hscif-r8a7796" for R8A7796 (R-Car M3-W) HSCIF compatible UART.43 - "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.
44 - "renesas,scifa-sh73a0" for SH73A0 (SH-Mobile AG5) SCIFA compatible UART.46 - "renesas,scifa-sh73a0" for SH73A0 (SH-Mobile AG5) SCIFA compatible UART.
45 - "renesas,scifb-sh73a0" for SH73A0 (SH-Mobile AG5) SCIFB compatible UART.47 - "renesas,scifb-sh73a0" for SH73A0 (SH-Mobile AG5) SCIFB compatible UART.
46 - "renesas,rcar-gen1-scif" for R-Car Gen1 SCIF compatible UART,48 - "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
5The properties described hereafter shall be given to a half-duplex capable5The properties described hereafter shall be given to a half-duplex capable
6UART node.6UART node.
7 7
8Required properties:8Optional properties:
9- rs485-rts-delay: prop-encoded-array <a b> where:9- rs485-rts-delay: prop-encoded-array <a b> where:
10 * a is the delay between rts signal and beginning of data sent in milliseconds.10 * a is the delay between rts signal and beginning of data sent in milliseconds.
11 it corresponds to the delay before sending data.11 it corresponds to the delay before sending data.
12 * b is the delay between end of data sent and rts signal in milliseconds12 * b is the delay between end of data sent and rts signal in milliseconds
13 it corresponds to the delay after sending data and actual release of the line.13 it corresponds to the delay after sending data and actual release of the line.
14 14 If this property is not specified, <0 0> is assumed.
15Optional properties:
16- linux,rs485-enabled-at-boot-time: empty property telling to enable the rs48515- linux,rs485-enabled-at-boot-time: empty property telling to enable the rs485
17 feature at boot time. It can be disabled later with proper ioctl.16 feature at boot time. It can be disabled later with proper ioctl.
18- rs485-rx-during-tx: empty property that enables the receiving of data even17- 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
43 rng-gpios = <&gpio2 25 GPIO_ACTIVE_LOW>;43 rng-gpios = <&gpio2 25 GPIO_ACTIVE_LOW>;
44 cts-gpios = <&gpio0 12 GPIO_ACTIVE_LOW>;44 cts-gpios = <&gpio0 12 GPIO_ACTIVE_LOW>;
45 rts-gpios = <&gpio0 13 GPIO_ACTIVE_LOW>;45 rts-gpios = <&gpio0 13 GPIO_ACTIVE_LOW>;
46 status = "okay";
47 };46 };
48 47
49 scifa4: serial@e6c80000 {48 scifa4: serial@e6c80000 {
@@ -54,5 +53,4 @@ Examples: · 4 unmodified lines
54 clock-names = "fck";53 clock-names = "fck";
55 power-domains = <&pd_a3sp>;54 power-domains = <&pd_a3sp>;
56 uart-has-rtscts;55 uart-has-rtscts;
57 status = "okay";
58 };56 };
Documentation/devicetree/bindings/serial/st,stm32-usart.txt+12−5
@@ -1,12 +1,19 @@
1* STMicroelectronics STM32 USART1* STMicroelectronics STM32 USART
2 2
3Required properties:3Required properties:
4- compatible: Can be either "st,stm32-usart", "st,stm32-uart",4- compatible: can be either:
5"st,stm32f7-usart" or "st,stm32f7-uart" depending on whether5 - "st,stm32-usart",
6the device supports synchronous mode and is compatible with6 - "st,stm32-uart",
7stm32(f4) or stm32f7.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.
8- reg: The address and length of the peripheral registers space13- reg: The address and length of the peripheral registers space
9- interrupts: The interrupt line of the USART instance14- interrupts:
15 - The interrupt line for the USART instance,
16 - An optional wake-up interrupt.
10- clocks: The input clock of the USART instance17- clocks: The input clock of the USART instance
11 18
12Optional properties:19Optional properties:
Documentation/devicetree/bindings/serio/allwinner,sun4i-ps2.txt+0−1
@@ -19,5 +19,4 @@ Example: · 18 unmodified lines
19 reg = <0x01c2a000 0x400>;19 reg = <0x01c2a000 0x400>;
20 interrupts = <0 62 4>;20 interrupts = <0 62 4>;
21 clocks = <&apb1_gates 6>;21 clocks = <&apb1_gates 6>;
22 status = "disabled";
23 };22 };
Documentation/devicetree/bindings/serio/ps2-gpio.txt+23−0
@@ -0,0 +1,23 @@
1Device-Tree binding for ps/2 gpio device
2
3Required 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
9Optional 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
14Example nodes:
15
16ps2@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
12- include/dt-bindings/power/mt8173-power.h12- include/dt-bindings/power/mt8173-power.h
13- include/dt-bindings/power/mt6797-power.h13- include/dt-bindings/power/mt6797-power.h
14- include/dt-bindings/power/mt2701-power.h14- include/dt-bindings/power/mt2701-power.h
15- include/dt-bindings/power/mt7622-power.h
15 16
16Required properties:17Required properties:
17- compatible: Should be one of:18- compatible: Should be one of:
18 - "mediatek,mt2701-scpsys"19 - "mediatek,mt2701-scpsys"
19 - "mediatek,mt6797-scpsys"20 - "mediatek,mt6797-scpsys"
21 - "mediatek,mt7622-scpsys"
20 - "mediatek,mt8173-scpsys"22 - "mediatek,mt8173-scpsys"
21- #power-domain-cells: Must be 123- #power-domain-cells: Must be 1
22- reg: Address range of the SCPSYS unit24- reg: Address range of the SCPSYS unit
@@ -26,6 +28,7 @@ Required properties: · 3 unmodified lines
26 enabled before enabling certain power domains.28 enabled before enabling certain power domains.
27 Required clocks for MT2701: "mm", "mfg", "ethif"29 Required clocks for MT2701: "mm", "mfg", "ethif"
28 Required clocks for MT6797: "mm", "mfg", "vdec"30 Required clocks for MT6797: "mm", "mfg", "vdec"
31 Required clocks for MT7622: "hif_sel"
29 Required clocks for MT8173: "mm", "mfg", "venc", "venc_lt"32 Required clocks for MT8173: "mm", "mfg", "venc", "venc_lt"
30 33
31Optional properties:34Optional properties:
Documentation/devicetree/bindings/soc/qcom/qcom,glink.txt+7−6
@@ -1,11 +1,12 @@
1Qualcomm RPM GLINK binding1Qualcomm GLINK edge binding
2 2
3This binding describes the Qualcomm RPM GLINK, a fifo based mechanism for3This binding describes a Qualcomm GLINK edge, a fifo based mechanism for
4communication with the Resource Power Management system on various Qualcomm4communication between subsystem-pairs on various Qualcomm platforms. Two types
5platforms.5of edges can be described by the binding; the GLINK RPM edge and a SMEM based
6edge.
6 7
7- compatible:8- compatible:
8 Usage: required9 Usage: required for glink-rpm
9 Value type: <stringlist>10 Value type: <stringlist>
10 Definition: must be "qcom,glink-rpm"11 Definition: must be "qcom,glink-rpm"
11 12
@@ -16,7 +17,7 @@ platforms. · 4 unmodified lines
16 signal this processor about communication related events17 signal this processor about communication related events
17 18
18- qcom,rpm-msg-ram:19- qcom,rpm-msg-ram:
19 Usage: required20 Usage: required for glink-rpm
20 Value type: <prop-encoded-array>21 Value type: <prop-encoded-array>
21 Definition: handle to RPM message memory resource22 Definition: handle to RPM message memory resource
22 23
Documentation/devicetree/bindings/soc/qcom/qcom,gsbi.txt+0−1
@@ -78,7 +78,6 @@ Example for APQ8064: · 77 unmodified lines
78 interrupts = <0 152 0x0>;78 interrupts = <0 152 0x0>;
79 clocks = <&gcc GSBI4_UART_CLK>, <&gcc GSBI4_H_CLK>;79 clocks = <&gcc GSBI4_UART_CLK>, <&gcc GSBI4_H_CLK>;
80 clock-names = "core", "iface";80 clock-names = "core", "iface";
81 status = "ok";
82 };81 };
83 };82 };
84 83
Documentation/devicetree/bindings/soc/rockchip/grf.txt+3−0
@@ -21,6 +21,7 @@ Required Properties: · 20 unmodified lines
21 - "rockchip,rk3328-grf", "syscon": for rk332821 - "rockchip,rk3328-grf", "syscon": for rk3328
22 - "rockchip,rk3368-grf", "syscon": for rk336822 - "rockchip,rk3368-grf", "syscon": for rk3368
23 - "rockchip,rk3399-grf", "syscon": for rk339923 - "rockchip,rk3399-grf", "syscon": for rk3399
24 - "rockchip,rv1108-grf", "syscon": for rv1108
24- compatible: PMUGRF should be one of the following:25- compatible: PMUGRF should be one of the following:
25 - "rockchip,rk3368-pmugrf", "syscon": for rk336826 - "rockchip,rk3368-pmugrf", "syscon": for rk3368
26 - "rockchip,rk3399-pmugrf", "syscon": for rk339927 - "rockchip,rk3399-pmugrf", "syscon": for rk3399
@@ -28,6 +29,8 @@ Required Properties: · 1 unmodified line
28 - "rockchip,rk3288-sgrf", "syscon": for rk328829 - "rockchip,rk3288-sgrf", "syscon": for rk3288
29- compatible: USB2PHYGRF should be one of the followings30- compatible: USB2PHYGRF should be one of the followings
30 - "rockchip,rk3328-usb2phy-grf", "syscon": for rk332831 - "rockchip,rk3328-usb2phy-grf", "syscon": for rk3328
32- compatible: USBGRF should be one of the following
33 - "rockchip,rv1108-usbgrf", "syscon": for rv1108
31- reg: physical base address of the controller and length of memory mapped34- reg: physical base address of the controller and length of memory mapped
32 region.35 region.
33 36
Documentation/devicetree/bindings/soc/rockchip/power_domain.txt+3−0
@@ -7,6 +7,7 @@ Required properties for power domain controller: · 6 unmodified lines
7- compatible: Should be one of the following.7- compatible: Should be one of the following.
8 "rockchip,rk3288-power-controller" - for RK3288 SoCs.8 "rockchip,rk3288-power-controller" - for RK3288 SoCs.
9 "rockchip,rk3328-power-controller" - for RK3328 SoCs.9 "rockchip,rk3328-power-controller" - for RK3328 SoCs.
10 "rockchip,rk3366-power-controller" - for RK3366 SoCs.
10 "rockchip,rk3368-power-controller" - for RK3368 SoCs.11 "rockchip,rk3368-power-controller" - for RK3368 SoCs.
11 "rockchip,rk3399-power-controller" - for RK3399 SoCs.12 "rockchip,rk3399-power-controller" - for RK3399 SoCs.
12- #power-domain-cells: Number of cells in a power-domain specifier.13- #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
18- reg: index of the power domain, should use macros in:19- reg: index of the power domain, should use macros in:
19 "include/dt-bindings/power/rk3288-power.h" - for RK3288 type power domain.20 "include/dt-bindings/power/rk3288-power.h" - for RK3288 type power domain.
20 "include/dt-bindings/power/rk3328-power.h" - for RK3328 type power domain.21 "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.
21 "include/dt-bindings/power/rk3368-power.h" - for RK3368 type power domain.23 "include/dt-bindings/power/rk3368-power.h" - for RK3368 type power domain.
22 "include/dt-bindings/power/rk3399-power.h" - for RK3399 type power domain.24 "include/dt-bindings/power/rk3399-power.h" - for RK3399 type power domain.
23- clocks (optional): phandles to clocks which need to be enabled while power domain25- clocks (optional): phandles to clocks which need to be enabled while power domain
@@ -93,6 +95,7 @@ power domain to use. · 69 unmodified lines
93The index should use macros in:95The index should use macros in:
94 "include/dt-bindings/power/rk3288-power.h" - for rk3288 type power domain.96 "include/dt-bindings/power/rk3288-power.h" - for rk3288 type power domain.
95 "include/dt-bindings/power/rk3328-power.h" - for rk3328 type power domain.97 "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.
96 "include/dt-bindings/power/rk3368-power.h" - for rk3368 type power domain.99 "include/dt-bindings/power/rk3368-power.h" - for rk3368 type power domain.
97 "include/dt-bindings/power/rk3399-power.h" - for rk3399 type power domain.100 "include/dt-bindings/power/rk3399-power.h" - for rk3399 type power domain.
98 101
Documentation/devicetree/bindings/soc/ti/sci-pm-domain.txt+3−2
@@ -46,12 +46,13 @@ Required Properties: · 45 unmodified lines
46- power-domains: phandle pointing to the corresponding PM domain node46- power-domains: phandle pointing to the corresponding PM domain node
47 and an ID representing the device.47 and an ID representing the device.
48 48
49See dt-bindings/genpd/k2g.h for the list of valid identifiers for k2g.49See http://processors.wiki.ti.com/index.php/TISCI#66AK2G02_Data for the list
50of valid identifiers for k2g.
50 51
51Example (K2G):52Example (K2G):
52--------------------53--------------------
53 uart0: serial@02530c00 {54 uart0: serial@02530c00 {
54 compatible = "ns16550a";55 compatible = "ns16550a";
55 ...56 ...
56 power-domains = <&k2g_pds K2G_DEV_UART0>;57 power-domains = <&k2g_pds 0x002c>;
57 };58 };
Documentation/devicetree/bindings/sound/armada-370db-audio.txt+0−1
@@ -23,5 +23,4 @@ Example: · 22 unmodified lines
23 compatible = "marvell,a370db-audio";23 compatible = "marvell,a370db-audio";
24 marvell,audio-controller = <&audio_controller>;24 marvell,audio-controller = <&audio_controller>;
25 marvell,audio-codec = <&audio_codec &spdif_out &spdif_in>;25 marvell,audio-codec = <&audio_codec &spdif_out &spdif_in>;
26 status = "okay";
27 };26 };
Documentation/devicetree/bindings/sound/atmel-classd.txt+3−6
@@ -13,13 +13,11 @@ Required properties: · 12 unmodified lines
13 Must be "tx".13 Must be "tx".
14- clock-names14- clock-names
15 Tuple listing input clock names.15 Tuple listing input clock names.
16 Required elements: "pclk", "gclk" and "aclk".16 Required elements: "pclk" and "gclk".
17- clocks17- clocks
18 Please refer to clock-bindings.txt.18 Please refer to clock-bindings.txt.
19- assigned-clocks19- assigned-clocks
20 Should be <&classd_gclk>.20 Should be <&classd_gclk>.
21- assigned-clock-parents
22 Should be <&audio_pll_pmc>.
23 21
24Optional properties:22Optional properties:
25- pinctrl-names, pinctrl-023- pinctrl-names, pinctrl-0
@@ -45,10 +43,9 @@ classd: classd@fc048000 { · 19 unmodified lines
45 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1)43 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1)
46 | AT91_XDMAC_DT_PERID(47))>;44 | AT91_XDMAC_DT_PERID(47))>;
47 dma-names = "tx";45 dma-names = "tx";
48 clocks = <&classd_clk>, <&classd_gclk>, <&audio_pll_pmc>;46 clocks = <&classd_clk>, <&classd_gclk>;
49 clock-names = "pclk", "gclk", "aclk";47 clock-names = "pclk", "gclk";
50 assigned-clocks = <&classd_gclk>;48 assigned-clocks = <&classd_gclk>;
51 assigned-clock-parents = <&audio_pll_pmc>;
52 49
53 pinctrl-names = "default";50 pinctrl-names = "default";
54 pinctrl-0 = <&pinctrl_classd_default>;51 pinctrl-0 = <&pinctrl_classd_default>;
Documentation/devicetree/bindings/sound/axentia,tse850-pcm5142.txt+0−1
@@ -45,7 +45,6 @@ Example: · 44 unmodified lines
45 &ssc0 {45 &ssc0 {
46 #sound-dai-cells = <0>;46 #sound-dai-cells = <0>;
47 47
48 status = "okay";
49 };48 };
50 49
51 &i2c {50 &i2c {
Documentation/devicetree/bindings/sound/brcm,cygnus-audio.txt+0−4
@@ -47,21 +47,17 @@ Example: · 46 unmodified lines
47 47
48 ssp0: ssp_port@0 {48 ssp0: ssp_port@0 {
49 reg = <0>;49 reg = <0>;
50 status = "okay";
51 };50 };
52 51
53 ssp1: ssp_port@1 {52 ssp1: ssp_port@1 {
54 reg = <1>;53 reg = <1>;
55 status = "disabled";
56 };54 };
57 55
58 ssp2: ssp_port@2 {56 ssp2: ssp_port@2 {
59 reg = <2>;57 reg = <2>;
60 status = "disabled";
61 };58 };
62 59
63 spdif: spdif_port@3 {60 spdif: spdif_port@3 {
64 reg = <3>;61 reg = <3>;
65 status = "disabled";
66 };62 };
67 };63 };
Documentation/devicetree/bindings/sound/cs43130.txt+67−0
@@ -0,0 +1,67 @@
1CS43130 DAC
2
3Required 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
15Optional 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
49Example:
50
51cs43130: 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
47 dmas = <&edma0 3 147 dmas = <&edma0 3 1
48 &edma0 2 1>;48 &edma0 2 1>;
49 dma-names = "tx", "rx";49 dma-names = "tx", "rx";
50 status = "okay";
51};50};
Documentation/devicetree/bindings/sound/dmic.txt+16−0
@@ -0,0 +1,16 @@
1Device-Tree bindings for Digital microphone (DMIC) codec
2
3This device support generic PDM digital microphone.
4
5Required properties:
6 - compatible: should be "dmic-codec".
7
8Optional properties:
9 - dmicen-gpios: GPIO specifier for dmic to control start and stop
10
11Example 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
61 "txa", "txb", "txc";61 "txa", "txb", "txc";
62 fsl,asrc-rate = <48000>;62 fsl,asrc-rate = <48000>;
63 fsl,asrc-width = <16>;63 fsl,asrc-width = <16>;
64 status = "okay";
65};64};
Documentation/devicetree/bindings/sound/fsl,esai.txt+0−1
@@ -59,5 +59,4 @@ esai: esai@02024000 { · 58 unmodified lines
59 fsl,fifo-depth = <128>;59 fsl,fifo-depth = <128>;
60 fsl,esai-synchronous;60 fsl,esai-synchronous;
61 big-endian;61 big-endian;
62 status = "disabled";
63};62};
Documentation/devicetree/bindings/sound/fsl,spdif.txt+0−1
@@ -59,5 +59,4 @@ spdif: spdif@02004000 { · 58 unmodified lines
59 "rxtx7";59 "rxtx7";
60 60
61 big-endian;61 big-endian;
62 status = "okay";
63};62};
Documentation/devicetree/bindings/sound/hdmi.txt+0−1
@@ -13,5 +13,4 @@ Example node: · 12 unmodified lines
13 13
14 hdmi_audio: hdmi_audio@0 {14 hdmi_audio: hdmi_audio@0 {
15 compatible = "linux,hdmi-audio";15 compatible = "linux,hdmi-audio";
16 status = "okay";
17 };16 };
Documentation/devicetree/bindings/sound/mt2701-afe-pcm.txt+3−1
@@ -3,7 +3,8 @@ Mediatek AFE PCM controller for mt2701 · 2 unmodified lines
3Required properties:3Required properties:
4- compatible = "mediatek,mt2701-audio";4- compatible = "mediatek,mt2701-audio";
5- reg: register location and size5- reg: register location and size
6- interrupts: Should contain AFE interrupt6- interrupts: should contain AFE and ASYS interrupts
7- interrupt-names: should be "afe" and "asys"
7- power-domains: should define the power domain8- power-domains: should define the power domain
8- clock-names: should have these clock names:9- clock-names: should have these clock names:
9 "infra_sys_audio_clk",10 "infra_sys_audio_clk",
@@ -59,6 +60,7 @@ Example: · 49 unmodified lines
59 <0 0x112A0000 0 0x20000>;60 <0 0x112A0000 0 0x20000>;
60 interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_LOW>,61 interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_LOW>,
61 <GIC_SPI 132 IRQ_TYPE_LEVEL_LOW>;62 <GIC_SPI 132 IRQ_TYPE_LEVEL_LOW>;
63 interrupt-names = "afe", "asys";
62 power-domains = <&scpsys MT2701_POWER_DOMAIN_IFR_MSC>;64 power-domains = <&scpsys MT2701_POWER_DOMAIN_IFR_MSC>;
63 clocks = <&infracfg CLK_INFRA_AUDIO>,65 clocks = <&infracfg CLK_INFRA_AUDIO>,
64 <&topckgen CLK_TOP_AUD_MUX1_SEL>,66 <&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
31 - vdd-cdc-io-supply: phandle to VDD_CDC_IO regulator DT node.31 - vdd-cdc-io-supply: phandle to VDD_CDC_IO regulator DT node.
32 - vdd-cdc-tx-rx-cx-supply: phandle to VDD_CDC_TX/RX/CX regulator DT node.32 - vdd-cdc-tx-rx-cx-supply: phandle to VDD_CDC_TX/RX/CX regulator DT node.
33 - vdd-micbias-supply: phandle of VDD_MICBIAS supply's regulator DT node.33 - vdd-micbias-supply: phandle of VDD_MICBIAS supply's regulator DT node.
34
35Optional Properties:34Optional 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).
36- qcom,micbias1-ext-cap: boolean, present if micbias1 has external capacitor50- qcom,micbias1-ext-cap: boolean, present if micbias1 has external capacitor
37 connected.51 connected.
38- qcom,micbias2-ext-cap: boolean, present if micbias2 has external capacitor52- qcom,micbias2-ext-cap: boolean, present if micbias2 has external capacitor
@@ -48,6 +62,8 @@ spmi_bus { · 9 unmodified lines
48 reg-names = "pmic-codec-core";62 reg-names = "pmic-codec-core";
49 clocks = <&gcc GCC_CODEC_DIGCODEC_CLK>;63 clocks = <&gcc GCC_CODEC_DIGCODEC_CLK>;
50 clock-names = "mclk";64 clock-names = "mclk";
65 qcom,mbhc-vthreshold-low = <75 150 237 450 500>;
66 qcom,mbhc-vthreshold-high = <75 150 237 450 500>;
51 interrupt-parent = <&spmi_bus>;67 interrupt-parent = <&spmi_bus>;
52 interrupts = <0x1 0xf0 0x0 IRQ_TYPE_NONE>,68 interrupts = <0x1 0xf0 0x0 IRQ_TYPE_NONE>,
53 <0x1 0xf0 0x1 IRQ_TYPE_NONE>,69 <0x1 0xf0 0x1 IRQ_TYPE_NONE>,
Documentation/devicetree/bindings/sound/renesas,rsnd.txt+34−36
@@ -199,10 +199,10 @@ Ex) · 198 unmodified lines
199 sound {199 sound {
200 compatible = "simple-scu-audio-card";200 compatible = "simple-scu-audio-card";
201 ...201 ...
202 simple-audio-card,cpu@0 {202 simple-audio-card,cpu-0 {
203 sound-dai = <&rcar_sound 0>;203 sound-dai = <&rcar_sound 0>;
204 };204 };
205 simple-audio-card,cpu@1 {205 simple-audio-card,cpu-1 {
206 sound-dai = <&rcar_sound 1>;206 sound-dai = <&rcar_sound 1>;
207 };207 };
208 simple-audio-card,codec {208 simple-audio-card,codec {
@@ -441,79 +441,79 @@ rcar_sound: sound@ec500000 { · 232 unmodified lines
441 "clk_a", "clk_b", "clk_c", "clk_i";441 "clk_a", "clk_b", "clk_c", "clk_i";
442 442
443 rcar_sound,dvc {443 rcar_sound,dvc {
444 dvc0: dvc@0 {444 dvc0: dvc-0 {
445 dmas = <&audma0 0xbc>;445 dmas = <&audma0 0xbc>;
446 dma-names = "tx";446 dma-names = "tx";
447 };447 };
448 dvc1: dvc@1 {448 dvc1: dvc-1 {
449 dmas = <&audma0 0xbe>;449 dmas = <&audma0 0xbe>;
450 dma-names = "tx";450 dma-names = "tx";
451 };451 };
452 };452 };
453 453
454 rcar_sound,mix {454 rcar_sound,mix {
455 mix0: mix@0 { };455 mix0: mix-0 { };
456 mix1: mix@1 { };456 mix1: mix-1 { };
457 };457 };
458 458
459 rcar_sound,ctu {459 rcar_sound,ctu {
460 ctu00: ctu@0 { };460 ctu00: ctu-0 { };
461 ctu01: ctu@1 { };461 ctu01: ctu-1 { };
462 ctu02: ctu@2 { };462 ctu02: ctu-2 { };
463 ctu03: ctu@3 { };463 ctu03: ctu-3 { };
464 ctu10: ctu@4 { };464 ctu10: ctu-4 { };
465 ctu11: ctu@5 { };465 ctu11: ctu-5 { };
466 ctu12: ctu@6 { };466 ctu12: ctu-6 { };
467 ctu13: ctu@7 { };467 ctu13: ctu-7 { };
468 };468 };
469 469
470 rcar_sound,src {470 rcar_sound,src {
471 src0: src@0 {471 src0: src-0 {
472 interrupts = <0 352 IRQ_TYPE_LEVEL_HIGH>;472 interrupts = <0 352 IRQ_TYPE_LEVEL_HIGH>;
473 dmas = <&audma0 0x85>, <&audma1 0x9a>;473 dmas = <&audma0 0x85>, <&audma1 0x9a>;
474 dma-names = "rx", "tx";474 dma-names = "rx", "tx";
475 };475 };
476 src1: src@1 {476 src1: src-1 {
477 interrupts = <0 353 IRQ_TYPE_LEVEL_HIGH>;477 interrupts = <0 353 IRQ_TYPE_LEVEL_HIGH>;
478 dmas = <&audma0 0x87>, <&audma1 0x9c>;478 dmas = <&audma0 0x87>, <&audma1 0x9c>;
479 dma-names = "rx", "tx";479 dma-names = "rx", "tx";
480 };480 };
481 src2: src@2 {481 src2: src-2 {
482 interrupts = <0 354 IRQ_TYPE_LEVEL_HIGH>;482 interrupts = <0 354 IRQ_TYPE_LEVEL_HIGH>;
483 dmas = <&audma0 0x89>, <&audma1 0x9e>;483 dmas = <&audma0 0x89>, <&audma1 0x9e>;
484 dma-names = "rx", "tx";484 dma-names = "rx", "tx";
485 };485 };
486 src3: src@3 {486 src3: src-3 {
487 interrupts = <0 355 IRQ_TYPE_LEVEL_HIGH>;487 interrupts = <0 355 IRQ_TYPE_LEVEL_HIGH>;
488 dmas = <&audma0 0x8b>, <&audma1 0xa0>;488 dmas = <&audma0 0x8b>, <&audma1 0xa0>;
489 dma-names = "rx", "tx";489 dma-names = "rx", "tx";
490 };490 };
491 src4: src@4 {491 src4: src-4 {
492 interrupts = <0 356 IRQ_TYPE_LEVEL_HIGH>;492 interrupts = <0 356 IRQ_TYPE_LEVEL_HIGH>;
493 dmas = <&audma0 0x8d>, <&audma1 0xb0>;493 dmas = <&audma0 0x8d>, <&audma1 0xb0>;
494 dma-names = "rx", "tx";494 dma-names = "rx", "tx";
495 };495 };
496 src5: src@5 {496 src5: src-5 {
497 interrupts = <0 357 IRQ_TYPE_LEVEL_HIGH>;497 interrupts = <0 357 IRQ_TYPE_LEVEL_HIGH>;
498 dmas = <&audma0 0x8f>, <&audma1 0xb2>;498 dmas = <&audma0 0x8f>, <&audma1 0xb2>;
499 dma-names = "rx", "tx";499 dma-names = "rx", "tx";
500 };500 };
501 src6: src@6 {501 src6: src-6 {
502 interrupts = <0 358 IRQ_TYPE_LEVEL_HIGH>;502 interrupts = <0 358 IRQ_TYPE_LEVEL_HIGH>;
503 dmas = <&audma0 0x91>, <&audma1 0xb4>;503 dmas = <&audma0 0x91>, <&audma1 0xb4>;
504 dma-names = "rx", "tx";504 dma-names = "rx", "tx";
505 };505 };
506 src7: src@7 {506 src7: src-7 {
507 interrupts = <0 359 IRQ_TYPE_LEVEL_HIGH>;507 interrupts = <0 359 IRQ_TYPE_LEVEL_HIGH>;
508 dmas = <&audma0 0x93>, <&audma1 0xb6>;508 dmas = <&audma0 0x93>, <&audma1 0xb6>;
509 dma-names = "rx", "tx";509 dma-names = "rx", "tx";
510 };510 };
511 src8: src@8 {511 src8: src-8 {
512 interrupts = <0 360 IRQ_TYPE_LEVEL_HIGH>;512 interrupts = <0 360 IRQ_TYPE_LEVEL_HIGH>;
513 dmas = <&audma0 0x95>, <&audma1 0xb8>;513 dmas = <&audma0 0x95>, <&audma1 0xb8>;
514 dma-names = "rx", "tx";514 dma-names = "rx", "tx";
515 };515 };
516 src9: src@9 {516 src9: src-9 {
517 interrupts = <0 361 IRQ_TYPE_LEVEL_HIGH>;517 interrupts = <0 361 IRQ_TYPE_LEVEL_HIGH>;
518 dmas = <&audma0 0x97>, <&audma1 0xba>;518 dmas = <&audma0 0x97>, <&audma1 0xba>;
519 dma-names = "rx", "tx";519 dma-names = "rx", "tx";
@@ -521,52 +521,52 @@ rcar_sound: sound@ec500000 { · 1 unmodified line
521 };521 };
522 522
523 rcar_sound,ssi {523 rcar_sound,ssi {
524 ssi0: ssi@0 {524 ssi0: ssi-0 {
525 interrupts = <0 370 IRQ_TYPE_LEVEL_HIGH>;525 interrupts = <0 370 IRQ_TYPE_LEVEL_HIGH>;
526 dmas = <&audma0 0x01>, <&audma1 0x02>, <&audma0 0x15>, <&audma1 0x16>;526 dmas = <&audma0 0x01>, <&audma1 0x02>, <&audma0 0x15>, <&audma1 0x16>;
527 dma-names = "rx", "tx", "rxu", "txu";527 dma-names = "rx", "tx", "rxu", "txu";
528 };528 };
529 ssi1: ssi@1 {529 ssi1: ssi-1 {
530 interrupts = <0 371 IRQ_TYPE_LEVEL_HIGH>;530 interrupts = <0 371 IRQ_TYPE_LEVEL_HIGH>;
531 dmas = <&audma0 0x03>, <&audma1 0x04>, <&audma0 0x49>, <&audma1 0x4a>;531 dmas = <&audma0 0x03>, <&audma1 0x04>, <&audma0 0x49>, <&audma1 0x4a>;
532 dma-names = "rx", "tx", "rxu", "txu";532 dma-names = "rx", "tx", "rxu", "txu";
533 };533 };
534 ssi2: ssi@2 {534 ssi2: ssi-2 {
535 interrupts = <0 372 IRQ_TYPE_LEVEL_HIGH>;535 interrupts = <0 372 IRQ_TYPE_LEVEL_HIGH>;
536 dmas = <&audma0 0x05>, <&audma1 0x06>, <&audma0 0x63>, <&audma1 0x64>;536 dmas = <&audma0 0x05>, <&audma1 0x06>, <&audma0 0x63>, <&audma1 0x64>;
537 dma-names = "rx", "tx", "rxu", "txu";537 dma-names = "rx", "tx", "rxu", "txu";
538 };538 };
539 ssi3: ssi@3 {539 ssi3: ssi-3 {
540 interrupts = <0 373 IRQ_TYPE_LEVEL_HIGH>;540 interrupts = <0 373 IRQ_TYPE_LEVEL_HIGH>;
541 dmas = <&audma0 0x07>, <&audma1 0x08>, <&audma0 0x6f>, <&audma1 0x70>;541 dmas = <&audma0 0x07>, <&audma1 0x08>, <&audma0 0x6f>, <&audma1 0x70>;
542 dma-names = "rx", "tx", "rxu", "txu";542 dma-names = "rx", "tx", "rxu", "txu";
543 };543 };
544 ssi4: ssi@4 {544 ssi4: ssi-4 {
545 interrupts = <0 374 IRQ_TYPE_LEVEL_HIGH>;545 interrupts = <0 374 IRQ_TYPE_LEVEL_HIGH>;
546 dmas = <&audma0 0x09>, <&audma1 0x0a>, <&audma0 0x71>, <&audma1 0x72>;546 dmas = <&audma0 0x09>, <&audma1 0x0a>, <&audma0 0x71>, <&audma1 0x72>;
547 dma-names = "rx", "tx", "rxu", "txu";547 dma-names = "rx", "tx", "rxu", "txu";
548 };548 };
549 ssi5: ssi@5 {549 ssi5: ssi-5 {
550 interrupts = <0 375 IRQ_TYPE_LEVEL_HIGH>;550 interrupts = <0 375 IRQ_TYPE_LEVEL_HIGH>;
551 dmas = <&audma0 0x0b>, <&audma1 0x0c>, <&audma0 0x73>, <&audma1 0x74>;551 dmas = <&audma0 0x0b>, <&audma1 0x0c>, <&audma0 0x73>, <&audma1 0x74>;
552 dma-names = "rx", "tx", "rxu", "txu";552 dma-names = "rx", "tx", "rxu", "txu";
553 };553 };
554 ssi6: ssi@6 {554 ssi6: ssi-6 {
555 interrupts = <0 376 IRQ_TYPE_LEVEL_HIGH>;555 interrupts = <0 376 IRQ_TYPE_LEVEL_HIGH>;
556 dmas = <&audma0 0x0d>, <&audma1 0x0e>, <&audma0 0x75>, <&audma1 0x76>;556 dmas = <&audma0 0x0d>, <&audma1 0x0e>, <&audma0 0x75>, <&audma1 0x76>;
557 dma-names = "rx", "tx", "rxu", "txu";557 dma-names = "rx", "tx", "rxu", "txu";
558 };558 };
559 ssi7: ssi@7 {559 ssi7: ssi-7 {
560 interrupts = <0 377 IRQ_TYPE_LEVEL_HIGH>;560 interrupts = <0 377 IRQ_TYPE_LEVEL_HIGH>;
561 dmas = <&audma0 0x0f>, <&audma1 0x10>, <&audma0 0x79>, <&audma1 0x7a>;561 dmas = <&audma0 0x0f>, <&audma1 0x10>, <&audma0 0x79>, <&audma1 0x7a>;
562 dma-names = "rx", "tx", "rxu", "txu";562 dma-names = "rx", "tx", "rxu", "txu";
563 };563 };
564 ssi8: ssi@8 {564 ssi8: ssi-8 {
565 interrupts = <0 378 IRQ_TYPE_LEVEL_HIGH>;565 interrupts = <0 378 IRQ_TYPE_LEVEL_HIGH>;
566 dmas = <&audma0 0x11>, <&audma1 0x12>, <&audma0 0x7b>, <&audma1 0x7c>;566 dmas = <&audma0 0x11>, <&audma1 0x12>, <&audma0 0x7b>, <&audma1 0x7c>;
567 dma-names = "rx", "tx", "rxu", "txu";567 dma-names = "rx", "tx", "rxu", "txu";
568 };568 };
569 ssi9: ssi@9 {569 ssi9: ssi-9 {
570 interrupts = <0 379 IRQ_TYPE_LEVEL_HIGH>;570 interrupts = <0 379 IRQ_TYPE_LEVEL_HIGH>;
571 dmas = <&audma0 0x13>, <&audma1 0x14>, <&audma0 0x7d>, <&audma1 0x7e>;571 dmas = <&audma0 0x13>, <&audma1 0x14>, <&audma0 0x7d>, <&audma1 0x7e>;
572 dma-names = "rx", "tx", "rxu", "txu";572 dma-names = "rx", "tx", "rxu", "txu";
@@ -621,7 +621,6 @@ Example: simple sound card · 48 unmodified lines
621 /* Single DAI */621 /* Single DAI */
622 #sound-dai-cells = <0>;622 #sound-dai-cells = <0>;
623 623
624 status = "okay";
625 624
626 rcar_sound,dai {625 rcar_sound,dai {
627 dai0 {626 dai0 {
@@ -667,7 +666,6 @@ Example: simple sound card for Multi channel · 39 unmodified lines
667 /* Single DAI */666 /* Single DAI */
668 #sound-dai-cells = <0>;667 #sound-dai-cells = <0>;
669 668
670 status = "okay";
671 669
672 rcar_sound,dai {670 rcar_sound,dai {
673 dai0 {671 dai0 {
Documentation/devicetree/bindings/sound/rockchip,pdm.txt+5−3
@@ -29,11 +29,13 @@ pdm: pdm@ff040000 { · 28 unmodified lines
29 dma-names = "rx";29 dma-names = "rx";
30 pinctrl-names = "default", "sleep";30 pinctrl-names = "default", "sleep";
31 pinctrl-0 = <&pdmm0_clk31 pinctrl-0 = <&pdmm0_clk
32 &pdmm0_fsync
33 &pdmm0_sdi032 &pdmm0_sdi0
34 &pdmm0_sdi133 &pdmm0_sdi1
35 &pdmm0_sdi234 &pdmm0_sdi2
36 &pdmm0_sdi3>;35 &pdmm0_sdi3>;
37 pinctrl-1 = <&pdmm0_sleep>;36 pinctrl-1 = <&pdmm0_clk_sleep
38 status = "disabled";37 &pdmm0_sdi0_sleep
38 &pdmm0_sdi1_sleep
39 &pdmm0_sdi2_sleep
40 &pdmm0_sdi3_sleep>;
39};41};
Documentation/devicetree/bindings/sound/rockchip,rk3399-gru-sound.txt+1−1
@@ -4,7 +4,7 @@ Required properties: · 3 unmodified lines
4- compatible: "rockchip,rk3399-gru-sound"4- compatible: "rockchip,rk3399-gru-sound"
5- rockchip,cpu: The phandle of the Rockchip I2S controller that's5- rockchip,cpu: The phandle of the Rockchip I2S controller that's
6 connected to the codecs6 connected to the codecs
7- rockchip,codec: The phandle of the MAX98357A/RT5514/DA7219 codecs7- rockchip,codec: The phandle of the audio codecs
8 8
9Optional properties:9Optional properties:
10- dmic-wakeup-delay-ms : specify delay time (ms) for DMIC ready.10- 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
7 7
8- compatible: should be one of the following:8- compatible: should be one of the following:
9 - "rockchip,rk3066-i2s": for rk30669 - "rockchip,rk3066-i2s": for rk3066
10 - "rockchip,rk3036-i2s", "rockchip,rk3066-i2s": for rk3036
10 - "rockchip,rk3188-i2s", "rockchip,rk3066-i2s": for rk318811 - "rockchip,rk3188-i2s", "rockchip,rk3066-i2s": for rk3188
12 - "rockchip,rk3228-i2s", "rockchip,rk3066-i2s": for rk3228
11 - "rockchip,rk3288-i2s", "rockchip,rk3066-i2s": for rk328813 - "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
12 - "rockchip,rk3368-i2s", "rockchip,rk3066-i2s": for rk336816 - "rockchip,rk3368-i2s", "rockchip,rk3066-i2s": for rk3368
13 - "rockchip,rk3399-i2s", "rockchip,rk3066-i2s": for rk339917 - "rockchip,rk3399-i2s", "rockchip,rk3066-i2s": for rk3399
14- reg: physical base address of the controller and length of memory mapped18- 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
41 dma-names = "tx";41 dma-names = "tx";
42 clock-names = "hclk", "mclk";42 clock-names = "hclk", "mclk";
43 clocks = <&cru HCLK_SPDIF>, <&cru SCLK_SPDIF>;43 clocks = <&cru HCLK_SPDIF>, <&cru SCLK_SPDIF>;
44 status = "disabled";
45 #sound-dai-cells = <0>;44 #sound-dai-cells = <0>;
46};45};
Documentation/devicetree/bindings/sound/rt274.txt+33−0
@@ -0,0 +1,33 @@
1RT274 audio CODEC
2
3This device supports I2C only.
4
5Required properties:
6
7- compatible : "realtek,rt274".
8
9- reg : The I2C address of the device.
10
11Optional properties:
12
13- interrupts : The CODEC's interrupt output.
14
15
16Pins 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
27Example:
28
29codec: 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
12 12
13Optional properties:13Optional properties:
14 14
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
15Pins on the device (for linking into audio routes) for RT5663:23Pins on the device (for linking into audio routes) for RT5663:
16 24
17 * IN1P25 * IN1P
Documentation/devicetree/bindings/sound/samsung,odroid.txt+0−6
@@ -7,9 +7,6 @@ Required properties: · 6 unmodified lines
7 - model - the user-visible name of this sound complex7 - model - the user-visible name of this sound complex
8 - clocks - should contain entries matching clock names in the clock-names8 - clocks - should contain entries matching clock names in the clock-names
9 property9 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
13 - samsung,audio-widgets - this property specifies off-codec audio elements10 - samsung,audio-widgets - this property specifies off-codec audio elements
14 like headphones or speakers, for details see widgets.txt11 like headphones or speakers, for details see widgets.txt
15 - samsung,audio-routing - a list of the connections between audio12 - samsung,audio-routing - a list of the connections between audio
@@ -46,9 +43,6 @@ sound { · 30 unmodified lines
46 "IN1", "Mic Jack",43 "IN1", "Mic Jack",
47 "Mic Jack", "MICBIAS";44 "Mic Jack", "MICBIAS";
48 45
49 clocks = <&clock CLK_FOUT_EPLL>, <&i2s0 CLK_I2S_RCLK_SRC>;
50 clock-names = "epll", "sclk_i2s";
51
52 cpu {46 cpu {
53 sound-dai = <&i2s0 0>;47 sound-dai = <&i2s0 0>;
54 };48 };
Documentation/devicetree/bindings/sound/simple-card.txt+3−0
@@ -86,6 +86,9 @@ Optional CPU/CODEC subnodes properties: · 85 unmodified lines
86 in dai startup() and disabled with86 in dai startup() and disabled with
87 clk_disable_unprepare() in dai87 clk_disable_unprepare() in dai
88 shutdown().88 shutdown().
89- system-clock-direction-out : specifies clock direction as 'out' on
90 initialization. It is useful for some aCPUs with
91 fixed clocks.
89 92
90Example 1 - single DAI link:93Example 1 - single DAI link:
91 94
Documentation/devicetree/bindings/sound/simple-scu-card.txt+1−0
@@ -24,6 +24,7 @@ Optional subnode properties: · 23 unmodified lines
24- simple-audio-card,convert-rate : platform specified sampling rate convert24- simple-audio-card,convert-rate : platform specified sampling rate convert
25- simple-audio-card,convert-channels : platform specified converted channel size (2 - 8 ch)25- simple-audio-card,convert-channels : platform specified converted channel size (2 - 8 ch)
26- simple-audio-card,prefix : see routing26- simple-audio-card,prefix : see routing
27- simple-audio-card,widgets : Please refer to widgets.txt.
27- simple-audio-card,routing : A list of the connections between audio components.28- simple-audio-card,routing : A list of the connections between audio components.
28 Each entry is a pair of strings, the first being the connection's sink,29 Each entry is a pair of strings, the first being the connection's sink,
29 the second being the connection's source. Valid names for sources.30 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
53 53
54 sti_uni_player1: sti-uni-player@0x8D81000 {54 sti_uni_player1: sti-uni-player@0x8D81000 {
55 compatible = "st,stih407-uni-player-hdmi";55 compatible = "st,stih407-uni-player-hdmi";
56 status = "okay";
57 #sound-dai-cells = <0>;56 #sound-dai-cells = <0>;
58 st,syscfg = <&syscfg_core>;57 st,syscfg = <&syscfg_core>;
59 clocks = <&clk_s_d0_flexgen CLK_PCM_1>;58 clocks = <&clk_s_d0_flexgen CLK_PCM_1>;
@@ -66,7 +65,6 @@ Example: · 6 unmodified lines
66 65
67 sti_uni_player2: sti-uni-player@0x8D82000 {66 sti_uni_player2: sti-uni-player@0x8D82000 {
68 compatible = "st,stih407-uni-player-pcm-out";67 compatible = "st,stih407-uni-player-pcm-out";
69 status = "okay";
70 #sound-dai-cells = <0>;68 #sound-dai-cells = <0>;
71 st,syscfg = <&syscfg_core>;69 st,syscfg = <&syscfg_core>;
72 clocks = <&clk_s_d0_flexgen CLK_PCM_2>;70 clocks = <&clk_s_d0_flexgen CLK_PCM_2>;
@@ -78,7 +76,6 @@ Example: · 5 unmodified lines
78 76
79 sti_uni_player3: sti-uni-player@0x8D85000 {77 sti_uni_player3: sti-uni-player@0x8D85000 {
80 compatible = "st,stih407-uni-player-spdif";78 compatible = "st,stih407-uni-player-spdif";
81 status = "okay";
82 #sound-dai-cells = <0>;79 #sound-dai-cells = <0>;
83 st,syscfg = <&syscfg_core>;80 st,syscfg = <&syscfg_core>;
84 clocks = <&clk_s_d0_flexgen CLK_SPDIFF>;81 clocks = <&clk_s_d0_flexgen CLK_SPDIFF>;
@@ -90,7 +87,6 @@ Example: · 5 unmodified lines
90 87
91 sti_uni_reader1: sti-uni-reader@0x8D84000 {88 sti_uni_reader1: sti-uni-reader@0x8D84000 {
92 compatible = "st,stih407-uni-reader-hdmi";89 compatible = "st,stih407-uni-reader-hdmi";
93 status = "disabled";
94 #sound-dai-cells = <0>;90 #sound-dai-cells = <0>;
95 st,syscfg = <&syscfg_core>;91 st,syscfg = <&syscfg_core>;
96 reg = <0x8D84000 0x158>;92 reg = <0x8D84000 0x158>;
@@ -125,7 +121,6 @@ Example of audio card declaration: · 28 unmodified lines
125 sound {121 sound {
126 compatible = "simple-audio-card";122 compatible = "simple-audio-card";
127 simple-audio-card,name = "sti audio card";123 simple-audio-card,name = "sti audio card";
128 status = "okay";
129 124
130 simple-audio-card,dai-link@0 {125 simple-audio-card,dai-link@0 {
131 /* DAC */126 /* DAC */
Documentation/devicetree/bindings/sound/sun4i-i2s.txt+2−0
@@ -8,6 +8,7 @@ Required properties: · 7 unmodified lines
8- compatible: should be one of the following:8- compatible: should be one of the following:
9 - "allwinner,sun4i-a10-i2s"9 - "allwinner,sun4i-a10-i2s"
10 - "allwinner,sun6i-a31-i2s"10 - "allwinner,sun6i-a31-i2s"
11 - "allwinner,sun8i-h3-i2s"
11- reg: physical base address of the controller and length of memory mapped12- reg: physical base address of the controller and length of memory mapped
12 region.13 region.
13- interrupts: should contain the I2S interrupt.14- interrupts: should contain the I2S interrupt.
@@ -22,6 +23,7 @@ Required properties: · 8 unmodified lines
22 23
23Required properties for the following compatibles:24Required properties for the following compatibles:
24 - "allwinner,sun6i-a31-i2s"25 - "allwinner,sun6i-a31-i2s"
26 - "allwinner,sun8i-h3-i2s"
25- resets: phandle to the reset line for this codec27- resets: phandle to the reset line for this codec
26 28
27Example:29Example:
Documentation/devicetree/bindings/sound/sunxi,sun4i-spdif.txt+0−1
@@ -39,5 +39,4 @@ spdif: spdif@01c21000 { · 38 unmodified lines
39 clock-names = "apb", "spdif";39 clock-names = "apb", "spdif";
40 dmas = <&dma 0 2>, <&dma 0 2>;40 dmas = <&dma 0 2>, <&dma 0 2>;
41 dma-names = "rx", "tx";41 dma-names = "rx", "tx";
42 status = "okay";
43};42};
Documentation/devicetree/bindings/sound/tas5720.txt+0−1
@@ -17,7 +17,6 @@ Required properties: · 16 unmodified lines
17Example:17Example:
18 18
19tas5720: tas5720@6c {19tas5720: tas5720@6c {
20 status = "okay";
21 compatible = "ti,tas5720";20 compatible = "ti,tas5720";
22 reg = <0x6c>;21 reg = <0x6c>;
23 dvdd-supply = <&vdd_3v3_reg>;22 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
3The tlv320aic32x4 serial control bus communicates through I2C protocols3The tlv320aic32x4 serial control bus communicates through I2C protocols
4 4
5Required properties:5Required properties:
6 - compatible: Should be "ti,tlv320aic32x4"6 - compatible - "string" - One of:
7 "ti,tlv320aic32x4" TLV320AIC3204
8 "ti,tlv320aic32x6" TLV320AIC3206, TLV320AIC3256
7 - reg: I2C slave address9 - reg: I2C slave address
8 - supply-*: Required supply regulators are:10 - supply-*: Required supply regulators are:
9 "iov" - digital IO power supply11 "iov" - digital IO power supply
@@ -18,6 +20,8 @@ Optional properties: · 8 unmodified lines
18 - reset-gpios: Reset-GPIO phandle with args as described in gpio/gpio.txt20 - reset-gpios: Reset-GPIO phandle with args as described in gpio/gpio.txt
19 - clocks/clock-names: Clock named 'mclk' for the master clock of the codec.21 - clocks/clock-names: Clock named 'mclk' for the master clock of the codec.
20 See clock/clock-bindings.txt for information about the detailed format.22 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
21 25
22 26
23Example:27Example:
@@ -27,4 +31,11 @@ codec: tlv320aic32x4@18 { · 3 unmodified lines
27 reg = <0x18>;31 reg = <0x18>;
28 clocks = <&clks 201>;32 clocks = <&clks 201>;
29 clock-names = "mclk";33 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 >;
30};41};
Documentation/devicetree/bindings/sound/tlv320aic3x.txt+5−0
@@ -26,6 +26,11 @@ Optional properties: · 25 unmodified lines
26 3 - MICBIAS output is connected to AVDD,26 3 - MICBIAS output is connected to AVDD,
27 If this node is not mentioned or if the value is incorrect, then MicBias27 If this node is not mentioned or if the value is incorrect, then MicBias
28 is powered down.28 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
29- AVDD-supply, IOVDD-supply, DRVDD-supply, DVDD-supply : power supplies for the34- AVDD-supply, IOVDD-supply, DRVDD-supply, DVDD-supply : power supplies for the
30 device as covered in Documentation/devicetree/bindings/regulator/regulator.txt35 device as covered in Documentation/devicetree/bindings/regulator/regulator.txt
31 36
Documentation/devicetree/bindings/sound/wm8524.txt+16−0
@@ -0,0 +1,16 @@
1WM8524 audio CODEC
2
3This device does not use I2C or SPI but a simple Hardware Control Interface.
4
5Required properties:
6
7 - compatible : "wlf,wm8524"
8
9 - wlf,mute-gpios: a GPIO spec for the MUTE pin.
10
11Example:
12
13codec: 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
27 interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;27 interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
28 dmas = <&dma 5>, <&dma 6>;28 dmas = <&dma 5>, <&dma 6>;
29 dma-names = "tx", "rx";29 dma-names = "tx", "rx";
30 status = "okay";
31 };30 };
32 31
33 sound {32 sound {
Documentation/devicetree/bindings/sound/zte,zx-spdif.txt+0−1
@@ -24,5 +24,4 @@ Example: · 23 unmodified lines
24 interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;24 interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
25 dmas = <&dma 4>;25 dmas = <&dma 4>;
26 dma-names = "tx";26 dma-names = "tx";
27 status = "okay";
28 };27 };
Documentation/devicetree/bindings/spi/efm32-spi.txt+0−2
@@ -28,7 +28,6 @@ spi1: spi@0x4000c400 { /* USART1 */ · 27 unmodified lines
28 clocks = <&cmu 20>;28 clocks = <&cmu 20>;
29 cs-gpios = <&gpio 51 1>; // D329 cs-gpios = <&gpio 51 1>; // D3
30 energymicro,location = <1>;30 energymicro,location = <1>;
31 status = "ok";
32 31
33 ks8851@0 {32 ks8851@0 {
34 compatible = "ks8851";33 compatible = "ks8851";
@@ -36,6 +35,5 @@ spi1: spi@0x4000c400 { /* USART1 */ · 1 unmodified line
36 reg = <0>;35 reg = <0>;
37 interrupt-parent = <&boardfpga>;36 interrupt-parent = <&boardfpga>;
38 interrupts = <4>;37 interrupts = <4>;
39 status = "ok";
40 };38 };
41};39};
Documentation/devicetree/bindings/spi/fsl-imx-cspi.txt+1−0
@@ -9,6 +9,7 @@ Required properties: · 8 unmodified lines
9 - "fsl,imx31-cspi" for SPI compatible with the one integrated on i.MX319 - "fsl,imx31-cspi" for SPI compatible with the one integrated on i.MX31
10 - "fsl,imx35-cspi" for SPI compatible with the one integrated on i.MX3510 - "fsl,imx35-cspi" for SPI compatible with the one integrated on i.MX35
11 - "fsl,imx51-ecspi" for SPI compatible with the one integrated on i.MX5111 - "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
12- reg : Offset and length of the register set for the device13- reg : Offset and length of the register set for the device
13- interrupts : Should contain CSPI/eCSPI interrupt14- interrupts : Should contain CSPI/eCSPI interrupt
14- cs-gpios : Specifies the gpio pins to be used for chipselects.15- 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
38 reset-names = "spi";38 reset-names = "spi";
39 dmas = <&apbdma 16>, <&apbdma 16>;39 dmas = <&apbdma 16>, <&apbdma 16>;
40 dma-names = "rx", "tx";40 dma-names = "rx", "tx";
41 status = "disabled";
42};41};
Documentation/devicetree/bindings/spi/nvidia,tegra20-sflash.txt+0−1
@@ -34,5 +34,4 @@ spi@7000c380 { · 33 unmodified lines
34 reset-names = "spi";34 reset-names = "spi";
35 dmas = <&apbdma 11>, <&apbdma 11>;35 dmas = <&apbdma 11>, <&apbdma 11>;
36 dma-names = "rx", "tx";36 dma-names = "rx", "tx";
37 status = "disabled";
38};37};
Documentation/devicetree/bindings/spi/nvidia,tegra20-slink.txt+0−1
@@ -34,5 +34,4 @@ spi@7000d600 { · 33 unmodified lines
34 reset-names = "spi";34 reset-names = "spi";
35 dmas = <&apbdma 16>, <&apbdma 16>;35 dmas = <&apbdma 16>, <&apbdma 16>;
36 dma-names = "rx", "tx";36 dma-names = "rx", "tx";
37 status = "disabled";
38};37};
Documentation/devicetree/bindings/spi/sh-hspi.txt+0−1
@@ -24,6 +24,5 @@ Example: · 23 unmodified lines
24 interrupts = <0 63 IRQ_TYPE_LEVEL_HIGH>;24 interrupts = <0 63 IRQ_TYPE_LEVEL_HIGH>;
25 #address-cells = <1>;25 #address-cells = <1>;
26 #size-cells = <0>;26 #size-cells = <0>;
27 status = "disabled";
28 };27 };
29 28
Documentation/devicetree/bindings/spi/sh-msiof.txt+1−1
@@ -6,6 +6,7 @@ Required properties: · 5 unmodified lines
6 "renesas,msiof-r8a7792" (R-Car V2H)6 "renesas,msiof-r8a7792" (R-Car V2H)
7 "renesas,msiof-r8a7793" (R-Car M2-N)7 "renesas,msiof-r8a7793" (R-Car M2-N)
8 "renesas,msiof-r8a7794" (R-Car E2)8 "renesas,msiof-r8a7794" (R-Car E2)
9 "renesas,msiof-r8a7795" (R-Car H3)
9 "renesas,msiof-r8a7796" (R-Car M3-W)10 "renesas,msiof-r8a7796" (R-Car M3-W)
10 "renesas,msiof-sh73a0" (SH-Mobile AG5)11 "renesas,msiof-sh73a0" (SH-Mobile AG5)
11 "renesas,sh-mobile-msiof" (generic SH-Mobile compatibile device)12 "renesas,sh-mobile-msiof" (generic SH-Mobile compatibile device)
@@ -78,5 +79,4 @@ Example: · 66 unmodified lines
78 dma-names = "tx", "rx";79 dma-names = "tx", "rx";
79 #address-cells = <1>;80 #address-cells = <1>;
80 #size-cells = <0>;81 #size-cells = <0>;
81 status = "disabled";
82 };82 };
Documentation/devicetree/bindings/spi/spi-clps711x.txt+0−1
@@ -23,7 +23,6 @@ spi@80000500 { · 22 unmodified lines
23 reg = <0x80000500 0x4>;23 reg = <0x80000500 0x4>;
24 interrupts = <15>;24 interrupts = <15>;
25 clocks = <&clks CLPS711X_CLK_SPI>;25 clocks = <&clks CLPS711X_CLK_SPI>;
26 status = "disabled";
27};26};
28 27
29syscon3: syscon@80002200 {28syscon3: syscon@80002200 {
Documentation/devicetree/bindings/spi/spi-fsl-dspi.txt+0−1
@@ -39,7 +39,6 @@ dspi0@4002c000 { · 38 unmodified lines
39 pinctrl-names = "default";39 pinctrl-names = "default";
40 pinctrl-0 = <&pinctrl_dspi0_1>;40 pinctrl-0 = <&pinctrl_dspi0_1>;
41 big-endian;41 big-endian;
42 status = "okay";
43 42
44 sflash: at26df081a@0 {43 sflash: at26df081a@0 {
45 #address-cells = <1>;44 #address-cells = <1>;
Documentation/devicetree/bindings/spi/spi-mt65xx.txt+0−1
@@ -57,5 +57,4 @@ spi: spi@1100a000 { · 56 unmodified lines
57 clock-names = "parent-clk", "sel-clk", "spi-clk";57 clock-names = "parent-clk", "sel-clk", "spi-clk";
58 cs-gpios = <&pio 105 GPIO_ACTIVE_LOW>, <&pio 72 GPIO_ACTIVE_LOW>;58 cs-gpios = <&pio 105 GPIO_ACTIVE_LOW>, <&pio 72 GPIO_ACTIVE_LOW>;
59 mediatek,pad-select = <1>, <0>;59 mediatek,pad-select = <1>, <0>;
60 status = "disabled";
61};60};
Documentation/devicetree/bindings/spi/spi-orion.txt+0−2
@@ -29,7 +29,6 @@ Example: · 28 unmodified lines
29 cell-index = <0>;29 cell-index = <0>;
30 reg = <0x10600 0x28>;30 reg = <0x10600 0x28>;
31 interrupts = <23>;31 interrupts = <23>;
32 status = "disabled";
33 };32 };
34 33
35Example with SPI direct mode support (optionally):34Example with SPI direct mode support (optionally):
@@ -48,7 +47,6 @@ Example with SPI direct mode support (optionally): · 12 unmodified lines
48 <MBUS_ID(0x01, 0x9f) 0 0xffffffff>, /* CS6 */47 <MBUS_ID(0x01, 0x9f) 0 0xffffffff>, /* CS6 */
49 <MBUS_ID(0x01, 0xdf) 0 0xffffffff>; /* CS7 */48 <MBUS_ID(0x01, 0xdf) 0 0xffffffff>; /* CS7 */
50 interrupts = <23>;49 interrupts = <23>;
51 status = "disabled";
52 };50 };
53 51
54To enable the direct mode, the board specific 'ranges' property in the52To 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
6Required Properties:6Required Properties:
7 7
8- compatible: should be one of the following.8- compatible: should be one of the following.
9 "rockchip,rv1108-spi" for rv1108 SoCs.
9 "rockchip,rk3036-spi" for rk3036 SoCS.10 "rockchip,rk3036-spi" for rk3036 SoCS.
10 "rockchip,rk3066-spi" for rk3066 SoCs.11 "rockchip,rk3066-spi" for rk3066 SoCs.
11 "rockchip,rk3188-spi" for rk3188 SoCs.12 "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
18 interrupts = <11>;18 interrupts = <11>;
19 clocks = <&ahb_gates 21>, <&spi1_clk>;19 clocks = <&ahb_gates 21>, <&spi1_clk>;
20 clock-names = "ahb", "mod";20 clock-names = "ahb", "mod";
21 status = "disabled";
22 #address-cells = <1>;21 #address-cells = <1>;
23 #size-cells = <0>;22 #size-cells = <0>;
24};23};
Documentation/devicetree/bindings/spi/spi-sun6i.txt+0−1
@@ -39,7 +39,6 @@ spi0: spi@01c68000 { · 38 unmodified lines
39 pinctrl-names = "default";39 pinctrl-names = "default";
40 pinctrl-0 = <&spi0_pins>;40 pinctrl-0 = <&spi0_pins>;
41 resets = <&ccu RST_BUS_SPI0>;41 resets = <&ccu RST_BUS_SPI0>;
42 status = "disabled";
43 #address-cells = <1>;42 #address-cells = <1>;
44 #size-cells = <0>;43 #size-cells = <0>;
45};44};
Documentation/devicetree/bindings/spi/spi_atmel.txt+0−1
@@ -26,7 +26,6 @@ spi1: spi@fffcc000 { · 25 unmodified lines
26 clock-names = "spi_clk";26 clock-names = "spi_clk";
27 cs-gpios = <&pioB 3 0>;27 cs-gpios = <&pioB 3 0>;
28 atmel,fifo-size = <32>;28 atmel,fifo-size = <32>;
29 status = "okay";
30 29
31 mmc-slot@0 {30 mmc-slot@0 {
32 compatible = "mmc-spi-slot";31 compatible = "mmc-spi-slot";
Documentation/devicetree/bindings/sram/renesas,smp-sram.txt+27−0
@@ -0,0 +1,27 @@
1* Renesas SMP SRAM
2
3Renesas R-Car Gen2 and RZ/G1 SoCs need a small piece of SRAM for the jump stub
4for secondary CPU bringup and CPU hotplug.
5This memory is reserved by adding a child node to a "mmio-sram" node, cfr.
6Documentation/devicetree/bindings/sram/sram.txt.
7
8Required 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
14Example:
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
9---------------9---------------
10 10
11Required properties:11Required properties:
12- compatible : "allwinner,sun4i-a10-sram-controller"12- compatible : should be:
13 - "allwinner,sun4i-a10-sram-controller"
14 - "allwinner,sun50i-a64-sram-controller"
13- reg : sram controller register offset + length15- reg : sram controller register offset + length
14 16
15SRAM nodes17SRAM nodes
@@ -22,10 +24,13 @@ Each SRAM will have SRAM sections that are going to be handled by the · 6 unmodified lines
22SRAM controller as subnodes. These sections are represented following24SRAM controller as subnodes. These sections are represented following
23once again the representation described in the mmio-sram binding.25once again the representation described in the mmio-sram binding.
24 26
25The valid sections compatible are:27The valid sections compatible for A10 are:
26 - allwinner,sun4i-a10-sram-a3-a428 - allwinner,sun4i-a10-sram-a3-a4
27 - allwinner,sun4i-a10-sram-d29 - allwinner,sun4i-a10-sram-d
28 30
31The valid sections compatible for A64 are:
32 - allwinner,sun50i-a64-sram-c
33
29Devices using SRAM sections34Devices using SRAM sections
30---------------------------35---------------------------
31 36
@@ -59,7 +64,6 @@ sram-controller@01c00000 { · 27 unmodified lines
59 emac_sram: sram-section@8000 {64 emac_sram: sram-section@8000 {
60 compatible = "allwinner,sun4i-a10-sram-a3-a4";65 compatible = "allwinner,sun4i-a10-sram-a3-a4";
61 reg = <0x8000 0x4000>;66 reg = <0x8000 0x4000>;
62 status = "disabled";
63 };67 };
64 };68 };
65};69};
Documentation/devicetree/bindings/thermal/armada-thermal.txt+0−1
@@ -20,5 +20,4 @@ Example: · 19 unmodified lines
20 compatible = "marvell,armada370-thermal";20 compatible = "marvell,armada370-thermal";
21 reg = <0xd0018300 0x421 reg = <0xd0018300 0x4
22 0xd0018304 0x4>;22 0xd0018304 0x4>;
23 status = "okay";
24 };23 };
Documentation/devicetree/bindings/thermal/exynos-thermal.txt+0−1
@@ -77,7 +77,6 @@ Example 1): · 76 unmodified lines
77 interrupts = <2 4>;77 interrupts = <2 4>;
78 clocks = <&clock 383>;78 clocks = <&clock 383>;
79 clock-names = "tmu_apbif";79 clock-names = "tmu_apbif";
80 status = "disabled";
81 vtmu-supply = <&tmu_regulator_node>;80 vtmu-supply = <&tmu_regulator_node>;
82 #include "exynos4412-tmu-sensor-conf.dtsi"81 #include "exynos4412-tmu-sensor-conf.dtsi"
83 };82 };
Documentation/devicetree/bindings/thermal/mediatek-thermal.txt+1−0
@@ -11,6 +11,7 @@ Required properties: · 10 unmodified lines
11- compatible:11- compatible:
12 - "mediatek,mt8173-thermal" : For MT8173 family of SoCs12 - "mediatek,mt8173-thermal" : For MT8173 family of SoCs
13 - "mediatek,mt2701-thermal" : For MT2701 family of SoCs13 - "mediatek,mt2701-thermal" : For MT2701 family of SoCs
14 - "mediatek,mt2712-thermal" : For MT2712 family of SoCs
14- reg: Address range of the thermal controller15- reg: Address range of the thermal controller
15- interrupts: IRQ for the thermal controller16- interrupts: IRQ for the thermal controller
16- clocks, clock-names: Clocks needed for the thermal controller. required17- 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
36 clocks = <&cpg CPG_MOD 522>;36 clocks = <&cpg CPG_MOD 522>;
37 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;37 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
38 #thermal-sensor-cells = <1>;38 #thermal-sensor-cells = <1>;
39 status = "okay";
40 };39 };
41 40
42 thermal-zones {41 thermal-zones {
Documentation/devicetree/bindings/thermal/rockchip-thermal.txt+1−0
@@ -4,6 +4,7 @@ Required properties: · 3 unmodified lines
4- compatible : should be "rockchip,<name>-tsadc"4- compatible : should be "rockchip,<name>-tsadc"
5 "rockchip,rk3228-tsadc": found on RK3228 SoCs5 "rockchip,rk3228-tsadc": found on RK3228 SoCs
6 "rockchip,rk3288-tsadc": found on RK3288 SoCs6 "rockchip,rk3288-tsadc": found on RK3288 SoCs
7 "rockchip,rk3328-tsadc": found on RK3328 SoCs
7 "rockchip,rk3368-tsadc": found on RK3368 SoCs8 "rockchip,rk3368-tsadc": found on RK3368 SoCs
8 "rockchip,rk3399-tsadc": found on RK3399 SoCs9 "rockchip,rk3399-tsadc": found on RK3399 SoCs
9- reg : physical base address of the controller and length of memory mapped10- 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
3This describes the devicetree bindings for thermal monitor supported by
4PVT(Process, Voltage and Temperature) monitoring unit implemented on Socionext
5UniPhier SoCs.
6
7Required 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
14Optional 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
19Example:
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 @@
1NXP Low Power Timer/Pulse Width Modulation Module (TPM)
2
3The Timer/PWM Module (TPM) supports input capture, output compare,
4and the generation of PWM signals to control electric motor and power
5management applications. The counter, compare and capture registers
6are clocked by an asynchronous clock that can remain enabled in low
7power modes. TPM can support global counter bus where one TPM drives
8the counter bus for the others, provided bit width is the same.
9
10Required 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
20Example:
21tpm5: 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
12Required Properties:12Required Properties:
13 13
14 - compatible: must contain one or more of the following:14 - 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)
37 - "renesas,cmt-48-sh73a0" for the sh73A0 48-bit CMT15 - "renesas,cmt-48-sh73a0" for the sh73A0 48-bit CMT
38 (CMT1)16 (CMT1)
39 - "renesas,cmt-48-r8a7740" for the r8a7740 48-bit CMT17 - "renesas,cmt-48-r8a7740" for the r8a7740 48-bit CMT
40 (CMT1)18 (CMT1)
41 - "renesas,cmt-48" for all non-second generation 48-bit CMT19 - "renesas,cmt-48" for all non-second generation 48-bit CMT
42 (CMT1 on sh7372, sh73a0 and r8a7740)20 (CMT1 on sh73a0 and r8a7740)
43 This is a fallback for the above renesas,cmt-48-* entries.21 This is a fallback for the above renesas,cmt-48-* entries.
44 22
45 - "renesas,cmt-48-r8a73a4" for the r8a73a4 48-bit CMT23 - "renesas,cmt0-r8a73a4" for the 32-bit CMT0 device included in r8a73a4.
46 (CMT[01])24 - "renesas,cmt1-r8a73a4" for the 48-bit CMT1 device included in r8a73a4.
47 - "renesas,cmt-48-r8a7790" for the r8a7790 48-bit CMT25 - "renesas,cmt0-r8a7790" for the 32-bit CMT0 device included in r8a7790.
48 (CMT[01])26 - "renesas,cmt1-r8a7790" for the 48-bit CMT1 device included in r8a7790.
49 - "renesas,cmt-48-r8a7791" for the r8a7791 48-bit CMT27 - "renesas,cmt0-r8a7791" for the 32-bit CMT0 device included in r8a7791.
50 (CMT[01])28 - "renesas,cmt1-r8a7791" for the 48-bit CMT1 device included in r8a7791.
51 - "renesas,cmt-48-gen2" for all second generation 48-bit CMT29 - "renesas,cmt0-r8a7793" for the 32-bit CMT0 device included in r8a7793.
52 (CMT[01] on r8a73a4, r8a7790 and r8a7791)30 - "renesas,cmt1-r8a7793" for the 48-bit CMT1 device included in r8a7793.
53 This is a fallback for the renesas,cmt-48-r8a73a4,31 - "renesas,cmt0-r8a7794" for the 32-bit CMT0 device included in r8a7794.
54 renesas,cmt-48-r8a7790 and renesas,cmt-48-r8a7791 entries.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.
55 38
56 - reg: base address and length of the registers block for the timer module.39 - reg: base address and length of the registers block for the timer module.
57 - interrupts: interrupt-specifier for the timer, one per channel.40 - interrupts: interrupt-specifier for the timer, one per channel.
@@ -59,21 +42,29 @@ Required Properties: · 1 unmodified line
59 in clock-names.42 in clock-names.
60 - clock-names: must contain "fck" for the functional clock.43 - clock-names: must contain "fck" for the functional clock.
61 44
62 - renesas,channels-mask: bitmask of the available channels.
63 45
64 46Example: R8A7790 (R-Car H2) CMT0 and CMT1 nodes
65Example: 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.
69 47
70 cmt0: timer@ffca0000 {48 cmt0: timer@ffca0000 {
71 compatible = "renesas,cmt-48-r8a7790", "renesas,cmt-48-gen2";49 compatible = "renesas,cmt0-r8a7790", "renesas,rcar-gen2-cmt0";
72 reg = <0 0xffca0000 0 0x1004>;50 reg = <0 0xffca0000 0 0x1004>;
73 interrupts = <0 142 IRQ_TYPE_LEVEL_HIGH>,51 interrupts = <0 142 IRQ_TYPE_LEVEL_HIGH>,
74 <0 142 IRQ_TYPE_LEVEL_HIGH>;52 <0 142 IRQ_TYPE_LEVEL_HIGH>;
75 clocks = <&mstp1_clks R8A7790_CLK_CMT0>;53 clocks = <&mstp1_clks R8A7790_CLK_CMT0>;
76 clock-names = "fck";54 clock-names = "fck";
55 };
77 56
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";
79 };70 };
Documentation/devicetree/bindings/trivial-devices.txt+14−0
@@ -21,6 +21,16 @@ adi,adt7490 +/-1C TDM Extended Temp Range I.C · 20 unmodified lines
21adi,adxl345 Three-Axis Digital Accelerometer21adi,adxl345 Three-Axis Digital Accelerometer
22adi,adxl346 Three-Axis Digital Accelerometer (backward-compatibility value "adi,adxl345" must be listed too)22adi,adxl346 Three-Axis Digital Accelerometer (backward-compatibility value "adi,adxl345" must be listed too)
23ams,iaq-core AMS iAQ-Core VOC Sensor23ams,iaq-core AMS iAQ-Core VOC Sensor
24amstaos,tsl2571 AMS/TAOS ALS and proximity sensor
25amstaos,tsl2671 AMS/TAOS ALS and proximity sensor
26amstaos,tmd2671 AMS/TAOS ALS and proximity sensor
27amstaos,tsl2771 AMS/TAOS ALS and proximity sensor
28amstaos,tmd2771 AMS/TAOS ALS and proximity sensor
29amstaos,tsl2572 AMS/TAOS ALS and proximity sensor
30amstaos,tsl2672 AMS/TAOS ALS and proximity sensor
31amstaos,tmd2672 AMS/TAOS ALS and proximity sensor
32amstaos,tsl2772 AMS/TAOS ALS and proximity sensor
33amstaos,tmd2772 AMS/TAOS ALS and proximity sensor
24at,24c08 i2c serial eeprom (24cxx)34at,24c08 i2c serial eeprom (24cxx)
25atmel,at97sc3204t i2c trusted platform module (TPM)35atmel,at97sc3204t i2c trusted platform module (TPM)
26capella,cm32181 CM32181: Ambient Light Sensor36capella,cm32181 CM32181: Ambient Light Sensor
@@ -36,7 +46,9 @@ dallas,ds1775 Tiny Digital Thermometer and Thermostat · 9 unmodified lines
36dallas,ds3232 Extremely Accurate I²C RTC with Integrated Crystal and SRAM46dallas,ds3232 Extremely Accurate I²C RTC with Integrated Crystal and SRAM
37dallas,ds4510 CPU Supervisor with Nonvolatile Memory and Programmable I/O47dallas,ds4510 CPU Supervisor with Nonvolatile Memory and Programmable I/O
38dallas,ds75 Digital Thermometer and Thermostat48dallas,ds75 Digital Thermometer and Thermostat
49devantech,srf02 Devantech SRF02 ultrasonic ranger in I2C mode
39devantech,srf08 Devantech SRF08 ultrasonic ranger50devantech,srf08 Devantech SRF08 ultrasonic ranger
51devantech,srf10 Devantech SRF10 ultrasonic ranger
40dlg,da9053 DA9053: flexible system level PMIC with multicore support52dlg,da9053 DA9053: flexible system level PMIC with multicore support
41dlg,da9063 DA9063: system PMIC for quad-core application processors53dlg,da9063 DA9063: system PMIC for quad-core application processors
42domintech,dmard09 DMARD09: 3-axis Accelerometer54domintech,dmard09 DMARD09: 3-axis Accelerometer
@@ -54,6 +66,7 @@ fsl,sgtl5000 SGTL5000: Ultra Low-Power Audio Codec · 11 unmodified lines
54gmt,g751 G751: Digital Temperature Sensor and Thermal Watchdog with Two-Wire Interface66gmt,g751 G751: Digital Temperature Sensor and Thermal Watchdog with Two-Wire Interface
55infineon,slb9635tt Infineon SLB9635 (Soft-) I2C TPM (old protocol, max 100khz)67infineon,slb9635tt Infineon SLB9635 (Soft-) I2C TPM (old protocol, max 100khz)
56infineon,slb9645tt Infineon SLB9645 I2C TPM (new protocol, max 400khz)68infineon,slb9645tt Infineon SLB9645 I2C TPM (new protocol, max 400khz)
69isil,isl1208 Intersil ISL1208 Low Power RTC with Battery Backed SRAM
57isil,isl29028 Intersil ISL29028 Ambient Light and Proximity Sensor70isil,isl29028 Intersil ISL29028 Ambient Light and Proximity Sensor
58isil,isl29030 Intersil ISL29030 Ambient Light and Proximity Sensor71isil,isl29030 Intersil ISL29030 Ambient Light and Proximity Sensor
59maxim,ds1050 5 Bit Programmable, Pulse-Width Modulator72maxim,ds1050 5 Bit Programmable, Pulse-Width Modulator
@@ -168,6 +181,7 @@ st,m41t80 M41T80 - SERIAL ACCESS RTC WITH ALARMS · 108 unmodified lines
168taos,tsl2550 Ambient Light Sensor with SMBUS/Two Wire Serial Interface181taos,tsl2550 Ambient Light Sensor with SMBUS/Two Wire Serial Interface
169ti,ads7828 8-Channels, 12-bit ADC182ti,ads7828 8-Channels, 12-bit ADC
170ti,ads7830 8-Channels, 8-bit ADC183ti,ads7830 8-Channels, 8-bit ADC
184ti,amc6821 Temperature Monitoring and Fan Control
171ti,tsc2003 I2C Touch-Screen Controller185ti,tsc2003 I2C Touch-Screen Controller
172ti,tmp102 Low Power Digital Temperature Sensor with SMBUS/Two Wire Serial Interface186ti,tmp102 Low Power Digital Temperature Sensor with SMBUS/Two Wire Serial Interface
173ti,tmp103 Low Power Digital Temperature Sensor with SMBUS/Two Wire Serial Interface187ti,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
10Example:10Example:
11 unittest {11 unittest {
12 compatible = "unittest";12 compatible = "unittest";
13 status = "okay";
14 };13 };
15 14
162) OF unittest i2c adapter platform device152) OF unittest i2c adapter platform device
@@ -25,7 +24,6 @@ Children nodes contain unittest i2c devices. · 8 unmodified lines
25Example:24Example:
26 unittest-i2c-bus {25 unittest-i2c-bus {
27 compatible = "unittest-i2c-bus";26 compatible = "unittest-i2c-bus";
28 status = "okay";
29 };27 };
30 28
313) OF unittest i2c device293) OF unittest i2c device
@@ -40,7 +38,6 @@ All other properties are optional · 8 unmodified lines
40Example:38Example:
41 unittest-i2c-dev {39 unittest-i2c-dev {
42 compatible = "unittest-i2c-dev";40 compatible = "unittest-i2c-dev";
43 status = "okay";
44 };41 };
45 42
464) OF unittest i2c mux device434) OF unittest i2c mux device
@@ -55,7 +52,6 @@ Children nodes contain unittest i2c bus nodes per channel. · 8 unmodified lines
55Example:52Example:
56 unittest-i2c-mux {53 unittest-i2c-mux {
57 compatible = "unittest-i2c-mux";54 compatible = "unittest-i2c-mux";
58 status = "okay";
59 #address-cells = <1>;55 #address-cells = <1>;
60 #size-cells = <0>;56 #size-cells = <0>;
61 channel-0 {57 channel-0 {
@@ -65,7 +61,6 @@ Example: · 3 unmodified lines
65 i2c-dev {61 i2c-dev {
66 reg = <8>;62 reg = <8>;
67 compatible = "unittest-i2c-dev";63 compatible = "unittest-i2c-dev";
68 status = "okay";
69 };64 };
70 };65 };
71 };66 };
Documentation/devicetree/bindings/usb/allwinner,sun4i-a10-musb.txt+0−1
@@ -25,5 +25,4 @@ Example: · 24 unmodified lines
25 phys = <&usbphy 0>;25 phys = <&usbphy 0>;
26 phy-names = "usb";26 phy-names = "usb";
27 extcon = <&usbphy 0>;27 extcon = <&usbphy 0>;
28 status = "disabled";
29 };28 };
Documentation/devicetree/bindings/usb/am33xx-usb.txt+2−2
@@ -4,9 +4,9 @@ · 3 unmodified lines
4- reg: offset and length of the usbss register sets4- reg: offset and length of the usbss register sets
5- ti,hwmods : must be "usb_otg_hs"5- ti,hwmods : must be "usb_otg_hs"
6 6
7The glue layer contains multiple child nodes. It is required the have7The glue layer contains multiple child nodes. It is required to have
8at least a control module node, USB node and a PHY node. The second USB8at least a control module node, USB node and a PHY node. The second USB
9node and its PHY node is optional. The DMA node is also optional.9node and its PHY node are optional. The DMA node is also optional.
10 10
11Reset module11Reset module
12~~~~~~~~~~~~12~~~~~~~~~~~~
Documentation/devicetree/bindings/usb/brcm,bdc.txt+29−0
@@ -0,0 +1,29 @@
1Broadcom USB Device Controller (BDC)
2====================================
3
4Required 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
12Optional properties:
13
14On 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
21Example:
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
42 usb_phy: usb-phy {42 usb_phy: usb-phy {
43 compatible = "ti,da830-usb-phy";43 compatible = "ti,da830-usb-phy";
44 #phy-cells = <0>;44 #phy-cells = <0>;
45 status = "okay";
46 };45 };
47 usb0: usb@200000 {46 usb0: usb@200000 {
48 compatible = "ti,da830-musb";47 compatible = "ti,da830-musb";
@@ -66,7 +65,6 @@ Example: · 17 unmodified lines
66 "rx1", "rx2", "rx3", "rx4",65 "rx1", "rx2", "rx3", "rx4",
67 "tx1", "tx2", "tx3", "tx4";66 "tx1", "tx2", "tx3", "tx4";
68 67
69 status = "okay";
70 68
71 cppi41dma: dma-controller@201000 {69 cppi41dma: dma-controller@201000 {
72 compatible = "ti,da830-cppi41";70 compatible = "ti,da830-cppi41";
Documentation/devicetree/bindings/usb/dwc3-st.txt+0−1
@@ -42,7 +42,6 @@ or "device". · 41 unmodified lines
42Example:42Example:
43 43
44st_dwc3: dwc3@8f94000 {44st_dwc3: dwc3@8f94000 {
45 status = "disabled";
46 compatible = "st,stih407-dwc3";45 compatible = "st,stih407-dwc3";
47 reg = <0x08f94000 0x1000>, <0x110 0x4>;46 reg = <0x08f94000 0x1000>, <0x110 0x4>;
48 reg-names = "reg-glue", "syscfg-reg";47 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
18 usb@0 {18 usb@0 {
19 #address-cells = <0x2>;19 #address-cells = <0x2>;
20 #size-cells = <0x1>;20 #size-cells = <0x1>;
21 status = "okay";
22 compatible = "xlnx,zynqmp-dwc3";21 compatible = "xlnx,zynqmp-dwc3";
23 clock-names = "bus_clk" "ref_clk";22 clock-names = "bus_clk" "ref_clk";
24 clocks = <&clk125>, <&clk125>;23 clocks = <&clk125>, <&clk125>;
Documentation/devicetree/bindings/usb/ehci-st.txt+0−1
@@ -31,7 +31,6 @@ Example: · 30 unmodified lines
31 clocks = <&clk_s_a1_ls 0>;31 clocks = <&clk_s_a1_ls 0>;
32 phys = <&usb2_phy>;32 phys = <&usb2_phy>;
33 phy-names = "usb";33 phy-names = "usb";
34 status = "okay";
35 34
36 resets = <&powerdown STIH416_USB1_POWERDOWN>,35 resets = <&powerdown STIH416_USB1_POWERDOWN>,
37 <&softreset STIH416_USB1_SOFTRESET>;36 <&softreset STIH416_USB1_SOFTRESET>;
Documentation/devicetree/bindings/usb/exynos-usb.txt+0−2
@@ -40,7 +40,6 @@ Example: · 39 unmodified lines
40 port@0 {40 port@0 {
41 reg = <0>;41 reg = <0>;
42 phys = <&usb2phy 1>;42 phys = <&usb2phy 1>;
43 status = "disabled";
44 };43 };
45 };44 };
46 45
@@ -75,7 +74,6 @@ Example: · 28 unmodified lines
75 port@0 {74 port@0 {
76 reg = <0>;75 reg = <0>;
77 phys = <&usb2phy 1>;76 phys = <&usb2phy 1>;
78 status = "disabled";
79 };77 };
80 78
81 };79 };
Documentation/devicetree/bindings/usb/fcs,fusb302.txt+29−0
@@ -0,0 +1,29 @@
1Fairchild FUSB302 Type-C Port controllers
2
3Required properties :
4- compatible : "fcs,fusb302"
5- reg : I2C slave address
6- interrupts : Interrupt specifier
7
8Optional 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
19Example:
20
21fusb302: 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
21 interrupt-parent = <&mic>;21 interrupt-parent = <&mic>;
22 interrupts = <0x3d 0>, <0x3e 0>, <0x3c 0>, <0x3a 0>;22 interrupts = <0x3d 0>, <0x3e 0>, <0x3c 0>, <0x3a 0>;
23 transceiver = <&isp1301>;23 transceiver = <&isp1301>;
24 status = "okay";
25 };24 };
Documentation/devicetree/bindings/usb/keystone-usb.txt+15−3
@@ -12,8 +12,21 @@ Required properties: · 11 unmodified lines
12 MPU.12 MPU.
13 - ranges: allows valid 1:1 translation between child's address space and13 - ranges: allows valid 1:1 translation between child's address space and
14 parent's address space.14 parent's address space.
15 - clocks: Clock IDs array as required by the controller.15
16 - clock-names: names of clocks correseponding to IDs in the clock property.16SoC-specific Required Properties:
17The following are mandatory properties for Keystone 2 66AK2HK, 66AK2L and 66AK2E
18SoCs only:
19
20- clocks: Clock ID for USB functional clock.
21- clock-names: Must be "usb".
22
23
24The 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
17 30
18Sub-nodes:31Sub-nodes:
19The dwc3 core should be added as subnode to Keystone DWC3 glue.32The dwc3 core should be added as subnode to Keystone DWC3 glue.
@@ -31,7 +44,6 @@ Example: · 11 unmodified lines
31 clock-names = "usb";44 clock-names = "usb";
32 interrupts = <GIC_SPI 393 IRQ_TYPE_EDGE_RISING>;45 interrupts = <GIC_SPI 393 IRQ_TYPE_EDGE_RISING>;
33 ranges;46 ranges;
34 status = "disabled";
35 47
36 dwc3@2690000 {48 dwc3@2690000 {
37 compatible = "synopsys,dwc3";49 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
11------------------------------------------------------------------------11------------------------------------------------------------------------
12 12
13Required properties:13Required 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"
15 - reg : specifies physical base address and size of the registers19 - reg : specifies physical base address and size of the registers
16 - reg-names: should be "mac" for xHCI MAC and "ippc" for IP port control20 - reg-names: should be "mac" for xHCI MAC and "ippc" for IP port control
17 - interrupts : interrupt used by the controller21 - interrupts : interrupt used by the controller
@@ -68,10 +72,14 @@ usb30: usb@11270000 { · 50 unmodified lines
68 72
69In the case, xhci is added as subnode to mtu3. An example and the DT binding73In the case, xhci is added as subnode to mtu3. An example and the DT binding
70details of mtu3 can be found in:74details of mtu3 can be found in:
71Documentation/devicetree/bindings/usb/mt8173-mtu3.txt75Documentation/devicetree/bindings/usb/mediatek,mtu3.txt
72 76
73Required properties:77Required 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"
75 - reg : specifies physical base address and size of the registers83 - reg : specifies physical base address and size of the registers
76 - reg-names: should be "mac" for xHCI MAC84 - reg-names: should be "mac" for xHCI MAC
77 - interrupts : interrupt used by the host controller85 - 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 @@
1The device node for Mediatek USB3.0 DRD controller1The device node for Mediatek USB3.0 DRD controller
2 2
3Required properties:3Required 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"
5 - reg : specifies physical base address and size of the registers9 - reg : specifies physical base address and size of the registers
6 - reg-names: should be "mac" for device IP and "ippc" for IP port control10 - reg-names: should be "mac" for device IP and "ippc" for IP port control
7 - interrupts : interrupt used by the device IP11 - interrupts : interrupt used by the device IP
@@ -44,7 +48,7 @@ Optional properties: · 36 unmodified lines
44Sub-nodes:48Sub-nodes:
45The xhci should be added as subnode to mtu3 as shown in the following example49The xhci should be added as subnode to mtu3 as shown in the following example
46if host mode is enabled. The DT binding details of xhci can be found in:50if host mode is enabled. The DT binding details of xhci can be found in:
47Documentation/devicetree/bindings/usb/mt8173-xhci.txt51Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.txt
48 52
49Example:53Example:
50ssusb: usb@11271000 {54ssusb: usb@11271000 {
@@ -71,7 +75,6 @@ ssusb: usb@11271000 { · 20 unmodified lines
71 #address-cells = <2>;75 #address-cells = <2>;
72 #size-cells = <2>;76 #size-cells = <2>;
73 ranges;77 ranges;
74 status = "disabled";
75 78
76 usb_host: xhci@11270000 {79 usb_host: xhci@11270000 {
77 compatible = "mediatek,mt8173-xhci";80 compatible = "mediatek,mt8173-xhci";
@@ -82,6 +85,5 @@ ssusb: usb@11271000 { · 4 unmodified lines
82 clocks = <&topckgen CLK_TOP_USB30_SEL>, <&clk26m>;85 clocks = <&topckgen CLK_TOP_USB30_SEL>, <&clk26m>;
83 clock-names = "sys_ck", "ref_ck";86 clock-names = "sys_ck", "ref_ck";
84 vusb33-supply = <&mt6397_vusb_reg>;87 vusb33-supply = <&mt6397_vusb_reg>;
85 status = "disabled";
86 };88 };
87};89};
Documentation/devicetree/bindings/usb/ohci-st.txt+0−1
@@ -29,7 +29,6 @@ Example: · 28 unmodified lines
29 clock-names = "ic", "clk48";29 clock-names = "ic", "clk48";
30 phys = <&usb2_phy>;30 phys = <&usb2_phy>;
31 phy-names = "usb";31 phy-names = "usb";
32 status = "okay";
33 32
34 resets = <&powerdown STIH416_USB0_POWERDOWN>,33 resets = <&powerdown STIH416_USB0_POWERDOWN>,
35 <&softreset STIH416_USB0_SOFTRESET>;34 <&softreset STIH416_USB0_SOFTRESET>;
Documentation/devicetree/bindings/usb/qcom,dwc3.txt+0−3
@@ -29,7 +29,6 @@ Example device nodes: · 28 unmodified lines
29 clock-names = "ref";29 clock-names = "ref";
30 #phy-cells = <0>;30 #phy-cells = <0>;
31 31
32 status = "ok";
33 };32 };
34 33
35 ss_phy: phy@100f8830 {34 ss_phy: phy@100f8830 {
@@ -39,7 +38,6 @@ Example device nodes: · 3 unmodified lines
39 clock-names = "ref";38 clock-names = "ref";
40 #phy-cells = <0>;39 #phy-cells = <0>;
41 40
42 status = "ok";
43 };41 };
44 42
45 usb3_0: usb30@0 {43 usb3_0: usb30@0 {
@@ -51,7 +49,6 @@ Example device nodes: · 5 unmodified lines
51 49
52 ranges;50 ranges;
53 51
54 status = "ok";
55 52
56 dwc3@10000000 {53 dwc3@10000000 {
57 compatible = "snps,dwc3";54 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
3Required properties:3Required properties:
4 - compatible: Must contain one of the following:4 - compatible: Must contain one of the following:
5 - "renesas,r8a7795-usb3-peri"5 - "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
6 - reg: Base address and length of the register for the USB3.0 Peripheral14 - reg: Base address and length of the register for the USB3.0 Peripheral
7 - interrupts: Interrupt specifier for the USB3.0 Peripheral15 - interrupts: Interrupt specifier for the USB3.0 Peripheral
8 - clocks: clock phandle and specifier pair16 - clocks: clock phandle and specifier pair
9 17
10Example:18Example of R-Car H3 ES1.x:
11 usb3_peri0: usb@ee020000 {19 usb3_peri0: usb@ee020000 {
12 compatible = "renesas,r8a7795-usb3-peri";20 compatible = "renesas,r8a7795-usb3-peri",
21 "renesas,rcar-gen3-usb3-peri";
13 reg = <0 0xee020000 0 0x400>;22 reg = <0 0xee020000 0 0x400>;
14 interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;23 interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
15 clocks = <&cpg CPG_MOD 328>;24 clocks = <&cpg CPG_MOD 328>;
16 };25 };
17 26
18 usb3_peri1: usb@ee060000 {27 usb3_peri1: usb@ee060000 {
19 compatible = "renesas,r8a7795-usb3-peri";28 compatible = "renesas,r8a7795-usb3-peri",
29 "renesas,rcar-gen3-usb3-peri";
20 reg = <0 0xee060000 0 0x400>;30 reg = <0 0xee060000 0 0x400>;
21 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;31 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
22 clocks = <&cpg CPG_MOD 327>;32 clocks = <&cpg CPG_MOD 327>;
Documentation/devicetree/bindings/usb/rockchip,dwc3.txt+0−4
@@ -29,13 +29,11 @@ Example device nodes: · 28 unmodified lines
29 #address-cells = <2>;29 #address-cells = <2>;
30 #size-cells = <2>;30 #size-cells = <2>;
31 ranges;31 ranges;
32 status = "disabled";
33 usbdrd_dwc3_0: dwc3@fe800000 {32 usbdrd_dwc3_0: dwc3@fe800000 {
34 compatible = "snps,dwc3";33 compatible = "snps,dwc3";
35 reg = <0x0 0xfe800000 0x0 0x100000>;34 reg = <0x0 0xfe800000 0x0 0x100000>;
36 interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;35 interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
37 dr_mode = "otg";36 dr_mode = "otg";
38 status = "disabled";
39 };37 };
40 };38 };
41 39
@@ -48,12 +46,10 @@ Example device nodes: · 6 unmodified lines
48 #address-cells = <2>;46 #address-cells = <2>;
49 #size-cells = <2>;47 #size-cells = <2>;
50 ranges;48 ranges;
51 status = "disabled";
52 usbdrd_dwc3_1: dwc3@fe900000 {49 usbdrd_dwc3_1: dwc3@fe900000 {
53 compatible = "snps,dwc3";50 compatible = "snps,dwc3";
54 reg = <0x0 0xfe900000 0x0 0x100000>;51 reg = <0x0 0xfe900000 0x0 0x100000>;
55 interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;52 interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
56 dr_mode = "otg";53 dr_mode = "otg";
57 status = "disabled";
58 };54 };
59 };55 };
Documentation/devicetree/bindings/usb/usb-device.txt+1−2
@@ -2,7 +2,7 @@ Generic USB Device Properties · 1 unmodified line
2 2
3Usually, we only use device tree for hard wired USB device.3Usually, we only use device tree for hard wired USB device.
4The reference binding doc is from:4The reference binding doc is from:
5http://www.firmware.org/1275/bindings/usb/usb-1_0.ps5http://www.devicetree.org/open-firmware/bindings/usb/usb-1_0.ps
6 6
7Required properties:7Required properties:
8- compatible: usbVID,PID. The textual representation of VID, PID shall8- compatible: usbVID,PID. The textual representation of VID, PID shall
@@ -16,7 +16,6 @@ Required properties: · 7 unmodified lines
16Example:16Example:
17 17
18&usb1 {18&usb1 {
19 status = "okay";
20 19
21 #address-cells = <1>;20 #address-cells = <1>;
22 #size-cells = <0>;21 #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
3This isn't an exhaustive list, but you should add new prefixes to it before3This isn't an exhaustive list, but you should add new prefixes to it before
4using them to avoid name-space collisions.4using them to avoid name-space collisions.
5 5
6abcn Abracon Corporation
7abilis Abilis Systems6abilis Abilis Systems
7abracon Abracon Corporation
8actions Actions Semiconductor Co., Ltd.8actions Actions Semiconductor Co., Ltd.
9active-semi Active-Semi International Inc9active-semi Active-Semi International Inc
10ad Avionic Design GmbH10ad Avionic Design GmbH
11adapteva Adapteva, Inc.11adapteva Adapteva, Inc.
12adaptrum Adaptrum, Inc.
12adh AD Holdings Plc.13adh AD Holdings Plc.
13adi Analog Devices, Inc.14adi Analog Devices, Inc.
14advantech Advantech Corporation15advantech Advantech Corporation
@@ -47,6 +48,7 @@ avic Shanghai AVIC Optoelectronics Co., Ltd. · 32 unmodified lines
47axentia Axentia Technologies AB48axentia Axentia Technologies AB
48axis Axis Communications AB49axis Axis Communications AB
49bananapi BIPAI KEJI LIMITED50bananapi BIPAI KEJI LIMITED
51bhf Beckhoff Automation GmbH & Co. KG
50boe BOE Technology Group Co., Ltd.52boe BOE Technology Group Co., Ltd.
51bosch Bosch Sensortec GmbH53bosch Bosch Sensortec GmbH
52boundary Boundary Devices Inc.54boundary Boundary Devices Inc.
@@ -176,6 +178,7 @@ kosagi Sutajio Ko-Usagi PTE Ltd. · 123 unmodified lines
176kyo Kyocera Corporation178kyo Kyocera Corporation
177lacie LaCie179lacie LaCie
178lantiq Lantiq Semiconductor180lantiq Lantiq Semiconductor
181lattice Lattice Semiconductor
179lego LEGO Systems A/S182lego LEGO Systems A/S
180lenovo Lenovo Group Ltd.183lenovo Lenovo Group Ltd.
181lg LG Corporation184lg LG Corporation
@@ -196,6 +199,7 @@ mediatek MediaTek Inc. · 14 unmodified lines
196megachips MegaChips199megachips MegaChips
197melexis Melexis N.V.200melexis Melexis N.V.
198melfas MELFAS Inc.201melfas MELFAS Inc.
202mellanox Mellanox Technologies
199memsic MEMSIC Inc.203memsic MEMSIC Inc.
200merrii Merrii Technology Co., Ltd.204merrii Merrii Technology Co., Ltd.
201micrel Micrel Inc.205micrel Micrel Inc.
@@ -207,7 +211,7 @@ miramems MiraMEMS Sensing Technology Co., Ltd. · 5 unmodified lines
207mitsubishi Mitsubishi Electric Corporation211mitsubishi Mitsubishi Electric Corporation
208mosaixtech Mosaix Technologies, Inc.212mosaixtech Mosaix Technologies, Inc.
209motorola Motorola, Inc.213motorola Motorola, Inc.
210moxa Moxa214moxa Moxa Inc.
211mpl MPL AG215mpl MPL AG
212mqmaker mqmaker Inc.216mqmaker mqmaker Inc.
213msi Micro-Star International Co. Ltd.217msi Micro-Star International Co. Ltd.
@@ -250,6 +254,7 @@ oxsemi Oxford Semiconductor, Ltd. · 36 unmodified lines
250panasonic Panasonic Corporation254panasonic Panasonic Corporation
251parade Parade Technologies Inc.255parade Parade Technologies Inc.
252pericom Pericom Technology Inc.256pericom Pericom Technology Inc.
257pervasive Pervasive Displays, Inc.
253phytec PHYTEC Messtechnik GmbH258phytec PHYTEC Messtechnik GmbH
254picochip Picochip Ltd259picochip Picochip Ltd
255pine64 Pine64260pine64 Pine64
@@ -288,6 +293,7 @@ schindler Schindler · 32 unmodified lines
288seagate Seagate Technology PLC293seagate Seagate Technology PLC
289semtech Semtech Corporation294semtech Semtech Corporation
290sensirion Sensirion AG295sensirion Sensirion AG
296sff Small Form Factor Committee
291sgx SGX Sensortech297sgx SGX Sensortech
292sharp Sharp Corporation298sharp Sharp Corporation
293si-en Si-En Technology Ltd.299si-en Si-En Technology Ltd.
@@ -342,6 +348,7 @@ tpo TPO · 48 unmodified lines
342tronfy Tronfy348tronfy Tronfy
343tronsmart Tronsmart349tronsmart Tronsmart
344truly Truly Semiconductors Limited350truly Truly Semiconductors Limited
351tsd Theobroma Systems Design und Consulting GmbH
345tyan Tyan Computer Corporation352tyan Tyan Computer Corporation
346ucrobotics uCRobotics353ucrobotics uCRobotics
347udoo Udoo354udoo Udoo
@@ -354,6 +361,7 @@ variscite Variscite Ltd. · 6 unmodified lines
354via VIA Technologies, Inc.361via VIA Technologies, Inc.
355virtio Virtual I/O Device Specification, developed by the OASIS consortium362virtio Virtual I/O Device Specification, developed by the OASIS consortium
356vivante Vivante Corporation363vivante Vivante Corporation
364vocore VoCore Studio
357voipac Voipac Technologies s.r.o.365voipac Voipac Technologies s.r.o.
358wd Western Digital Corp.366wd Western Digital Corp.
359wetek WeTek Electronics, limited.367wetek WeTek Electronics, limited.
Documentation/devicetree/bindings/w1/fsl-imx-owire.txt+0−1
@@ -15,5 +15,4 @@ owire: owire@63fa4000 { · 14 unmodified lines
15 compatible = "fsl,imx53-owire", "fsl,imx21-owire";15 compatible = "fsl,imx53-owire", "fsl,imx21-owire";
16 reg = <0x63fa4000 0x4000>;16 reg = <0x63fa4000 0x4000>;
17 clocks = <&clks 159>;17 clocks = <&clks 159>;
18 status = "disabled";
19};18};
Documentation/devicetree/bindings/watchdog/aspeed-wdt.txt+40−0
@@ -8,9 +8,49 @@ Required properties: · 7 unmodified lines
8 - reg: physical base address of the controller and length of memory mapped8 - reg: physical base address of the controller and length of memory mapped
9 region9 region
10 10
11Optional 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
42Optional 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
11Example:49Example:
12 50
13 wdt1: watchdog@1e785000 {51 wdt1: watchdog@1e785000 {
14 compatible = "aspeed,ast2400-wdt";52 compatible = "aspeed,ast2400-wdt";
15 reg = <0x1e785000 0x1c>;53 reg = <0x1e785000 0x1c>;
54 aspeed,reset-type = "system";
55 aspeed,external-signal;
16 };56 };
Documentation/devicetree/bindings/watchdog/atmel-sama5d4-wdt.txt+0−1
@@ -31,5 +31,4 @@ Example: · 30 unmodified lines
31 atmel,watchdog-type = "hardware";31 atmel,watchdog-type = "hardware";
32 atmel,dbg-halt;32 atmel,dbg-halt;
33 atmel,idle-halt;33 atmel,idle-halt;
34 status = "okay";
35 };34 };
Documentation/devicetree/bindings/watchdog/atmel-wdt.txt+0−1
@@ -48,5 +48,4 @@ Example: · 47 unmodified lines
48 atmel,idle-halt;48 atmel,idle-halt;
49 atmel,max-heartbeat-sec = <16>;49 atmel,max-heartbeat-sec = <16>;
50 atmel,min-heartbeat-sec = <0>;50 atmel,min-heartbeat-sec = <0>;
51 status = "okay";
52 };51 };
Documentation/devicetree/bindings/watchdog/lantiq-wdt.txt+24−0
@@ -0,0 +1,24 @@
1Lantiq WTD watchdog binding
2============================
3
4This describes the binding of the Lantiq watchdog driver.
5
6-------------------------------------------------------------------------------
7Required 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-------------------------------------------------------------------------------
18Example 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
41 reg = <0x20300 0x28>, <0x20108 0x4>;41 reg = <0x20300 0x28>, <0x20108 0x4>;
42 interrupts = <3>;42 interrupts = <3>;
43 timeout-sec = <10>;43 timeout-sec = <10>;
44 status = "okay";
45 clocks = <&gate_clk 7>;44 clocks = <&gate_clk 7>;
46 };45 };
Documentation/devicetree/bindings/watchdog/meson-wdt.txt+5−1
@@ -2,7 +2,11 @@ Meson SoCs Watchdog timer · 1 unmodified line
2 2
3Required properties:3Required properties:
4 4
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
6- reg : Specifies base physical address and size of the registers.10- reg : Specifies base physical address and size of the registers.
7 11
8Example:12Example:
Documentation/devicetree/bindings/watchdog/mtk-wdt.txt+5−3
@@ -3,9 +3,11 @@ Mediatek SoCs Watchdog timer · 2 unmodified lines
3Required properties:3Required properties:
4 4
5- compatible should contain:5- compatible should contain:
6 * "mediatek,mt2701-wdt" for MT2701 compatible watchdog timers6 "mediatek,mt2701-wdt", "mediatek,mt6589-wdt": for MT2701
7 * "mediatek,mt6589-wdt" for all compatible watchdog timers (MT2701,7 "mediatek,mt6589-wdt": for MT6589
8 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
9 11
10- reg : Specifies base physical address and size of the registers.12- reg : Specifies base physical address and size of the registers.
11 13
Documentation/devicetree/bindings/watchdog/renesas-wdt.txt+1−0
@@ -6,6 +6,7 @@ Required properties: · 5 unmodified lines
6 Examples with soctypes are:6 Examples with soctypes are:
7 - "renesas,r8a7795-wdt" (R-Car H3)7 - "renesas,r8a7795-wdt" (R-Car H3)
8 - "renesas,r8a7796-wdt" (R-Car M3-W)8 - "renesas,r8a7796-wdt" (R-Car M3-W)
9 - "renesas,r8a77995-wdt" (R-Car D3)
9 - "renesas,r7s72100-wdt" (RZ/A1)10 - "renesas,r7s72100-wdt" (RZ/A1)
10 11
11 When compatible with the generic version, nodes must list the SoC-specific12 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
281 capabilities of the underlying ICAP hardware281 capabilities of the underlying ICAP hardware
282 differ between different families. May be282 differ between different families. May be
283 'virtex2p', 'virtex4', or 'virtex5'.283 'virtex2p', 'virtex4', or 'virtex5'.
284 - compatible : should contain "xlnx,xps-hwicap-1.00.a" or
285 "xlnx,opb-hwicap-1.00.b".
284 286
285 vi) Xilinx Uart 16550287 vi) Xilinx Uart 16550
286 288
Documentation/devicetree/booting-without-of.txt+1−1
@@ -1282,7 +1282,7 @@ hierarchy and routing of interrupts in the hardware. · 1281 unmodified lines
1282The interrupt tree model is fully described in the1282The interrupt tree model is fully described in the
1283document "Open Firmware Recommended Practice: Interrupt1283document "Open Firmware Recommended Practice: Interrupt
1284Mapping Version 0.9". The document is available at:1284Mapping Version 0.9". The document is available at:
1285<http://www.openfirmware.org/ofwg/practice/>1285<http://www.devicetree.org/open-firmware/practice/>
1286 1286
12871) interrupts property12871) interrupts property
1288----------------------1288----------------------
Documentation/dmaengine/provider.txt+7−7
@@ -181,13 +181,6 @@ Currently, the types available are: · 180 unmodified lines
181 - Used by the client drivers to register a callback that will be181 - Used by the client drivers to register a callback that will be
182 called on a regular basis through the DMA controller interrupt182 called on a regular basis through the DMA controller interrupt
183 183
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
191 * DMA_PRIVATE184 * DMA_PRIVATE
192 - The devices only supports slave transfers, and as such isn't185 - The devices only supports slave transfers, and as such isn't
193 available for async transfers.186 available for async transfers.
@@ -395,6 +388,13 @@ where to put them) · 201 unmodified lines
395 when DMA_CTRL_REUSE is already set388 when DMA_CTRL_REUSE is already set
396 - Terminating the channel389 - Terminating the channel
397 390
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.
398 398
399General Design Notes399General Design Notes
400--------------------400--------------------
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
19``Documentation``. Some of these will likely be converted to reStructuredText19``Documentation``. Some of these will likely be converted to reStructuredText
20over time, but the bulk of them will remain in plain text.20over time, but the bulk of them will remain in plain text.
21 21
22.. _sphinx_install:
23
24Sphinx Install
25==============
26
27The ReST markups currently used by the Documentation/ files are meant to be
28built with ``Sphinx`` version 1.3 or upper. If you're desiring to build
29PDF outputs, it is recommended to use version 1.4.6 or upper.
30
31There's a script that checks for the Spinx requirements. Please see
32:ref:`sphinx-pre-install` for further details.
33
34Most distributions are shipped with Sphinx, but its toolchain is fragile,
35and it is not uncommon that upgrading it or some other Python packages
36on your machine would cause the documentation build to break.
37
38A way to get rid of that is to use a different version than the one shipped
39on your distributions. In order to do that, it is recommended to install
40Sphinx inside a virtual environment, using ``virtualenv-3``
41or ``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
57In 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
63After running ``. sphinx_1.4/bin/activate``, the prompt will change,
64in order to indicate that you're using the new environment. If you
65open a new shell, you need to rerun this command to enter again at
66the virtual environment before building the documentation.
67
68Image output
69------------
70
71The kernel documentation build system contains an extension that
72handles images on both GraphViz and SVG formats (see
73:ref:`sphinx_kfigure`).
74
75For it to work, you need to install both GraphViz and ImageMagick
76packages. If those packages are not installed, the build system will
77still build the documentation, but won't include any images at the
78output.
79
80PDF and LaTeX builds
81--------------------
82
83Such builds are currently supported only with Sphinx versions 1.4 and upper.
84
85For PDF and LaTeX output, you'll also need ``XeLaTeX`` version 3.14159265.
86
87Depending on the distribution, you may also need to install a series of
88``texlive`` packages that provide the minimal set of functionalities
89required for ``XeLaTeX`` to work.
90
91.. _sphinx-pre-install:
92
93Checking for Sphinx dependencies
94--------------------------------
95
96There's a script that automatically check for Sphinx dependencies. If it can
97recognize your distribution, it will also give a hint about the install
98command 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
112By default, it checks all the requirements for both html and PDF, including
113the requirements for images, math expressions and LaTeX build, and assumes
114that a virtual Python environment will be used. The ones needed for html
115builds are assumed to be mandatory; the others to be optional.
116
117It 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
22Sphinx Build126Sphinx Build
23============127============
24 128
@@ -118,7 +222,7 @@ Here are some specific guidelines for the kernel documentation: · 93 unmodified lines
118the C domain222the C domain
119------------223------------
120 224
121The `Sphinx C Domain`_ (name c) is suited for documentation of C API. E.g. a225The **Sphinx C Domain** (name c) is suited for documentation of C API. E.g. a
122function prototype:226function prototype:
123 227
124.. code-block:: rst228.. code-block:: rst
@@ -229,6 +333,7 @@ Rendered as: · 104 unmodified lines
229 333
230 - column 3334 - column 3
231 335
336.. _sphinx_kfigure:
232 337
233Figures & Images338Figures & Images
234================339================
Documentation/dontdiff+0−1
@@ -259,5 +259,4 @@ wakeup.bin · 258 unmodified lines
259wakeup.elf259wakeup.elf
260wakeup.lds260wakeup.lds
261zImage*261zImage*
262zconf.hash.c
263zoffset.h262zoffset.h
Documentation/driver-api/basics.rst+1−4
@@ -4,7 +4,7 @@ Driver Basics · 3 unmodified lines
4Driver Entry and Exit points4Driver Entry and Exit points
5----------------------------5----------------------------
6 6
7.. kernel-doc:: include/linux/init.h7.. kernel-doc:: include/linux/module.h
8 :internal:8 :internal:
9 9
10Driver device table10Driver device table
@@ -103,9 +103,6 @@ Kernel utility functions · 92 unmodified lines
103.. kernel-doc:: kernel/panic.c103.. kernel-doc:: kernel/panic.c
104 :export:104 :export:
105 105
106.. kernel-doc:: kernel/sys.c
107 :export:
108
109.. kernel-doc:: kernel/rcu/tree.c106.. kernel-doc:: kernel/rcu/tree.c
110 :export:107 :export:
111 108
Documentation/driver-api/dma-buf.rst+0−3
@@ -139,9 +139,6 @@ DMA Fences · 138 unmodified lines
139Seqno Hardware Fences139Seqno Hardware Fences
140~~~~~~~~~~~~~~~~~~~~~140~~~~~~~~~~~~~~~~~~~~~
141 141
142.. kernel-doc:: drivers/dma-buf/seqno-fence.c
143 :export:
144
145.. kernel-doc:: include/linux/seqno-fence.h142.. kernel-doc:: include/linux/seqno-fence.h
146 :internal:143 :internal:
147 144
Documentation/driver-api/firmware/request_firmware.rst+0−11
@@ -44,17 +44,6 @@ request_firmware_nowait · 43 unmodified lines
44.. kernel-doc:: drivers/base/firmware_class.c44.. kernel-doc:: drivers/base/firmware_class.c
45 :functions: request_firmware_nowait45 :functions: request_firmware_nowait
46 46
47Considerations for suspend and resume
48=====================================
49
50During suspend and resume only the built-in firmware and the firmware cache
51elements of the firmware API can be used. This is managed by fw_pm_notify().
52
53fw_pm_notify
54------------
55.. kernel-doc:: drivers/base/firmware_class.c
56 :functions: fw_pm_notify
57
58request firmware API expected driver use47request firmware API expected driver use
59========================================48========================================
60 49
Documentation/driver-api/gpio.rst+45−0
@@ -0,0 +1,45 @@
1===================================
2General Purpose Input/Output (GPIO)
3===================================
4
5Core
6====
7
8.. kernel-doc:: include/linux/gpio/driver.h
9 :internal:
10
11.. kernel-doc:: drivers/gpio/gpiolib.c
12 :export:
13
14Legacy API
15==========
16
17The functions listed in this section are deprecated. The GPIO descriptor based
18API described above should be used in new code.
19
20.. kernel-doc:: drivers/gpio/gpiolib-legacy.c
21 :export:
22
23ACPI support
24============
25
26.. kernel-doc:: drivers/gpio/gpiolib-acpi.c
27 :export:
28
29Device tree support
30===================
31
32.. kernel-doc:: drivers/gpio/gpiolib-of.c
33 :export:
34
35Device-managed API
36==================
37
38.. kernel-doc:: drivers/gpio/devres.c
39 :export:
40
41sysfs 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
44 uio-howto44 uio-howto
45 firmware/index45 firmware/index
46 pinctl46 pinctl
47 gpio
47 misc_devices48 misc_devices
48 49
49.. only:: subproject and html50.. 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
47 47
48.. kernel-doc:: drivers/pwm/core.c48.. kernel-doc:: drivers/pwm/core.c
49 :export:49 :export:
50
Documentation/driver-api/mtdnand.rst+4−4
@@ -516,7 +516,7 @@ mirrored table is performed. · 515 unmodified lines
516 516
517The most important field in the nand_bbt_descr structure is the517The most important field in the nand_bbt_descr structure is the
518options field. The options define most of the table properties. Use the518options field. The options define most of the table properties. Use the
519predefined constants from nand.h to define the options.519predefined constants from rawnand.h to define the options.
520 520
521- Number of bits per block521- Number of bits per block
522 522
@@ -843,7 +843,7 @@ Chip option constants · 320 unmodified lines
843Constants for chip id table843Constants for chip id table
844~~~~~~~~~~~~~~~~~~~~~~~~~~~844~~~~~~~~~~~~~~~~~~~~~~~~~~~
845 845
846These constants are defined in nand.h. They are OR-ed together to846These constants are defined in rawnand.h. They are OR-ed together to
847describe the chip functionality::847describe the chip functionality::
848 848
849 /* Buswitdh is 16 bit */849 /* Buswitdh is 16 bit */
@@ -865,7 +865,7 @@ describe the chip functionality:: · 15 unmodified lines
865Constants for runtime options865Constants for runtime options
866~~~~~~~~~~~~~~~~~~~~~~~~~~~~~866~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
867 867
868These constants are defined in nand.h. They are OR-ed together to868These constants are defined in rawnand.h. They are OR-ed together to
869describe the functionality::869describe the functionality::
870 870
871 /* The hw ecc generator provides a syndrome instead a ecc value on read871 /* 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
956with an [XXX] identifier. See the chapter "Documentation hints" for an956with an [XXX] identifier. See the chapter "Documentation hints" for an
957explanation.957explanation.
958 958
959.. kernel-doc:: include/linux/mtd/nand.h959.. kernel-doc:: include/linux/mtd/rawnand.h
960 :internal:960 :internal:
961 961
962Public Functions Provided962Public Functions Provided
Documentation/driver-api/pm/devices.rst+1−1
@@ -675,7 +675,7 @@ sub-domain of the parent domain. · 674 unmodified lines
675 675
676Support for power domains is provided through the :c:member:`pm_domain` field of676Support for power domains is provided through the :c:member:`pm_domain` field of
677|struct device|. This field is a pointer to an object of type677|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 set678|struct dev_pm_domain|, defined in :file:`include/linux/pm.h`, providing a set
679of power management callbacks analogous to the subsystem-level and device driver679of power management callbacks analogous to the subsystem-level and device driver
680callbacks that are executed for the given device during all power transitions,680callbacks that are executed for the given device during all power transitions,
681instead of the respective subsystem-level callbacks. Specifically, if a681instead 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
75data which is made available by the channel subsystem for each channel75data which is made available by the channel subsystem for each channel
76attached device.76attached device.
77 77
78.. kernel-doc:: arch/s390/include/asm/cmb.h78.. kernel-doc:: arch/s390/include/uapi/asm/cmb.h
79 :internal:79 :internal:
80 80
81.. kernel-doc:: drivers/s390/cio/cmf.c81.. 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
224.. kernel-doc:: drivers/scsi/hosts.c224.. kernel-doc:: drivers/scsi/hosts.c
225 :export:225 :export:
226 226
227drivers/scsi/constants.c
228~~~~~~~~~~~~~~~~~~~~~~~~
229
230mid to lowlevel SCSI driver interface
231
232.. kernel-doc:: drivers/scsi/constants.c
233 :export:
234
235Transport classes227Transport classes
236-----------------228-----------------
237 229
Documentation/driver-model/devres.txt+1−0
@@ -312,6 +312,7 @@ IRQ · 311 unmodified lines
312 devm_irq_alloc_descs_from()312 devm_irq_alloc_descs_from()
313 devm_irq_alloc_generic_chip()313 devm_irq_alloc_generic_chip()
314 devm_irq_setup_generic_chip()314 devm_irq_setup_generic_chip()
315 devm_irq_sim_init()
315 316
316LED317LED
317 devm_led_classdev_register()318 devm_led_classdev_register()
Documentation/errseq.rst+149−0
@@ -0,0 +1,149 @@
1The errseq_t datatype
2=====================
3An errseq_t is a way of recording errors in one place, and allowing any
4number of "subscribers" to tell whether it has changed since a previous
5point where it was sampled.
6
7The initial use case for this is tracking errors for file
8synchronization syscalls (fsync, fdatasync, msync and sync_file_range),
9but it may be usable in other situations.
10
11It's implemented as an unsigned 32-bit value. The low order bits are
12designated to hold an error code (between 1 and MAX_ERRNO). The upper bits
13are used as a counter. This is done with atomics instead of locking so that
14these functions can be called from any context.
15
16Note that there is a risk of collisions if new errors are being recorded
17frequently, since we have so few bits to use as a counter.
18
19To mitigate this, the bit between the error value and counter is used as
20a flag to tell whether the value has been sampled since a new value was
21recorded. That allows us to avoid bumping the counter if no one has
22sampled it since the last time an error was recorded.
23
24Thus 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
31The general idea is for "watchers" to sample an errseq_t value and keep
32it as a running cursor. That value can later be used to tell whether
33any new errors have occurred since that sampling was done, and atomically
34record the state at the time that it was checked. This allows us to
35record errors in one place, and then have a number of "watchers" that
36can tell whether the value has changed since they last checked it.
37
38A new errseq_t should always be zeroed out. An errseq_t value of all zeroes
39is the special (but common) case where there has never been an error. An all
40zero value thus serves as the "epoch" if one wishes to know whether there
41has ever been an error set since it was first initialized.
42
43API usage
44=========
45Let me tell you a story about a worker drone. Now, he's a good worker
46overall, but the company is a little...management heavy. He has to
47report to 77 supervisors today, and tomorrow the "big boss" is coming in
48from out of town and he's sure to test the poor fellow too.
49
50They're all handing him work to do -- so much he can't keep track of who
51handed him what, but that's not really a big problem. The supervisors
52just want to know when he's finished all of the work they've handed him so
53far and whether he made any mistakes since they last asked.
54
55He might have made the mistake on work they didn't actually hand him,
56but he can't keep track of things at that level of detail, all he can
57remember is the most recent mistake that he made.
58
59Here's our worker_drone representation::
60
61 struct worker_drone {
62 errseq_t wd_err; /* for recording errors */
63 };
64
65Every 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
71The supervisors come in and get an initial read for the day. They
72don'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
84Now they start handing him tasks to do. Every few minutes they ask him to
85finish up all of the work they've handed him so far. Then they ask him
86whether 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
92Up to this point, that just keeps returning 0.
93
94Now, the owners of this company are quite miserly and have given him
95substandard equipment with which to do his job. Occasionally it
96glitches and he makes a mistake. He sighs a heavy sigh, and marks it
97down::
98
99 errseq_set(&wd.wd_err, -EIO);
100
101...and then gets back to work. The supervisors eventually poll again
102and they each get the error when they next check. Subsequent calls will
103return 0, until another error is recorded, at which point it's reported
104to each of them once.
105
106Note that the supervisors can't tell how many mistakes he made, only
107whether one was made since they last checked, and the latest value
108recorded.
109
110Occasionally the big boss comes in for a spot check and asks the worker
111to do a one-off job for him. He's not really watching the worker
112full-time like the supervisors, but he does need to know whether a
113mistake occurred while his job was processing.
114
115He can just sample the current errseq_t in the worker, and then use that
116to 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
122Since he's just going to discard "since" after that point, he doesn't
123need to advance it here. He also doesn't need any locking since it's
124not usable by anyone else.
125
126Serializing errseq_t cursor updates
127===================================
128Note that the errseq_t API does not protect the errseq_t cursor during a
129check_and_advance_operation. Only the canonical error code is handled
130atomically. In a situation where more than one task might be using the
131same errseq_t cursor at the same time, it's important to serialize
132updates to that cursor.
133
134If that's not done, then it's possible for the cursor to go backward
135in which case the same error could be reported more than once.
136
137Because of this, it's often advantageous to first do an errseq_check to
138see if anything has changed, and only later do an
139errseq_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
148That avoids the spinlock in the common case where nothing has changed
149since 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
27 Macbook Pro 17", iMac 20" :27 Macbook Pro 17", iMac 20" :
28 video=efifb:i2028 video=efifb:i20
29 29
30Accepted options:
31
32nowc 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
30--36--
31Edgar Hucek <gimli@dark-green.com>37Edgar Hucek <gimli@dark-green.com>
Documentation/fb/fbcon.txt+7−0
@@ -148,6 +148,13 @@ C. Boot options · 147 unmodified lines
148 Actually, the underlying fb driver is totally ignorant of console148 Actually, the underlying fb driver is totally ignorant of console
149 rotation.149 rotation.
150 150
1515. 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
151C. Attaching, Detaching and Unloading158C. Attaching, Detaching and Unloading
152 159
153Before going on how to attach, detach and unload the framebuffer console, an160Before 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
25 | mn10300: | ok |25 | mn10300: | ok |
26 | nios2: | ok |26 | nios2: | ok |
27 | openrisc: | ok |27 | openrisc: | ok |
28 | parisc: | TODO |28 | parisc: | ok |
29 | powerpc: | ok |29 | powerpc: | ok |
30 | s390: | ok |30 | s390: | ok |
31 | score: | TODO |31 | score: | TODO |
Documentation/filesystems/Locking+1−1
@@ -22,7 +22,7 @@ prototypes: · 21 unmodified lines
22 struct vfsmount *(*d_automount)(struct path *path);22 struct vfsmount *(*d_automount)(struct path *path);
23 int (*d_manage)(const struct path *, bool);23 int (*d_manage)(const struct path *, bool);
24 struct dentry *(*d_real)(struct dentry *, const struct inode *,24 struct dentry *(*d_real)(struct dentry *, const struct inode *,
25 unsigned int);25 unsigned int, unsigned int);
26 26
27locking rules:27locking rules:
28 rename_lock ->d_lock may block rcu-walk28 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
151 void (*mark_pages_cached)(void *cookie_netfs_data,151 void (*mark_pages_cached)(void *cookie_netfs_data,
152 struct address_space *mapping,152 struct address_space *mapping,
153 struct pagevec *cached_pvec);153 struct pagevec *cached_pvec);
154
155 void (*now_uncached)(void *cookie_netfs_data);
156 };154 };
157 155
158This has the following fields:156This has the following fields:
Documentation/filesystems/cifs/AUTHORS+5−0
@@ -41,6 +41,11 @@ Igor Mammedov (DFS support) · 40 unmodified lines
41Jeff Layton (many, many fixes, as well as great work on the cifs Kerberos code)41Jeff Layton (many, many fixes, as well as great work on the cifs Kerberos code)
42Scott Lovenberg42Scott Lovenberg
43Pavel Shilovsky (for great work adding SMB2 support, and various SMB3 features)43Pavel Shilovsky (for great work adding SMB2 support, and various SMB3 features)
44Aurelien Aptel (for DFS SMB3 work and some key bug fixes)
45Ronnie Sahlberg (for SMB3 xattr work and bug fixes)
46Shirish Pargaonkar (for many ACL patches over the years)
47Sachin Prabhu (many bug fixes, including for reconnect, copy offload and security)
48
44 49
45Test case and Bug Report contributors50Test case and Bug Report contributors
46-------------------------------------51-------------------------------------
Documentation/filesystems/cifs/README+38−43
@@ -1,10 +1,14 @@
1The CIFS VFS support for Linux supports many advanced network filesystem 1This module supports the SMB3 family of advanced network protocols (as well
2features such as hierarchical dfs like namespace, hardlinks, locking and more. 2as older dialects, originally called "CIFS" or SMB1).
3
4The CIFS VFS module for Linux supports many advanced network filesystem
5features such as hierarchical DFS like namespace, hardlinks, locking and more.
3It was designed to comply with the SNIA CIFS Technical Reference (which 6It was designed to comply with the SNIA CIFS Technical Reference (which
4supersedes the 1992 X/Open SMB Standard) as well as to perform best practice 7supersedes the 1992 X/Open SMB Standard) as well as to perform best practice
5practical interoperability with Windows 2000, Windows XP, Samba and equivalent 8practical interoperability with Windows 2000, Windows XP, Samba and equivalent
6servers. This code was developed in participation with the Protocol Freedom9servers. This code was developed in participation with the Protocol Freedom
7Information Foundation.10Information Foundation. CIFS and now SMB3 has now become a defacto
11standard for interoperating between Macs and Windows and major NAS appliances.
8 12
9Please see13Please see
10 http://protocolfreedom.org/ and14 http://protocolfreedom.org/ and
@@ -15,30 +19,11 @@ for more details. · 4 unmodified lines
15For questions or bug reports please contact:19For questions or bug reports please contact:
16 sfrench@samba.org (sfrench@us.ibm.com) 20 sfrench@samba.org (sfrench@us.ibm.com)
17 21
22See the project page at: https://wiki.samba.org/index.php/LinuxCIFS_utils
23
18Build instructions:24Build instructions:
19==================25==================
20For Linux 2.4:26For Linux:
211) Get the kernel source (e.g.from http://www.kernel.org)
22and download the cifs vfs source (see the project page
23at http://us1.samba.org/samba/Linux_CIFS_client.html)
24and change directory into the top of the kernel directory
25then patch the kernel (e.g. "patch -p1 < cifs_24.patch")
26to add the cifs vfs to your kernel configure options if
27it has not already been added (e.g. current SuSE and UL
28users do not need to apply the cifs_24.patch since the cifs vfs is
29already in the kernel configure menu) and then
30mkdir linux/fs/cifs and then copy the current cifs vfs files from
31the cifs download to your kernel build directory e.g.
32
33 cp <cifs_download_dir>/fs/cifs/* to <kernel_download_dir>/fs/cifs
34
352) make menuconfig (or make xconfig)
363) select cifs from within the network filesystem choices
374) save and exit
385) make dep
396) make modules (or "make" if CIFS VFS not to be built as a module)
40
41For Linux 2.6:
421) Download the kernel (e.g. from http://www.kernel.org)271) Download the kernel (e.g. from http://www.kernel.org)
43and change directory into the top of the kernel directory tree28and change directory into the top of the kernel directory tree
44(e.g. /usr/src/linux-2.5.73)29(e.g. /usr/src/linux-2.5.73)
@@ -61,16 +46,13 @@ would simply type "make install"). · 16 unmodified lines
61If you do not have the utility mount.cifs (in the Samba 3.0 source tree and on 46If you do not have the utility mount.cifs (in the Samba 3.0 source tree and on
62the CIFS VFS web site) copy it to the same directory in which mount.smbfs and 47the CIFS VFS web site) copy it to the same directory in which mount.smbfs and
63similar files reside (usually /sbin). Although the helper software is not 48similar files reside (usually /sbin). Although the helper software is not
64required, mount.cifs is recommended. Eventually the Samba 3.0 utility program 49required, mount.cifs is recommended. Most distros include a "cifs-utils"
65"net" may also be helpful since it may someday provide easier mount syntax for50package that includes this utility so it is recommended to install this.
66users who are used to Windows e.g.51
67 net use <mount point> <UNC name or cifs URL>
68Note that running the Winbind pam/nss module (logon service) on all of your52Note that running the Winbind pam/nss module (logon service) on all of your
69Linux clients is useful in mapping Uids and Gids consistently across the53Linux clients is useful in mapping Uids and Gids consistently across the
70domain to the proper network user. The mount.cifs mount helper can be54domain to the proper network user. The mount.cifs mount helper can be
71trivially built from Samba 3.0 or later source e.g. by executing:55found at cifs-utils.git on git.samba.org
72
73 gcc samba/source/client/mount.cifs.c -o mount.cifs
74 56
75If cifs is built as a module, then the size and number of network buffers57If cifs is built as a module, then the size and number of network buffers
76and maximum number of simultaneous requests to one server can be configured.58and 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
79on kernel/fs/cifs/cifs.ko the list of configuration changes that can be made61on kernel/fs/cifs/cifs.ko the list of configuration changes that can be made
80at module initialization time (by running insmod cifs.ko) can be seen.62at module initialization time (by running insmod cifs.ko) can be seen.
81 63
64Recommendations
65===============
66To improve security the SMB2.1 dialect or later (usually will get SMB3) is now
67the new default. To use old dialects (e.g. to mount Windows XP) use "vers=1.0"
68on mount (or vers=2.0 for Windows Vista). Note that the CIFS (vers=1.0) is
69much older and less secure than the default dialect SMB3 which includes
70many advanced security features such as downgrade attack detection
71and encrypted shares and stronger signing and authentication algorithms.
72There are additional mount options that may be helpful for SMB3 to get
73improved POSIX behavior (NB: can use vers=3.0 to force only SMB3, never 2.1):
74 "mfsymlinks" and "cifsacl" and "idsfromsid"
75
82Allowing User Mounts76Allowing User Mounts
83====================77====================
84To permit users to mount and unmount over directories they own is possible78To 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
98by default. This can be changed, as with nfs and other filesystems, 92by default. This can be changed, as with nfs and other filesystems,
99by simply specifying "nosuid" among the mount options. For user mounts 93by simply specifying "nosuid" among the mount options. For user mounts
100though to be able to pass the suid flag to mount requires rebuilding 94though to be able to pass the suid flag to mount requires rebuilding
101mount.cifs with the following flag: 95mount.cifs with the following flag: CIFS_ALLOW_USR_SUID
102
103 gcc samba/source/client/mount.cifs.c -DCIFS_ALLOW_USR_SUID -o mount.cifs
104 96
105There is a corresponding manual page for cifs mounting in the Samba 3.0 and97There is a corresponding manual page for cifs mounting in the Samba 3.0 and
106later source tree in docs/manpages/mount.cifs.8 98later source tree in docs/manpages/mount.cifs.8
@@ -189,18 +181,18 @@ applications running on the same server as Samba. · 82 unmodified lines
189Use instructions:181Use instructions:
190================182================
191Once the CIFS VFS support is built into the kernel or installed as a module 183Once 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 184(cifs.ko), you can use mount syntax like the following to access Samba or
193servers: 185Mac or Windows servers:
194 186
195 mount -t cifs //9.53.216.11/e$ /mnt -o user=myname,pass=mypassword187 mount -t cifs //9.53.216.11/e$ /mnt -o username=myname,password=mypassword
196 188
197Before -o the option -v may be specified to make the mount.cifs189Before -o the option -v may be specified to make the mount.cifs
198mount helper display the mount steps more verbosely. 190mount helper display the mount steps more verbosely.
199After -o the following commonly used cifs vfs specific options191After -o the following commonly used cifs vfs specific options
200are supported:192are supported:
201 193
202 user=<username>194 username=<username>
203 pass=<password>195 password=<password>
204 domain=<domain name>196 domain=<domain name>
205 197
206Other cifs mount options are described below. Use of TCP names (in addition to198Other 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
246filenames (ie those which contain valid Linux characters, which normally238filenames (ie those which contain valid Linux characters, which normally
247would be forbidden for Windows/CIFS semantics) as long as the server is239would be forbidden for Windows/CIFS semantics) as long as the server is
248configured for Unix Extensions (and the client has not disabled240configured for Unix Extensions (and the client has not disabled
249/proc/fs/cifs/LinuxExtensionsEnabled).241/proc/fs/cifs/LinuxExtensionsEnabled). In addition the mount option
250 242"mapposix" can be used on CIFS (vers=1.0) to force the mapping of
243illegal Windows/NTFS/SMB characters to a remap range (this mount parm
244is the default for SMB3). This remap ("mapposix") range is also
245compatible with Mac (and "Services for Mac" on some older Windows).
251 246
252CIFS VFS Mount Options247CIFS VFS Mount Options
253======================248======================
254A partial list of the supported mount options follows:249A partial list of the supported mount options follows:
255 user The user name to use when trying to establish250 username The user name to use when trying to establish
256 the CIFS session.251 the CIFS session.
257 password The user password. If the mount helper is252 password The user password. If the mount helper is
258 installed, the user will be prompted for password253 installed, the user will be prompted for password
Documentation/filesystems/cifs/TODO+34−38
@@ -1,4 +1,4 @@
1Version 2.03 August 1, 20141Version 2.04 September 13, 2017
2 2
3A Partial List of Missing Features3A Partial List of Missing Features
4==================================4==================================
@@ -8,73 +8,69 @@ for visible, important contributions to this module. Here · 3 unmodified lines
8is a partial list of the known problems and missing features:8is a partial list of the known problems and missing features:
9 9
10a) SMB3 (and SMB3.02) missing optional features:10a) SMB3 (and SMB3.02) missing optional features:
11 - RDMA11 - RDMA (started)
12 - multichannel (started)12 - multichannel (started)
13 - directory leases (improved metadata caching)13 - directory leases (improved metadata caching)
14 - T10 copy offload (copy chunk is only mechanism supported)14 - T10 copy offload (copy chunk is only mechanism supported)
15 - encrypted shares
16 15
17b) improved sparse file support16b) improved sparse file support
18 17
19c) Directory entry caching relies on a 1 second timer, rather than18c) Directory entry caching relies on a 1 second timer, rather than
20using FindNotify or equivalent. - (started)19using Directory Leases
21 20
22d) quota support (needs minor kernel change since quota calls21d) quota support (needs minor kernel change since quota calls
23to make it to network filesystems or deviceless filesystems)22to make it to network filesystems or deviceless filesystems)
24 23
25e) improve support for very old servers (OS/2 and Win9x for example)24e) Better optimize open to reduce redundant opens (using reference
26Including support for changing the time remotely (utimes command).25counts more) and to improve use of compounding in SMB3 to reduce
26number of roundtrips.
27 27
28f) hook lower into the sockets api (as NFS/SunRPC does) to avoid the28f) Finish inotify support so kde and gnome file list windows
29extra copy in/out of the socket buffers in some cases.
30
31g) Better optimize open (and pathbased setfilesize) to reduce the
32oplock breaks coming from windows srv. Piggyback identical file
33opens on top of each other by incrementing reference count rather
34than resending (helps reduce server resource utilization and avoid
35spurious oplock breaks).
36
37h) Add support for storing symlink info to Windows servers
38in the Extended Attribute format their SFU clients would recognize.
39
40i) Finish inotify support so kde and gnome file list windows
41will autorefresh (partially complete by Asser). Needs minor kernel29will autorefresh (partially complete by Asser). Needs minor kernel
42vfs change to support removing D_NOTIFY on a file. 30vfs change to support removing D_NOTIFY on a file.
43 31
44j) Add GUI tool to configure /proc/fs/cifs settings and for display of32g) Add GUI tool to configure /proc/fs/cifs settings and for display of
45the CIFS statistics (started)33the CIFS statistics (started)
46 34
47k) implement support for security and trusted categories of xattrs35h) implement support for security and trusted categories of xattrs
48(requires minor protocol extension) to enable better support for SELINUX36(requires minor protocol extension) to enable better support for SELINUX
49 37
50l) Implement O_DIRECT flag on open (already supported on mount)38i) Implement O_DIRECT flag on open (already supported on mount)
51 39
52m) Create UID mapping facility so server UIDs can be mapped on a per40j) Create UID mapping facility so server UIDs can be mapped on a per
53mount or a per server basis to client UIDs or nobody if no mapping41mount or a per server basis to client UIDs or nobody if no mapping
54exists. This is helpful when Unix extensions are negotiated to42exists. Also better integration with winbind for resolving SID owners
55allow better permission checking when UIDs differ on the server43
56and client. Add new protocol request to the CIFS protocol 44k) Add tools to take advantage of more smb3 specific ioctls and features
57standard for asking the server for the corresponding name of a45
58particular uid.46l) encrypted file support
47
48m) improved stats gathering, tools (perhaps integration with nfsometer?)
59 49
60n) DOS attrs - returned as pseudo-xattr in Samba format (check VFAT and NTFS for this too)50n) allow setting more NTFS/SMB3 file attributes remotely (currently limited to compressed
51file attribute via chflags) and improve user space tools for managing and
52viewing them.
61 53
62o) mount check for unmatched uids54o) mount helper GUI (to simplify the various configuration options on mount)
63 55
64p) Add support for new vfs entry point for fallocate56p) autonegotiation of dialects (offering more than one dialect ie SMB3.02,
57SMB3, SMB2.1 not just SMB3).
65 58
66q) Add tools to take advantage of cifs/smb3 specific ioctls and features59q) Allow mount.cifs to be more verbose in reporting errors with dialect
67such as "CopyChunk" (fast server side file copy)60or unsupported feature errors.
68 61
69r) encrypted file support62r) updating cifs documentation, and user guid.
70 63
71s) improved stats gathering, tools (perhaps integration with nfsometer?)64s) Addressing bugs found by running a broader set of xfstests in standard
65file system xfstest suite.
72 66
73t) allow setting more NTFS/SMB3 file attributes remotely (currently limited to compressed67t) split cifs and smb3 support into separate modules so legacy (and less
74file attribute via chflags)68secure) CIFS dialect can be disabled in environments that don't need it
69and simplify the code.
75 70
76u) mount helper GUI (to simplify the various configuration options on mount)71u) Finish up SMB3.1.1 dialect support
77 72
73v) POSIX Extensions for SMB3.1.1
78 74
79KNOWN BUGS75KNOWN BUGS
80====================================76====================================
Documentation/filesystems/cifs/cifs.txt+14−10
@@ -1,24 +1,28 @@
1 This is the client VFS module for the Common Internet File System1 This is the client VFS module for the SMB3 NAS protocol as well
2 (CIFS) protocol which is the successor to the Server Message Block 2 older dialects such as the Common Internet File System (CIFS)
3 protocol which was the successor to the Server Message Block
3 (SMB) protocol, the native file sharing mechanism for most early4 (SMB) protocol, the native file sharing mechanism for most early
4 PC operating systems. New and improved versions of CIFS are now5 PC operating systems. New and improved versions of CIFS are now
5 called SMB2 and SMB3. These dialects are also supported by the6 called SMB2 and SMB3. These dialects are also supported by the
6 CIFS VFS module. CIFS is fully supported by network7 CIFS VFS module. CIFS is fully supported by network
7 file servers such as Windows 2000, 2003, 2008 and 20128 file servers such as Windows 2000, 2003, 2008, 2012 and 2016
8 as well by Samba (which provides excellent CIFS9 as well by Samba (which provides excellent CIFS
9 server support for Linux and many other operating systems), so10 server support for Linux and many other operating systems), Apple
11 systems, as well as most Network Attached Storage vendors, so
10 this network filesystem client can mount to a wide variety of12 this network filesystem client can mount to a wide variety of
11 servers.13 servers.
12 14
13 The intent of this module is to provide the most advanced network15 The intent of this module is to provide the most advanced network
14 file system function for CIFS compliant servers, including better16 file system function for SMB3 compliant servers, including advanced
15 POSIX compliance, secure per-user session establishment, high17 security features, excellent parallelized high performance i/o, better
16 performance safe distributed caching (oplock), optional packet18 POSIX compliance, secure per-user session establishment, encryption,
19 high performance safe distributed caching (leases/oplocks), optional packet
17 signing, large files, Unicode support and other internationalization20 signing, large files, Unicode support and other internationalization
18 improvements. Since both Samba server and this filesystem client support21 improvements. Since both Samba server and this filesystem client support
19 the CIFS Unix extensions, the combination can provide a reasonable 22 the CIFS Unix extensions (and in the future SMB3 POSIX extensions),
20 alternative to NFSv4 for fileserving in some Linux to Linux environments,23 the combination can provide a reasonable alternative to other network and
21 not just in Linux to Windows environments.24 cluster file systems for fileserving in some Linux to Linux environments,
25 not just in Linux to Windows (or Linux to Mac) environments.
22 26
23 This filesystem has an mount utility (mount.cifs) that can be obtained from27 This filesystem has an mount utility (mount.cifs) that can be obtained from
24 28
Documentation/filesystems/dax.txt+2−3
@@ -63,9 +63,8 @@ Filesystem support consists of · 62 unmodified lines
63- implementing an mmap file operation for DAX files which sets the63- implementing an mmap file operation for DAX files which sets the
64 VM_MIXEDMAP and VM_HUGEPAGE flags on the VMA, and setting the vm_ops to64 VM_MIXEDMAP and VM_HUGEPAGE flags on the VMA, and setting the vm_ops to
65 include handlers for fault, pmd_fault, page_mkwrite, pfn_mkwrite. These65 include handlers for fault, pmd_fault, page_mkwrite, pfn_mkwrite. These
66 handlers should probably call dax_iomap_fault() (for fault and page_mkwrite66 handlers should probably call dax_iomap_fault() passing the appropriate
67 handlers), dax_iomap_pmd_fault(), dax_pfn_mkwrite() passing the appropriate67 fault size and iomap operations.
68 iomap operations.
69- calling iomap_zero_range() passing appropriate iomap operations instead of68- calling iomap_zero_range() passing appropriate iomap operations instead of
70 block_truncate_page() for DAX files69 block_truncate_page() for DAX files
71- ensuring that there is sufficient locking between reads, writes,70- 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
164 with "mode=lfs".164 with "mode=lfs".
165usrquota Enable plain user disk quota accounting.165usrquota Enable plain user disk quota accounting.
166grpquota Enable plain group disk quota accounting.166grpquota Enable plain group disk quota accounting.
167prjquota Enable plain project quota accounting.
168usrjquota=<file> Appoint specified file and type during mount, so that quota
169grpjquota=<file> information can be properly updated during recovery flow,
170prjjquota=<file> <quota file>: must be in root directory;
171jqfmt=<quota type> <quota type>: [vfsold,vfsv0,vfsv1].
172offusrjquota Turn off user journelled quota.
173offgrpjquota Turn off group journelled quota.
174offprjjquota Turn off project journelled quota.
175quota Enable plain user disk quota accounting.
176noquota Disable all plain disk quota option.
167 177
168================================================================================178================================================================================
169DEBUGFS ENTRIES179DEBUGFS ENTRIES
@@ -209,6 +219,15 @@ Files in /sys/fs/f2fs/<devname> · 39 unmodified lines
209 gc_idle = 1 will select the Cost Benefit approach219 gc_idle = 1 will select the Cost Benefit approach
210 & setting gc_idle = 2 will select the greedy approach.220 & setting gc_idle = 2 will select the greedy approach.
211 221
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
212 reclaim_segments This parameter controls the number of prefree231 reclaim_segments This parameter controls the number of prefree
213 segments to be reclaimed. If the number of prefree232 segments to be reclaimed. If the number of prefree
214 segments is larger than the number of segments233 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
45BUILDING THE USERSPACE FILESYSTEM ON A SINGLE SERVER45BUILDING THE USERSPACE FILESYSTEM ON A SINGLE SERVER
46====================================================46====================================================
47 47
48When Orangefs is upstream, "--with-kernel" shouldn't be needed, but48You can omit --prefix if you don't care that things are sprinkled around in
49until then the path to where the kernel with the Orangefs kernel client49/usr/local. As of version 2.9.6, Orangefs uses Berkeley DB by default, we
50patch was built is needed to ensure that pvfs2-client-core (the bridge50will probably be changing the default to lmdb soon.
51between 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.
54 51
55./configure --prefix=/opt/ofs --with-kernel=/path/to/orangefs/kernel52./configure --prefix=/opt/ofs --with-db-backend=lmdb
56 53
57make54make
58 55
@@ -82,9 +79,6 @@ prove things are working with: · 23 unmodified lines
82 79
83/opt/osf/bin/pvfs2-ls /mymountpoint80/opt/osf/bin/pvfs2-ls /mymountpoint
84 81
85You might not want to enforce selinux, it doesn't seem to matter by
86linux 3.11...
87
88If stuff seems to be working, turn on the client core:82If stuff seems to be working, turn on the client core:
89/opt/osf/sbin/pvfs2-client -p /opt/osf/sbin/pvfs2-client-core83/opt/osf/sbin/pvfs2-client -p /opt/osf/sbin/pvfs2-client-core
90 84
Documentation/filesystems/porting+1−1
@@ -228,7 +228,7 @@ anything from oops to silent memory corruption. · 227 unmodified lines
228---228---
229[mandatory]229[mandatory]
230 230
231 FS_NOMOUNT is gone. If you use it - just set MS_NOUSER in flags231 FS_NOMOUNT is gone. If you use it - just set SB_NOUSER in flags
232(see rootfs for one kind of solution and bdev/socket/pipe for another).232(see rootfs for one kind of solution and bdev/socket/pipe for another).
233 233
234---234---
Documentation/filesystems/vfs.txt+2−4
@@ -829,9 +829,7 @@ struct address_space_operations { · 828 unmodified lines
829 swap_activate: Called when swapon is used on a file to allocate829 swap_activate: Called when swapon is used on a file to allocate
830 space if necessary and pin the block lookup information in830 space if necessary and pin the block lookup information in
831 memory. A return value of zero indicates success,831 memory. A return value of zero indicates success,
832 in which case this file can be used to back swapspace. The832 in which case this file can be used to back swapspace.
833 swapspace operations will be proxied to this address space's
834 ->swap_{out,in} methods.
835 833
836 swap_deactivate: Called during swapoff on files where swap_activate834 swap_deactivate: Called during swapoff on files where swap_activate
837 was successful.835 was successful.
@@ -990,7 +988,7 @@ struct dentry_operations { · 152 unmodified lines
990 struct vfsmount *(*d_automount)(struct path *);988 struct vfsmount *(*d_automount)(struct path *);
991 int (*d_manage)(const struct path *, bool);989 int (*d_manage)(const struct path *, bool);
992 struct dentry *(*d_real)(struct dentry *, const struct inode *,990 struct dentry *(*d_real)(struct dentry *, const struct inode *,
993 unsigned int);991 unsigned int, unsigned int);
994};992};
995 993
996 d_revalidate: called when the VFS needs to revalidate a dentry. This994 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
84 NAND flash MTD subsystem and provides chip access and partition parsing like84 NAND flash MTD subsystem and provides chip access and partition parsing like
85 any other NAND driving hardware.85 any other NAND driving hardware.
86 86
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
87Apart from this there are special GPIO drivers in subsystems like MMC/SD to92Apart from this there are special GPIO drivers in subsystems like MMC/SD to
88read card detect and write protect GPIO lines, and in the TTY serial subsystem93read card detect and write protect GPIO lines, and in the TTY serial subsystem
89to emulate MCTRL (modem control) signals CTS/RTS by using two GPIO lines. The94to 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
459 459
460This is done by registering "ranges" of pins, which are essentially460This is done by registering "ranges" of pins, which are essentially
461cross-reference tables. These are described in461cross-reference tables. These are described in
462Documentation/pinctrl.txt462Documentation/driver-api/pinctl.rst
463 463
464While the pin allocation is totally managed by the pinctrl subsystem,464While the pin allocation is totally managed by the pinctrl subsystem,
465gpio (under gpiolib) is still maintained by gpio drivers. It may happen465gpio (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
201Open/Close, File Operations and IOCTLs201Open/Close, File Operations and IOCTLs
202======================================202======================================
203 203
204.. _drm_driver_fops:
205
204File Operations206File Operations
205---------------207---------------
206 208
Documentation/gpu/drm-kms-helpers.rst+9−0
@@ -296,3 +296,12 @@ Auxiliary Modeset Helpers · 295 unmodified lines
296 296
297.. kernel-doc:: drivers/gpu/drm/drm_modeset_helper.c297.. kernel-doc:: drivers/gpu/drm/drm_modeset_helper.c
298 :export:298 :export:
299
300Framebuffer 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
523.. kernel-doc:: drivers/gpu/drm/drm_color_mgmt.c523.. kernel-doc:: drivers/gpu/drm/drm_color_mgmt.c
524 :doc: overview524 :doc: overview
525 525
526.. kernel-doc:: include/drm/drm_color_mgmt.h
527 :internal:
528
529.. kernel-doc:: drivers/gpu/drm/drm_color_mgmt.c526.. kernel-doc:: drivers/gpu/drm/drm_color_mgmt.c
530 :export:527 :export:
531 528
@@ -554,60 +551,8 @@ various modules/drivers. · 22 unmodified lines
554Vertical Blanking551Vertical Blanking
555=================552=================
556 553
557Vertical blanking plays a major role in graphics rendering. To achieve554.. kernel-doc:: drivers/gpu/drm/drm_vblank.c
558tear-free display, users must synchronize page flips and/or rendering to555 :doc: vblank handling
559vertical blanking. The DRM API offers ioctls to perform page flips
560synchronized to vertical blanking and wait for vertical blanking.
561
562The DRM core handles most of the vertical blanking management logic,
563which involves filtering out spurious interrupts, keeping race-free
564blanking counters, coping with counter wrap-around and resets and
565keeping use counts. It relies on the driver to generate vertical
566blanking interrupts and optionally provide a hardware vertical blanking
567counter. 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
580Drivers must initialize the vertical blanking handling core with a call
581to :c:func:`drm_vblank_init()` in their load operation.
582
583Vertical blanking interrupts can be enabled by the DRM core or by
584drivers themselves (for instance to handle page flipping operations).
585The DRM core maintains a vertical blanking use count to ensure that the
586interrupts are not disabled while a user still needs them. To increment
587the use count, drivers call :c:func:`drm_vblank_get()`. Upon
588return vertical blanking interrupts are guaranteed to be enabled.
589
590To decrement the use count drivers call
591:c:func:`drm_vblank_put()`. Only when the use count drops to zero
592will the DRM core disable the vertical blanking interrupts after a delay
593by scheduling a timer. The delay is accessible through the
594vblankoffdelay module parameter or the ``drm_vblank_offdelay`` global
595variable and expressed in milliseconds. Its default value is 5000 ms.
596Zero means never disable, and a negative value means disable
597immediately. Drivers may override the behaviour by setting the
598:c:type:`struct drm_device <drm_device>`
599vblank_disable_immediate flag, which when set causes vblank interrupts
600to be disabled immediately regardless of the drm_vblank_offdelay
601value. The flag should only be set if there's a properly working
602hardware vblank counter present.
603
604When a vertical blanking interrupt occurs drivers only need to call the
605:c:func:`drm_handle_vblank()` function to account for the
606interrupt.
607
608Resources allocated by :c:func:`drm_vblank_init()` must be freed
609with a call to :c:func:`drm_vblank_cleanup()` in the driver unload
610operation handler.
611 556
612Vertical Blanking and Interrupt Handling Functions Reference557Vertical Blanking and Interrupt Handling Functions Reference
613------------------------------------------------------------558------------------------------------------------------------
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
191holding the lock.191holding the lock.
192 192
193When the last reference to a GEM object is released the GEM core calls193When the last reference to a GEM object is released the GEM core calls
194the :c:type:`struct drm_driver <drm_driver>` gem_free_object194the :c:type:`struct drm_driver <drm_driver>` gem_free_object_unlocked
195operation. That operation is mandatory for GEM-enabled drivers and must195operation. That operation is mandatory for GEM-enabled drivers and must
196free the GEM object and all associated resources.196free the GEM object and all associated resources.
197 197
@@ -492,7 +492,7 @@ DRM Sync Objects · 294 unmodified lines
492 :doc: Overview492 :doc: Overview
493 493
494.. kernel-doc:: include/drm/drm_syncobj.h494.. kernel-doc:: include/drm/drm_syncobj.h
495 :export:495 :internal:
496 496
497.. kernel-doc:: drivers/gpu/drm/drm_syncobj.c497.. kernel-doc:: drivers/gpu/drm/drm_syncobj.c
498 :export:498 :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
160visible to user-space and accessible beyond open-file boundaries, they160visible to user-space and accessible beyond open-file boundaries, they
161cannot support render nodes.161cannot support render nodes.
162 162
163.. _drm_driver_ioctl:
164
163IOCTL Support on Device Nodes165IOCTL Support on Device Nodes
164=============================166=============================
165 167
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
417 :functions: i915_perf_open_ioctl417 :functions: i915_perf_open_ioctl
418.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c418.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
419 :functions: i915_perf_release419 :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
420 424
421i915 Perf Stream425i915 Perf Stream
422----------------426----------------
@@ -477,4 +481,16 @@ specific details than found in the more high-level sections. · 54 unmodified lines
477.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c481.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
478 :internal:482 :internal:
479 483
480.. WARNING: DOCPROC directive not supported: !Cdrivers/gpu/drm/i915/i915_irq.c484Style
485=====
486
487The drm/i915 driver codebase has some style rules in addition to (and, in some
488cases, deviating from) the kernel coding style.
489
490Register macro definition style
491-------------------------------
492
493The 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
108 crtc state, clear that to the max values, x/y = 0 and w/h = MAX_INT, in108 crtc state, clear that to the max values, x/y = 0 and w/h = MAX_INT, in
109 __drm_atomic_helper_crtc_duplicate_state().109 __drm_atomic_helper_crtc_duplicate_state().
110 110
111- Move tinydrm_merge_clips into drm_framebuffer.c, dropping the tinydrm_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 this112 prefix ofc and using drm_fb\_. drm_framebuffer.c makes sense since this
113 is a function useful to implement the fb->dirty function.113 is a function useful to implement the fb->dirty function.
114 114
115- Create a new drm_fb_dirty function which does essentially what e.g.115- 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
188 fans. It also contains an integrated watchdog which is currently188 fans. It also contains an integrated watchdog which is currently
19implemented in this driver.19implemented in this driver.
20 20
21To clear a temperature or fan alarm, execute the following command with the
22correct path to the alarm file:
23 echo 0 >XXXX_alarm
24
21Specification of the chip can be found here:25Specification of the chip can be found here:
22ftp://ftp.ts.fujitsu.com/pub/Mainboard-OEM-Sales/Services/Software&Tools/Linux_SystemMonitoring&Watchdog&GPIO/BMC-Teutates_Specification_V1.21.pdf26ftp://ftp.ts.fujitsu.com/pub/Mainboard-OEM-Sales/Services/Software&Tools/Linux_SystemMonitoring&Watchdog&GPIO/BMC-Teutates_Specification_V1.21.pdf
23ftp://ftp.ts.fujitsu.com/pub/Mainboard-OEM-Sales/Services/Software&Tools/Linux_SystemMonitoring&Watchdog&GPIO/Fujitsu_mainboards-1-Sensors_HowTo-en-US.pdf27ftp://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 @@
1Kernel driver ibm-cffps
2=======================
3
4Supported chips:
5 * IBM Common Form Factor power supply
6
7Author: Eddie James <eajames@us.ibm.com>
8
9Description
10-----------
11
12This driver supports IBM Common Form Factor (CFF) power supplies. This driver
13is a client to the core PMBus driver.
14
15Usage Notes
16-----------
17
18This driver does not auto-detect devices. You will have to instantiate the
19devices explicitly. Please see Documentation/i2c/instantiating-devices for
20details.
21
22Sysfs entries
23-------------
24
25The following attributes are supported:
26
27curr1_alarm Output current over-current alarm.
28curr1_input Measured output current in mA.
29curr1_label "iout1"
30
31fan1_alarm Fan 1 warning.
32fan1_fault Fan 1 fault.
33fan1_input Fan 1 speed in RPM.
34fan2_alarm Fan 2 warning.
35fan2_fault Fan 2 fault.
36fan2_input Fan 2 speed in RPM.
37
38in1_alarm Input voltage under-voltage alarm.
39in1_input Measured input voltage in mV.
40in1_label "vin"
41in2_alarm Output voltage over-voltage alarm.
42in2_input Measured output voltage in mV.
43in2_label "vout1"
44
45power1_alarm Input fault or alarm.
46power1_input Measured input power in uW.
47power1_label "pin"
48
49temp1_alarm PSU inlet ambient temperature over-temperature alarm.
50temp1_input Measured PSU inlet ambient temp in millidegrees C.
51temp2_alarm Secondary rectifier temp over-temperature alarm.
52temp2_input Measured secondary rectifier temp in millidegrees C.
53temp3_alarm ORing FET temperature over-temperature alarm.
54temp3_input Measured ORing FET temperature in millidegrees C.
Documentation/hwmon/lm25066+7−2
@@ -29,6 +29,11 @@ Supported chips: · 28 unmodified lines
29 Addresses scanned: -29 Addresses scanned: -
30 Datasheet:30 Datasheet:
31 http://www.national.com/pf/LM/LM5066.html31 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
32 37
33Author: Guenter Roeck <linux@roeck-us.net>38Author: Guenter Roeck <linux@roeck-us.net>
34 39
@@ -37,8 +42,8 @@ Description · 2 unmodified lines
37-----------42-----------
38 43
39This driver supports hardware monitoring for National Semiconductor / TI LM25056,44This driver supports hardware monitoring for National Semiconductor / TI LM25056,
40LM25063, LM25066, LM5064, and LM5066 Power Management, Monitoring, Control, and45LM25063, LM25066, LM5064, and LM5066/LM5066I Power Management, Monitoring,
41Protection ICs.46Control, and Protection ICs.
42 47
43The driver is a client driver to the core PMBus driver. Please see48The driver is a client driver to the core PMBus driver. Please see
44Documentation/hwmon/pmbus for details on PMBus client drivers.49Documentation/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
42i2c-mux-gpio Normally parent-locked, mux-locked iff42i2c-mux-gpio Normally parent-locked, mux-locked iff
43 all involved gpio pins are controlled by the43 all involved gpio pins are controlled by the
44 same i2c root adapter that they mux.44 same i2c root adapter that they mux.
45i2c-mux-gpmux Normally parent-locked, mux-locked iff
46 specified in device-tree.
47i2c-mux-ltc4306 Mux-locked
48i2c-mux-mlxcpld Parent-locked
45i2c-mux-pca9541 Parent-locked49i2c-mux-pca9541 Parent-locked
46i2c-mux-pca954x Parent-locked50i2c-mux-pca954x Parent-locked
47i2c-mux-pinctrl Normally parent-locked, mux-locked iff51i2c-mux-pinctrl Normally parent-locked, mux-locked iff
@@ -50,9 +54,11 @@ i2c-mux-pinctrl Normally parent-locked, mux-locked iff · 2 unmodified lines
50i2c-mux-reg Parent-locked54i2c-mux-reg Parent-locked
51 55
52In drivers/iio/56In drivers/iio/
57gyro/mpu3050 Mux-locked
53imu/inv_mpu6050/ Mux-locked58imu/inv_mpu6050/ Mux-locked
54 59
55In drivers/media/60In drivers/media/
61dvb-frontends/lgdt3306a Mux-locked
56dvb-frontends/m88ds3103 Parent-locked62dvb-frontends/m88ds3103 Parent-locked
57dvb-frontends/rtl2830 Parent-locked63dvb-frontends/rtl2830 Parent-locked
58dvb-frontends/rtl2832 Mux-locked64dvb-frontends/rtl2832 Mux-locked
Documentation/iio/ep93xx_adc.txt+29−0
@@ -0,0 +1,29 @@
1Cirrus Logic EP93xx ADC driver.
2
31. Overview
4
5The driver is intended to work on both low-end (EP9301, EP9302) devices with
65-channel ADC and high-end (EP9307, EP9312, EP9315) devices with 10-channel
7touchscreen/ADC module.
8
92. Channel numbering
10
11Numbering scheme for channels 0..4 is defined in EP9301 and EP9302 datasheets.
12EP9307, EP9312 and EP9312 have 3 channels more (total 8), but the numbering is
13not defined. So the last three are numbered randomly, let's say.
14
15Assuming 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 @@
1Tag matching logic
2
3The MPI standard defines a set of rules, known as tag-matching, for matching
4source send operations to destination receives. The following parameters must
5match 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
10The ordering rules require that when more than one pair of send and receive
11message envelopes may match, the pair that includes the earliest posted-send
12and the earliest posted-receive is the pair that must be used to satisfy the
13matching operation. However, this doesn’t imply that tags are consumed in
14the order they are created, e.g., a later generated tag may be consumed, if
15earlier tags can’t be used to satisfy the matching rules.
16
17When a message is sent from the sender to the receiver, the communication
18library may attempt to process the operation either after or before the
19corresponding matching receive is posted. If a matching receive is posted,
20this is an expected message, otherwise it is called an unexpected message.
21Implementations frequently use different matching schemes for these two
22different matching instances.
23
24To keep MPI library memory footprint down, MPI implementations typically use
25two different protocols for this purpose:
26
271. The Eager protocol- the complete message is sent when the send is
28processed by the sender. A completion send is received in the send_cq
29notifying that the buffer can be reused.
30
312. The Rendezvous Protocol - the sender sends the tag-matching header,
32and perhaps a portion of data when first notifying the receiver. When the
33corresponding buffer is posted, the responder will use the information from
34the header to initiate an RDMA READ operation directly to the matching buffer.
35A fin message needs to be received in order for the buffer to be reused.
36
37Tag matching implementation
38
39There are two types of matching objects used, the posted receive list and the
40unexpected message list. The application posts receive buffers through calls
41to the MPI receive routines in the posted receive list and posts send messages
42using the MPI send routines. The head of the posted receive list may be
43maintained by the hardware, with the software expected to shadow this list.
44
45When send is initiated and arrives at the receive side, if there is no
46pre-posted receive for this arriving message, it is passed to the software and
47placed in the unexpected message list. Otherwise the match is processed,
48including rendezvous processing, if appropriate, delivering the data to the
49specified receive buffer. This allows overlapping receive-side MPI tag
50matching with computation.
51
52When a receive-message is posted, the communication library will first check
53the software unexpected message list for a matching receive. If a match is
54found, data is delivered to the user buffer, using a software controlled
55protocol. The UCX implementation uses either an eager or rendezvous protocol,
56depending on data size. If no match is found, the entire pre-posted receive
57list is maintained by the hardware, and there is space to add one more
58pre-posted receive to this list, this receive is passed to the hardware.
59Software is expected to shadow this list, to help with processing MPI cancel
60operations. In addition, because hardware and software are not expected to be
61tightly synchronized with respect to the tag-matching operation, this shadow
62list is used to detect the case that a pre-posted receive is passed to the
63hardware, as the matching unexpected message is being passed from the hardware
64to the software.
Documentation/input/input.rst+1−1
@@ -109,7 +109,7 @@ evdev nodes are created with minors starting with 256. · 108 unmodified lines
109keyboard109keyboard
110~~~~~~~~110~~~~~~~~
111 111
112``keyboard`` is in-kernel input handler ad is a part of VT code. It112``keyboard`` is in-kernel input handler and is a part of VT code. It
113consumes keyboard keystrokes and handles user input for VT consoles.113consumes keyboard keystrokes and handles user input for VT consoles.
114 114
115mousedev115mousedev
Documentation/input/joydev/index.rst+0−1
@@ -12,7 +12,6 @@ Linux Joystick support · 11 unmodified lines
12 12
13.. toctree::13.. toctree::
14 :maxdepth: 314 :maxdepth: 3
15 :numbered:
16 15
17 joystick16 joystick
18 joystick-api17 joystick-api
Documentation/kbuild/makefiles.txt+3−3
@@ -297,9 +297,9 @@ more details, with real examples. · 296 unmodified lines
297 ccflags-y specifies options for compiling with $(CC).297 ccflags-y specifies options for compiling with $(CC).
298 298
299 Example:299 Example:
300 # drivers/acpi/Makefile300 # drivers/acpi/acpica/Makefile
301 ccflags-y := -Os301 ccflags-y := -Os -D_LINUX -DBUILDING_ACPICA
302 ccflags-$(CONFIG_ACPI_DEBUG) += -DACPI_DEBUG_OUTPUT302 ccflags-$(CONFIG_ACPI_DEBUG) += -DACPI_DEBUG_OUTPUT
303 303
304 This variable is necessary because the top Makefile owns the304 This variable is necessary because the top Makefile owns the
305 variable $(KBUILD_CFLAGS) and uses it for compilation flags for the305 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
121Sysfs device attributes for the sensors and fan are on the121Sysfs device attributes for the sensors and fan are on the
122thinkpad_hwmon device's sysfs attribute space, but you should locate it122thinkpad_hwmon device's sysfs attribute space, but you should locate it
123looking for a hwmon device with the name attribute of "thinkpad", or123looking for a hwmon device with the name attribute of "thinkpad", or
124better yet, through libsensors.124better yet, through libsensors. For 4.14+ sysfs attributes were moved to the
125 125hwmon device (/sys/bus/platform/devices/thinkpad_hwmon/hwmon/hwmon? or
126/sys/class/hwmon/hwmon?).
126 127
127Driver version128Driver version
128--------------129--------------
@@ -1478,3 +1479,7 @@ Sysfs interface changelog: · 1349 unmodified lines
14780x020700: Support for mute-only mixers.14790x020700: Support for mute-only mixers.
1479 Volume control in read-only mode by default.1480 Volume control in read-only mode by default.
1480 Marker for ALSA mixer support.1481 Marker for ALSA mixer support.
1482
14830x030000: 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 @@
1Crossrelease
2============
3
4Started by Byungchul Park <byungchul.park@lge.com>
5
6Contents:
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==========
41Background
42==========
43
44What causes deadlock
45--------------------
46
47A deadlock occurs when a context is waiting for an event to happen,
48which is impossible because another (or the) context who can trigger the
49event is also waiting for another (or the) event to happen, which is
50also impossible due to the same reason.
51
52For 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
58A deadlock occurs when these three wait operations run at the same time,
59because event C cannot be triggered if event A does not happen, which in
60turn cannot be triggered if event B does not happen, which in turn
61cannot be triggered if event C does not happen. After all, no event can
62be triggered since any of them never meets its condition to wake up.
63
64A dependency might exist between two waiters and a deadlock might happen
65due to an incorrect releationship between dependencies. Thus, we must
66define 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
72Each 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
84And 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
93Such circular dependencies lead to a deadlock since no waiter can meet
94its condition to wake up as described.
95
96CONCLUSION
97
98Circular dependencies cause a deadlock.
99
100
101How lockdep works
102-----------------
103
104Lockdep tries to detect a deadlock by checking dependencies created by
105lock operations, acquire and release. Waiting for a lock corresponds to
106waiting for an event, and releasing a lock corresponds to triggering an
107event in the previous section.
108
109In 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
116For 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
126Lockdep will add a dependency into the graph on detection of a new
127dependency. For example, it will add a dependency 'E -> C' when a new
128dependency 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
141This 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
152This is the condition under which a deadlock might occur. Lockdep
153reports it on detection after adding a new dependency. This is the way
154how lockdep works.
155
156CONCLUSION
157
158Lockdep detects a deadlock or its possibility by checking if circular
159dependencies were created after adding each new dependency.
160
161
162==========
163Limitation
164==========
165
166Limit lockdep
167-------------
168
169Limiting lockdep to work on only typical locks e.g. spin locks and
170mutexes, which are released within the acquire context, the
171implementation becomes simple but its capacity for detection becomes
172limited. Let's check pros and cons in next section.
173
174
175Pros from the limitation
176------------------------
177
178Given the limitation, when acquiring a lock, locks in a held_locks
179cannot be released if the context cannot acquire it so has to wait to
180acquire it, which means all waiters for the locks in the held_locks are
181stuck. It's an exact case to create dependencies between each lock in
182the held_locks and the lock to acquire.
183
184For 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
195When acquiring lock A, the held_locks of CONTEXT X is empty thus no
196dependency is added. But when acquiring lock B, lockdep detects and adds
197a new dependency 'A -> B' between lock A in the held_locks and lock B.
198They can be simply added whenever acquiring each lock.
199
200And data required by lockdep exists in a local structure, held_locks
201embedded in task_struct. Forcing to access the data within the context,
202lockdep can avoid racy problems without explicit locks while handling
203the local data.
204
205Lastly, lockdep only needs to keep locks currently being held, to build
206a dependency graph. However, relaxing the limitation, it needs to keep
207even locks already released, because a decision whether they created
208dependencies might be long-deferred.
209
210To 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
216CONCLUSION
217
218Given the limitation, the implementation becomes simple and efficient.
219
220
221Cons from the limitation
222------------------------
223
224Given the limitation, lockdep is applicable only to typical locks. For
225example, page locks for page access or completions for synchronization
226cannot work with lockdep.
227
228Can we detect deadlocks below, under the limitation?
229
230Example 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
245No, we cannot.
246
247Example 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
260No, we cannot.
261
262CONCLUSION
263
264Given the limitation, lockdep cannot detect a deadlock or its
265possibility caused by page locks or completions.
266
267
268Relax the limitation
269--------------------
270
271Under the limitation, things to create dependencies are limited to
272typical locks. However, synchronization primitives like page locks and
273completions, which are allowed to be released in any context, also
274create dependencies and can cause a deadlock. So lockdep should track
275these locks to do a better job. We have to relax the limitation for
276these locks to work with lockdep.
277
278Detecting dependencies is very important for lockdep to work because
279adding a dependency means adding an opportunity to check whether it
280causes a deadlock. The more lockdep adds dependencies, the more it
281thoroughly works. Thus Lockdep has to do its best to detect and add as
282many true dependencies into a graph as possible.
283
284For 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
294On the other hand, under the relaxation, additional dependencies might
295be created and added. Assuming additional 'FX -> C' and 'E -> GX' are
296added 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
307The latter graph gives us more chances to check circular dependencies
308than the former. However, it might suffer performance degradation since
309relaxing the limitation, with which design and implementation of lockdep
310can be efficient, might introduce inefficiency inevitably. So lockdep
311should provide two options, strong detection and efficient detection.
312
313Choosing efficient detection:
314
315 Lockdep works with only locks restricted to be released within the
316 acquire context. However, lockdep works efficiently.
317
318Choosing strong detection:
319
320 Lockdep works with all synchronization primitives. However, lockdep
321 suffers performance degradation.
322
323CONCLUSION
324
325Relaxing the limitation, lockdep can add additional dependencies giving
326additional opportunities to check circular dependencies.
327
328
329============
330Crossrelease
331============
332
333Introduce crossrelease
334----------------------
335
336In order to allow lockdep to handle additional dependencies by what
337might be released in any context, namely 'crosslock', we have to be able
338to identify those created by crosslocks. The proposed 'crossrelease'
339feature provoides a way to do that.
340
341Crossrelease feature has to do:
342
343 1. Identify dependencies created by crosslocks.
344 2. Add the dependencies into a dependency graph.
345
346That's all. Once a meaningful dependency is added into graph, then
347lockdep would work with the graph as it did. The most important thing
348crossrelease feature has to do is to correctly identify and add true
349dependencies into the global graph.
350
351A dependency e.g. 'A -> B' can be identified only in the A's release
352context because a decision required to identify the dependency can be
353made only in the release context. That is to decide whether A can be
354released so that a waiter for A can be woken up. It cannot be made in
355other than the A's release context.
356
357It's no matter for typical locks because each acquire context is same as
358its release context, thus lockdep can decide whether a lock can be
359released in the acquire context. However for crosslocks, lockdep cannot
360make the decision in the acquire context but has to wait until the
361release context is identified.
362
363Therefore, deadlocks by crosslocks cannot be detected just when it
364happens, because those cannot be identified until the crosslocks are
365released. However, deadlock possibilities can be detected and it's very
366worth. See 'APPENDIX A' section to check why.
367
368CONCLUSION
369
370Using crossrelease feature, lockdep can work with what might be released
371in any context, namely crosslock.
372
373
374Introduce commit
375----------------
376
377Since crossrelease defers the work adding true dependencies of
378crosslocks until they are actually released, crossrelease has to queue
379all acquisitions which might create dependencies with the crosslocks.
380Then it identifies dependencies using the queued data in batches at a
381proper time. We call it 'commit'.
382
383There are four types of dependencies:
384
3851. 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
3912. 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
3973. 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
4034. 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
410Lockdep can work without commit for typical locks, but commit step is
411necessary once crosslocks are involved. Introducing commit, lockdep
412performs three steps. What lockdep does in each step is:
413
4141. 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
4192. 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
4233. Release: No changes are required for typical locks. When a crosslock
424 is released, it decreases a reference count for it.
425
426CONCLUSION
427
428Crossrelease introduces commit step to handle dependencies of crosslocks
429in batches at a proper time.
430
431
432==============
433Implementation
434==============
435
436Data structures
437---------------
438
439Crossrelease introduces two main data structures.
440
4411. 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
4492. 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
455How crossrelease works
456----------------------
457
458It's the key of how crossrelease works, to defer necessary works to an
459appropriate point in time and perform in at once at the commit step.
460Let's take a look with examples step by step, starting from how lockdep
461works 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
478In this case, lockdep adds 'the top of held_locks -> the lock to acquire'
479dependency every time acquiring a lock.
480
481After adding 'A -> B', a dependency graph will be:
482
483 A -> B
484
485 where A and B are different lock classes.
486
487And 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
493Let's performs commit step even for typical locks to add dependencies.
494Of course, commit step is not necessary for them, however, it would work
495well 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
559In this case, dependencies are added at the commit step as described.
560
561After 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
569We can see the former graph built without commit step is same as the
570latter graph built using commit steps. Of course the former way leads to
571earlier finish for building the graph, which means we can detect a
572deadlock or its possibility sooner. So the former way would be prefered
573when possible. But we cannot avoid using the latter way for crosslocks.
574
575Let's look at how commit steps work for crosslocks. In this case, the
576commit step is performed only on crosslock AX as real. And it assumes
577that 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
690Crossrelease considers all acquisitions after acqiuring BX are
691candidates which might create dependencies with BX. True dependencies
692will be determined when identifying the release context of BX. Meanwhile,
693all typical locks are queued so that they can be used at the commit step.
694And then two dependencies 'BX -> C' and 'BX -> E' are added at the
695commit step when identifying the release context.
696
697The 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
710However, the final graph will be, without crossrelease:
711
712 A -> D
713
714 where A and D are different lock classes.
715
716The former graph has three more dependencies, 'A -> BX', 'BX -> C' and
717'BX -> E' giving additional opportunities to check if they cause
718deadlocks. This way lockdep can detect a deadlock or its possibility
719caused by crosslocks.
720
721CONCLUSION
722
723We checked how crossrelease works with several examples.
724
725
726=============
727Optimizations
728=============
729
730Avoid duplication
731-----------------
732
733Crossrelease feature uses a cache like what lockdep already uses for
734dependency chains, but this time it's for caching CT type dependencies.
735Once that dependency is cached, the same will never be added again.
736
737
738Lockless for hot paths
739----------------------
740
741To keep all locks for later use at the commit step, crossrelease adopts
742a local array embedded in task_struct, which makes access to the data
743lockless by forcing it to happen only within the owner context. It's
744like how lockdep handles held_locks. Lockless implmentation is important
745since typical locks are very frequently acquired and released.
746
747
748=================================================
749APPENDIX A: What lockdep does to work aggresively
750=================================================
751
752A deadlock actually occurs when all wait operations creating circular
753dependencies run at the same time. Even though they don't, a potential
754deadlock exists if the problematic dependencies exist. Thus it's
755meaningful to detect not only an actual deadlock but also its potential
756possibility. The latter is rather valuable. When a deadlock occurs
757actually, we can identify what happens in the system by some means or
758other even without lockdep. However, there's no way to detect possiblity
759without lockdep unless the whole code is parsed in head. It's terrible.
760Lockdep does the both, and crossrelease only focuses on the latter.
761
762Whether or not a deadlock actually occurs depends on several factors.
763For example, what order contexts are switched in is a factor. Assuming
764circular dependencies exist, a deadlock would occur when contexts are
765switched so that all wait operations creating the dependencies run
766simultaneously. Thus to detect a deadlock possibility even in the case
767that it has not occured yet, lockdep should consider all possible
768combinations of dependencies, trying to:
769
7701. 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
7772. 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
7843. 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
790CONCLUSION
791
792Lockdep detects not only an actual deadlock but also its possibility,
793and the latter is more valuable.
794
795
796==================================================
797APPENDIX B: How to avoid adding false dependencies
798==================================================
799
800Remind 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
806For 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
815A 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
822For 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
834Even in this case involving crosslocks, the same rule can be applied. A
835depedency '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
842Let'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
857Does a dependency 'AX -> B' exist? Nope.
858
859Two waiters are essential to create a dependency. However, waiters for
860AX and B to create 'AX -> B' cannot exist at the same time in this
861example. Thus the dependency 'AX -> B' cannot be created.
862
863It would be ideal if the full set of true ones can be considered. But
864we can ensure nothing but what actually happened. Relying on what
865actually happens at runtime, we can anyway add only true ones, though
866they might be a subset of true ones. It's similar to how lockdep works
867for typical locks. There might be more true dependencies than what
868lockdep has detected in runtime. Lockdep has no choice but to rely on
869what actually happens. Crossrelease also relies on it.
870
871CONCLUSION
872
873Relying on what actually happens, lockdep can avoid adding false
874dependencies.
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
97 a process being blocked on the mutex, it is fine to allocate97 a process being blocked on the mutex, it is fine to allocate
98 the waiter on the process's stack (local variable). This98 the waiter on the process's stack (local variable). This
99 structure holds a pointer to the task, as well as the mutex that99 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 to100 the task is blocked on. It also has rbtree node structures to
101 place the task in the waiter_list of a mutex as well as the101 place the task in the waiters rbtree of a mutex as well as the
102 pi_list of a mutex owner task (described below).102 pi_waiters rbtree of a mutex owner task (described below).
103 103
104 waiter is sometimes used in reference to the task that is waiting104 waiter is sometimes used in reference to the task that is waiting
105 on a mutex. This is the same as waiter->task.105 on a mutex. This is the same as waiter->task.
@@ -179,53 +179,34 @@ again. · 73 unmodified lines
179 |179 |
180 F->L5-+180 F->L5-+
181 181
182If process G has the highest priority in the chain, then all the tasks up
183the chain (A and B in this example), must have their priorities increased
184to that of G.
182 185
183Plist186Mutex Waiters Tree
184-----
185
186Before I go further and talk about how the PI chain is stored through lists
187on both mutexes and processes, I'll explain the plist. This is similar to
188the struct list_head functionality that is already in the kernel.
189The implementation of plist is out of scope for this document, but it is
190very important to understand what it does.
191
192There are a few differences between plist and list, the most important one
193being that plist is a priority sorted linked list. This means that the
194priorities of the plist are sorted, such that it takes O(1) to retrieve the
195highest priority item in the list. Obviously this is useful to store processes
196based on their priorities.
197
198Another difference, which is important for implementation, is that, unlike
199list, the head of the list is a different element than the nodes of a list.
200So the head of the list is declared as struct plist_head and nodes that will
201be added to the list are declared as struct plist_node.
202
203
204Mutex Waiter List
205-----------------187-----------------
206 188
207Every mutex keeps track of all the waiters that are blocked on itself. The mutex189Every mutex keeps track of all the waiters that are blocked on itself. The
208has a plist to store these waiters by priority. This list is protected by190mutex has a rbtree to store these waiters by priority. This tree is protected
209a spin lock that is located in the struct of the mutex. This lock is called191by a spin lock that is located in the struct of the mutex. This lock is called
210wait_lock. Since the modification of the waiter list is never done in192wait_lock.
211interrupt context, the wait_lock can be taken without disabling interrupts.
212 193
213 194
214Task PI List195Task PI Tree
215------------196------------
216 197
217To keep track of the PI chains, each process has its own PI list. This is198To keep track of the PI chains, each process has its own PI rbtree. This is
218a list of all top waiters of the mutexes that are owned by the process.199a tree of all top waiters of the mutexes that are owned by the process.
219Note that this list only holds the top waiters and not all waiters that are200Note that this tree only holds the top waiters and not all waiters that are
220blocked on mutexes owned by the process.201blocked on mutexes owned by the process.
221 202
222The top of the task's PI list is always the highest priority task that203The top of the task's PI tree is always the highest priority task that
223is waiting on a mutex that is owned by the task. So if the task has204is waiting on a mutex that is owned by the task. So if the task has
224inherited a priority, it will always be the priority of the task that is205inherited a priority, it will always be the priority of the task that is
225at the top of this list.206at the top of this tree.
226 207
227This list is stored in the task structure of a process as a plist called208This tree is stored in the task structure of a process as a rbtree called
228pi_list. This list is protected by a spin lock also in the task structure,209pi_waiters. It is protected by a spin lock also in the task structure,
229called pi_lock. This lock may also be taken in interrupt context, so when210called pi_lock. This lock may also be taken in interrupt context, so when
230locking the pi_lock, interrupts must be disabled.211locking the pi_lock, interrupts must be disabled.
231 212
@@ -312,15 +293,12 @@ Mutex owner and flags · 80 unmodified lines
312 293
313The mutex structure contains a pointer to the owner of the mutex. If the294The mutex structure contains a pointer to the owner of the mutex. If the
314mutex is not owned, this owner is set to NULL. Since all architectures295mutex is not owned, this owner is set to NULL. Since all architectures
315have the task structure on at least a four byte alignment (and if this is296have the task structure on at least a two byte alignment (and if this is
316not true, the rtmutex.c code will be broken!), this allows for the two297not true, the rtmutex.c code will be broken!), this allows for the least
317least significant bits to be used as flags. This part is also described298significant bit to be used as a flag. Bit 0 is used as the "Has Waiters"
318in Documentation/rt-mutex.txt, but will also be briefly described here.299flag. It's set whenever there are waiters on a mutex.
319
320Bit 0 is used as the "Pending Owner" flag. This is described later.
321Bit 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.
323 300
301See Documentation/locking/rt-mutex.txt for further details.
324 302
325cmpxchg Tricks303cmpxchg Tricks
326--------------304--------------
@@ -359,40 +337,31 @@ Priority adjustments · 32 unmodified lines
359--------------------337--------------------
360 338
361The implementation of the PI code in rtmutex.c has several places that a339The implementation of the PI code in rtmutex.c has several places that a
362process must adjust its priority. With the help of the pi_list of a340process must adjust its priority. With the help of the pi_waiters of a
363process this is rather easy to know what needs to be adjusted.341process this is rather easy to know what needs to be adjusted.
364 342
365The functions implementing the task adjustments are rt_mutex_adjust_prio,343The functions implementing the task adjustments are rt_mutex_adjust_prio
366__rt_mutex_adjust_prio (same as the former, but expects the task pi_lock344and rt_mutex_setprio. rt_mutex_setprio is only used in rt_mutex_adjust_prio.
367to already be taken), rt_mutex_getprio, and rt_mutex_setprio.
368 345
369rt_mutex_getprio and rt_mutex_setprio are only used in __rt_mutex_adjust_prio.346rt_mutex_adjust_prio examines the priority of the task, and the highest
347priority process that is waiting any of mutexes owned by the task. Since
348the pi_waiters of a task holds an order by priority of all the top waiters
349of all the mutexes that the task owns, we simply need to compare the top
350pi waiter to its own normal/deadline priority and take the higher one.
351Then rt_mutex_setprio is called to adjust the priority of the task to the
352new priority. Note that rt_mutex_setprio is defined in kernel/sched/core.c
353to implement the actual change in priority.
370 354
371rt_mutex_getprio returns the priority that the task should have. Either the355(Note: For the "prio" field in task_struct, the lower the number, the
372task's own normal priority, or if a process of a higher priority is waiting on356 higher the priority. A "prio" of 5 is of higher priority than a
373a mutex owned by the task, then that higher priority should be returned.357 "prio" of 10.)
374Since the pi_list of a task holds an order by priority list of all the top
375waiters of all the mutexes that the task owns, rt_mutex_getprio simply needs
376to compare the top pi waiter to its own normal priority, and return the higher
377priority back.
378 358
379(Note: if looking at the code, you will notice that the lower number of359It is interesting to note that rt_mutex_adjust_prio can either increase
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
385result does not equal the task's current priority, then rt_mutex_setprio
386is called to adjust the priority of the task to the new priority.
387Note that rt_mutex_setprio is defined in kernel/sched/core.c to implement the
388actual change in priority.
389
390It is interesting to note that __rt_mutex_adjust_prio can either increase
391or decrease the priority of the task. In the case that a higher priority360or decrease the priority of the task. In the case that a higher priority
392process has just blocked on a mutex owned by the task, __rt_mutex_adjust_prio361process has just blocked on a mutex owned by the task, rt_mutex_adjust_prio
393would increase/boost the task's priority. But if a higher priority task362would increase/boost the task's priority. But if a higher priority task
394were for some reason to leave the mutex (timeout or signal), this same function363were for some reason to leave the mutex (timeout or signal), this same function
395would decrease/unboost the priority of the task. That is because the pi_list364would decrease/unboost the priority of the task. That is because the pi_waiters
396always contains the highest priority task that is waiting on a mutex owned365always contains the highest priority task that is waiting on a mutex owned
397by the task, so we only need to compare the priority of that top pi waiter366by the task, so we only need to compare the priority of that top pi waiter
398to the normal priority of the given task.367to the normal priority of the given task.
@@ -412,9 +381,10 @@ priorities. · 13 unmodified lines
412 381
413rt_mutex_adjust_prio_chain is called with a task to be checked for PI382rt_mutex_adjust_prio_chain is called with a task to be checked for PI
414(de)boosting (the owner of a mutex that a process is blocking on), a flag to383(de)boosting (the owner of a mutex that a process is blocking on), a flag to
415check for deadlocking, the mutex that the task owns, and a pointer to a waiter384check for deadlocking, the mutex that the task owns, a pointer to a waiter
416that is the process's waiter struct that is blocked on the mutex (although this385that is the process's waiter struct that is blocked on the mutex (although this
417parameter may be NULL for deboosting).386parameter may be NULL for deboosting), a pointer to the mutex on which the task
387is blocked, and a top_task as the top waiter of the mutex.
418 388
419For this explanation, I will not mention deadlock detection. This explanation389For this explanation, I will not mention deadlock detection. This explanation
420will try to stay at a high level.390will 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
424 394
425Before this function is called, the task has already had rt_mutex_adjust_prio395Before this function is called, the task has already had rt_mutex_adjust_prio
426performed on it. This means that the task is set to the priority that it396performed on it. This means that the task is set to the priority that it
427should be at, but the plist nodes of the task's waiter have not been updated397should be at, but the rbtree nodes of the task's waiter have not been updated
428with the new priorities, and that this task may not be in the proper locations398with the new priorities, and this task may not be in the proper locations
429in the pi_lists and wait_lists that the task is blocked on. This function399in the pi_waiters and waiters trees that the task is blocked on. This function
430solves all that.400solves all that.
431 401
432A loop is entered, where task is the owner to be checked for PI changes that402The main operation of this function is summarized by Thomas Gleixner in
433was passed by parameter (for the first iteration). The pi_lock of this task is403rtmutex.c. See the 'Chain walk basics and protection scope' comment for further
434taken to prevent any more changes to the pi_list of the task. This also404details.
435prevents new tasks from completing the blocking on a mutex that is owned by this
436task.
437
438If the task is not blocked on a mutex then the loop is exited. We are at
439the top of the PI chain.
440
441A check is now done to see if the original waiter (the process that is blocked
442on the current mutex) is the top pi waiter of the task. That is, is this
443waiter on the top of the task's pi_list. If it is not, it either means that
444there is another process higher in priority that is blocked on one of the
445mutexes that the task owns, or that the waiter has just woken up via a signal
446or timeout and has left the PI chain. In either case, the loop is exited, since
447we don't need to do any more changes to the priority of the current task, or any
448task that owns a mutex that this current task is waiting on. A priority chain
449walk is only needed when a new top pi waiter is made to a task.
450
451The next check sees if the task's waiter plist node has the priority equal to
452the priority the task is set at. If they are equal, then we are done with
453the loop. Remember that the function started with the priority of the
454task adjusted, but the plist nodes that hold the task in other processes
455pi_lists have not been adjusted.
456
457Next, we look at the mutex that the task is blocked on. The mutex's wait_lock
458is taken. This is done by a spin_trylock, because the locking order of the
459pi_lock and wait_lock goes in the opposite direction. If we fail to grab the
460lock, the pi_lock is released, and we restart the loop.
461
462Now that we have both the pi_lock of the task as well as the wait_lock of
463the mutex the task is blocked on, we update the task's waiter's plist node
464that is located on the mutex's wait_list.
465
466Now we release the pi_lock of the task.
467
468Next the owner of the mutex has its pi_lock taken, so we can update the
469task's entry in the owner's pi_list. If the task is the highest priority
470process on the mutex's wait_list, then we remove the previous top waiter
471from the owner's pi_list, and replace it with the task.
472
473Note: 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
478If the task was not the top waiter of the mutex, but it was before we
479did the priority updates, that means we are deboosting/lowering the
480task. In this case, the task is removed from the pi_list of the owner,
481and the new top waiter is added.
482
483Lastly, we unlock both the pi_lock of the task, as well as the mutex's
484wait_lock, and continue the loop again. On the next iteration of the
485loop, the previous owner of the mutex will be the task that will be
486processed.
487
488Note: 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
521Pending Owners and Lock stealing
522--------------------------------
523
524One of the flags in the owner field of the mutex structure is "Pending Owner".
525What this means is that an owner was chosen by the process releasing the
526mutex, but that owner has yet to wake up and actually take the mutex.
527
528Why is this important? Why can't we just give the mutex to another process
529and be done with it?
530
531The PI code is to help with real-time processes, and to let the highest
532priority process run as long as possible with little latencies and delays.
533If a high priority process owns a mutex that a lower priority process is
534blocked on, when the mutex is released it would be given to the lower priority
535process. What if the higher priority process wants to take that mutex again.
536The high priority process would fail to take that mutex that it just gave up
537and it would need to boost the lower priority process to run with full
538latency of that critical section (since the low priority process just entered
539it).
540
541There's no reason a high priority process that gives up a mutex should be
542penalized if it tries to take that mutex again. If the new owner of the
543mutex has not woken up yet, there's no reason that the higher priority process
544could not take that mutex away.
545
546To solve this, we introduced Pending Ownership and Lock Stealing. When a
547new process is given a mutex that it was blocked on, it is only given
548pending ownership. This means that it's the new owner, unless a higher
549priority process comes in and tries to grab that mutex. If a higher priority
550process does come along and wants that mutex, we let the higher priority
551process "steal" the mutex from the pending owner (only if it is still pending)
552and continue with the mutex.
553
554 405
555Taking of a mutex (The walk through)406Taking of a mutex (The walk through)
556------------------------------------407------------------------------------
@@ -563,14 +414,14 @@ done when we have CMPXCHG enabled (otherwise the fast taking automatically · 6 unmodified lines
563fails). Only when the owner field of the mutex is NULL can the lock be414fails). Only when the owner field of the mutex is NULL can the lock be
564taken with the CMPXCHG and nothing else needs to be done.415taken with the CMPXCHG and nothing else needs to be done.
565 416
566If there is contention on the lock, whether it is owned or pending owner417If there is contention on the lock, we go about the slow path
567we go about the slow path (rt_mutex_slowlock).418(rt_mutex_slowlock).
568 419
569The slow path function is where the task's waiter structure is created on420The slow path function is where the task's waiter structure is created on
570the stack. This is because the waiter structure is only needed for the421the stack. This is because the waiter structure is only needed for the
571scope of this function. The waiter structure holds the nodes to store422scope of this function. The waiter structure holds the nodes to store
572the task on the wait_list of the mutex, and if need be, the pi_list of423the task on the waiters tree of the mutex, and if need be, the pi_waiters
573the owner.424tree of the owner.
574 425
575The wait_lock of the mutex is taken since the slow path of unlocking the426The wait_lock of the mutex is taken since the slow path of unlocking the
576mutex also takes this lock.427mutex also takes this lock.
@@ -581,102 +432,45 @@ contention). · 4 unmodified lines
581 432
582try_to_take_rt_mutex is used every time the task tries to grab a mutex in the433try_to_take_rt_mutex is used every time the task tries to grab a mutex in the
583slow path. The first thing that is done here is an atomic setting of434slow path. The first thing that is done here is an atomic setting of
584the "Has Waiters" flag of the mutex's owner field. Yes, this could really435the "Has Waiters" flag of the mutex's owner field. By setting this flag
585be false, because if the mutex has no owner, there are no waiters and436now, the current owner of the mutex being contended for can't release the mutex
586the current task also won't have any waiters. But we don't have the lock437without going into the slow unlock path, and it would then need to grab the
587yet, so we assume we are going to be a waiter. The reason for this is to438wait_lock, which this code currently holds. So setting the "Has Waiters" flag
588play nice for those architectures that do have CMPXCHG. By setting this flag439forces the current owner to synchronize with this code.
589now, the owner of the mutex can't release the mutex without going into the440
590slow unlock path, and it would then need to grab the wait_lock, which this441The lock is taken if the following are true:
591code currently holds. So setting the "Has Waiters" flag forces the owner442 1) The lock has no owner
592to synchronize with this code.443 2) The current task is the highest priority against all other
593 444 waiters of the lock
594Now that we know that we can't have any races with the owner releasing the445
595mutex, we check to see if we can take the ownership. This is done if the446If the task succeeds to acquire the lock, then the task is set as the
596mutex doesn't have a owner, or if we can steal the mutex from a pending447owner of the lock, and if the lock still has waiters, the top_waiter
597owner. Let's look at the situations we have here.448(highest priority task waiting on the lock) is added to this task's
598 449pi_waiters tree.
599 1) Has owner that is pending450
600 ----------------------------451If the lock is not taken by try_to_take_rt_mutex(), then the
601 452task_blocks_on_rt_mutex() function is called. This will add the task to
602 The mutex has a owner, but it hasn't woken up and the mutex flag453the lock's waiter tree and propagate the pi chain of the lock as well
603 "Pending Owner" is set. The first check is to see if the owner isn't the454as the lock's owner's pi_waiters tree. This is described in the next
604 current task. This is because this function is also used for the pending455section.
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
642We'll continue on the failed case.
643
644If the mutex has a timeout, we set up a timer to go off to break us out
645of this mutex if we failed to get it after a specified amount of time.
646
647Now we enter a loop that will continue to try to take ownership of the mutex, or
648fail from a timeout or signal.
649
650Once again we try to take the mutex. This will usually fail the first time
651in the loop, since it had just failed to get the mutex. But the second time
652in the loop, this would likely succeed, since the task would likely be
653the pending owner.
654
655If the mutex is TASK_INTERRUPTIBLE a check for signals and timeout is done
656here.
657
658The waiter structure has a "task" field that points to the task that is blocked
659on the mutex. This field can be NULL the first time it goes through the loop
660or if the task is a pending owner and had its mutex stolen. If the "task"
661field is NULL then we need to set up the accounting for it.
662 456
663Task blocks on mutex457Task blocks on mutex
664--------------------458--------------------
665 459
666The accounting of a mutex and process is done with the waiter structure of460The accounting of a mutex and process is done with the waiter structure of
667the process. The "task" field is set to the process, and the "lock" field461the process. The "task" field is set to the process, and the "lock" field
668to the mutex. The plist nodes are initialized to the processes current462to the mutex. The rbtree node of waiter are initialized to the processes
669priority.463current priority.
670 464
671Since the wait_lock was taken at the entry of the slow lock, we can safely465Since the wait_lock was taken at the entry of the slow lock, we can safely
672add the waiter to the wait_list. If the current process is the highest466add the waiter to the task waiter tree. If the current process is the
673priority process currently waiting on this mutex, then we remove the467highest priority process currently waiting on this mutex, then we remove the
674previous top waiter process (if it exists) from the pi_list of the owner,468previous top waiter process (if it exists) from the pi_waiters of the owner,
675and add the current process to that list. Since the pi_list of the owner469and add the current process to that tree. Since the pi_waiter of the owner
676has changed, we call rt_mutex_adjust_prio on the owner to see if the owner470has changed, we call rt_mutex_adjust_prio on the owner to see if the owner
677should adjust its priority accordingly.471should adjust its priority accordingly.
678 472
679If the owner is also blocked on a lock, and had its pi_list changed473If the owner is also blocked on a lock, and had its pi_waiters changed
680(or deadlock checking is on), we unlock the wait_lock of the mutex and go ahead474(or deadlock checking is on), we unlock the wait_lock of the mutex and go ahead
681and run rt_mutex_adjust_prio_chain on the owner, as described earlier.475and run rt_mutex_adjust_prio_chain on the owner, as described earlier.
682 476
@@ -686,30 +480,23 @@ mutex (waiter "task" field is not NULL), then we go to sleep (call schedule). · 3 unmodified lines
686Waking up in the loop480Waking up in the loop
687---------------------481---------------------
688 482
689The schedule can then wake up for a few reasons.483The task can then wake up for a couple of reasons:
690 1) we were given pending ownership of the mutex.484 1) The previous lock owner released the lock, and the task now is top_waiter
691 2) we received a signal and was TASK_INTERRUPTIBLE485 2) we received a signal or timeout
692 3) we had a timeout and was TASK_INTERRUPTIBLE
693 486
694In any of these cases, we continue the loop and once again try to grab the487In both cases, the task will try again to acquire the lock. If it
695ownership of the mutex. If we succeed, we exit the loop, otherwise we continue488does, then it will take itself off the waiters tree and set itself back
696and on signal and timeout, will exit the loop, or if we had the mutex stolen489to the TASK_RUNNING state.
697we just simply add ourselves back on the lists and go back to sleep.
698 490
699Note: For various reasons, because of timeout and signals, the steal mutex491In first case, if the lock was acquired by another task before this task
700 algorithm needs to be careful. This is because the current process is492could get the lock, then it will go back to sleep and wait to be woken again.
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
705Failed to get mutex on Timeout or Signal
706----------------------------------------
707 493
708If a timeout or signal occurred, the waiter's "task" field would not be494The second case is only applicable for tasks that are grabbing a mutex
709NULL and the task needs to be taken off the wait_list of the mutex and perhaps495that can wake up before getting the lock, either due to a signal or
710pi_list of the owner. If this process was a high priority process, then496a timeout (i.e. rt_mutex_timed_futex_lock()). When woken, it will try to
711the rt_mutex_adjust_prio_chain needs to be executed again on the owner,497take the lock again, if it succeeds, then the task will return with the
712but this time it will be lowering the priorities.498lock held, otherwise it will return with -EINTR if the task was woken
499by a signal, or -ETIMEDOUT if it timed out.
713 500
714 501
715Unlocking the Mutex502Unlocking the Mutex
@@ -739,25 +526,12 @@ owner still needs to make this check. If there are no waiters then the mutex · 23 unmodified lines
739owner field is set to NULL, the wait_lock is released and nothing more is526owner field is set to NULL, the wait_lock is released and nothing more is
740needed.527needed.
741 528
742If there are waiters, then we need to wake one up and give that waiter529If there are waiters, then we need to wake one up.
743pending ownership.
744 530
745On the wake up code, the pi_lock of the current owner is taken. The top531On the wake up code, the pi_lock of the current owner is taken. The top
746waiter of the lock is found and removed from the wait_list of the mutex532waiter of the lock is found and removed from the waiters tree of the mutex
747as well as the pi_list of the current owner. The task field of the new533as well as the pi_waiters tree of the current owner. The "Has Waiters" bit is
748pending owner's waiter structure is set to NULL, and the owner field of the534marked to prevent lower priority tasks from stealing the lock.
749mutex is set to the new owner with the "Pending Owner" bit set, as well
750as the "Has Waiters" bit if there still are other processes blocked on the
751mutex.
752
753The pi_lock of the previous owner is released, and the new pending owner's
754pi_lock is taken. Remember that this is the trick to prevent the race
755condition in rt_mutex_adjust_prio_chain from adding itself as a waiter
756on the mutex.
757
758We now clear the "pi_blocked_on" field of the new pending owner, and if
759the mutex still has waiters pending, we add the new top waiter to the pi_list
760of the pending owner.
761 535
762Finally we unlock the pi_lock of the pending owner and wake it up.536Finally we unlock the pi_lock of the pending owner and wake it up.
763 537
@@ -772,10 +546,14 @@ Credits · 8 unmodified lines
772-------546-------
773 547
774Author: Steven Rostedt <rostedt@goodmis.org>548Author: Steven Rostedt <rostedt@goodmis.org>
549Updated: Alex Shi <alex.shi@linaro.org> - 7/6/2017
775 550
776Reviewers: Ingo Molnar, Thomas Gleixner, Thomas Duetsch, and Randy Dunlap551Original Reviewers: Ingo Molnar, Thomas Gleixner, Thomas Duetsch, and
552 Randy Dunlap
553Update (7/6/2017) Reviewers: Steven Rostedt and Sebastian Siewior
777 554
778Updates555Updates
779-------556-------
780 557
781This document was originally written for 2.6.17-rc3-mm1558This document was originally written for 2.6.17-rc3-mm1
559was 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
28well-designed applications to use userspace locks in critical parts of28well-designed applications to use userspace locks in critical parts of
29an high priority thread, without losing determinism.29an high priority thread, without losing determinism.
30 30
31The enqueueing of the waiters into the rtmutex waiter list is done in31The enqueueing of the waiters into the rtmutex waiter tree is done in
32priority order. For same priorities FIFO order is chosen. For each32priority order. For same priorities FIFO order is chosen. For each
33rtmutex, only the top priority waiter is enqueued into the owner's33rtmutex, only the top priority waiter is enqueued into the owner's
34priority waiters list. This list too queues in priority order. Whenever34priority waiters tree. This tree too queues in priority order. Whenever
35the top priority waiter of a task changes (for example it timed out or35the top priority waiter of a task changes (for example it timed out or
36got a signal), the priority of the owner task is readjusted. [The36got a signal), the priority of the owner task is readjusted. The
37priority enqueueing is handled by "plists", see include/linux/plist.h37priority enqueueing is handled by "pi_waiters".
38for more details.]
39 38
40RT-mutexes are optimized for fastpath operations and have no internal39RT-mutexes are optimized for fastpath operations and have no internal
41locking overhead when locking an uncontended mutex or unlocking a mutex40locking overhead when locking an uncontended mutex or unlocking a mutex
@@ -46,34 +45,29 @@ is used] · 4 unmodified lines
46The state of the rt-mutex is tracked via the owner field of the rt-mutex45The state of the rt-mutex is tracked via the owner field of the rt-mutex
47structure:46structure:
48 47
49rt_mutex->owner holds the task_struct pointer of the owner. Bit 0 and 148lock->owner holds the task_struct pointer of the owner. Bit 0 is used to
50are used to keep track of the "owner is pending" and "rtmutex has49keep track of the "lock has waiters" state.
51waiters" state.
52 50
53 owner bit1 bit051 owner bit0
54 NULL 0 0 mutex is free (fast acquire possible)52 NULL 0 lock is free (fast acquire possible)
55 NULL 0 1 invalid state53 NULL 1 lock is free and has waiters and the top waiter
56 NULL 1 0 Transitional state*54 is going to take the lock*
57 NULL 1 1 invalid state55 taskpointer 0 lock is held (fast release possible)
58 taskpointer 0 0 mutex is held (fast release possible)56 taskpointer 1 lock is held and has waiters**
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
62 57
63Pending-ownership handling is a performance optimization:58The fast atomic compare exchange based acquire and release is only
64pending-ownership is assigned to the first (highest priority) waiter of59possible when bit 0 of lock->owner is 0.
65the mutex, when the mutex is released. The thread is woken up and once
66it starts executing it can acquire the mutex. Until the mutex is taken
67by it (bit 0 is cleared) a competing higher priority thread can "steal"
68the mutex which puts the woken up thread back on the waiters list.
69 60
70The pending-ownership optimization is especially important for the61(*) It also can be a transitional state when grabbing the lock
71uninterrupted workflow of high-prio tasks which repeatedly62with ->wait_lock is held. To prevent any fast path cmpxchg to the lock,
72takes/releases locks that have lower-prio waiters. Without this63we need to set the bit0 before looking at the lock, and the owner may be
73optimization the higher-prio thread would ping-pong to the lower-prio64NULL in this small time, hence this can be a transitional state.
74task [because at unlock time we always assign a new owner].
75 65
76(*) The "mutex has waiters" bit gets set to take the lock. If the lock66(**) There is a small time when bit 0 is set but there are no
77doesn't already have an owner, this bit is quickly cleared if there are67waiters. This can happen when grabbing the lock in the slow path.
78no waiters. So this is a transitional state to synchronize with looking68To prevent a cmpxchg of the owner releasing the lock, we need to
79at the owner field of the mutex and the mutex owner releasing the lock.69set this bit before looking at the lock.
70
71BTW, there is still technically a "Pending Owner", it's just not called
72that anymore. The pending owner happens to be the top_waiter of a lock
73that 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
498 This means that ACQUIRE acts as a minimal "acquire" operation and498 This means that ACQUIRE acts as a minimal "acquire" operation and
499 RELEASE acts as a minimal "release" operation.499 RELEASE acts as a minimal "release" operation.
500 500
501A subset of the atomic operations described in core-api/atomic_ops.rst have501A subset of the atomic operations described in atomic_t.txt have ACQUIRE and
502ACQUIRE and RELEASE variants in addition to fully-ordered and relaxed (no502RELEASE variants in addition to fully-ordered and relaxed (no barrier
503barrier semantics) definitions. For compound atomics performing both a load503semantics) definitions. For compound atomics performing both a load and a
504and a store, ACQUIRE semantics apply only to the load and RELEASE semantics504store, ACQUIRE semantics apply only to the load and RELEASE semantics apply
505apply only to the store portion of the operation.505only to the store portion of the operation.
506 506
507Memory barriers are only required where there's a possibility of interaction507Memory barriers are only required where there's a possibility of interaction
508between two CPUs or between a CPU and a device. If it can be guaranteed that508between 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
594This enforces the occurrence of one of the two implications, and prevents the594This enforces the occurrence of one of the two implications, and prevents the
595third possibility from arising.595third possibility from arising.
596 596
597A data-dependency barrier must also order against dependent writes:597
598[!] Note that this extremely counterintuitive situation arises most easily on
599machines with split caches, so that, for example, one cache bank processes
600even-numbered cache lines and the other bank processes odd-numbered cache
601lines. The pointer P might be stored in an odd-numbered cache line, and the
602variable B might be stored in an even-numbered cache line. Then, if the
603even-numbered bank of the reading CPU's cache is extremely busy while the
604odd-numbered bank is idle, one can see the new value of the pointer P (&B),
605but the old value of the variable B (2).
606
607
608A data-dependency barrier is not required to order dependent writes
609because the CPUs that the Linux kernel supports don't do writes
610until they are certain (1) that the write will actually happen, (2)
611of the location of the write, and (3) of the value to be written.
612But please carefully read the "CONTROL DEPENDENCIES" section and the
613Documentation/RCU/rcu_dereference.txt file: The compiler can and does
614break dependencies in a great many highly creative ways.
598 615
599 CPU 1 CPU 2616 CPU 1 CPU 2
600 =============== ===============617 =============== ===============
@@ -603,29 +620,19 @@ A data-dependency barrier must also order against dependent writes: · 2 unmodified lines
603 <write barrier>620 <write barrier>
604 WRITE_ONCE(P, &B);621 WRITE_ONCE(P, &B);
605 Q = READ_ONCE(P);622 Q = READ_ONCE(P);
606 <data dependency barrier>623 WRITE_ONCE(*Q, 5);
607 *Q = 5;
608 624
609The data-dependency barrier must order the read into Q with the store625Therefore, no data-dependency barrier is required to order the read into
610into *Q. This prohibits this outcome:626Q with the store into *Q. In other words, this outcome is prohibited,
627even without a data-dependency barrier:
611 628
612 (Q == &B) && (B == 4)629 (Q == &B) && (B == 4)
613 630
614Please note that this pattern should be rare. After all, the whole point631Please note that this pattern should be rare. After all, the whole point
615of dependency ordering is to -prevent- writes to the data structure, along632of dependency ordering is to -prevent- writes to the data structure, along
616with the expensive cache misses associated with those writes. This pattern633with the expensive cache misses associated with those writes. This pattern
617can be used to record rare error conditions and the like, and the ordering634can be used to record rare error conditions and the like, and the CPUs'
618prevents such records from being lost.635naturally occurring ordering prevents such records from being lost.
619
620
621[!] Note that this extremely counterintuitive situation arises most easily on
622machines with split caches, so that, for example, one cache bank processes
623even-numbered cache lines and the other bank processes odd-numbered cache
624lines. The pointer P might be stored in an odd-numbered cache line, and the
625variable B might be stored in an even-numbered cache line. Then, if the
626even-numbered bank of the reading CPU's cache is extremely busy while the
627odd-numbered bank is idle, one can see the new value of the pointer P (&B),
628but the old value of the variable B (2).
629 636
630 637
631The data dependency barrier is very important to the RCU system,638The data dependency barrier is very important to the RCU system,
@@ -1876,8 +1883,7 @@ There are some more advanced barrier functions: · 1244 unmodified lines
1876 This makes sure that the death mark on the object is perceived to be set1883 This makes sure that the death mark on the object is perceived to be set
1877 *before* the reference counter is decremented.1884 *before* the reference counter is decremented.
1878 1885
1879 See Documentation/core-api/atomic_ops.rst for more information. See the1886 See Documentation/atomic_{t,bitops}.txt for more information.
1880 "Atomic operations" subsection for information on where to use these.
1881 1887
1882 1888
1883 (*) lockless_dereference();1889 (*) lockless_dereference();
@@ -1982,10 +1988,7 @@ for each construct. These operations all imply certain barriers: · 98 unmodified lines
1982 ACQUIRE operation has completed.1988 ACQUIRE operation has completed.
1983 1989
1984 Memory operations issued before the ACQUIRE may be completed after1990 Memory operations issued before the ACQUIRE may be completed after
1985 the ACQUIRE operation has completed. An smp_mb__before_spinlock(),1991 the ACQUIRE operation has completed.
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.
1989 1992
1990 (2) RELEASE operation implication:1993 (2) RELEASE operation implication:
1991 1994
@@ -2503,88 +2506,7 @@ operations are noted specially as some of them imply full memory barriers and · 511 unmodified lines
2503some don't, but they're very heavily relied on as a group throughout the2506some don't, but they're very heavily relied on as a group throughout the
2504kernel.2507kernel.
2505 2508
2506Any atomic operation that modifies some state in memory and returns information2509See Documentation/atomic_t.txt for more information.
2507about 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
2509explicit 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
2530These are used for such things as implementing ACQUIRE-class and RELEASE-class
2531operations and adjusting reference counters towards object destruction, and as
2532such the implicit memory barrier effects are necessary.
2533
2534
2535The following operations are potential problems as they do _not_ imply memory
2536barriers, but might be used for implementing such things as RELEASE-class
2537operations:
2538
2539 atomic_set();
2540 set_bit();
2541 clear_bit();
2542 change_bit();
2543
2544With these the appropriate explicit memory barrier should be used if necessary
2545(smp_mb__before_atomic() for instance).
2546
2547
2548The following also do _not_ imply memory barriers, and so may require explicit
2549memory barriers under some circumstances (smp_mb__before_atomic() for
2550instance):
2551
2552 atomic_add();
2553 atomic_sub();
2554 atomic_inc();
2555 atomic_dec();
2556
2557If they're used for statistics generation, then they probably don't need memory
2558barriers, unless there's a coupling between statistical data.
2559
2560If they're used for reference counting on an object to control its lifetime,
2561they probably don't need memory barriers because either the reference count
2562will be adjusted inside a locked section, or the caller will already hold
2563sufficient references to make the lock, and thus a memory barrier unnecessary.
2564
2565If they're used for constructing a lock of some description, then they probably
2566do need memory barriers as a lock primitive generally has to do things in a
2567specific order.
2568
2569Basically, each usage case has to be carefully considered as to whether memory
2570barriers are needed or not.
2571
2572The following operations are special locking primitives:
2573
2574 test_and_set_bit_lock();
2575 clear_bit_unlock();
2576 __clear_bit_unlock();
2577
2578These implement ACQUIRE-class and RELEASE-class operations. These should be
2579used in preference to other operations when implementing locking primitives,
2580because their implementations can be optimised on many architectures.
2581
2582[!] Note that special memory barrier primitives are available for these
2583situations because on some CPUs the atomic instructions used imply full memory
2584barriers, and so barrier instructions are superfluous in conjunction with them,
2585and in such cases the special barrier primitives will be no-ops.
2586
2587See Documentation/core-api/atomic_ops.rst for more information.
2588 2510
2589 2511
2590ACCESSING DEVICES2512ACCESSING DEVICES
Documentation/networking/00-INDEX+0−2
@@ -30,8 +30,6 @@ atm.txt · 29 unmodified lines
30 - info on where to get ATM programs and support for Linux.30 - info on where to get ATM programs and support for Linux.
31ax25.txt31ax25.txt
32 - info on using AX.25 and NET/ROM code for Linux32 - info on using AX.25 and NET/ROM code for Linux
33batman-adv.txt
34 - B.A.T.M.A.N routing protocol on top of layer 2 Ethernet Frames.
35baycom.txt33baycom.txt
36 - info on the driver for Baycom style amateur radio modems34 - info on the driver for Baycom style amateur radio modems
37bonding.txt35bonding.txt
Documentation/networking/batman-adv.rst+220−0
@@ -0,0 +1,220 @@
1==========
2batman-adv
3==========
4
5Batman advanced is a new approach to wireless networking which does no longer
6operate on the IP basis. Unlike the batman daemon, which exchanges information
7using UDP packets and sets routing tables, batman-advanced operates on ISO/OSI
8Layer 2 only and uses and routes (or better: bridges) Ethernet Frames. It
9emulates a virtual network switch of all nodes participating. Therefore all
10nodes appear to be link local, thus all higher operating protocols won't be
11affected by any changes within the network. You can run almost any protocol
12above batman advanced, prominent examples are: IPv4, IPv6, DHCP, IPX.
13
14Batman advanced was implemented as a Linux kernel driver to reduce the overhead
15to a minimum. It does not depend on any (other) network driver, and can be used
16on wifi as well as ethernet lan, vpn, etc ... (anything with ethernet-style
17layer 2).
18
19
20Configuration
21=============
22
23Load the batman-adv module into your kernel::
24
25 $ insmod batman-adv.ko
26
27The module is now waiting for activation. You must add some interfaces on which
28batman can operate. After loading the module batman advanced will scan your
29systems interfaces to search for compatible interfaces. Once found, it will
30create subfolders in the ``/sys`` directories of each supported interface,
31e.g.::
32
33 $ ls /sys/class/net/eth0/batman_adv/
34 elp_interval iface_status mesh_iface throughput_override
35
36If an interface does not have the ``batman_adv`` subfolder, it probably is not
37supported. Not supported interfaces are: loopback, non-ethernet and batman's
38own interfaces.
39
40Note: After the module was loaded it will continuously watch for new
41interfaces to verify the compatibility. There is no need to reload the module
42if you plug your USB wifi adapter into your machine after batman advanced was
43initially loaded.
44
45The batman-adv soft-interface can be created using the iproute2 tool ``ip``::
46
47 $ ip link add name bat0 type batadv
48
49To activate a given interface simply attach it to the ``bat0`` interface::
50
51 $ ip link set dev eth0 master bat0
52
53Repeat this step for all interfaces you wish to add. Now batman starts
54using/broadcasting on this/these interface(s).
55
56By reading the "iface_status" file you can check its status::
57
58 $ cat /sys/class/net/eth0/batman_adv/iface_status
59 active
60
61To deactivate an interface you have to detach it from the "bat0" interface::
62
63 $ ip link set dev eth0 nomaster
64
65
66All 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
75There 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
83Some of the files contain all sort of status information regarding the mesh
84network. For example, you can view the table of originators (mesh
85participants) with::
86
87 $ cat /sys/kernel/debug/batman_adv/bat0/originators
88
89Other files allow to change batman's behaviour to better fit your requirements.
90For instance, you can check the current originator interval (value in
91milliseconds which determines how often batman sends its broadcast packets)::
92
93 $ cat /sys/class/net/bat0/mesh/orig_interval
94 1000
95
96and also change its value::
97
98 $ echo 3000 > /sys/class/net/bat0/mesh/orig_interval
99
100In very mobile scenarios, you might want to adjust the originator interval to a
101lower value. This will make the mesh more responsive to topology changes, but
102will also increase the overhead.
103
104
105Usage
106=====
107
108To make use of your newly created mesh, batman advanced provides a new
109interface "bat0" which you should use from this point on. All interfaces added
110to batman advanced are not relevant any longer because batman handles them for
111you. Basically, one "hands over" the data by using the batman interface and
112batman will make sure it reaches its destination.
113
114The "bat0" interface can be used like any other regular interface. It needs an
115IP address which can be either statically configured or dynamically (by using
116DHCP 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
125Note: In order to avoid problems remove all IP addresses previously assigned to
126interfaces now used by batman advanced, e.g.::
127
128 $ ip addr flush dev eth0
129
130
131Logging/Debugging
132=================
133
134All error messages, warnings and information messages are sent to the kernel
135log. Depending on your operating system distribution this can be read in one of
136a number of ways. Try using the commands: ``dmesg``, ``logread``, or looking in
137the files ``/var/log/kern.log`` or ``/var/log/syslog``. All batman-adv messages
138are prefixed with "batman-adv:" So to see just these messages try::
139
140 $ dmesg | grep batman-adv
141
142When investigating problems with your mesh network, it is sometimes necessary to
143see more detail debug messages. This must be enabled when compiling the
144batman-adv module. When building batman-adv as part of kernel, use "make
145menuconfig" and enable the option ``B.A.T.M.A.N. debugging``
146(``CONFIG_BATMAN_ADV_DEBUG=y``).
147
148Those additional debug messages can be accessed using a special file in
149debugfs::
150
151 $ cat /sys/kernel/debug/batman_adv/bat0/log
152
153The additional debug output is by default disabled. It can be enabled during
154run 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
179The 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
184will enable debug messages for when routes change.
185
186Counters for different types of packets entering and leaving the batman-adv
187module are available through ethtool::
188
189 $ ethtool --statistics bat0
190
191
192batctl
193======
194
195As batman advanced operates on layer 2, all hosts participating in the virtual
196switch are completely transparent for all protocols above layer 2. Therefore
197the common diagnosis tools do not work as expected. To overcome these problems,
198batctl was created. At the moment the batctl contains ping, traceroute, tcpdump
199and interfaces to the kernel module settings.
200
201For more information, please see the manpage (``man batctl``).
202
203batctl is available on https://www.open-mesh.org/
204
205
206Contact
207=======
208
209Please send us comments, experiences, questions, anything :)
210
211IRC:
212 #batman on irc.freenode.org
213Mailing-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
217You 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 @@
1BATMAN-ADV
2----------
3
4Batman advanced is a new approach to wireless networking which
5does no longer operate on the IP basis. Unlike the batman daemon,
6which exchanges information using UDP packets and sets routing
7tables, batman-advanced operates on ISO/OSI Layer 2 only and uses
8and routes (or better: bridges) Ethernet Frames. It emulates a
9virtual network switch of all nodes participating. Therefore all
10nodes appear to be link local, thus all higher operating proto-
11cols won't be affected by any changes within the network. You can
12run almost any protocol above batman advanced, prominent examples
13are: IPv4, IPv6, DHCP, IPX.
14
15Batman advanced was implemented as a Linux kernel driver to re-
16duce the overhead to a minimum. It does not depend on any (other)
17network driver, and can be used on wifi as well as ethernet lan,
18vpn, etc ... (anything with ethernet-style layer 2).
19
20
21CONFIGURATION
22-------------
23
24Load the batman-adv module into your kernel:
25
26# insmod batman-adv.ko
27
28The module is now waiting for activation. You must add some in-
29terfaces on which batman can operate. After loading the module
30batman advanced will scan your systems interfaces to search for
31compatible interfaces. Once found, it will create subfolders in
32the /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
37If an interface does not have the "batman_adv" subfolder it prob-
38ably is not supported. Not supported interfaces are: loopback,
39non-ethernet and batman's own interfaces.
40
41Note: After the module was loaded it will continuously watch for
42new interfaces to verify the compatibility. There is no need to
43reload the module if you plug your USB wifi adapter into your ma-
44chine after batman advanced was initially loaded.
45
46The batman-adv soft-interface can be created using the iproute2
47tool "ip"
48
49# ip link add name bat0 type batadv
50
51To activate a given interface simply attach it to the "bat0"
52interface
53
54# ip link set dev eth0 master bat0
55
56Repeat this step for all interfaces you wish to add. Now batman
57starts using/broadcasting on this/these interface(s).
58
59By reading the "iface_status" file you can check its status:
60
61# cat /sys/class/net/eth0/batman_adv/iface_status
62# active
63
64To deactivate an interface you have to detach it from the
65"bat0" interface:
66
67# ip link set dev eth0 nomaster
68
69
70All mesh wide settings can be found in batman's own interface
71folder:
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
80There 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
88Some of the files contain all sort of status information regard-
89ing the mesh network. For example, you can view the table of
90originators (mesh participants) with:
91
92# cat /sys/kernel/debug/batman_adv/bat0/originators
93
94Other files allow to change batman's behaviour to better fit your
95requirements. For instance, you can check the current originator
96interval (value in milliseconds which determines how often batman
97sends its broadcast packets):
98
99# cat /sys/class/net/bat0/mesh/orig_interval
100# 1000
101
102and also change its value:
103
104# echo 3000 > /sys/class/net/bat0/mesh/orig_interval
105
106In very mobile scenarios, you might want to adjust the originator
107interval to a lower value. This will make the mesh more respon-
108sive to topology changes, but will also increase the overhead.
109
110
111USAGE
112-----
113
114To make use of your newly created mesh, batman advanced provides
115a new interface "bat0" which you should use from this point on.
116All interfaces added to batman advanced are not relevant any
117longer because batman handles them for you. Basically, one "hands
118over" the data by using the batman interface and batman will make
119sure it reaches its destination.
120
121The "bat0" interface can be used like any other regular inter-
122face. It needs an IP address which can be either statically con-
123figured 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
132Note: In order to avoid problems remove all IP addresses previ-
133ously assigned to interfaces now used by batman advanced, e.g.
134
135# ip addr flush dev eth0
136
137
138LOGGING/DEBUGGING
139-----------------
140
141All error messages, warnings and information messages are sent to
142the kernel log. Depending on your operating system distribution
143this can be read in one of a number of ways. Try using the com-
144mands: dmesg, logread, or looking in the files /var/log/kern.log
145or /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
150When investigating problems with your mesh network it is some-
151times necessary to see more detail debug messages. This must be
152enabled when compiling the batman-adv module. When building bat-
153man-adv as part of kernel, use "make menuconfig" and enable the
154option "B.A.T.M.A.N. debugging".
155
156Those additional debug messages can be accessed using a special
157file in debugfs
158
159# cat /sys/kernel/debug/batman_adv/bat0/log
160
161The additional debug output is by default disabled. It can be en-
162abled 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
172128 - Enable messages related to throughput meter
173255 - Enable all messages
174
175The 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
180will enable debug messages for when routes change.
181
182Counters for different types of packets entering and leaving the
183batman-adv module are available through ethtool:
184
185# ethtool --statistics bat0
186
187
188BATCTL
189------
190
191As batman advanced operates on layer 2 all hosts participating in
192the virtual switch are completely transparent for all protocols
193above layer 2. Therefore the common diagnosis tools do not work
194as expected. To overcome these problems batctl was created. At
195the moment the batctl contains ping, traceroute, tcpdump and
196interfaces to the kernel module settings.
197
198For more information, please see the manpage (man batctl).
199
200batctl is available on https://www.open-mesh.org/
201
202
203CONTACT
204-------
205
206Please send us comments, experiences, questions, anything :)
207
208IRC: #batman on irc.freenode.org
209Mailing-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
212You can also contact the Authors:
213
214Marek Lindner <mareklindner@neomailbox.ch>
215Simon Wunderlich <sw@simonwunderlich.de>
Documentation/networking/dpaa.txt+67−1
@@ -13,6 +13,7 @@ Contents · 12 unmodified lines
13 - Configuring DPAA Ethernet in your kernel13 - Configuring DPAA Ethernet in your kernel
14 - DPAA Ethernet Frame Processing14 - DPAA Ethernet Frame Processing
15 - DPAA Ethernet Features15 - DPAA Ethernet Features
16 - DPAA IRQ Affinity and Receive Side Scaling
16 - Debugging17 - Debugging
17 18
18DPAA Ethernet Overview19DPAA Ethernet Overview
@@ -147,7 +148,10 @@ gradually. · 128 unmodified lines
147 148
148The driver has Rx and Tx checksum offloading for UDP and TCP. Currently the Rx149The driver has Rx and Tx checksum offloading for UDP and TCP. Currently the Rx
149checksum offload feature is enabled by default and cannot be controlled through150checksum offload feature is enabled by default and cannot be controlled through
150ethtool.151ethtool. Also, rx-flow-hash and rx-hashing was added. The addition of RSS
152provides a big performance boost for the forwarding scenarios, allowing
153different traffic flows received by one interface to be processed by different
154CPUs in parallel.
151 155
152The driver has support for multiple prioritized Tx traffic classes. Priorities156The driver has support for multiple prioritized Tx traffic classes. Priorities
153range from 0 (lowest) to 3 (highest). These are mapped to HW workqueues with157range from 0 (lowest) to 3 (highest). These are mapped to HW workqueues with
@@ -166,6 +170,68 @@ classes as follows: · 12 unmodified lines
166tc qdisc add dev <int> root handle 1: \170tc qdisc add dev <int> root handle 1: \
167 mqprio num_tc 4 map 0 0 0 0 1 1 1 1 2 2 2 2 3 3 3 3 hw 1171 mqprio num_tc 4 map 0 0 0 0 1 1 1 1 2 2 2 2 3 3 3 3 hw 1
168 172
173DPAA IRQ Affinity and Receive Side Scaling
174==========================================
175
176Traffic coming on the DPAA Rx queues or on the DPAA Tx confirmation
177queues is seen by the CPU as ingress traffic on a certain portal.
178The DPAA QMan portal interrupts are affined each to a certain CPU.
179The same portal interrupt services all the QMan portal consumers.
180
181By default the DPAA Ethernet driver enables RSS, making use of the
182DPAA FMan Parser and Keygen blocks to distribute traffic on 128
183hardware frame queues using a hash on IP v4/v6 source and destination
184and L4 source and destination ports, in present in the received frame.
185When RSS is disabled, all traffic received by a certain interface is
186received on the default Rx frame queue. The default DPAA Rx frame
187queues are configured to put the received traffic into a pool channel
188that allows any available CPU portal to dequeue the ingress traffic.
189The default frame queues have the HOLDACTIVE option set, ensuring that
190traffic bursts from a certain queue are serviced by the same CPU.
191This ensures a very low rate of frame reordering. A drawback of this
192is that only one CPU at a time can service the traffic received by a
193certain interface when RSS is not enabled.
194
195To implement RSS, the DPAA Ethernet driver allocates an extra set of
196128 Rx frame queues that are configured to dedicated channels, in a
197round-robin manner. The mapping of the frame queues to CPUs is now
198hardcoded, there is no indirection table to move traffic for a certain
199FQ (hash result) to another CPU. The ingress traffic arriving on one
200of these frame queues will arrive at the same portal and will always
201be processed by the same CPU. This ensures intra-flow order preservation
202and workload distribution for multiple traffic flows.
203
204RSS can be turned off for a certain interface using ethtool, i.e.
205
206 # ethtool -N fm1-mac9 rx-flow-hash tcp4 ""
207
208To 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
212There is no independent control for individual protocols, any command
213run for one of tcp4|udp4|ah4|esp4|sctp4|tcp6|udp6|ah6|esp6|sctp6 is
214going to control the rx-flow-hashing for all protocols on that interface.
215
216Besides using the FMan Keygen computed hash for spreading traffic on the
217128 Rx FQs, the DPAA Ethernet driver also sets the skb hash value when
218the NETIF_F_RXHASH feature is on (active by default). This can be turned
219on 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
230Please note that Rx hashing depends upon the rx-flow-hashing being on
231for that interface - turning off rx-flow-hashing will also disable the
232rx-hashing (without ethtool reporting it as off as that depends on the
233NETIF_F_RXHASH feature flag).
234
169Debugging235Debugging
170=========236=========
171 237
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
45qdisc layer, SECCOMP-BPF (SECure COMPuting [1]), and lots of other places45qdisc layer, SECCOMP-BPF (SECure COMPuting [1]), and lots of other places
46such as team driver, PTP code, etc where BPF is being used.46such as team driver, PTP code, etc where BPF is being used.
47 47
48 [1] Documentation/prctl/seccomp_filter.txt48 [1] Documentation/userspace-api/seccomp_filter.rst
49 49
50Original BPF paper:50Original BPF paper:
51 51
@@ -337,7 +337,7 @@ Examples for low-level BPF: · 285 unmodified lines
337 jeq #14, good /* __NR_rt_sigprocmask */337 jeq #14, good /* __NR_rt_sigprocmask */
338 jeq #13, good /* __NR_rt_sigaction */338 jeq #13, good /* __NR_rt_sigaction */
339 jeq #35, good /* __NR_nanosleep */339 jeq #35, good /* __NR_nanosleep */
340 bad: ret #0 /* SECCOMP_RET_KILL */340 bad: ret #0 /* SECCOMP_RET_KILL_THREAD */
341 good: ret #0x7fff0000 /* SECCOMP_RET_ALLOW */341 good: ret #0x7fff0000 /* SECCOMP_RET_ALLOW */
342 342
343The above example code can be placed into a file (here called "foo"), and343The 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
596before a conversion to the new layout is being done behind the scenes!596before a conversion to the new layout is being done behind the scenes!
597 597
598Currently, the classic BPF format is being used for JITing on most 32-bit598Currently, the classic BPF format is being used for JITing on most 32-bit
599architectures, whereas x86-64, aarch64, s390x, powerpc64, sparc64 perform JIT599architectures, whereas x86-64, aarch64, s390x, powerpc64, sparc64, arm32 perform
600compilation from eBPF instruction set.600JIT compilation from eBPF instruction set.
601 601
602Some core changes of the new internal format:602Some core changes of the new internal format:
603 603
@@ -793,7 +793,7 @@ Some core changes of the new internal format: · 189 unmodified lines
793 bpf_exit793 bpf_exit
794 794
795 After the call the registers R1-R5 contain junk values and cannot be read.795 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.
797 797
798Also in the new design, eBPF is limited to 4096 insns, which means that any798Also in the new design, eBPF is limited to 4096 insns, which means that any
799program will terminate quickly and will only call a fixed number of kernel799program 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
906 BPF_JSGE 0x70 /* eBPF only: signed '>=' */906 BPF_JSGE 0x70 /* eBPF only: signed '>=' */
907 BPF_CALL 0x80 /* eBPF only: function call */907 BPF_CALL 0x80 /* eBPF only: function call */
908 BPF_EXIT 0x90 /* eBPF only: function return */908 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 '<=' */
909 913
910So BPF_ADD | BPF_X | BPF_ALU means 32-bit addition in both classic BPF914So BPF_ADD | BPF_X | BPF_ALU means 32-bit addition in both classic BPF
911and eBPF. There are only two registers in classic BPF, so it means A += X.915and 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
1017and has type PTR_TO_CTX.1021and has type PTR_TO_CTX.
1018If verifier sees an insn that does R2=R1, then R2 has now type1022If verifier sees an insn that does R2=R1, then R2 has now type
1019PTR_TO_CTX as well and can be used on the right hand side of expression.1023PTR_TO_CTX as well and can be used on the right hand side of expression.
1020If R1=PTR_TO_CTX and insn is R2=R1+R1, then R2=UNKNOWN_VALUE,1024If R1=PTR_TO_CTX and insn is R2=R1+R1, then R2=SCALAR_VALUE,
1021since addition of two valid pointers makes invalid pointer.1025since addition of two valid pointers makes invalid pointer.
1022(In 'secure' mode verifier will reject any type of pointer arithmetic to make1026(In 'secure' mode verifier will reject any type of pointer arithmetic to make
1023sure that kernel addresses don't leak to unprivileged users)1027sure 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
1039been rejected.1043been rejected.
1040 1044
1041load/store instructions are allowed only with registers of valid types, which1045load/store instructions are allowed only with registers of valid types, which
1042are PTR_TO_CTX, PTR_TO_MAP, FRAME_PTR. They are bounds and alignment checked.1046are PTR_TO_CTX, PTR_TO_MAP, PTR_TO_STACK. They are bounds and alignment checked.
1043For example:1047For example:
1044 bpf_mov R1 = 11048 bpf_mov R1 = 1
1045 bpf_mov R2 = 21049 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
1058If R6=PTR_TO_CTX, via is_valid_access() callback the verifier will know1062If R6=PTR_TO_CTX, via is_valid_access() callback the verifier will know
1059that offset 8 of size 4 bytes can be accessed for reading, otherwise1063that offset 8 of size 4 bytes can be accessed for reading, otherwise
1060the verifier will reject the program.1064the verifier will reject the program.
1061If R6=FRAME_PTR, then access should be aligned and be within1065If R6=PTR_TO_STACK, then access should be aligned and be within
1062stack bounds, which are [-MAX_BPF_STACK, 0). In this example offset is 8,1066stack bounds, which are [-MAX_BPF_STACK, 0). In this example offset is 8,
1063so it will fail verification, since it's out of bounds.1067so it will fail verification, since it's out of bounds.
1064 1068
@@ -1069,7 +1073,7 @@ For example: · 4 unmodified lines
1069 bpf_ld R0 = *(u32 *)(R10 - 4)1073 bpf_ld R0 = *(u32 *)(R10 - 4)
1070 bpf_exit1074 bpf_exit
1071is invalid program.1075is invalid program.
1072Though R10 is correct read-only register and has type FRAME_PTR1076Though R10 is correct read-only register and has type PTR_TO_STACK
1073and R10 - 4 is within stack bounds, there were no stores into that location.1077and R10 - 4 is within stack bounds, there were no stores into that location.
1074 1078
1075Pointer register spill/fill is tracked as well, since four (R6-R9)1079Pointer register spill/fill is tracked as well, since four (R6-R9)
@@ -1094,6 +1098,71 @@ all use cases. · 18 unmodified lines
1094 1098
1095See details of eBPF verifier in kernel/bpf/verifier.c1099See details of eBPF verifier in kernel/bpf/verifier.c
1096 1100
1101Register value tracking
1102-----------------------
1103In order to determine the safety of an eBPF program, the verifier must track
1104the range of possible values in each register and also in each stack slot.
1105This is done with 'struct bpf_reg_state', defined in include/linux/
1106bpf_verifier.h, which unifies tracking of scalar and pointer values. Each
1107register state has a type, which is either NOT_INIT (the register has not been
1108written to), SCALAR_VALUE (some value which is not usable as a pointer), or a
1109pointer 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.
1122However, a pointer may be offset from this base (as a result of pointer
1123arithmetic), and this is tracked in two parts: the 'fixed offset' and 'variable
1124offset'. The former is used when an exactly-known value (e.g. an immediate
1125operand) is added to a pointer, while the latter is used for values which are
1126not exactly known. The variable offset is also used in SCALAR_VALUEs, to track
1127the range of possible values in the register.
1128The 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;
11331s in the value represent bits known to be 1. Bits known to be 0 have 0 in both
1134mask and value; no bit should ever be 1 in both. For example, if a byte is read
1135into a register from memory, the register's top 56 bits are known zero, while
1136the low 8 are unknown - which is represented as the tnum (0x0; 0xff). If we
1137then OR this with 0x40, we get (0x40; 0xcf), then if we add 1 we get (0x0;
11380x1ff), because of potential carries.
1139Besides arithmetic, the register state can also be updated by conditional
1140branches. For instance, if a SCALAR_VALUE is compared > 8, in the 'true' branch
1141it will have a umin_value (unsigned minimum value) of 9, whereas in the 'false'
1142branch it will have a umax_value of 8. A signed compare (with BPF_JSGT or
1143BPF_JSGE) would instead update the signed minimum/maximum values. Information
1144from the signed and unsigned bounds can be combined; for instance if a value is
1145first tested < 8 and then tested s> 4, the verifier will conclude that the value
1146is also > 4 and s< 8, since the bounds prevent crossing the sign boundary.
1147PTR_TO_PACKETs with a variable offset part have an 'id', which is common to all
1148pointers sharing that same variable offset. This is important for packet range
1149checks: after adding some variable to a packet pointer, if you then copy it to
1150another 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
1152found to be less than a PTR_TO_PACKET_END, the other register is now known to
1153have a safe range of at least 4 bytes. See 'Direct packet access', below, for
1154more on PTR_TO_PACKET ranges.
1155The 'id' field is also used on PTR_TO_MAP_VALUE_OR_NULL, common to all copies of
1156the pointer returned from a map lookup. This means that when one copy is
1157checked and found to be non-NULL, all copies can become PTR_TO_MAP_VALUEs.
1158As well as range-checking, the tracked information is also used for enforcing
1159alignment of pointer accesses. For instance, on most systems the packet pointer
1160is 2 bytes after a 4-byte alignment. If a program adds 14 bytes to that to jump
1161over the Ethernet header, then reads IHL and addes (IHL * 4), the resulting
1162pointer will have a variable offset known to be 4n+2 for some n, so adding the 2
1163bytes (NET_IP_ALIGN) gives a 4-byte alignment and so word-sized accesses through
1164that pointer are safe.
1165
1097Direct packet access1166Direct packet access
1098--------------------1167--------------------
1099In cls_bpf and act_bpf programs the verifier allows direct access to the packet1168In 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
1121which is zero bytes.1190which is zero bytes.
1122 1191
1123More complex packet access may look like:1192More 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=fp1193 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
1125 6: r0 = *(u8 *)(r3 +7) /* load 7th byte from the packet */1194 6: r0 = *(u8 *)(r3 +7) /* load 7th byte from the packet */
1126 7: r4 = *(u8 *)(r3 +12)1195 7: r4 = *(u8 *)(r3 +12)
1127 8: r4 *= 141196 8: r4 *= 14
@@ -1135,26 +1204,31 @@ More complex packet access may look like: · 7 unmodified lines
113516: r2 += 8120416: r2 += 8
113617: r1 = *(u32 *)(r1 +80) /* load skb->data_end */120517: r1 = *(u32 *)(r1 +80) /* load skb->data_end */
113718: if r2 > r1 goto pc+2120618: 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=fp1207 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
113919: r1 = *(u8 *)(r3 +4)120819: r1 = *(u8 *)(r3 +4)
1140The state of the register R3 is R3=pkt(id=2,off=0,r=8)1209The state of the register R3 is R3=pkt(id=2,off=0,r=8)
1141id=2 means that two 'r3 += rX' instructions were seen, so r3 points to some1210id=2 means that two 'r3 += rX' instructions were seen, so r3 points to some
1142offset within a packet and since the program author did1211offset within a packet and since the program author did
1143'if (r3 + 8 > r1) goto err' at insn #18, the safe range is [R3, R3 + 8).1212'if (r3 + 8 > r1) goto err' at insn #18, the safe range is [R3, R3 + 8).
1144The verifier only allows 'add' operation on packet registers. Any other1213The verifier only allows 'add'/'sub' operations on packet registers. Any other
1145operation will set the register state to 'unknown_value' and it won't be1214operation will set the register state to 'SCALAR_VALUE' and it won't be
1146available for direct packet access.1215available for direct packet access.
1147Operation 'r3 += rX' may overflow and become less than original skb->data,1216Operation 'r3 += rX' may overflow and become less than original skb->data,
1148therefore the verifier has to prevent that. So it tracks the number of1217therefore the verifier has to prevent that. So when it sees 'r3 += rX'
1149upper zero bits in all 'uknown_value' registers, so when it sees1218instruction and rX is more than 16-bit value, any subsequent bounds-check of r3
1150'r3 += rX' instruction and rX is more than 16-bit value, it will error as:1219against skb->data_end will not give us 'range' information, so attempts to read
1151"cannot add integer value with N upper zero bits to ptr_to_packet"1220through the pointer will give "invalid access to packet" error.
1152Ex. after insn 'r4 = *(u8 *)(r3 +12)' (insn #7 above) the state of r4 is1221Ex. after insn 'r4 = *(u8 *)(r3 +12)' (insn #7 above) the state of r4 is
1153R4=inv56 which means that upper 56 bits on the register are guaranteed1222R4=inv(id=0,umax_value=255,var_off=(0x0; 0xff)) which means that upper 56 bits
1154to be zero. After insn 'r4 *= 14' the state becomes R4=inv52, since1223of the register are guaranteed to be zero, and nothing is known about the lower
1155multiplying 8-bit value by constant 14 will keep upper 52 bits as zero.12248 bits. After insn 'r4 *= 14' the state becomes
1156Similarly 'r2 >>= 48' will make R2=inv48, since the shift is not sign1225R4=inv(id=0,umax_value=3570,var_off=(0x0; 0xfffe)), since multiplying an 8-bit
1157extending. This logic is implemented in evaluate_reg_alu() function.1226value by constant 14 will keep upper 52 bits as zero, also the least significant
1227bit will be zero as 14 is even. Similarly 'r2 >>= 48' will make
1228R2=inv(id=0,umax_value=65535,var_off=(0x0; 0xffff)), since the shift is not sign
1229extending. This logic is implemented in adjust_reg_min_max_vals() function,
1230which calls adjust_ptr_min_max_vals() for adding pointer to scalar (or vice
1231versa) and adjust_scalar_min_max_vals() for operations on two scalars.
1158 1232
1159The end result is that bpf program author can access packet directly1233The end result is that bpf program author can access packet directly
1160using normal C code as:1234using normal C code as:
@@ -1214,6 +1288,22 @@ The map is defined by: · 53 unmodified lines
1214 . key size in bytes1288 . key size in bytes
1215 . value size in bytes1289 . value size in bytes
1216 1290
1291Pruning
1292-------
1293The verifier does not actually walk all possible paths through the program. For
1294each new branch to analyse, the verifier looks at all the states it's previously
1295been in when at this instruction. If any of them contain the current state as a
1296subset, the branch is 'pruned' - that is, the fact that the previous state was
1297accepted implies the current state would be as well. For instance, if in the
1298previous state, r1 held a packet-pointer, and in the current state, r1 holds a
1299packet-pointer with a range as long or longer and at least as strict an
1300alignment, then r1 is safe. Similarly, if r2 was NOT_INIT before then it can't
1301have been used by any path from that point, so any value in r2 (including
1302another NOT_INIT) is safe. The implementation is in the function regsafe().
1303Pruning considers not only the registers but also the stack (and any spilled
1304registers it may hold). They must all be safe for the branch to be pruned.
1305This is implemented in states_equal().
1306
1217Understanding eBPF verifier messages1307Understanding eBPF verifier messages
1218------------------------------------1308------------------------------------
1219 1309
Documentation/networking/hinic.txt+125−0
@@ -0,0 +1,125 @@
1Linux Kernel Driver for Huawei Intelligent NIC(HiNIC) family
2============================================================
3
4Overview:
5=========
6HiNIC is a network interface card for the Data Center Area.
7
8The driver supports a range of link-speed devices (10GbE, 25GbE, 40GbE, etc.).
9The driver supports also a negotiated and extendable feature set.
10
11Some HiNIC devices support SR-IOV. This driver is used for Physical Function
12(PF).
13
14HiNIC devices support MSI-X interrupt vector for each Tx/Rx queue and
15adaptive interrupt moderation.
16
17HiNIC devices support also various offload features such as checksum offload,
18TCP Transmit Segmentation Offload(TSO), Receive-Side Scaling(RSS) and
19LRO(Large Receive Offload).
20
21
22Supported PCI vendor ID/device IDs:
23===================================
24
2519e5:1822 - HiNIC PF
26
27
28Driver Architecture and Source Code:
29====================================
30
31hinic_dev - Implement a Logical Network device that is independent from
32specific HW details about HW data structure formats.
33
34hinic_hwdev - Implement the HW details of the device and include the components
35for accessing the PCI NIC.
36
37hinic_hwdev contains the following components:
38===============================================
39
40HW Interface:
41=============
42
43The interface for accessing the pci device (DMA memory and PCI BARs).
44(hinic_hw_if.c, hinic_hw_if.h)
45
46Configuration Status Registers Area that describes the HW Registers on the
47configuration and status BAR0. (hinic_hw_csr.h)
48
49MGMT components:
50================
51
52Asynchronous Event Queues(AEQs) - The event queues for receiving messages from
53the MGMT modules on the cards. (hinic_hw_eqs.c, hinic_hw_eqs.h)
54
55Application Programmable Interface commands(API CMD) - Interface for sending
56MGMT commands to the card. (hinic_hw_api_cmd.c, hinic_hw_api_cmd.h)
57
58Management (MGMT) - the PF to MGMT channel that uses API CMD for sending MGMT
59commands to the card and receives notifications from the MGMT modules on the
60card by AEQs. Also set the addresses of the IO CMDQs in HW.
61(hinic_hw_mgmt.c, hinic_hw_mgmt.h)
62
63IO components:
64==============
65
66Completion Event Queues(CEQs) - The completion Event Queues that describe IO
67tasks that are finished. (hinic_hw_eqs.c, hinic_hw_eqs.h)
68
69Work Queues(WQ) - Contain the memory and operations for use by CMD queues and
70the Queue Pairs. The WQ is a Memory Block in a Page. The Block contains
71pointers to Memory Areas that are the Memory for the Work Queue Elements(WQEs).
72(hinic_hw_wq.c, hinic_hw_wq.h)
73
74Command Queues(CMDQ) - The queues for sending commands for IO management and is
75used to set the QPs addresses in HW. The commands completion events are
76accumulated on the CEQ that is configured to receive the CMDQ completion events.
77(hinic_hw_cmdq.c, hinic_hw_cmdq.h)
78
79Queue Pairs(QPs) - The HW Receive and Send queues for Receiving and Transmitting
80Data. (hinic_hw_qp.c, hinic_hw_qp.h, hinic_hw_qp_ctxt.h)
81
82IO - de/constructs all the IO components. (hinic_hw_io.c, hinic_hw_io.h)
83
84HW device:
85==========
86
87HW device - de/constructs the HW Interface, the MGMT components on the
88initialization of the driver and the IO components on the case of Interface
89UP/DOWN Events. (hinic_hw_dev.c, hinic_hw_dev.h)
90
91
92hinic_dev contains the following components:
93===============================================
94
95PCI ID table - Contains the supported PCI Vendor/Device IDs.
96(hinic_pci_tbl.h)
97
98Port Commands - Send commands to the HW device for port management
99(MAC, Vlan, MTU, ...). (hinic_port.c, hinic_port.h)
100
101Tx Queues - Logical Tx Queues that use the HW Send Queues for transmit.
102The Logical Tx queue is not dependent on the format of the HW Send Queue.
103(hinic_tx.c, hinic_tx.h)
104
105Rx Queues - Logical Rx Queues that use the HW Receive Queues for receive.
106The Logical Rx queue is not dependent on the format of the HW Receive Queue.
107(hinic_rx.c, hinic_rx.h)
108
109hinic_dev - de/constructs the Logical Tx and Rx Queues.
110(hinic_main.c, hinic_dev.h)
111
112
113Miscellaneous:
114=============
115
116Common functions that are used by HW and Logical Device.
117(hinic_common.c, hinic_common.h)
118
119
120Support
121=======
122
123If an issue is identified with the released source code on the supported kernel
124with a supported adapter, email the specific information related to the issue to
125aviad.krawczyk@huawei.com.
Documentation/networking/ieee802154.txt+8−8
@@ -84,17 +84,17 @@ Device drivers API · 83 unmodified lines
84==================84==================
85 85
86The include/net/mac802154.h defines following functions:86The include/net/mac802154.h defines following functions:
87 - struct ieee802154_dev *ieee802154_alloc_device87 - struct ieee802154_hw *
88 (size_t priv_size, struct ieee802154_ops *ops):88 ieee802154_alloc_hw(size_t priv_data_len, const struct ieee802154_ops *ops):
89 allocation of IEEE 802.15.4 compatible device89 allocation of IEEE 802.15.4 compatible hardware device
90 90
91 - void ieee802154_free_device(struct ieee802154_dev *dev):91 - void ieee802154_free_hw(struct ieee802154_hw *hw):
92 freeing allocated device92 freeing allocated hardware device
93 93
94 - int ieee802154_register_device(struct ieee802154_dev *dev):94 - int ieee802154_register_hw(struct ieee802154_hw *hw):
95 register PHY in the system95 register PHY which is the allocated hardware device, in the system
96 96
97 - void ieee802154_unregister_device(struct ieee802154_dev *dev):97 - void ieee802154_unregister_hw(struct ieee802154_hw *hw):
98 freeing registered PHY98 freeing registered PHY
99 99
100Moreover IEEE 802.15.4 device operations structure should be filled.100Moreover IEEE 802.15.4 device operations structure should be filled.
Documentation/networking/index.rst+1−0
@@ -6,6 +6,7 @@ Contents: · 5 unmodified lines
6.. toctree::6.. toctree::
7 :maxdepth: 27 :maxdepth: 2
8 8
9 batman-adv
9 kapi10 kapi
10 z8530book11 z8530book
11 12
Documentation/networking/ip-sysctl.txt+31−16
@@ -109,7 +109,10 @@ neigh/default/unres_qlen_bytes - INTEGER · 108 unmodified lines
109 queued for each unresolved address by other network layers.109 queued for each unresolved address by other network layers.
110 (added in linux 3.3)110 (added in linux 3.3)
111 Setting negative value is meaningless and will return error.111 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.
113 116
114neigh/default/unres_qlen - INTEGER117neigh/default/unres_qlen - INTEGER
115 The maximum number of packets which may be queued for each118 The maximum number of packets which may be queued for each
@@ -119,7 +122,7 @@ neigh/default/unres_qlen - INTEGER · 3 unmodified lines
119 unexpected packet loss. The current default value is calculated122 unexpected packet loss. The current default value is calculated
120 according to default value of unres_qlen_bytes and true size of123 according to default value of unres_qlen_bytes and true size of
121 packet.124 packet.
122 Default: 31125 Default: 101
123 126
124mtu_expires - INTEGER127mtu_expires - INTEGER
125 Time, in seconds, that cached PMTU information is kept.128 Time, in seconds, that cached PMTU information is kept.
@@ -353,12 +356,7 @@ tcp_l3mdev_accept - BOOLEAN · 227 unmodified lines
353 compiled with CONFIG_NET_L3_MASTER_DEV.356 compiled with CONFIG_NET_L3_MASTER_DEV.
354 357
355tcp_low_latency - BOOLEAN358tcp_low_latency - BOOLEAN
356 If set, the TCP stack makes decisions that prefer lower359 This is a legacy option, it has no effect anymore.
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
362 360
363tcp_max_orphans - INTEGER361tcp_max_orphans - INTEGER
364 Maximal number of TCP sockets not attached to any user file handle,362 Maximal number of TCP sockets not attached to any user file handle,
@@ -1291,8 +1289,7 @@ tag - INTEGER · 926 unmodified lines
1291xfrm4_gc_thresh - INTEGER1289xfrm4_gc_thresh - INTEGER
1292 The threshold at which we will start garbage collecting for IPv41290 The threshold at which we will start garbage collecting for IPv4
1293 destination cache entries. At twice this value the system will1291 destination cache entries. At twice this value the system will
1294 refuse new allocations. The value must be set below the flowcache1292 refuse new allocations.
1295 limit (4096 * number of online cpus) to take effect.
1296 1293
1297igmp_link_local_mcast_reports - BOOLEAN1294igmp_link_local_mcast_reports - BOOLEAN
1298 Enable IGMP reports for link local multicast groups in the1295 Enable IGMP reports for link local multicast groups in the
@@ -1356,6 +1353,15 @@ flowlabel_state_ranges - BOOLEAN · 57 unmodified lines
1356 FALSE: disabled1353 FALSE: disabled
1357 Default: true1354 Default: true
1358 1355
1356flowlabel_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
1359anycast_src_echo_reply - BOOLEAN1365anycast_src_echo_reply - BOOLEAN
1360 Controls the use of anycast addresses as source addresses for ICMPv61366 Controls the use of anycast addresses as source addresses for ICMPv6
1361 echo reply1367 echo reply
@@ -1674,6 +1680,9 @@ accept_dad - INTEGER · 312 unmodified lines
1674 2: Enable DAD, and disable IPv6 operation if MAC-based duplicate1680 2: Enable DAD, and disable IPv6 operation if MAC-based duplicate
1675 link-local address has been found.1681 link-local address has been found.
1676 1682
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
1677force_tllao - BOOLEAN1686force_tllao - BOOLEAN
1678 Enable sending the target link-layer address option even when1687 Enable sending the target link-layer address option even when
1679 responding to a unicast neighbor solicitation.1688 responding to a unicast neighbor solicitation.
@@ -1721,16 +1730,23 @@ suppress_frag_ndisc - INTEGER · 41 unmodified lines
1721 1730
1722optimistic_dad - BOOLEAN1731optimistic_dad - BOOLEAN
1723 Whether to perform Optimistic Duplicate Address Detection (RFC 4429).1732 Whether to perform Optimistic Duplicate Address Detection (RFC 4429).
1724 0: disabled (default)1733 0: disabled (default)
1725 1: enabled1734 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.
1726 1739
1727use_optimistic - BOOLEAN1740use_optimistic - BOOLEAN
1728 If enabled, do not classify optimistic addresses as deprecated during1741 If enabled, do not classify optimistic addresses as deprecated during
1729 source address selection. Preferred addresses will still be chosen1742 source address selection. Preferred addresses will still be chosen
1730 before optimistic addresses, subject to other ranking in the source1743 before optimistic addresses, subject to other ranking in the source
1731 address selection algorithm.1744 address selection algorithm.
1732 0: disabled (default)1745 0: disabled (default)
1733 1: enabled1746 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.
1734 1750
1735stable_secret - IPv6 address1751stable_secret - IPv6 address
1736 This IPv6 address will be used as a secret to generate IPv61752 This IPv6 address will be used as a secret to generate IPv6
@@ -1778,8 +1794,7 @@ ratelimit - INTEGER · 41 unmodified lines
1778xfrm6_gc_thresh - INTEGER1794xfrm6_gc_thresh - INTEGER
1779 The threshold at which we will start garbage collecting for IPv61795 The threshold at which we will start garbage collecting for IPv6
1780 destination cache entries. At twice this value the system will1796 destination cache entries. At twice this value the system will
1781 refuse new allocations. The value must be set below the flowcache1797 refuse new allocations.
1782 limit (4096 * number of online cpus) to take effect.
1783 1798
1784 1799
1785IPv6 Update by:1800IPv6 Update by:
Documentation/networking/msg_zerocopy.rst+257−0
@@ -0,0 +1,257 @@
1
2============
3MSG_ZEROCOPY
4============
5
6Intro
7=====
8
9The MSG_ZEROCOPY flag enables copy avoidance for socket send calls.
10The feature is currently implemented for TCP sockets.
11
12
13Opportunity and Caveats
14-----------------------
15
16Copying large buffers between user process and kernel can be
17expensive. Linux supports various interfaces that eschew copying,
18such as sendpage and splice. The MSG_ZEROCOPY flag extends the
19underlying copy avoidance mechanism to common socket send calls.
20
21Copy avoidance is not a free lunch. As implemented, with page pinning,
22it replaces per byte copy cost with page accounting and completion
23notification overhead. As a result, MSG_ZEROCOPY is generally only
24effective at writes over around 10 KB.
25
26Page pinning also changes system call semantics. It temporarily shares
27the buffer between process and network stack. Unlike with copying, the
28process cannot immediately overwrite the buffer after system call
29return without possibly modifying the data in flight. Kernel integrity
30is not affected, but a buggy program can possibly corrupt its own data
31stream.
32
33The kernel returns a notification when it is safe to modify data.
34Converting an existing application to MSG_ZEROCOPY is not always as
35trivial as just passing the flag, then.
36
37
38More Info
39---------
40
41Much of this document was derived from a longer paper presented at
42netdev 2.1. For more in-depth information see that paper and talk,
43the 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
56Interface
57=========
58
59Passing the MSG_ZEROCOPY flag is the most obvious step to enable copy
60avoidance, but not the only one.
61
62Socket Setup
63------------
64
65The kernel is permissive when applications pass undefined flags to the
66send system call. By default it simply ignores these. To avoid enabling
67copy avoidance mode for legacy processes that accidentally already pass
68this 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
76Transmission
77------------
78
79The change to send (or sendto, sendmsg, sendmmsg) itself is trivial.
80Pass the new flag.
81
82::
83
84 ret = send(fd, buf, sizeof(buf), MSG_ZEROCOPY);
85
86A zerocopy failure will return -1 with errno ENOBUFS. This happens if
87the socket option was not set, the socket exceeds its optmem limit or
88the user exceeds its ulimit on locked pages.
89
90
91Mixing copy avoidance and copying
92~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
93
94Many workloads have a mixture of large and small buffers. Because copy
95avoidance is more expensive than copying for small packets, the
96feature is implemented as a flag. It is safe to mix calls with the flag
97with those without.
98
99
100Notifications
101-------------
102
103The kernel has to notify the process when it is safe to reuse a
104previously passed buffer. It queues completion notifications on the
105socket error queue, akin to the transmit timestamping interface.
106
107The notification itself is a simple scalar value. Each socket
108maintains an internal unsigned 32-bit counter. Each send call with
109MSG_ZEROCOPY that successfully sends data increments the counter. The
110counter is not incremented on failure or if called with length zero.
111The counter counts system call invocations, not bytes. It wraps after
112UINT_MAX calls.
113
114
115Notification Reception
116~~~~~~~~~~~~~~~~~~~~~~
117
118The below snippet demonstrates the API. In the simplest case, each
119send syscall is followed by a poll and recvmsg on the error queue.
120
121Reading from the error queue is always a non-blocking operation. The
122poll call is there to block until an error is outstanding. It will set
123POLLERR in its output flags. That flag does not have to be set in the
124events 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
139The example is for demonstration purpose only. In practice, it is more
140efficient to not wait for notifications, but read without blocking
141every couple of send calls.
142
143Notifications can be processed out of order with other operations on
144the socket. A socket that has an error queued would normally block
145other operations until the error is read. Zerocopy notifications have
146a zero error code, however, to not block send and recv calls.
147
148
149Notification Batching
150~~~~~~~~~~~~~~~~~~~~~
151
152Multiple outstanding packets can be read at once using the recvmmsg
153call. This is often not needed. In each message the kernel returns not
154a single value, but a range. It coalesces consecutive notifications
155while one is outstanding for reception on the error queue.
156
157When a new notification is about to be queued, it checks whether the
158new value extends the range of the notification at the tail of the
159queue. If so, it drops the new notification packet and instead increases
160the range upper value of the outstanding notification.
161
162For protocols that acknowledge data in-order, like TCP, each
163notification can be squashed into the previous one, so that no more
164than one notification is outstanding at any one point.
165
166Ordered delivery is the common case, but not guaranteed. Notifications
167may arrive out of order on retransmission and socket teardown.
168
169
170Notification Parsing
171~~~~~~~~~~~~~~~~~~~~
172
173The below snippet demonstrates how to parse the control message: the
174read_notification() call in the previous snippet. A notification
175is encoded in the standard error format, sock_extended_err.
176
177The level and type fields in the control data are protocol family
178specific, IP_RECVERR or IPV6_RECVERR.
179
180Error origin is the new type SO_EE_ORIGIN_ZEROCOPY. ee_errno is zero,
181as explained before, to avoid blocking read and write system calls on
182the socket.
183
184The 32-bit notification range is encoded as [ee_info, ee_data]. This
185range is inclusive. Other fields in the struct must be treated as
186undefined, 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
206Deferred copies
207~~~~~~~~~~~~~~~
208
209Passing flag MSG_ZEROCOPY is a hint to the kernel to apply copy
210avoidance, and a contract that the kernel will queue a completion
211notification. It is not a guarantee that the copy is elided.
212
213Copy avoidance is not always feasible. Devices that do not support
214scatter-gather I/O cannot send packets made up of kernel generated
215protocol headers plus zerocopy user data. A packet may need to be
216converted to a private copy of data deep in the stack, say to compute
217a checksum.
218
219In all these cases, the kernel returns a completion notification when
220it releases its hold on the shared pages. That notification may arrive
221before the (copied) data is fully transmitted. A zerocopy completion
222notification is not a transmit completion notification, therefore.
223
224Deferred copies can be more expensive than a copy immediately in the
225system call, if the data is no longer warm in the cache. The process
226also incurs notification processing cost for no benefit. For this
227reason, the kernel signals if data was completed with a copy, by
228setting flag SO_EE_CODE_ZEROCOPY_COPIED in field ee_code on return.
229A process may use this signal to stop passing flag MSG_ZEROCOPY on
230subsequent requests on the same socket.
231
232
233Implementation
234==============
235
236Loopback
237--------
238
239Data sent to local sockets can be queued indefinitely if the receive
240process does not read its socket. Unbound notification latency is not
241acceptable. For this reason all packets generated with MSG_ZEROCOPY
242that are looped to a local socket will incur a deferred copy. This
243includes looping onto packet sockets (e.g., tcpdump) and tun devices.
244
245
246Testing
247=======
248
249More realistic example code can be found in the kernel source under
250tools/testing/selftests/net/msg_zerocopy.c.
251
252Be cognizant of the loopback constraint. The test can be run between
253a pair of hosts. But if run between a local pair of processes, for
254instance when run with msg_zerocopy.sh between a veth pair across
255namespaces, the test will not show any improvement. For testing, the
256loopback restriction can be temporarily relaxed by making
257skb_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
111 patch is a good way to ensure your patch is ignored or pushed to111 patch is a good way to ensure your patch is ignored or pushed to
112 the bottom of the priority list.112 the bottom of the priority list.
113 113
114Q: I submitted multiple versions of the patch series, should I directly update
115 patchwork for the previous versions of these patch series?
116
117A: 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
114Q: How can I tell what patches are queued up for backporting to the122Q: How can I tell what patches are queued up for backporting to the
115 various stable releases?123 various stable releases?
116 124
Documentation/networking/netvsc.txt+75−0
@@ -0,0 +1,75 @@
1Hyper-V network driver
2======================
3
4Compatibility
5=============
6
7This driver is compatible with Windows Server 2012 R2, 2016 and
8Windows 10.
9
10Features
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
96 Size of connection tracking table. Default value is96 Size of connection tracking table. Default value is
97 nf_conntrack_buckets value * 4.97 nf_conntrack_buckets value * 4.
98 98
99nf_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
110nf_conntrack_tcp_be_liberal - BOOLEAN99nf_conntrack_tcp_be_liberal - BOOLEAN
111 0 - disabled (default)100 0 - disabled (default)
112 not 0 - enabled101 not 0 - enabled
Documentation/networking/rmnet.txt+82−0
@@ -0,0 +1,82 @@
11. Introduction
2
3rmnet driver is used for supporting the Multiplexing and aggregation
4Protocol (MAP). This protocol is used by all recent chipsets using Qualcomm
5Technologies, Inc. modems.
6
7This driver can be used to register onto any physical network device in
8IP mode. Physical transports include USB, HSIC, PCIe and IP accelerator.
9
10Multiplexing allows for creation of logical netdevices (rmnet devices) to
11handle multiple private data networks (PDN) like a default internet, tethering,
12multimedia messaging service (MMS) or IP media subsystem (IMS). Hardware sends
13packets with MAP headers to rmnet. Based on the multiplexer id, rmnet
14routes to the appropriate PDN after removing the MAP header.
15
16Aggregation is required to achieve high data rates. This involves hardware
17sending aggregated bunch of MAP frames. rmnet driver will de-aggregate
18these MAP frames and send them to appropriate PDN's.
19
202. Packet format
21
22a. MAP packet (data / control)
23
24MAP header has the same endianness of the IP packet.
25
26Packet format -
27
28Bit 0 1 2-7 8 - 15 16 - 31
29Function Command / Data Reserved Pad Multiplexer ID Payload length
30Bit 32 - x
31Function Raw Bytes
32
33Command (1)/ Data (0) bit value is to indicate if the packet is a MAP command
34or data packet. Control packet is used for transport level flow control. Data
35packets are standard IP packets.
36
37Reserved bits are usually zeroed out and to be ignored by receiver.
38
39Padding is number of bytes to be added for 4 byte alignment if required by
40hardware.
41
42Multiplexer ID is to indicate the PDN on which data has to be sent.
43
44Payload length includes the padding length but does not include MAP header
45length.
46
47b. MAP packet (command specific)
48
49Bit 0 1 2-7 8 - 15 16 - 31
50Function Command Reserved Pad Multiplexer ID Payload length
51Bit 32 - 39 40 - 45 46 - 47 48 - 63
52Function Command name Reserved Command Type Reserved
53Bit 64 - 95
54Function Transaction ID
55Bit 96 - 127
56Function Command data
57
58Command 1 indicates disabling flow while 2 is enabling flow
59
60Command types -
610 for MAP command request
621 is to acknowledge the receipt of a command
632 is for unsupported commands
643 is for error during processing of commands
65
66c. Aggregation
67
68Aggregation is multiple MAP packets (can be data or command) delivered to
69rmnet in a single linear skb. rmnet will process the individual
70packets and either ACK the MAP command or deliver the IP packet to the
71network stack as needed
72
73MAP header|IP Packet|Optional padding|MAP header|IP Packet|Optional padding....
74MAP header|IP Packet|Optional padding|MAP header|Command Packet|Optional pad...
75
763. Userspace configuration
77
78rmnet userspace configuration is done through netlink library librmnetctl
79and command line utility rmnetcli. Utility is hosted in codeaurora forum git.
80The driver uses rtnl_link_ops for communication.
81
82https://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
818 818
819 (*) Send data through a call.819 (*) Send data through a call.
820 820
821 typedef void (*rxrpc_notify_end_tx_t)(struct sock *sk,
822 unsigned long user_call_ID,
823 struct sk_buff *skb);
824
821 int rxrpc_kernel_send_data(struct socket *sock,825 int rxrpc_kernel_send_data(struct socket *sock,
822 struct rxrpc_call *call,826 struct rxrpc_call *call,
823 struct msghdr *msg,827 struct msghdr *msg,
824 size_t len);828 size_t len,
829 rxrpc_notify_end_tx_t notify_end_rx);
825 830
826 This is used to supply either the request part of a client call or the831 This is used to supply either the request part of a client call or the
827 reply part of a server call. msg.msg_iovlen and msg.msg_iov specify the832 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
832 The msg must not specify a destination address, control data or any flags837 The msg must not specify a destination address, control data or any flags
833 other than MSG_MORE. len is the total amount of data to transmit.838 other than MSG_MORE. len is the total amount of data to transmit.
834 839
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
835 (*) Receive data from a call.845 (*) Receive data from a call.
836 846
837 int rxrpc_kernel_recv_data(struct socket *sock,847 int rxrpc_kernel_recv_data(struct socket *sock,
@@ -965,6 +975,51 @@ The kernel interface functions are as follows: · 127 unmodified lines
965 size should be set when the call is begun. tx_total_len may not be less975 size should be set when the call is begun. tx_total_len may not be less
966 than zero.976 than zero.
967 977
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
968 1023
969=======================1024=======================
970CONFIGURABLE PARAMETERS1025CONFIGURABLE PARAMETERS
Documentation/networking/strparser.txt+140−69
@@ -1,45 +1,107 @@
1Stream Parser1Stream Parser (strparser)
2-------------2
3Introduction
4============
3 5
4The stream parser (strparser) is a utility that parses messages of an6The stream parser (strparser) is a utility that parses messages of an
5application layer protocol running over a TCP connection. The stream7application layer protocol running over a data stream. The stream
6parser works in conjunction with an upper layer in the kernel to provide8parser works in conjunction with an upper layer in the kernel to provide
7kernel support for application layer messages. For instance, Kernel9kernel support for application layer messages. For instance, Kernel
8Connection Multiplexor (KCM) uses the Stream Parser to parse messages10Connection Multiplexor (KCM) uses the Stream Parser to parse messages
9using a BPF program.11using a BPF program.
10 12
13The strparser works in one of two modes: receive callback or general
14mode.
15
16In receive callback mode, the strparser is called from the data_ready
17callback of a TCP socket. Messages are parsed and delivered as they are
18received on the socket.
19
20In general mode, a sequence of skbs are fed to strparser from an
21outside source. Message are parsed and delivered as the sequence is
22processed. This modes allows strparser to be applied to arbitrary
23streams of data.
24
11Interface25Interface
12---------26=========
13 27
14The API includes a context structure, a set of callbacks, utility28The API includes a context structure, a set of callbacks, utility
15functions, and a data_ready function. The callbacks include29functions, and a data_ready function for receive callback mode. The
16a parse_msg function that is called to perform parsing (e.g.30callbacks include a parse_msg function that is called to perform
17BPF parsing in case of KCM), and a rcv_msg function that is called31parsing (e.g. BPF parsing in case of KCM), and a rcv_msg function
18when a full message has been completed.32that is called when a full message has been completed.
33
34Functions
35=========
36
37strp_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
46void 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
51void strp_pause(struct strparser *strp)
52
53 Unpause a paused stream parser.
54
55void 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
62void 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.
19 67
20A stream parser can be instantiated for a TCP connection. This is done68int strp_process(struct strparser *strp, struct sk_buff *orig_skb,
21by:69 unsigned int orig_offset, size_t orig_len,
70 size_t max_msg_size, long timeo)
22 71
23strp_init(struct strparser *strp, struct sock *csk,72 strp_process is called in general mode for a stream parser to
24 struct strp_callbacks *cb)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.
25 77
26strp is a struct of type strparser that is allocated by the upper layer.78void strp_data_ready(struct strparser *strp);
27csk is the TCP socket associated with the stream parser. Callbacks are79
28called by the stream parser.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
86void 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.
29 91
30Callbacks92Callbacks
31---------93=========
32 94
33There are four callbacks:95There are six callbacks:
34 96
35int (*parse_msg)(struct strparser *strp, struct sk_buff *skb);97int (*parse_msg)(struct strparser *strp, struct sk_buff *skb);
36 98
37 parse_msg is called to determine the length of the next message99 parse_msg is called to determine the length of the next message
38 in the stream. The upper layer must implement this function. It100 in the stream. The upper layer must implement this function. It
39 should parse the sk_buff as containing the headers for the101 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.
41 103
42 The skb->cb in the input skb is a struct strp_rx_msg. Only104 The skb->cb in the input skb is a struct strp_msg. Only
43 the offset field is relevant in parse_msg and gives the offset105 the offset field is relevant in parse_msg and gives the offset
44 where the message starts in the skb.106 where the message starts in the skb.
45 107
@@ -50,26 +112,41 @@ int (*parse_msg)(struct strparser *strp, struct sk_buff *skb); · 4 unmodified lines
50 -ESTRPIPE : current message should not be processed by the112 -ESTRPIPE : current message should not be processed by the
51 kernel, return control of the socket to userspace which113 kernel, return control of the socket to userspace which
52 can proceed to read the messages itself114 can proceed to read the messages itself
53 other < 0 : Error is parsing, give control back to userspace115 other < 0 : Error in parsing, give control back to userspace
54 assuming that synchronization is lost and the stream116 assuming that synchronization is lost and the stream
55 is unrecoverable (application expected to close TCP socket)117 is unrecoverable (application expected to close TCP socket)
56 118
57 In the case that an error is returned (return value is less than119 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 wake120 zero) and the parser is in receive callback mode, then it will set
59 it up. If parse_msg returned -ESTRPIPE and the stream parser had121 the error on TCP socket and wake it up. If parse_msg returned
60 previously read some bytes for the current message, then the error122 -ESTRPIPE and the stream parser had previously read some bytes for
61 set on the attached socket is ENODATA since the stream is123 the current message, then the error set on the attached socket is
62 unrecoverable in that case.124 ENODATA since the stream is unrecoverable in that case.
125
126void (*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
134void (*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.
63 140
64void (*rcv_msg)(struct strparser *strp, struct sk_buff *skb);141void (*rcv_msg)(struct strparser *strp, struct sk_buff *skb);
65 142
66 rcv_msg is called when a full message has been received and143 rcv_msg is called when a full message has been received and
67 is queued. The callee must consume the sk_buff; it can144 is queued. The callee must consume the sk_buff; it can
68 call strp_pause to prevent any further messages from being145 call strp_pause to prevent any further messages from being
69 received in rcv_msg (see strp_pause below). This callback146 received in rcv_msg (see strp_pause above). This callback
70 must be set.147 must be set.
71 148
72 The skb->cb in the input skb is a struct strp_rx_msg. This149 The skb->cb in the input skb is a struct strp_msg. This
73 struct contains two fields: offset and full_len. Offset is150 struct contains two fields: offset and full_len. Offset is
74 where the message starts in the skb, and full_len is the151 where the message starts in the skb, and full_len is the
75 the length of the message. skb->len - offset may be greater152 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
78int (*read_sock_done)(struct strparser *strp, int err);155int (*read_sock_done)(struct strparser *strp, int err);
79 156
80 read_sock_done is called when the stream parser is done reading157 read_sock_done is called when the stream parser is done reading
81 the TCP socket. The stream parser may read multiple messages158 the TCP socket in receive callback mode. The stream parser may
82 in a loop and this function allows cleanup to occur when existing159 read multiple messages in a loop and this function allows cleanup
83 the loop. If the callback is not set (NULL in strp_init) a160 to occur when exiting the loop. If the callback is not set (NULL
84 default function is used.161 in strp_init) a default function is used.
85 162
86void (*abort_parser)(struct strparser *strp, int err);163void (*abort_parser)(struct strparser *strp, int err);
87 164
88 This function is called when stream parser encounters an error165 This function is called when stream parser encounters an error
89 in parsing. The default function stops the stream parser for the166 in parsing. The default function stops the stream parser and
90 TCP socket and sets the error in the socket. The default function167 sets the error in the socket if the parser is in receive callback
91 can be changed by setting the callback to non-NULL in strp_init.168 mode. The default function can be changed by setting the callback
169 to non-NULL in strp_init.
92 170
93Functions171Statistics
94---------172==========
95 173
96The upper layer calls strp_tcp_data_ready when data is ready on the lower174Various counters are kept for each stream parser instance. These are in
97socket for strparser to process. This should be called from a data_ready175the strp_stats structure. strp_aggr_stats is a convenience structure for
98callback that is set on the socket.176accumulating statistics for multiple stream parser instances.
177save_strp_stats and aggregate_strp_stats are helper functions to save
178and aggregate statistics.
99 179
100strp_stop is called to completely stop stream parser operations. This180Message assembly limits
101is called internally when the stream parser encounters an error, and181=======================
102it is called from the upper layer when unattaching a TCP socket.
103 182
104strp_done is called to unattach the stream parser from the TCP socket.183The stream parser provide mechanisms to limit the resources consumed by
105This must be called after the stream processor has be stopped.184message assembly.
106 185
107strp_check_rcv is called to check for new messages on the socket. This186A timer is set when assembly starts for a new message. In receive
108is normally called at initialization of the a stream parser instance187callback mode the message timeout is taken from rcvtime for the
109of after strp_unpause.188associated TCP socket. In general mode, the timeout is passed as an
189argument in strp_process. If the timer fires before assembly completes
190the stream parser is aborted and the ETIMEDOUT error is set on the TCP
191socket if in receive callback mode.
110 192
111Statistics193In receive callback mode, message length is limited to the receive
112----------194buffer size of the associated TCP socket. If the length returned by
195parse_msg is greater than the socket buffer size then the stream parser
196is aborted with EMSGSIZE error set on the TCP socket. Note that this
197makes the maximum size of receive skbuffs for a socket with a stream
198parser to be 2*sk_rcvbuf of the TCP socket.
113 199
114Various counters are kept for each stream parser for a TCP socket.200In general mode the message length limit is passed in as an argument
115These are in the strp_stats structure. strp_aggr_stats is a convenience201to strp_process.
116structure for accumulating statistics for multiple stream parser
117instances. save_strp_stats and aggregate_strp_stats are helper functions
118to save and aggregate statistics.
119 202
120Message assembly limits203Author
121-----------------------204======
122 205
123The stream parser provide mechanisms to limit the resources consumed by206Tom Herbert (tom@quantonium.net)
124message assembly.
125 207
126A timer is set when assembly starts for a new message. The message
127timeout is taken from rcvtime for the associated TCP socket. If the
128timer fires before assembly completes the stream parser is aborted
129and the ETIMEDOUT error is set on the TCP socket.
130
131Message length is limited to the receive buffer size of the associated
132TCP socket. If the length returned by parse_msg is greater than
133the socket buffer size then the stream parser is aborted with
134EMSGSIZE error set on the TCP socket. Note that this makes the
135maximum size of receive skbuffs for a socket with a stream parser
136to 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
13with SR-IOV or soft switches, such as OVS, are possible.13with SR-IOV or soft switches, such as OVS, are possible.
14 14
15 15
16                             User-space tools16 User-space tools
17 17
18       user space                   |18 user space |
19      +-------------------------------------------------------------------+19 +-------------------------------------------------------------------+
20       kernel                       | Netlink20 kernel | Netlink
21                                    |21 |
22                     +--------------+-------------------------------+22 +--------------+-------------------------------+
23                     |         Network stack                        |23 | Network stack |
24                     |           (Linux)                            |24 | (Linux) |
25                     |                                              |25 | |
26                     +----------------------------------------------+26 +----------------------------------------------+
27 27
28 sw1p2 sw1p4 sw1p628 sw1p2 sw1p4 sw1p6
29                      sw1p1  + sw1p3 +  sw1p5 +         eth129 sw1p1 + sw1p3 + sw1p5 + eth1
30                        +    |    +    |    +    |            +30 + | + | + | +
31                        |    |    |    |    |    |            |31 | | | | | | |
32                     +--+----+----+----+-+--+----+---+  +-----+-----+32 +--+----+----+----+----+----+---+ +-----+-----+
33                     |         Switch driver         |  |    mgmt   |33 | Switch driver | | mgmt |
34                     |        (this document)        |  |   driver  |34 | (this document) | | driver |
35                     |                               |  |           |35 | | | |
36                     +--------------+----------------+  +-----------+36 +--------------+----------------+ +-----------+
37                                    |37 |
38       kernel                       | HW bus (eg PCI)38 kernel | HW bus (eg PCI)
39      +-------------------------------------------------------------------+39 +-------------------------------------------------------------------+
40       hardware                     |40 hardware |
41                     +--------------+---+------------+41 +--------------+----------------+
42                     |         Switch device (sw1)   |42 | Switch device (sw1) |
43                     |  +----+                       +--------+43 | +----+ +--------+
44                     |  |    v offloaded data path   | mgmt port44 | | v offloaded data path | mgmt port
45                     |  |    |                       |45 | | | |
46                     +--|----|----+----+----+----+---+46 +--|----|----+----+----+----+---+
47                        |    |    |    |    |    |47 | | | | | |
48                        +    +    +    +    +    +48 + + + + + +
49                       p1   p2   p3   p4   p5   p649 p1 p2 p3 p4 p5 p6
50 50
51                             front-panel ports51 front-panel ports
52 52
53 53
54 Fig 1.54 Fig 1.
@@ -228,7 +228,7 @@ Learning on the device port should be enabled, as well as learning_sync: · 173 unmodified lines
228 bridge link set dev DEV learning on self228 bridge link set dev DEV learning on self
229 bridge link set dev DEV learning_sync on self229 bridge link set dev DEV learning_sync on self
230 230
231Learning_sync attribute enables syncing of the learned/forgotton FDB entry to231Learning_sync attribute enables syncing of the learned/forgotten FDB entry to
232the bridge's FDB. It's possible, but not optimal, to enable learning on the232the bridge's FDB. It's possible, but not optimal, to enable learning on the
233device port and on the bridge port, and disable learning_sync.233device port and on the bridge port, and disable learning_sync.
234 234
@@ -245,7 +245,7 @@ the responsibility of the port driver/device to age out these entries. If the · 10 unmodified lines
245port device supports ageing, when the FDB entry expires, it will notify the245port device supports ageing, when the FDB entry expires, it will notify the
246driver which in turn will notify the bridge with SWITCHDEV_FDB_DEL. If the246driver which in turn will notify the bridge with SWITCHDEV_FDB_DEL. If the
247device does not support ageing, the driver can simulate ageing using a247device does not support ageing, the driver can simulate ageing using a
248garbage collection timer to monitor FBD entries. Expired entries will be248garbage collection timer to monitor FDB entries. Expired entries will be
249notified to the bridge using SWITCHDEV_FDB_DEL. See rocker driver for249notified to the bridge using SWITCHDEV_FDB_DEL. See rocker driver for
250example of driver running ageing timer.250example of driver running ageing timer.
251 251
Documentation/nvmem/nvmem.txt+1−1
@@ -112,7 +112,7 @@ take nvmem_device as parameter. · 111 unmodified lines
1125. Releasing a reference to the NVMEM1125. Releasing a reference to the NVMEM
113=====================================113=====================================
114 114
115When a consumers no longer needs the NVMEM, it has to release the reference115When a consumer no longer needs the NVMEM, it has to release the reference
116to the NVMEM it has obtained using the APIs mentioned in the above section.116to the NVMEM it has obtained using the APIs mentioned in the above section.
117The NVMEM framework provides 2 APIs to release a reference to the NVMEM.117The NVMEM framework provides 2 APIs to release a reference to the NVMEM.
118 118
Documentation/power/states.txt+0−125
@@ -1,125 +0,0 @@
1System Power Management Sleep States
2
3(C) 2014 Intel Corp., Rafael J. Wysocki <rafael.j.wysocki@intel.com>
4
5The kernel supports up to four system sleep states generically, although three
6of them depend on the platform support code to implement the low-level details
7for each state.
8
9The 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),
12Suspend-To-Idle and hibernation (Suspend-To-Disk), respectively.
13
14The meaning of the "mem" string is controlled by the /sys/power/mem_sleep file.
15It contains strings representing the available modes of system suspend that may
16be 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).
18The "s2idle" mode is always available, while the other ones are only available
19if supported by the platform (if not supported, the strings representing them
20are not present in /sys/power/mem_sleep). The string representing the suspend
21mode to be used subsequently is enclosed in square brackets. Writing one of
22the other strings present in /sys/power/mem_sleep to it causes the suspend mode
23to be used subsequently to change to the one represented by that string.
24
25Consequently, there are two ways to cause the system to go into the
26Suspend-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
28and then to write "mem" to /sys/power/state. Similarly, there are two ways
29to cause the system to go into the Power-On Suspend sleep state (the strings to
30write to the control files in that case are "standby" or "shallow" and "mem",
31respectively) if that state is supported by the platform. In turn, there is
32only 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
35The 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"
38parameter in the kernel command line.
39
40The properties of all of the sleep states are described below.
41
42
43State: Suspend-To-Idle
44ACPI state: S0
45Label: "s2idle" ("freeze")
46
47This state is a generic, pure software, light-weight, system sleep state.
48It allows more energy to be saved relative to runtime idle by freezing user
49space and putting all I/O devices into low-power states (possibly
50lower-power than available at run time), such that the processors can
51spend more time in their idle states.
52
53This state can be used for platforms without Power-On Suspend/Suspend-to-RAM
54support, or it can be used in addition to Suspend-to-RAM to provide reduced
55resume latency. It is always supported.
56
57
58State: Standby / Power-On Suspend
59ACPI State: S1
60Label: "shallow" ("standby")
61
62This state, if supported, offers moderate, though real, power savings, while
63providing a relatively low-latency transition back to a working system. No
64operating state is lost (the CPU retains power), so the system easily starts up
65again where it left off.
66
67In addition to freezing user space and putting all I/O devices into low-power
68states, which is done for Suspend-To-Idle too, nonboot CPUs are taken offline
69and all low-level system functions are suspended during transitions into this
70state. For this reason, it should allow more energy to be saved relative to
71Suspend-To-Idle, but the resume latency will generally be greater than for that
72state.
73
74
75State: Suspend-to-RAM
76ACPI State: S3
77Label: "deep"
78
79This state, if supported, offers significant power savings as everything in the
80system is put into a low-power state, except for memory, which should be placed
81into the self-refresh mode to retain its contents. All of the steps carried out
82when entering Power-On Suspend are also carried out during transitions to STR.
83Additional operations may take place depending on the platform capabilities. In
84particular, on ACPI systems the kernel passes control to the BIOS (platform
85firmware) as the last step during STR transitions and that usually results in
86powering down some more low-level components that aren't directly controlled by
87the kernel.
88
89System and device state is saved and kept in memory. All devices are suspended
90and put into low-power states. In many cases, all peripheral buses lose power
91when entering STR, so devices must be able to handle the transition back to the
92"on" state.
93
94For at least ACPI, STR requires some minimal boot-strapping code to resume the
95system from it. This may be the case on other platforms too.
96
97
98State: Suspend-to-disk
99ACPI State: S4
100Label: "disk"
101
102This state offers the greatest power savings, and can be used even in
103the absence of low-level platform support for power management. This
104state operates similarly to Suspend-to-RAM, but includes a final step
105of writing memory contents to disk. On resume, this is read and memory
106is restored to its pre-suspend state.
107
108STD can be handled by the firmware or the kernel. If it is handled by
109the firmware, it usually requires a dedicated partition that must be
110setup via another operating system for it to use. Despite the
111inconvenience, this method requires minimal work by the kernel, since
112the firmware will also handle restoring memory contents on resume.
113
114For suspend-to-disk, a mechanism called 'swsusp' (Swap Suspend) is used
115to write memory contents to free swap space. swsusp has some restrictive
116requirements, but should work in most cases. Some, albeit outdated,
117documentation can be found in Documentation/power/swsusp.txt.
118Alternatively, userspace can do most of the actual suspend to disk work,
119see userland-swsusp.txt.
120
121Once memory state is written to disk, the system may either enter a
122low-power state (like ACPI S4), or it may simply power down. Powering
123down offers greater savings, and allows this mechanism to work on any
124system. However, entering a real low-power state allows the user to
125trigger 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
48 time_pps_create().48 time_pps_create().
49 49
50This implies that the source has a /dev/... entry. This assumption is50This implies that the source has a /dev/... entry. This assumption is
51ok for the serial and parallel port, where you can do something51OK for the serial and parallel port, where you can do something
52useful besides(!) the gathering of timestamps as it is the central52useful besides(!) the gathering of timestamps as it is the central
53task for a PPS-API. But this assumption does not work for a single53task for a PPS API. But this assumption does not work for a single
54purpose GPIO line. In this case even basic file-related functionality54purpose GPIO line. In this case even basic file-related functionality
55(like read() and write()) makes no sense at all and should not be a55(like read() and write()) makes no sense at all and should not be a
56precondition for the use of a PPS-API.56precondition for the use of a PPS API.
57 57
58The problem can be simply solved if you consider that a PPS source is58The problem can be simply solved if you consider that a PPS source is
59not always connected with a GPS data source.59not always connected with a GPS data source.
@@ -88,13 +88,13 @@ Coding example · 28 unmodified lines
88--------------88--------------
89 89
90To register a PPS source into the kernel you should define a struct90To register a PPS source into the kernel you should define a struct
91pps_source_info_s as follows:91pps_source_info as follows:
92 92
93 static struct pps_source_info pps_ktimer_info = {93 static struct pps_source_info pps_ktimer_info = {
94 .name = "ktimer",94 .name = "ktimer",
95 .path = "",95 .path = "",
96 .mode = PPS_CAPTUREASSERT | PPS_OFFSETASSERT | \96 .mode = PPS_CAPTUREASSERT | PPS_OFFSETASSERT |
97 PPS_ECHOASSERT | \97 PPS_ECHOASSERT |
98 PPS_CANWAIT | PPS_TSFMT_TSPEC,98 PPS_CANWAIT | PPS_TSFMT_TSPEC,
99 .echo = pps_ktimer_echo,99 .echo = pps_ktimer_echo,
100 .owner = THIS_MODULE,100 .owner = THIS_MODULE,
@@ -108,13 +108,13 @@ initialization routine as follows: · 7 unmodified lines
108 108
109The pps_register_source() prototype is:109The pps_register_source() prototype is:
110 110
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)
112 112
113where "info" is a pointer to a structure that describes a particular113where "info" is a pointer to a structure that describes a particular
114PPS source, "default_params" tells the system what the initial default114PPS source, "default_params" tells the system what the initial default
115parameters for the device should be (it is obvious that these parameters115parameters for the device should be (it is obvious that these parameters
116must be a subset of ones defined in the struct116must be a subset of ones defined in the struct
117pps_source_info_s which describe the capabilities of the driver).117pps_source_info which describe the capabilities of the driver).
118 118
119Once you have registered a new PPS source into the system you can119Once you have registered a new PPS source into the system you can
120signal an assert event (for example in the interrupt handler routine)120signal 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
142Every directory is the ID of a PPS sources defined in the system and142Every directory is the ID of a PPS sources defined in the system and
143inside you find several files:143inside you find several files:
144 144
145 $ ls /sys/class/pps/pps0/145 $ ls -F /sys/class/pps/pps0/
146 assert clear echo mode name path subsystem@ uevent146 assert dev mode path subsystem@
147 clear echo name power/ uevent
148
147 149
148Inside each "assert" and "clear" file you can find the timestamp and a150Inside each "assert" and "clear" file you can find the timestamp and a
149sequence number:151sequence number:
@@ -154,32 +156,32 @@ sequence number: · 4 unmodified lines
154Where before the "#" is the timestamp in seconds; after it is the156Where before the "#" is the timestamp in seconds; after it is the
155sequence number. Other files are:157sequence number. Other files are:
156 158
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;
158 160
159* mode: reports available PPS functioning modes;161 * mode: reports available PPS functioning modes;
160 162
161* name: reports the PPS source's name;163 * name: reports the PPS source's name;
162 164
163* path: reports the PPS source's device path, that is the device the165 * path: reports the PPS source's device path, that is the device the
164 PPS source is connected to (if it exists).166 PPS source is connected to (if it exists).
165 167
166 168
167Testing the PPS support169Testing the PPS support
168-----------------------170-----------------------
169 171
170In order to test the PPS support even without specific hardware you can use172In order to test the PPS support even without specific hardware you can use
171the ktimer driver (see the client subsection in the PPS configuration menu)173the pps-ktimer driver (see the client subsection in the PPS configuration menu)
172and the userland tools available in your distribution's pps-tools package,174and the userland tools available in your distribution's pps-tools package,
173http://linuxpps.org , or https://github.com/ago/pps-tools .175http://linuxpps.org , or https://github.com/redlab-i/pps-tools.
174 176
175Once you have enabled the compilation of ktimer just modprobe it (if177Once you have enabled the compilation of pps-ktimer just modprobe it (if
176not statically compiled):178not statically compiled):
177 179
178 # modprobe ktimer180 # modprobe pps-ktimer
179 181
180and the run ppstest as follow:182and the run ppstest as follow:
181 183
182 $ ./ppstest /dev/pps0184 $ ./ppstest /dev/pps1
183 trying PPS source "/dev/pps1"185 trying PPS source "/dev/pps1"
184 found PPS source "/dev/pps1"186 found PPS source "/dev/pps1"
185 ok, found 1 source(s), now start fetching data...187 ok, found 1 source(s), now start fetching data...
@@ -187,7 +189,7 @@ and the run ppstest as follow: · 1 unmodified line
187 source 0 - assert 1186592700.388931295, sequence: 365 - clear 0.000000000, sequence: 0189 source 0 - assert 1186592700.388931295, sequence: 365 - clear 0.000000000, sequence: 0
188 source 0 - assert 1186592701.389032765, sequence: 366 - clear 0.000000000, sequence: 0190 source 0 - assert 1186592701.389032765, sequence: 366 - clear 0.000000000, sequence: 0
189 191
190Please, note that to compile userland programs you need the file timepps.h .192Please note that to compile userland programs, you need the file timepps.h.
191This is available in the pps-tools repository mentioned above.193This is available in the pps-tools repository mentioned above.
192 194
193 195
Documentation/printk-formats.txt+21−8
@@ -58,20 +58,33 @@ Symbols/Function Pointers · 57 unmodified lines
58 %ps versatile_init58 %ps versatile_init
59 %pB prev_fn_of_versatile_init+0x88/0x8859 %pB prev_fn_of_versatile_init+0x88/0x88
60 60
61For printing symbols and function pointers. The ``S`` and ``s`` specifiers61The ``F`` and ``f`` specifiers are for printing function pointers,
62result in the symbol name with (``S``) or without (``s``) offsets. Where62for example, f->func, &gettimeofday. They have the same result as
63this is used on a kernel without KALLSYMS - the symbol address is63``S`` and ``s`` specifiers. But they do an extra conversion on
64printed instead.64ia64, ppc64 and parisc64 architectures where the function pointers
65are actually function descriptors.
66
67The ``S`` and ``s`` specifiers can be used for printing symbols
68from direct addresses, for example, __builtin_return_address(0),
69(void *)regs->ip. They result in the symbol name with (``S``) or
70without (``s``) offsets. If KALLSYMS are disabled then the symbol
71address is printed instead.
65 72
66The ``B`` specifier results in the symbol name with offsets and should be73The ``B`` specifier results in the symbol name with offsets and should be
67used when printing stack backtraces. The specifier takes into74used when printing stack backtraces. The specifier takes into
68consideration the effect of compiler optimisations which may occur75consideration the effect of compiler optimisations which may occur
69when tail-call``s are used and marked with the noreturn GCC attribute.76when tail-call``s are used and marked with the noreturn GCC attribute.
70 77
71On ia64, ppc64 and parisc64 architectures function pointers are78Examples::
72actually function descriptors which must first be resolved. The ``F`` and79
73``f`` specifiers perform this resolution and then provide the same80 printk("Going to call: %pF\n", gettimeofday);
74functionality as the ``S`` and ``s`` specifiers.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
75 88
76Kernel Pointers89Kernel Pointers
77===============90===============
Documentation/process/applying-patches.rst+1−42
@@ -6,9 +6,6 @@ Applying Patches To The Linux Kernel · 5 unmodified lines
6Original by:6Original by:
7 Jesper Juhl, August 20057 Jesper Juhl, August 2005
8 8
9Last update:
10 2016-09-14
11
12.. note::9.. note::
13 10
14 This document is obsolete. In most cases, rather than using ``patch``11 This document is obsolete. In most cases, rather than using ``patch``
@@ -344,7 +341,7 @@ possible. · 329 unmodified lines
344 341
345This is a good branch to run for people who want to help out testing342This is a good branch to run for people who want to help out testing
346development kernels but do not want to run some of the really experimental343development kernels but do not want to run some of the really experimental
347stuff (such people should see the sections about -git and -mm kernels below).344stuff (such people should see the sections about -next and -mm kernels below).
348 345
349The -rc patches are not incremental, they apply to a base 4.x kernel, just346The -rc patches are not incremental, they apply to a base 4.x kernel, just
350like the 4.x.y patches described above. The kernel version before the -rcN347like 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
380 $ mv linux-4.7.3 linux-4.8-rc5 # rename the kernel source dir377 $ mv linux-4.7.3 linux-4.8-rc5 # rename the kernel source dir
381 378
382 379
383The -git kernels
384================
385
386These are daily snapshots of Linus' kernel tree (managed in a git
387repository, hence the name).
388
389These patches are usually released daily and represent the current state of
390Linus's tree. They are more experimental than -rc kernels since they are
391generated automatically without even a cursory glance to see if they are
392sane.
393
394-git patches are not incremental and apply either to a base 4.x kernel or
395a base 4.x-rc kernel -- you can see which from their name.
396A patch named 4.7-git1 applies to the 4.7 kernel source and a patch
397named 4.8-rc3-git2 applies to the source of the 4.8-rc3 kernel.
398
399Here 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
421The -mm patches and the linux-next tree380The -mm patches and the linux-next tree
422=======================================381=======================================
423 382
Documentation/process/changes.rst+3−13
@@ -53,7 +53,7 @@ mcelog 0.6 mcelog --version · 52 unmodified lines
53iptables 1.4.2 iptables -V53iptables 1.4.2 iptables -V
54openssl & libcrypto 1.0.0 openssl version54openssl & libcrypto 1.0.0 openssl version
55bc 1.06.95 bc --version55bc 1.06.95 bc --version
56Sphinx\ [#f1]_ 1.2 sphinx-build --version56Sphinx\ [#f1]_ 1.3 sphinx-build --version
57====================== =============== ========================================57====================== =============== ========================================
58 58
59.. [#f1] Sphinx is needed only to build the Kernel documentation59.. [#f1] Sphinx is needed only to build the Kernel documentation
@@ -309,18 +309,8 @@ Kernel documentation · 249 unmodified lines
309Sphinx309Sphinx
310------310------
311 311
312The ReST markups currently used by the Documentation/ files are meant to be312Please see :ref:`sphinx_install` in ``Documentation/doc-guide/sphinx.rst``
313built with ``Sphinx`` version 1.2 or upper. If you're desiring to build313for details about Sphinx requirements.
314PDF 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
324 314
325Getting updated software315Getting updated software
326========================316========================
Documentation/process/stable-kernel-rules.rst+2−2
@@ -166,12 +166,12 @@ Trees · 165 unmodified lines
166 - The queues of patches, for both completed versions and in progress166 - The queues of patches, for both completed versions and in progress
167 versions can be found at:167 versions can be found at:
168 168
169 http://git.kernel.org/?p=linux/kernel/git/stable/stable-queue.git169 https://git.kernel.org/pub/scm/linux/kernel/git/stable/stable-queue.git
170 170
171 - The finalized and tagged releases of all stable kernels can be found171 - The finalized and tagged releases of all stable kernels can be found
172 in separate branches per version at:172 in separate branches per version at:
173 173
174 http://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git174 https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
175 175
176 176
177Review committee177Review committee
Documentation/process/submitting-patches.rst+1−1
@@ -413,7 +413,7 @@ e-mail discussions. · 412 unmodified lines
413 413
414 414
415 415
41611) Sign your work — the Developer's Certificate of Origin41611) Sign your work - the Developer's Certificate of Origin
417----------------------------------------------------------417----------------------------------------------------------
418 418
419To improve tracking of who did what, especially with patches that can419To improve tracking of who did what, especially with patches that can
Documentation/rbtree.txt+33−0
@@ -193,6 +193,39 @@ Example:: · 192 unmodified lines
193 for (node = rb_first(&mytree); node; node = rb_next(node))193 for (node = rb_first(&mytree); node; node = rb_next(node))
194 printk("key=%s\n", rb_entry(node, struct mytype, node)->keystring);194 printk("key=%s\n", rb_entry(node, struct mytype, node)->keystring);
195 195
196Cached rbtrees
197--------------
198
199Computing the leftmost (smallest) node is quite a common task for binary
200search trees, such as for traversals or users relying on a the particular
201order for their own logic. To this end, users can use 'struct rb_root_cached'
202to optimize O(logN) rb_first() calls to a simple pointer fetch avoiding
203potentially expensive tree iterations. This is done at negligible runtime
204overhead for maintanence; albeit larger memory footprint.
205
206Similar to the rb_root structure, cached rbtrees are initialized to be
207empty via:
208
209 struct rb_root_cached mytree = RB_ROOT_CACHED;
210
211Cached rbtree is simply a regular rb_root with an extra pointer to cache the
212leftmost node. This allows rb_root_cached to exist wherever rb_root does,
213which permits augmented trees to be supported as well as only a few extra
214interfaces:
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
220Both insert and erase calls have their respective counterpart of augmented
221trees:
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
196Support for Augmented rbtrees229Support for Augmented rbtrees
197-----------------------------230-----------------------------
198 231
Documentation/security/keys/core.rst+3−13
@@ -16,17 +16,7 @@ The key service can be configured on by enabling: · 15 unmodified lines
16 16
17This document has the following sections:17This document has the following sections:
18 18
19 - Key overview19.. contents:: :local:
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
30 20
31 21
32Key Overview22Key Overview
@@ -443,7 +433,7 @@ The main syscalls are: · 410 unmodified lines
443 /sbin/request-key will be invoked in an attempt to obtain a key. The433 /sbin/request-key will be invoked in an attempt to obtain a key. The
444 callout_info string will be passed as an argument to the program.434 callout_info string will be passed as an argument to the program.
445 435
446 See also Documentation/security/keys-request-key.txt.436 See also Documentation/security/keys/request-key.rst.
447 437
448 438
449The keyctl syscall functions are:439The keyctl syscall functions are:
@@ -973,7 +963,7 @@ payload contents" for more information. · 523 unmodified lines
973 If successful, the key will have been attached to the default keyring for963 If successful, the key will have been attached to the default keyring for
974 implicitly obtained request-key keys, as set by KEYCTL_SET_REQKEY_KEYRING.964 implicitly obtained request-key keys, as set by KEYCTL_SET_REQKEY_KEYRING.
975 965
976 See also Documentation/security/keys-request-key.txt.966 See also Documentation/security/keys/request-key.rst.
977 967
978 968
979 * To search for a key, passing auxiliary data to the upcaller, call::969 * 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
3===================3===================
4 4
5The key request service is part of the key retention service (refer to5The key request service is part of the key retention service (refer to
6Documentation/security/keys.txt). This document explains more fully how6Documentation/security/core.rst). This document explains more fully how
7the requesting algorithm works.7the requesting algorithm works.
8 8
9The process starts by either the kernel requesting a service by calling9The 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
172are anticipated. In particular the new format 'ecryptfs' has been defined in172are anticipated. In particular the new format 'ecryptfs' has been defined in
173in order to use encrypted keys to mount an eCryptfs filesystem. More details173in order to use encrypted keys to mount an eCryptfs filesystem. More details
174about the usage can be found in the file174about 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
4 *4 *
5 */5 */
6 6
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
11div[class^="highlight"] pre {
12 line-height: normal;
13}
14.rst-content .highlight > pre {
15 line-height: normal;
16}
17
7@media screen {18@media screen {
8 19
9 /* content column20 /* content column
@@ -56,6 +67,12 @@ · 46 unmodified lines
56 font-family: "Courier New", Courier, monospace67 font-family: "Courier New", Courier, monospace
57 }68 }
58 69
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
59 /* inline literal: drop the borderbox, padding and red color */76 /* inline literal: drop the borderbox, padding and red color */
60 77
61 code, .rst-content tt, .rst-content code {78 code, .rst-content tt, .rst-content code {
Documentation/sphinx/kerneldoc.py+3−5
@@ -27,6 +27,7 @@ · 26 unmodified lines
27# Please make sure this works on both python2 and python3.27# Please make sure this works on both python2 and python3.
28#28#
29 29
30import codecs
30import os31import os
31import subprocess32import subprocess
32import sys33import sys
@@ -88,13 +89,10 @@ class KernelDocDirective(Directive): · 55 unmodified lines
88 try:89 try:
89 env.app.verbose('calling kernel-doc \'%s\'' % (" ".join(cmd)))90 env.app.verbose('calling kernel-doc \'%s\'' % (" ".join(cmd)))
90 91
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)
92 out, err = p.communicate()93 out, err = p.communicate()
93 94
94 # python2 needs conversion to unicode.95 out, err = codecs.decode(out, 'utf-8'), codecs.decode(err, 'utf-8')
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')
98 96
99 if p.returncode != 0:97 if p.returncode != 0:
100 sys.stderr.write(err)98 sys.stderr.write(err)
Documentation/sphinx/requirements.txt+3−0
@@ -0,0 +1,3 @@
1docutils==0.12
2Sphinx==1.4.9
3sphinx_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
149key is initialized false, a 'static_branch_inc()', will change the branch to149key is initialized false, a 'static_branch_inc()', will change the branch to
150true. And then a 'static_branch_dec()', will again make the branch false.150true. And then a 'static_branch_dec()', will again make the branch false.
151 151
152The state and the reference count can be retrieved with 'static_key_enabled()'
153and 'static_key_count()'. In general, if you use these functions, they
154should be protected with the same mutex used around the enable/disable
155or increment/decrement function.
156
157Note that switching branches results in some locks being taken,
158particularly the CPU hotplug lock (in order to avoid races against
159CPUs being brought in the kernel whilst the kernel is getting
160patched). Calling the static key API from within a hotplug notifier is
161thus a sure deadlock recipe. In order to still allow use of the
162functionnality, 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
169These functions are *not* general purpose, and must only be used when
170you really know that you're in the above context, and no other.
171
152Where an array of keys is required, it can be defined as::172Where an array of keys is required, it can be defined as::
153 173
154 DEFINE_STATIC_KEY_ARRAY_TRUE(keys, count);174 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
61- perf_cpu_time_max_percent61- perf_cpu_time_max_percent
62- perf_event_paranoid62- perf_event_paranoid
63- perf_event_max_stack63- perf_event_max_stack
64- perf_event_mlock_kb
64- perf_event_max_contexts_per_stack65- perf_event_max_contexts_per_stack
65- pid_max66- pid_max
66- powersave-nap [ PPC only ]67- powersave-nap [ PPC only ]
@@ -74,6 +75,7 @@ show up in /proc/sys/kernel: · 7 unmodified lines
74- reboot-cmd [ SPARC only ]75- reboot-cmd [ SPARC only ]
75- rtsig-max76- rtsig-max
76- rtsig-nr77- rtsig-nr
78- seccomp/ ==> Documentation/userspace-api/seccomp_filter.rst
77- sem79- sem
78- sem_next_id [ sysv ipc ]80- sem_next_id [ sysv ipc ]
79- sg-big-buff [ generic SCSI device (sg) ]81- sg-big-buff [ generic SCSI device (sg) ]
@@ -654,7 +656,9 @@ Controls use of the performance events system by unprivileged · 574 unmodified lines
654users (without CAP_SYS_ADMIN). The default value is 2.656users (without CAP_SYS_ADMIN). The default value is 2.
655 657
656 -1: Allow use of (almost) all events by all users658 -1: Allow use of (almost) all events by all users
657>=0: Disallow raw tracepoint access by users without CAP_IOC_LOCK659 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
658>=1: Disallow CPU event access by users without CAP_SYS_ADMIN662>=1: Disallow CPU event access by users without CAP_SYS_ADMIN
659>=2: Disallow kernel profiling by users without CAP_SYS_ADMIN663>=2: Disallow kernel profiling by users without CAP_SYS_ADMIN
660 664
@@ -673,6 +677,14 @@ The default value is 127. · 12 unmodified lines
673 677
674==============================================================678==============================================================
675 679
680perf_event_mlock_kb:
681
682Control size of per-cpu ring buffer not counted agains mlock limit.
683
684The default value is 512 + 1 page
685
686==============================================================
687
676perf_event_max_contexts_per_stack:688perf_event_max_contexts_per_stack:
677 689
678Controls maximum number of stack frame context entries for690Controls 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
35bpf_jit_enable35bpf_jit_enable
36--------------36--------------
37 37
38This enables Berkeley Packet Filter Just in Time compiler.38This enables the BPF Just in Time (JIT) compiler. BPF is a flexible
39Currently supported on x86_64 architecture, bpf_jit provides a framework39and efficient infrastructure allowing to execute bytecode at various
40to speed packet filtering, the one used by tcpdump/libpcap for example.40hook points. It is used in a number of Linux kernel subsystems such
41as networking (e.g. XDP, tc), tracing (e.g. kprobes, uprobes, tracepoints)
42and security (e.g. seccomp). LLVM has a BPF back end that can compile
43restricted C into a sequence of BPF instructions. After program load
44through bpf(2) and passing a verifier in the kernel, a JIT will then
45translate these BPF proglets into native CPU instructions. There are
46two 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
55And the older cBPF JIT supported on the following archs:
56 - mips
57 - ppc
58 - sparc
59
60eBPF JITs are a superset of cBPF JITs, meaning the kernel will
61migrate cBPF instructions into eBPF instructions and then JIT
62compile them transparently. Older cBPF JITs can only translate
63tcpdump filters, seccomp rules, etc, but not mentioned eBPF
64programs loaded through bpf(2).
65
41Values :66Values :
42 0 - disable the JIT (default value)67 0 - disable the JIT (default value)
43 1 - enable the JIT68 1 - enable the JIT
@@ -46,9 +71,9 @@ Values : · 2 unmodified lines
46bpf_jit_harden71bpf_jit_harden
47--------------72--------------
48 73
49This enables hardening for the Berkeley Packet Filter Just in Time compiler.74This enables hardening for the BPF JIT compiler. Supported are eBPF
50Supported are eBPF JIT backends. Enabling hardening trades off performance,75JIT backends. Enabling hardening trades off performance, but can
51but can mitigate JIT spraying.76mitigate JIT spraying.
52Values :77Values :
53 0 - disable JIT hardening (default value)78 0 - disable JIT hardening (default value)
54 1 - enable JIT hardening for unprivileged users only79 1 - enable JIT hardening for unprivileged users only
@@ -57,11 +82,11 @@ Values : · 2 unmodified lines
57bpf_jit_kallsyms82bpf_jit_kallsyms
58----------------83----------------
59 84
60When Berkeley Packet Filter Just in Time compiler is enabled, then compiled85When BPF JIT compiler is enabled, then compiled images are unknown
61images are unknown addresses to the kernel, meaning they neither show up in86addresses to the kernel, meaning they neither show up in traces nor
62traces nor in /proc/kallsyms. This enables export of these addresses, which87in /proc/kallsyms. This enables export of these addresses, which can
63can be used for debugging/tracing. If bpf_jit_harden is enabled, this feature88be used for debugging/tracing. If bpf_jit_harden is enabled, this
64is disabled.89feature is disabled.
65Values :90Values :
66 0 - disable JIT kallsyms export (default value)91 0 - disable JIT kallsyms export (default value)
67 1 - enable JIT kallsyms export for privileged users only92 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
572 572
573numa_zonelist_order573numa_zonelist_order
574 574
575This sysctl is only for NUMA.575This sysctl is only for NUMA and it is deprecated. Anything but
576Node order will fail!
577
576'where the memory is allocated from' is controlled by zonelists.578'where the memory is allocated from' is controlled by zonelists.
577(This documentation ignores ZONE_HIGHMEM/ZONE_DMA32 for simple explanation.579(This documentation ignores ZONE_HIGHMEM/ZONE_DMA32 for simple explanation.
578 you may be able to read ZONE_DMA as ZONE_DMA32...)580 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
83$ echo dummy_stm.0 > /sys/class/stm_source/console/stm_source_link83$ echo dummy_stm.0 > /sys/class/stm_source/console/stm_source_link
84 84
85For examples on how to use stm_source interface in the kernel, refer85For examples on how to use stm_source interface in the kernel, refer
86to stm_console or stm_heartbeat drivers.86to stm_console, stm_heartbeat or stm_ftrace drivers.
87 87
88Each stm_source device will need to assume a master and a range of88Each stm_source device will need to assume a master and a range of
89channels, depending on how many channels it requires. These are89channels, 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
107beginning of this text on how to do that). When initialized, it will107beginning of this text on how to do that). When initialized, it will
108consume one channel.108consume one channel.
109 109
110stm_ftrace
111==========
112
113This is another "stm_source" device, once the stm_ftrace has been
114linked with an stm device, and if "function" tracer is enabled,
115function address and parent function address which Ftrace subsystem
116would store into ring buffer will be exported via the stm device at
117the same time.
118
119Currently only Ftrace "function" tracer is supported.
120
110[1] https://software.intel.com/sites/default/files/managed/d3/3c/intel-th-developer-manual.pdf121[1] https://software.intel.com/sites/default/files/managed/d3/3c/intel-th-developer-manual.pdf
111[2] http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0444b/index.html122[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
523 즉, ACQUIRE 는 최소한의 "취득" 동작처럼, 그리고 RELEASE 는 최소한의 "공개"523 즉, ACQUIRE 는 최소한의 "취득" 동작처럼, 그리고 RELEASE 는 최소한의 "공개"
524 처럼 동작한다는 의미입니다.524 처럼 동작한다는 의미입니다.
525 525
526core-api/atomic_ops.rst 에서 설명되는 어토믹 오퍼레이션들 중에는 완전히526atomic_t.txt 에 설명된 어토믹 오퍼레이션들 중 일부는 완전히 순서잡힌 것들과
527순서잡힌 것들과 (배리어를 사용하지 않는) 완화된 순서의 것들 외에 ACQUIRE 와527(배리어를 사용하지 않는) 완화된 순서의 것들 외에 ACQUIRE 와 RELEASE 부류의
528RELEASE 부류의 것들도 존재합니다. 로드와 스토어를 모두 수행하는 조합된 어토믹528것들도 존재합니다. 로드와 스토어를 모두 수행하는 조합된 어토믹 오퍼레이션에서,
529오퍼레이션에서, ACQUIRE 는 해당 오퍼레이션의 로드 부분에만 적용되고 RELEASE 는529ACQUIRE 는 해당 오퍼레이션의 로드 부분에만 적용되고 RELEASE 는 해당
530해당 오퍼레이션의 스토어 부분에만 적용됩니다.530오퍼레이션의 스토어 부분에만 적용됩니다.
531 531
532메모리 배리어들은 두 CPU 간, 또는 CPU 와 디바이스 간에 상호작용의 가능성이 있을532메모리 배리어들은 두 CPU 간, 또는 CPU 와 디바이스 간에 상호작용의 가능성이 있을
533때에만 필요합니다. 만약 어떤 코드에 그런 상호작용이 없을 것이 보장된다면, 해당533때에만 필요합니다. 만약 어떤 코드에 그런 상호작용이 없을 것이 보장된다면, 해당
@@ -617,7 +617,22 @@ RELEASE 부류의 것들도 존재합니다. 로드와 스토어를 모두 수 · 83 unmodified lines
617이 변경은 앞의 처음 두가지 결과 중 하나만이 발생할 수 있고, 세번째의 결과는617이 변경은 앞의 처음 두가지 결과 중 하나만이 발생할 수 있고, 세번째의 결과는
618발생할 수 없도록 합니다.618발생할 수 없도록 합니다.
619 619
620데이터 의존성 배리어는 의존적 쓰기에 대해서도 순서를 잡아줍니다:620
621[!] 이 상당히 반직관적인 상황은 분리된 캐시를 가지는 기계들에서 가장 잘
622발생하는데, 예를 들면 한 캐시 뱅크는 짝수 번호의 캐시 라인들을 처리하고, 다른
623뱅크는 홀수 번호의 캐시 라인들을 처리하는 경우임을 알아두시기 바랍니다. 포인터
624P 는 짝수 번호 캐시 라인에 저장되어 있고, 변수 B 는 홀수 번호 캐시 라인에
625저장되어 있을 수 있습니다. 여기서 값을 읽어오는 CPU 의 캐시의 홀수 번호 처리
626뱅크는 열심히 일감을 처리중인 반면 홀수 번호 처리 뱅크는 할 일 없이 한가한
627중이라면 포인터 P (&B) 의 새로운 값과 변수 B 의 기존 값 (2) 를 볼 수 있습니다.
628
629
630의존적 쓰기들의 순서를 맞추는데에는 데이터 의존성 배리어가 필요치 않은데, 이는
631리눅스 커널이 지원하는 CPU 들은 (1) 쓰기가 정말로 일어날지, (2) 쓰기가 어디에
632이루어질지, 그리고 (3) 쓰여질 값을 확실히 알기 전까지는 쓰기를 수행하지 않기
633때문입니다. 하지만 "컨트롤 의존성" 섹션과
634Documentation/RCU/rcu_dereference.txt 파일을 주의 깊게 읽어 주시기 바랍니다:
635컴파일러는 매우 창의적인 많은 방법으로 종속성을 깰 수 있습니다.
621 636
622 CPU 1 CPU 2637 CPU 1 CPU 2
623 =============== ===============638 =============== ===============
@@ -626,28 +641,19 @@ RELEASE 부류의 것들도 존재합니다. 로드와 스토어를 모두 수 · 2 unmodified lines
626 <쓰기 배리어>641 <쓰기 배리어>
627 WRITE_ONCE(P, &B);642 WRITE_ONCE(P, &B);
628 Q = READ_ONCE(P);643 Q = READ_ONCE(P);
629 <데이터 의존성 배리어>644 WRITE_ONCE(*Q, 5);
630 *Q = 5;
631 645
632이 데이터 의존성 배리어는 Q 로의 읽기가 *Q 로의 스토어와 순서를 맞추게646따라서, Q 로의 읽기와 *Q 로의 쓰기 사이에는 데이터 종속성 배리어가 필요치
633해줍니다. 이는 다음과 같은 결과를 막습니다:647않습니다. 달리 말하면, 데이터 종속성 배리어가 없더라도 다음 결과는 생기지
648않습니다:
634 649
635 (Q == &B) && (B == 4)650 (Q == &B) && (B == 4)
636 651
637이런 패턴은 드물게 사용되어야 함을 알아 두시기 바랍니다. 무엇보다도, 의존성652이런 패턴은 드물게 사용되어야 함을 알아 두시기 바랍니다. 무엇보다도, 의존성
638순서 규칙의 의도는 쓰기 작업을 -예방- 해서 그로 인해 발생하는 비싼 캐시 미스도653순서 규칙의 의도는 쓰기 작업을 -예방- 해서 그로 인해 발생하는 비싼 캐시 미스도
639없애려는 것입니다. 이 패턴은 드물게 발생하는 에러 조건 같은것들을 기록하는데654없애려는 것입니다. 이 패턴은 드물게 발생하는 에러 조건 같은것들을 기록하는데
640사용될 수 있고, 이렇게 배리어를 사용해 순서를 지키게 함으로써 그런 기록이655사용될 수 있으며, CPU의 자연적인 순서 보장이 그런 기록들을 사라지지 않게
641사라지는 것을 막습니다.656해줍니다.
642
643
644[!] 상당히 비직관적인 이 상황은 분리된 캐시를 가진 기계, 예를 들어 한 캐시
645뱅크가 짝수번 캐시 라인을 처리하고 다른 뱅크는 홀수번 캐시 라인을 처리하는 기계
646등에서 가장 잘 발생합니다. 포인터 P 는 홀수 번호의 캐시 라인에 있고, 변수 B 는
647짝수 번호 캐시 라인에 있다고 생각해 봅시다. 그런 상태에서 읽기 작업을 하는 CPU
648의 짝수번 뱅크는 할 일이 쌓여 매우 바쁘지만 홀수번 뱅크는 할 일이 없어 아무
649일도 하지 않고 있었다면, 포인터 P 는 새 값 (&B) 을, 그리고 변수 B 는 옛날 값
650(2) 을 가지고 있는 상태가 보여질 수도 있습니다.
651 657
652 658
653데이터 의존성 배리어는 매우 중요한데, 예를 들어 RCU 시스템에서 그렇습니다.659데이터 의존성 배리어는 매우 중요한데, 예를 들어 RCU 시스템에서 그렇습니다.
@@ -1848,8 +1854,7 @@ Mandatory 배리어들은 SMP 시스템에서도 UP 시스템에서도 SMP 효 · 1194 unmodified lines
1848 이 코드는 객체의 업데이트된 death 마크가 레퍼런스 카운터 감소 동작1854 이 코드는 객체의 업데이트된 death 마크가 레퍼런스 카운터 감소 동작
1849 *전에* 보일 것을 보장합니다.1855 *전에* 보일 것을 보장합니다.
1850 1856
1851 더 많은 정보를 위해선 Documentation/core-api/atomic_ops.rst 문서를 참고하세요.1857 더 많은 정보를 위해선 Documentation/atomic_{t,bitops}.txt 문서를
1852 어디서 이것들을 사용해야 할지 궁금하다면 "어토믹 오퍼레이션" 서브섹션을
1853 참고하세요.1858 참고하세요.
1854 1859
1855 1860
@@ -1956,10 +1961,7 @@ MMIO 쓰기 배리어 · 100 unmodified lines
1956 뒤에 완료됩니다.1961 뒤에 완료됩니다.
1957 1962
1958 ACQUIRE 앞에서 요청된 메모리 오퍼레이션은 ACQUIRE 오퍼레이션이 완료된 후에1963 ACQUIRE 앞에서 요청된 메모리 오퍼레이션은 ACQUIRE 오퍼레이션이 완료된 후에
1959 완료될 수 있습니다. smp_mb__before_spinlock() 뒤에 ACQUIRE 가 실행되는1964 완료될 수 있습니다.
1960 코드 블록은 블록 앞의 스토어를 블록 뒤의 로드와 스토어에 대해 순서
1961 맞춥니다. 이건 smp_mb() 보다 완화된 것임을 기억하세요! 많은 아키텍쳐에서
1962 smp_mb__before_spinlock() 은 사실 아무일도 하지 않습니다.
1963 1965
1964 (2) RELEASE 오퍼레이션의 영향:1966 (2) RELEASE 오퍼레이션의 영향:
1965 1967
@@ -2471,86 +2473,7 @@ _않습니다_. · 505 unmodified lines
2471전체 메모리 배리어를 내포하고 또 일부는 내포하지 않지만, 커널에서 상당히2473전체 메모리 배리어를 내포하고 또 일부는 내포하지 않지만, 커널에서 상당히
2472의존적으로 사용하는 기능 중 하나입니다.2474의존적으로 사용하는 기능 중 하나입니다.
2473 2475
2474메모리의 어떤 상태를 수정하고 해당 상태에 대한 (예전의 또는 최신의) 정보를2476더 많은 내용을 위해선 Documentation/atomic_t.txt 를 참고하세요.
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[!] 이런 상황에 사용할 수 있는 특수한 메모리 배리어 도구들이 있습니다만, 일부
2548CPU 에서는 사용되는 어토믹 인스트럭션 자체에 메모리 배리어가 내포되어 있어서
2549어토믹 오퍼레이션과 메모리 배리어를 함께 사용하는 게 불필요한 일이 될 수
2550있는데, 그런 경우에 이 특수 메모리 배리어 도구들은 no-op 이 되어 실질적으로
2551아무일도 하지 않습니다.
2552
2553더 많은 내용을 위해선 Documentation/core-api/atomic_ops.rst 를 참고하세요.
2554 2477
2555 2478
2556디바이스 액세스2479디바이스 액세스
Documentation/translations/zh_CN/HOWTO+0−2
@@ -149,9 +149,7 @@ Linux内核代码中包含有大量的文档。这些文档对于学习如何与 · 148 unmodified lines
149核源码的主目录中使用以下不同命令将会分别生成PDF、Postscript、HTML和手册149核源码的主目录中使用以下不同命令将会分别生成PDF、Postscript、HTML和手册
150页等不同格式的文档:150页等不同格式的文档:
151 make pdfdocs151 make pdfdocs
152 make psdocs
153 make htmldocs152 make htmldocs
154 make mandocs
155 153
156 154
157如何成为内核开发者155如何成为内核开发者
Documentation/userspace-api/seccomp_filter.rst+50−2
@@ -87,11 +87,16 @@ Return values · 86 unmodified lines
87A seccomp filter may return any of the following values. If multiple87A seccomp filter may return any of the following values. If multiple
88filters exist, the return value for the evaluation of a given system88filters exist, the return value for the evaluation of a given system
89call will always use the highest precedent value. (For example,89call 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.)
91 91
92In precedence order, they are:92In precedence order, they are:
93 93
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``:
95 Results in the task exiting immediately without executing the100 Results in the task exiting immediately without executing the
96 system call. The exit status of the task (``status & 0x7f``) will101 system call. The exit status of the task (``status & 0x7f``) will
97 be ``SIGSYS``, not ``SIGKILL``.102 be ``SIGSYS``, not ``SIGKILL``.
@@ -141,6 +146,15 @@ In precedence order, they are: · 43 unmodified lines
141 allow use of ptrace, even of other sandboxed processes, without146 allow use of ptrace, even of other sandboxed processes, without
142 extreme care; ptracers can use this mechanism to escape.)147 extreme care; ptracers can use this mechanism to escape.)
143 148
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
144``SECCOMP_RET_ALLOW``:158``SECCOMP_RET_ALLOW``:
145 Results in the system call being executed.159 Results in the system call being executed.
146 160
@@ -169,7 +183,41 @@ The ``samples/seccomp/`` directory contains both an x86-specific example · 22 unmodified lines
169and a more generic example of a higher level macro interface for BPF183and a more generic example of a higher level macro interface for BPF
170program generation.184program generation.
171 185
186Sysctls
187=======
172 188
189Seccomp's sysctl files can be found in the ``/proc/sys/kernel/seccomp/``
190directory. 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.
173 221
174Adding architecture support222Adding architecture support
175===========================223===========================
Documentation/virtual/kvm/devices/arm-vgic.txt+5−0
@@ -83,6 +83,11 @@ Groups: · 82 unmodified lines
83 83
84 Bits for undefined preemption levels are RAZ/WI.84 Bits for undefined preemption levels are RAZ/WI.
85 85
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
86 For historical reasons and to provide ABI compatibility with userspace we91 For historical reasons and to provide ABI compatibility with userspace we
87 export the GICC_PMR register in the format of the GICH_VMCR.VMPriMask92 export the GICC_PMR register in the format of the GICH_VMCR.VMPriMask
88 field in the lower 5 bits of a word, meaning that userspace must always93 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
176 176
1773.1. ATTRIBUTE: KVM_S390_VM_TOD_HIGH1773.1. ATTRIBUTE: KVM_S390_VM_TOD_HIGH
178 178
179Allows user space to set/get the TOD clock extension (u8).179Allows user space to set/get the TOD clock extension (u8) (superseded by
180KVM_S390_VM_TOD_EXT).
180 181
181Parameters: address of a buffer in user space to store the data (u8) to182Parameters: address of a buffer in user space to store the data (u8) to
182Returns: -EFAULT if the given address is not accessible from kernel space183Returns: -EFAULT if the given address is not accessible from kernel space
@@ -190,6 +191,17 @@ the POP (u64). · 7 unmodified lines
190Parameters: address of a buffer in user space to store the data (u64) to191Parameters: address of a buffer in user space to store the data (u64) to
191Returns: -EFAULT if the given address is not accessible from kernel space192Returns: -EFAULT if the given address is not accessible from kernel space
192 193
1943.3. ATTRIBUTE: KVM_S390_VM_TOD_EXT
195Allows user space to set/get bits 0-63 of the TOD clock register as defined in
196the POP (u64). If the guest CPU model supports the TOD clock extension (u8), it
197also allows user space to get/set it. If the guest CPU model does not support
198it, it is stored as 0 and not allowed to be set to a value != 0.
199
200Parameters: address of a buffer in user space to store the data
201 (kvm_s390_vm_tod_clock) to
202Returns: -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
1934. GROUP: KVM_S390_VM_CRYPTO2054. GROUP: KVM_S390_VM_CRYPTO
194Architectures: s390206Architectures: s390
195 207
Documentation/vm/hmm.txt+384−0
@@ -0,0 +1,384 @@
1Heterogeneous Memory Management (HMM)
2
3Transparently allow any component of a program to use any memory region of said
4program with a device without using device specific memory allocator. This is
5becoming a requirement to simplify the use of advance heterogeneous computing
6where GPU, DSP or FPGA are use to perform various computations.
7
8This document is divided as follow, in the first section i expose the problems
9related to the use of a device specific allocator. The second section i expose
10the hardware limitations that are inherent to many platforms. The third section
11gives an overview of HMM designs. The fourth section explains how CPU page-
12table mirroring works and what is HMM purpose in this context. Fifth section
13deals with how device memory is represented inside the kernel. Finaly the last
14section present the new migration helper that allow to leverage the device DMA
15engine.
16
17
181) Problems of using device specific memory allocator:
192) System bus, device memory characteristics
203) Share address space and migration
214) Address space mirroring implementation and API
225) Represent and manage device memory from core kernel point of view
236) Migrate to and from device memory
247) Memory cgroup (memcg) and rss accounting
25
26
27-------------------------------------------------------------------------------
28
291) Problems of using device specific memory allocator:
30
31Device with large amount of on board memory (several giga bytes) like GPU have
32historically manage their memory through dedicated driver specific API. This
33creates a disconnect between memory allocated and managed by device driver and
34regular application memory (private anonymous, share memory or regular file
35back memory). From here on i will refer to this aspect as split address space.
36I use share address space to refer to the opposite situation ie one in which
37any memory region can be use by device transparently.
38
39Split address space because device can only access memory allocated through the
40device specific API. This imply that all memory object in a program are not
41equal from device point of view which complicate large program that rely on a
42wide set of libraries.
43
44Concretly this means that code that wants to leverage device like GPU need to
45copy object between genericly allocated memory (malloc, mmap private/share/)
46and memory allocated through the device driver API (this still end up with an
47mmap but of the device file).
48
49For flat dataset (array, grid, image, ...) this isn't too hard to achieve but
50complex data-set (list, tree, ...) are hard to get right. Duplicating a complex
51data-set need to re-map all the pointer relations between each of its elements.
52This is error prone and program gets harder to debug because of the duplicate
53data-set.
54
55Split address space also means that library can not transparently use data they
56are getting from core program or other library and thus each library might have
57to duplicate its input data-set using specific memory allocator. Large project
58suffer from this and waste resources because of the various memory copy.
59
60Duplicating each library API to accept as input or output memory allocted by
61each device specific allocator is not a viable option. It would lead to a
62combinatorial explosions in the library entry points.
63
64Finaly with the advance of high level language constructs (in C++ but in other
65language too) it is now possible for compiler to leverage GPU or other devices
66without even the programmer knowledge. Some of compiler identified patterns are
67only do-able with a share address. It is as well more reasonable to use a share
68address space for all the other patterns.
69
70
71-------------------------------------------------------------------------------
72
732) System bus, device memory characteristics
74
75System bus cripple share address due to few limitations. Most system bus only
76allow basic memory access from device to main memory, even cache coherency is
77often optional. Access to device memory from CPU is even more limited, most
78often than not it is not cache coherent.
79
80If we only consider the PCIE bus than device can access main memory (often
81through an IOMMU) and be cache coherent with the CPUs. However it only allows
82a limited set of atomic operation from device on main memory. This is worse
83in the other direction the CPUs can only access a limited range of the device
84memory and can not perform atomic operations on it. Thus device memory can not
85be consider like regular memory from kernel point of view.
86
87Another crippling factor is the limited bandwidth (~32GBytes/s with PCIE 4.0
88and 16 lanes). This is 33 times less that fastest GPU memory (1 TBytes/s).
89The final limitation is latency, access to main memory from the device has an
90order of magnitude higher latency than when the device access its own memory.
91
92Some platform are developing new system bus or additions/modifications to PCIE
93to address some of those limitations (OpenCAPI, CCIX). They mainly allow two
94way cache coherency between CPU and device and allow all atomic operations the
95architecture supports. Saddly not all platform are following this trends and
96some major architecture are left without hardware solutions to those problems.
97
98So for share address space to make sense not only we must allow device to
99access any memory memory but we must also permit any memory to be migrated to
100device memory while device is using it (blocking CPU access while it happens).
101
102
103-------------------------------------------------------------------------------
104
1053) Share address space and migration
106
107HMM intends to provide two main features. First one is to share the address
108space by duplication the CPU page table into the device page table so same
109address point to same memory and this for any valid main memory address in
110the process address space.
111
112To achieve this, HMM offer a set of helpers to populate the device page table
113while keeping track of CPU page table updates. Device page table updates are
114not as easy as CPU page table updates. To update the device page table you must
115allow a buffer (or use a pool of pre-allocated buffer) and write GPU specifics
116commands 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
118provides helpers to factor out everything that can be while leaving the gory
119details to the device driver.
120
121The second mechanism HMM provide is a new kind of ZONE_DEVICE memory that does
122allow to allocate a struct page for each page of the device memory. Those page
123are special because the CPU can not map them. They however allow to migrate
124main memory to device memory using exhisting migration mechanism and everything
125looks like if page was swap out to disk from CPU point of view. Using a struct
126page gives the easiest and cleanest integration with existing mm mechanisms.
127Again here HMM only provide helpers, first to hotplug new ZONE_DEVICE memory
128for the device memory and second to perform migration. Policy decision of what
129and when to migrate things is left to the device driver.
130
131Note that any CPU access to a device page trigger a page fault and a migration
132back to main memory ie when a page backing an given address A is migrated from
133a main memory page to a device page then any CPU access to address A trigger a
134page fault and initiate a migration back to main memory.
135
136
137With this two features, HMM not only allow a device to mirror a process address
138space and keeps both CPU and device page table synchronize, but also allow to
139leverage device memory by migrating part of data-set that is actively use by a
140device.
141
142
143-------------------------------------------------------------------------------
144
1454) Address space mirroring implementation and API
146
147Address space mirroring main objective is to allow to duplicate range of CPU
148page table into a device page table and HMM helps keeping both synchronize. A
149device driver that want to mirror a process address space must start with the
150registration 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
157The locked variant is to be use when the driver is already holding the mmap_sem
158of the mm in write mode. The mirror struct has a set of callback that are use
159to 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
184Device driver must perform update to the range following action (turn range
185read only, or fully unmap, ...). Once driver callback returns the device must
186be done with the update.
187
188
189When device driver wants to populate a range of virtual address it can use
190either:
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
204First one (hmm_vma_get_pfns()) will only fetch present CPU page table entry and
205will 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.